.contact-page { --contact-bg:#F2EDE4; --contact-paper:#FAF8F3; --contact-ink:#1C2B33; --contact-muted:#5C6B72; --contact-red:#9A2E24; --contact-red-dark:#6B1F17; --contact-rose:#F5E3DE; --contact-line:rgba(28,43,51,.12); overflow:hidden; background:radial-gradient(circle at 82% 5%,rgba(154,46,36,.07),transparent 26rem),var(--contact-bg); }
.contact-page [id] { scroll-margin-top: 90px; }.contact-page h1,.contact-page h2,.contact-page h3,.contact-page p { margin-top:0; }.contact-page h1 { font-size:clamp(2.8rem,2rem + 3vw,5.4rem); font-weight:500; letter-spacing:-.065em; line-height:.98; }.contact-page h2 { font-size:clamp(2rem,1.55rem + 1.7vw,3.1rem); font-weight:500; letter-spacing:-.05em; line-height:1.04; }.contact-page h3 { font-size:1.1rem; letter-spacing:-.02em; }
.contact-container { width:min(100% - clamp(2rem,6vw,6rem),1440px); margin-inline:auto; }.contact-eyebrow { margin:0 0 1rem; color:var(--contact-red); font-size:.78rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }.contact-lead { color:var(--contact-muted); font-size:clamp(1.05rem,.98rem + .3vw,1.18rem); line-height:1.65; }.contact-hand { color:var(--contact-red); font-family:Caveat,cursive; font-size:1.35rem; font-weight:600; }
.contact-hero { padding:5.5rem 0 4.5rem; }.contact-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(390px,.86fr); gap:4.5rem; align-items:center; }.contact-hero-copy { max-width:720px; }.contact-hero-copy h1 { max-width:11ch; margin-bottom:1.4rem; }.contact-hero-copy .contact-lead { max-width:38rem; margin-bottom:0; }.contact-hero-note { display:inline-block; margin-top:1.7rem; transform:rotate(-3deg); }
.contact-journey { position:relative; min-height:500px; padding:2rem; border:1px solid var(--contact-line); border-radius:1.4rem; background:linear-gradient(rgba(28,43,51,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(28,43,51,.04) 1px,transparent 1px),rgba(250,248,243,.9); background-size:38px 38px; overflow:hidden; }.contact-flow-line { position:absolute; left:50%; top:70px; bottom:70px; width:2px; transform:translateX(-50%); background:linear-gradient(var(--contact-red),rgba(154,46,36,.18)); }.contact-flow-dot { position:absolute; left:calc(50% - 6px); top:70px; width:12px; height:12px; border-radius:50%; background:var(--contact-red); box-shadow:0 0 0 7px rgba(154,46,36,.12); animation:contact-flow 7s ease-in-out infinite; }@keyframes contact-flow { 0%,100% { top:70px; }50% { top:calc(100% - 82px); } }.contact-flow { position:relative; z-index:1; display:grid; gap:1rem; }.contact-flow-card { width:72%; min-height:78px; padding:1rem 1.15rem; border:1px solid rgba(28,43,51,.11); border-radius:.9rem; background:rgba(255,255,255,.92); box-shadow:0 12px 30px rgba(28,43,51,.05); }.contact-flow-card:nth-child(odd) { justify-self:start; }.contact-flow-card:nth-child(even) { justify-self:end; }.contact-flow-card small { display:block; margin-bottom:.35rem; color:var(--contact-red); font-size:.66rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }.contact-flow-card strong { font-size:.96rem; }.contact-flow-card p { margin:.2rem 0 0; color:var(--contact-muted); font-size:.78rem; line-height:1.45; }.contact-journey-note { position:absolute; right:1rem; bottom:.7rem; transform:rotate(-3deg); }
.contact-area { padding:5rem 0 5.5rem; border-top:1px solid var(--contact-line); }.contact-grid { display:grid; grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr); gap:4rem; align-items:start; }.contact-copy { position:sticky; top:118px; }.contact-copy h2 { max-width:11ch; }.contact-copy > p:not(.contact-eyebrow) { max-width:29rem; color:var(--contact-muted); line-height:1.7; }.contact-reassurance { display:grid; gap:.8rem; margin-top:2rem; }.contact-reassurance div { display:flex; gap:.75rem; align-items:flex-start; font-size:.92rem; line-height:1.5; }.contact-reassurance span:first-child { color:var(--contact-red); font-weight:800; }
.contact-form-card { padding:2rem; border:1px solid var(--contact-line); border-radius:1.2rem; background:rgba(250,248,243,.94); box-shadow:0 14px 45px rgba(28,43,51,.05); }.contact-form-head { display:flex; align-items:start; justify-content:space-between; gap:2rem; margin-bottom:2rem; }.contact-form-head h2 { margin-bottom:.35rem; font-size:1.35rem; }.contact-form-head p { margin:0; color:var(--contact-muted); font-size:.9rem; line-height:1.5; }.contact-form-badge { flex-shrink:0; padding:.45rem .7rem; border:1px solid rgba(154,46,36,.12); border-radius:999px; color:var(--contact-red); background:var(--contact-rose); font-size:.72rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }.contact-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }.contact-field { display:flex; flex-direction:column; gap:.42rem; }.contact-field.is-full { grid-column:1/-1; }.contact-field label { font-size:.8rem; font-weight:700; }.contact-field small { color:var(--contact-muted); font-size:.72rem; font-weight:500; }.contact-field input,.contact-field select,.contact-field textarea { width:100%; border:1px solid rgba(28,43,51,.16); border-radius:.7rem; color:var(--contact-ink); background:#fff; font:inherit; transition:.2s; }.contact-field input,.contact-field select { min-height:52px; padding:0 1rem; }.contact-field textarea { min-height:150px; padding:1rem; resize:vertical; }.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus { outline:none; border-color:var(--contact-red); box-shadow:0 0 0 3px rgba(154,46,36,.10); }.contact-submit { width:100%; min-height:54px; margin-top:.35rem; border:0; border-radius:999px; color:#fff; background:var(--contact-ink); font:inherit; font-weight:700; cursor:pointer; transition:.2s ease; }.contact-submit:hover { transform:translateY(-2px); background:var(--contact-red-dark); }.contact-privacy { margin:.8rem 0 0; color:var(--contact-muted); font-size:.74rem; line-height:1.5; text-align:center; }.contact-honeypot { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }.contact-form-notice { margin:0 0 1.25rem; padding:1rem; border-radius:.75rem; font-size:.9rem; line-height:1.5; }.contact-form-notice.is-success { border:1px solid rgba(36,104,70,.2); color:#1e603d; background:#e4f1e8; }.contact-form-notice.is-error { border:1px solid rgba(154,46,36,.2); color:var(--contact-red-dark); background:var(--contact-rose); }
.contact-next { padding:5rem 0; color:#fff; background:var(--contact-ink); }.contact-next .contact-eyebrow { color:#C97A6E; }.contact-next-head { display:grid; grid-template-columns:.8fr 1.2fr; gap:3rem; align-items:end; margin-bottom:2.6rem; }.contact-next-head h2 { max-width:12ch; margin-bottom:0; }.contact-next-head > p { max-width:36rem; margin:0; color:rgba(255,255,255,.68); line-height:1.65; }.contact-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }.contact-step { min-height:185px; padding:1.45rem; border:1px solid rgba(255,255,255,.14); border-radius:1rem; background:rgba(255,255,255,.04); }.contact-step > span { display:inline-flex; width:34px; height:34px; align-items:center; justify-content:center; margin-bottom:1.5rem; border-radius:50%; color:#fff; background:#7A2419; font-size:.76rem; font-weight:800; }.contact-step h3 { margin-bottom:.65rem; }.contact-step p { margin:0; color:rgba(255,255,255,.65); font-size:.9rem; line-height:1.6; }.contact-next-note { display:inline-block; margin-top:1.8rem; color:#C97A6E; transform:rotate(-2deg); }
@media (max-width:980px) { .contact-hero-grid,.contact-grid,.contact-next-head { grid-template-columns:1fr; }.contact-journey { max-width:620px; }.contact-copy { position:static; }.contact-form-grid,.contact-steps { grid-template-columns:1fr; }.contact-field.is-full { grid-column:auto; } }
@media (max-width:640px) { .contact-hero { padding-top:3.8rem; }.contact-hero-copy h1 { font-size:clamp(2.6rem,13vw,4.1rem); }.contact-journey { min-height:480px; padding:1.2rem; }.contact-flow-card { width:84%; }.contact-form-card { padding:1.25rem; }.contact-form-head { display:block; }.contact-form-badge { display:inline-block; margin-top:.8rem; } }
@media (prefers-reduced-motion:reduce) { .contact-page * { animation:none !important; transition:none !important; } }

/* The shared request form also appears at the bottom of the homepage. */
.home-contact-area { --contact-bg:#F2EDE4; --contact-paper:#FAF8F3; --contact-ink:#1C2B33; --contact-muted:#5C6B72; --contact-red:#9A2E24; --contact-red-dark:#6B1F17; --contact-rose:#F5E3DE; --contact-line:rgba(28,43,51,.12); background:radial-gradient(circle at 82% 5%,rgba(154,46,36,.07),transparent 26rem),var(--contact-bg); }.home-contact-area .contact-copy { position:static; }
