/* Contact: one useful opening, a direct conversation, and a clear place to find us. */
body[data-layout="contact"] { background:#09182c; }
.contact-skip { position:fixed; top:-80px; left:24px; z-index:100; padding:12px 18px; color:#142d4b; background:#fff; }
.contact-skip:focus { top:16px; }
body[data-layout="contact"] :is(.contact-opening,.contact-office,.contact-questions) :is(h1,h2) { position:static; height:auto; margin:0; font-family:"Inter",system-ui,sans-serif; font-weight:400; letter-spacing:-.055em; line-height:1.08; text-wrap:balance; }
.contact-opening { padding-top:100px; color:#edf4ff; background:#09182c; overflow:hidden; }
.contact-opening__layout { display:grid; grid-template-columns:.95fr 1.05fr; align-items:stretch; }
.contact-opening__intro { display:flex; flex-direction:column; padding:58px clamp(36px,5.5vw,88px) 54px 0; min-width:0; }
body[data-layout="contact"] .contact-opening h1 { font-size:clamp(58px,6.65vw,104px); line-height:1.02; letter-spacing:-.065em; }
.contact-opening h1 em { color:#a8caff; }
.contact-opening__intro>p { margin-top:29px; max-width:35ch; font-size:17px; line-height:1.8; color:#b3c8e3; }
.contact-direct { margin-top:46px; }
.contact-direct>div { border-top:1px solid #91b5e144; padding:23px 0 25px; }
.contact-direct dt { margin-bottom:9px; color:#9fbbdf; font-size:13px; }
.contact-direct dd { margin:0; }
.contact-direct a { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:44px; font-size:clamp(21px,2vw,30px); line-height:1.4; letter-spacing:-.035em; overflow-wrap:anywhere; }
.contact-direct a>span { flex-shrink:0; color:#93bbf3; transition:transform .2s; }
.contact-direct a:hover { color:#b2d1ff; }
.contact-direct a:hover>span { transform:translate(3px,-3px); }
.contact-opening__base { margin-top:auto; padding-top:32px; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px 25px; color:#a9c3e6; font-size:12px; }
.contact-link { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; min-height:44px; border-bottom:1px solid currentColor; font-size:13px; line-height:1.5; color:inherit; }
.contact-link>span { flex-shrink:0; font-size:21px; transition:transform .2s; }
.contact-link:hover>span { transform:translate(3px,-3px); }
.contact-compose { position:relative; isolation:isolate; min-width:0; padding:48px 0 54px clamp(36px,5vw,76px); color:#142d4b; --txt:#142d4b; --dim:#536d8e; --muted:#536d8e; --bg:#eef3f8; --card:#f9fbfd; --line:#96adc9; --sig:#3b72b8; }
.contact-compose::before { content:""; position:absolute; z-index:-1; inset:0 auto 0 0; width:calc(100% + 50vw); background:#eef3f8; }
.contact-compose__heading { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:12px 20px; margin-bottom:31px; }
body[data-layout="contact"] .contact-compose h2 { font-size:clamp(34px,3vw,46px); }
.contact-compose__heading>p { font-size:12px; line-height:1.6; color:#536b88; }
.contact-context { margin:0 0 24px; padding:14px 17px; color:#315988; background:#dce8f6; border-left:2px solid #608ecd; font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.contact-form { gap:22px; scroll-margin-top:120px; }
.contact-form .frow { gap:22px; }
.contact-form .frow>div { min-width:0; }
.contact-form label { font:13px/1.5 "Inter",system-ui,sans-serif; text-transform:none; letter-spacing:0; margin-bottom:8px; color:#294664; }
.contact-form label>span { color:#5e748f; font-size:11px; margin-left:3px; }
.contact-form :is(input,select,textarea) { min-height:48px; width:100%; border:1px solid #9bb0c966; border-bottom-color:#809bbc; border-radius:0; background:#f9fbfd; color:#142d4b; font:16px/1.5 "Inter",system-ui,sans-serif; padding:11px 13px; }
.contact-form select { appearance:auto; cursor:pointer; padding-right:12px; }
.contact-form select option { color:#142d4b; background:#f9fbfd; }
.contact-form textarea { min-height:128px; resize:vertical; }
.contact-form :is(input,select,textarea):focus { border-color:#487dbf; outline:2px solid #487dbf; outline-offset:2px; }
.contact-form .err { font:12px/1.5 "Inter",system-ui,sans-serif; text-transform:none; letter-spacing:0; color:#ac2941; margin-top:7px; }
.contact-form .bad :is(input,textarea) { border-color:#ac2941; }
.contact-form .form__foot { gap:18px; padding-top:2px; }
.contact-form .form__note { color:#536b88; font:12px/1.7 "Inter",system-ui,sans-serif; text-transform:none; letter-spacing:0; }
.contact-form .btn { flex-shrink:0; background:#183b66; color:#fff; }
.contact-form .btn:hover { background:#28558c; color:#fff; }
.contact-compose .contact-handoff { padding:21px; margin-top:25px; border:1px solid #91b0d6; background:#e0ebf8; color:#26496f; font-size:14px; }
.contact-compose .contact-handoff__actions { gap:8px; }
.contact-compose .contact-handoff__actions :is(a,button) { color:#254d7c; background:#f9fbfd; font-family:inherit; line-height:1.5; }
.contact-compose .contact-handoff__actions :is(a,button):hover { background:#fff; border-color:#477ebf; }
.contact-compose .contact-handoff textarea { width:100%; padding:13px; resize:vertical; background:#fff; color:#17395f; border:1px solid #8fa8c9; font:14px/1.6 "Inter",system-ui,sans-serif; }
.contact-office { padding:76px 0; color:#153152; background:#e1ebf6; scroll-margin-top:100px; }
.contact-office__layout { display:grid; grid-template-columns:1.25fr .75fr; gap:12%; align-items:start; }
body[data-layout="contact"] .contact-office h2 { font-size:clamp(42px,4.7vw,73px); }
.contact-office h2 em { color:#4677b5; }
.contact-office__intro>p { max-width:43ch; margin-top:26px; color:#536e90; font-size:15px; line-height:1.8; }
.contact-office__details { border-left:1px solid #8cabc866; padding-left:38px; }
.contact-office address { font-size:21px; font-style:normal; letter-spacing:-.025em; line-height:1.5; color:#23466f; }
.contact-office__details>p { margin-top:16px; color:#516d90; font-size:13px; line-height:1.6; }
.contact-office .contact-link { margin-top:22px; color:#345f93; }
.contact-office__details>.contact-office__coordinates { margin-top:24px; font-size:11px; font-variant-numeric:tabular-nums; color:#597391; }
.contact-questions { padding:78px 0 85px; background:#f4f7fa; color:#152e4e; }
.contact-questions__heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:46px; }
body[data-layout="contact"] .contact-questions h2 { font-size:clamp(43px,4.7vw,72px); }
.contact-questions h2 em { color:#4677b5; }
.contact-questions__heading>.contact-link { color:#3d6595; }
.contact-faq { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7%; align-items:start; }
.contact-faq>div { border-bottom:1px solid #a7bbd160; }
.contact-faq details { border-top:1px solid #a7bbd160; }
.contact-faq summary { list-style:none; cursor:pointer; position:relative; padding:23px 38px 23px 0; font-size:20px; line-height:1.45; color:#24456b; letter-spacing:-.025em; }
.contact-faq summary::-webkit-details-marker { display:none; }
.contact-faq summary::after { content:"+"; position:absolute; right:4px; top:20px; color:#4c7bb4; font-size:27px; font-weight:300; }
.contact-faq details[open] summary::after { content:"−"; }
.contact-faq details[open] summary { color:#3869a7; }
.contact-faq p { padding:0 38px 26px 0; max-width:60ch; color:#526d8d; font-size:15px; line-height:1.8; }
body[data-layout="contact"] .closeband { padding-top:60px; }
body[data-layout="contact"] .closeband .tagband { flex-direction:row; flex-wrap:wrap; gap:10px; align-items:center; }
body[data-layout="contact"] .closeband .tagband span { font-family:inherit; font-size:15px; text-transform:none; letter-spacing:0; }
@media(max-width:1100px) {
  .contact-opening__intro { padding-right:35px; }
  .contact-compose { padding-left:35px; }
  .contact-direct a { font-size:21px; }
  .contact-form .frow { gap:16px; }
  .contact-office__layout { gap:8%; }
}
@media(max-width:900px) {
  .contact-opening { padding-top:100px; }
  .contact-opening__layout { grid-template-columns:minmax(0,1fr); }
  .contact-opening__intro { padding:35px 0 40px; }
  body[data-layout="contact"] .contact-opening h1 { font-size:clamp(58px,9.5vw,80px); }
  .contact-opening__intro>p { max-width:47ch; margin-top:22px; }
  .contact-direct { display:grid; grid-template-columns:1.2fr .8fr; gap:28px; margin-top:30px; }
  .contact-direct>div { padding-block:17px; }
  .contact-direct a { font-size:21px; }
  .contact-opening__base { margin:0; padding-top:6px; }
  .contact-compose { padding:37px 0 42px; }
  .contact-compose::before { left:calc(-1 * var(--gutter)); width:calc(100% + 2 * var(--gutter)); }
  .contact-compose__heading { margin-bottom:26px; }
  .contact-form { scroll-margin-top:115px; }
  .contact-office,.contact-questions { padding-block:55px; }
  .contact-office__layout { grid-template-columns:1.15fr .85fr; gap:7%; }
  .contact-office__details { padding-left:25px; }
  .contact-office address { font-size:18px; }
  .contact-faq { grid-template-columns:minmax(0,1fr); gap:0; }
  .contact-faq>div:first-child { border-bottom:0; }
}
@media(max-width:600px) {
  .contact-opening { padding-top:84px; }
  body[data-layout="contact"] .contact-opening h1 { font-size:clamp(48px,10.9vw,64px); }
  .contact-opening__intro>p { font-size:16px; }
  .contact-direct { grid-template-columns:minmax(0,1fr); gap:0; margin-top:28px; }
  .contact-direct a { font-size:23px; }
  .contact-direct>div { padding-block:16px; }
  .contact-direct dt { margin-bottom:3px; }
  .contact-form .frow { grid-template-columns:minmax(0,1fr); gap:20px; }
  .contact-form .form__foot { flex-direction:column; align-items:stretch; gap:18px; }
  .contact-form .btn { justify-content:space-between; }
  .contact-office__layout { grid-template-columns:minmax(0,1fr); gap:30px; }
  .contact-office__details { padding:27px 0 0; border-left:0; border-top:1px solid #8cabc866; }
  .contact-questions__heading { align-items:flex-start; flex-direction:column; gap:25px; margin-bottom:32px; }
  .contact-faq summary { font-size:19px; }
  .contact-faq p { padding-right:15px; font-size:14px; }
}
@media(prefers-reduced-motion:reduce) { .contact-link>span,.contact-direct a>span { transition:none; transform:none !important; } }
@media print {
  .contact-skip,.contact-compose,.contact-link { display:none; }
  .contact-opening { padding-top:20px; }
  .contact-opening__layout { display:block; }
  .contact-opening__intro { padding:25px 0; }
  .contact-faq details { break-inside:avoid; }
}
