.contact-page .page-hero { padding-bottom:clamp(2.5rem,5vw,5rem); }
.contact-page .page-hero .lede { max-width:54ch; }
.contact-section { padding:0 0 var(--section-pad); }
.contact-layout { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:clamp(2rem,5vw,5rem); align-items:start; }
.contact-aside { padding-top:2.5rem; }
.contact-aside > .eyebrow,.contact-card > .eyebrow { justify-content:center; }
.contact-aside > p { margin:1.5rem 0 2rem; color:var(--text-mid); }
.contact-detail { padding:1.4rem 0; border-top:1px solid var(--hairline); }
.contact-detail > span { display:block; color:var(--gold-deep); font-size:.7rem; text-transform:uppercase; letter-spacing:.15em; margin-bottom:.7rem; }
.contact-detail a { overflow-wrap:anywhere; }
.contact-detail p { color:var(--text-mid); }
.contact-card { padding:clamp(1.5rem,4vw,3.5rem); border:1px solid var(--hairline-strong); border-top:3px solid var(--gold); border-radius:12px; background:#fffdf8; box-shadow:0 30px 70px -45px #6a563e55; }
.contact-card h2 { margin-top:1rem; }
.contact-intro { text-align:center; color:var(--text-mid); margin:1rem 0 2rem; }
.contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.3rem; }
.contact-fields label { display:block; font-size:.82rem; color:var(--text-hi); font-weight:500; }
.contact-fields label > span { color:var(--gold-deep); }
.contact-fields small { color:var(--text-lo); font-weight:400; margin-left:.35rem; }
.contact-fields .field { display:block; width:100%; margin-top:.55rem; border-radius:6px; font:inherit; font-size:1rem; padding:.9rem 1rem; background:#faf7f0; color:var(--text-hi); border:1px solid var(--hairline-strong); }
.contact-fields textarea { resize:vertical; min-height:170px; }
.contact-full { grid-column:1 / -1; }
.contact-privacy { color:var(--text-lo); font-size:.76rem; line-height:1.6; margin:1.4rem 0; }
.contact-form > .btn { width:100%; justify-content:center; }
.contact-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.form-success { text-align:center; padding:1.5rem 0; }
.form-success .eyebrow { display:flex; justify-content:center; }
.success-seal { display:grid; place-items:center; width:64px; height:64px; margin:0 auto 1.5rem; color:var(--gold-deep); border:1px solid #b99a62; border-radius:50%; background:#f1eadc; font-size:1.7rem; }
.form-success p { color:var(--text-mid); margin:1.25rem auto 2rem; max-width:40ch; }
.contact-again { display:block; margin-top:1.5rem; color:var(--gold-deep); font-size:.85rem; text-decoration:underline; }
.form-error { padding:1rem; margin:1rem 0; border:1px solid #ac7062; border-radius:6px; background:#fff5ef; color:#713d30; }
.form-error ul { margin:.5rem 0 0 1.1rem; }
.site-light .modal:not(.modal--video) { width:min(590px,100%); padding:clamp(3.5rem,6vw,4.5rem) clamp(1.5rem,5vw,3.5rem) 2.5rem; border-radius:14px; border:1px solid #cdbb9b; background:radial-gradient(ellipse at top,#eee2cb80,transparent 65%),#fffdf8; box-shadow:0 35px 100px -30px #17130f80; text-align:center; }
.site-light .modal .eyebrow { justify-content:center; }
.site-light .modal h3 { font-family:var(--font-display); font-weight:400; font-size:clamp(2rem,5vw,3rem); line-height:1.08; }
.site-light .modal .field { border-radius:6px; text-align:left; }
.site-light .modal__close { top:.9rem; right:.9rem; }
.site-light .modal--video { border-radius:12px; }
.subscription-success { padding:1.5rem; border:1px solid var(--hairline-strong); border-radius:10px; background:#faf7f0; text-align:center; }
.subscription-success h3 { margin:.5rem 0; font-family:var(--font-display); }
.subscription-success p { color:var(--text-mid); margin:0; }
.modal-backdrop[aria-hidden="true"] { visibility:hidden; }
.modal-backdrop.is-open { visibility:visible; }
@media(max-width:850px) { .contact-layout { grid-template-columns:minmax(0,1fr); } .contact-aside { padding-top:0; text-align:center; } }
@media(max-width:540px) { .contact-fields { grid-template-columns:minmax(0,1fr); } .contact-card { padding:1.5rem; } }
@media(prefers-reduced-motion:reduce) { .modal,.modal-backdrop { transition:none; } }
