/* Editorial card images use a consistent, centered crop across the homepage and contests. */
.news-card .news-visual,
.editorial-card-image {
  object-position: 50% 50%;
}

.footer-preferences-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 11px;
}

.footer-preferences-row .footer-legal-links {
  justify-content: flex-start;
}

.footer-preferences-row .footer-cookie-settings {
  display: block;
  margin: 0 0 0 auto;
}

.pegen-activity-card {
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.13);
}

.pegen-activity-card h3,
.pegen-activity-card p {
  color: #fff;
}

.pegen-activity-sprint {
  background: linear-gradient(145deg, #080808 0%, #151515 58%, #292929 100%);
}

.pegen-activity-poetry {
  background:
    radial-gradient(circle at 85% 15%, rgba(255, 255, 255, 0.12), transparent 34%),
    linear-gradient(135deg, #650001 0%, #A10102 58%, #c41419 100%);
}

@media (min-width: 701px) {
  .cookie-consent {
    left: 50%;
    transform: translateX(-50%);
  }
}

.event-apply-fab,
.training-apply-fab {
  position: fixed;
  z-index: 1100;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(20px, env(safe-area-inset-bottom));
  min-height: 48px;
  padding: 12px 20px;
  border: 0;
  border-radius: 999px;
  background: var(--ws-red, #A10102);
  color: #fff;
  font: 800 .86rem Manrope, sans-serif;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .24);
  cursor: pointer;
}

.event-apply-fab:hover,
.training-apply-fab:hover {
  background: #780001;
  transform: translateY(-2px);
}

.event-apply-fab:focus-visible,
.training-apply-fab:focus-visible {
  outline: 3px solid var(--ws-gold, #D4AF37);
  outline-offset: 3px;
}

.event-choice-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
}

.event-choice-row {
  display: grid;
  gap: 9px;
  margin: 10px 0;
  padding: 12px;
  border: 1px solid #e4e4e4;
  border-radius: 10px;
  background: #fafafa;
}

.event-choice-row label,
.application-extra-field label {
  display: grid;
  gap: 5px;
  font-size: .84rem;
  font-weight: 700;
}

.event-choice-row select,
.event-choice-row input,
.event-choice-row textarea,
.application-extra-field select,
.application-extra-field input,
.application-extra-field textarea {
  width: 100%;
  min-height: 40px;
  padding: 9px 11px;
  border: 1px solid #d8d8d8;
  border-radius: 8px;
  background: #fff;
  font: inherit;
}

.event-extra-fields {
  display: grid;
  gap: 9px;
}

.training-dialog-panel {
  width: min(820px, 100%);
}

.training-dialog-panel .registration-card {
  position: static;
  max-height: none;
  padding: 8px 0 0;
  border: 0;
  box-shadow: none;
}

.training-dialog-panel .registration-card .btn {
  width: auto;
}

.training-dialog-panel .registration-card form > .btn[type="submit"] {
  width: 100%;
}

.training-choice-row {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1.2fr auto;
  align-items: end;
  gap: 10px;
}

.training-choice-row label {
  min-width: 0;
}

.training-list-vacations {
  display: grid;
  gap: 8px;
  margin: 16px 0;
}

.training-list-vacations > div {
  display: grid;
  grid-template-columns: minmax(100px, .7fr) 1.3fr;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid #e8e8e8;
  font-size: .83rem;
}

.training-list-vacations span,
.training-provider {
  color: var(--muted, #64748b);
}

@media (max-width: 700px) {
  .training-choice-row {
    grid-template-columns: 1fr;
    padding: 12px;
  }

  .event-choice-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .event-apply-fab,
  .training-apply-fab {
    right: 14px;
    bottom: max(14px, env(safe-area-inset-bottom));
    min-height: 44px;
    padding: 10px 16px;
  }
}

@media (max-width: 480px) {
  .footer-preferences-row {
    gap: 10px;
    font-size: 10px;
  }
}
