/* A quiet contact page with one clear path through the inquiry. */
.contact-page main{max-width:1110px;padding:0 5.3%}
.contact-page .intro{display:block;padding:54px 0 36px}
.contact-page h1{font-size:clamp(34px,4.3vw,56px);margin:0;line-height:1.1}
.contact-page .intro>p{font-family:var(--serif);font-style:italic;font-size:17px;line-height:1.7;color:#65665d;margin:18px 0 0}
.contact-page .booking-layout{display:block;padding-bottom:64px}
.contact-page .inquiry-form{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:52px;align-items:start}
.contact-page legend{font-size:14px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;gap:10px;color:var(--red);min-height:29px}
.contact-page .step-number{border:0;width:auto;height:auto;font-size:13px}
.contact-page .step-number:after{content:'/';margin-left:10px;color:#a9a69b}
.contact-page .session-instruction{font-size:14px;line-height:1.5;margin:8px 0 20px;color:#65665d}
.contact-page .session-options{margin-top:0}
.contact-page .option-selector{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border:1.5px solid #89877e;border-radius:50%}
.contact-page input:checked~.option-heading .option-selector{border-color:var(--paper);background:var(--paper);color:var(--red)}
.contact-page input:checked~.option-heading .option-selector:after{content:'✓';font-size:14px;font-weight:700;line-height:1}
.contact-page .session-option{padding:18px 19px}
.contact-page .option-title{font-size:13px;letter-spacing:.035em}
.contact-page .option-description{font-size:14px;line-height:1.5;margin-top:8px}
.contact-page .details-fieldset{margin-top:0}
.contact-page .details-fieldset .field-hint{font-size:12px;margin:8px 0 20px;justify-content:flex-start}
.contact-page .fields-grid{gap:24px 22px}
.contact-page .phone-field{grid-column:1/-1}
.contact-page .optional-label{font-weight:400;color:var(--muted)}
.contact-page .fields-grid input,.contact-page .message-label textarea{font-size:16px}
.contact-page .message-label{margin-top:25px}
.contact-page .message-label textarea{min-height:104px}
.contact-page .submit{margin-top:24px;min-height:52px}
.contact-page .form-note{line-height:1.5;max-width:35ch;margin:12px auto 0}
.contact-page .form-note a{text-decoration:underline;text-underline-offset:3px}
.contact-page .submit:disabled{opacity:.65;cursor:wait}
.contact-page .form-status{font-size:15px;line-height:1.6;padding:14px 16px;border:1px solid var(--line);border-radius:4px;margin-top:18px}
.contact-page .form-status[data-state=success]{border-color:#687b55;color:#354729;background:#edf0e7}
.contact-page .form-status[data-state=error]{border-color:var(--red);color:#92291f}
.contact-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.contact-page .site-footer{padding-top:42px;padding-bottom:20px}
.contact-page .footer-main{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;padding-bottom:32px}
.contact-page .footer-brand .wordmark{width:150px}
.contact-page .footer-brand .wordmark strong{font-size:26px}
.contact-page .footer-brand .signature{font-size:28px}
.contact-page .footer-end{padding-top:16px}
@media(max-width:760px){
  .contact-page main{padding:0 6%}
  .contact-page .intro{padding:32px 0 28px}
  .contact-page h1{font-size:clamp(30px,8vw,42px);max-width:14ch}
  .contact-page .intro>p{font-size:16px;margin-top:14px;max-width:34ch}
  .contact-page .booking-layout{padding-bottom:38px}
  .contact-page .inquiry-form{grid-template-columns:1fr;gap:30px}
  .contact-page legend{display:flex;font-size:12px;letter-spacing:.1em}
  .contact-page .step-number{display:inline-flex}
  .contact-page .session-options{margin-top:0}
  .contact-page .session-option{padding:16px}
  .contact-page .option-title{font-size:13px}
  .contact-page .fields-grid{gap:18px}
  .contact-page .footer-main{flex-direction:column;align-items:flex-start;gap:24px;padding-bottom:26px}
  .contact-page .footer-contact a{font-size:13px}
}
