/* THE REHAB HAVEN — paper and ink, greens taken from the logo */

:root{
  --cream:#FBF9F4;
  --paper:#FAF7F0;
  --paper-2:#F1ECE1;
  --ink:#15181A;
  --ink-soft:#4C5453;
  --line:#DED7C9;
  --green:#1F6B45;
  --green-dark:#175338;
  --green-deep:#0E3527;
  --radius:6px;
  --wrap:1180px;
  --band:clamp(64px,8vw,116px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-weight:300;
  font-size:17px;
  line-height:1.65;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:var(--green);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:"Archivo",Georgia,sans-serif;font-weight:800;line-height:1.05;letter-spacing:-.02em;margin:0}
h1{font-size:clamp(2.4rem,6.4vw,4.6rem)}
h2{font-size:clamp(1.9rem,4vw,3.05rem)}
h3{font-size:1.16rem;font-weight:600;letter-spacing:-.01em;line-height:1.3}
p{margin:0 0 1rem}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 clamp(18px,5vw,40px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;background:var(--green);color:var(--cream);padding:12px 18px;z-index:200}
.skip:focus{left:12px;top:12px}
:focus-visible{outline:3px solid var(--green);outline-offset:3px}

.eyebrow{
  font-family:"Inter",sans-serif;font-weight:600;font-size:.9rem;
  letter-spacing:.16em;text-transform:uppercase;color:rgba(251,249,244,.9);
  margin:0 0 .9rem;
}
.eyebrow.ink{color:var(--green)}
.lede{font-size:1.08rem;color:var(--ink-soft);max-width:46ch}
.lede-wide{max-width:62ch}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:14px 30px;border-radius:var(--radius);
  font-family:"Inter",sans-serif;font-weight:600;font-size:1rem;letter-spacing:.01em;
  text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,color .18s ease;
}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--green);color:var(--cream);box-shadow:0 1px 2px rgba(14,53,39,.2)}
.btn-primary:hover{background:var(--green-dark);transform:translateY(-2px);box-shadow:0 10px 24px rgba(14,53,39,.24)}
.btn-lg{min-height:58px;padding:16px 36px;font-size:1.05rem}
.btn-sm{min-height:44px;padding:10px 20px;font-size:.92rem}
.btn-ghost{background:transparent;color:var(--green);border:1px solid var(--green)}
.btn-ghost:hover{background:var(--green);color:var(--cream);transform:translateY(-2px);box-shadow:0 10px 24px rgba(14,53,39,.18)}

/* ---------- header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:120;
  transition:transform .35s ease,background-color .35s ease,box-shadow .35s ease;
}
.site-header.hidden{transform:translateY(-100%)}
.site-header.solid{background:var(--paper);box-shadow:0 1px 0 var(--line)}
.header-inner{
  max-width:var(--wrap);margin:0 auto;padding:14px clamp(18px,5vw,40px);
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{height:44px;width:auto}
.brand-name{
  font-family:"Archivo",sans-serif;font-weight:800;font-size:1rem;letter-spacing:-.01em;
  color:var(--cream);line-height:1.1;max-width:none;white-space:nowrap;
}
.site-header.solid .brand-name{color:var(--ink)}
.nav{display:flex;align-items:center;gap:clamp(14px,2vw,26px)}
.nav a{
  color:var(--cream);font-weight:400;font-size:.98rem;text-decoration:none;
  display:inline-flex;align-items:center;min-height:44px;position:relative;
  white-space:nowrap;flex-shrink:0;
}
.nav a:not(.btn)::after{
  content:"";position:absolute;left:0;right:100%;bottom:12px;height:1px;background:currentColor;
  transition:right .25s ease;
}
.nav a:not(.btn):hover::after{right:0}
.site-header.solid .nav a:not(.btn){color:var(--ink)}
.nav-cta{color:var(--cream) !important;min-height:46px;padding:10px 22px;flex-shrink:0}
.menu-toggle{
  display:none;background:transparent;border:0;padding:10px;cursor:pointer;
  width:46px;height:46px;
}
.menu-toggle .bar{display:block;height:2px;background:var(--cream);margin:5px 0;border-radius:2px;transition:background .3s ease}
.site-header.solid .menu-toggle .bar{background:var(--ink)}

/* ---------- hero mosaic ---------- */
.hero{position:relative;height:clamp(600px,90vh,860px);background:var(--green-deep)}
.hero-mosaic{
  position:absolute;inset:0;display:grid;gap:6px;
  grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;
}
.tile{position:relative;margin:0;overflow:hidden;background:var(--paper-2)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tile-a{grid-column:1;grid-row:1 / span 2}
.tile-b{grid-column:2;grid-row:1}
.tile-c{grid-column:2;grid-row:2}
.hero-scrim{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(14,53,39,.62) 0%,rgba(14,53,39,.18) 34%,rgba(14,53,39,.10) 60%,rgba(14,53,39,.55) 100%);
}
.hero-panel{
  position:absolute;left:0;bottom:clamp(28px,6vh,64px);
  width:min(660px,90%);
  background:var(--green-deep);
  color:var(--cream);
  padding:clamp(28px,4vw,48px) clamp(24px,4vw,52px);
  border-radius:0 var(--radius) var(--radius) 0;
  margin-left:0;
}
.hero-panel h1{color:var(--cream);margin:0 0 1.6rem}
.hero-panel .btn-primary{background:var(--cream);color:var(--green-deep)}
.hero-panel .btn-primary:hover{background:var(--paper-2);color:var(--green-deep)}

