/* Referral form (public) */
.rf-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:32px;margin-top:28px;align-items:start}
.rf-side{background:var(--fp);border-radius:16px;padding:24px;color:var(--char);position:sticky;top:24px}
.rf-side h3{font-family:'Playfair Display',serif;font-weight:500;color:var(--forest);font-size:20px;margin:0 0 12px}
.rf-points{margin:0 0 16px;padding-left:18px;font-size:14px;line-height:1.7;color:var(--char)}
.rf-points li{margin-bottom:6px}
.rf-reg{font-size:13px;color:var(--forest);font-weight:500;line-height:1.6}
.rf-reg a,.rf-small a,.rv-link a{color:var(--forest)}
.rf-note{font-size:12.5px;color:var(--muted);line-height:1.6;margin:12px 0 0}
.rf-form{background:#fff;border:1px solid rgba(30,77,59,.12);border-radius:16px;padding:24px}
.rf-form fieldset{border:0;padding:0;margin:0 0 20px}
.rf-form legend{font-family:'Playfair Display',serif;font-size:18px;color:var(--forest);margin-bottom:10px;padding:0}
.rf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rf-form label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:500;color:var(--char)}
.rf-form input:not([type=checkbox]),.rf-form select,.rf-form textarea{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:10px;border:1px solid rgba(30,77,59,.25);background:var(--warm);font:inherit;font-size:14px;color:var(--char);height:auto}
.rf-form textarea{resize:vertical;min-height:60px}
.rf-form input:focus,.rf-form select:focus,.rf-form textarea:focus{outline:2px solid var(--forest);outline-offset:1px}
.rf-wide{grid-column:1/-1;margin-top:10px}
.rf-check{flex-direction:row!important;align-items:flex-start;gap:10px!important;font-weight:400!important;line-height:1.55;margin:4px 0 16px}
.rf-check input{width:18px;height:18px;margin-top:2px;flex-shrink:0;accent-color:var(--forest)}
.rf-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0}
.rf-status{font-size:13.5px;line-height:1.6;margin:12px 0 0;min-height:1em;color:var(--muted)}
.rf-status.ok{color:var(--forest);font-weight:500}
.rf-status.err{color:#b42318}
.rf-small{font-size:12px;color:var(--muted);margin-top:8px}
.rv-link{text-align:center;font-size:14px;margin:18px 0 0;color:var(--muted)}
@media(max-width:820px){.rf-wrap{grid-template-columns:1fr}.rf-side{position:static}.rf-grid{grid-template-columns:1fr}.rf-form,.rf-side{padding:18px}}

/* Intake & consent form (public, opened from ?intake=token) */
.if-overlay{position:fixed;inset:0;z-index:10000;background:var(--warm);overflow:auto;padding:24px 16px}
.if-card{max-width:680px;margin:0 auto;background:#fff;border-radius:18px;padding:28px;border:1px solid rgba(30,77,59,.12)}
.if-brand{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--forest);margin:0 0 6px;font-weight:600}
.if-card h1{font-family:'Playfair Display',serif;font-weight:500;color:var(--forest);font-size:28px;margin:0 0 14px}
.if-card p{font-size:14.5px;line-height:1.65;color:var(--char)}
.if-card fieldset{border:0;padding:0;margin:0 0 22px}
.if-card legend{font-family:'Playfair Display',serif;font-size:19px;color:var(--forest);margin-bottom:10px}
.if-card label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:500;margin:0 0 12px;color:var(--char)}
.if-card input:not([type=checkbox]),.if-card textarea{width:100%;box-sizing:border-box;padding:11px 12px;border-radius:10px;border:1px solid rgba(30,77,59,.25);background:var(--warm);font:inherit;font-size:15px;height:auto}
.if-card textarea{resize:vertical}
.if-card input:focus,.if-card textarea:focus{outline:2px solid var(--forest);outline-offset:1px}
.if-q{font-weight:500;margin:4px 0 8px}
.if-chks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;margin-bottom:12px}
.if-card .if-chk{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400;line-height:1.5;margin:0 0 8px}
.if-chk input{width:19px;height:19px;margin-top:1px;flex-shrink:0;accent-color:var(--forest)}
.if-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.if-warn{background:#fff4e5;border:1px solid rgba(196,151,90,.45);padding:10px 12px;border-radius:8px;font-size:13.5px!important}
@media(max-width:600px){.if-chks,.if-row{grid-template-columns:1fr}.if-card{padding:20px}}

/* Admin: referrals, invoices, practice tools */
.pr-badge{display:inline-block;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--stone);color:var(--muted);margin-left:6px;vertical-align:middle}
.pr-badge.new{background:#e0f2fe;color:#0369a1}
.pr-badge.accepted,.pr-badge.active,.pr-badge.paid,.pr-badge.completed{background:#dcfce7;color:#15803d}
.pr-badge.overdue,.pr-badge.declined{background:#fee2e2;color:#b91c1c}
.pr-badge.sent,.pr-badge.pending,.pr-badge.due{background:#fef3c7;color:#b45309}
.pr-alerts{display:flex;flex-direction:column;gap:8px;margin:0 0 16px}
.pr-alert{padding:10px 12px;border-radius:9px;font-size:13px;background:#fef3c7;color:#92400e}
.pr-alert.bad{background:#fee2e2;color:#991b1b}
.pr-meter{height:8px;background:var(--stone);border-radius:999px;overflow:hidden;margin:6px 0}
.pr-meter span{display:block;height:100%;background:var(--forest)}
.pr-lines{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}
.pr-lines th,.pr-lines td{border-bottom:1px solid var(--stone);padding:6px;text-align:left;vertical-align:top}
.pr-lines input{width:100%;box-sizing:border-box;border:1px solid #b9d0c5;border-radius:6px;padding:6px;font:inherit;font-size:12.5px}
.pr-lines td.num,.pr-lines th.num{text-align:right;white-space:nowrap}
.pr-kv{display:grid;grid-template-columns:200px minmax(0,1fr);gap:4px 12px;font-size:13px;line-height:1.55}
.pr-kv dt{color:var(--muted)}
.pr-kv dd{margin:0;color:var(--char);white-space:pre-wrap}
.pr-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}
.pr-tabs button[aria-pressed=true]{background:var(--forest);color:#fff;border-color:var(--forest)}
.pr-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
@media(max-width:700px){.pr-kv{grid-template-columns:1fr}}
#prStatus:empty{display:none}
.pr-line{display:grid;grid-template-columns:minmax(120px,1fr) 64px 90px auto auto;gap:8px;align-items:end;padding:10px 0;border-bottom:1px solid var(--stone)}
.pr-line label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted)}
.pr-line input{width:100%;box-sizing:border-box;border:1px solid #b9d0c5;border-radius:6px;padding:7px;font:inherit;font-size:13px;color:var(--char)}
.pr-line .pr-desc{grid-column:1/-1}
.pr-amt{font-size:13px;font-weight:600;color:var(--char);padding-bottom:8px;text-align:right;min-width:70px}
.pr-line .eq-btn{padding:6px 10px}
.pr-total{text-align:right;font-size:15px;margin:10px 0}
.pr-line label,.pr-line input{min-width:0;max-width:100%}
.if-card .if-chk{font-size:14.5px}.if-card label{font-size:14px}
.if-card [hidden]{display:none!important}
html{scroll-padding-top:96px}
.if-policy{background:var(--warm);border:1px solid rgba(30,77,59,.15);border-radius:12px;padding:16px;margin:0 0 20px;font-size:14px;line-height:1.6}
.if-policy .btn-p{margin-bottom:12px}
.rf-wrap[hidden]{display:none}
.rf-toggle{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0}
.rf-toggle button{font:inherit;font-size:14.5px;font-weight:500;padding:11px 18px;border-radius:999px;border:1.5px solid var(--forest);background:#fff;color:var(--forest);cursor:pointer}
.rf-toggle button[aria-selected=true]{background:var(--forest);color:#fff}
.rf-toggle button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.rf-q{font-size:12.5px;font-weight:500;margin:12px 0 6px;color:var(--char)}
.rf-q span{font-weight:400;color:var(--muted)}
.rf-chips{display:flex;flex-wrap:wrap;gap:8px}
.rf-form .rf-chip{flex-direction:row;align-items:center;gap:0;font-weight:400}
.rf-form .rf-chip{position:relative}
.rf-chip input{position:absolute;left:0;top:0;opacity:0;width:1px;height:1px;margin:0}
.rf-chip span{padding:8px 14px;border-radius:20px;border:1px solid rgba(30,77,59,.25);font-size:13px;background:var(--warm);cursor:pointer;transition:all .15s}
.rf-chip input:checked+span{background:var(--forest);color:#fff;border-color:var(--forest)}
.rf-chip input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
.rf-triage{margin:12px 0 4px;padding:10px 12px;border-radius:10px;background:var(--fp);font-size:13.5px;line-height:1.6;color:var(--forest)}
.rf-triage.complex{background:#fbf4ea;color:#7a5520;border:1px solid rgba(196,151,90,.45)}
.rf-opt{font-weight:400;color:var(--muted)}
.rf-travel{grid-column:1/-1;margin:-2px 0 0;font-size:13px;color:var(--muted);min-height:1em}
.rf-travel.included{color:var(--forest);font-weight:500}
.rf-travel.nearby,.rf-travel.extended{color:#7a5520;font-weight:500}
.rf-flags{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}
.rf-flags .rf-check{margin:4px 0}
.rf-form fieldset[hidden]{display:none}
.rf-dialog{border:0;border-radius:16px;padding:26px 28px;max-width:420px;width:calc(100% - 32px);box-shadow:0 20px 50px rgba(0,0,0,.25);text-align:center;color:var(--char)}
.rf-dialog::backdrop{background:rgba(26,31,29,.45)}
.rf-dialog h3{font-family:'Playfair Display',serif;font-weight:500;color:var(--forest);font-size:24px;margin:0 0 10px}
.rf-dialog p{font-size:15px;line-height:1.6;margin:0 0 18px}
/* Laptop widths: Legal and Affiliations stay in the footer so the top bar never overflows. */
@media(max-width:1250px){.nav-links{gap:18px}.nav-links li:nth-last-child(-n+2){display:none}}
.nav-cta{white-space:nowrap}
.rf-dialog[open]{position:fixed;inset:0;margin:auto;height:fit-content}
.bk-flags{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.bk-flags label{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;font-weight:400;color:var(--char);line-height:1.45;cursor:pointer}
.bk-flags input{width:17px;height:17px;margin-top:1px;flex-shrink:0;accent-color:var(--forest);padding:0}

/* ── Mobile sizing and placement ── */
/* Floating WhatsApp/chat buttons never sit on top of pop-ups or the intake form. */
body:has(#bModal.open) .float-wa, body:has(#bModal.open) .chat-bub,
body:has(.if-overlay) .float-wa, body:has(.if-overlay) .chat-bub,
body:has(.rf-dialog[open]) .float-wa, body:has(.rf-dialog[open]) .chat-bub{display:none}
@media(max-width:600px){
  /* Smaller, tucked-in floating buttons so they cover less text. */
  .float-wa{width:42px;height:42px;right:12px;bottom:calc(66px + env(safe-area-inset-bottom,0px))}
  .chat-bub{width:44px;height:44px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom,0px))}
  .float-wa svg,.chat-bub svg{transform:scale(.88)}
  /* Keep the last lines of the footer clear of the floating buttons. */
  footer{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  /* Referral: form first, "what happens next" after it; full-width buttons. */
  .rf-wrap .rf-side{order:2}
  .rf-toggle button{flex:1 1 100%}
  .rf-submit{width:100%;justify-content:center}
}
@media(max-width:480px){
  /* One column where two columns squeeze the text. */
  .how-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
}
.if-card #intakeForm{margin-top:18px}
/* Admin practice panel on phones: nothing wider than the screen. */
#prPanel .eq-layout>*{min-width:0}
#prPanel select,#prPanel .eq-search{max-width:100%}
@media(max-width:600px){
  .pr-line{grid-template-columns:1fr 1fr}
  .pr-line .pr-desc,.pr-line label:nth-of-type(2){grid-column:1/-1}
  .pr-amt{text-align:left;padding-bottom:0;align-self:center}
  .pr-line .eq-btn{justify-self:end}
  .pr-kv{grid-template-columns:1fr}
}

/* ── Referrers sheet (case managers) ── */
.refs-ov{position:fixed;inset:0;background:rgba(26,31,29,.45);z-index:650}
body:has(.refs-ov:not([hidden])) .float-wa,body:has(.refs-ov:not([hidden])) .chat-bub,body:has(.refs-ov:not([hidden])) .chat-win{display:none!important}
.refs-sheet{position:absolute;top:0;right:0;bottom:0;width:min(520px,100%);background:var(--warm);box-shadow:-20px 0 60px rgba(0,0,0,.3);display:flex;flex-direction:column;outline:none;animation:refsIn .25s ease}
@keyframes refsIn{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.refs-head{position:relative;background:var(--forest);color:#fff;padding:26px 28px}
.refs-sl{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);font-weight:500;margin-bottom:6px}
.refs-head h2{font-family:'Playfair Display',serif;font-weight:400;font-size:26px;margin:0;color:#fff}
.refs-head p{font-size:13.5px;opacity:.88;margin:6px 0 0;line-height:1.5}
.refs-x{position:absolute;top:14px;right:16px;border:none;background:none;font-size:26px;line-height:1;color:#fff;cursor:pointer;padding:4px 8px}
.refs-body{padding:22px 28px;overflow:auto;flex:1}
.refs-body h3{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage-text);font-weight:500;margin:18px 0 8px}
.refs-body h3:first-child{margin-top:0}
.refs-steps{list-style:none;counter-reset:s;margin:0;padding:0}
.refs-steps li{counter-increment:s;display:flex;gap:10px;margin-bottom:8px;font-size:13.5px;line-height:1.5}
.refs-steps li::before{content:counter(s);flex:0 0 22px;height:22px;border-radius:50%;background:var(--forest);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center}
.refs-fees{width:100%;border-collapse:collapse;font-size:13.5px}
.refs-fees td{padding:7px 0;border-bottom:1px solid rgba(30,77,59,.1);vertical-align:top}
.refs-fees td:last-child{text-align:right;font-weight:500;color:var(--forest);white-space:nowrap;padding-left:10px}
.refs-note{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 0}
.refs-card{background:#fff;border:1px solid rgba(30,77,59,.1);border-radius:12px;padding:14px 16px;font-size:13.5px;line-height:1.6;list-style:none;margin:0}
.refs-card li::before{content:"✓ ";color:var(--forest)}
.refs-card a{color:var(--forest)}
.refs-foot{padding:14px 28px calc(18px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(30,77,59,.12);background:var(--warm)}
.refs-btn{display:block;text-align:center;width:100%;padding:13px;border-radius:999px;font:500 14px Outfit,sans-serif;border:1px solid var(--forest);background:#fff;color:var(--forest);text-decoration:none;cursor:pointer}
.refs-btn-p{background:var(--forest);color:#fff}
.refs-row{display:flex;gap:8px;margin-top:8px;position:relative}.refs-row .refs-btn{flex:1;padding:10px;font-size:13px}
.refs-email{flex:1;width:auto;animation:none;position:static}.refs-email summary.refs-btn{display:block;width:100%;border-radius:999px;font:500 13px Outfit,sans-serif;padding:10px;transform:none}.refs-email summary::after{margin-left:6px}.refs-email .hero-email-menu{top:auto;bottom:calc(100% + 8px);left:0;right:0;transform:none;justify-content:center;flex-wrap:wrap;white-space:normal}
@media(max-width:600px){.refs-head{padding:20px 18px}.refs-body{padding:16px 18px}.refs-foot{padding-left:18px;padding-right:18px}}
/* Outcomes register */
.eq-table-wrap{overflow-x:auto}.eq-table{width:100%;border-collapse:collapse;font-size:12.5px}.eq-table th,.eq-table td{padding:8px 8px;border-bottom:1px solid rgba(30,77,59,.1);text-align:left;vertical-align:top}.eq-table th{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--forest)}
.oc-chip{display:inline-block;background:var(--warm);border:1px solid rgba(30,77,59,.12);border-radius:8px;padding:3px 8px;margin:2px 4px 2px 0;font-size:12px}.oc-chip small{color:var(--muted)}.oc-x{border:0;background:none;color:#b91c1c;cursor:pointer;padding:0 2px;font-size:13px}
