/* Contact page: the form states (unavailable, form, failure, success). The form card stays light in both themes
   (see bdk-v9-hero-theme.css), so the colours used inside the card are fixed for that light surface. */
.ct-steps{list-style:none;counter-reset:ct;margin:-10px 0 20px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ct-steps li{counter-increment:ct;display:inline-flex;align-items:center;gap:7px;padding:5px 11px 5px 6px;border-radius:999px;background:#e8eefb;color:#2b4270;font-size:12px;font-weight:750}
.ct-steps li::before{content:counter(ct);display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#2b4270;color:#fff;font-size:11px;font-weight:800}
.v3-contact-form .opt{font-weight:600;color:#5a6c85}
.v3-contact-form .required{color:#b42318;font-weight:800}
.ct-topic-note,.ct-hint{display:block;font-size:12px;font-weight:600;line-height:1.5;color:#41567a}
.ct-topic-note{min-height:18px}
.ct-count{display:block;text-align:right;font-size:11.5px;font-weight:600;color:#586c8b}
/* field errors: text plus a red border, never colour alone */
.ct-err{display:block;font-size:12.5px;font-weight:700;line-height:1.45;color:#b42318}
.ct-err:empty{display:none}
.v3-contact-form [aria-invalid="true"]{border-color:#b42318;box-shadow:0 0 0 3px rgba(180,35,24,.14)}
.ct-turnstile:empty{display:none}
.ct-turnstile{display:flex;justify-content:flex-start;min-height:0}
.v3-contact-form .form-status{min-height:20px;font-size:14px;font-weight:650;color:#142b50}
.ct-actions{display:flex;flex-wrap:wrap;gap:8px}
.contact-form-card .ct-actions .small-button,.contact-form-card .ct-unavailable .small-button,.contact-form-card .ct-success .small-button{margin:0;min-height:44px;padding:11px 16px;font-size:13px}
.contact-form-card .ct-mail{background:linear-gradient(135deg,#ffbe5d,#ff981f);border-color:#ffb352;color:#08182e}
.contact-form-card .ct-mail:hover{filter:brightness(1.06)}
.ct-failure{margin:4px 0 12px;padding:14px 16px;border-radius:14px;border:1px solid #f0b4ae;background:#fff4f2}
.ct-failure p{margin:0 0 10px;font-size:14px;line-height:1.55;color:#5c1b14}
.ct-failure a:not(.small-button){color:#8c1d12;font-weight:750}
/* unavailable and success panels live inside the same light card */
.ct-unavailable,.ct-success{color:#142b50}
.ct-unavailable h2,.ct-success h2{margin:0 0 8px;font-size:clamp(22px,2.4vw,28px);letter-spacing:-.02em;color:#0a2246}
.ct-unavailable p,.ct-success p{margin:0 0 12px;font-size:15px;line-height:1.6;color:#41567a}
.ct-success h2:focus{outline:none}
.ct-success h2:focus-visible{outline:3px solid #267fea;outline-offset:4px;border-radius:4px}
.ct-ref{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 14px;padding:14px 16px;border-radius:14px;border:1px solid #c7d7f3;border-left:4px solid #ff8a1f;background:#f3f6fc}
.ct-ref span{flex:1 0 100%;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#41567a}
.ct-ref strong{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:clamp(20px,5.4vw,26px);letter-spacing:.04em;color:#0a2246;word-break:break-all}
.ct-tip{font-size:13.5px!important}
.v3-contact-form .form-disclaimer a{color:#1b4fb3;font-weight:700}
@media (max-width:480px){.ct-actions .small-button{flex:1 1 100%}.ct-steps li{font-size:11.5px}}
@media (prefers-reduced-motion:reduce){.ct-success{scroll-behavior:auto}}

/* Light theme: the shared accent text (#b45309) is 4.47:1 on the pale blue hero; this deeper amber clears 4.5:1. */
html[data-theme="light"] a[data-contact-email]:not(.small-button){color:#8f3d06}
