.consent-page { background: var(--obsidian); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.consent-page.has-floating-cta { padding-bottom: 0; }
.consent-container { width: min(calc(100% - 2rem), 52rem); min-width: 0; margin-inline: auto; }
.consent-header .header-inner { justify-content: space-between; }
.consent-exit { min-height: 2.75rem; display: inline-flex; align-items: center; padding-inline: 0.25rem; color: var(--bone-muted); font-size: 0.86rem; font-weight: 800; text-decoration: none; }
.consent-exit:hover { color: var(--gold); }

.consent-main { padding-top: var(--header-height); }
.consent-intro { padding: 3.5rem 0 3rem; border-bottom: 1px solid var(--line); background: #100f0d; }
.consent-intro h1 { max-width: 12ch; margin-bottom: 1.25rem; }
.consent-lead { max-width: 43rem; margin-bottom: 1.25rem; color: var(--bone); font-size: 1.05rem; }
.consent-prototype-note { max-width: 43rem; margin: 0; padding: 0.85rem 1rem; border-left: 3px solid var(--gold); background: var(--charcoal); color: var(--bone-muted); font-size: 0.88rem; }

.consent-workflow { padding: 0 0 4rem; background: var(--obsidian); }
.consent-progress { position: sticky; z-index: 20; top: var(--header-height); margin-inline: -1rem; padding: 1rem; border-bottom: 1px solid var(--line); background: rgba(8, 8, 7, 0.97); backdrop-filter: blur(12px); }
.consent-progress-meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--bone-muted); font-size: 0.8rem; }
.consent-progress-meta strong { color: var(--gold); }
.consent-progress-track { height: 3px; margin: 0.65rem 0 0.8rem; background: var(--line); }
.consent-progress-track span { display: block; width: 20%; height: 100%; background: var(--gold); transition: width var(--motion); }
.consent-progress-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.3rem; margin: 0; padding: 0; list-style: none; }
.consent-progress-list li { min-width: 0; color: var(--stone); font-size: 0.68rem; text-align: center; }
.consent-progress-list li::before { content: ""; width: 0.55rem; height: 0.55rem; display: block; margin: 0 auto 0.25rem; border: 1px solid var(--line-strong); transform: rotate(45deg); }
.consent-progress-list li span { display: none; }
.consent-progress-list li[aria-current="step"] { color: var(--bone); font-weight: 800; }
.consent-progress-list li[aria-current="step"]::before, .consent-progress-list li.is-complete::before { border-color: var(--gold); background: var(--gold); }

#consent-form { min-width: 0; }
.consent-step { border: 0; margin: 0; padding: 2.5rem 0 1rem; }
.consent-step > legend { width: 100%; margin-bottom: 0.5rem; color: var(--bone); font-family: var(--display); font-size: 2rem; font-weight: 800; line-height: 1; text-transform: uppercase; }
.consent-step-intro { max-width: 44rem; margin-bottom: 1.75rem; }
.consent-field-grid { display: grid; gap: 1rem; }
.consent-field { min-width: 0; display: grid; gap: 0.4rem; }
.consent-field label, .consent-field legend, .consent-group-label { color: var(--bone); font-size: 0.9rem; font-weight: 800; }
.birth-date-field { margin: 0; padding: 0; border: 0; }
.birth-date-field > legend { margin-bottom: 0.4rem; padding: 0; }
.birth-date-inputs { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 0.8fr) minmax(0, 1.4fr); gap: 0.5rem; }
.birth-date-inputs label { min-width: 0; display: grid; gap: 0.3rem; }
.birth-date-inputs label span { color: var(--stone); font-size: 0.7rem; text-transform: uppercase; }
.birth-date-inputs input { min-width: 0; appearance: textfield; }
.birth-date-inputs input::-webkit-inner-spin-button, .birth-date-inputs input::-webkit-outer-spin-button { margin: 0; appearance: none; }
.consent-field input, .consent-field select, .consent-field textarea {
  width: 100%;
  min-height: 3.25rem;
  padding: 0.75rem;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  background: #0c0c0a;
  color: var(--bone);
}
.consent-field textarea { min-height: 7rem; resize: vertical; }
.consent-field input:focus, .consent-field select:focus, .consent-field textarea:focus { border-color: var(--champagne); outline: 2px solid transparent; }
.consent-field input[aria-invalid="true"], .consent-field select[aria-invalid="true"], .consent-field textarea[aria-invalid="true"] { border-color: #e77d68; }
.consent-help { margin: 0; color: var(--stone); font-size: 0.8rem; }
.required-note { color: var(--stone); font-size: 0.78rem; font-weight: 500; }

.screening-list { display: grid; gap: 1rem; }
.screening-item { min-width: 0; padding: 1rem; border: 1px solid var(--line); background: var(--charcoal); }
.screening-item legend { padding: 0; color: var(--bone); font-size: 0.95rem; font-weight: 800; line-height: 1.45; }
.binary-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; margin-top: 0.85rem; }
.binary-choice { min-height: 3.25rem; display: flex; align-items: center; gap: 0.65rem; padding: 0.65rem 0.8rem; border: 1px solid var(--line-strong); color: var(--bone); cursor: pointer; }
.binary-choice:has(input:checked) { border-color: var(--gold); background: rgba(201, 168, 95, 0.12); }
.binary-choice input { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; accent-color: var(--gold); }
.screening-explanation { margin-top: 0.9rem; }

