.contact-page-main { background:#fff }
.contact-page-section { width:min(620px,calc(100% - 64px)); padding-top:30px; padding-bottom:70px }
.contact-back { display:inline-flex; align-items:center; gap:9px; min-height:30px; color:var(--muted); font-size:12px }
.contact-back:hover { color:var(--copper-dark) }
.contact-back span { font-size:17px }
.contact-page-heading { margin:25px 0 28px }
.contact-page-heading h1 { margin:0; font:500 40px/1.1 var(--sans); letter-spacing:-.045em; white-space:pre-line; overflow-wrap:anywhere }
.contact-page-intro { margin:10px 0 0; color:var(--muted); font-size:13px; line-height:1.7; white-space:pre-line }
.contact-form-card { scroll-margin-top:125px }
.contact-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px }
.contact-field-wide { grid-column:1/-1 }
.contact-form fieldset { min-width:0; margin:0; padding:0; border:0 }
.contact-type-options { display:inline-grid; grid-template-columns:1fr 1fr; width:244px; max-width:100%; gap:4px; padding:4px; border-radius:8px; background:#f3f1ee }
.contact-type-options label { position:relative; cursor:pointer; min-width:0 }
.contact-type-options input,.contact-stars input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer }
.contact-type-options label>span { display:flex; align-items:center; justify-content:center; min-height:36px; padding:8px 14px; border-radius:5px; color:var(--muted); font-size:12px; font-weight:500; line-height:1.4; pointer-events:none; transition:background .15s,color .15s }
.contact-type-options input:checked+span { background:#fff; color:var(--ink); box-shadow:0 1px 4px #3028200b }
.contact-type-options input:focus-visible+span { outline:2px solid var(--copper); outline-offset:3px }
.contact-form-intro:has(p:empty) { display:none }
.contact-form-intro p { margin:0; color:var(--muted); font-size:13px; line-height:1.7; white-space:pre-line }
.contact-form .field { gap:7px; margin:0 }
.contact-form .field>span { color:#51483f; font-size:12px; font-weight:500 }
.contact-form .field input,.contact-form .field textarea { min-height:46px; padding:11px 13px; border:1px solid #e1ddd7; border-radius:7px; background:#fff; color:var(--ink); font-size:15px; line-height:1.5; transition:border-color .15s,box-shadow .15s }
.contact-form .field input::placeholder,.contact-form .field textarea::placeholder { color:#a19a91; font-size:13px }
.contact-form .field input:focus,.contact-form .field textarea:focus { outline:none; border-color:var(--copper); box-shadow:0 0 0 3px #b75d350c }
.contact-form .field textarea { min-height:132px; resize:vertical }
.contact-form .contact-message-count { align-self:flex-end; color:var(--muted); font-size:10px; font-weight:400 }
.contact-rating legend { margin:0 0 6px; color:#51483f; font-size:12px; font-weight:500 }
.contact-stars { display:flex; gap:3px; width:max-content; max-width:100% }
.contact-stars label { position:relative; display:grid; place-items:center; width:39px; height:40px; border-radius:5px; cursor:pointer }
.contact-stars label>span[aria-hidden] { font-size:28px; line-height:1; color:#ded8d0; pointer-events:none; transition:color .15s }
.contact-stars label.is-filled>span[aria-hidden] { color:var(--copper) }
.contact-stars label:has(input:focus-visible) { outline:2px solid var(--copper); outline-offset:3px }
.contact-rating p { margin:5px 0 0; color:var(--muted); font-size:11px }
.contact-consent { display:flex; align-items:flex-start; gap:9px; cursor:pointer }
.contact-consent input { width:16px; height:16px; margin:2px 0 0; accent-color:var(--copper); flex:none }
.contact-consent>span { color:var(--muted); font-size:11px; line-height:1.7 }
.contact-consent a { color:#5a5046; text-decoration:underline; text-underline-offset:3px }
.contact-send-row { display:flex; align-items:center; flex-wrap:wrap; gap:14px }
.contact-form .contact-submit { min-height:44px; padding:11px 21px; border:0; border-radius:6px; font-size:12px; font-weight:600 }
.contact-form .contact-submit:disabled { cursor:default; opacity:.55 }
.contact-send-note { color:var(--muted); font-size:11px; white-space:pre-line }
.contact-feedback { margin:0; color:#58705a; font-size:12px; line-height:1.7 }
.contact-feedback:empty,.contact-send-note:empty,.contact-direct p:empty { display:none }
.contact-feedback.is-error { color:#a44836 }
.contact-direct { display:flex; flex-direction:column; gap:8px; margin-top:26px; padding-top:21px; border-top:1px solid #ede9e3; color:var(--muted); font-size:12px; line-height:1.7 }
.contact-direct p { margin:0 }
.contact-direct a { color:var(--ink); text-decoration:underline; text-decoration-color:#d8d1c8; text-underline-offset:4px; overflow-wrap:anywhere }
.contact-direct a:hover { color:var(--copper-dark) }
.contact-success { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-height:290px }
.contact-success-mark { display:grid; place-items:center; width:36px; height:36px; margin-bottom:20px; border-radius:50%; background:#eef3ed; color:#58705a; font-size:18px }
.contact-success h2 { margin:0 0 10px; font:500 28px/1.2 var(--sans); letter-spacing:-.035em }
.contact-success>p { margin:0 0 20px; color:var(--muted); font-size:13px; line-height:1.7; white-space:pre-line }
.contact-again { padding:0 0 3px; border:0; border-bottom:1px solid #d7b49c; background:none; color:var(--copper-dark); font-size:12px }
.contact-success .contact-success-wait { margin-top:14px; font-size:11px }
.contact-trap,.contact-sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important }
@media(max-width:620px) {
  .contact-page-section { width:calc(100% - 40px); padding-top:18px; padding-bottom:50px }
  .contact-page-heading { margin:22px 0 24px }
  .contact-page-heading h1 { font-size:34px }
  .contact-form { grid-template-columns:minmax(0,1fr); gap:18px }
  .contact-field-wide { grid-column:1 }
  .contact-form .field input,.contact-form .field textarea { font-size:16px }
  .contact-send-row { align-items:stretch; flex-direction:column; gap:10px }
  .contact-submit { width:100% }
  .contact-direct p>span { display:block; margin-bottom:3px }
}
@media(prefers-reduced-motion:reduce) { .contact-form * { transition:none!important } }
