.contact-page { padding:0 0 32px; background:#435b42; color:#f4efd8; }
.contact-page * { box-sizing:border-box; }
.contact-page .contact-wrap { width:min(1280px,calc(100% - 40px)); margin-inline:auto; min-width:0; }
.contact-page .contact-heading { padding:72px 0 56px; border-bottom:1px solid #f4efd840; }
.contact-page .contact-eyebrow { margin:0 0 20px; color:#f2c7d5; font-size:14px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; line-height:1.5; }
.contact-page h1 { max-width:100%; font-size:clamp(44px,5.3vw,80px); line-height:1.04; letter-spacing:-.035em; margin:0 0 24px; color:#f4efd8; }
.contact-page .contact-lead { max-width:820px; margin:0; font-size:clamp(20px,2vw,25px); line-height:1.55; }
.contact-page .contact-layout { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr)); gap:clamp(32px,5vw,72px); padding-top:56px; align-items:start; }
.contact-page .contact-information { min-width:0; }
.contact-page .contact-topic { margin:0 0 44px; min-width:0; }
.contact-page h2 { font-size:clamp(28px,3vw,38px); line-height:1.15; letter-spacing:-.02em; margin:0 0 24px; color:inherit; }
.contact-page p { max-width:min(100%,1100px); }
.contact-page .contact-topic p { font-size:18px; line-height:1.65; margin:0 0 22px; }
.contact-page .contact-topic a { text-underline-offset:4px; }
.contact-page .contact-details { border-block:1px solid #f4efd84d; padding-block:20px; margin:28px 0; }
.contact-page .contact-details > div { min-width:0; margin:0 0 18px; }
.contact-page .contact-details > div:last-child { margin-bottom:0; }
.contact-page .contact-details dt { font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:#f2c7d5; font-weight:700; }
.contact-page .contact-details dd { font-size:20px; line-height:1.5; margin:4px 0 0; overflow-wrap:anywhere; }
.contact-page .contact-form-panel { min-width:0; padding:clamp(20px,3vw,40px); border-radius:28px; background:#f4efd8; color:#283f28; border-top:6px solid #f2c7d5; }
.contact-page .contact-form-panel .contact-eyebrow { color:#435b42; }
.contact-page .contact-form-intro { font-size:17px; line-height:1.55; margin:0 0 28px; }
.contact-page .contact-form { display:flex; flex-direction:column; gap:20px; min-width:0; }
.contact-page .contact-field { min-width:0; display:flex; flex-direction:column; gap:8px; }
.contact-page .contact-field label { font-size:18px; font-weight:700; line-height:1.4; }
.contact-page .contact-field label span { font-size:14px; font-weight:500; }
.contact-page .contact-field input, .contact-page .contact-field textarea { display:block; width:100%; max-width:100%; min-width:0; padding:13px 16px; border:1px solid #84917c; border-radius:12px; background:#fffdf5; color:#111; font:500 18px/1.5 Urbanist,sans-serif; }
.contact-page .contact-field input { min-height:52px; }
.contact-page .contact-field textarea { resize:vertical; min-height:180px; }
.contact-page .contact-field [aria-invalid="true"] { border:2px solid #a02139; }
.contact-page .contact-error { display:block; color:#a02139; font-size:15px; line-height:1.5; }
.contact-page .contact-error:empty { display:none; }
.contact-page .contact-form-note { margin:0; font-size:15px; line-height:1.6; }
.contact-page .contact-submit { display:flex; justify-content:space-between; gap:20px; align-items:center; width:100%; min-height:56px; padding:14px 24px; border:2px solid #283f28; border-radius:100px; background:#f2c7d5; color:#111; font-size:19px; font-weight:700; cursor:pointer; }
.contact-page .contact-submit:hover { background:#f9dce6; }
.contact-page :is(input,textarea,button,a):focus-visible { outline:3px solid #b92961; outline-offset:4px; }
@media (max-width:600px) {
 .contact-page .contact-wrap { width:calc(100% - 32px); }
 .contact-page .contact-heading { padding-block:44px 36px; }
 .contact-page .contact-layout { padding-top:36px; gap:8px; }
 .contact-page .contact-form-panel { border-radius:20px; }
}