.acknowledgment-section { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.establishment-panel { margin: 1.5rem 0; padding: 1rem; border-left: 3px solid var(--gold); background: var(--charcoal); }
.establishment-panel h3 { margin-bottom: 0.8rem; font-family: var(--body); font-size: 0.82rem; letter-spacing: 0; }
.establishment-panel dl { display: grid; gap: 0.55rem; margin: 0; }
.establishment-panel dl > div { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0.65rem; }
.establishment-panel dt { color: var(--stone); font-size: 0.74rem; font-weight: 800; text-transform: uppercase; }
.establishment-panel dd { min-width: 0; margin: 0; color: var(--bone); }
.release-placeholder { margin: 1.5rem 0; padding: 1rem; border: 1px dashed var(--gold-dark); background: rgba(74, 23, 36, 0.22); }
.release-placeholder h3 { margin-bottom: 0.6rem; font-size: 1.25rem; }
.release-placeholder p { margin: 0; }
.acknowledgment-list { display: grid; gap: 0.75rem; }
.consent-check { min-height: 3.25rem; display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.85rem; border: 1px solid var(--line); color: var(--bone); cursor: pointer; }
.consent-check:has(input:checked) { border-color: var(--gold); background: rgba(201, 168, 95, 0.08); }
.consent-check input { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; margin-top: 0.15rem; accent-color: var(--gold); }

.marketing-section, .photo-release-section { margin-top: 2.5rem; padding-top: 2rem; border-top: 2px solid var(--gold-dark); }
.marketing-section h3 { margin-bottom: 0.8rem; font-size: 1.8rem; }
.marketing-question { color: var(--bone); font-weight: 700; }
.marketing-options { display: grid; gap: 0.75rem; }
.marketing-explanation { margin: 1rem 0 0; font-size: 0.86rem; }
.submission-time { margin: 1.5rem 0; padding: 0.85rem 0; border-block: 1px solid var(--line); color: var(--bone-muted); }
.submission-time strong { display: block; color: var(--bone); }

.review-panel { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.review-panel h3 { margin-bottom: 1rem; font-size: 1.8rem; }
.review-groups { display: grid; gap: 1.25rem; }
.review-group { padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); }
.review-group h4 { margin: 0 0 0.75rem; color: var(--gold); font-size: 0.8rem; text-transform: uppercase; }
.review-group dl { display: grid; gap: 0.55rem; margin: 0; }
.review-group dl > div { display: grid; grid-template-columns: minmax(6rem, 0.38fr) minmax(0, 0.62fr); gap: 0.75rem; }
.review-group dt { color: var(--stone); font-size: 0.76rem; font-weight: 800; }
.review-group dd { min-width: 0; margin: 0; color: var(--bone); }

.consent-error-summary { margin-top: 1.5rem; padding: 1rem; border: 2px solid #e77d68; background: rgba(82, 24, 22, 0.38); }
.consent-error-summary h2 { margin-bottom: 0.6rem; font-family: var(--body); font-size: 1rem; text-transform: none; }
.consent-error-summary ul { margin: 0; padding-left: 1.25rem; }
.consent-error-summary a { color: var(--bone); text-underline-offset: 0.2rem; }
.consent-form-status:not(:empty) { margin-top: 1.25rem; padding: 1rem; border: 1px solid var(--line-strong); color: var(--bone); }
.consent-form-status[data-state="development"], .consent-form-status[data-state="error"] { border-color: #e77d68; background: rgba(82, 24, 22, 0.32); }
.consent-is-submitting { overflow: hidden; }
.consent-submission-overlay {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: rgba(5, 5, 4, 0.94);
  backdrop-filter: blur(8px);
}
.consent-submission-overlay[hidden] { display: none; }
.consent-submission-panel { width: min(100%, 25rem); padding: 2rem; border: 1px solid var(--gold-dark); background: var(--obsidian); text-align: center; }
.consent-submission-panel strong { display: block; margin-top: 1.25rem; color: var(--bone); font-family: var(--display); font-size: 1.65rem; text-transform: uppercase; }
.consent-submission-panel p { margin: 0.75rem 0 0; color: var(--bone-muted); }
.consent-spinner { width: 3.25rem; height: 3.25rem; display: inline-block; border: 2px solid var(--line-strong); border-top-color: var(--gold); border-right-color: var(--champagne); border-radius: 50%; animation: consent-spin 800ms linear infinite; }
@keyframes consent-spin { to { transform: rotate(360deg); } }
.consent-actions { position: sticky; z-index: 15; bottom: 0; display: flex; gap: 0.75rem; margin: 1.5rem -1rem 0; padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: rgba(8, 8, 7, 0.97); }
.consent-actions .button { min-width: 0; flex: 1; }

.consent-footer { padding-top: 3rem; }
.consent-footer-inner { position: relative; z-index: 1; display: grid; gap: 0.75rem; }
.consent-footer-inner img { width: min(100%, 20rem); height: auto; }
.consent-footer-inner p { margin: 0; font-size: 0.78rem; }

@media (min-width: 44rem) {
  .consent-intro { padding: 5rem 0 4rem; }
  .consent-progress { margin-inline: 0; padding-inline: 0; }
  .consent-progress-list li span { display: inline; }
  .consent-step { padding-top: 3.5rem; }
  .consent-step > legend { font-size: 2.6rem; }
  .consent-field-grid.two-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .consent-field.full { grid-column: 1 / -1; }
  .review-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .consent-actions { position: static; justify-content: flex-end; margin-inline: 0; padding-inline: 0; background: transparent; }
  .consent-actions .button { flex: 0 1 auto; min-width: 11rem; }
}

@media (prefers-reduced-motion: reduce) {
  .consent-progress-track span { transition: none; }
  .consent-spinner { animation: none; border-color: var(--gold) var(--line-strong) var(--line-strong); }
}
