/* One continuous journey: calculate, choose attendance, enter details. */
.booking-journey{padding-block:64px 60px}
.booking-journey .booking-process{margin-top:0;margin-bottom:38px}
.booking-journey .section-intro{margin-bottom:32px}
.calculator-wide{padding:28px 34px;scroll-margin-top:24px}
.calculator-wide .calculator-heading{margin-bottom:14px}
.calculator-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:50px}
.calculator-top h3{font-size:28px;font-weight:450;letter-spacing:-.7px;margin:0 0 14px}
.calculator-wide .length-label{max-width:380px;margin:0;font-size:13px}
.calculator-wide .length-input input{font-size:28px}
.calculator-wide .estimate-result{padding:0;margin:0;min-height:0;border:0;text-align:right}
.calculator-wide .estimate-result>strong{font-size:64px;line-height:1.1;margin:3px 0}
.calculator-wide .estimate-result>strong.quote{font-size:30px}
.calculator-track{margin-top:22px}
.calculator-wide .range-markers{font-size:10px}
.calculator-wide .field-error:empty{display:none}
.calculator-bottom{display:flex;justify-content:space-between;gap:28px;align-items:center;margin-top:20px;padding-top:18px;border-top:1px solid #b4c6b840}
.calculator-wide .calculator-note{margin:0;font-size:11px}
.calculator-wide{position:relative}
.calculator-wide.explanation-open{z-index:4}
.calculator-note>p{margin:0}
.calculator-fee-line{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.calculator-fee-info{position:relative;flex:none}
.calculator-fee-info .calculator-fee-trigger{display:grid;place-items:center;width:44px;min-height:44px;padding:0;color:var(--lime)}
.calculator-fee-trigger:focus-visible{outline-color:var(--lime)}
.calculator-fee-symbol{display:grid;place-items:center;width:21px;height:21px;border:1px solid var(--lime);border-radius:50%;font-size:14px;font-weight:650;line-height:1;transition:background .18s,color .18s}
.calculator-fee-trigger:hover .calculator-fee-symbol,.calculator-fee-trigger:focus-visible .calculator-fee-symbol,.calculator-fee-trigger[aria-expanded="true"] .calculator-fee-symbol{background:var(--lime);color:var(--navy)}
.calculator-fee-panel h4{margin:0 20px 15px 0;color:var(--lime);font-size:22px;font-weight:500;line-height:1.3;letter-spacing:-.4px}
@media(prefers-reduced-motion:reduce){.calculator-fee-panel{animation:none}.calculator-fee-symbol{transition:none}}
.calculator-wide .button{width:auto;margin:0;min-width:210px;flex-shrink:0}
.booking-journey .scope-disclosure{margin-top:0;border-top:0}
.booking-journey .scope-disclosure>summary{padding:16px 0}
.reservation-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:28px;align-items:start;margin-top:28px}
.reservation-grid>*{min-width:0}
.reservation-grid .calendar-card,.reservation-grid .booking-card{padding:30px;border:1px solid #cbd5c5;scroll-margin-top:24px}
.reservation-grid .calendar-heading h3,.booking-card>h3{font-size:27px;font-weight:450;letter-spacing:-.8px;line-height:1.2}
.booking-card>h3{margin:20px 0 10px}
.booking-intro{font-size:12px;line-height:1.8;color:var(--muted);margin:0}
.reservation-grid .form-heading{padding-bottom:17px;font-size:9px;letter-spacing:1.5px}
.reservation-grid .form-heading>span:last-child{font-size:7px}
.reservation-grid .preview-note{margin-top:16px;padding:12px 15px}
.reservation-grid .calendar-area{font-size:12px}
.reservation-grid .calendar-day{min-height:44px}
.reservation-grid .calendar-month-bar{padding-top:17px}
.reservation-grid .field label{font-size:11px}
.reservation-grid .field select{font-size:12px}
.reservation-grid .field-grid{gap:18px 14px}
.booking-recap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:22px;background:var(--sage);padding:20px;margin-top:28px}
.recap-label{display:block;font-size:8px;letter-spacing:1.3px;color:#536650;line-height:1.6}
.booking-recap strong{display:block;font-size:17px;line-height:1.4;font-weight:500;margin:10px 0 7px}
.booking-recap #booking-estimate{font-family:var(--serif);font-size:35px;font-weight:400;line-height:1.2}
.booking-recap #booking-estimate.quote{font:500 17px/1.4 var(--sans)}
.booking-recap p{font-size:10px;color:var(--muted);line-height:1.7;margin:0}
.booking-recap a{display:inline-block;font-size:10px;border-bottom:1px solid #a4b397;margin-top:13px;padding-bottom:3px}
.booking-recap a span{margin-left:5px}
.booking-preview-disclaimer{margin:10px 0 0;font-size:10px;line-height:1.7;color:var(--muted);text-align:center}
.booking-card .privacy-note{margin-top:12px}
.booking-result{margin-top:24px;padding:22px;background:#e9eee0;border-left:2px solid #718663}
.booking-result .eyebrow{margin-bottom:10px;font-size:8px}
.booking-result h3{font-weight:500;font-size:21px;line-height:1.3;margin-bottom:12px}
.booking-result p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:15px}
.booking-result button{font-size:11px}
.booking-journey .process-confirmation{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:52px;padding:32px 36px;margin-top:28px;border:1px solid #cbd5c5;background:#e4eadd}
.process-confirmation .eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:13px;color:#5e7253}
.booking-journey .process-confirmation h3{font-size:26px}
.booking-journey .process-confirmation .report-guarantee{border-left:1px solid #b8c5b0;padding-left:36px;font-size:19px;line-height:1.65;margin:0;text-wrap:pretty}
.contact-section{padding:60px 0;background:var(--navy);color:var(--paper)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.contact-copy{font-size:13px;line-height:1.9;color:#bacdc5;max-width:370px;margin:22px 0 0}
.contact-details{font-style:normal}
.contact-details>a{display:block;padding:20px 0 24px;border-bottom:1px solid #bed1b944}
.contact-label{display:block;font-size:8px;letter-spacing:1.5px;line-height:1.7;color:var(--lime);margin-bottom:12px}
.contact-value{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:clamp(25px,2.5vw,34px);letter-spacing:-.8px;line-height:1.3}
.contact-value>span{color:var(--lime);font-size:26px;flex:none}
.contact-email{font-size:clamp(19px,2vw,27px);letter-spacing:-.4px;overflow-wrap:anywhere}
.contact-details>p{font-size:11px;color:#bacdc5;line-height:1.8;margin:20px 0 0;max-width:370px}
.contact-details>a:hover .contact-value{color:var(--lime)}
@media(min-width:951px) and (min-height:850px){.reservation-grid .calendar-card{position:sticky;top:24px}}
@media(max-width:1120px){
  .reservation-grid{gap:22px}
  .reservation-grid .calendar-card,.reservation-grid .booking-card{padding:25px}
  .booking-journey .process-confirmation{gap:32px}
  .booking-journey .process-confirmation .report-guarantee{font-size:17px;padding-left:28px}
  .contact-grid{gap:60px}
}
@media(max-width:950px){
  .reservation-grid{grid-template-columns:1fr;gap:24px}
  .reservation-grid .calendar-card{position:static}
  .reservation-grid .calendar-day{min-height:48px}
  .reservation-grid .calendar-area{max-width:580px}
  .booking-recap{grid-template-columns:1fr 1fr}
  .booking-journey .process-confirmation{gap:28px;padding:28px}
  .contact-grid{gap:38px}
}
@media(max-width:650px){
  .booking-journey{padding-block:45px}
  .booking-journey .booking-process{margin-bottom:30px}
  .calculator-wide{padding:25px 22px}
  .calculator-wide .calculator-heading{font-size:8px;margin-bottom:22px}
  .calculator-top{grid-template-columns:1fr;gap:18px}
  .calculator-top h3{font-size:27px;margin-bottom:12px}
  .calculator-wide .length-label{max-width:none;font-size:12px}
  .calculator-wide .estimate-result{text-align:left;padding-top:17px;border-top:1px solid #b4c6b840}
  .calculator-wide .estimate-result>strong{font-size:59px;margin:5px 0}
  .calculator-wide .estimate-result>strong.quote{font-size:27px}
  .calculator-track{margin-top:20px}
  .calculator-bottom{flex-direction:column;align-items:stretch;gap:20px}
  .calculator-wide .button{width:100%;font-size:12px;min-width:0}
  .calculator-wide .calculator-note{font-size:10px}
  .booking-journey .scope-disclosure>summary{font-size:11px}
  .reservation-grid{margin-top:22px;gap:20px}
  .reservation-grid .calendar-card,.reservation-grid .booking-card{padding:24px 21px}
  .reservation-grid .calendar-heading h3,.booking-card>h3{font-size:26px}
  .reservation-grid .calendar-day{min-height:42px}
  .reservation-grid .calendar-heading{gap:10px}
  .reservation-grid .calendar-heading svg{width:23px}
  .reservation-grid .calendar-area,.booking-intro{font-size:11px}
  .reservation-grid .form-heading{font-size:8px;letter-spacing:1px}
  .reservation-grid .form-heading>span:last-child{font-size:6px}
  .reservation-grid .field label{font-size:12px}
  .reservation-grid .field select{font-size:16px}
  .booking-recap{grid-template-columns:1fr;gap:20px;padding:18px}
  .booking-recap>div+div{padding-top:18px;border-top:1px solid #c6d2be}
  .booking-recap p,.booking-recap a{font-size:11px}
  .booking-journey .process-confirmation{grid-template-columns:1fr;gap:22px;padding:25px 22px}
  .booking-journey .process-confirmation h3{font-size:25px}
  .booking-journey .process-confirmation .report-guarantee{border-left:0;border-top:1px solid #b8c5b0;padding:22px 0 0;font-size:17px}
  .contact-section{padding:48px 0}
  .contact-grid{grid-template-columns:1fr;gap:25px}
  .contact-copy{font-size:13px}
  .contact-value{font-size:28px}
  .contact-email{font-size:22px}
  .contact-details>a{padding:17px 0 22px}
}

.booking-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
#booking-result .inline-button { margin: .5rem 1rem .5rem 0; }
#check-booking { margin-top: 1rem; }
.booking-consent { margin: 1.5rem 0; padding: 1.1rem 0; border: 0; border-top: 1px solid #c6d2be; }
.booking-consent legend { font-size: 1rem; font-weight: 600; padding-right: .75rem; }
.consent-row { display: flex; align-items: flex-start; gap: .5rem; }
.consent-check { display: flex; align-items: flex-start; gap: .7rem; font-size: .95rem; line-height: 1.6; cursor: pointer; min-height: 44px; }
.consent-check input[type="checkbox"] { flex: 0 0 22px; width: 22px; min-height: 22px; height: 22px; margin: .15rem 0 0; accent-color: #143239; }
.consent-check a { text-decoration: underline; text-underline-offset: .15em; }
.booking-consent-help { position: relative; flex: 0 0 44px; }
.booking-consent-help .credential-trigger { display: inline-flex; width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 0; }
.booking-consent-help .credential-trigger>span { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid #93a683; border-radius: 3px; font: italic 17px Georgia,serif; }
.booking-consent-help .credential-panel { width: min(24rem, calc(100vw - 32px)); }
.booking-consent-help .credential-panel>strong { display: block; margin-bottom: .7rem; }
@media(max-width:650px) { .consent-check { font-size: .9rem; } }
