.booking-page { padding-bottom: var(--space-10); background: var(--color-petrol-950); }
.booking-page .section { min-width: 0; }
.booking-hero { position: relative; display: grid; min-height: 45rem; overflow: hidden; isolation: isolate; color: var(--color-warm-white); }
.booking-hero__image, .booking-hero__overlay, .booking-hero__container { grid-area: 1 / 1; }
.booking-hero__image { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 62% center; transition: transform 320ms ease; }
.booking-hero__overlay { z-index: 1; background: linear-gradient(90deg, rgba(7,24,26,.78) 0%, rgba(7,24,26,.52) 43%, rgba(7,24,26,.22) 75%), linear-gradient(0deg, rgba(7,24,26,.58), transparent 55%); }
.booking-hero__container { z-index: 2; display: flex; width: min(100% - (var(--container-padding) * 2), var(--container-max)); min-width: 0; padding-block: var(--space-10); }
.booking-hero__content { display: flex; width: min(100%, 31rem); min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.booking-hero__content > * { margin: 0; }
.booking-hero h1 { width: 100%; max-width: 11ch; font-size: clamp(3.5rem, 5.4vw, 4rem); }
.booking-hero__content .lead { max-width: 30rem; }
.booking-hero__actions { display: flex; width: 100%; min-width: 0; flex-wrap: wrap; gap: var(--space-3); }
.booking-hero__actions > * { min-width: 0; flex: 0 1 auto; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .booking-hero:hover .booking-hero__image { transform: scale(1.025); } }

.booking-path { background: var(--color-petrol-900); }
.booking-path__heading { width: min(100%, 39rem); }
.booking-path__heading > :last-child { margin-bottom: 0; }
.booking-path__choices { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-8); margin-top: var(--space-8); }
.booking-path__choice { position: relative; display: flex; min-width: 0; gap: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-divider-dark); }
.booking-path__choice--table { grid-column: 1; }
.booking-path__choice--program { grid-column: 2; }
.booking-path__number { flex: 0 0 2.5rem; color: var(--color-amber-300); font-family: var(--font-heading); font-size: 2rem; line-height: 1; }
.booking-path__program-mark { width: .75rem; height: .75rem; flex: 0 0 .75rem; margin-top: .55rem; border-radius: 50%; background: var(--color-sage-500); box-shadow: 1.5rem 0 0 rgba(135,155,120,.55), 3rem 0 0 rgba(135,155,120,.3); }
.booking-path__copy { min-width: 0; max-width: 30rem; }
.booking-path__choice--program .booking-path__copy { max-width: 36rem; }
.booking-path__copy a { color: var(--color-amber-300); font-size: var(--text-label); font-weight: 700; }
.booking-path__note { margin-top: var(--space-7); padding-top: var(--space-4); border-top: 1px solid var(--color-divider-dark); }
.booking-path__note p { width: min(100%, 54rem); margin-bottom: 0; }