/* ---------- philosophy ---------- */
.philosophy{background:var(--green-deep);color:var(--cream);padding:var(--band) 0}
.philosophy .wrap{max-width:960px}
.quote{
  font-family:"Archivo",sans-serif;font-weight:600;
  font-size:clamp(1.5rem,3.2vw,2.5rem);line-height:1.24;letter-spacing:-.02em;
  color:var(--cream);margin:0 0 1.4rem;
}
.quote em{font-style:normal;font-weight:800;color:#9FD8B6}
.quote-by{font-size:.92rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.7);margin:0}

/* ---------- guide ---------- */
.guide{padding:var(--band) 0;background:var(--paper)}
.guide-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(34px,6vw,80px);align-items:start}
.guide-intro h2{margin:0 0 1.2rem}
.guide-list{list-style:none;margin:0;padding:0;counter-reset:none}
.guide-list li{border-top:1px solid var(--line);padding:26px 0}
.guide-list li:last-child{border-bottom:1px solid var(--line)}
.guide-list h3{margin:0 0 .5rem}
.guide-list p{margin:0;color:var(--ink-soft)}

/* ---------- photo bands ---------- */
.band{position:relative;height:clamp(320px,46vh,480px);overflow:hidden;background:var(--green-deep)}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(14,53,39,.86) 0%,rgba(14,53,39,.62) 46%,rgba(14,53,39,.3) 100%);
}
.band-copy{
  position:relative;z-index:2;height:100%;display:flex;align-items:center;
  max-width:var(--wrap);margin:0 auto;padding:0 clamp(18px,5vw,40px);
}
.band-copy p{
  margin:0;color:var(--cream);max-width:16ch;
  font-family:"Archivo",sans-serif;font-weight:800;letter-spacing:-.02em;line-height:1.06;
  font-size:clamp(1.7rem,4vw,3rem);
}

/* ---------- journey ---------- */
.journey{padding:var(--band) 0;background:var(--paper-2)}
.journey h2{margin:0 0 1rem}
.steps{list-style:none;margin:2.8rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.6vw,34px)}
.steps li{position:relative;padding-top:18px;border-top:2px solid var(--green)}
.step-num{
  display:block;font-family:"Archivo",sans-serif;font-weight:800;font-size:2.6rem;
  line-height:1;color:var(--green);opacity:.28;margin-bottom:.5rem;
}
.steps h3{margin:0 0 .5rem}
.steps p{margin:0;color:var(--ink-soft);font-size:.99rem}

/* ---------- team gallery ---------- */
.team{padding:var(--band) 0 calc(var(--band) + 10px);background:var(--paper)}
.team-head{max-width:60ch;margin-bottom:2.6rem}
.team-head h2{margin:0 0 1rem}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,26px)}
.g-item{margin:0}
.g-open{
  display:block;width:100%;padding:0;border:0;background:var(--paper-2);cursor:pointer;
  position:relative;overflow:hidden;border-radius:var(--radius);
  aspect-ratio:4/5;transition:transform .25s ease,box-shadow .25s ease;
}
.g-open img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.g-open:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(14,53,39,.16)}
.g-open:hover img{transform:scale(1.04)}
/* one signature shape, used once */
.g-lead .g-open{border-radius:180px 180px var(--radius) var(--radius)}
.g-wide{grid-column:span 2}
.g-wide .g-open{aspect-ratio:16/9}
.g-item figcaption{padding:14px 2px 0;font-size:.95rem;color:var(--ink-soft)}
.g-item figcaption strong{display:block;font-weight:600;color:var(--ink)}

/* ---------- ecosystem ---------- */
.ecosystem{padding:var(--band) 0;background:var(--paper-2)}
.eco-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(34px,6vw,80px);align-items:start}
.eco-intro h2{margin:0 0 1.2rem}
.eco-intro .btn{margin-top:.6rem}
.eco-list{list-style:none;margin:0;padding:0}
.eco-list li{
  display:grid;grid-template-columns:1fr auto;align-items:baseline;
  gap:6px 16px;padding:18px 0;border-bottom:1px solid var(--line);
}
.eco-list li:first-child{border-top:1px solid var(--line)}
.eco-list h3{margin:0;font-size:1.06rem}
.eco-list p{grid-column:1 / -1;margin:0;color:var(--ink-soft);font-size:.99rem}
.eco-status{
  font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-soft);white-space:nowrap;
}
.eco-status.open{color:var(--green)}

