.contact-wizard h3{font-size:27px}
.contact-wizard h4{font-size:21px;line-height:1.4;font-weight:650;margin:0 0 24px;letter-spacing:-.015em}
.form-step{min-height:225px}
.form-step[hidden],.contact-wizard[hidden],.request-success[hidden],.wizard-actions [hidden]{display:none!important}
.contact-wizard label{font-size:14px}
.phone-fields{display:grid;grid-template-columns:148px minmax(0,1fr);gap:12px}
.phone-fields input,.phone-fields select{font-size:16px}
.contact-wizard .field-hint{font-size:13px;margin-top:14px;color:var(--muted)}
.wizard-actions{display:flex;gap:12px;justify-content:space-between;margin-top:30px}
.wizard-actions .primary{margin-left:auto;flex:1}
.wizard-actions .wizard-back{color:var(--ink);background:white;border-color:var(--line);padding-inline:18px}
.wizard-actions .wizard-back:hover{background:var(--paper)}
.wizard-actions .button:disabled{opacity:.65;cursor:wait}
.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#form-status:empty{display:none}
#form-status.is-error{color:#9c252f}
.request-success p{font-size:16px}
.request-success .button{margin-top:24px}
.request-success #request-reference{font-size:13px;font-variant-numeric:tabular-nums}
@media(max-width:760px){.contact-wizard h3{font-size:25px}.contact-wizard h4{font-size:20px}.phone-fields{grid-template-columns:128px minmax(0,1fr);gap:10px}.form-step{min-height:215px}.wizard-actions{gap:10px}.wizard-actions .button{font-size:13px;gap:10px;padding-inline:14px}.request-success .actions{flex-direction:column}}

.contact-wizard .form-step{padding-top:26px}
.contact-wizard select + label{margin-top:24px}
.contact-consents{display:grid;gap:18px;margin-top:25px}
.contact-wizard .consent-row{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;align-items:start;margin:0;line-height:1.6;font-size:14px;font-weight:400;cursor:pointer}
.contact-wizard .consent-row input{width:20px;height:20px;min-height:20px;padding:0;margin:2px 0 0;accent-color:var(--purple);cursor:pointer}
.consent-row a{text-decoration:underline;text-underline-offset:3px}
.consent-meta{color:var(--muted);font-size:12px}
.contact-wizard .form-privacy,.contact-wizard .form-note{margin-top:22px;font-size:13px}
.phone-fields{align-items:end}
.phone-fields input,.phone-fields select{min-height:53px}
.contact-wizard .consent-row>span{font-size:14px;color:var(--ink)}
.contact-wizard .consent-row .consent-meta{font-size:12px;color:var(--muted)}
@media(max-width:360px){.phone-fields{grid-template-columns:110px minmax(0,1fr)}}

/* One-shot confirmation: the hidden success panel is revealed only after a saved request. */
.request-success-mark{width:72px;height:72px;margin:28px auto 0;color:#34d399}
.request-success-mark svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 4px 12px rgba(52,211,153,.18))}
.success-ring{fill:rgba(52,211,153,.06);stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.success-check{stroke:currentColor;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.request-success:not([hidden]) .request-success-mark{animation:success-settle 1s cubic-bezier(.16,1,.3,1) both}
.request-success:not([hidden]) .success-ring{animation:success-draw .45s cubic-bezier(.16,1,.3,1) .08s both}
.request-success:not([hidden]) .success-check{animation:success-draw .42s cubic-bezier(.16,1,.3,1) .36s both}
@keyframes success-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes success-settle{0%{opacity:0;transform:scale(.82)}35%{opacity:1;transform:scale(1)}78%{transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}
[data-motion=off] .request-success-mark,[data-motion=off] .success-ring,[data-motion=off] .success-check{animation:none!important}
@media(prefers-reduced-motion:reduce){.request-success-mark,.success-ring,.success-check{animation:none!important}}
