/* Contact page */
.contact-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:60px;align-items:center;padding-block:56px 64px}
.contact-hero h1{font:500 clamp(2.7rem,4.6vw,4.6rem)/1.05 var(--serif);letter-spacing:-.03em;color:#0d234b;margin-top:14px}
.contact-hero h1 em{font-style:italic;color:#44886a}
.contact-hero-copy>p:not(.eyebrow){font-size:1.05rem;color:#4c5b66;max-width:520px;margin-top:22px}
.contact-hero-copy>p.contact-small{font-size:.8rem;color:#5e6c76;margin-top:18px}
.contact-quick{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-quick-card{position:relative;display:flex;flex-direction:column;gap:18px;padding:22px;min-height:150px;border:1px solid #d0ded6;border-radius:12px;background:#fff;color:#0d234b;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s}
.contact-quick-card:hover{transform:translateY(-3px);border-color:#44886a;box-shadow:0 12px 30px -18px rgba(13,35,75,.45)}
.contact-quick-card small{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:#477160}
.contact-quick-card strong{display:block;font-size:1rem;margin-top:4px;overflow-wrap:anywhere}
.contact-quick-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#edf7f0;color:#0d234b;flex:none}
.contact-quick-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.contact-quick-arrow{position:absolute;right:18px;top:16px;font-size:1.15rem;transition:transform .2s}
.contact-quick-card:hover .contact-quick-arrow{transform:translate(2px,-2px)}
.contact-quick-card.is-primary{background:#0d234b;border-color:#0d234b;color:#fff}
.contact-quick-card.is-primary small{color:#99dbbe}
.contact-quick-card.is-primary .contact-quick-icon{background:#ffffff1f;color:#fff}

.contact-offices{background:#f2f6f5;padding-block:72px}
.contact-office-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:26px;align-items:stretch}
.contact-office-side{display:flex;flex-direction:column;gap:16px}
.contact-office-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.contact-office-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:16px;text-align:left;border:1px solid #d0ded6;border-radius:10px;background:#fff;color:#0d234b;font:inherit;cursor:pointer;transition:transform .2s,border-color .2s,background .2s}
.contact-office-card small{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#477160}
.contact-office-card strong{font:500 1.35rem/1.2 var(--serif);margin-top:6px}
.contact-office-card .office-card-place{font-size:.78rem;color:#5b7065}
.office-distance{font-size:.74rem;font-weight:600;color:#2f6b52;min-height:1.1em}
.contact-office-card[aria-pressed=true]{background:#edf7f0;border-color:#44886a;box-shadow:inset 0 0 0 1px #44886a}
.contact-office-card:hover{transform:translateY(-2px);border-color:#4a9374}
.contact-quick-card:focus-visible,.contact-office-card:focus-visible,.contact-map-tools button:focus-visible,.office-copy:focus-visible,.chip:focus-visible,.segmented input:focus-visible+span{outline:3px solid #008cac;outline-offset:3px}
.contact-office-detail{flex:1;display:flex;flex-direction:column;align-items:flex-start;padding:28px;border-radius:12px;background:#0d234b;color:#fff}
.contact-office-detail .eyebrow{color:#99dbbe}
.contact-office-detail h3{font:500 2rem/1.15 var(--serif);color:#fff;margin-top:6px}
.contact-office-detail address{font-style:normal;white-space:pre-line;line-height:1.6;color:#d5e2e6;margin-top:14px}
.office-time{display:flex;gap:10px;align-items:baseline;width:100%;margin-top:16px;padding-top:14px;border-top:1px solid #ffffff26;font-size:.85rem;color:#b7cbd4}
.office-time strong{font-weight:600;color:#fff}
.office-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:auto;padding-top:22px}
.office-copy{padding:0;border:0;background:none;color:#fff;font:inherit;font-size:.9rem;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.office-copy-status{min-height:1.2em;margin-top:10px;font-size:.78rem;color:#abdfc9}
.contact-map-wrap{display:flex;flex-direction:column;gap:10px;min-width:0}
.contact-map{flex:1;min-height:460px;border:1px solid #d0ded6;border-radius:12px;overflow:hidden;background:#dfe8e4;z-index:0}
.contact-map.is-fallback{display:grid;place-items:center;padding:24px;text-align:center;color:#4c5b66}
.contact-map-tools{display:flex;flex-wrap:wrap;gap:10px}
.contact-map-tools button{padding:9px 16px;border:1px solid #c5d6cd;border-radius:999px;background:#fff;color:#0d234b;font:inherit;font-size:.85rem;cursor:pointer;transition:background .2s,border-color .2s}
.contact-map-tools button:hover{border-color:#44886a;background:#edf7f0}
.contact-map-tools button[disabled]{opacity:.6;cursor:progress}
.contact-map-note{font-size:.78rem;color:#5b6770}
.office-pin{background:none;border:0}
.office-pin span{display:grid;place-items:center;width:40px;height:40px;border:2px solid #fff;border-radius:50%;background:#0d234b;box-shadow:0 6px 14px -4px rgba(13,35,75,.6);transition:background .2s,transform .2s}
.office-pin b{color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.05em}
.office-pin.is-active span{background:#44886a;transform:scale(1.18)}
.contact-map .leaflet-container,.contact-map.leaflet-container{font-family:inherit}
.contact-map .leaflet-popup-content{font-size:.85rem;line-height:1.5;color:#0d234b}

.contact-message{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:60px;align-items:start}
.contact-message-intro h2,.contact-faq h2{font:500 clamp(2.1rem,3.3vw,3.1rem)/1.1 var(--serif);color:#0d234b;margin-top:12px}
.contact-message-intro>p:not(.eyebrow){color:#4c5b66;margin-top:18px}
.contact-points{display:grid;gap:12px;margin:26px 0 0;padding:0;list-style:none}
.contact-points li{position:relative;padding-left:28px;font-size:.92rem;color:#22384f}
.contact-points li::before{content:'';position:absolute;left:0;top:.2em;width:18px;height:18px;border-radius:50%;background:#edf7f0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='m5 9.3 2.5 2.5L13 6.3' fill='none' stroke='%2344886a' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat;box-shadow:inset 0 0 0 1px #b9d8c7}
.contact-form-card{padding:32px;border:1px solid #d9e4de;border-radius:14px;background:#fff;box-shadow:0 24px 50px -36px rgba(13,35,75,.35)}
#contact-form fieldset{margin:0 0 20px;padding:0;border:0}
#contact-form legend,.contact-field>span:first-child{display:block;margin-bottom:8px;font-size:.8rem;font-weight:600;color:#22384f}
.chip-row,.segmented{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:8px 15px;border:1px solid #c5d6cd;border-radius:999px;background:#fff;color:#0d234b;font:inherit;font-size:.85rem;cursor:pointer;transition:background .15s,border-color .15s}
.chip:hover{border-color:#44886a}
.chip[aria-pressed=true]{background:#0d234b;border-color:#0d234b;color:#fff}
.topic-hint{margin:-6px 0 20px;padding:10px 14px;border-radius:8px;background:#edf7f0;font-size:.84rem;color:#2f5a48}
.topic-hint:empty{display:none}
.topic-hint a{color:#0d234b;font-weight:600}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;margin-bottom:20px}
.contact-field{display:block}
.contact-field input,.contact-field select,.contact-field textarea{box-sizing:border-box;width:100%;padding:11px 13px;border:1px solid #c9d6d0;border-radius:8px;background:#fff;color:#0d234b;font:inherit;font-size:.95rem}
.contact-field textarea{min-height:130px;resize:vertical}
.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{outline:none;border-color:#44886a;box-shadow:0 0 0 3px #44886a33}
.contact-field [aria-invalid=true],.contact-consent input[aria-invalid=true]{border-color:#c0473d;box-shadow:0 0 0 3px #c0473d26}
.req{margin-left:3px;color:#a0322c}
.req[hidden]{display:none}
.segmented label{position:relative;cursor:pointer}
.segmented input{position:absolute;width:1px;height:1px;opacity:0}
.segmented span{display:inline-block;padding:8px 14px;border:1px solid #c5d6cd;border-radius:8px;background:#fff;color:#0d234b;font-size:.86rem;transition:background .15s,border-color .15s}
.segmented input:checked+span{background:#edf7f0;border-color:#44886a;box-shadow:inset 0 0 0 1px #44886a;font-weight:600}
.contact-two{display:grid;grid-template-columns:1fr;gap:0}
.char-count{display:block;margin-top:6px;text-align:right;font-size:.74rem;color:#6b7780}
.contact-consent{display:flex;align-items:flex-start;gap:10px;margin:4px 0 18px;font-size:.8rem;color:#4c5b66}
.contact-consent[hidden]{display:none}
.contact-consent input{flex:none;width:16px;height:16px;margin-top:3px}
.contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.contact-error{min-height:1.2em;margin:0 0 10px;font-size:.86rem;color:#a0322c}
.contact-submit{width:100%;justify-content:center}
.contact-submit[disabled]{opacity:.7;cursor:progress}
.contact-success{padding:26px 10px;text-align:center}
.contact-success[hidden]{display:none}
.contact-success:focus{outline:none}
.contact-success-mark{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 18px;border-radius:50%;background:#edf7f0;color:#2f6b52;font-size:1.8rem;animation:contact-pop .45s ease}
.contact-success h3{font:500 2rem/1.2 var(--serif);color:#0d234b}
.contact-success p{margin-top:12px;color:#4c5b66}
.contact-success .text-link{margin-top:20px;padding:0;border:0;background:none;font:inherit;cursor:pointer}
@keyframes contact-pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}

.contact-faq{background:#f2f6f5}
.contact-faq-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:60px}
.contact-faq details{padding:18px 0;border-bottom:1px solid #d0ded6}
.contact-faq summary{display:flex;justify-content:space-between;gap:16px;list-style:none;font-weight:600;color:#0d234b;cursor:pointer}
.contact-faq summary::-webkit-details-marker{display:none}
.contact-faq summary::after{content:'+';flex:none;font-size:1.3rem;line-height:1;color:#44886a;transition:transform .2s}
.contact-faq details[open] summary::after{transform:rotate(45deg)}
.contact-faq details p{margin-top:10px;font-size:.93rem;color:#4c5b66}

@media (max-width:980px){.contact-hero,.contact-office-layout,.contact-message,.contact-faq-layout{grid-template-columns:1fr;gap:32px}.contact-map{min-height:360px}}
@media (max-width:560px){.contact-hero{padding-block:34px 44px}.contact-quick,.contact-grid,.contact-two{grid-template-columns:1fr}.contact-quick-card{flex-direction:row;align-items:center;min-height:0;padding:16px 18px}.contact-quick-arrow{top:50%;transform:translateY(-50%)}.contact-quick-card:hover .contact-quick-arrow{transform:translateY(-50%)}.contact-offices{padding-block:48px}.contact-office-detail{padding:22px}.contact-map{min-height:300px}.contact-form-card{padding:22px}.contact-office-detail h3{font-size:1.7rem}}
@media (prefers-reduced-motion:reduce){.contact-quick-card,.contact-office-card,.office-pin span{transition:none}.contact-quick-card:hover,.contact-office-card:hover{transform:none}.contact-success-mark{animation:none}}
