.contact-surface { background: #f9f9ee; padding-bottom: clamp(60px,8vw,140px); }
.contact-page-heading { padding: clamp(145px,15vw,240px) 5vw 40px; text-align:center; }
.contact-page-heading h1 { margin:0; color:var(--color-accent); font-size:clamp(26px,2.6vw,44px); letter-spacing:.2em; }
.contact-page-heading h1::after { content:""; display:block; width:48px; height:4px; margin:24px auto 0; background:var(--color-yellow); }
.contact-lead { text-align:center; line-height:2; font-size:clamp(14px,1.1vw,18px); margin:0 0 32px; }
.contact-phone { text-align:center; margin:0 auto 48px; }
.contact-phone h2 { margin:0 0 8px; font-size:17px; }
.contact-phone a { font-family:Montserrat,sans-serif; font-weight:800; font-size:clamp(30px,3vw,48px); color:var(--color-accent); }
.contact-phone p { font-size:12px; line-height:1.8; }
.contact-panel { max-width:960px; margin-inline:auto; padding:clamp(24px,5vw,80px); background:#fff; border-radius:24px; }
.contact-steps { list-style:none; display:grid; grid-template-columns:repeat(3,1fr); margin:0 0 28px; padding:0 0 28px; border-bottom:1px solid #e6e4da; }
.contact-steps li { position:relative; display:grid; gap:6px; justify-items:center; color:#77776e; font-weight:700; }
.contact-steps li + li::before { content:""; position:absolute; left:0; top:12px; height:36px; border-left:1px solid #d8d8cc; transform:rotate(30deg); }
.contact-steps span { font-family:Montserrat,sans-serif; font-size:12px; letter-spacing:.1em; }
.contact-steps [aria-current] { color:var(--color-accent); }
.contact-preview-note { padding:12px 16px; background:#f9f9ee; font-size:12px; line-height:1.8; margin:0 0 28px; }
.contact-required-note,.field-help { font-size:12px; line-height:1.8; color:#66665c; }
.contact-required-note > span { color:#aa3847; font-weight:700; margin-right:6px; }
.contact-field { min-width:0; border:0; margin:0; padding:22px 0; }
.contact-field > label,.contact-field legend { display:block; font-weight:700; font-size:15px; line-height:1.8; margin:0 0 12px; padding:0; }
.contact-field legend { float:left; width:100%; }
.contact-field legend + * { clear:both; }
.required-label,.optional-label { display:inline-block; vertical-align:middle; margin-left:12px; font-size:10px; padding:2px 7px; border-radius:3px; line-height:1.5; font-weight:500; }
.required-label { background:#fae9e9; color:#a83845; }
.optional-label { background:#efefea; color:#65655c; }
.contact-field input:not([type=radio]),.contact-field textarea { width:100%; border:1px solid #d6d6ca; border-radius:6px; background:#fcfcf8; color:inherit; font:inherit; font-size:16px; line-height:1.7; padding:13px 16px; }
.contact-field textarea { resize:vertical; min-height:180px; }
.contact-field input:focus-visible,.contact-field textarea:focus-visible,.contact-choices input:focus-visible,.contact-privacy input:focus-visible { outline:2px solid #006837; outline-offset:3px; }
.contact-field [aria-invalid=true] { border-color:#b33344; }
.contact-choices { display:flex; flex-wrap:wrap; gap:8px 24px; }
.contact-choices label,.contact-privacy label { display:flex; align-items:flex-start; gap:10px; cursor:pointer; font-size:14px; line-height:1.8; padding-block:8px; }
.contact-choices input,.contact-privacy input { flex:0 0 auto; width:18px; height:18px; margin:4px 0 0; accent-color:var(--color-accent); }
.contact-privacy { border-top:1px solid #e6e4da; padding-top:24px; margin-top:16px; }
.contact-privacy a,.contact-review a,#contact-empty a { color:#a83845; text-decoration:underline; text-underline-offset:3px; }
.contact-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin-top:36px; }
.contact-button { display:inline-flex; justify-content:center; align-items:center; gap:28px; min-height:56px; padding:14px 30px; border:2px solid var(--color-accent); border-radius:32px; background:var(--color-accent); color:#fff; font-weight:700; font-size:15px; line-height:1.8; transition:background .2s,color .2s; }
.contact-button:hover { background:#fff; color:var(--color-accent); }
.contact-button--back { background:#fff; color:var(--color-accent); }
.contact-button:disabled { cursor:wait; opacity:.6; }
.contact-error { border:1px solid #b33344; background:#fff6f5; padding:16px; margin-bottom:24px; color:#9a2332; line-height:1.8; }
.field-error { color:#9a2332; font-size:13px; margin:8px 0 0; line-height:1.8; }
.contact-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.contact-section-title { font-size:22px; line-height:1.8; margin:24px 0 16px; }
#contact-confirm > p,#contact-complete > p,#contact-empty { font-size:14px; line-height:2; }
.contact-review { margin:32px 0; }
.contact-review > div { display:grid; grid-template-columns:30% 1fr; gap:24px; padding:22px 0; border-bottom:1px solid #e6e4da; font-size:14px; line-height:2; }
.contact-review dt { font-weight:700; }
.contact-review dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
#contact-complete { text-align:center; }
.contact-complete-mark { display:grid; place-items:center; width:64px; height:64px; border-radius:50%; background:#f9f9ee; color:#006837; margin:36px auto 24px; font-size:30px; }
@media(max-width:767px) {
 .contact-page-heading { padding:125px 5vw 32px; }
 .contact-page-heading h1 { font-size:24px; }
 .contact-lead { text-align:left; }
 .contact-lead br { display:none; }
 .contact-panel { padding:28px 18px; border-radius:18px; }
 .contact-phone { margin-bottom:30px; }
 .contact-phone h2 { font-size:15px; }
 .contact-phone p { font-size:11px; }
 .contact-field { padding:18px 0; }
 .contact-choices { gap:6px 18px; }
 .contact-actions { flex-direction:column; gap:12px; }
 .contact-button { width:100%; padding-inline:16px; font-size:14px; }
 .contact-review > div { grid-template-columns:1fr; gap:8px; padding:18px 0; }
 .contact-section-title { font-size:19px; }
}
@media(prefers-reduced-motion:reduce) { .contact-button { transition:none; } }
