/* findingrehab.io directory styles: state pages, program pages and the Saved page.
   Visual language from the prototype (subhead, filter rail, result rows, title band, facts,
   sections, contact aside) with the prototype's placeholder components removed (no map,
   photos, capacity numbers, match scores or trust badges). Global tokens and components (chips, tags, badges, buttons,
   forms, breadcrumbs, cards, empty) live in site.css.
   Audit items handled here: results before filters on narrow screens with a Filters
   disclosure (E2E-V1, A11Y-26), stretched link rows with headings (A11Y-16), contact card
   first on phones and sticky only where it fits (A11Y-V2, A11Y-11), reflow at 320px (A11Y-2,
   E2E-13), forced colors (A11Y-17) and print (CRIT-8). Sizes in rem (CRIT-11). */

/* ---------- small icons drawn with CSS masks (no per row SVG markup) ---------- */
.row-meta .place::before,.title-meta::before,.row-phone::before,.call::before,.save-btn::before,.peers a::before,.dir-link::before,.saved-flag::before,.pill .x{
  content:"";display:inline-block;flex:none;width:14px;height:14px;background:currentColor;
  -webkit-mask:var(--mi) center/contain no-repeat;mask:var(--mi) center/contain no-repeat}
.row-meta .place::before,.title-meta::before{--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E")}
.call::before{width:18px;height:18px}
.save-btn::before{width:16px;height:16px;--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21l-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z'/%3E%3C/svg%3E")}
.save-btn[aria-pressed="true"]::before{--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21l-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z'/%3E%3C/svg%3E")}
.row-phone::before,.call::before{--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.4-1.2a2 2 0 0 1 2.1-.5c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2Z'/%3E%3C/svg%3E")}
.peers a::before{--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E")}
.dir-link::before{--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 11 18-8-8 18-2-8-8-2Z'/%3E%3C/svg%3E")}
.saved-flag::before{--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 12 5.5 5.5L20 7'/%3E%3C/svg%3E")}
.pill .x{--mi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E")}

/* ---------- state page: subhead ---------- */
.subhead{background:var(--paper);border-bottom:1px solid var(--rule)}
.subhead-in{display:flex;align-items:flex-end;justify-content:space-between;gap:20px 40px;padding:24px var(--gut) 30px;flex-wrap:wrap}
.subhead-text{flex:1 1 34rem;min-width:0}
.subhead h1{margin-top:14px;font-size:clamp(1.875rem,3.4vw,2.75rem);line-height:1.1;max-width:22em}
.subhead .intro{margin-top:12px;max-width:46rem;font-size:1.0625rem;line-height:1.6;color:var(--text-2)}
.subhead .caveat{margin-top:10px;max-width:46rem;font-size:.875rem;line-height:1.6;color:var(--text-2)}
.sub-stats{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.sub-stats div{min-width:8.5rem;padding:12px 16px;border:1px solid var(--rule);border-radius:12px;background:var(--ivory)}
.sub-stats dt{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}
.sub-stats dd{margin:4px 0 0;font-family:var(--serif);font-size:1.75rem;line-height:1.1;color:var(--forest)}

/* ---------- state page: layout ----------
   DOM order: results heading and count, filter panel, result list. Without JS it is one column.
   With JS on wide screens a grid puts the filter rail on the left; at 1180px and below the list
   follows the heading and the filters sit behind a "Filters (n)" button (E2E-V1, A11Y-26). */
.results{padding:36px var(--gut) 64px}
.results.is-enhanced{display:grid;grid-template-columns:300px minmax(0,1fr);grid-template-areas:"rail head" "rail list";column-gap:36px;align-items:start}
.res-head{grid-area:head;min-width:0}
.res-list{grid-area:list;min-width:0}
.res-list:focus{outline:none}
.rail-col{grid-area:rail;align-self:start;position:sticky;top:calc(var(--nav-h) + 16px);max-height:calc(100vh - var(--nav-h) - 32px);overflow-y:auto;overscroll-behavior:contain;padding:4px 10px 24px 4px}
.filters-toggle{display:none;transition:none}
.skip-res{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-res:focus{position:static;width:auto;height:auto;clip:auto;display:inline-flex;align-items:center;min-height:44px;margin-bottom:8px;padding:0 14px;border-radius:10px;background:var(--forest);color:var(--paper);font-weight:600}

/* ---------- filters ---------- */
.rail-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rail-head h2{font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}
.fgroup{margin-top:16px;padding-top:16px;border-top:1px solid var(--rule)}
/* A floated legend is laid out as normal content, so the group rule does not run through it. */
.fgroup legend{float:left;width:100%;padding:0}
.fgroup legend+*{clear:left}
.fgroup legend,.fgroup.field>label{display:block;margin-bottom:6px;font-size:.9375rem;font-weight:600;letter-spacing:-.01em;color:var(--text)}
.fopt{display:flex;align-items:center;gap:11px;min-height:44px;padding:8px 10px;border-radius:9px;color:var(--text);cursor:pointer}
.fopt:hover{background:#E9EDE8}
.fopt input{flex:none;margin:0;width:18px;height:18px;accent-color:var(--forest);cursor:pointer}
.fopt:has(input:checked){background:#E9EDE8}
.fopt .lab{flex:1;font-size:.90625rem;line-height:1.3}
.fopt .n{font-size:.78125rem;color:var(--text-3);font-variant-numeric:tabular-nums}
.fopt.is-zero .lab{color:var(--text-2)}
.fgroup .hint{margin:6px 10px 0;font-size:.8125rem;line-height:1.5}
.fgroup .hint a{text-decoration:underline;text-underline-offset:.18em}
.fsel{margin-top:10px}
.fsel label{font-size:.875rem;font-weight:500}
.zip-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:10px;align-items:end}
.zip-row label{font-size:.875rem;font-weight:500}
.zip-row .btn{grid-column:1/-1;margin-top:2px}
.zip-msg{margin-top:6px;font-size:.8125rem;line-height:1.5;color:var(--text-2)}
.zip-msg:empty{margin:0}
.zip-msg.is-err{color:#8E2A1D;font-weight:600}
.panel-foot{display:none}

/* ---------- results ---------- */
.res-h{font-size:clamp(1.625rem,2.6vw,2rem);line-height:1.15}
.res-h:focus{outline:none}
.res-h:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.res-bar{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap}
.res-count{font-size:1rem;font-weight:600;color:var(--text)}
.res-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.sortbar{display:flex;align-items:center;gap:10px}
.sortbar label{font-size:.875rem;font-weight:500;color:var(--text-2);white-space:nowrap}
.sortbar select{width:auto;min-width:9.5rem}
.pills{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.pill{cursor:pointer;text-align:left;line-height:1.3}
.pill:hover{background:var(--forest-2)}
.pill .x{width:12px;height:12px;opacity:.85}
.pills-clear{min-height:40px}
.loading,.load-err{margin-top:12px;font-size:.9375rem;color:var(--text-2)}
.load-err{padding:12px 16px;border-left:3px solid var(--brass);background:var(--band);border-radius:0 10px 10px 0;color:var(--text)}
.dist-note,.res-note{margin-top:10px;max-width:46rem;font-size:.8125rem;line-height:1.55;color:var(--text-2)}
.rows{margin-top:16px;display:flex;flex-direction:column;gap:14px}
.row{position:relative;display:flex;background:var(--paper);border:1px solid var(--sand);border-radius:16px;color:var(--text);transition:box-shadow .16s ease-out,border-color .16s ease-out}
.row:hover{box-shadow:var(--shadow-card);border-color:#C9C2B0}
.row-body{flex:1;min-width:0;padding:18px 22px}
.row-title{font-family:var(--serif);font-size:1.5rem;font-weight:400;letter-spacing:-.015em;line-height:1.15}
.row-link{color:var(--text)}
.row-link:hover{color:var(--link-hover)}
/* Stretched link: the heading link covers the whole row (A11Y-16); the phone link and buttons sit above it. */
.row-link::after{content:"";position:absolute;inset:0;border-radius:16px}
.row-link:focus-visible{outline:none}
.row-link:focus-visible::after{outline:3px solid var(--focus);outline-offset:2px}
.row-side a,.row-side button{position:relative;z-index:1}
.row-meta{margin-top:6px;display:flex;align-items:center;flex-wrap:wrap;gap:4px 16px;font-size:.8125rem;line-height:1.5;color:var(--text-2)}
.row-meta span{display:inline-flex;align-items:center;gap:5px}
.row-meta .place::before{color:var(--brass-deep)}
.row-meta .dist{font-weight:600;color:var(--text)}
.row .tagrow{margin-top:12px}
.row-side{width:230px;flex:none;border-left:1px solid var(--hair);padding:18px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.row-phone{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;overflow-wrap:anywhere}
.row-phone:hover{color:var(--link-hover)}
.row-note{font-size:.8125rem;line-height:1.45;color:var(--text-2)}
.row-body .row-note{margin-top:8px}
.row-remove{margin-top:4px}
.shown{margin-top:18px;font-size:.8125rem;color:var(--text-2);text-align:center}
.more{margin-top:14px;min-height:52px}
.results .empty{margin-top:16px}
.results .empty a{font-weight:600}

/* ---------- state page: city links and A to Z index ---------- */
.dir-band h2{font-size:clamp(1.625rem,2.6vw,2.125rem)}
.city-links{margin-top:18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));gap:0 24px}
.city-links a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;border-bottom:1px solid var(--hair);color:var(--text);font-size:.9375rem}
.city-links a:hover{color:var(--link-hover)}
.city-links .n{font-size:.8125rem;color:var(--text-3);font-variant-numeric:tabular-nums}
.idx{margin-top:22px;columns:3 16rem;column-gap:40px}
.idx-city{margin-bottom:24px}
.idx-city h3{padding-bottom:6px;border-bottom:1px solid var(--rule);font-family:var(--sans);font-size:1rem;font-weight:600;letter-spacing:0;break-after:avoid}
.idx-city ul{margin-top:4px}
.idx li,.idx-list li{break-inside:avoid}
.idx a,.idx-list a{display:inline-block;padding:5px 0;color:var(--text);font-size:.9375rem;line-height:1.4;text-decoration:underline;text-decoration-color:var(--line-strong);text-decoration-thickness:1px;text-underline-offset:.2em}
.idx a:hover,.idx-list a:hover{color:var(--link-hover);text-decoration-color:currentColor}
.idx-list{margin-top:18px;columns:2 18rem;column-gap:40px}

/* ---------- program page: title band ---------- */
.title-band{background:var(--paper);border-bottom:1px solid var(--rule)}
.title-band-in{padding:24px var(--gut) 30px}
.title-band h1{margin-top:14px;font-size:clamp(2rem,3.6vw,2.75rem);line-height:1.08;max-width:24em}
.title-meta{margin-top:10px;display:flex;align-items:center;gap:7px;font-size:.9375rem;color:var(--text-2)}
.title-meta::before{color:var(--brass-deep)}
.title-band .tagrow{margin-top:14px;align-items:center}
.title-band .fine{margin-top:12px}

/* ---------- program page: layout, contact card ---------- */
.detail{display:flex;gap:40px;padding:40px var(--gut) 72px;align-items:flex-start}
.detail-main{flex:1;min-width:0;order:1}
.aside{width:370px;flex:none;order:2}
.admit{background:var(--paper);border:1px solid var(--sand);border-radius:18px;padding:22px 24px 24px;box-shadow:var(--shadow-card)}
.admit h2{font-size:1.75rem}
.admit h3{font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}
.admit p{font-size:.9375rem;line-height:1.55}
.admit .fine{margin-top:8px;font-size:.8125rem}
.blk{margin-top:18px;padding-top:16px;border-top:1px solid var(--hair)}
.blk--call{margin-top:14px;padding-top:0;border-top:0}
.blk h3+p{margin-top:6px}
.call{height:auto;padding-top:10px;padding-bottom:10px;white-space:normal;text-align:left;justify-content:flex-start}
.site{font-weight:600;overflow-wrap:anywhere;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
.site .host{font-weight:500}
.dir-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:4px;font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
.save-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}
.saved-flag{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;font-weight:600;color:var(--green)}
.save-status{margin-top:6px;font-size:.875rem;color:var(--text)}
.save-status:empty{margin:0}

/* ---------- program page: facts and sections ---------- */
.facts{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:14px;overflow:hidden}
.fact{background:var(--paper);padding:16px 18px}
.fact dt{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}
.fact dd{margin:8px 0 0;font-size:1rem;font-weight:600;line-height:1.35;letter-spacing:-.01em}
.sec{margin-top:40px}
.sec h2{font-size:clamp(1.625rem,2.6vw,2rem)}
.sec p{margin-top:10px;font-size:.96875rem;line-height:1.65}
.sec .note{font-size:.875rem}
.sec .links{display:flex;flex-wrap:wrap;gap:4px 22px}
.bul{margin-top:10px}
.bul li{position:relative;padding-left:20px;margin-top:8px;font-size:.96875rem;line-height:1.6}
.bul li::before{content:"";position:absolute;left:3px;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--brass)}
.bul .sub{margin-top:4px}
.bul .sub li{margin-top:4px;font-size:.90625rem;color:var(--text-2)}
.bul .sub li::before{background:transparent;border:1.5px solid var(--brass-deep);width:6px;height:6px}
.bul .muted{display:block;margin-top:2px;font-size:.875rem}
.cols{margin-top:10px;columns:2 14rem;column-gap:32px}
.cols li{position:relative;break-inside:avoid;padding:3px 0 3px 18px;font-size:.9375rem;line-height:1.5}
.cols li::before{content:"";position:absolute;left:3px;top:.8em;width:6px;height:6px;border-radius:50%;background:var(--brass)}
.kv{margin-top:12px;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 22px;font-size:.96875rem;line-height:1.55}
.kv dt{font-weight:600}
.kv dd{margin:0;color:var(--text-2)}
.pays{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pays>.pay:nth-child(3){grid-column:1/-1}
.pay{background:var(--paper);border:1px solid var(--sand);border-radius:13px;padding:18px}
.pay--yes{border-color:#BFD3C6;background:#F3F7F4}
.pay h3{font-family:var(--sans);font-size:1rem;font-weight:600;letter-spacing:-.01em;line-height:1.3}
.pay p{margin-top:8px;font-size:.875rem;line-height:1.6;color:var(--text-2)}
.pay .pay-list{color:var(--text);font-size:.9375rem}
.about{padding:20px 22px 22px;border-left:3px solid var(--brass);background:var(--band);border-radius:0 12px 12px 0}
.about h2{font-size:1.625rem}
.about p{font-size:.9375rem;color:var(--text-2)}
.peers{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.peers a{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 0;border-bottom:1px solid var(--hair);color:var(--text);font-size:.9375rem;line-height:1.35}
.peers a::before{color:var(--brass-deep)}
.peers a:hover{color:var(--link-hover)}

/* ---------- Saved page ---------- */
.saved-bar{margin-top:0}
.saved-actions{display:flex;flex-wrap:wrap;gap:8px}
.saved .rows{margin-top:18px}
.saved .empty{margin-top:18px}
.saved .empty p+p{margin-top:10px}
.saved .empty a{font-weight:600;text-decoration:underline;text-underline-offset:.18em}
.saved .empty:focus{outline:none}
.saved .empty:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.saved-reminder{margin-top:18px}

/* ---------- sticky contact card only where all of it fits (A11Y-11) ----------
   The tallest card measured on real listings is about 805px at 1181px wide, plus the 73px
   header and 20px offset, so it only sticks on viewports at least 960px tall. */
@media (min-width:1181px) and (min-height:960px){
  .aside{position:sticky;top:calc(var(--nav-h) + 20px)}
}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .results{padding-top:24px}
  .results.is-enhanced{display:block}
  .filters-toggle{display:inline-flex}
  .filters-toggle[aria-expanded="true"]{background:var(--forest);border-color:var(--forest);color:var(--paper)}
  .rail-col{display:none;width:100%;position:static;max-height:none;overflow:visible;margin-top:16px;padding:18px 18px 20px;border:1px solid var(--sand);border-radius:16px;background:var(--paper)}
  .rail-col.is-open{display:block}
  .rail-col .skip-res{display:none}
  .panel-foot{display:block;margin-top:18px;padding-top:16px;border-top:1px solid var(--rule)}
  .panel-count{margin-bottom:10px;font-weight:600;text-align:center}
  .fsel select,.zip-row select{max-width:26rem}
  .detail{flex-direction:column;gap:28px;padding-top:28px}
  .aside{order:0;width:100%}
  .detail-main{width:100%}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Tablets: the contact card uses two columns so it stays short. */
@media (min-width:700px) and (max-width:1180px){
  .admit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
  .admit h2,.admit .blk--call{grid-column:1/-1}
  .admit .blk--call .call{width:auto;max-width:100%}
}
@media (max-width:860px){
  .row{flex-direction:column}
  .row-side{width:100%;border-left:0;border-top:1px solid var(--hair);flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 16px;padding:12px 20px 14px}
  .row-side .row-note{flex-basis:100%}
  .sub-stats div{min-width:7rem}
}
@media (max-width:640px){
  .subhead-in{padding:18px var(--gut) 24px}
  .sub-stats{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);width:100%;gap:8px}
  .sub-stats div{min-width:0;padding:9px 10px}
  .sub-stats dt{font-size:.6875rem;letter-spacing:.06em}
  .sub-stats dd{font-size:1.375rem}
  .results{padding-bottom:48px}
  .rail-col{padding:14px 12px 18px}
  .res-bar{align-items:stretch;flex-direction:column}
  .res-tools{width:100%;flex-wrap:nowrap}
  .sortbar{flex:1;min-width:0}
  .sortbar select{flex:1;min-width:0}
  .filters-toggle{flex:none}
  .row-body{padding:16px 16px 14px}
  .row-title{font-size:1.3125rem}
  .row-side{padding:10px 16px 12px}
  .title-band-in{padding:18px var(--gut) 24px}
  .detail{padding-bottom:56px}
  .admit{padding:18px 16px 20px;border-radius:16px}
  .facts{grid-template-columns:minmax(0,1fr)}
  .pays,.peers{grid-template-columns:minmax(0,1fr)}
  .kv{grid-template-columns:minmax(0,1fr);gap:2px}
  .kv dd{margin-bottom:8px}
  .cols{columns:1}
  .idx{columns:1}
  .idx-list{columns:1}
  .about{padding:18px 16px}
}

/* ---------- forced colors / Windows high contrast (A11Y-17) ---------- */
@media (forced-colors:active){
  .row,.admit,.pay,.fact,.sub-stats div,.rail-col,.about{border:1px solid CanvasText}
  .row-link:focus-visible::after{outline:3px solid Highlight}
  .row-meta .place::before,.title-meta::before,.row-phone::before,.call::before,.save-btn::before,.peers a::before,.dir-link::before,.saved-flag::before,.pill .x{forced-color-adjust:none;background:CanvasText}
  .row-phone::before,.peers a::before,.dir-link::before{background:LinkText}
  .pill .x{background:ButtonText}
  .bul li::before,.cols li::before{forced-color-adjust:none;background:CanvasText}
  .fopt:has(input:checked){outline:2px solid Highlight}
}

/* ---------- print (CRIT-8) ---------- */
@media print{
  .rail-col,.filters-toggle,.sortbar,.pills,.more,.shown,.skip-res,.save-blk,.dir-band,.loading,.load-err{display:none!important}
  .results,.results.is-enhanced,.detail{display:block;padding:0}
  .subhead,.title-band{background:none;border:0}
  .subhead-in,.title-band-in{padding:0 0 10pt}
  .sub-stats div{border:1px solid #000;background:none}
  .row{display:block;border:1px solid #000;border-radius:0;margin-bottom:6pt;break-inside:avoid}
  .row-link::after{display:none}
  .row-side{width:auto;border:0;padding:0 12pt 8pt;display:block}
  .row-side>*{display:inline-block;margin-right:10pt}
  .row-phone{color:#000;min-height:0;text-decoration:none}
  .row-phone::before,.row-meta .place::before,.title-meta::before,.peers a::before,.dir-link::before{display:none}
  .aside{width:auto;position:static;margin-bottom:12pt}
  .admit{box-shadow:none;border:1px solid #000;padding:10pt}
  .call{border:0!important;padding:0!important;font-size:12pt}
  .facts{border:1px solid #000;background:none}
  .fact{padding:6pt}
  .sec{margin-top:14pt}
  .pay,.about{border:1px solid #000;background:none}
  .peers a{min-height:0}
}

/* ---------- coverage pages: /medicaid/, /medicare/ and /{cov}/{state}/ ---------- */
.subhead .cov-links{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.9375rem}
.cov-search-band{padding:32px var(--gut) 40px}
.cov-form{display:grid;gap:18px 24px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;padding:24px;background:var(--white);border:1px solid var(--rule);border-radius:14px;box-shadow:0 18px 40px -32px rgba(14,26,22,.45)}
.cov-where{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.cov-field{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;border:0}
.cov-field label,.cov-field legend{font-size:.9375rem;font-weight:600;color:var(--text)}
.cov-focus{flex-direction:row;flex-wrap:wrap;gap:4px 14px}
.cov-focus legend{width:100%;margin-bottom:2px}
.cov-go{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}
.cov-go .hint{margin:0;font-size:.8125rem;color:var(--text-2)}
.cov-msg{flex-basis:100%;margin:0;min-height:1.25em;font-size:.9375rem;color:var(--text)}
.cov-msg:empty{min-height:0}
.cov-noscript{padding:16px 20px;background:var(--white);border:1px solid var(--rule);border-radius:12px}
.cov-states{margin-top:18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:0 24px}
.cov-states a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;border-bottom:1px solid var(--hair);color:var(--text);font-size:.9375rem}
.cov-states a:hover{color:var(--link-hover)}
.cov-states .n{font-size:.8125rem;color:var(--text-3);font-variant-numeric:tabular-nums}
.cov-meaning p{max-width:46rem;margin-top:12px;color:var(--text-2)}
@media (max-width:760px){
  .cov-form{grid-template-columns:1fr;padding:18px}
  .cov-where{grid-template-columns:1fr}
}