/* ---------- visit (overlaps the band above) ---------- */
.visit{background:var(--paper);padding:0 0 var(--band)}
.visit-card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(28px,4.4vw,58px);
  margin-top:-120px;position:relative;z-index:5;
  box-shadow:0 24px 60px rgba(14,53,39,.12);
}
.visit-card h2{margin:0 0 1rem}
.visit-details{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);margin:2.4rem 0 2rem}
.detail h3{font-size:.9rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin:0 0 .7rem;font-weight:600}
.detail p{margin:0;color:var(--ink);line-height:1.75}
.detail a{color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;min-height:44px;padding:2px 0}
.detail a:hover{color:var(--green);text-decoration:underline}
.visit-actions{display:flex;flex-wrap:wrap;gap:14px}

/* ---------- footer ---------- */
.site-footer{background:var(--green-deep);color:rgba(255,255,255,.82);padding:clamp(48px,7vw,78px) 0 28px;font-size:.97rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(24px,4vw,48px)}
.foot-brand img{height:56px;width:auto;background:var(--cream);padding:8px 10px;border-radius:var(--radius)}
.foot-line{margin-top:16px;color:#9FD8B6;font-family:"Archivo",sans-serif;font-weight:600;font-size:1.05rem;line-height:1.3;max-width:22ch}
.foot-col h4{font-size:.9rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cream);margin:0 0 .9rem;font-weight:600}
.foot-col p{line-height:2}
.foot-col a{color:rgba(251,249,244,.85);display:inline-flex;align-items:center;min-height:44px;padding:2px 0}
.foot-col a:hover{color:var(--cream)}
.foot-base{border-top:1px solid rgba(255,255,255,.16);margin-top:44px;padding-top:20px}
.foot-base p{margin:0;font-size:.95rem;color:rgba(255,255,255,.6)}

/* ---------- mobile action bar ---------- */
.action-bar{display:none}

/* ---------- lightbox ---------- */
.lightbox{
  position:fixed;inset:0;z-index:300;background:rgba(10,26,20,.94);
  display:flex;align-items:center;justify-content:center;padding:24px;
}
.lightbox[hidden]{display:none}
.lb-figure{margin:0;max-width:min(1000px,92vw);text-align:center}
.lb-figure img{max-height:78vh;width:auto;margin:0 auto;border-radius:var(--radius)}
.lb-figure figcaption{color:var(--cream);margin-top:14px;font-size:1rem}
.lb-close,.lb-prev,.lb-next{
  position:absolute;background:rgba(251,249,244,.12);border:0;color:var(--cream);cursor:pointer;
  width:52px;height:52px;border-radius:50%;font-size:1.8rem;line-height:1;
  display:flex;align-items:center;justify-content:center;transition:background .2s ease;
}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:rgba(255,255,255,.26)}
.lb-close{top:18px;right:18px}
.lb-prev{left:14px;top:50%;transform:translateY(-50%)}
.lb-next{right:14px;top:50%;transform:translateY(-50%)}

/* ---------- scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .guide-grid,.eco-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr);row-gap:34px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .visit-details{grid-template-columns:1fr 1fr}
}

@media (max-width:860px){
  .nav{
    position:fixed;top:0;right:0;bottom:0;width:min(320px,86vw);
    background:var(--paper);flex-direction:column;align-items:flex-start;justify-content:center;
    gap:6px;padding:80px 28px;transform:translateX(100%);transition:transform .32s ease;
    box-shadow:-20px 0 50px rgba(14,53,39,.18);
  }
  .nav.open{transform:none}
  .nav a:not(.btn),.site-header.solid .nav a:not(.btn){color:var(--ink);font-size:1.12rem;min-height:48px;width:100%}
  .nav-cta{margin-top:14px;width:100%}
  .menu-toggle{display:block;z-index:130}
  .menu-toggle[aria-expanded="true"] .bar{background:var(--ink)}
  .brand-name{max-width:none;font-size:.95rem}

  .hero{height:auto}
  .hero-mosaic{position:relative;height:52vh;min-height:320px;grid-template-columns:1fr 1fr;grid-template-rows:1.3fr 1fr}
  .tile-a{grid-column:1 / span 2;grid-row:1}
  .tile-b{grid-column:1;grid-row:2}
  .tile-c{grid-column:2;grid-row:2}
  .hero-panel{position:static;width:100%;border-radius:0;padding:32px clamp(18px,5vw,32px) 40px}
  .hero-panel .btn{width:100%}

  .visit-card{margin-top:-56px}
  .g-wide{grid-column:span 2}
  .band{height:300px}

  .action-bar{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
    position:fixed;left:0;right:0;bottom:0;z-index:140;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    background:rgba(250,247,240,.97);border-top:1px solid var(--line);
  }
  .action-bar a{
    display:flex;align-items:center;justify-content:center;min-height:50px;
    border-radius:var(--radius);font-weight:600;font-size:.94rem;line-height:1.2;
    text-align:center;text-decoration:none;padding:6px 8px;
  }
  .ab-secondary{background:transparent;border:1px solid var(--green);color:var(--green)}
  .ab-primary{background:var(--green);color:#fff}
  .ab-primary:active{background:var(--green-dark)}
  body{padding-bottom:78px}
}

/* The menu becomes the slide-in drawer as soon as the row stops fitting, not
   only on a phone. The nav carries eleven destinations plus the booking
   button, which needs about 1300px of row; below that the links used to
   squeeze until the brand name broke onto three lines and the booking button
   wrapped onto two. Only the nav moves here: the phone layout (hero mosaic,
   bottom action bar, body padding) stays at 860px where it belongs. */
