/* Contact page owns its layout; existing company contact data stays in templates. */
.page-hero.contact-hero{padding:26px 0 36px;background:#0f1e33;background-image:none;border-bottom:1px solid #ffffff20;color:#fff}
.page-hero.contact-hero h1{max-width:600px;color:#fff;font-size:clamp(30px,3.2vw,42px);font-weight:650;line-height:1.15;letter-spacing:-.035em;margin:14px 0 0}
.contact-hero p{max-width:660px;line-height:1.8;color:#536579;font-size:16px}
.contact-hero .breadcrumb{margin-bottom:24px;color:#b5c7d9}.contact-hero .breadcrumb a{color:#d4e2ef}.page-hero.contact-hero .eyebrow{color:#a7d6f5;margin:0;font-size:11px}
.contact-hero-link{margin-top:16px;display:inline-flex;align-items:center;gap:10px;min-height:44px;color:#a7d6f5;font-size:14px;font-weight:600;text-decoration:none}
.contact-page{padding-block:28px 64px}
.contact-page .contact-channels{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:26px}
.contact-page .contact-channels>a{min-width:0;padding:18px 20px;border:1px solid #dfe7ef;border-radius:10px;background:#fff;box-shadow:none}
.contact-page .contact-channels>a:hover{background:#f5f9fd;border-color:#84b8da;transform:none}
.contact-channels strong{overflow-wrap:anywhere;font-size:15px}
.contact-channels small{font-size:11px;color:#64758a}
.contact-page .contact-main{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:28px;align-items:start}
.contact-page .contact-main>.contact-form{min-width:0;padding:28px;background:#fff;border:1px solid #dfe7ef;border-radius:14px;box-shadow:none}
.contact-form-kicker{color:#0068ad;font-size:11px;font-weight:700;letter-spacing:.12em}
.contact-main .quote-form h2{color:#142b45;font-size:26px;line-height:1.25;letter-spacing:-.025em;margin:12px 0}
.contact-main .quote-form>p{font-size:14px;line-height:1.75}
.contact-fieldset{min-width:0;border:0;margin:28px 0 0;padding:0}
.contact-fieldset legend{padding:0 0 16px;font-size:12px;font-weight:700;color:#52677d;letter-spacing:.02em;width:100%;border-bottom:1px solid #e6edf4;margin-bottom:18px}
.contact-fieldset .quote-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.contact-fieldset label{min-width:0;display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;color:#283c52}
.contact-main .quote-form input:not([type=checkbox]),.contact-main .quote-form select,.contact-main .quote-form textarea{min-height:48px;padding:12px 14px;border:1px solid #cbd7e3;border-radius:7px;background:#f9fbfd;font:inherit;font-size:16px;color:#24374d;width:100%}
.contact-main .quote-form input:focus,.contact-main .quote-form select:focus,.contact-main .quote-form textarea:focus{background:#fff;border-color:#006eb8;outline:3px solid #006eb820;outline-offset:1px}
.contact-main .quote-form [aria-invalid=true]{border-color:#bd3d32}
.contact-main .quote-form textarea{min-height:150px;resize:vertical;line-height:1.7}
.contact-field-hint{display:flex;justify-content:space-between;gap:12px;font-size:11px;font-weight:400;color:#64758a;line-height:1.6}
.message-count{white-space:nowrap;font-variant-numeric:tabular-nums}
.contact-fieldset .field-error{font-size:12px;font-weight:400;line-height:1.5;color:#a73228}
.contact-main .quote-consent{display:flex;align-items:flex-start;gap:10px;margin-top:24px;font-size:12px;line-height:1.7}
.contact-main .quote-consent input{margin-top:3px;flex-shrink:0;width:18px;height:18px;accent-color:#006eb8}
.contact-main .quote-form>.button{min-height:50px;border-radius:7px;width:100%;margin-top:18px;justify-content:center}
.contact-delivery-note{padding:14px;background:#eff6fc;border-radius:7px;color:#36556f!important;font-size:12px!important}
.contact-page .contact-office{border:1px solid #dfe7ef;border-radius:14px;overflow:hidden;background:#fff;position:sticky;top:110px}
.contact-page .contact-office-info{padding:28px}
.contact-office h2{font-size:24px}
.contact-office address{font-size:14px;line-height:1.8}
.contact-office .hours-note{font-size:12px;line-height:1.7}
.contact-office .map-block{min-height:240px;border-top:1px solid #dfe7ef;background:#eaf1f8}
.contact-office .map-actions{padding:16px 24px;font-size:13px}
@media(max-width:1000px){.contact-page .contact-main{grid-template-columns:1fr}.contact-page .contact-office{position:static}.contact-page .contact-channels{grid-template-columns:1fr}.contact-page .contact-channels>a{padding:18px}.contact-channels>a>svg:last-child{display:block}}
@media(max-width:600px){.contact-hero{padding-block:28px}.contact-hero h1{font-size:32px}.contact-hero p{font-size:15px}.contact-page{padding-block:28px 44px}.contact-page .contact-main>.contact-form{padding:24px 18px}.contact-fieldset .quote-fields{grid-template-columns:1fr;gap:16px}.contact-main .quote-form h2{font-size:25px}.contact-field-hint{flex-wrap:wrap}.contact-page .contact-office-info{padding:24px 20px}.contact-channels strong{font-size:14px}.contact-hero .breadcrumb{margin-bottom:18px}}

.contact-fieldset>label+label{margin-top:18px}

.contact-hero>.container,.contact-page.container{max-width:1200px}
.contact-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:64px;align-items:center}
.page-hero.contact-hero .contact-hero-copy p{font-size:15px;line-height:1.8;margin:0;color:#d3deea}
.contact-page .contact-channels>a>svg:first-child{padding:10px;width:42px;height:42px;border-radius:10px;background:#edf5fc;color:#006eb8;flex-shrink:0}
.contact-page .contact-channels strong{font-size:14px;line-height:1.5;color:#213950}
.contact-page .contact-channels small{font-size:11px;margin-bottom:4px;color:#64758a}
.contact-fieldset legend{color:#0068ad;font-size:11px;letter-spacing:.06em}
.contact-delivery-note{border-left:3px solid #80bce3;padding:12px 14px;line-height:1.6}
.contact-page .contact-office h2{color:#142b45;font-size:23px;line-height:1.3}
.contact-office .eyebrow{color:#006eb8}
.contact-main .quote-form>.quote-status:not(:empty){border-radius:8px;line-height:1.6;padding:14px}
@media(max-width:800px){.contact-hero-grid{grid-template-columns:1fr;gap:18px}.page-hero.contact-hero{padding-block:24px 28px}.page-hero.contact-hero h1{font-size:32px;max-width:520px}.contact-hero .breadcrumb{margin-bottom:18px}.contact-hero-link{margin-top:10px}}
@media(max-width:600px){.contact-page .contact-channels>a{padding:16px}.contact-page .contact-channels>a>svg:first-child{width:38px;height:38px;padding:8px}.page-hero.contact-hero h1{font-size:30px}}

/* Office card and map */
.contact-page .contact-office-info { padding:30px; background:#fff; }
.contact-page .contact-office h2 { margin:12px 0 24px; font-size:26px; letter-spacing:-.025em; }
.contact-page .contact-office address { display:flex; align-items:flex-start; gap:14px; font-size:16px; line-height:1.8; font-style:normal; }
.contact-page .contact-office address svg { flex-shrink:0; margin-top:5px; color:#007acc; }
.contact-page .contact-office .hours-note { display:flex; align-items:flex-start; gap:12px; padding:14px 16px; margin:22px 0 0; border-radius:8px; background:#f3f7fb; font-size:13px; }
.contact-office .hours-note svg { flex-shrink:0; margin-top:3px; }
.contact-page .contact-office .map-block { height:280px; min-height:0; border-top:1px solid #dfe7ef; background:#edf4fa; }
.contact-page .contact-office .map-block iframe { width:100%; height:100%; border:0; display:block; }
.contact-page .contact-office .map-block > div { padding:24px; }
.contact-page .contact-office .map-block h3 { font-size:20px; }
.contact-page .contact-office .map-actions { display:flex; flex-wrap:wrap; gap:10px; padding:18px 24px; background:#fff; }
.contact-page .map-actions a,.contact-page .map-actions button { min-height:44px; border-radius:8px; padding:12px 16px; font-size:14px; }
.contact-page .map-actions a { flex:1; justify-content:space-between; background:#007acc; color:#fff; border-color:#007acc; }
.contact-page .map-actions a:hover { background:#0068ae; color:#fff; }
.contact-page .map-actions .map-retry { border:0; background:#f0f4f8; color:#304861; }
.contact-page .map-actions p { flex-basis:100%; margin:0; font-size:12px; line-height:1.6; color:#62768b; }
@media(max-width:600px) { .contact-page .contact-office-info { padding:24px 20px; } .contact-page .contact-office .map-actions { padding:16px 20px; } .contact-page .contact-office .map-block { height:240px; } }