.booking-form-section { background: var(--color-petrol-950); }
.booking-form-panel { width: min(100%, 64.5rem); margin-inline: auto; padding: var(--space-8); border-radius: var(--radius-lg); background: var(--color-cream-200); color: var(--color-ink); }
.booking-form-panel__heading { width: min(100%, 34rem); }
.booking-form-panel__heading > :last-child { margin-bottom: 0; }
.booking-form { display: flex; min-width: 0; flex-direction: column; gap: var(--space-6); margin-top: var(--space-7); }
.booking-form__status:empty { display: none; }
.booking-form__status { padding: var(--space-4); border-left: 2px solid var(--color-amber-500); background: rgba(217,154,69,.12); font-weight: 600; }
.booking-form__status--error { border-color: #8a3531; background: rgba(138,53,49,.1); }
.booking-form__type-group { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); margin: 0; }
.booking-form__type-group legend { margin: 0; }
.booking-form__help { margin: 0; color: rgba(23,42,42,.75); font-size: var(--text-meta); line-height: var(--leading-meta); }
.booking-form__type-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.booking-form__type-option { display: flex; min-width: 0; align-items: center; gap: var(--space-3); min-height: 3.5rem; margin: 0; padding: var(--space-3) var(--space-4); border: 1px solid var(--color-divider-light); border-radius: var(--radius-sm); background: var(--color-warm-white); font-size: var(--text-body); }
.booking-form__type-option input { width: 1rem; min-width: 1rem; }
.booking-form__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5) var(--space-4); }
.booking-form__field { display: flex; min-width: 0; flex-direction: column; gap: var(--space-2); }
.booking-form__field label { margin: 0; }
.booking-form__field input, .booking-form__field textarea { min-width: 0; }
.booking-form__field--date, .booking-form__field--time, .booking-form__field--guests { grid-column: span 4; }
.booking-form__field--name, .booking-form__field--email { grid-column: span 6; }
.booking-form__field--phone, .booking-form__field--program { grid-column: span 6; }
.booking-form__field--message { grid-column: 1 / -1; }
.booking-form__field[hidden] { display: none; }
.booking-form__optional { color: rgba(23,42,42,.68); font-weight: 400; }
.booking-form__error { min-height: 1.2em; margin: 0; color: #8a3531; font-size: var(--text-meta); font-weight: 700; line-height: var(--leading-meta); }
.booking-form__field.is-invalid input, .booking-form__field.is-invalid textarea { border-color: #8a3531; }
.booking-form__consent { display: flex; min-width: 0; flex-direction: column; gap: var(--space-2); }
.booking-form__consent label { display: flex; min-width: 0; align-items: flex-start; gap: var(--space-3); margin: 0; }
.booking-form__consent input { width: 1rem; min-width: 1rem; margin-top: .3rem; }
.booking-form__submit-row { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: var(--space-5); padding-top: var(--space-5); border-top: 1px solid var(--color-divider-light); }
.booking-form__submit-row p { width: min(100%, 33rem); margin: 0; font-size: var(--text-label); line-height: var(--leading-label); }
.booking-form__submit-row .button { flex: 0 0 auto; }

.booking-guidance { background: var(--color-petrol-900); }
.booking-guidance__layout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); justify-content: space-between; gap: var(--space-9); }
.booking-guidance__heading { width: min(100%, 22rem); }
.booking-guidance__heading > :last-child { margin-bottom: 0; }
.booking-guidance__list { display: flex; min-width: 0; flex-direction: column; }
.booking-guidance__item { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: var(--space-4); padding-block: var(--space-5); border-top: 1px solid var(--color-divider-dark); }
.booking-guidance__item:last-child { border-bottom: 1px solid var(--color-divider-dark); }
.booking-guidance__index { color: var(--color-amber-300); font-family: var(--font-heading); font-size: 2rem; line-height: 1; }
.booking-guidance__index--sage { color: var(--color-sage-500); }
.booking-guidance__item div { min-width: 0; max-width: 35rem; }
.booking-guidance__item h3 { margin-bottom: var(--space-2); }
.booking-guidance__item p { margin-bottom: 0; }

.booking-contact { background: var(--color-petrol-950); }
.booking-contact__layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-8); }
.booking-contact__heading { width: min(100%, 29rem); }
.booking-contact__heading > :last-child { margin-bottom: 0; }
.booking-contact__content { display: flex; min-width: 0; flex-direction: column; gap: var(--space-5); }
.booking-contact__panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.booking-contact__panel { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); padding: var(--space-5); }
.booking-contact__panel > * { margin: 0; }
.booking-contact__label { color: var(--color-sage-200); font-size: var(--text-meta); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.booking-contact__panel h3 { width: 100%; overflow-wrap: anywhere; font-size: clamp(1.4rem, 2.4vw, 2rem); }
.booking-contact__panel h3 a { color: var(--color-warm-white); text-decoration: none; }
.booking-contact__action { min-height: 2.75rem; padding-top: var(--space-2); color: var(--color-amber-300); font-size: var(--text-label); font-weight: 700; }
.booking-contact__note { margin: 0; padding-top: var(--space-4); border-top: 1px solid var(--color-amber-500); }

.booking-location { background: var(--color-petrol-900); }
.booking-location__heading { margin-bottom: var(--space-6); }
.booking-location__heading > :last-child { margin-bottom: 0; }
.booking-location__layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-5); align-items: stretch; }
.booking-location__address { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-5); padding: var(--space-7); border-radius: var(--radius-lg); background: var(--color-sage-200); color: var(--color-ink); }
.booking-location__address > * { margin: 0; }
.booking-location__address address { max-width: 33rem; font-family: var(--font-heading); font-size: clamp(1.9rem, 3.5vw, 3rem); line-height: 1.05; }
.booking-location__address p { max-width: 34rem; }
.booking-location__copy { display: flex; min-width: 0; flex-direction: column; justify-content: end; gap: var(--space-3); padding: var(--space-7); border-top: 1px solid var(--color-amber-500); background: var(--color-petrol-950); }
.booking-location__copy > * { margin: 0; }
.booking-location__copy p { max-width: 28rem; }

.booking-program { background: var(--color-petrol-950); }
.booking-program__layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-6); align-items: stretch; }
.booking-program__media { width: 100%; min-width: 0; margin: 0; overflow: hidden; border-radius: var(--radius-lg); }
.booking-program__media img { width: 100%; height: 100%; min-height: 35rem; object-fit: cover; object-position: center; transition: transform 320ms ease; }
.booking-program__panel { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; justify-content: end; gap: var(--space-4); padding: var(--space-7); }
.booking-program__panel > * { margin: 0; }
.booking-program__panel p { width: min(100%, 30rem); }
.booking-program__details { display: flex; width: 100%; min-width: 0; flex-direction: column; border-top: 1px solid var(--color-divider-dark); }
.booking-program__details p { display: grid; grid-template-columns: 6rem minmax(0, 1fr); width: 100%; gap: var(--space-3); padding-block: var(--space-3); border-bottom: 1px solid var(--color-divider-dark); font-size: var(--text-label); }
.booking-program__details strong { color: var(--color-amber-300); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .booking-program__media:hover img { transform: scale(1.025); } }

