/* ══════════════════════════════════════════════════════════════════════════
   PHASE 3C-C0 — PRIVATE CONTACT & CONSULTATION INTAKE PROTOTYPE STYLES
   Temporary. Layered AFTER the committed public-shell.css. Reuses the approved
   Home/Services visual language (shell tokens; ribbon, hero, cursor glow,
   reveals, reduced-motion) with the Services R1 readability tokens. Adds
   Contact-page components: intake form, fieldsets, conditional multi-unit
   section, error summary, review / success / error panels, "what happens next",
   alternative-contact cards, FAQ. No portal, no operational styling, no
   external resource, no font import.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Readability tokens (page-scoped; from Services 3C-S0-R1) ────────────── */
:root{
  --text-secondary:#C2B8A6;
  --text-tertiary:#B0A794;
  --border:rgba(200,169,81,0.20);
  --border-strong:rgba(200,169,81,0.34);
}

/* ── Ribbon + header offset (carried) ───────────────────────────────────── */
.proto-ribbon{
  position:fixed; top:0; left:0; right:0; z-index:120;
  background:repeating-linear-gradient(45deg,#141210,#141210 12px,#17130c 12px,#17130c 24px);
  color:var(--gold); font-family:var(--sans); font-size:.62rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; text-align:center;
  padding:.32rem .6rem; border-bottom:1px solid var(--border-strong);
}
body{ padding-top:26px; }
.site-header{ top:26px; }
.primary-nav > a[aria-current="page"]{ color:var(--gold); }
.site-header .brand img{ width:40px; height:40px; object-fit:contain; flex:0 0 auto; }

/* ── Shared helpers ─────────────────────────────────────────────────────── */
.section-inner.wide{ max-width:1120px; }
.section-inner.narrow{ max-width:900px; }
.kicker{ font-size:.7rem; text-transform:uppercase; letter-spacing:.28em; color:var(--gold); margin:0 0 .9rem; }
.section-lede{ font-family:var(--editorial); font-size:clamp(1.05rem,2vw,1.3rem); color:var(--text-secondary); max-width:720px; font-weight:400; }
.proto-flag{ margin-top:1.4rem; padding:.7rem 1rem; border:1px dashed var(--border-strong); border-radius:8px; color:var(--text-tertiary); font-size:.78rem; letter-spacing:.02em; font-weight:400; }
.pending-tag{ display:inline-block; padding:.12rem .5rem; border-radius:20px; background:rgba(200,169,81,.14); border:1px solid var(--border-strong); color:var(--gold); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; }

/* ── Contact hero (compact; no oversized phone number) ──────────────────── */
.contact-hero{ position:relative; overflow:hidden; padding-top:calc(var(--header-h) + 3rem); }
.contact-hero .hero-inner{ position:relative; z-index:2; }
.contact-hero .eyebrow{ color:var(--gold); }
.contact-hero h1{ font-family:var(--serif); font-weight:600; color:var(--cream); font-size:clamp(2rem,4.6vw,3rem); line-height:1.12; margin:0 0 1.1rem; }
.contact-hero .hero-lede{ font-family:var(--editorial); font-size:clamp(1.05rem,2.2vw,1.35rem); color:var(--text-secondary); max-width:640px; margin:0 auto 1.2rem; font-weight:400; }
.contact-hero .hero-note{ color:var(--text-tertiary); font-size:.86rem; max-width:600px; margin:0 auto 1.6rem; font-weight:400; }
.contact-hero .hero-ctas{ justify-content:center; }

/* ══ INTAKE FORM ═════════════════════════════════════════════════════════ */
.form-wrap{ max-width:880px; margin:0 auto; }
.form-card{ background:var(--charcoal); border:1px solid var(--border); border-radius:16px; padding:clamp(1.4rem,3vw,2.4rem); }
.form-card > h2{ font-family:var(--serif); font-weight:500; color:var(--cream); font-size:clamp(1.4rem,3vw,1.9rem); margin:0 0 .4rem; }
.form-card .form-sub{ color:var(--text-secondary); font-size:.95rem; margin:0 0 1.4rem; font-weight:400; }
.form-disclaimer{ color:var(--gold); font-size:.84rem; background:rgba(200,169,81,.08); border:1px solid var(--border-strong); border-radius:8px; padding:.7rem .9rem; margin:0 0 1.6rem; font-weight:400; }

fieldset.fset{ border:none; border-top:1px solid var(--border); margin:0; padding:1.6rem 0 0; }
fieldset.fset:first-of-type{ border-top:none; padding-top:0; }
fieldset.fset > legend{ font-family:var(--serif); color:var(--cream); font-size:1.08rem; font-weight:500; padding:0; margin-bottom:.3rem; }
.fset-hint{ color:var(--text-secondary); font-size:.85rem; margin:0 0 1.1rem; font-weight:400; }

.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.2rem; }
.grid3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:1rem 1.2rem; }
.span2{ grid-column:1 / -1; }

