/* Contact extends the shared appointment visual language. */
html{scroll-behavior:smooth;scroll-padding-top:24px}
.contact-layout{display:grid;grid-template-columns:1fr 1.08fr;gap:8%;padding-block:76px 88px;align-items:start}.contact-intro{padding-top:20px}.contact-intro h1{font-size:clamp(42px,4.3vw,58px);max-width:520px}.contact-intro .lead{font-size:17px}.contact-channels{margin:36px 0}.contact-channels>a{display:flex;gap:17px;align-items:center;text-decoration:none;padding:18px 0;border-bottom:1px solid #d9e5df}.channel-icon{width:44px;height:44px;border-radius:50%;background:#e5efea;color:#168b80;display:grid;place-items:center;font-size:22px;flex-shrink:0}.contact-channels small{display:block;font-size:10px;letter-spacing:.1em;color:#47646b;margin-bottom:4px}.contact-channels strong{font-size:23px;letter-spacing:-.025em}.contact-channels a:hover strong{color:#168b80}.contact-location{padding:26px 28px;background:#e5efea;border-radius:18px}.contact-location .eyebrow{font-size:10px}.contact-location h2{font-size:23px;letter-spacing:-.035em;margin:12px 0}.contact-location p{font-size:14px;color:#47646b;margin:12px 0}.contact-location a{display:flex;justify-content:space-between;gap:12px;font-size:13px;font-weight:700;text-underline-offset:4px}.contact-booking{font-size:13px;margin-top:25px;color:#47646b}.contact-booking a{font-weight:700;color:#175953}
.contact-form-card{padding:34px;background:#195fbb;color:white;border:1px solid #195fbb;border-top:4px solid #c8501e;border-radius:24px;box-shadow:0 20px 44px #195fbb20}.contact-form-card h2{font-size:32px;line-height:1.2;letter-spacing:-.035em;margin:0 0 12px}.contact-reply{border:0;padding:0;margin:0 0 24px;display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0}.contact-reply legend{margin-bottom:10px}.contact-reply label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;border:1px solid #ffffff65;border-radius:8px;padding:13px 10px;cursor:pointer}.contact-reply label:has(input:checked){background:white;color:#164c92}.contact-reply input{accent-color:#195fbb;margin:0;flex-shrink:0}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px}.contact-fields label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}.contact-fields input,.contact-fields textarea{display:block;width:100%;min-width:0;border:1px solid #cadbdc;border-radius:8px;background:#fff;color:#173a42;padding:11px 12px;font-size:16px}.contact-fields textarea{resize:vertical;min-height:150px}.contact-wide{grid-column:1/-1}.contact-consent{display:flex;align-items:flex-start;gap:10px;font-size:11px;line-height:1.7;margin:22px 0}.contact-consent input{width:17px;height:17px;flex-shrink:0;accent-color:#c8501e;margin-top:3px}.contact-consent a{text-underline-offset:3px}.contact-form-card .button{width:100%;border:0;border-radius:9px;background:#c8501e;color:white;padding:17px 14px;font-size:14px;font-weight:700;cursor:pointer;text-align:center;text-decoration:none;display:inline-block}.contact-form-card .button:hover{background:#af4217}.contact-form-note{font-size:11px;line-height:1.7;color:#e1edff;margin:16px 0 0}
.contact-form-card [role="status"]{font-size:14px;line-height:1.7;margin:0 0 20px}
.contact-form-error{font-size:13px;line-height:1.7;background:#ffffff1a;border:1px solid #ffffff45;border-radius:10px;padding:14px 16px;margin:0 0 20px}
.contact-form-error a{color:#fff;text-decoration:underline}
.contact-map-section{background:#e5efea;padding:64px 0 58px}.contact-map-heading,.contact-map-details{width:calc(100% - 64px);max-width:1160px;margin-inline:auto}.contact-map-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.contact-map-heading .eyebrow{margin-bottom:12px}.contact-map-heading h2{font-size:38px;line-height:1.15;letter-spacing:-.04em;margin:0}.contact-map-heading .button{border:1px solid #b6cdc1;padding:12px 20px;border-radius:8px;text-decoration:none;font-size:14px;font-weight:700;white-space:nowrap}.contact-map-heading .button:hover{background:#d2e4d9}.contact-map{border:0;border-radius:0;overflow:hidden;background:#dce9e1}.contact-map iframe{display:block;width:100%;height:400px;border:0}.contact-map-details{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:24px}.contact-map-details p{font-size:14px;color:#47646b;margin:0}.contact-map-details strong{display:block;font-size:15px;color:#173a42;margin-bottom:5px}.booking-footer{border-top:0;padding-top:28px}
@media(max-width:800px){.contact-layout{gap:5%}.contact-form-card{padding:25px}.contact-reply{grid-template-columns:1fr}.contact-fields{grid-template-columns:1fr}.contact-channels strong{font-size:20px}}
@media(max-width:650px){.contact-layout{grid-template-columns:1fr;padding-block:35px 40px;gap:32px}.contact-intro{padding-top:0}.contact-intro h1{font-size:43px}.contact-intro .lead{font-size:16px}.contact-channels{margin:22px 0}.contact-form-card{padding:26px 22px}.contact-map-section{padding:40px 0}.contact-map-heading,.contact-map-details{width:calc(100% - 36px)}.contact-map-heading{align-items:start;flex-direction:column;gap:20px}.contact-map-heading h2{font-size:32px}.contact-map iframe{height:340px}.contact-map-details{grid-template-columns:1fr;gap:20px}.contact-location{padding:22px}.contact-booking{margin-bottom:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:650px){.contact-layout{display:flex;flex-direction:column;gap:24px}.contact-intro{display:contents}.contact-intro>.eyebrow{order:0;margin:0}.contact-intro>h1{order:1;margin:0}.contact-intro>.lead{order:2}.contact-channels{order:3;width:100%;margin:0}.contact-form-card{order:4;width:100%}.contact-location{order:5;width:100%}.contact-booking{order:6;margin:0}}

@media(min-width:1024px){.contact-map iframe{min-height:600px}}

.contact-arrival{margin:20px 0;border-top:1px solid #bfd4c9;padding-top:18px;display:grid;gap:17px}.contact-arrival>div{display:flex;align-items:flex-start;gap:12px}.arrival-icon{color:#175953;flex:0 0 28px}.arrival-icon svg{width:26px;height:26px;display:block}.contact-arrival h3{font-size:14px;margin:0 0 4px;line-height:1.4}.contact-arrival p{margin:0;font-size:13px;line-height:1.65}.contact-map-section{padding-bottom:0}
