/* Contact form. Sits inside .policy so it inherits the card; only the
   controls are styled here, with the same tokens legal.css uses. */
.contact-form{display:grid;gap:18px;margin-top:4px}
.contact-form .row{display:grid;gap:8px;align-content:start;min-width:0}
.contact-form .two{display:grid;gap:18px}
@media (min-width:560px){.contact-form .two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.contact-form label{font-size:13.5px;font-weight:600;color:var(--ink)}
.contact-form label .opt{font-weight:400;color:var(--ink-3)}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:10px 12px;border:1px solid var(--line-2);border-radius:5px;background:var(--card);color:var(--ink);font:15px/1.5 var(--sans)}
.contact-form textarea{min-height:170px;resize:vertical}
.contact-form input:focus-visible,.contact-form select:focus-visible,.contact-form textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 27%,transparent);outline-offset:2px;border-color:var(--accent)}
.contact-form .hint{font-size:12.5px;color:var(--ink-3)}
.contact-form .actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.contact-form button{padding:11px 22px;border:0;border-radius:5px;background:var(--accent);color:#fff;font:600 14.5px var(--sans);cursor:pointer}
.contact-form button:hover{filter:brightness(1.08)}
.contact-form button:disabled{opacity:.55;cursor:default}
.contact-form button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 27%,transparent);outline-offset:3px}
/* Honeypot: off-canvas rather than display:none, so the bots that skip
   hidden inputs still see it. */
.contact-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-turnstile{min-height:65px}
/* Result notices. Hidden until JavaScript picks one, or until the no-JS
   redirect lands on its fragment. */
.notice{display:none;margin-bottom:18px}
.notice:target,.notice.show{display:block}
.notice.ok{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--card-2))}
.notice.err{border-color:#D9A3A3;background:#FBF1F1}

/* Contact-specific editorial layout; legal pages retain their own styles. */
body:has(.contact-form){background:var(--bg)}
main:has(.contact-form)>.wrap{max-width:840px}
main:has(.contact-form) h1{font-weight:400;font-size:48px;margin-bottom:16px;text-wrap:balance}
main:has(.contact-form) .eyebrow{margin-bottom:14px}
main:has(.contact-form) .intro{max-width:62ch;line-height:1.8;margin-bottom:30px}
.policy:has(.contact-form){border-radius:6px;padding:32px;box-shadow:none}
.contact-form{gap:24px}
.contact-form .two{gap:24px;align-items:start}
.contact-form input:not([type=hidden]),.contact-form select{height:48px;min-width:0;font-size:16px}
.contact-form textarea{min-height:200px;font-size:16px}
.contact-form .hint{line-height:1.6;color:var(--ink-2)}
.contact-form .actions{padding-bottom:30px;border-bottom:1px solid var(--line)}
.policy:has(.contact-form) h2{font-weight:400;font-size:27px;margin-top:30px}
@media(max-width:559px){
 main:has(.contact-form) h1{font-size:38px}
 .policy:has(.contact-form){padding:22px 18px}
 .contact-form .two{gap:20px}
 .contact-form .actions{align-items:flex-start;flex-direction:column;gap:10px}
}
.contact-form{min-width:0;grid-template-columns:minmax(0,1fr)}
.contact-form .two{min-width:0}
.cf-turnstile{max-width:100%;overflow-x:auto}
@media(max-width:600px){
 body:has(.contact-form) .mast-inner{flex-wrap:wrap;gap:8px;padding-block:10px}
 body:has(.contact-form) .mast-nav{flex-wrap:wrap;max-width:100%}
}
