/* Homepage contact replacement; all styles are scoped to this section. */
.homepage-contact { position:relative; isolation:isolate; background:#e5effc; color:#082750; color-scheme:light; padding:38px 0 48px; overflow:hidden; scroll-margin-top:105px; }
.homepage-contact::before { content:""; position:absolute; z-index:-1; bottom:0; left:0; width:min(64%,1000px); height:280px; background:url('/assets/photos/contact-house.webp') left bottom / cover no-repeat; mask-image:linear-gradient(to bottom,transparent,#000 18%),linear-gradient(to right,#000 70%,transparent); mask-composite:intersect; }
.contact-layout { width:min(1320px,calc(100% - 80px)); display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.contact-intro { padding-top:18px; padding-bottom:240px; min-width:0; }
.contact-eyebrow { display:flex; align-items:center; gap:16px; font-size:21px; font-weight:750; color:#a77800; }
.contact-eyebrow span { width:40px; height:2px; background:#dfaa00; }
.homepage-contact h2 { position:relative; display:inline-block; font-size:clamp(34px,3.7vw,57px); line-height:1.12; font-weight:850; letter-spacing:-.045em; margin:16px 0 34px; white-space:nowrap; }
.homepage-contact h2 svg { position:absolute; width:64%; height:17px; bottom:-18px; left:17%; }
.contact-description { font-size:clamp(21px,2vw,28px); line-height:1.4; margin:0 0 26px; max-width:570px; letter-spacing:-.025em; }
.contact-topics { list-style:none; margin:0; padding:0; display:grid; gap:17px; }
.contact-topics li { display:flex; align-items:center; gap:25px; }
.contact-icon { background:#082750; border-radius:50%; width:62px; height:62px; flex:0 0 62px; display:grid; place-items:center; border:2px solid #fff; }
.contact-icon svg { width:34px; height:34px; fill:none; stroke:#fff; stroke-width:2; stroke-linejoin:round; stroke-linecap:round; }
.contact-topics h3 { font-size:20px; letter-spacing:-.03em; margin:0 0 5px; font-weight:800; line-height:1.2; }
.contact-topics p { font-size:17px; line-height:1.4; margin:0; }
.contact-card { background:#fff; border:1px solid #cfdaeb; border-radius:24px; padding:28px 32px 20px; box-shadow:0 10px 28px #16375d16; min-width:0; scroll-margin-top:110px; }
.contact-card > h3 { font-size:clamp(34px,3.5vw,52px); font-weight:800; letter-spacing:-.04em; line-height:1.15; margin:0 0 22px; }
.contact-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:19px 24px; }
.contact-fields .field { min-width:0; }
.contact-fields label { font-size:17px; font-weight:750; color:#082750; margin-bottom:7px; }
.contact-fields label span { white-space:nowrap; }
.contact-fields input,.contact-fields select,.contact-fields textarea { color:#182533; background:#fff; border:1px solid #cbd8e9; border-radius:8px; padding:12px 15px; font-size:17px; min-width:0; line-height:1.4; }
.contact-fields input::placeholder,.contact-fields textarea::placeholder { color:#788eac; opacity:1; }
.contact-fields select { color:#082750; }
.contact-fields textarea { min-height:90px; }
.contact-send { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; background:#082750; color:#fff; border:0; border-radius:9px; font-size:22px; font-weight:750; padding:14px; margin-top:19px; cursor:pointer; }
.contact-send svg { width:28px; height:28px; fill:#fff; stroke:#082750; stroke-width:1.2; }
.contact-send:hover { background:#183c67; }
.contact-send:disabled { opacity:.7; cursor:default; }
.homepage-contact :focus-visible { outline:3px solid #b38a27; outline-offset:3px; }
.contact-signoff { display:flex; align-items:center; gap:15px; font-size:17px; font-weight:600; text-align:center; margin:20px 0 0; }
.contact-signoff span { height:1px; background:#e5ad00; flex:1; }
.contact-fallback { font-size:12px; text-align:center; margin:14px 0 0; line-height:1.7; overflow-wrap:anywhere; }
.contact-fallback a { color:inherit; }
.homepage-contact .form-status { background:#e9f4ed; color:#153f2d; }
.homepage-contact .form-status[data-state="error"] { background:#fff0ec; color:#782d20; }
@media(max-width:1100px) { .contact-layout { width:calc(100% - 48px); gap:32px; } .contact-card { padding:25px 24px 20px; } .contact-fields { gap:17px 14px; } .contact-fields label { font-size:15px; } .contact-topics li { gap:16px; } .contact-topics h3 { font-size:18px; } .contact-topics p { font-size:15px; } .contact-signoff { font-size:15px; gap:8px; } }
@media(max-width:800px) { .contact-layout { grid-template-columns:1fr; gap:26px; max-width:640px; } .contact-intro { padding-bottom:200px; } .homepage-contact::before { top:380px; bottom:auto; width:100%; height:230px; background-size:cover; } .homepage-contact h2 { font-size:clamp(32px,6vw,48px); } .contact-description { font-size:23px; } .contact-topics h3 { font-size:20px; } .contact-topics p { font-size:17px; } .contact-card { scroll-margin-top:90px; } }
@media(max-width:480px) { .homepage-contact { padding-top:28px; } .contact-layout { width:calc(100% - 32px); } .contact-fields { grid-template-columns:minmax(0,1fr); } .contact-card { padding:24px 18px 20px; border-radius:20px; } .contact-eyebrow { font-size:17px; } .homepage-contact h2 { font-size:clamp(28px,7.7vw,36px); } .contact-description { font-size:21px; } .contact-icon { width:52px; height:52px; flex-basis:52px; } .contact-topics li { gap:13px; } .contact-topics h3 { font-size:18px; } .contact-topics p { font-size:15px; } .contact-topics { gap:19px; } .contact-signoff { font-size:14px; } .homepage-contact::before { top:430px; height:210px; } }
@media(max-width:800px) {
  .homepage-contact::before { display:none; }
  .contact-intro { position:relative; isolation:isolate; }
  .contact-intro::after { content:""; position:absolute; z-index:-1; bottom:0; left:-24px; right:-24px; height:190px; background:url('/assets/photos/contact-house.webp') left bottom / cover no-repeat; mask-image:linear-gradient(to bottom,transparent,#000 22%),linear-gradient(to right,#000 78%,transparent); mask-composite:intersect; }
}
@media(min-width:801px) and (max-width:1100px) { .contact-fields .field:not(.full) label { min-height:36px; display:flex; flex-wrap:wrap; align-content:end; column-gap:4px; } }
