/* Contact page only: shared navigation, footer and contact widget keep site styles. */
.contact-main { color:#173454; background:white; }
.contact-main :is(h1,h2,h3) { color:#173454; line-height:1.25; }
.contact-main p { color:#587087; line-height:1.75; }
.contact-main .contact-container { width:min(1180px,100%); margin:auto; padding-inline:24px; }
body:not(.admin-page) main.contact-main > section { padding:76px 0 !important; min-height:0 !important; }
body:not(.admin-page) main.contact-main > section.contact-hero { padding:54px 0 60px !important; }
.contact-main section { scroll-margin-top:105px; }
.contact-main .contact-eyebrow { display:block; color:#087bb3; font-weight:800; font-size:11px; letter-spacing:1.7px; text-transform:uppercase; margin-bottom:14px; }
.contact-main .contact-hero-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:64px; align-items:center; }
.contact-main h1 { font-size:clamp(36px,4vw,54px); letter-spacing:-1.2px; margin-bottom:18px; }
.contact-main .contact-lead { font-size:17px; max-width:570px; margin-bottom:25px; }
.contact-main .contact-actions { display:flex; gap:12px; flex-wrap:wrap; }
.contact-main .btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:48px; padding:13px 23px; white-space:normal; }
.contact-main .contact-hours { background:#ffffffdb; padding:30px; border:1px solid #d5e7ee; border-radius:22px; box-shadow:0 16px 42px #1734540c; }
.contact-main .contact-hours h2 { font-size:24px; margin-bottom:22px; }
.contact-main .contact-hours dl { margin-bottom:18px; }
.contact-main .contact-hours dl > div { display:flex; justify-content:space-between; gap:15px; padding:14px 0; border-bottom:1px solid #deebf2; font-size:15px; }
.contact-main .contact-hours dt { font-weight:650; }
.contact-main .contact-hours dd { color:#587087; }
.contact-main .contact-hours p { font-size:14px; }
.contact-main .contact-heading { max-width:690px; margin:0 auto 32px; text-align:center; }
.contact-main .contact-heading h2 { font-size:34px; margin-bottom:14px; }
.contact-main .contact-methods { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.contact-main .contact-method { display:flex; flex-direction:column; padding:27px; border:1px solid #dce8ef; border-radius:20px; background:#fff; box-shadow:0 7px 25px #17345409; transition:transform .2s,box-shadow .2s; min-width:0; }
.contact-main .contact-method:hover { transform:translateY(-3px); box-shadow:0 14px 35px #17345415; }
.contact-main .contact-icon { display:grid; place-items:center; width:42px; height:42px; background:#e9f6fc; border-radius:13px; color:#087bb3; font-size:18px; margin-bottom:18px; }
.contact-main .contact-method h3 { font-size:21px; margin-bottom:10px; }
.contact-main .contact-method p { font-size:15px; margin-bottom:20px; }
.contact-main .contact-method a { margin-top:auto; color:#087bb3; font-size:15px; font-weight:750; min-height:44px; display:flex; align-items:center; gap:9px; overflow-wrap:anywhere; }
.contact-main .contact-visit-grid { display:grid; grid-template-columns:1fr 1.08fr; gap:40px; align-items:start; }
.contact-main .contact-visit h2 { font-size:34px; margin-bottom:22px; }
.contact-main address { font-style:normal; line-height:1.8; color:#587087; margin-bottom:18px; }
.contact-main .contact-location-note { padding:19px; border:1px solid #d5e7ee; border-radius:16px; background:#ffffffb0; margin:20px 0; font-size:15px; }
.contact-main .contact-map { background:#fff; border-radius:22px; border:1px solid #d5e7ee; overflow:hidden; box-shadow:0 14px 35px #1734540c; }
.contact-main .contact-map iframe { display:block; width:100%; height:350px; border:0; }
.contact-main .contact-map a { display:flex; padding:18px 22px; min-height:50px; color:#087bb3; font-weight:700; }
.contact-main .contact-message-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:55px; align-items:start; }
.contact-main .contact-message-copy h2 { font-size:34px; margin-bottom:20px; }
.contact-main .contact-message-copy p { margin-bottom:18px; }
.contact-main .contact-message-copy a { color:#087bb3; font-weight:700; }
.contact-main .contact-urgent { margin-top:28px; padding:22px; border:1px solid #f0d8bf; border-radius:18px; background:#fffaf4; }
.contact-main .contact-urgent h3 { font-size:19px; margin-bottom:10px; }
.contact-main .contact-form { padding:32px; border:1px solid #dce8ef; border-radius:22px; box-shadow:0 12px 35px #1734540c; }
.contact-main .contact-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.contact-main .contact-field { min-width:0; }
.contact-main .contact-field-wide { grid-column:1/-1; }
.contact-main label { display:block; font-weight:650; font-size:14px; margin-bottom:8px; }
.contact-main label span { font-weight:400; color:#587087; }
.contact-main :is(input,textarea) { width:100%; padding:13px 14px; border:1px solid #cddfe8; border-radius:12px; background:#f8fcfe; font:inherit; font-size:16px; color:#173454; }
.contact-main input { min-height:48px; }
.contact-main textarea { resize:vertical; min-height:135px; }
.contact-main .contact-form-note { font-size:13px; margin:20px 0; }
.contact-main .contact-status { margin-top:18px; padding:14px; border-radius:12px; background:#edf8fb; font-size:15px; }
.contact-main .contact-status[data-state=error] { background:#fff4ef; color:#934321; }
.contact-main .contact-status[data-state=success] { background:#edf9f3; color:#176348; }
.contact-main .contact-status[hidden] { display:none; }
.contact-main button:disabled { cursor:wait; opacity:.65; }
.contact-main .contact-faq { max-width:850px; margin:auto; }
.contact-main details { border:1px solid #dce8ef; border-radius:16px; padding:20px 22px; background:white; margin-bottom:12px; }
.contact-main summary { cursor:pointer; font-weight:700; min-height:30px; }
.contact-main details p { margin-top:13px; }
.contact-main details a { color:#087bb3; text-decoration:underline; }
.contact-main :is(a,button,input,textarea,summary):focus-visible { outline:3px solid #0e9eaa; outline-offset:4px; }
.contact-main .scroll-reveal-ready { opacity:1 !important; transform:none !important; }
@media(max-width:1024px) { .contact-main .contact-hero-grid { gap:30px; } .contact-main .contact-message-grid { gap:30px; } .contact-main .contact-method { padding:22px; } }
@media(max-width:800px) { .contact-main .contact-hero-grid,.contact-main .contact-visit-grid,.contact-main .contact-message-grid { grid-template-columns:1fr; gap:30px; } .contact-main .contact-methods { grid-template-columns:1fr 1fr; } }
@media(max-width:560px) {
 body:not(.admin-page) main.contact-main > section { padding:48px 0 !important; }
 .contact-main .contact-container { padding-inline:18px; }
 .contact-main .contact-methods,.contact-main .contact-form-grid { grid-template-columns:1fr; }
 .contact-main .contact-field-wide { grid-column:auto; }
 .contact-main .contact-form,.contact-main .contact-hours { padding:24px 20px; }
 .contact-main .contact-actions { flex-direction:column; }
 .contact-main .contact-hours dl > div { font-size:14px; }
 .contact-main .contact-map iframe { height:300px; }
 .contact-main .contact-heading h2,.contact-main .contact-visit h2,.contact-main .contact-message-copy h2 { font-size:29px; }
 .contact-main .contact-method a { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) { .contact-main * { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