@media (max-width:1200px){
  .nav{
    position:fixed;top:0;right:0;bottom:0;width:min(320px,86vw);
    background:var(--paper);flex-direction:column;align-items:flex-start;justify-content:center;
    gap:6px;padding:80px 28px;transform:translateX(100%);transition:transform .32s ease;
    box-shadow:-20px 0 50px rgba(14,53,39,.18);
  }
  .nav.open{transform:none}
  .nav a:not(.btn),.site-header.solid .nav a:not(.btn){color:var(--ink);font-size:1.12rem;min-height:48px;width:100%}
  .nav-cta{margin-top:14px;width:100%}
  .menu-toggle{display:block;z-index:130}
  .menu-toggle[aria-expanded="true"] .bar{background:var(--ink)}
}

@media (max-width:620px){
  .gallery{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:1fr}
  .visit-details{grid-template-columns:1fr;gap:26px}
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .lb-prev{left:6px}.lb-next{right:6px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none !important;transition:none !important}
  .site-header{transform:none !important}
  .reveal{opacity:1;transform:none}
}

/* ---------- booking page ---------- */
.page-book,.page-inner{padding-top:76px}
.book-hero{background:var(--green-deep);color:var(--cream);padding:clamp(44px,7vw,86px) 0 clamp(48px,7vw,90px)}
.book-hero h1{color:var(--cream);margin:0 0 1.2rem;font-size:clamp(2.1rem,5.2vw,3.9rem)}
.book-hero-lede{color:rgba(251,249,244,.86)}
.book-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:2rem}
.book-hero .btn-primary{background:var(--cream);color:var(--green-deep)}
.book-hero .btn-primary:hover{background:var(--paper-2);color:var(--green-deep)}
.btn-ghost.light{color:var(--cream);border-color:rgba(251,249,244,.55)}
.btn-ghost.light:hover{background:var(--cream);color:var(--green-deep);border-color:var(--cream)}

.book-main{background:var(--paper);padding:var(--band) 0}
.book-grid{display:grid;grid-template-columns:1.35fr .8fr;gap:clamp(32px,5vw,64px);align-items:start}

.form-card,.thanks-card{
  background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(24px,3.6vw,44px);box-shadow:0 20px 50px rgba(14,53,39,.08);
}
.form-card h2,.thanks-card h2{margin:0 0 .9rem;font-size:clamp(1.6rem,3vw,2.2rem)}
.thanks-card p{color:var(--ink-soft)}
.thanks-card .visit-actions{margin-top:1.6rem}
.thanks-card:focus{outline:none}

.field{margin:0 0 1.35rem}
.field label{display:block;font-weight:600;font-size:.97rem;margin-bottom:.45rem;color:var(--ink)}
.field .opt{font-weight:400;color:var(--ink-soft)}
.field input,.field textarea{
  width:100%;font-family:inherit;font-size:1rem;font-weight:300;color:var(--ink);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:13px 14px;min-height:52px;line-height:1.5;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.field textarea{resize:vertical}
.field input:focus,.field textarea:focus{
  outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(31,107,69,.16);
}
.hint{margin:.5rem 0 0;font-size:.9rem;color:var(--ink-soft)}
.form-submit{width:100%;margin-top:.4rem}
.form-note{margin:1rem 0 0;font-size:.9rem;color:var(--ink-soft)}
.form-error{
  margin:1rem 0 0;padding:12px 14px;border-radius:var(--radius);
  background:#F6E5E0;border:1px solid #D9A79A;color:#7A2E1C;font-size:.95rem;
}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.book-aside{display:grid;gap:26px}
.aside-block{border-top:1px solid var(--line);padding-top:16px}
.aside-block h3{font-size:.9rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin:0 0 .6rem;font-weight:600}
.aside-block p{margin:0;color:var(--ink-soft);line-height:1.8}
.aside-links a{color:var(--ink);display:inline-flex;align-items:center;min-height:44px;padding:2px 0}
.aside-links a:hover{color:var(--green)}
.aside-note{background:var(--paper-2);border-radius:var(--radius);padding:18px 20px}
.aside-note p{margin:0;font-size:.95rem;color:var(--ink-soft)}

.portal-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin:0 0 1.6rem}
.portal-tab{
  display:inline-flex;align-items:center;min-height:44px;padding:0 0 12px;
  font-weight:600;font-size:.97rem;color:var(--ink-soft);border-bottom:2px solid transparent;
}
.portal-tab:hover{color:var(--green)}
.portal-tab.on{color:var(--green);border-bottom-color:var(--green)}
.member-top{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-start;margin:0 0 1.6rem}
.member-top h2{margin:0 0 .4rem}
.member-top .lede{margin:0;font-size:.98rem}

