/* findingrehab.io home page: hero with the concierge, method, browse by state (cartogram and
   state panel), search section, guides and how listings work. Global tokens and components
   (buttons, chips, tags, forms, focus ring, print, forced colors) live in site.css.

   Audit fixes in this file:
   E2E-16  on phones the concierge follows the H1 and grows to its content (no nested scroller)
   E2E-12, A11Y-3  fluid cartogram and a panel that shrinks, so 1181 to 1359px never scrolls sideways
   E2E-17, A11Y-21  native state picker instead of tiny tiles at 640px and below; 44px targets
   A11Y-28  the chat does not keep a fixed height in short viewports
   A11Y-1  every text colour here is 4.5:1 or better on its background (tile text, fine print)
   CRIT-11 rem sizes, with 12px as the smallest label and 13px for fine print
   A11Y-17 selected tiles and chips stay visible in forced colours (site.css plus the rules below) */

/* ---------- hero ---------- */
.hero{background:var(--forest);color:var(--paper);--focus:var(--brass-light)}
.hero-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,600px);grid-template-rows:auto 1fr;grid-template-areas:"head chat" "body chat";column-gap:64px;padding:72px var(--gut)}
.hero-head{grid-area:head;min-width:0}
.hero-body{grid-area:body;display:flex;flex-direction:column;min-width:0}
.hero h1{font-size:clamp(2.75rem,5.4vw,4.875rem);line-height:.98;letter-spacing:-.025em}
.h1-main{display:block}
.hero h1 em{font-style:italic;color:var(--brass-light)}
.h1-sub{display:block;margin-top:22px;max-width:30rem;font-family:var(--sans);font-size:1.125rem;font-weight:500;line-height:1.45;letter-spacing:0;color:var(--paper)}
.hero-lede{margin-top:20px;font-size:1.125rem;line-height:1.62;color:var(--mist);max-width:31rem}
.stats{margin-top:34px;display:flex;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16)}
.stat{flex:1;min-width:0;padding:20px 0}
.stat+.stat{border-left:1px solid rgba(255,255,255,.16);padding-left:24px}
.stat b{display:block;font-family:var(--serif);font-size:2.125rem;line-height:1;font-weight:400;color:var(--paper)}
.stat span{display:block;margin-top:7px;font-size:.8125rem;color:var(--sage);letter-spacing:.03em}
.stats-note{margin-top:10px;font-size:.8125rem;color:var(--sage)}
.pledge{margin-top:auto;display:flex;gap:12px;padding:18px 20px;background:rgba(255,255,255,.05);border-left:2px solid var(--brass);border-radius:0 10px 10px 0;font-size:.875rem;line-height:1.6;color:var(--mist)}
.hero-body>:nth-last-child(2){margin-bottom:32px}
.pledge>.icon{flex:none;margin-top:2px;color:var(--brass-light)}
.pledge a{color:var(--brass-light)}
.pledge a:hover{color:var(--paper)}
.pledge-links{display:inline-flex;flex-wrap:wrap;gap:0 16px}
.pledge-links a{display:inline-flex;align-items:center;min-height:32px}

