/* Guided Consultation Form / Phase A v0.1 — /consult/ only */
.consult-page {
    --consult-navy: #172b50;
    --consult-navy-2: #203a65;
    --consult-teal: #0d9488;
    --consult-teal-dark: #08766e;
    --consult-orange: #f59e0b;
    --consult-paper: #fffdfa;
    --consult-bg: #f7f7f2;
    --consult-line: #dbe5e2;
    --consult-muted: #5f6b7a;
    --consult-danger: #b42318;
    --consult-danger-bg: #fff2f0;
    --consult-shadow: 0 24px 70px rgba(23, 43, 80, .09);
    min-height: 70vh;
    overflow: clip;
    background:
        radial-gradient(circle at 90% 5%, rgba(13, 148, 136, .09), transparent 25rem),
        linear-gradient(180deg, #fffdfa 0, var(--consult-bg) 38%, #fffdfa 100%);
    color: var(--consult-navy);
}
.consult-page *, .consult-page *::before, .consult-page *::after { box-sizing: border-box; }
.consult-shell { width: min(760px, calc(100% - 40px)); margin: 0 auto; padding: 2rem 0 7rem; }
.consult-breadcrumb { display:flex; gap:.55rem; align-items:center; margin:0 0 3rem; color:var(--consult-muted); font-size:.78rem; font-weight:800; letter-spacing:.06em; }
.consult-breadcrumb a { color:var(--consult-teal-dark); text-decoration:none; }
.consult-breadcrumb a:focus-visible, .consult-page a:focus-visible, .consult-page button:focus-visible, .consult-page input:focus-visible, .consult-page textarea:focus-visible, .consult-page select:focus-visible { outline:3px solid rgba(13,148,136,.34); outline-offset:3px; }
.consult-eyebrow { display:inline-flex; align-items:center; gap:.7rem; color:var(--consult-teal-dark); font-size:.74rem; font-weight:950; letter-spacing:.19em; }
.consult-eyebrow::after { content:""; width:42px; height:1px; background:currentColor; opacity:.45; }
.consult-intro { padding:clamp(1rem,4vw,2.5rem) 0 2rem; text-align:center; }
.consult-intro h1, .consult-complete h1 { margin:1rem auto 0; max-width:720px; color:var(--consult-navy); font-size:clamp(2.55rem,7vw,4.8rem); line-height:1.13; letter-spacing:-.045em; font-weight:950; text-wrap:balance; }
.consult-intro__lead { margin:1.6rem auto 0; max-width:640px; color:#4d5d72; font-size:clamp(.98rem,2vw,1.08rem); font-weight:650; line-height:2; }
.consult-trust { display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem; margin:2rem auto 2.2rem; }
.consult-trust span { display:inline-flex; align-items:center; min-height:38px; padding:.5rem .85rem; border:1px solid #cfe0dc; border-radius:999px; background:rgba(255,255,255,.78); color:#405166; font-size:.78rem; font-weight:850; }
.consult-button { appearance:none; display:inline-flex; min-height:50px; align-items:center; justify-content:center; border:1px solid transparent; border-radius:16px; padding:.85rem 1.35rem; font:inherit; font-weight:900; line-height:1.2; text-decoration:none; cursor:pointer; transition:border-color .16s ease, background-color .16s ease, transform .16s ease, box-shadow .16s ease; }
.consult-button--primary { background:linear-gradient(135deg, var(--consult-navy), var(--consult-navy-2)); color:#fff; box-shadow:0 12px 32px rgba(23,43,80,.16); }
.consult-button--secondary { border-color:#bdcfca; background:#fff; color:var(--consult-navy); }
.consult-button--large { min-width:min(100%, 330px); min-height:58px; font-size:1rem; }
.consult-button:disabled { opacity:.58; cursor:wait; transform:none; }
.consult-or { display:flex; align-items:center; gap:1rem; max-width:320px; margin:1.6rem auto .9rem; color:var(--consult-muted); font-size:.72rem; font-weight:800; }
.consult-or::before,.consult-or::after { content:""; flex:1; height:1px; background:#dfe6e5; }
.consult-line-link,.consult-text-link { color:var(--consult-teal-dark); font-weight:900; text-decoration:underline; text-underline-offset:4px; }
.consult-noscript { margin:2rem auto 0; padding:1rem; border:1px solid #d9e3e1; border-radius:16px; background:#fff; color:#4d5d72; }
.consult-form { position:relative; padding-top:.4rem; }
.consult-honeypot { position:absolute !important; width:1px !important; height:1px !important; margin:-1px !important; padding:0 !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; border:0 !important; }
.consult-progress { margin-bottom:2.1rem; }
.consult-progress__top { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.consult-progress__status { display:grid; justify-items:end; gap:.12rem; min-width:0; text-align:right; }
.consult-progress__step { color:var(--consult-teal-dark); font-size:.68rem; font-weight:950; letter-spacing:.08em; }
.consult-progress__top p { margin:0; color:#546276; font-size:.82rem; font-weight:850; }
.consult-back { display:inline-flex; min-height:44px; align-items:center; gap:.35rem; border:0; background:transparent; color:var(--consult-navy); font:inherit; font-size:.88rem; font-weight:900; cursor:pointer; }
.consult-progress__bar { height:5px; overflow:hidden; border-radius:999px; background:#e1e8e6; }
.consult-progress__bar span { display:block; width:12.5%; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--consult-orange),var(--consult-teal)); transition:width .18s ease; }
.consult-progress__milestones { display:grid; grid-template-columns:repeat(4,1fr); gap:.35rem; margin:.65rem 0 0; padding:0; list-style:none; color:var(--consult-muted); font-size:.68rem; font-weight:800; text-align:center; }
.consult-progress__milestones li.is-active { color:var(--consult-navy); }
.consult-step { min-width:0; padding:clamp(1.4rem,4vw,2.3rem); border:1px solid rgba(23,43,80,.09); border-radius:28px; background:rgba(255,255,255,.92); box-shadow:var(--consult-shadow); }
.consult-step__head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.consult-step__head:focus { outline:none; }
.consult-step__head p { margin:0; color:var(--consult-muted); font-size:.73rem; font-weight:800; text-align:right; }
.consult-step__number { display:inline-flex; align-items:center; gap:.55rem; color:var(--consult-teal-dark); font-size:.76rem; font-weight:950; letter-spacing:.14em; }
.consult-step__number::after { content:""; width:30px; height:1px; background:currentColor; opacity:.45; }
.consult-fieldset { min-width:0; margin:0; padding:0; border:0; }
.consult-fieldset legend,.consult-legend-like,.consult-contact-head h2,.consult-review-head h2,.consult-label { display:block; width:100%; margin:0; color:var(--consult-navy); font-size:clamp(1.55rem,4.5vw,2.2rem); font-weight:950; line-height:1.42; letter-spacing:-.025em; text-wrap:balance; }
.consult-label--small { margin-bottom:.55rem; font-size:.94rem; letter-spacing:0; }
.consult-label--small span { color:var(--consult-danger); font-size:.68rem; }
.consult-label--small em { color:var(--consult-muted); font-size:.68rem; font-style:normal; }
.consult-helper { margin:.7rem 0 1.35rem; color:var(--consult-muted); font-size:.82rem; font-weight:650; line-height:1.7; }
.consult-helper--compact { margin:.45rem 0 0; font-size:.74rem; }
.consult-choices { display:grid; grid-template-columns:1fr; gap:.7rem; }
.consult-choice { position:relative; display:grid; grid-template-columns:28px minmax(0,1fr); gap:.8rem; min-height:58px; align-items:center; padding:.85rem 1rem; border:1.5px solid #d6e0de; border-radius:16px; background:#fff; color:#32445c; cursor:pointer; user-select:none; transition:border-color .15s ease, background-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.consult-choice input { position:absolute; opacity:0; width:1px; height:1px; pointer-events:none; }
.consult-choice__indicator { position:relative; display:grid; place-items:center; width:24px; height:24px; border:2px solid #b5c4c0; border-radius:50%; background:#fff; }
.consult-choice input[type="checkbox"] + .consult-choice__indicator { border-radius:7px; }
.consult-choice input:checked + .consult-choice__indicator { border-color:var(--consult-teal); background:var(--consult-teal); }
.consult-choice input:checked + .consult-choice__indicator::after { content:""; width:7px; height:11px; margin-top:-2px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(42deg); }
.consult-choice:has(input:checked) { border-color:var(--consult-teal); background:#effaf7; box-shadow:0 8px 24px rgba(13,148,136,.08); }
.consult-choice:has(input:focus-visible) { outline:3px solid rgba(13,148,136,.30); outline-offset:2px; }
.consult-choice__label { min-width:0; font-size:.94rem; font-weight:850; line-height:1.55; }
.consult-field-error { margin:.75rem 0 0; color:var(--consult-danger); font-size:.8rem; font-weight:850; line-height:1.55; }
.consult-field-error:not([hidden]) { display:block; }
.consult-step__actions { display:flex; flex-direction:column; align-items:center; gap:.65rem; margin-top:1.8rem; }
.consult-step__actions > .consult-button { width:min(100%, 330px); }
.consult-contact-head,.consult-review-head { margin-bottom:1.5rem; }
.consult-contact-head p,.consult-review-head p { margin:.55rem 0 0; color:var(--consult-muted); font-size:.85rem; font-weight:650; }
.consult-fieldset--spaced { margin-top:1.6rem; }
.consult-fieldset--spaced legend { font-size:1rem; letter-spacing:0; margin-bottom:.7rem; }
.consult-contact-method { margin-top:1.2rem; padding:1.15rem; border:1px solid #dae4e2; border-radius:18px; background:#fbfdfc; }
.consult-text-input,.consult-select,.consult-page textarea { width:100%; min-height:52px; border:1.5px solid #cbd8d5; border-radius:14px; background:#fff; color:#243751; padding:.8rem .9rem; font:inherit; font-size:1rem; line-height:1.55; }
.consult-page textarea { min-height:160px; resize:vertical; }
.consult-note-toggle { width:min(100%,330px); }
.consult-note-panel { margin-top:1rem; }
.consult-note-panel[hidden] { display:none; }
.consult-note-meta { display:flex; justify-content:space-between; gap:1rem; margin-top:.45rem; color:var(--consult-muted); font-size:.72rem; font-weight:750; }
.consult-review { display:grid; gap:.75rem; }
.consult-review__item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; align-items:start; padding:1rem; border:1px solid #dce5e3; border-radius:16px; background:#fff; }
.consult-review__item dt { color:var(--consult-muted); font-size:.72rem; font-weight:900; letter-spacing:.05em; }
.consult-review__item dd { margin:.3rem 0 0; color:#263b58; font-size:.9rem; font-weight:800; line-height:1.7; white-space:pre-line; }
.consult-review__edit { min-height:44px; border:0; background:transparent; color:var(--consult-teal-dark); font:inherit; font-size:.78rem; font-weight:950; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.consult-consent { margin-top:1.25rem; padding:1rem; border:1px solid #d9e2e0; border-radius:16px; background:#fbfcfa; }
.consult-consent__label { position:relative; display:grid; grid-template-columns:28px minmax(0,1fr); gap:.7rem; align-items:start; color:#46566d; font-size:.82rem; font-weight:750; line-height:1.7; cursor:pointer; }
.consult-consent__label input { position:absolute; opacity:0; width:1px; height:1px; }
.consult-consent__label input:checked + .consult-choice__indicator { border-color:var(--consult-teal); background:var(--consult-teal); }
.consult-consent__label input:checked + .consult-choice__indicator::after { content:""; width:7px; height:11px; margin-top:-2px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(42deg); }
.consult-consent__label:has(input:focus-visible) { outline:3px solid rgba(13,148,136,.30); outline-offset:4px; border-radius:8px; }
.consult-consent a { color:var(--consult-teal-dark); font-weight:900; }
.consult-consent small { display:block; margin-top:.15rem; color:var(--consult-muted); font-size:.7rem; }
.consult-submit-note { margin:0; color:var(--consult-muted); font-size:.74rem; font-weight:700; text-align:center; }
.consult-global-error,.consult-submit-error { margin:0 0 1rem; padding:1rem; border:1px solid #f2c5bf; border-radius:16px; background:var(--consult-danger-bg); color:#8e231a; font-size:.84rem; font-weight:800; line-height:1.65; }
.consult-submit-error { margin-top:1rem; }
.consult-submit-error p { margin:0; }
.consult-submit-error > div { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; margin-top:.8rem; }
.consult-submit-error__actions [hidden] { display:none !important; }
.consult-submit-error a { color:#7b2c25; font-weight:900; }
.consult-sr-live,.consult-visually-hidden { 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; }
.consult-complete { padding:clamp(1rem,5vw,3rem) 0 2rem; text-align:center; }
.consult-complete__mark { display:grid; place-items:center; width:76px; height:76px; margin:1.3rem auto 0; border-radius:50%; background:#e5f7f3; color:var(--consult-teal-dark); font-size:2rem; font-weight:950; }
.consult-complete__lead { margin:1.2rem auto 0; max-width:540px; color:#536278; font-size:1rem; font-weight:700; line-height:1.8; }
.consult-receipt { display:flex; flex-direction:column; gap:.25rem; width:min(100%,360px); margin:1.8rem auto 0; padding:1rem; border:1px solid #d7e1df; border-radius:16px; background:#fff; }
.consult-receipt span { color:var(--consult-muted); font-size:.72rem; font-weight:850; }
.consult-receipt strong { color:var(--consult-navy); font-size:1.25rem; letter-spacing:.08em; }
.consult-status-note { margin:1rem auto 0; color:#526276; font-size:.84rem; font-weight:800; }
.consult-status-note--warning { color:#8b4d19; }
.consult-complete__actions { display:flex; flex-direction:column; align-items:center; gap:.8rem; margin-top:2rem; }
.consult-complete__actions .consult-button { width:min(100%,360px); }
.consult-complete__tertiary { margin-top:.2rem; font-size:.82rem; font-weight:800; }
.consult-mobile-break { display:none; }
@media (hover:hover) and (pointer:fine) {
    .consult-choice:hover { border-color:#9dbdb6; transform:translateY(-1px); }
    .consult-button:not(:disabled):hover { transform:translateY(-1px); }
}
@media (min-width:720px) {
    .consult-choices--stage { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .consult-choices--reply { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) {
    .consult-shell { width:min(100% - 32px,760px); padding-top:1.3rem; padding-bottom:5rem; }
    .consult-breadcrumb { margin-bottom:2.2rem; }
    .consult-mobile-break { display:block; }
    .consult-intro h1,.consult-complete h1 { font-size:clamp(2.3rem,11vw,3.3rem); }
    .consult-intro__lead br { display:none; }
    .consult-trust { flex-direction:column; align-items:stretch; }
    .consult-trust span { justify-content:center; }
    .consult-progress__status { max-width:190px; }
    .consult-progress__milestones { font-size:.62rem; }
    .consult-step { padding:1.25rem 1rem; border-radius:22px; }
    .consult-step[data-step="S01"],
    .consult-step[data-step="S02"],
    .consult-step[data-step="S03"],
    .consult-step[data-step="S04"],
    .consult-step[data-step="S05"] { padding-bottom:7.5rem; }
    .consult-step[data-step="S01"] .consult-step__actions,
    .consult-step[data-step="S02"] .consult-step__actions,
    .consult-step[data-step="S03"] .consult-step__actions,
    .consult-step[data-step="S04"] .consult-step__actions,
    .consult-step[data-step="S05"] .consult-step__actions {
        position:fixed;
        z-index:120;
        right:0;
        bottom:0;
        left:0;
        margin:0;
        padding:.8rem 16px calc(.8rem + env(safe-area-inset-bottom, 0px));
        background:linear-gradient(180deg, rgba(247,247,242,0), rgba(247,247,242,.94) 34%, rgba(247,247,242,.99) 100%);
        pointer-events:none;
    }
    .consult-step[data-step="S01"] .consult-step__actions > .consult-button,
    .consult-step[data-step="S02"] .consult-step__actions > .consult-button,
    .consult-step[data-step="S03"] .consult-step__actions > .consult-button,
    .consult-step[data-step="S04"] .consult-step__actions > .consult-button,
    .consult-step[data-step="S05"] .consult-step__actions > .consult-button { pointer-events:auto; }
    .consult-step__head { align-items:flex-start; }
    .consult-choice { min-height:56px; padding:.78rem .82rem; }
    .consult-choice__label { font-size:.9rem; }
    .consult-review { display:block; overflow:hidden; border:1px solid #dce5e3; border-radius:16px; background:#fff; }
    .consult-review__item { grid-template-columns:minmax(0,1fr) auto; gap:.65rem; padding:.78rem .85rem; border:0; border-bottom:1px solid #e5ecea; border-radius:0; background:transparent; }
    .consult-review__item:last-child { border-bottom:0; }
    .consult-review__item dt { font-size:.68rem; }
    .consult-review__item dd { margin-top:.2rem; font-size:.84rem; line-height:1.55; }
    .consult-review__edit { min-height:40px; padding:0 .15rem; font-size:.74rem; }
}
@media (max-width:340px) {
    .consult-shell { width:calc(100% - 28px); }
    .consult-progress__top { align-items:flex-start; }
    .consult-progress__top p { max-width:150px; }
    .consult-step { padding:1.15rem .85rem; }
    .consult-choice { grid-template-columns:26px minmax(0,1fr); gap:.65rem; }
}
@media (prefers-reduced-motion:reduce) {
    .consult-page *, .consult-page *::before, .consult-page *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