.fld{ margin-bottom:1rem; min-width:0; }
.fld > label, .fld > .fld-label{ display:block; font-size:.76rem; text-transform:uppercase; letter-spacing:.1em; color:var(--text-secondary); margin-bottom:.4rem; font-weight:500; }
.fld .req{ color:var(--gold); }
.fld .opt{ color:var(--text-tertiary); text-transform:none; letter-spacing:normal; font-size:.72rem; }
.fld input[type=text], .fld input[type=email], .fld input[type=tel], .fld select, .fld textarea{
  width:100%; background:var(--black); border:1px solid var(--border-strong); border-radius:8px;
  color:var(--cream); font-family:var(--sans); font-size:.95rem; font-weight:400; padding:.72rem .85rem;
  transition:border-color .2s var(--ease-out), box-shadow .2s var(--ease-out); min-height:46px;
}
.fld textarea{ resize:vertical; min-height:120px; line-height:1.55; }
.fld input::placeholder, .fld textarea::placeholder{ color:#7d7566; }
.fld input:focus, .fld select:focus, .fld textarea:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,169,81,.22); }
.fld .help{ color:var(--text-tertiary); font-size:.78rem; margin-top:.35rem; font-weight:400; }
.fld .charcount{ float:right; color:var(--text-tertiary); font-size:.74rem; }

