.contact-page{--contact-navy:#042775;--contact-orange:#e75322;--contact-ink:#142c4e;--contact-rule:#bac8d9;background:#f5f7fa;color:var(--contact-ink);font-family:'Raleway',sans-serif}
.contact-page *{box-sizing:border-box}
.contact-banner{background:#e6ecf4}
.contact-banner .carousel-item img{display:block;width:100%;height:auto}

.contact-section{padding:clamp(8px,1.2vh,16px) 20px clamp(15px,2vh,25px);background:#f5f7fa}
.contact-shell{position:relative;display:grid;grid-template-columns:minmax(350px,38%) minmax(0,62%);max-width:1500px;min-height:0;margin:auto;background:#fafbfc}
.contact-aside{position:relative;grid-column:1;grid-row:1;display:flex;flex-direction:column;justify-content:space-between;min-width:0;min-height:100%;padding:clamp(28px,3vw,44px);overflow:hidden;background:#042775;color:#fff;isolation:isolate}
.contact-aside-photo{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:48% 47%;filter:saturate(.82)}
.contact-aside:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(2,22,60,.8) 0%,rgba(4,39,117,.35) 43%,rgba(2,22,60,.92) 100%)}
.contact-aside-top{max-width:450px}
.contact-kicker{display:block;color:#e5ebf5;font-size:10px;font-weight:900;letter-spacing:.16em}
.contact-aside h2{max-width:430px;margin:25px 0 13px;color:#fff;font-size:clamp(2.45rem,3.55vw,4.25rem);font-weight:900;line-height:1.04;letter-spacing:-.06em;text-wrap:balance}
.contact-aside-top>p{max-width:365px;margin:0;color:#f0f3f8;font-size:13px;font-weight:600;line-height:1.5}
.contact-channels{display:flex;flex-wrap:wrap;gap:18px 28px;margin-top:25px}
.contact-channel{display:block;min-width:0;color:#fff;text-decoration:none;transition:opacity .18s}
.contact-channel:hover,.contact-channel:focus-visible{color:#fff;opacity:.72}
.contact-channel small{display:block;margin-bottom:3px;color:#e5eaf3;font-size:9px;font-weight:900;letter-spacing:.14em}
.contact-channel strong{display:block;overflow-wrap:anywhere;font-size:13px;font-weight:800;line-height:1.35}

.contact-form-panel{grid-column:2;grid-row:1;min-width:0;padding:clamp(21px,2.4vh,30px) clamp(28px,3.2vw,52px) clamp(18px,2.2vh,29px);background:#fafbfc}
.contact-form-heading{margin-bottom:17px}
.contact-form-eyebrow{display:block;color:var(--contact-orange);font-size:10px;font-weight:900;letter-spacing:.15em}
.contact-form-heading h1,.contact-location-head h2{margin:6px 0 4px;color:var(--contact-navy);font-size:clamp(2rem,2.45vw,2.8rem);font-weight:900;line-height:1.08;letter-spacing:-.055em}
.contact-form-heading h1 span,.contact-location-head h2 span{color:var(--contact-orange)}
.contact-form-heading p{margin:0;color:#64738a;font-size:12px;line-height:1.4}
.contact-fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 20px}
.contact-field{grid-column:span 3;min-width:0}
.contact-field:nth-child(5),.contact-field:nth-child(6),.contact-field:nth-child(7){grid-column:span 2}
.contact-field-full,.contact-preferences{grid-column:1/-1}
.contact-field label,.contact-preferences legend{display:block;margin:0 0 3px;color:#1c355a;font-size:10px;font-weight:900;line-height:1.2;letter-spacing:.075em;text-transform:uppercase}
.contact-field label span,.contact-form-footer p span{color:var(--contact-orange)}
.contact-field input,.contact-field textarea{display:block;width:100%;min-height:35px;padding:6px 0 7px;border:0;border-bottom:1px solid var(--contact-rule);border-radius:0;outline:0;background:transparent;box-shadow:none;color:#17345c;font:700 14px/1.35 'Raleway',sans-serif;transition:border-color .18s}
.contact-field input::placeholder,.contact-field textarea::placeholder{color:#8797aa;font-weight:500;opacity:1}
.contact-field input:focus,.contact-field textarea:focus{border-bottom:2px solid var(--contact-orange)}
.contact-field input.is-invalid,.contact-field textarea.is-invalid{border-bottom-color:#b73e2a}
.contact-error{display:block;margin-top:3px;color:#b73e2a;font-size:10px;font-weight:700}

.contact-preferences{min-width:0;margin:2px 0 0;padding:0;border:0}
.contact-preferences legend{float:none;width:auto;margin-bottom:8px;padding:0}
.contact-preference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px}
.contact-choice{position:relative;display:flex;align-items:center;gap:8px;min-height:28px;padding:3px 4px 3px 0;border-bottom:1px solid #d5dfe9;color:#38516e;font-size:11px;font-weight:800;line-height:1.2;cursor:pointer;transition:color .18s,border-color .18s}
.contact-choice input{position:absolute;width:1px;height:1px;opacity:0}
.contact-choice-mark{position:relative;flex:none;width:12px;height:12px;border:1px solid #91a5c0;background:transparent;transition:background .18s,border-color .18s}
.contact-choice-mark i{position:absolute;left:0;top:-4px;color:#fff;font-size:12px;opacity:0}
.contact-choice:hover{color:var(--contact-navy);border-color:#8ea7c8}
.contact-choice:has(input:checked){color:var(--contact-navy);border-color:var(--contact-orange)}
.contact-choice input:checked+.contact-choice-mark{border-color:var(--contact-orange);background:var(--contact-orange)}
.contact-choice input:checked+.contact-choice-mark i{opacity:1}
.contact-choice:has(input:focus-visible){outline:2px solid #6885b2;outline-offset:2px}

.contact-message{margin-top:1px}
.contact-message-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.contact-message-head label{margin:0}
.contact-message-count{color:#8b99aa;font-size:10px;font-weight:700}
.contact-message textarea{min-height:62px;max-height:120px;padding-top:9px;resize:vertical;font-size:13px;line-height:1.45}
.contact-form-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:14px}
.contact-form-footer p{margin:0;color:#76879c;font-size:10px;font-weight:700}
.contact-submit{display:inline-flex;align-items:center;justify-content:space-between;gap:27px;min-width:210px;min-height:45px;padding:0 17px;border:0;border-radius:0;background:var(--contact-orange);color:#fff;font-family:inherit;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:background .18s,transform .18s}
.contact-submit i{font-size:18px;transition:transform .18s}
.contact-submit:hover,.contact-submit:focus-visible{background:#cc4319;color:#fff}
.contact-submit:hover i,.contact-submit:focus-visible i{transform:translateX(4px)}
.contact-submit:focus-visible{outline:3px solid #082e70;outline-offset:2px}
.contact-submit.is-loading,.contact-submit:disabled{cursor:wait;opacity:.8}
.contact-alert{display:flex;align-items:flex-start;gap:9px;margin:0 0 10px;padding:8px 10px;border-left:3px solid currentColor;background:#edf3fa;font-size:12px;font-weight:700}
.contact-alert-success{color:#176236;background:#edf8f1}
.contact-alert-error{color:#a43b26;background:#fff1ed}

.contact-location{max-width:1400px;margin:0 auto;padding:35px 24px clamp(80px,7vw,125px)}
.contact-location-head{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:24px}
.contact-location-head h2{margin:9px 0 0;font-size:clamp(1.9rem,2.7vw,3.2rem)}
.contact-location-head p{flex:none;margin:0 0 5px;color:#385171;font-size:13px;font-weight:800;line-height:1.7}
.contact-location-head p i{margin-right:7px;color:var(--contact-orange)}
.contact-location-head small{padding-left:24px;color:#7f8ea3;font-size:12px;font-weight:600}
.contact-map{height:clamp(330px,32vw,460px);overflow:hidden;border:1px solid #d6e1ee;background:#dce6f1}
.contact-map iframe{display:block;width:100%;height:100%;border:0}

@media(min-width:901px) and (max-height:850px){.contact-form-panel{padding-top:16px;padding-bottom:14px}.contact-form-heading{margin-bottom:10px}.contact-form-heading h1{font-size:clamp(1.8rem,2.2vw,2.4rem)}.contact-fields{row-gap:9px}.contact-aside h2{font-size:clamp(2.3rem,3.1vw,3.4rem)}.contact-form-footer{margin-top:10px}}
@media(min-width:901px) and (max-height:750px){.contact-form-panel{padding-top:12px;padding-bottom:12px}.contact-fields{row-gap:7px}.contact-aside{padding-top:24px;padding-bottom:24px}.contact-message textarea{min-height:54px}}
@media(max-width:1100px) and (min-width:901px){.contact-shell{grid-template-columns:minmax(310px,37%) minmax(0,63%)}.contact-aside{padding:25px}.contact-aside h2{font-size:clamp(2.1rem,3.5vw,3rem)}.contact-form-panel{padding-inline:26px}.contact-fields,.contact-preference-grid{column-gap:12px}}
@media(max-width:900px){.contact-section{padding:12px 14px 26px}.contact-shell{grid-template-columns:1fr}.contact-aside{display:contents}.contact-aside-photo{position:absolute;z-index:0;top:0;left:0;right:0;bottom:auto;height:148px;object-position:50% 47%}.contact-aside:before{z-index:1;bottom:auto;height:148px;background:linear-gradient(90deg,rgba(2,22,60,.9),rgba(2,22,60,.33))}.contact-aside-top{position:relative;z-index:2;order:0;max-width:none;min-height:148px;padding:19px 25px;color:#fff}.contact-aside h2{max-width:490px;margin:9px 0 3px;font-size:clamp(1.55rem,3.2vw,2.1rem)}.contact-aside-top>p{max-width:500px;font-size:11px}.contact-form-panel{grid-column:1;grid-row:auto;order:1;padding:24px 25px}.contact-channels{order:2;margin:0;padding:17px 25px;background:#042775}.contact-channel{flex:1 1 190px}.contact-location-head{align-items:start;flex-direction:column;gap:12px}}
@media(max-width:600px){.contact-section{padding:9px 9px 22px}.contact-aside-photo,.contact-aside:before{height:135px}.contact-aside-top{min-height:135px;padding:16px 18px}.contact-aside h2{font-size:1.6rem}.contact-aside-top>p{font-size:10px}.contact-form-panel{padding:19px 18px}.contact-form-heading h1{font-size:1.9rem}.contact-fields{gap:11px 13px}.contact-field:nth-child(5),.contact-field:nth-child(6){grid-column:span 3}.contact-field:nth-child(7){grid-column:1/-1}.contact-preference-grid{column-gap:10px}.contact-choice{font-size:10px}.contact-form-footer{align-items:stretch;flex-direction:column-reverse;gap:8px}.contact-submit{width:100%}.contact-channels{padding:16px 18px}.contact-location{padding:25px 14px 65px}.contact-location-head{padding:0 4px}.contact-map{height:360px}}
@media(max-width:420px){.contact-field:nth-child(3),.contact-field:nth-child(4){grid-column:1/-1}.contact-preference-grid{grid-template-columns:1fr}.contact-aside-top>p{display:none}.contact-aside h2{max-width:290px}.contact-form-heading p{font-size:11px}}
@media(prefers-reduced-motion:reduce){.contact-page *, .contact-page *:before, .contact-page *:after{transition:none!important;animation:none!important}}