/* ---------- concierge ---------- */
.chat{grid-area:chat;align-self:start;--focus:var(--forest);background:var(--paper);border-radius:22px;box-shadow:var(--shadow-float);display:flex;flex-direction:column;overflow:hidden;color:var(--text);height:min(720px,86vh);min-height:480px;scroll-margin-top:calc(var(--nav-h) + 12px)}
.chat-head{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid #E6E2D8;background:var(--white);flex-wrap:wrap}
.chat-mark{width:40px;height:40px;border-radius:12px;background:var(--forest);color:var(--brass-light);display:flex;align-items:center;justify-content:center;flex:none}
.chat-titles{flex:1 1 150px;min-width:0}
.chat-head h2{font-family:var(--sans);font-size:.9375rem;font-weight:600;letter-spacing:-.01em;line-height:1.3}
.chat-head .sub{margin-top:2px;display:flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--text-2)}
.chat-head .sub .icon{color:var(--green)}
.mini{display:inline-flex;align-items:center;gap:6px;min-height:44px;background:transparent;border:1px solid var(--line-strong);color:var(--text-2);font-size:.8125rem;font-weight:500;padding:8px 14px;border-radius:999px}
.mini:hover{border-color:var(--text-2);color:var(--text)}
.rail{display:flex;align-items:center;gap:10px;padding:12px 22px 0}
.rail-track{flex:1;display:flex;gap:5px}
.rail-seg{flex:1;height:3px;border-radius:999px;background:var(--sand)}
.rail-seg.done{background:var(--forest)}
.rail-seg.now{background:var(--brass-deep)}
.rail-label{font-size:.75rem;color:var(--text-2);letter-spacing:.03em}
.chat-scroll{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 22px 22px;display:flex;flex-direction:column;gap:14px}
.chat-log{display:flex;flex-direction:column;gap:14px}
.msg{display:flex;gap:11px;scroll-margin-top:calc(var(--nav-h) + 16px)}
.msg-avatar{width:26px;height:26px;border-radius:8px;background:var(--leaf);color:var(--forest);flex:none;display:flex;align-items:center;justify-content:center}
.bubble{min-width:0;background:var(--band);padding:12px 16px;border-radius:4px 16px 16px 16px;font-size:.90625rem;line-height:1.55;max-width:32rem;color:#253530}
.bubble>*+*{margin-top:6px}
.bubble .q{font-size:.96875rem;font-weight:500;color:var(--text);line-height:1.5}
.bubble .help,.bubble-small{font-size:.8125rem;line-height:1.5;color:var(--text-2)}
.bubble a{color:var(--link);text-decoration:underline;text-underline-offset:.18em}
.bubble--note{background:#F3EAD7;color:#3A2A10}
.bubble--note .note-k{font-weight:600}
.msg--me{justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:4px 8px}
.me-text{max-width:26rem;background:var(--forest);color:var(--paper);padding:10px 16px;border-radius:16px 16px 4px 16px;font-size:.875rem;font-weight:500;line-height:1.45}
.me-text--typed{background:var(--moss)}
.change{display:inline-flex;align-items:center;min-height:36px;padding:4px 8px;background:none;border:none;border-radius:8px;color:var(--link);font-size:.8125rem;font-weight:600;text-decoration:underline;text-underline-offset:.18em}
.change:hover{color:var(--link-hover)}
.msg--wide .bubble,.msg--wide .c-bare{flex:1;min-width:0;max-width:none}
.msg--me.is-old .me-text{background:var(--moss)}
.chat-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding-left:37px}
.chat-opts:empty{display:none}
.opt{text-align:left;background:var(--white);border:1px solid var(--sand);border-radius:13px;padding:11px 15px;min-height:48px;display:flex;flex-direction:column;justify-content:center;gap:3px;color:var(--text)}
.opt:hover{border-color:var(--forest)}
.opt:disabled{opacity:.6}
.opt b{font-size:.90625rem;font-weight:600;line-height:1.3}
.opt span{font-size:.8125rem;color:var(--text-2);line-height:1.4}
.opt-wide,.opts-extra,.opts-status{grid-column:1/-1}
.opts-extra{font-size:.875rem}
.opts-extra a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:.18em}
.opts-status{font-size:.875rem;color:var(--text-2);padding:6px 0}
.loc-form{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:var(--white);border:1px solid var(--sand);border-radius:14px;padding:14px 16px}
.loc-form .field>label{font-size:.8125rem}
.loc-go{grid-column:1/-1}
.chat-noscript{font-size:.9375rem;line-height:1.6;color:var(--text-2);background:var(--band);border-radius:12px;padding:14px 16px}
.chat-foot{border-top:1px solid #E6E2D8;padding:12px 20px 14px;background:var(--white)}
.chat-input{display:flex;gap:9px;align-items:center}
.chat-input input{flex:1;min-width:0;height:46px;min-height:46px;border-radius:12px;padding:0 15px;font-size:1rem;background:var(--paper)}
.send{width:46px;height:46px;border-radius:12px;border:none;background:var(--brass);color:var(--brass-ink);display:flex;align-items:center;justify-content:center;flex:none}
.send:hover{background:#CE9749}
.fineprint{margin-top:10px;font-size:.8125rem;line-height:1.5;color:var(--text-2)}
.fineprint a{color:var(--link)}

/* results inside the log */
.c-results{display:flex;flex-direction:column;gap:10px;min-width:0}
.c-results h3{font-family:var(--sans);font-size:1rem;font-weight:600;line-height:1.45;letter-spacing:0;color:var(--text)}
.c-results h3:focus{outline:none}
.c-results h3:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.c-results p{font-size:.875rem;line-height:1.55;color:var(--text-2)}
.c-results .res-note{padding:10px 14px;border-left:3px solid var(--brass);background:#F3EAD7;border-radius:0 10px 10px 0;color:#3A2A10}
.matches{display:flex;flex-direction:column;gap:10px}
.match{background:var(--white);border:1px solid var(--sand);border-radius:14px;padding:14px 16px;min-width:0}
.match-name{font-family:var(--serif);font-size:1.3125rem;line-height:1.2;letter-spacing:-.01em;font-weight:400}
.match-name a{color:var(--text);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:.16em}
.match-name a:hover{color:var(--link-hover);text-decoration-color:currentColor}
.c-results .match-place{margin-top:4px;display:flex;flex-wrap:wrap;gap:2px 12px;font-size:.8125rem;color:var(--text-2)}
.match-place .icon{color:var(--text-3)}
.why{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}
.match-phone{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}
.phone-link{text-decoration:none!important;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--line-strong);border-radius:10px;color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.phone-link:hover{border-color:var(--text-2);color:var(--text)}
.c-results .phone-src{font-size:.8125rem;color:var(--text-2)}
.res-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.res-acts .btn{white-space:normal;text-align:left}
.c-results .res-fine{font-size:.8125rem}

/* crisis card (typed crisis words) */
.crisis-card{background:#F8E9E4;border-left:3px solid #9B2C1F;border-radius:0 14px 14px 0;padding:14px 16px;color:#3B1510}
.crisis-card h3{font-family:var(--sans);font-size:1.0625rem;font-weight:700;line-height:1.35;letter-spacing:0;color:#3B1510}
.crisis-card h3:focus{outline:none}
.crisis-card h3:focus-visible{outline:3px solid #9B2C1F;outline-offset:2px}
.crisis-card ul{margin-top:8px;display:flex;flex-direction:column;gap:4px;font-size:.9375rem;line-height:1.5}
.crisis-card ul li::before{content:"";display:inline-block;width:6px;height:6px;margin-right:9px;border-radius:999px;background:#9B2C1F;vertical-align:middle}
.crisis-acts{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}
.btn--danger{background:#9B2C1F;border-color:#9B2C1F;color:#FFFFFF}
.btn--danger:hover{background:#7F2318;color:#FFFFFF}
.btn--danger-ghost{background:#FFFFFF;border-color:#9B2C1F;color:#6E1D13}
.btn--danger-ghost:hover{background:#FDF5F2;color:#6E1D13}
.crisis-card .cc-es{margin-top:10px;font-size:.875rem;color:#3B1510}
.crisis-card a:not(.btn){color:#6E1D13}

/* ---------- method ---------- */
.steps{display:flex;gap:0}
.steps .intro{width:300px;flex:none;padding-right:60px}
.steps .intro .eyebrow{display:block}
.steps h2{font-size:2.5rem;line-height:1.08;margin-top:16px}
.step-list{flex:1;display:flex;min-width:0}
.step{flex:1;min-width:0;border-left:1px solid var(--rule);padding:4px 32px 0}
.step .n{display:block;font-family:var(--serif);font-size:2.75rem;line-height:1;color:#8A6A36}
.step h3{margin-top:18px;font-family:var(--sans);font-size:1.1875rem;font-weight:600;letter-spacing:-.01em;line-height:1.3}
.step p{margin-top:11px;font-size:.9375rem;line-height:1.65;color:var(--text-2)}

/* ---------- section heads ---------- */
.sec-head .eyebrow{font-size:.75rem;line-height:1.4;color:var(--brass-deep);max-width:none}
.band--dark .sec-head .eyebrow--dark{color:var(--brass-light)}
.sec-head-main{flex:1 1 26rem;min-width:0}
.sec-head-main h2{margin-top:14px}
.sec-head .sec-intro{margin-top:12px;max-width:560px}

/* ---------- browse by state ---------- */
.states-grid{margin-top:40px;display:grid;grid-template-columns:minmax(0,640px) minmax(380px,1fr);gap:48px;align-items:start}
.map-col{min-width:0}
.cartogram{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:7px;max-width:640px}
.tile{position:relative;aspect-ratio:1/1;min-width:0;border:1px solid rgba(14,26,22,.1);border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0;background:#DDE4DF;color:var(--moss);text-decoration:none;line-height:1.1;transition:transform .12s ease-out}
.tile:hover{transform:translateY(-2px);color:var(--moss)}
.tile b{font-size:.8125rem;font-weight:600;letter-spacing:.02em}
.tile .num{font-size:.75rem}
.tile.t2{background:#A9C2B5;color:var(--ink)}
.tile.t3{background:#6D9781;color:var(--ink)}
.tile.t4{background:var(--forest);color:var(--paper)}
.tile.t2:hover,.tile.t3:hover{color:var(--ink)}
.tile.t4:hover{color:var(--paper)}
.tile.is-on,.tile[aria-checked="true"]{background:var(--brass);color:var(--brass-ink);border-color:#7E5620;box-shadow:0 0 0 2px var(--brass-deep)}
.tile.is-on:hover,.tile[aria-checked="true"]:hover{color:var(--brass-ink)}
.tile:focus-visible{outline:3px solid var(--forest);outline-offset:2px;z-index:1}
.legend{margin-top:16px;display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;font-size:.8125rem;color:var(--text-2)}
.legend-scale{display:inline-flex;align-items:center;gap:8px}
.legend .sw{display:inline-flex;gap:4px}
.legend .sw i{width:22px;height:10px;border-radius:3px;display:block;border:1px solid rgba(14,26,22,.12)}
.legend .sw .t1{background:#DDE4DF}.legend .sw .t2{background:#A9C2B5}.legend .sw .t3{background:#6D9781}.legend .sw .t4{background:var(--forest)}
.virtual-link{margin-top:12px;font-size:.9375rem}
.virtual-link a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:.18em}
.state-picker{display:none}
.state-picker .label{display:block;margin-bottom:6px}
.state-panel{min-width:0;width:100%;max-width:560px;justify-self:end;background:var(--paper);border:1px solid var(--sand);border-radius:18px;padding:28px 30px;display:flex;flex-direction:column}
.panel-eyebrow{display:flex;align-items:center;gap:8px}
.state-panel h3{margin-top:12px;font-size:clamp(2rem,3vw,2.625rem)}
.panel-stats{margin:20px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #E6E2D8;border-bottom:1px solid #E6E2D8}
.pstat{display:flex;flex-direction:column-reverse;justify-content:flex-end;padding:14px 10px 14px 0;min-width:0}
.pstat:nth-child(n+4){border-top:1px solid #E6E2D8}
.pstat dd{margin:0;font-family:var(--serif);font-size:1.625rem;line-height:1;font-weight:400;color:var(--text)}
.pstat dt{margin-top:6px;font-size:.75rem;line-height:1.35;color:var(--text-2);letter-spacing:.03em}
.panel-note{margin-top:12px;font-size:.8125rem;line-height:1.5;color:var(--text-2)}
.panel-k{margin-top:20px;font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;line-height:1.4;color:var(--text-2)}
.metros{margin-top:8px}
.metro{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 0;border-bottom:1px solid var(--hair);color:var(--text);font-size:.9375rem}
.metro:hover{color:var(--link-hover)}
.metro-name{min-width:0}
.metro em{font-style:normal;display:flex;align-items:center;gap:8px;flex:none;font-size:.8125rem;color:var(--text-2)}
.metro em .icon{color:var(--brass-deep)}
.panel-empty{margin-top:10px;font-size:.9375rem;color:var(--text-2)}
.panel-go{margin-top:22px;white-space:normal;text-align:center}

/* ---------- search section ---------- */
.finder{margin-top:34px;display:grid;gap:26px}
.finder-state{max-width:380px}
.finder-state>label,.fgroup-h legend{font-size:.9375rem;font-weight:600;color:var(--text)}
.fgroup-h .hint{margin-top:4px}
.fgroup-h .chips{margin-top:12px}
.fgroup-h .chips+.hint{margin-top:8px}
.fgroup-h .hint a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:.18em}
.chip-label{min-width:0}
.count-row{display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--rule)}
.count-line{font-size:1rem;font-weight:500;color:var(--text)}
.count-row .hr{flex:1;min-width:24px;height:1px;background:var(--rule)}
.finder-go{white-space:normal;text-align:left}
.btn[aria-disabled="true"]{background:var(--sand);border-color:var(--sand);color:var(--text-2);cursor:not-allowed}
.btn[aria-disabled="true"]:active{transform:none}
.finder-fine{margin-top:-10px}
.finder-noscript{margin-top:24px}

/* ---------- guides ---------- */
.all-guides{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--brass-light);font-size:.9375rem;border-bottom:1px solid rgba(212,164,92,.45)}
.all-guides:hover{color:var(--paper)}
.guides{margin-top:40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.guide{position:relative;display:flex;flex-direction:column;min-height:224px;min-width:0;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:24px 26px;color:var(--paper);transition:background-color .14s ease-out}
.guide:hover{background:rgba(255,255,255,.09)}
.guide .k{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage)}
.guide h3{margin-top:14px;font-size:1.6875rem;line-height:1.16;letter-spacing:-.015em}
.guide .guide-text{margin-top:12px;font-size:.875rem;line-height:1.6;color:var(--mist)}
.guide .cta{margin-top:auto;padding-top:16px;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;min-height:44px;font-size:.875rem;font-weight:500;color:var(--brass-light)}
.guide .cta::after{content:"";position:absolute;inset:0;border-radius:16px}
.guide .cta:hover{color:var(--paper)}
.guide .cta:focus-visible{outline:none}
.guide:focus-within{outline:3px solid var(--brass-light);outline-offset:3px}
.guide:focus-within:not(:has(:focus-visible)){outline:none}

/* ---------- how listings work ---------- */
.checks{margin-top:40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.check{border-top:2px solid var(--rule);padding-top:16px;min-width:0}
.check.is-now{border-top-color:var(--forest)}
.check-status{display:flex;align-items:center;gap:10px;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2)}
.check.is-now .check-status{color:var(--green)}
.check-n{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;border:1px solid var(--line-strong);font-size:.8125rem;letter-spacing:0;color:var(--text)}
.check.is-now .check-n{background:var(--forest);border-color:var(--forest);color:var(--paper)}
.check h3{margin-top:12px;font-family:var(--sans);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;line-height:1.3}
.check>p:last-child{margin-top:8px;font-size:.875rem;line-height:1.6;color:var(--text-2)}
.listings-foot{margin-top:32px;padding-top:20px;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.listings-foot p{font-size:.9375rem;font-weight:500;color:var(--text)}
.listings-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;text-decoration:underline;text-underline-offset:.18em}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .hero-in{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "chat" "body";grid-template-rows:auto;row-gap:32px;padding-top:56px;padding-bottom:56px}
  .chat{width:100%;max-width:760px;height:min(660px,82vh)}
  .guides{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1100px){
  .states-grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .cartogram{max-width:640px}
  .state-panel{max-width:760px;justify-self:start}
}
@media (max-width:860px){
  .steps{flex-direction:column;gap:28px}
  .steps .intro{width:100%;padding-right:0}
  .step-list{flex-direction:column;gap:24px}
  .step{border-left:none;border-top:1px solid var(--rule);padding:18px 0 0}
  .checks{grid-template-columns:minmax(0,1fr);gap:24px}
}
@media (max-width:640px){
  .hero-in{padding-top:32px;padding-bottom:44px;row-gap:24px}
  .hero h1{font-size:clamp(2.375rem,11vw,3rem)}
  .h1-sub{margin-top:14px;font-size:1.0625rem}
  .hero-lede{margin-top:0;font-size:1.0625rem}
  /* E2E-16: the concierge grows with its content on phones; the page scrolls, not the chat. */
  .chat{height:auto;min-height:0;border-radius:18px}
  .chat-scroll{overflow:visible;padding:16px 14px 18px}
  .chat-head{padding:12px 14px}
  .rail{padding:12px 14px 0}
  .chat-foot{padding:12px 14px 14px}
  .chat-opts{grid-template-columns:minmax(0,1fr);padding-left:0}
  .loc-form{grid-template-columns:minmax(0,1fr)}
  .msg-avatar{display:none}
  .bubble{max-width:100%}
  .stats{flex-wrap:wrap}
  .stat{flex:1 1 40%;padding:16px 0}
  .stat+.stat{border-left:none;padding-left:0}
  .stat:nth-child(2){border-left:1px solid rgba(255,255,255,.16);padding-left:18px}
  .stat:nth-child(3){border-top:1px solid rgba(255,255,255,.16);flex-basis:100%}
  .stat b{font-size:1.875rem}
  .pledge{padding:16px}
  /* E2E-17: tiles would be about 25px wide; use the native picker instead. */
  .cartogram,.legend{display:none}
  .state-picker{display:block;max-width:420px}
  .states-grid{margin-top:24px;gap:20px}
  .state-panel{padding:22px 18px}
  .panel-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pstat:nth-child(n+3){border-top:1px solid #E6E2D8}
  .sec-head-main{flex:0 0 auto;width:100%}
  .tiles-only{display:none}
  .finder{gap:22px}
  .finder-go{width:100%;justify-content:space-between}
  .count-row .hr{display:none}
  .guides{grid-template-columns:minmax(0,1fr);gap:16px}
  .guide{min-height:0;padding:22px 20px}
  .guide h3{font-size:1.5rem}
}
@media (max-width:379px){
  .chat-head .mini{padding:8px 12px}
  .stat:nth-child(2){padding-left:14px}
}
/* A11Y-28: short viewports and high zoom, no fixed height chat and no nested scrolling. */
@media (max-height:560px){
  .chat{height:auto;min-height:0}
  .chat-scroll{overflow:visible}
}

/* ---------- forced colours ---------- */
@media (forced-colors:active){
  .tile{border:1px solid CanvasText}
  .tile.is-on,.tile[aria-checked="true"]{forced-color-adjust:none;background:Highlight;color:HighlightText;border-color:Highlight}
  .rail-seg{background:GrayText}
  .rail-seg.done,.rail-seg.now{background:CanvasText}
  .bubble,.me-text,.match,.opt,.crisis-card,.loc-form,.state-panel,.guide{border:1px solid CanvasText}
  .legend .sw{display:none}
}

/* ---------- print ---------- */
@media print{
  .hero{background:none;color:#000}
  .hero h1 em,.h1-sub,.hero-lede,.stat b,.stat span,.stats-note,.pledge,.pledge a{color:#000}
  .cartogram,.legend,.state-picker,.finder,.search-band,.guides-band .cta::after{display:none!important}
  .guide{border:1px solid #000;color:#000}
  .guide .k,.guide .guide-text,.guide .cta{color:#000}
}
