/* Preparation shares the scheduling form's width and card vocabulary. */
.preparation header.wrap { position: relative; top: auto; }
.preparation .intake-intro { margin-bottom: 3rem; }
.intake-columns { display: grid; gap: 1.5rem; }
.intake-column-title { display: none; margin: 0; font-size: 1.125rem; font-weight: 900; }
.preparation .intake-columns > .panel { min-width: 0; margin: 0; }
.preparation .panel .no { margin-bottom: 1rem; }
.preparation fieldset { min-width: 0; margin-inline: 0; padding: 0; border: 0; }
.preparation .intake-count { margin: 1.5rem 0; }
.intake-count legend { margin-bottom: 0.75rem; }
.intake-count-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); gap: 0.5rem; }
.intake-count-options label { display: flex; align-items: center; gap: 0.75rem; padding: 1rem; background: var(--field); color: var(--slate); cursor: pointer; font-weight: 900; }
.intake-count-options input { width: 1.125rem; height: 1.125rem; margin: 0; accent-color: currentColor; }
.intake-count-options label:has(:checked) { background: var(--pick); color: var(--pick-ink); }
.intake-count-options label:hover { background: var(--pick); color: var(--pick-ink); }
.preparation [data-second-section] { display: block; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.preparation [data-second-section] > legend { float: left; width: 100%; margin: 0 0 1rem; font-size: 1.25rem; font-weight: 900; }
.preparation [data-second-section] > legend + * { clear: both; }
.preparation [data-second-section]:disabled { opacity: 0.5; }
.preparation [data-second-section]:disabled .upload { pointer-events: none; }
.preparation .second-address { display: block; margin-top: 1.5rem; }
.preparation .intake-notes { margin: 1.5rem 0; }
.preparation .intake-notes textarea { margin-top: 0.75rem; }
.preparation .intake-resources .ask-links { display: grid; grid-template-columns: minmax(0, 1fr); }
.preparation .intake-resources .ask-links a { min-width: 0; overflow-wrap: anywhere; }
.preparation .intake-resources .own-link-row a { flex-basis: auto; }
.preparation .intake-resources .files-head { margin-top: 0; }
.preparation .intake-resources .pdfs { grid-template-columns: minmax(0, 1fr); }
.preparation .times .time input:hover:not(:disabled) + span { background: var(--pick); color: var(--pick-ink); }
.preparation .times .time input:checked + span { border-bottom: 4px solid var(--red); font-weight: 900; }
.preparation .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (min-width: 64rem) {
  .preparation > header.wrap, .preparation > main.wrap, .preparation > footer .wrap { max-width: 70rem; }
  .preparation .intake-intro { width: calc((100% - 1.5rem) / 2); }
  .intake-columns { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; }
  .intake-column-title { display: block; }
}

/* Calm the repeated instructions; colour belongs to the card, not nested boxes. */
.preparation .panel > h2 + p { padding: 0; background: transparent; color: var(--mute); }
.preparation .panel > h2 + p + ul.rules { margin-top: 1rem; padding: 0 0 0 1.25rem; background: transparent; color: var(--mute); }
.preparation .intake-columns > .panel { display: flex; flex-direction: column; }
.preparation .panel .send { margin-top: auto; flex-shrink: 0; }
/* Brand ramps: r-50, r-100, r-200. Slate text on pale red, including consent. */
.preparation .panel.intake-finish { --ground: #fdf3f3; --inset: #fbe4e4; --mark: #f5c4c5; }
.preparation .panel .consent, .preparation .panel .given { color: var(--ink); }
.preparation .intake-resources .ask { border-top: 0; padding-top: 0; }
.preparation .intake-resources .ask p { color: var(--mute); }
.preparation .intake-resources .pdfs a { color: var(--ink); border-color: var(--line); }
.preparation .intake-resources .pdfs a:hover { border-color: var(--white); }
.preparation .intake-resources .pdfs small { color: var(--mute); }
.preparation .intake-resources .ask-links a, .preparation .intake-resources .own-link-row button { background: var(--white); color: var(--slate); }
.preparation .intake-resources .ask-links a:hover, .preparation .intake-resources .own-link-row button:hover { background: var(--hair); }
.preparation .intake-resources :focus-visible { outline-color: var(--white); }
.preparation .panel.petrol { --mute: var(--white); --line: var(--petrol-mark); }
.preparation .panel.petrol input:focus-visible, .preparation .panel.petrol select:focus-visible { outline-color: var(--white); }
/* Keep the two-person mode readable without growing every optional field into a row. */
@media (min-width: 64rem) {
  .preparation .intake-columns > .panel .two { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .preparation .intake-columns > .panel .street-row { grid-template-columns: minmax(0, 1fr) 7.5rem; }
  .preparation .intake-columns > .panel .street-row.number-first { grid-template-columns: 7.5rem minmax(0, 1fr); }
}

.preparation .panel .drop.enhanced .drop-text strong { background: var(--slate); }
html[data-theme="dark"] .preparation .panel.slate { --ground: #404346; --inset: #555759; --mark: #6f7275; }

/* The supplied 21:2 horse strip shares the cards' outside edges. */
.preparation > main.wrap { padding-bottom: 0; }
.preparation .preparation-video-footer { width: 100%; max-width: 44rem; margin: 4rem auto 0; padding: 0 1.25rem; }
.preparation-footer-band { display: grid; background: var(--red); }
.preparation-footer-band video { display: block; grid-area: 2 / 1; width: 100%; height: auto; aspect-ratio: 21 / 2; object-fit: contain; }
.preparation > .preparation-video-footer .wrap { grid-area: 1 / 1; position: relative; z-index: 1; max-width: none; border: 0; padding: 1.5rem 1rem 2rem; color: var(--white); font-size: 0.875rem; line-height: 1.25rem; font-weight: 400; }
.preparation .preparation-video-footer a:hover { color: var(--white); text-decoration: none; }
@media (min-width: 48rem) {
  .preparation .preparation-video-footer { margin-top: 6rem; }
  .preparation > .preparation-video-footer .wrap { padding-inline: 2rem; }
}
@media (min-width: 64rem) { .preparation .preparation-video-footer { max-width: 70rem; } }
@media (min-width: 80rem) {
  .preparation-footer-band video { grid-area: 1 / 1; }
  .preparation:not(.consent-page) .preparation-footer-band video { height: 8.1875rem; aspect-ratio: auto; object-fit: cover; }
  .preparation > .preparation-video-footer .wrap { align-self: center; }
}

/* Keep every action label intact. Reflow whole controls instead of their text. */
.preparation button, .preparation [role="button"], .preparation .time span,
.preparation .intake-count-options label, .preparation .drop-text strong { white-space: nowrap; }
.preparation .panel .times.pair { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.preparation .intake-count-options input { flex-shrink: 0; }

.preparation .intake-resources .pdfs a { align-items: center; white-space: nowrap; }
.preparation .pdf-arrow { margin-left: auto; flex-shrink: 0; font-weight: 500; }
/* Keep the full link title and arrow on one line on narrow phones. */
@media (max-width: 35.999rem) { .preparation .intake-resources .pdfs small { display: none; } }

/* A personal consent page is one readable column, prefilled for one guest. */
.consent-page > main.wrap, .consent-page > header.wrap { max-width: 44rem; }
.consent-page .intake-intro { width: 100%; }
.consent-page .personal-consent-details dt { color: var(--mute); }
.consent-page .personal-consent-details .note { margin-top: 1.5rem; }
.consent-wording { font-size: 1.125rem; line-height: 1.5; }
.consent-wording h3 { margin: 2rem 0 0.75rem; font-size: 1.25rem; line-height: 1.2; font-weight: 900; }
.consent-wording p { margin: 1rem 0; }
.personal-consent-form .choice { margin: 1rem 0; align-items: flex-start; overflow-wrap: anywhere; }
.personal-consent-form .send { margin-top: 2rem; }
.consent-record { padding-left: 1.25rem; }
.consent-record li { margin: 1rem 0; }
.consent-page .preparation-video-footer { max-width: 44rem; }
/* White footer text overlays the signature strip, inset from both edges. */
.consent-page .preparation-footer-band { position: relative; aspect-ratio: 2520 / 498; }
.consent-page > .preparation-video-footer .wrap { align-self: center; color: var(--white); padding: 1rem; }
.consent-page .preparation-footer-band video { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: 2520 / 498; object-fit: cover; }
@media (min-width: 48rem) {
  .consent-page > .preparation-video-footer .wrap { padding-inline: 2rem; }
}

.consent-wording, .personal-consent-details dd { overflow-wrap: anywhere; }
@media (max-width: 23.999rem) {
  .consent-page h1 { font-size: 2rem; }
  .consent-page h2 { font-size: 1.5rem; }
}

.withdrawal-form > label, .withdrawal-form > fieldset { display: block; margin-block: 1.5rem; }
.withdrawal-form fieldset { min-width: 0; border: 0; padding: 0; }
.withdrawal-form legend { margin-bottom: 0.75rem; }
.withdrawal-form .choice { margin-block: 0.5rem; align-items: flex-start; }
.withdrawal-form .send { margin-bottom: 1.5rem; }
