/* Contact dialog and form rules, extracted verbatim from styles.css for the
   pages that use reference.css instead of styles.css (/, /training). */
.contact-dialog{width:min(560px,calc(100% - 30px));max-width:none;padding:0;border:0;border-radius:14px;background:var(--paper);color:var(--ink);box-shadow:0 30px 90px rgba(0,0,0,.28)}
.contact-dialog::backdrop{background:rgba(23,23,20,.7);backdrop-filter:blur(4px)}
.contact-card{position:relative;padding:44px}
.contact-card h2{margin:0 52px 10px 0;font-size:clamp(38px,6vw,52px)}
.contact-card>p:not(.kicker){margin:0;color:var(--muted);font-size:17px}
.contact-close{position:absolute;top:20px;right:20px;width:42px;height:42px;border:1px solid var(--ink);border-radius:50%;background:transparent;color:var(--ink);font:400 29px/1 var(--sans);cursor:pointer}
.contact-close:hover{background:var(--ink);color:#fff}
.contact-options{display:grid;gap:12px;margin-top:30px}
.contact-option{display:grid;gap:7px;padding:19px 22px;border-radius:8px;color:#fff;text-decoration:none;transition:transform .2s ease,filter .2s ease}
.contact-option:hover{transform:translateY(-1px);filter:brightness(.94)}
.contact-option.call{background:var(--red)}
.contact-option.email{background:var(--ink)}
.contact-option span{font-size:16px;font-weight:800}
.contact-option strong{font-size:14px;font-weight:500;opacity:.84}
.contact-dialog[open]{animation:contact-in .18s ease-out}
@keyframes contact-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:650px){.contact-card{padding:34px 22px 24px}.contact-close{top:15px;right:15px;width:40px;height:40px}.contact-options{margin-top:25px}.contact-option{padding:18px 19px}}
@media(prefers-reduced-motion:reduce){.contact-dialog[open]{animation:none}}
.contact-dialog{width:min(680px,calc(100% - 30px))}
.contact-option.message{width:100%;border:0;background:var(--ink);font-family:var(--sans);text-align:left;cursor:pointer}
.direct-email{margin:20px 0 0!important;font-size:14px!important}
.direct-email a{font-weight:750;text-underline-offset:3px}
.contact-back{margin:0 0 24px;padding:0;border:0;background:transparent;color:var(--muted);font:700 14px/1 var(--sans);cursor:pointer}
.contact-back:hover{color:var(--ink)}
.contact-form{margin-top:28px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-form label>span,.contact-form legend{display:block;margin-bottom:7px;font-size:14px;font-weight:750}
.contact-form small{color:var(--muted);font-weight:500}
.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:var(--white);color:var(--ink);font:16px/1.4 var(--sans)}
.contact-form input{min-height:48px;padding:10px 12px}
.contact-form textarea{padding:12px;resize:vertical}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--ink);outline:3px solid rgba(209,43,34,.18);outline-offset:1px}
.form-message{display:block;margin-top:18px}
.contact-form fieldset{display:flex;gap:22px;margin:20px 0 0;padding:0;border:0}
.contact-form fieldset label{display:flex;align-items:center;gap:7px;font-size:14px}
.contact-form fieldset input{width:auto;min-height:0;accent-color:var(--red)}
.form-submit{display:flex;align-items:center;gap:18px;margin-top:25px}
.form-submit p{max-width:330px;margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.form-trap{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-success{padding:18px 0 8px}
.contact-success .btn{margin-top:26px}
.contact-success>p:not(.kicker){max-width:530px;color:var(--muted)}
.contact-error{margin:18px 0 0;padding:12px 14px;border-left:3px solid var(--red);background:#f4e6e2;color:#7d211c;font-size:14px}
.contact-error[hidden]{display:none}
.contact-submit:disabled,.form-submit .btn:disabled{cursor:wait;opacity:.62}
.turnstile-stage{position:fixed;right:12px;bottom:12px;z-index:2147483647}
@media(max-width:650px){.contact-dialog{width:min(100% - 18px,680px)}.form-grid{grid-template-columns:1fr;gap:14px}.contact-form{margin-top:22px}.form-submit{align-items:stretch;flex-direction:column}.form-submit .btn{width:100%}.contact-form fieldset{flex-wrap:wrap}}
.contact-dialog{--contact-inset:24px;max-height:calc(var(--contact-viewport-height,100vh) - var(--contact-inset));overflow:auto;overscroll-behavior:contain}
@media(max-width:650px){.contact-dialog{--contact-inset:16px}.contact-dialog[open]{position:fixed;top:calc(var(--contact-viewport-top,0px) + 8px);bottom:auto;margin-inline:auto}.contact-card h2{font-size:clamp(28px,7.4vw,38px)}}
html:has(dialog.contact-dialog[open]),body:has(dialog.contact-dialog[open]){overflow:hidden}