/* Error state (never color-only: adds an icon + text + border + aria-invalid) */
.fld.has-error input, .fld.has-error select, .fld.has-error textarea{ border-color:#e08a6a; box-shadow:0 0 0 3px rgba(224,138,106,.18); }
.form-error{ display:flex; align-items:flex-start; gap:.35rem; color:#eba088; font-size:.8rem; margin-top:.4rem; font-weight:400; }
.form-error[hidden]{ display:none; }   /* author display:flex otherwise overrides UA [hidden] */
.form-error::before{ content:"!"; flex:0 0 auto; width:15px; height:15px; margin-top:.05rem; border-radius:50%; background:#e08a6a; color:#1a1a1a; font-weight:700; font-size:.7rem; line-height:15px; text-align:center; }

/* Radio / checkbox groups */
.choice-row{ display:flex; flex-wrap:wrap; gap:.6rem; }
.choice{ display:inline-flex; align-items:center; gap:.5rem; border:1px solid var(--border-strong); border-radius:24px; padding:.5rem .9rem; cursor:pointer; color:var(--text-primary); font-size:.9rem; font-weight:400; min-height:44px; }
.choice:hover{ border-color:var(--gold); }
.choice input{ accent-color:var(--gold); width:17px; height:17px; }
.choice:focus-within{ outline:2px solid var(--gold); outline-offset:2px; }
.check-list{ display:grid; grid-template-columns:1fr 1fr; gap:.5rem .9rem; }
.check-item{ display:flex; align-items:flex-start; gap:.55rem; color:var(--text-primary); font-size:.9rem; font-weight:400; padding:.3rem 0; cursor:pointer; }
.check-item input{ accent-color:var(--gold); width:18px; height:18px; margin-top:.05rem; flex:0 0 auto; }

/* Consent block */
.consent{ border:1px solid var(--border-strong); border-radius:10px; padding:1rem 1.1rem; background:rgba(10,10,10,.5); margin-top:.4rem; }
.consent .check-item{ font-size:.88rem; line-height:1.55; color:var(--text-secondary); }
.consent .check-item strong{ color:var(--cream); font-weight:500; }
.consent .sub{ color:var(--text-tertiary); font-size:.82rem; margin:.7rem 0 0; font-weight:400; }
.no-sensitive{ color:var(--text-tertiary); font-size:.82rem; margin:.6rem 0 0; font-weight:400; }

/* Conditional multi-unit section */
#multiSection{ margin-top:1.4rem; border:1px solid var(--border-strong); border-left:3px solid var(--gold); border-radius:10px; padding:1.3rem 1.2rem; background:rgba(200,169,81,.05); }
#multiSection > legend{ font-size:1rem; }
.multi-note{ color:var(--text-secondary); font-size:.84rem; line-height:1.6; border-left:2px solid var(--border-strong); padding-left:.9rem; margin:.4rem 0 1.1rem; font-weight:400; }

/* Submit row */
.submit-row{ margin-top:1.8rem; display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }
.btn-ghost{ display:inline-flex; align-items:center; justify-content:center; min-height:44px; background:none; border:1px solid var(--border-strong); color:var(--text-secondary); padding:.75rem 1.4rem; border-radius:40px; font-size:.86rem; cursor:pointer; font-weight:400; }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }
.submit-note{ color:var(--text-tertiary); font-size:.8rem; font-weight:400; }
button.btn-gold{ border:none; cursor:pointer; }

/* Error summary (top of form) */
.err-summary{ border:1px solid #e08a6a; background:rgba(224,138,106,.1); border-radius:10px; padding:1rem 1.1rem; margin-bottom:1.4rem; }
.err-summary h3{ margin:0 0 .5rem; color:#eba088; font-family:var(--serif); font-weight:500; font-size:1.02rem; }
.err-summary ul{ margin:0; padding-left:1.1rem; }
.err-summary li{ margin:.25rem 0; }
.err-summary a{ color:#eba088; border-bottom:1px solid rgba(235,160,136,.5); }
.err-summary a:hover, .err-summary a:focus-visible{ border-bottom-color:#eba088; }

/* Review / success / error panels */
.panel-card{ max-width:880px; margin:0 auto; background:var(--charcoal); border:1px solid var(--border); border-radius:16px; padding:clamp(1.6rem,3vw,2.4rem); }
.panel-card h2{ font-family:var(--serif); font-weight:500; color:var(--cream); font-size:clamp(1.4rem,3vw,1.9rem); margin:0 0 .5rem; }
.panel-card p.lead{ color:var(--text-secondary); font-size:.95rem; margin:0 0 1.4rem; font-weight:400; }
.review-list{ display:grid; grid-template-columns:auto 1fr; gap:.55rem 1.4rem; margin:0 0 1.6rem; }
.review-list dt{ color:var(--text-tertiary); font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; }
.review-list dd{ margin:0; color:var(--cream); font-size:.95rem; font-weight:400; }
.panel-actions{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.status-badge{ display:inline-flex; align-items:center; gap:.6rem; color:var(--gold); font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:1rem; }
.status-badge .dot{ width:9px; height:9px; border-radius:50%; background:var(--gold); }
.success-check{ width:56px; height:56px; border-radius:50%; border:2px solid var(--gold); display:flex; align-items:center; justify-content:center; margin-bottom:1rem; color:var(--gold); }
.err-icon{ width:56px; height:56px; border-radius:50%; border:2px solid #e08a6a; display:flex; align-items:center; justify-content:center; margin-bottom:1rem; color:#eba088; font-size:1.6rem; font-weight:700; }
.panel-note{ margin-top:1.2rem; color:var(--text-tertiary); font-size:.82rem; font-weight:400; }

/* ══ WHAT HAPPENS NEXT ═══════════════════════════════════════════════════ */
.next-steps{ counter-reset:step; list-style:none; margin:2rem 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.next-step{ position:relative; border:1px solid var(--border); border-radius:10px; background:var(--charcoal); padding:1.4rem 1.3rem; }
.next-step .n{ font-family:var(--serif); color:var(--gold); font-size:1.3rem; display:block; margin-bottom:.4rem; }
.next-step p{ color:var(--text-secondary); font-size:.9rem; line-height:1.55; margin:0; font-weight:400; }

/* ══ ALTERNATIVE CONTACT ═════════════════════════════════════════════════ */
.alt-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; margin-top:2rem; }
.alt-card{ border:1px solid var(--border); border-radius:12px; background:var(--charcoal); padding:1.4rem 1.3rem; }
.alt-card .alt-label{ font-size:.66rem; text-transform:uppercase; letter-spacing:.16em; color:var(--gold); margin-bottom:.5rem; }
.alt-card .alt-value{ color:var(--cream); font-family:var(--serif); font-size:1.05rem; }
.alt-card .alt-value a{ color:var(--cream); border-bottom:1px solid var(--border-strong); }
.alt-card .alt-value a:hover{ color:var(--gold); }
.alt-card .alt-sub{ color:var(--text-tertiary); font-size:.82rem; margin-top:.5rem; font-weight:400; }

/* ══ FAQ (native details) ════════════════════════════════════════════════ */
.faq-list{ max-width:820px; margin:2rem 0 0; }
.faq-item{ border:1px solid var(--border); border-radius:10px; background:var(--charcoal); margin-bottom:.8rem; overflow:hidden; }
.faq-item > summary{ list-style:none; cursor:pointer; padding:1.05rem 1.3rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; font-family:var(--serif); font-weight:500; font-size:1.02rem; color:var(--cream); }
.faq-item > summary::-webkit-details-marker{ display:none; }
.faq-item > summary:focus-visible{ outline:2px solid var(--gold); outline-offset:-2px; border-radius:8px; }
.faq-item > summary:hover{ color:var(--gold); }
.faq-icon{ flex:0 0 auto; width:12px; height:12px; position:relative; }
.faq-icon::before, .faq-icon::after{ content:""; position:absolute; background:var(--gold); transition:transform .25s var(--ease-out); }
.faq-icon::before{ left:0; top:5px; width:12px; height:2px; }
.faq-icon::after{ left:5px; top:0; width:2px; height:12px; }
.faq-item[open] .faq-icon::after{ transform:scaleY(0); }
.faq-answer{ padding:0 1.3rem 1.2rem; color:var(--text-secondary); font-size:.92rem; line-height:1.65; font-weight:400; }
.faq-answer p{ margin:0 0 .6rem; } .faq-answer p:last-child{ margin:0; }

/* ══ PRIVACY NOTICE ══════════════════════════════════════════════════════ */
.privacy-card{ max-width:900px; margin:2rem auto 0; border:1px solid var(--border); border-radius:12px; background:var(--dark); padding:1.6rem 1.5rem; }
.privacy-card h3{ font-family:var(--serif); color:var(--cream); font-weight:500; margin:0 0 .7rem; font-size:1.1rem; }
.privacy-card p, .privacy-card li{ color:var(--text-secondary); font-size:.88rem; line-height:1.65; font-weight:400; }
.privacy-card ul{ margin:.5rem 0 .5rem 1.1rem; }

/* ══ CURSOR GLOW + REVEALS (carried) ═══════════════════════════════════════ */
.cursor-glow{ position:fixed; top:0; left:0; z-index:5; width:420px; height:420px; margin:-210px 0 0 -210px; border-radius:50%; pointer-events:none; opacity:0; background:radial-gradient(circle, rgba(200,169,81,.10) 0%, rgba(200,169,81,.05) 32%, rgba(200,169,81,0) 62%); transition:opacity .4s var(--ease-out); will-change:transform; }
body.cursor-glow-on .cursor-glow{ opacity:1; }
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.reveal.is-visible{ opacity:1; transform:none; }
html:not(.js-reveal) .reveal{ opacity:1; transform:none; }

/* Fixed-header offset for in-page anchors */
main section[id]{ scroll-margin-top:118px; }

/* ══ GUIDED TWO-STAGE WIZARD ══════════════════════════════════════════════ */
.wizard{ max-width:760px; margin:0 auto; }
.stage-badge{ display:inline-flex; align-items:center; gap:.5rem; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:.9rem; }
.stage-badge .dot{ width:8px; height:8px; border-radius:50%; background:var(--gold); }

/* Progress */
.progress{ margin:0 0 1.6rem; }
.progress-track{ height:5px; border-radius:5px; background:rgba(200,169,81,.15); overflow:hidden; }
.progress-fill{ height:100%; width:0; border-radius:5px; background:linear-gradient(90deg,var(--sunrise),var(--gold-bright)); transition:width .45s var(--ease-out); }
.progress-label{ display:block; margin-top:.55rem; font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:var(--text-secondary); font-weight:500; }

/* Step panel */
.wiz-step[hidden]{ display:none; }
.wiz-step{ animation:wizIn .38s var(--ease-out) both; }
@keyframes wizIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.wiz-card{ background:var(--charcoal); border:1px solid var(--border); border-radius:16px; padding:clamp(1.4rem,3vw,2.2rem); }
.wiz-head{ margin-bottom:1.3rem; }
.wiz-eyebrow{ font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin:0 0 .5rem; }
.wiz-title{ font-family:var(--serif); font-weight:500; color:var(--cream); font-size:clamp(1.35rem,3vw,1.9rem); margin:0 0 .4rem; line-height:1.2; }
.wiz-sub{ color:var(--text-secondary); font-size:.95rem; margin:0; font-weight:400; }

/* ── Selection cards (accessible radios) ─────────────────────────────────
   Four states are deliberately distinct (3C-C0-R2 Correction Four):
     default  – neutral card, restrained border, empty radio
     hover    – fine-pointer only; slight border lift, NO fill, NO bg change
     focus    – strong conventional ring (never color-only)
     selected – filled radio + gold border + gold tint + inset accent + check
   Selected persists after the pointer leaves; hover carries no meaning on touch. */
.svc-cards{ display:grid; grid-template-columns:1fr 1fr; gap:.9rem; margin:.4rem 0 0; }
.svc-choice{ position:relative; display:flex; flex-direction:column; gap:.3rem; border:1px solid var(--border-strong); border-radius:12px; padding:1.1rem 2.6rem 1.1rem 3rem; cursor:pointer; background:transparent; transition:border-color .2s var(--ease-out), transform .2s var(--ease-out), background .2s var(--ease-out), box-shadow .2s var(--ease-out); min-height:72px; }
@media (hover:hover) and (pointer:fine){
  .svc-choice:hover{ border-color:rgba(200,169,81,.52); transform:translateY(-1px); }
  .svc-choice:has(input:checked):hover{ border-color:var(--gold); }
}
.svc-choice input{ position:absolute; left:1.1rem; top:1.25rem; width:18px; height:18px; accent-color:var(--gold); }
.svc-choice .svc-choice-t{ font-family:var(--serif); color:var(--cream); font-size:1.02rem; }
.svc-choice .svc-choice-d{ color:var(--text-secondary); font-size:.84rem; line-height:1.5; font-weight:400; }
.svc-choice:has(input:checked){ border-color:var(--gold); background:rgba(200,169,81,.10); box-shadow:0 0 0 1px var(--gold) inset; }
.svc-choice:has(input:checked)::after{ content:"\2713"; position:absolute; top:1.15rem; right:1.1rem; color:var(--gold); font-size:1rem; line-height:1; font-weight:700; }
.svc-choice:focus-within{ outline:2px solid var(--gold); outline-offset:2px; }

/* Preferred-contact pills: same four-state distinction */
.choice{ transition:border-color .2s var(--ease-out), background .2s var(--ease-out), box-shadow .2s var(--ease-out); }
@media (hover:hover) and (pointer:fine){
  .choice:hover{ border-color:rgba(200,169,81,.52); }
  .choice:has(input:checked):hover{ border-color:var(--gold); }
}
.choice:has(input:checked){ border-color:var(--gold); background:rgba(200,169,81,.10); box-shadow:0 0 0 1px var(--gold) inset; color:var(--cream); }

/* ── Programmatic heading focus (3C-C0-R2 Correction Three) ───────────────
   Step / confirmation headings still receive programmatic focus, but must not
   look like a text input. The default ring is replaced by a restrained gold
   accent bar on the heading plus a soft ring on the panel — both drawn with
   absolutely-positioned pseudo-elements / box-shadow, so no layout shift.
   Interactive controls keep their conventional focus rings (untouched). */
.wiz-title, .wiz-card > h2{ position:relative; }
.wiz-title[tabindex]:focus, .wiz-card > h2[tabindex]:focus{ outline:none; }
.wiz-title[tabindex]:focus::before, .wiz-card > h2[tabindex]:focus::before{
  content:""; position:absolute; left:-1.05rem; top:.12em; bottom:.12em; width:3px;
  border-radius:2px; background:var(--gold);
}
.wiz-card:has(> .wiz-head > .wiz-title[tabindex]:focus),
.wiz-card:has(> h2[tabindex]:focus){ box-shadow:0 0 0 2px rgba(200,169,81,.42); }

/* ── Optional secondary contact disclosure (Correction Two) ──────────────── */
.secondary-disclosure{ margin-top:.9rem; }
.secondary-disclosure[hidden]{ display:none; }
.disclosure-btn{ display:inline-flex; align-items:center; gap:.5rem; background:none; border:1px dashed var(--border-strong); border-radius:40px; color:var(--text-secondary); font-family:var(--sans); font-size:.84rem; font-weight:400; padding:.6rem 1.1rem; cursor:pointer; min-height:44px; }
.disclosure-btn:hover{ border-color:var(--gold); color:var(--gold); }
.disclosure-btn:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.disclosure-caret{ flex:0 0 auto; width:9px; height:9px; position:relative; }
.disclosure-caret::before, .disclosure-caret::after{ content:""; position:absolute; background:var(--gold); transition:transform .25s var(--ease-out); }
.disclosure-caret::before{ left:0; top:3.5px; width:9px; height:2px; }
.disclosure-caret::after{ left:3.5px; top:0; width:2px; height:9px; }
.disclosure-btn[aria-expanded="true"] .disclosure-caret::after{ transform:scaleY(0); }
#secondaryWrap{ margin-top:1rem; padding:1rem 1.1rem .4rem; border:1px solid var(--border); border-left:3px solid var(--border-strong); border-radius:10px; background:rgba(10,10,10,.4); }
#secondaryWrap[hidden]{ display:none; }
.secondary-actions{ margin:0; }
.secondary-actions .wiz-skip{ padding-left:0; }

/* Step navigation */
.wiz-nav{ display:flex; flex-wrap:wrap; align-items:center; gap:.8rem; margin-top:1.8rem; }
.wiz-nav .grow{ flex:1 1 auto; }
.wiz-skip{ display:inline-flex; align-items:center; min-height:44px; background:none; border:none; color:var(--text-secondary); font-size:.86rem; text-decoration:underline; text-underline-offset:3px; cursor:pointer; padding:.5rem; font-weight:400; }
.wiz-skip:hover, .wiz-skip:focus-visible{ color:var(--gold); }
.btn-back{ display:inline-flex; align-items:center; justify-content:center; min-height:44px; background:none; border:1px solid var(--border-strong); color:var(--text-secondary); padding:.7rem 1.3rem; border-radius:40px; font-size:.86rem; cursor:pointer; font-weight:400; }
.btn-back:hover{ border-color:var(--gold); color:var(--gold); }
.wiz-note{ color:var(--text-tertiary); font-size:.8rem; margin-top:1rem; font-weight:400; }

/* Conditional contact fields inside a step */
.cond-hide[hidden]{ display:none; }

/* Referral source reveal (R3 Correction A) — subtle, non-focus-stealing */
#referrerField:not([hidden]){ animation:fldIn .22s var(--ease-out) both; }
@keyframes fldIn{ from{ opacity:0; transform:translateY(-4px); } to{ opacity:1; transform:none; } }

/* Two-choice branch buttons (Help Maven Prepare / I'm Finished) */
.branch-actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.4rem; }

/* ── Completion-state layout (3C-C0-R2 Correction Six) ───────────────────
   Confirmation cards size naturally to their content. The intake section keeps
   no form-height minimum, so "What happens next" follows immediately and the
   footer is never stranded below a large empty band. */
#consultForm{ min-height:0; }
.wizard{ min-height:0; }
#consultForm.is-complete{ padding-bottom:clamp(2rem,4vw,3.4rem); }
#confirm1, #finished, #confirm2, #errorPanel{ min-height:0; }
#confirm1 > :last-child, #finished > :last-child,
#confirm2 > :last-child, #errorPanel > :last-child{ margin-bottom:0; }

/* ══ RESPONSIVE ══════════════════════════════════════════════════════════ */
@media (max-width:1024px){
  .next-steps{ grid-template-columns:repeat(3,1fr); }
  .alt-grid{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:900px){
  .next-steps{ grid-template-columns:1fr; }
  .alt-grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .grid2, .grid3{ grid-template-columns:1fr; }
  .check-list{ grid-template-columns:1fr; }
  .submit-row{ flex-direction:column; align-items:stretch; }
  .submit-row .btn-gold, .submit-row .btn-ghost{ width:100%; text-align:center; justify-content:center; }
  .review-list{ grid-template-columns:1fr; gap:.15rem .5rem; }
  .review-list dt{ margin-top:.6rem; }
  .svc-cards{ grid-template-columns:1fr; }
  .wiz-nav{ flex-direction:column-reverse; align-items:stretch; }
  .wiz-nav .grow{ display:none; }
  .wiz-nav .btn-gold, .wiz-nav .btn-back{ width:100%; text-align:center; justify-content:center; }
  .wiz-skip{ order:3; }
  .branch-actions{ flex-direction:column; }
  .branch-actions .btn-gold, .branch-actions .btn-ghost{ width:100%; text-align:center; justify-content:center; }
}

/* ══ REDUCED MOTION ══════════════════════════════════════════════════════ */
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .cursor-glow{ display:none !important; }
  .faq-icon::before, .faq-icon::after{ transition:none !important; }
  .wiz-step{ animation:none !important; }
  .progress-fill{ transition:none !important; }
  .svc-choice{ transition:none !important; }
  .svc-choice:hover{ transform:none !important; }
  .choice{ transition:none !important; }
  .disclosure-caret::before, .disclosure-caret::after{ transition:none !important; }
  #referrerField:not([hidden]){ animation:none !important; }
}
