.contact-intro{background:var(--sand);padding:56px 0 46px;border-bottom:1px solid var(--line)}
.contact-intro h1{font-family:var(--serif);font-size:clamp(36px,4.5vw,58px);line-height:1.12;letter-spacing:-.035em;color:var(--ink-deep);margin:12px 0 18px}
.contact-intro .shell>p:last-child{max-width:650px;color:var(--muted);font-size:17px;line-height:1.7}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:start;gap:36px;padding-top:40px;padding-bottom:64px}
.contact-layout>*{min-width:0}
.contact-card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:32px;box-shadow:var(--shadow-sm);scroll-margin-top:130px}
.contact-layout h2{font-family:var(--serif);font-size:28px;line-height:1.25;color:var(--ink-deep);margin:0 0 14px}
.contact-form-intro{color:var(--muted);line-height:1.7;margin-bottom:24px}
.contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}
.contact-wide{grid-column:1/-1}
.contact-form .field{display:flex;flex-direction:column;gap:8px;min-width:0}
.contact-form .field label{color:var(--ink);font-size:14px;font-weight:650;line-height:1.4}
.contact-form .field input,.contact-form .field textarea{font-size:16px;border-radius:7px;line-height:1.5}
.contact-form .field input{height:48px}
.contact-form .field textarea{min-height:155px}
.contact-form :is(input,textarea):focus-visible{outline:2px solid var(--ink-soft);outline-offset:2px}
.contact-form [aria-invalid=true]{border-color:var(--danger)}
.contact-optional{font-weight:400;color:var(--muted);font-size:12px}
.contact-submit{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin-top:24px}
.contact-submit p,.contact-privacy{font-size:13px;color:var(--muted)}
.contact-privacy{margin-top:18px;line-height:1.6}.contact-privacy a{text-decoration:underline}
.contact-aside{border-radius:12px;background:var(--sand);overflow:hidden}
.contact-image{width:100%;height:210px;object-fit:cover}
.contact-aside-copy{padding:28px}.contact-aside-copy>p:not(.eyebrow){color:var(--muted);margin:0 0 20px}
.contact-aside-copy .eyebrow{margin-bottom:10px}
.contact-details{display:grid;gap:18px;margin-top:26px}.contact-details dt{font-size:12px;color:var(--muted);margin-bottom:3px}.contact-details dd{font-size:15px;overflow-wrap:anywhere}.contact-details a{text-decoration:none}.contact-details a:hover{text-decoration:underline}
.contact-errors{background:#fff5f4;color:#922e28;padding:18px;border:1px solid #e8b7b3;border-radius:7px;margin:20px 0;scroll-margin-top:135px}.contact-errors ul{margin:8px 0 0;padding-left:20px}.contact-errors a{color:inherit;text-decoration:underline}
.contact-field-error{color:var(--danger);font-size:13px}
.contact-success{padding:26px 0}.contact-success-icon{display:flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:50%;background:#eaf6ee;color:var(--success);font-size:26px;margin-bottom:22px}.contact-success p{color:var(--muted);margin-bottom:28px}.contact-text-link{display:block;margin-top:18px;text-decoration:underline}
.contact-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.primary-nav>a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}
@media(max-width:800px){.contact-intro{padding:36px 0 30px}.contact-layout{grid-template-columns:1fr;gap:24px;padding-top:24px;padding-bottom:44px}.contact-card{padding:24px}.contact-image{height:220px}}
@media(max-width:480px){.contact-card{padding:22px 18px}.contact-fields{grid-template-columns:1fr;gap:18px}.contact-wide{grid-column:auto}.contact-intro .shell>p:last-child{font-size:16px}.contact-submit .button{width:100%}.contact-aside-copy{padding:24px}.contact-layout h2{font-size:26px}}

/* Keep the mobile booking bar from covering contact fields. */
.contact-page .mobile-conversion-bar{display:none}
.contact-page{padding-bottom:0}