.booking-closing { background: var(--color-petrol-900); }
.booking-closing__panel { display: flex; width: min(100%, 38.75rem); min-width: 0; flex-direction: column; align-items: center; gap: var(--space-4); margin-inline: auto; padding: var(--space-7); text-align: center; }
.booking-closing__panel > * { margin: 0; }
.booking-closing__panel p { width: min(100%, 31rem); }
.booking-closing__links { display: flex; min-width: 0; flex-wrap: wrap; justify-content: center; gap: var(--space-4); }
.booking-closing__links > * { min-width: 0; }
.booking-closing__links a { min-height: 2.75rem; padding-block: var(--space-2); color: var(--color-amber-300); font-size: var(--text-label); font-weight: 700; }

@media (max-width: 980px) { .booking-form-panel { padding: var(--space-7); } .booking-form__field--date, .booking-form__field--time, .booking-form__field--guests { grid-column: span 6; } }
@media (max-width: 900px) { .booking-path__choices, .booking-guidance__layout, .booking-program__layout { grid-template-columns: minmax(0, 1fr); } .booking-path__choice--table, .booking-path__choice--program { grid-column: 1; } .booking-path__choices { gap: var(--space-5); } .booking-guidance__layout { gap: var(--space-7); } .booking-guidance__heading { width: min(100%, 34rem); } .booking-program__media img { min-height: 30rem; } .booking-program__panel { width: min(100%, 44rem); } }
@media (max-width: 840px) { .booking-contact__layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); } .booking-contact__heading { width: min(100%, 34rem); } .booking-contact__panels { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 800px) { .booking-location__layout { grid-template-columns: minmax(0, 1fr); } .booking-location__copy { min-height: 17rem; } }
@media (max-width: 760px) { .booking-form__grid { grid-template-columns: minmax(0, 1fr); } .booking-form__field--date, .booking-form__field--time, .booking-form__field--guests, .booking-form__field--name, .booking-form__field--email, .booking-form__field--phone, .booking-form__field--program, .booking-form__field--message { grid-column: 1; } .booking-form__submit-row { flex-direction: column; align-items: stretch; } .booking-form__submit-row p, .booking-form__submit-row .button { width: 100%; } }
@media (max-width: 639px) { .booking-page { padding-bottom: var(--space-11); } .booking-hero { min-height: clamp(38.75rem, 170vw, 42.5rem); } .booking-hero__image { object-position: 62% center; } .booking-hero__overlay { background: linear-gradient(0deg, rgba(7,24,26,.94) 0%, rgba(7,24,26,.78) 44%, rgba(7,24,26,.16) 78%); } .booking-hero__container { align-items: end; padding-block: var(--space-6); } .booking-hero__content { width: 100%; gap: var(--space-3); } .booking-hero h1 { max-width: 10ch; font-size: clamp(2.5rem, 12vw, 2.9rem); } .booking-hero__content .lead { max-width: 100%; font-size: 1rem; } .booking-hero__actions { flex-direction: column; } .booking-hero__actions > * { width: 100%; } .booking-path__heading, .booking-path__copy, .booking-path__choice--program .booking-path__copy { max-width: 100%; } .booking-path__choices { margin-top: var(--space-6); } .booking-form-panel { padding: var(--space-5); } .booking-form { margin-top: var(--space-6); } .booking-form__type-options { grid-template-columns: minmax(0, 1fr); } .booking-guidance__item { grid-template-columns: 2rem minmax(0, 1fr); gap: var(--space-3); } .booking-guidance__index { font-size: 1.75rem; } .booking-contact__panel { padding: var(--space-5); } .booking-contact__panel h3 { font-size: clamp(1.3rem, 7vw, 1.75rem); } .booking-contact__action { display: flex; align-items: center; } .booking-location__address, .booking-location__copy, .booking-program__panel, .booking-closing__panel { padding: var(--space-5); } .booking-location__address address { font-size: clamp(1.9rem, 9vw, 2.2rem); } .booking-location__copy { min-height: auto; } .booking-program__media img { min-height: auto; aspect-ratio: 4 / 3; } .booking-program__panel { width: 100%; } .booking-program__details p { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); } .booking-program__panel .button { width: 100%; } .booking-closing__panel { width: 100%; } .booking-closing__links { width: 100%; flex-direction: column; align-items: stretch; gap: 0; } .booking-closing__links a { width: 100%; } }