.book-next{background:var(--paper-2)}
.book-bring{background:var(--paper)}

@media (max-width:1000px){
  .book-grid{grid-template-columns:1fr}
}
@media (max-width:860px){
  .page-book,.page-inner{padding-top:72px;padding-bottom:78px}
}

/* ---------- homecare page ---------- */
.rail-sec{background:var(--green-deep);color:var(--cream);padding:var(--band) 0}
.rail-head{color:var(--cream);margin:0 0 1.1rem}
.rail-lede{color:rgba(251,249,244,.82)}
.rail{list-style:none;margin:2.8rem 0 0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(12px,1.6vw,20px)}
.rail li{
  position:relative;padding:22px 18px;border-radius:var(--radius);
  background:rgba(251,249,244,.06);border:1px solid rgba(251,249,244,.2);
}
.rail li::after{
  content:"";position:absolute;top:50%;right:-13px;width:9px;height:9px;
  border-top:2px solid rgba(159,216,182,.7);border-right:2px solid rgba(159,216,182,.7);
  transform:translateY(-50%) rotate(45deg);
}
.rail li:last-child::after{display:none}
.rail-step{
  display:block;font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:#9FD8B6;margin-bottom:.7rem;
}
.rail h3{color:var(--cream);margin:0 0 .5rem;font-size:1.24rem;font-weight:800;text-transform:uppercase;letter-spacing:.01em}
.rail p{margin:0;color:rgba(251,249,244,.8);font-size:.95rem;line-height:1.6}

.conditions{background:var(--paper-2);padding:var(--band) 0}
.conditions h2{margin:0 0 1rem}
.cond-grid{list-style:none;margin:2.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px)}
.cond-grid li{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,2.4vw,28px)}
.cond-grid h3{margin:0 0 .5rem}
.cond-grid p{margin:0;color:var(--ink-soft);font-size:.97rem}
.cond-note{margin:2rem 0 0;font-size:.95rem;color:var(--ink-soft);max-width:62ch}
.first-visit{background:var(--paper)}
.guide-intro .btn{margin-top:.6rem}

@media (max-width:1000px){
  .rail{grid-template-columns:repeat(3,1fr);row-gap:22px}
  .rail li:nth-child(3)::after{display:none}
  .cond-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:620px){
  .rail{grid-template-columns:1fr}
  .rail li::after{display:none}
  .cond-grid{grid-template-columns:1fr}
}

@media (min-width:1201px) and (max-width:1440px){
  .nav{gap:13px}
  .nav a:not(.btn){font-size:.88rem}
  .nav-cta{padding:10px 16px}
}

