.contact-page main{background:var(--cream)}
.contact-page .page-shell::before,.contact-page .page-shell>.site-header::before{content:none}
.contact-hero{padding:clamp(2.8rem,4.6vw,4.35rem) 0;background:var(--cream)}
.contact-hero-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr);align-items:center;gap:clamp(2.75rem,5.5vw,6rem)}
.contact-hero h1{max-width:760px;margin:.7rem 0 1.25rem;color:var(--green-ink);font-family:var(--display);font-size:clamp(3.3rem,5.1vw,4.9rem);font-weight:400;letter-spacing:-.035em;line-height:.96}
.contact-intro{max-width:650px;margin:0;color:var(--muted);font-size:1.04rem;line-height:1.7}
.contact-direct-panel{position:relative;padding:1.2rem 0 1.15rem 1.75rem;border-left:1px solid rgba(21,63,55,.2)}
.contact-direct-eyebrow{margin:0 0 1.35rem;color:#9a7656;font-size:.64rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase}
.contact-direct{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(1.5rem,3vw,2.5rem);margin:0}
.contact-direct div{min-width:0}
.contact-direct dt{margin-bottom:.35rem;color:#9a7656;font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.contact-direct dd{margin:0;color:var(--green-ink);font-family:var(--display);font-size:1.35rem;line-height:1.2}
.contact-phone dd{font-size:clamp(1.45rem,2vw,1.8rem)}
.contact-direct a{display:inline-flex;align-items:center;gap:.65rem;border-bottom:1px solid transparent;transition:border-color var(--ease),color var(--ease)}
.contact-direct a svg{flex:0 0 auto;color:#9a7656}
.contact-direct a:hover{color:var(--green);border-color:currentColor}
.contact-direct a:focus-visible{outline:2px solid var(--green);outline-offset:5px}

.contact-form-section{padding:clamp(3.5rem,5vw,4.75rem) 0 clamp(4.5rem,8vw,8rem);background:var(--paper)}
.contact-form-header{max-width:760px;margin-bottom:clamp(2.25rem,3.5vw,3.5rem)}
.contact-form-header h2{max-width:720px;color:var(--green-ink);font-family:var(--display);font-size:clamp(2.8rem,3.8vw,3.65rem);font-weight:400;letter-spacing:-.03em;line-height:1}
.contact-form-header>p:last-child{max-width:520px;margin:.85rem 0 0;color:var(--muted);font-size:.82rem}
.contact-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,390px);grid-template-areas:"service person" "fields person";gap:1.5rem clamp(3rem,7vw,7rem);align-items:start}
.service-field{grid-area:service}
.contact-fields{grid-area:fields;display:grid;gap:1.35rem}
.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.turnstile-slot{min-height:0}
.contact-person-panel{grid-area:person;align-self:stretch}
.contact-person-card{position:sticky;top:calc(88px + 1.5rem);overflow:hidden;background:var(--cream-deep);border:1px solid rgba(21,63,55,.12);border-radius:8px;transition:opacity 180ms ease}
.contact-person-card.is-changing{opacity:.38}
.contact-person-switcher{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:.65rem;background:var(--cream-deep);border-bottom:1px solid var(--line)}
.contact-person-switcher[hidden]{display:none}
.contact-person-switcher button{min-height:42px;padding:.6rem .7rem;border:1px solid rgba(21,63,55,.16);border-radius:5px;background:transparent;color:var(--green-ink);font-size:.72rem;font-weight:650;cursor:pointer;transition:background-color var(--ease),border-color var(--ease),color var(--ease)}
.contact-person-switcher button:hover{border-color:rgba(21,63,55,.38)}
.contact-person-switcher button[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:#fff}
.contact-person-visual{display:grid;aspect-ratio:4/3.55;place-items:center;background:linear-gradient(145deg,#eee4d3,#f8f3e9)}
.contact-person-visual img{width:clamp(92px,8vw,128px);height:auto;opacity:.24;filter:saturate(.62)}
.contact-person-visual.is-general img{width:clamp(110px,10vw,154px);opacity:.88;filter:none}
.contact-person-visual.has-photo img{width:100%;height:100%;object-fit:cover;object-position:center 38%;opacity:1;filter:none}
.contact-person-copy{padding:1.65rem 1.7rem 1.85rem}
.contact-person-label{margin:0 0 .75rem;color:#9a7656;font-size:.62rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.contact-person-copy h3{margin:0 0 .3rem;color:var(--green-ink);font-family:var(--display);font-size:2rem;font-weight:500;line-height:1.05}
.contact-person-role{margin:0;color:var(--green);font-size:.8rem;font-weight:650}
.contact-person-description{margin:1.2rem 0 0;padding-top:1.15rem;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem;line-height:1.6}

.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.form-field{display:grid;gap:.5rem;min-width:0}
.form-field label{color:var(--green-ink);font-size:.76rem;font-weight:650}
.form-field label>span[aria-hidden]{color:#9a7656}
.optional{margin-left:.35rem;color:var(--muted);font-size:.65rem;font-weight:400}
.form-field input,.form-field select,.form-field textarea{width:100%;min-height:52px;padding:.85rem 1rem;border:1px solid rgba(21,63,55,.2);border-radius:6px;background:var(--cream);color:var(--text);font:inherit;font-size:.92rem;transition:border-color var(--ease),box-shadow var(--ease),background-color var(--ease)}
.form-field textarea{min-height:170px;resize:none;line-height:1.55}
.form-field input:hover,.form-field select:hover,.form-field textarea:hover{border-color:rgba(21,63,55,.38)}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--green);outline:0;box-shadow:0 0 0 3px rgba(215,181,141,.34);background:var(--paper)}
.select-wrap{position:relative}
.select-wrap select{padding-right:3rem;appearance:none;cursor:pointer}
.select-wrap>span{position:absolute;top:50%;right:1rem;color:var(--green);font-size:1rem;transform:translateY(-55%);pointer-events:none}
.field-help{margin-top:-.08rem;color:var(--muted);font-size:.72rem;line-height:1.45}
.field-error{min-height:1.1em;color:#8b3d36;font-size:.72rem;line-height:1.4}
.form-field [aria-invalid="true"],.consent-field input[aria-invalid="true"]{border-color:#9c4c44}
.consent-field{display:grid;grid-template-columns:20px minmax(0,1fr);gap:.75rem;align-items:start}
.consent-field input{width:19px;height:19px;margin:.15rem 0 0;accent-color:var(--green)}
.consent-field label{color:var(--muted);font-size:.76rem;line-height:1.55}
.consent-field a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.consent-error{margin-top:-.9rem;padding-left:2.75rem}
.form-submit-row{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;padding-top:.2rem}
.form-submit-row .button{cursor:pointer}
.form-status{max-width:460px;margin:0;color:#8b3d36;font-size:.76rem;line-height:1.45}
.form-status.is-success{color:var(--green)}
.form-status.is-pending{color:var(--muted)}
.form-submit-row .button:disabled{cursor:wait;opacity:.68;transform:none}

@media(max-width:1024px){
  .contact-form{grid-template-columns:minmax(0,1fr) minmax(300px,340px);gap:1.5rem 3rem}
  .contact-person-card{top:calc(78px + 1.25rem)}
}

@media(max-width:820px){
  .contact-hero-layout{grid-template-columns:1fr}
  .contact-hero-layout{gap:1.8rem}
  .contact-direct-panel{max-width:560px;padding:1.25rem 0 0;border-top:1px solid var(--line);border-left:0}
  .contact-direct-eyebrow{margin-bottom:1.15rem}
  .contact-direct{max-width:520px}
  .contact-form{grid-template-columns:1fr;grid-template-areas:"service" "person" "fields";gap:1.4rem}
  .contact-person-panel{max-width:560px}
  .contact-person-card{position:static}
  .contact-person-visual{aspect-ratio:16/7.5}
}

@media(max-width:560px){
  .contact-hero{padding-block:2.25rem 2.8rem}
  .contact-hero h1{font-size:clamp(2.65rem,11.5vw,3.2rem);letter-spacing:-.04em}
  .contact-intro{font-size:.95rem;line-height:1.62}
  .contact-direct{grid-template-columns:1fr;gap:1.15rem}
  .contact-direct dd{font-size:1.25rem}
  .contact-phone dd{font-size:1.55rem}
  .contact-form-section{padding-block:3.8rem}
  .contact-form-header h2{font-size:clamp(2.35rem,10vw,2.8rem)}
  .contact-person-visual{aspect-ratio:16/8.5}
  .contact-person-copy{padding:1.35rem 1.25rem 1.5rem}
  .contact-person-copy h3{font-size:1.7rem}
  .form-row{grid-template-columns:1fr;gap:1.35rem}
  .form-field input,.form-field select,.form-field textarea{font-size:16px}
  .form-submit-row{align-items:stretch;flex-direction:column}
  .form-submit-row .button{width:100%}
}

@media(prefers-reduced-motion:reduce){.contact-person-card{transition:none}}
