.contact-compose{padding:clamp(58px,7vw,92px) 0;background:#fff}
.compose-grid{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr);gap:clamp(36px,6vw,88px)}
.compose-grid header{align-self:start;padding-top:clamp(0px,2vw,26px)}
.compose-grid header h1{font-size:clamp(2.45rem,5vw,4.5rem)}
.compose-grid header p:not(.kicker){max-width:35ch;color:#454d58;font-size:1.04rem}
.compose-grid header a{color:#174f9f;font-weight:650;overflow-wrap:anywhere}
.compose-grid form{min-width:0;padding:clamp(22px,3vw,38px);border:1px solid #e1e8f0;border-radius:12px;background:#eef3fa}
.field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.compose-grid form>label,.field-pair label{display:block;margin-bottom:18px;font-weight:650}
.compose-grid label>span:not(.need-label){font-weight:400;color:#505966;font-size:.82rem}
.compose-grid form>label>input,.compose-grid .field-pair input,.compose-grid textarea{display:block;width:100%;min-width:0;border:1px solid #b7c0cb;border-radius:7px;background:#fff;padding:11px 12px;margin-top:6px;color:var(--ink)}
.compose-grid textarea{resize:vertical}
.compose-grid textarea::placeholder{color:#555e6a;opacity:1}
.compose-grid form>label>input:focus-visible,.compose-grid .field-pair input:focus-visible,.compose-grid textarea:focus-visible{border-color:var(--blue);outline:2px solid var(--blue);outline-offset:2px}
.compose-grid fieldset{border:0;padding:0;margin:0 0 20px;min-width:0}
.compose-grid legend{font-weight:650;margin-bottom:10px}
.needs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.needs label{display:flex;align-items:center;gap:10px;min-width:0;min-height:48px;padding:9px 0;border-bottom:1px solid var(--line);cursor:pointer}
.needs input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--blue);cursor:pointer}
.needs .need-label{color:var(--ink);font-size:.92rem;font-weight:400;line-height:1.35}
.needs input:checked+.need-label{color:#174f9f;font-weight:650}
.needs input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.form-note{font-size:.82rem;color:#505966;margin:8px 0 16px}
.faq.section{padding:clamp(60px,7vw,92px) 0}
.faq h2{font-size:clamp(1.9rem,3.2vw,2.8rem)}
.faq-grid{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:clamp(34px,6vw,88px)}
.faq-list details{border-top:1px solid var(--line);padding:17px 0}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{cursor:pointer;font-weight:650}
.faq-list details p{color:#454d58;margin:10px 0 2px}
@media(max-width:760px){
  .contact-compose,.faq.section{padding:48px 0}
  .compose-grid,.faq-grid{grid-template-columns:1fr;gap:26px}
  .compose-grid header{padding-top:0}
  .field-pair{grid-template-columns:1fr;gap:0}
  .compose-grid form{padding:22px}
}
@media(max-width:560px){.needs{grid-template-columns:1fr}}
@media(forced-colors:active){.contact-compose,.compose-grid form,.compose-grid form>label>input,.compose-grid .field-pair input,.compose-grid textarea{border-color:CanvasText;background:Canvas;color:CanvasText}.needs label,.faq-list details{border-color:CanvasText}.needs input:checked+.need-label{color:Highlight}}

/* The contact photograph fills its own hero; paper objects stay clear of live copy. */
.contact-page .contact-hero.secondary-hero{display:flex;align-items:center;min-height:calc(100svh - 92px);padding:64px 0;background:var(--ct-contact-deep-blue,#01365e)}
.contact-page .contact-hero.secondary-hero::before{display:none}
.contact-page .contact-hero.secondary-hero::after{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background-image:linear-gradient(rgb(255 255 255 / 8%) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / 8%) 1px,transparent 1px);background-size:56px 56px}
.contact-page .contact-hero-photo{position:absolute;z-index:-1;inset:0;width:100%;height:100%;margin:0;overflow:hidden;pointer-events:none;background:var(--ct-contact-deep-blue,#01365e)}
.contact-page .contact-hero-photo picture,.contact-page .contact-hero-photo img{display:block;width:100%;height:100%}
.contact-page .contact-hero-photo img{object-fit:cover;object-position:70% center}
.secondary-page.contact-page .contact-hero .secondary-hero-inner{position:relative;z-index:1;width:min(calc(100% - 48px),650px);max-width:none;margin-inline:auto;color:#fff;transform:none}
.secondary-page.contact-page .contact-hero h1{color:#fff}
.secondary-page.contact-page .contact-hero h1 .blue{color:#9ac6ff}
.secondary-page.contact-page .contact-hero .kicker{color:#d9e9ff}
.secondary-page.contact-page .contact-hero .hero-summary{color:#fff}
.secondary-page.contact-page .contact-hero .contact-hero-email{color:#fff;text-decoration:underline;text-underline-offset:4px}
.contact-page .contact-hero a:focus-visible{outline-color:#fff}
@media(max-width:980px){
  .contact-page .contact-hero.secondary-hero{min-height:calc(100svh - 92px)}
  .contact-page .contact-hero-photo img{object-fit:cover;object-position:62% center}
  .secondary-page.contact-page .contact-hero .secondary-hero-inner{width:min(100% - 48px,580px);margin:auto;transform:none}
}
@media(max-width:650px){
  .contact-page .contact-hero.secondary-hero{min-height:calc(100svh - 76px);padding:64px 0}
  .contact-page .contact-hero-photo img{object-fit:contain;object-position:center}
  .secondary-page.contact-page .contact-hero .secondary-hero-inner{width:calc(100% - 32px);transform:translateY(36px)}
  .secondary-page.contact-page .contact-hero h1{font-size:clamp(39px,10vw,56px)}
}
@media(forced-colors:active){.contact-page .contact-hero-photo,.contact-page .contact-hero.secondary-hero::after{display:none}.contact-page .contact-hero.secondary-hero{background:Canvas}.contact-page .contact-hero .secondary-hero-inner,.contact-page .contact-hero h1,.contact-page .contact-hero h1 .blue,.contact-page .contact-hero .kicker,.contact-page .contact-hero .hero-summary,.contact-page .contact-hero .contact-hero-email{color:CanvasText}}