/* ---------- portal dashboards and the private workspace ---------- */
.dash-bar{
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:12px 16px;margin:0 0 1.8rem;
}
.dash-bar p{margin:0;font-size:.94rem;color:var(--ink-soft);overflow-wrap:anywhere}
.dash{display:grid;grid-template-columns:238px 1fr;gap:clamp(24px,4vw,54px);align-items:start}
.dash-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:92px}
.dash-nav a{
  display:flex;align-items:center;min-height:44px;padding:8px 12px;border-radius:var(--radius);
  color:var(--ink-soft);font-size:.97rem;text-decoration:none;
}
.dash-nav a:hover{background:var(--paper-2);color:var(--green);text-decoration:none}
.dash-nav a.on{background:var(--green);color:var(--cream);font-weight:600}
.dash-main{min-width:0}
.dash-panel h2{margin:0 0 .8rem;font-size:clamp(1.5rem,3vw,2.1rem)}
.dash-panel h3{margin:2.2rem 0 .9rem;font-size:1.08rem}
.dash-panel > .lede{margin-bottom:1.6rem}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 1.4rem}
.stat{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.stat b{display:block;font-family:"Archivo",sans-serif;font-size:1.9rem;line-height:1;color:var(--green)}
.stat span{display:block;margin-top:6px;font-size:.88rem;color:var(--ink-soft)}
.rows{list-style:none;margin:0;padding:0}
.rows li{
  display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:space-between;align-items:flex-start;
  padding:16px 0;border-bottom:1px solid var(--line);
}
.rows li:first-child{border-top:1px solid var(--line)}
.rows h4{margin:0 0 .35rem;font-family:"Archivo",sans-serif;font-size:1.02rem;font-weight:600}
.rows .meta{margin:0;font-size:.92rem;color:var(--ink-soft);line-height:1.7;overflow-wrap:anywhere}
.rows > li > div:first-child{flex:1 1 320px;min-width:0}
.row-actions{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
.link-btn{
  background:none;border:0;padding:8px 0;min-height:44px;font:inherit;font-size:.93rem;font-weight:600;
  color:var(--green);cursor:pointer;
}
.link-btn:hover{text-decoration:underline}
.link-btn.warn{color:#8C2F1B}
.tag,.chip,.status{
  display:inline-block;padding:4px 10px;border-radius:100px;background:var(--paper-2);
  border:1px solid var(--line);font-family:"Inter",sans-serif;font-size:.72rem;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);vertical-align:middle;
}
.tag{margin-left:8px}
.chip.on,.status.live{background:var(--green);border-color:var(--green);color:var(--cream)}
.status.warn{background:#F6E5E0;border-color:#D9A79A;color:#7A2E1C}
.empty{margin:18px 0;color:var(--ink-soft);font-size:.96rem}
.private-note{
  margin:1.8rem 0 0;padding:14px 16px;background:var(--paper-2);border-left:3px solid var(--green);
  border-radius:var(--radius);font-size:.93rem;color:var(--ink-soft);
}
.form-ok{
  margin:1rem 0 0;padding:12px 14px;border-radius:var(--radius);
  background:#E4F0E6;border:1px solid #A9CDB4;color:#17513A;font-size:.95rem;
}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.field select,.field input[type="file"]{
  width:100%;font-family:inherit;font-size:1rem;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px;min-height:52px;
}
.field select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(31,107,69,.16)}
.check-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2px 16px}
.check-list label{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;font-weight:400;font-size:.96rem}
.check-list input{width:20px;height:20px;min-height:0;accent-color:var(--green)}
.portal-gate{max-width:580px;margin:0 auto}
.ws-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 1.6rem}
@media (max-width:900px){
  .dash{grid-template-columns:1fr}
  .dash-nav{
    position:static;flex-direction:row;flex-wrap:wrap;gap:6px;
    border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:1.6rem;
  }
  .dash-nav a{border:1px solid var(--line);padding:8px 14px;font-size:.92rem}
  .field-row{grid-template-columns:1fr}
}
@media print{
  .no-print,.site-header,.site-footer,.action-bar,.dash-nav{display:none !important}
}

