/* ===== Lead intake flow (shared by both sites; colors come from each site's CSS variables) ===== */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.intake{position:relative}
.intake-progress{list-style:none;margin:0 0 26px;padding:0;display:flex;gap:8px;counter-reset:s}
.intake-progress li{flex:1;display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:800;color:var(--muted, var(--slate));position:relative;padding-bottom:10px;border-bottom:3px solid var(--line)}
.intake-progress li.on{color:var(--navy);border-color:var(--orange)}
.intake-progress li.done{color:var(--navy);border-color:var(--blue)}
.intake-progress .dot{width:24px;height:24px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:.75rem;background:var(--mist);color:var(--muted, var(--slate))}
.intake-progress li.on .dot{background:var(--orange);color:#fff}
.intake-progress li.done .dot{background:var(--blue);color:#fff;font-size:0}
.intake-progress li.done .dot::after{content:"✓";font-size:.8rem}
.intake fieldset{border:0;margin:0;padding:0;min-width:0}
.step-title{font-size:1.45rem;line-height:1.25;margin:0 0 6px;color:var(--navy);outline:none}
.step-sub{color:var(--slate);margin:0 0 20px;font-size:.97rem}
.fgrid{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:18px}
.field{min-width:0}
.field label{margin-bottom:6px}
.field .opt{font-weight:600;color:var(--muted, var(--slate))}
.field input,.field select,.field textarea{font-size:16px;min-height:48px}
.field textarea{min-height:88px;resize:vertical}
.field.is-error input,.field.is-error select{border-color:#d93d3d;background:#fff8f8}
.field.is-ok input{border-color:#2fa56a}
.field.is-warn input{border-color:#e0a100}
.field-msg{margin:6px 0 0;font-size:.84rem;font-weight:600;min-height:0}
.field-msg:empty{display:none}
.field.is-error .field-msg{color:#c22f2f}
.field.is-warn .field-msg{color:#8a6200}
.counter{margin:4px 0 0;text-align:right;font-size:.75rem;color:var(--muted, var(--slate))}
.hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.btn-block{width:100%;justify-content:center;min-height:52px;font-size:1.02rem}
.btn-link{background:none;border:0;color:var(--slate);text-decoration:underline;font:inherit;font-weight:700;cursor:pointer;padding:12px 6px}
.consent{font-size:.8rem;color:var(--muted, var(--slate));margin:12px 0 0;line-height:1.5}
.consent a{color:inherit;text-decoration:underline}
.chip-grid{display:grid;grid-template-columns:1fr;gap:8px}
.chip-opt{display:flex!important;align-items:center;gap:10px;margin:0!important;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;font-weight:700;color:var(--ink);min-height:48px;transition:.12s}
.chip-opt input{width:20px;height:20px;min-height:0;flex:none;accent-color:var(--orange);margin:0}
.chip-opt:has(input:checked){border-color:var(--orange);background:var(--chip-on,#fff4e6);box-shadow:0 0 0 1px var(--orange) inset}
.chip-opt:has(input:focus-visible){outline:3px solid var(--blue);outline-offset:2px}
.interest-group.is-error .chip-grid{outline:2px solid #d93d3d;outline-offset:4px;border-radius:12px}
.interest-group.is-error .field-msg{color:#c22f2f}
.cross-note{font-size:.86rem;color:var(--slate);margin:10px 0 18px}
.opt-in{display:flex!important;gap:10px;align-items:flex-start;font-weight:600!important;color:var(--slate)!important;font-size:.9rem!important}
.opt-in input{width:18px;height:18px;min-height:0;margin-top:3px;accent-color:var(--orange)}
.captcha-ph{border:1px dashed var(--line);border-radius:10px;padding:12px 14px;font-size:.86rem;color:var(--slate);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.step-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.step-actions .btn-primary{flex:1;justify-content:center;min-height:52px}
.intake-error{background:#fff4f4;border:1px solid #f1c4c4;color:#9b2323;border-radius:10px;padding:10px 12px;font-size:.9rem}
.booking-frame-wrap{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;margin:6px 0 16px}
.booking-frame-wrap iframe{display:block;width:100%;height:680px;border:0}
.booking-ph{font-size:.86rem;color:var(--slate);margin:-6px 0 12px}
.intake-thanks{text-align:center;padding:30px 6px}
.intake-thanks .check{width:64px;height:64px;border-radius:50%;background:#e7f7ee;color:var(--good,#146C43);display:grid;place-items:center;font-size:2rem;margin:0 auto 16px}
.next-steps ol{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:14px;counter-reset:n}
.next-steps li{counter-increment:n;display:grid;grid-template-columns:30px 1fr;column-gap:12px}
.next-steps li::before{content:counter(n);grid-row:span 2;width:30px;height:30px;border-radius:50%;background:var(--orange);color:#fff;font-weight:800;display:grid;place-items:center;font-size:.85rem}
.next-steps li b{color:var(--navy)}.next-steps li span{color:var(--slate);font-size:.9rem}
.intake-layout{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}
/* The page hero is position:relative, so it paints over this in-flow section.
   Progress steps are positioned and show on the hero while the card background
   stays behind it. Lift the overlap so the white card, steps included, sits on the hero. */
.intake-overlap{position:relative;z-index:2;padding-top:0;margin-top:-100px}
.intake-card{position:relative;background:#fff;color:var(--ink);border-radius:20px;box-shadow:var(--shadow-lg);padding:22px 18px;border:1px solid var(--line)}
@media(min-width:600px){
  .fgrid{grid-template-columns:1fr 1fr}.fgrid .full{grid-column:1/-1}
  .chip-grid{grid-template-columns:1fr 1fr}
  .intake-card{padding:36px}
}
@media(min-width:960px){.intake-layout{grid-template-columns:1.65fr 1fr;gap:32px}
  .intake-layout.is-booking{grid-template-columns:1fr;max-width:1000px;margin-left:auto;margin-right:auto}
  .intake-layout.is-booking>aside{display:none!important}}
@media(max-width:599px){.intake-progress .lbl{font-size:.72rem}.booking-frame-wrap iframe{height:960px}.step-title{font-size:1.25rem}}
.booking-frame-wrap.is-bookings iframe{height:1150px}
