.nav-current { border-bottom: 1px solid var(--clay); padding-bottom: .2rem; }

.booking-hero { min-height: 760px; padding: clamp(4rem,8vw,8rem) clamp(1.4rem,7vw,8rem); display: grid; grid-template-columns: minmax(360px,.9fr) minmax(440px,1.1fr); gap: clamp(3rem,8vw,9rem); align-items: center; }
.booking-hero h1 { font-size: clamp(4.5rem,8vw,9rem); }
.booking-hero-copy > p:not(.eyebrow) { max-width: 570px; margin: 2rem 0 2.5rem; color: var(--muted); }
.booking-hero-image { position: relative; padding: 0 0 3rem 3rem; }
.booking-hero-image::before { content: ""; position: absolute; inset: 3rem 3rem 0 0; background: #ded2c6; }
.booking-hero-image img { position: relative; aspect-ratio: 4/5; object-fit: cover; }
.booking-hero-image p { position: relative; display: flex; justify-content: space-between; gap: 1rem; margin: 1rem 3rem 0 0; padding-right: 2rem; font-family: var(--display); font-size: clamp(1.1rem, 1.35vw, 1.4rem); font-style: italic; font-weight: 300; line-height: 1; letter-spacing: .04em; }

.booking-services { padding: clamp(6rem,10vw,10rem) clamp(1.4rem,4vw,4.5rem); background: var(--charcoal); color: white; }
.booking-section-heading { padding: 0 clamp(0rem,3vw,3.5rem); margin-bottom: 5rem; }
.booking-section-heading h2, .booking-approach h2, .booking-process h2, .service-area h2, .booking-faq h2, .booking-inquiry h2 { font-size: clamp(3.5rem,6.5vw,7.4rem); letter-spacing: -.035em; }
.booking-service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(1.2rem,2vw,2rem); }
.booking-service { border: 1px solid rgba(255,255,255,.14); min-width: 0; }
.booking-service img { aspect-ratio: 4/3; object-fit: cover; filter: saturate(.86); }
.booking-service div { position: relative; padding: 2.3rem clamp(1.25rem,2.3vw,2.3rem) 2.8rem; }
.booking-service div > span { position: absolute; right: 1.8rem; top: 2.7rem; color: rgba(255,255,255,.44); font-size: .65rem; letter-spacing: .14em; }
.booking-service h3 { padding-right: 2.3rem; font-size: clamp(2.25rem,3.2vw,3.8rem); letter-spacing: -.03em; }
.booking-service p { min-height: 8.5rem; color: rgba(255,255,255,.62); line-height: 1.7; }
.booking-service a { display: inline-block; color: white; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.6); padding-bottom: .18rem; text-transform: uppercase; letter-spacing: .12em; font-size: .68rem; }
.booking-service a b { margin-left: .5rem; font-weight: 400; }