/* ---------- library, hubs and stage rails ---------- */
.rail.rail-7{grid-template-columns:repeat(7,1fr)}
.rail-btn{display:block;width:100%;min-height:44px;text-align:left;background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}
.rail-btn:hover h3,.rail-btn[aria-expanded="true"] h3{color:#9FD8B6}
.rail-detail{
  margin:2.4rem 0 0;padding:24px 26px;border-radius:var(--radius);
  background:rgba(251,249,244,.08);border:1px solid rgba(251,249,244,.24);
}
.rail-detail h3{color:var(--cream);margin:0 0 .6rem;font-size:1.3rem;font-weight:800}
.rail-detail p{margin:0;color:rgba(251,249,244,.86)}
.flow{list-style:none;margin:2.4rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.flow li{
  padding:9px 15px;border-radius:100px;background:rgba(251,249,244,.08);border:1px solid rgba(251,249,244,.28);
  font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--cream);
}
.lib{background:var(--paper);padding:var(--band) 0}
.lib-alt{background:var(--paper-2)}
.lib-alt .lib-card{background:var(--paper)}
.lib-tools{display:grid;gap:14px;margin:2.2rem 0 1.2rem;max-width:520px}
.lib-tools .field{margin:0}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 2rem;padding:0;list-style:none}
.filters .chip{cursor:pointer;min-height:40px;padding:9px 15px;font-size:.75rem}
.lib-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.2vw,26px)}
.lib-grid.two{grid-template-columns:repeat(2,1fr)}
.lib-card{
  display:flex;flex-direction:column;background:var(--cream);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;
}
.lib-art{position:relative;display:block;aspect-ratio:16/10;background:var(--paper-2)}
.lib-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lib-body{display:flex;flex-direction:column;gap:.65rem;flex:1;padding:20px 22px 24px}
.lib-kind{margin:0;font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green)}
.lib-card h3{margin:0;font-family:"Archivo",sans-serif;font-size:1.1rem;font-weight:800;line-height:1.25}
.lib-card h3 a{color:var(--ink)}
.lib-card h3 a:hover{color:var(--green);text-decoration:none}
.lib-sum{margin:0;font-size:.96rem;color:var(--ink-soft)}
.lib-meta{margin:auto 0 0;font-size:.85rem;color:var(--ink-soft);overflow-wrap:anywhere}
.article-view{background:var(--paper);padding:var(--band) 0}
.article{max-width:74ch;margin:0 auto}
.article h1{font-size:clamp(1.9rem,4.6vw,3.1rem);margin:0 0 1rem}
.article .lib-kind{margin-bottom:1rem}
.art-hero{margin:0 0 2.2rem;border-radius:var(--radius);overflow:hidden}
.art-body h3{margin:2rem 0 .7rem}
.art-body ul{color:var(--ink-soft);padding-left:1.2em}
.art-facts{list-style:none;margin:2rem 0;padding:0;border-top:1px solid var(--line)}
.art-facts li{
  display:grid;grid-template-columns:180px 1fr;gap:6px 18px;padding:12px 0;
  border-bottom:1px solid var(--line);font-size:.96rem;overflow-wrap:anywhere;
}
.art-facts b{font-weight:600;color:var(--green);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}
.takeaways{background:var(--paper-2);border-radius:var(--radius);padding:24px 26px;margin:2.2rem 0}
.takeaways h3{margin:0 0 .7rem}
.takeaways ul{margin:0;padding-left:1.2em;color:var(--ink-soft)}
.mods{list-style:none;margin:2.2rem 0 0;padding:0;display:grid;gap:10px}
.mods a{
  display:flex;align-items:center;gap:12px;min-height:54px;padding:12px 18px;
  background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);
  color:var(--ink);font-weight:600;font-size:.98rem;
}
.mods a:hover{border-color:var(--green);color:var(--green);text-decoration:none}
.refs{margin:2.6rem 0 0;font-size:.92rem;color:var(--ink-soft)}
.refs h3{margin:0 0 .6rem}
.note-box{
  margin:2.2rem 0 0;padding:16px 18px;border-left:3px solid var(--green);background:var(--paper-2);
  border-radius:var(--radius);font-size:.94rem;color:var(--ink-soft);
}
.back-link{display:inline-flex;align-items:center;min-height:44px;font-weight:600;margin-bottom:1.2rem}
@media (max-width:1000px){
  .lib-grid,.lib-grid.two{grid-template-columns:repeat(2,1fr)}
  .rail.rail-7{grid-template-columns:repeat(4,1fr);row-gap:22px}
  .rail.rail-7 li::after{display:none}
}
@media (max-width:620px){
  .lib-grid,.lib-grid.two{grid-template-columns:1fr}
  .rail.rail-7{grid-template-columns:1fr}
  .art-facts li{grid-template-columns:1fr}
}

/* ---------- ecosystem pages: connect, marketplace, stories, partnerships ---------- */
.rail.rail-4{grid-template-columns:repeat(4,1fr)}
.cond-grid p + p{margin-top:.9rem}

/* pre-session equipment check */
.check-list{margin:1.6rem 0 0;padding-left:1.3rem;color:var(--ink-soft)}
.check-list li{margin:0 0 .55rem;font-size:.98rem}
.check-card .check-row{border-top:1px solid var(--line);padding:18px 0 16px}
.check-card .check-row:first-of-type{border-top:0;padding-top:6px}
.check-result{margin:.8rem 0 0;font-size:.94rem;color:var(--ink-soft)}
.check-result.good{color:var(--green-dark);font-weight:600}
.check-result.bad{color:#A63A2E;font-weight:600}
.meter{margin:.9rem 0 0;height:8px;border-radius:99px;background:var(--paper-2);overflow:hidden}
.meter span{display:block;height:100%;width:0;background:var(--green);transition:width .08s linear}
.cam-view{margin-top:.9rem;width:100%;max-width:320px;border-radius:var(--radius);background:#000;display:block}

/* problem-first chooser */
.need-grid{list-style:none;margin:2.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.6vw,20px)}
.need-btn{
  display:block;width:100%;height:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(18px,2vw,24px);transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.need-btn:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:0 10px 26px rgba(14,53,39,.10)}
.need-btn.on{border-color:var(--green);box-shadow:0 10px 26px rgba(14,53,39,.12)}
.need-btn h3{margin:0 0 .45rem;font-size:1.1rem}
.need-btn p{margin:0;color:var(--ink-soft);font-size:.94rem}
.need-detail{
  margin:2rem 0 0;padding:clamp(22px,2.6vw,32px);
  background:var(--paper);border:1px solid var(--green);border-radius:var(--radius);
}
.need-detail h3{margin:0 0 .6rem}
.need-note{margin:0 0 1.2rem;color:var(--ink-soft);max-width:70ch}
.need-opts{list-style:none;margin:0 0 1.4rem;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.need-cta{margin:0;display:flex;flex-wrap:wrap;gap:10px}

/* clinical selection levels */
.sel-list{list-style:none;margin:2.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px)}
.sel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,2.4vw,28px);border-top:4px solid var(--line)}
.sel h3{margin:0 0 .5rem;font-size:1.1rem}
.sel p{margin:0;color:var(--ink-soft);font-size:.96rem}
.sel-green{border-top-color:var(--green)}
.sel-amber{border-top-color:#B7791F}
.sel-red{border-top-color:#A63A2E}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-bottom:.9rem}
.dot.green{background:var(--green)}
.dot.amber{background:#B7791F}
.dot.red{background:#A63A2E}

/* catalogue */
.cat-grid{list-style:none;margin:2.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px)}
.cat-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,2.4vw,28px)}
.cat-card h3{margin:0 0 .8rem;font-size:1.14rem}
.cat-card ul{list-style:none;margin:0;padding:0}
.cat-card ul li{padding:7px 0 7px 16px;position:relative;color:var(--ink-soft);font-size:.95rem;border-bottom:1px solid var(--line)}
.cat-card ul li:last-child{border-bottom:0}
.cat-card ul li::before{content:"";position:absolute;left:0;top:15px;width:5px;height:5px;border-radius:50%;background:var(--green)}
.cat-note{margin:1.1rem 0 0;font-size:.9rem;color:var(--ink-soft)}

/* shop container */
.shop-host{
  margin-top:2.4rem;
  --sp-accent:var(--green);--sp-accent-ink:var(--cream);--sp-ink:var(--ink);--sp-muted:var(--ink-soft);
  --sp-bg:transparent;--sp-card-bg:var(--paper);--sp-border:var(--line);
  --sp-radius:var(--radius);--sp-btn-radius:99px;--sp-gap:clamp(14px,2vw,24px);
  --sp-card-min:250px;--sp-card-pad:22px;--sp-art-ratio:4/3;--sp-art-bg:var(--paper-2);--sp-title-size:1.1rem;
}

/* recovery kits */
.kit-grid{list-style:none;margin:2.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,24px)}
.kit-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,2.4vw,28px);display:flex;flex-direction:column}
.kit-card h3{margin:0 0 .4rem;font-size:1.12rem}
.kit-for{margin:0 0 1rem;color:var(--green-dark);font-size:.92rem;font-weight:600}
.kit-card ul{list-style:none;margin:0 0 1.2rem;padding:0}
.kit-card ul li{padding:6px 0 6px 16px;position:relative;color:var(--ink-soft);font-size:.94rem}
.kit-card ul li::before{content:"";position:absolute;left:0;top:14px;width:5px;height:5px;border-radius:50%;background:var(--green)}
.kit-price{margin:auto 0 1rem;font-weight:600;font-size:.95rem}
.kit-card .btn{align-self:flex-start}
.kit-wide{grid-column:span 4}
.kit-wide p{color:var(--ink-soft)}

/* stories: consent */
.story-parts li h3{text-transform:none}
.consent-grid{list-style:none;margin:2.2rem 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.consent-grid li{
  background:var(--paper);border:1px solid var(--line);border-radius:99px;
  padding:10px 18px;font-size:.94rem;color:var(--ink)
}
.consent-set{border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin:1.4rem 0}
.consent-set legend{padding:0 8px;font-weight:600;font-size:.98rem}
.check{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:6px 0;font-size:.96rem;color:var(--ink);cursor:pointer}
.check input{margin-top:4px;width:20px;height:20px;flex:none;accent-color:var(--green)}

/* marketplace disclaimer in the footer */
.foot-note{margin:.9rem 0 0;font-size:.86rem;color:rgba(251,249,244,.62);max-width:96ch}

@media (min-width:1201px) and (max-width:1440px){
  .nav{gap:13px}
  .nav a:not(.btn){font-size:.9rem}
  .nav-cta{padding:10px 15px;font-size:.9rem}
}
@media (max-width:1000px){
  .rail.rail-4{grid-template-columns:repeat(2,1fr);row-gap:22px}
  .rail.rail-4 li::after{display:none}
  .need-grid{grid-template-columns:repeat(2,1fr)}
  .sel-list,.cat-grid{grid-template-columns:repeat(2,1fr)}
  .kit-grid{grid-template-columns:repeat(2,1fr)}
  .kit-wide{grid-column:span 2}
}
@media (max-width:620px){
  .rail.rail-4{grid-template-columns:1fr}
  .need-grid{grid-template-columns:1fr}
  .sel-list,.cat-grid,.kit-grid{grid-template-columns:1fr}
  .kit-wide{grid-column:span 1}
}


/* The header carries eleven destinations plus the booking button. Measured on
   the live site, that row needs about 1477px against a --wrap of 1180px, so it
   never fitted at any screen size and the links squeezed until the brand broke
   onto three lines. The six a patient actually needs keep the desktop row; the
   rest are in the drawer at every width below 1200px, and in the footer, which
   already links to all of them. */
@media (min-width:1201px){
  .nav .nav-more{display:none}
}

/* The brand image is a lockup that already reads REHAB HAVEN, so the text
   beside it said the name twice. The image's alt carries the name for screen
   readers and for anyone with images turned off. */
.brand-name{display:none}