.booking-approach { display: grid; grid-template-columns: minmax(320px,.85fr) minmax(380px,1.15fr); gap: clamp(3rem,9vw,10rem); align-items: center; }
.approach-image { padding-right: 3rem; position: relative; }
.approach-image::after { content: ""; position: absolute; inset: 3rem 0 -3rem 3rem; z-index: -1; background: #ded2c6; }
.approach-image img { aspect-ratio: 4/5; object-fit: cover; }
.approach-copy > p:not(.eyebrow) { max-width: 610px; color: var(--muted); }
.approach-copy ul { padding: 0; margin: 2.5rem 0 0; list-style: none; border-top: 1px solid var(--line); }
.approach-copy li { display: flex; align-items: center; gap: 1.3rem; padding: 1rem 0; border-bottom: 1px solid var(--line); font-family: var(--display); font-size: 1.45rem; }
.approach-copy li span { font-family: var(--sans); color: var(--muted); font-size: .62rem; letter-spacing: .14em; }

.booking-process { padding: clamp(6rem,11vw,11rem) clamp(1.4rem,7vw,8rem); background: #ded2c6; }
.process-intro { margin-bottom: 5rem; }
.process-list { padding: 0; margin: 0; list-style: none; display: grid; grid-template-columns: repeat(5,1fr); border-top: 1px solid rgba(52,48,44,.22); }
.process-list li { padding: 2rem clamp(1rem,2vw,2rem) 0; border-left: 1px solid rgba(52,48,44,.22); }
.process-list li:first-child { border-left: 0; padding-left: 0; }
.process-list span { color: var(--muted); font-size: .65rem; letter-spacing: .14em; }
.process-list h3 { margin-top: 2.7rem; font-size: clamp(1.8rem,2.2vw,2.5rem); line-height: 1.02; }
.process-list p { color: #6e655e; font-size: .88rem; line-height: 1.7; }

.service-area { min-height: 680px; position: relative; display: grid; place-items: center; overflow: hidden; color: white; text-align: center; }
.service-area > img, .service-area-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.service-area > img { object-fit: cover; }
.service-area-shade { background: rgba(7,9,10,.62); }
.service-area-copy { position: relative; z-index: 2; padding: 5rem 1.4rem; }
.service-area-copy p:last-child { max-width: 560px; margin: 2rem auto 0; color: rgba(255,255,255,.74); }

.booking-faq { display: grid; grid-template-columns: minmax(310px,.7fr) minmax(440px,1.3fr); gap: clamp(3rem,9vw,10rem); align-items: start; }
.faq-intro { position: sticky; top: 3rem; }
.faq-intro > p:last-child { max-width: 420px; color: var(--muted); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { padding: 1.5rem 3rem 1.5rem 0; cursor: pointer; list-style: none; position: relative; font-family: var(--display); font-size: clamp(1.35rem,2vw,1.8rem); line-height: 1.25; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: .3rem; top: 1.45rem; font-family: var(--sans); font-size: 1.25rem; font-weight: 300; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { margin: 0; padding: 0 2rem 1.5rem 0; color: var(--muted); }

.booking-inquiry { padding: clamp(6rem,10vw,10rem) clamp(1.4rem,7vw,8rem); display: grid; grid-template-columns: minmax(330px,.75fr) minmax(500px,1.25fr); gap: clamp(3rem,8vw,9rem); background: var(--charcoal); color: white; }
.inquiry-intro > p:not(.eyebrow) { max-width: 520px; color: rgba(255,255,255,.66); }
.inquiry-intro .form-note { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.18); font-size: .76rem; line-height: 1.7; text-transform: uppercase; letter-spacing: .08em; }
.inquiry-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem 1.2rem; align-content: start; }
.inquiry-form label { display: grid; gap: .5rem; color: rgba(255,255,255,.72); text-transform: uppercase; letter-spacing: .1em; font-size: .66rem; }
.inquiry-form input, .inquiry-form select, .inquiry-form textarea { width: 100%; min-height: 52px; border: 0; border-bottom: 1px solid rgba(255,255,255,.32); border-radius: 0; padding: .7rem 0; background: transparent; color: white; font: 400 1rem/1.5 var(--sans); text-transform: none; letter-spacing: normal; }
.inquiry-form select { color-scheme: dark; background-color: var(--charcoal); color: white; }
.inquiry-form select option, .inquiry-form select optgroup { background: var(--charcoal); color: white; }
.inquiry-form textarea { resize: vertical; }
.inquiry-form input:focus, .inquiry-form select:focus, .inquiry-form textarea:focus { outline: 0; border-bottom-color: white; }
.inquiry-form ::placeholder { color: rgba(255,255,255,.34); }
.field-wide { grid-column: 1 / -1; }
.conditional-field[hidden], [data-session-field][hidden] { display: none; }
.form-submit { margin-top: 1rem; }
.form-submit .button { border: 0; cursor: pointer; }
.form-submit p { min-height: 1.6rem; margin: 1rem 0 0; color: #e7b79f; font-size: .78rem; line-height: 1.6; }

@media (max-width: 1050px) {
  .booking-service-grid { grid-template-columns: 1fr; }
  .booking-service { display: grid; grid-template-columns: .9fr 1.1fr; }
  .booking-service img { height: 100%; min-height: 440px; }
  .booking-service p { min-height: 0; }
  .process-list { grid-template-columns: repeat(2,1fr); }
  .process-list li { padding: 2rem; border-bottom: 1px solid rgba(52,48,44,.22); }
  .process-list li:first-child { padding-left: 2rem; }
}

@media (max-width: 900px) {
  .booking-hero, .booking-approach, .booking-faq, .booking-inquiry { grid-template-columns: 1fr; }
  .booking-hero { min-height: auto; }
  .booking-hero-image { max-width: 680px; }
  .faq-intro { position: static; }
}

@media (max-width: 640px) {
  .booking-hero { padding-top: 4.5rem; }
  .booking-hero-image { padding: 0 0 1.5rem 1.5rem; }
  .booking-hero-image::before { inset: 1.5rem 1.5rem 0 0; }
  .booking-hero-image p { margin-right: 1.5rem; padding-right: .75rem; }
  .booking-service { display: block; }
  .booking-service img { min-height: 0; aspect-ratio: 4/3; }
  .process-list { grid-template-columns: 1fr; }
  .process-list li { border-left: 0; padding: 2rem 0; }
  .process-list li:first-child { padding-left: 0; }
  .process-list h3 { margin-top: 1.2rem; }
  .service-area { min-height: 580px; }
  .inquiry-form { grid-template-columns: 1fr; }
  .field-wide { grid-column: auto; }
}
