/* ===========================================================
   Southern Star Rx — shared design system
   Brand lime #8dd81e · deep evergreen ink · clinical neutrals
   Type: Source Serif 4 (headlines) + Public Sans (body)
   Spacing intentionally compact.
   =========================================================== */

:root{
  /* brand + palette */
  --lime:        #8dd81e;
  --lime-600:    #79bf12;
  --lime-700:    #5f970d;
  /* purple anchor (replaces former dark green) */
  --forest:      #4a2c7a;   /* primary deep purple: headings, dark text */
  --forest-700:  #2e1a52;   /* deepest purple: footer */
  --forest-600:  #5d3f93;   /* hover */
  --ink:         #221f2b;
  --muted:       #65607a;
  --muted-2:     #948fa6;
  --mint-50:     #f3f8ea;
  --mint-100:    #e9f2d8;
  --surf:        #f8f7fb;
  --line:        #e6e3ee;
  --line-2:      #d7d2e4;
  --white:       #ffffff;

  /* type */
  --serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --sans:  "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* rhythm (compact) */
  --sy: clamp(2.6rem, 4.6vw, 4.25rem);   /* section vertical padding */
  --gap: clamp(1rem, 2vw, 1.6rem);
  --wrap: 1180px;
  --radius: 14px;
  --radius-sm: 10px;
  --radius-lg: 22px;
  --shadow-sm: 0 1px 2px rgba(20,53,36,.05), 0 2px 8px rgba(20,53,36,.05);
  --shadow:    0 6px 22px rgba(20,53,36,.09);
  --shadow-lg: 0 18px 48px rgba(20,53,36,.16);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--white);
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; color:var(--forest);
  line-height:1.08; margin:0; letter-spacing:-.01em; text-wrap:balance; }
h1{ font-size:clamp(2.35rem, 5.2vw, 4rem); }
h2{ font-size:clamp(1.9rem, 3.6vw, 2.9rem); }
h3{ font-size:clamp(1.25rem, 2vw, 1.55rem); }
p{ margin:0; text-wrap:pretty; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(18px,4vw,32px); }
.wrap--narrow{ max-width:920px; }

.section{ padding-block:var(--sy); }
.section--tight{ padding-block:calc(var(--sy) * .68); }
.section--tint{ background:var(--mint-50); }
.section--surf{ background:var(--surf); }
.section--dark{ background:var(--forest); color:#d8d2e6; }
.section--dark h1,.section--dark h2,.section--dark h3{ color:#fff; }

/* ---------- shared atoms ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--sans); font-weight:700; font-size:.74rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--lime-700);
  margin:0 0 .85rem;
}
.eyebrow::before{ content:""; width:22px; height:2px; background:var(--lime); border-radius:2px; }
.section--dark .eyebrow{ color:var(--lime); }
.eyebrow--center{ justify-content:center; }

.lead{ font-size:clamp(1.05rem,1.5vw,1.22rem); color:var(--muted); line-height:1.6; }
.section--dark .lead{ color:#b8aed0; }
.muted{ color:var(--muted); }
.center{ text-align:center; }
.stack > * + *{ margin-top:1rem; }
.maxw{ max-width:62ch; }
.maxw--head{ max-width:24ch; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--sans); font-weight:700; font-size:1rem; line-height:1;
  padding:.92rem 1.5rem; border-radius:999px; border:1.5px solid transparent;
  cursor:pointer; transition:transform .16s ease, background .16s ease, box-shadow .16s ease, color .16s ease;
  white-space:nowrap;
}
.btn svg{ width:1.05em; height:1.05em; }
.btn--primary{ background:var(--lime); color:var(--forest-700); box-shadow:0 6px 16px rgba(141,216,30,.35); }
.btn--primary:hover{ background:var(--lime-600); transform:translateY(-2px); box-shadow:0 10px 22px rgba(141,216,30,.42); }
.btn--dark{ background:var(--forest); color:#fff; }
.btn--dark:hover{ background:var(--forest-600); transform:translateY(-2px); }
.btn--ghost{ background:transparent; color:var(--forest); border-color:var(--line-2); }
.btn--ghost:hover{ border-color:var(--forest); background:var(--white); transform:translateY(-2px); }
.section--dark .btn--ghost{ color:#fff; border-color:rgba(255,255,255,.4); }
.section--dark .btn--ghost:hover{ border-color:#fff; background:rgba(255,255,255,.08); }
.btn--lg{ padding:1.05rem 1.9rem; font-size:1.06rem; }
.btn--block{ width:100%; }

/* ---------- header ---------- */
.topbar{
  background:var(--forest); color:#cfe0cf; font-size:.82rem;
  font-weight:500; letter-spacing:.02em;
}
.topbar .wrap{ display:flex; align-items:center; justify-content:center; gap:1.6rem;
  min-height:38px; flex-wrap:wrap; padding-block:.35rem; }
.topbar b{ color:#fff; font-weight:700; }
.topbar .dot{ width:5px;height:5px;border-radius:50%;background:var(--lime); display:inline-block; }
.topbar a{ color:#fff; font-weight:700; }

.site-header{ position:sticky; top:0; z-index:60; background:rgba(255,255,255,.92);
  backdrop-filter:saturate(140%) blur(10px); border-bottom:1px solid var(--line);
  transition:box-shadow .2s ease; }
.site-header.is-stuck{ box-shadow:var(--shadow-sm); }
.nav{ display:flex; align-items:center; gap:1.5rem; min-height:66px; }
.nav__logo img{ height:34px; width:auto; }
.nav__links{ display:flex; align-items:center; gap:1.55rem; margin-left:.5rem; list-style:none; padding:0; }
.nav__links a{ font-weight:600; font-size:.96rem; color:var(--ink); position:relative; padding:.2rem 0; }
.nav__links a::after{ content:""; position:absolute; left:0; bottom:-3px; height:2px; width:0; background:var(--lime); transition:width .2s ease; border-radius:2px; }
.nav__links a:hover{ color:var(--forest); }
.nav__links a:hover::after,.nav__links a[aria-current="page"]::after{ width:100%; }
.nav__links a[aria-current="page"]{ color:var(--forest); }
.nav__spacer{ margin-left:auto; }
.nav__actions{ display:flex; align-items:center; gap:1rem; }
.nav__tel{ display:inline-flex; align-items:center; gap:.5rem; font-weight:700; color:var(--forest); white-space:nowrap; }
.nav__tel svg{ width:18px; height:18px; color:var(--lime-700); }
.nav__toggle{ display:none; }

/* off-canvas mobile menu */
.menu-backdrop{ position:fixed; inset:0; background:rgba(14,39,25,.45); opacity:0; visibility:hidden;
  transition:opacity .25s ease; z-index:70; }
.menu-backdrop.is-open{ opacity:1; visibility:visible; }
.drawer{ position:fixed; top:0; right:0; height:100%; width:min(86vw,340px); background:#fff;
  transform:translateX(100%); transition:transform .28s cubic-bezier(.4,0,.2,1); z-index:80;
  display:flex; flex-direction:column; padding:1.4rem 1.4rem 2rem; gap:.4rem; box-shadow:var(--shadow-lg); }
.drawer.is-open{ transform:translateX(0); }
.drawer__top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.drawer__top img{ height:30px; }
.drawer a.drawer__link{ font-family:var(--serif); font-size:1.3rem; font-weight:600; color:var(--forest);
  padding:.7rem 0; border-bottom:1px solid var(--line); }
.drawer__x{ background:var(--mint-50); border:none; width:40px;height:40px;border-radius:50%; font-size:1.3rem; cursor:pointer; color:var(--forest); }
.drawer .btn{ margin-top:1rem; }

/* ---------- hero ---------- */
.hero{ position:relative; overflow:hidden; background:
   radial-gradient(120% 120% at 88% -10%, var(--mint-100) 0%, rgba(233,242,216,0) 46%), var(--white); }
.hero__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center; }
.hero__eyebrow-chip{ display:inline-flex; align-items:center; gap:.55rem; background:var(--mint-100); color:var(--forest);
  font-weight:700; font-size:.82rem; padding:.42rem .9rem; border-radius:999px; }
.hero__eyebrow-chip .dot{ width:7px;height:7px;border-radius:50%;background:var(--lime-600); }
.hero h1{ margin:1rem 0 0; }
.hero h1 em{ font-style:normal; color:var(--lime-700); }
.hero__sub{ margin-top:1.05rem; font-size:clamp(1.05rem,1.5vw,1.25rem); color:var(--muted); max-width:46ch; }
.hero__cta{ display:flex; gap:.8rem; margin-top:1.5rem; flex-wrap:wrap; }
.hero__trust{ display:inline-flex; align-items:center; gap:.55rem; margin-top:1.4rem; color:var(--muted); font-size:.92rem; }
.hero__trust svg{ width:18px;height:18px; color:var(--lime-700); }
.hero__media{ position:relative; }
.hero__media img{ width:100%; height:clamp(320px,42vw,480px); object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); }
.hero__badge{ position:absolute; left:-14px; bottom:24px; background:#fff; border-radius:var(--radius);
  box-shadow:var(--shadow); padding:.85rem 1.05rem; display:flex; align-items:center; gap:.7rem; max-width:230px; }
.hero__badge .ico{ width:42px;height:42px;border-radius:12px; background:var(--mint-50); display:grid; place-items:center; flex:none; }
.hero__badge .ico svg{ width:22px;height:22px;color:var(--lime-700); }
.hero__badge b{ display:block; font-size:.95rem; color:var(--forest); }
.hero__badge span{ font-size:.8rem; color:var(--muted); }

/* hero quick chips */
.chips{ display:flex; gap:.7rem; flex-wrap:wrap; margin-top:1.7rem; }
.chip{ display:inline-flex; align-items:center; gap:.55rem; background:#fff; border:1px solid var(--line);
  border-radius:999px; padding:.55rem 1rem; font-weight:600; font-size:.92rem; color:var(--forest); box-shadow:var(--shadow-sm); }
.chip img{ width:24px;height:24px;object-fit:contain; }
.chip:hover{ border-color:var(--lime); }

/* ---------- section heading block ---------- */
.shead{ max-width:640px; }
.shead--center{ margin-inline:auto; text-align:center; }
.shead p{ margin-top:.7rem; }

/* ---------- steps ---------- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; margin-top:2rem; }
.step{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.5rem 1.4rem 1.6rem; box-shadow:var(--shadow-sm); transition:transform .18s ease, box-shadow .18s ease; }
.step:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.step__media{ display:block; width:100%; height:172px; object-fit:contain; margin-bottom:.4rem;
  background:var(--mint-50); border-radius:12px; }
.step__row{ display:flex; align-items:center; gap:.7rem; margin:.4rem 0 .6rem; }
.step__n{ font-family:var(--serif); font-size:1rem; font-weight:700; color:var(--forest-700);
  width:38px;height:38px;border-radius:50%; background:var(--lime); display:grid; place-items:center; flex:none; }
.step h3{ margin:0; }
.step p{ color:var(--muted); font-size:.97rem; }

/* ---------- media rows ---------- */
.media-row{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center; }
.media-row + .media-row{ margin-top:var(--sy); }
.media-row__media img{ width:100%; height:clamp(260px,32vw,400px); object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow); }
.media-row--rev .media-row__media{ order:-1; }
.media-row .btn{ margin-top:1.3rem; }

/* ---------- service cards ---------- */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:2rem; }
.svc{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  display:flex; flex-direction:column; box-shadow:var(--shadow-sm); transition:transform .18s ease, box-shadow .18s ease; }
.svc:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.svc__img{ height:184px; overflow:hidden; }
.svc__img img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.svc:hover .svc__img img{ transform:scale(1.05); }
.svc__body{ padding:1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; flex:1; }
.svc__body h3{ margin-bottom:.45rem; }
.svc__body p{ color:var(--muted); font-size:.96rem; flex:1; }
.svc__link{ display:inline-flex; align-items:center; gap:.45rem; margin-top:1rem; font-weight:700; color:var(--lime-700); }
.svc__link svg{ width:16px;height:16px; transition:transform .18s ease; }
.svc:hover .svc__link svg{ transform:translateX(4px); }

/* ---------- badges / trust strip ---------- */
.trust-strip{ display:flex; align-items:center; justify-content:center; gap:clamp(1.4rem,4vw,3.4rem); flex-wrap:wrap; }
.trust-strip .ts{ display:flex; align-items:center; gap:.7rem; color:var(--forest); font-weight:600; }
.trust-strip .ts svg{ width:22px;height:22px; color:var(--lime-700); }

.stat-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2rem; }
.stat{ text-align:center; padding:1rem; }
.stat b{ display:block; font-family:var(--serif); font-size:clamp(2rem,3.4vw,2.8rem); color:var(--lime); line-height:1; }
.stat span{ display:block; margin-top:.5rem; color:#b8aed0; font-size:.95rem; }
.section:not(.section--dark) .stat b{ color:var(--forest); }
.section:not(.section--dark) .stat span{ color:var(--muted); }

/* ---------- insurance / partner ---------- */
.partner-band{ display:flex; align-items:center; justify-content:center; gap:2.5rem; flex-wrap:wrap; }
.partner-band img{ height:46px; width:auto; object-fit:contain; }

/* ---------- CTA band ---------- */
.cta-band{ text-align:center; }
.cta-band .star{ width:40px; margin:0 auto 1rem; }
.cta-band h2{ max-width:18ch; margin-inline:auto; }
.cta-band .btn{ margin-top:1.6rem; }

/* ---------- states grid ---------- */
.states{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.7rem; margin-top:1.8rem; }
.state{ display:flex; align-items:center; gap:.6rem; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:.8rem 1rem; font-weight:600; color:var(--forest); transition:.16s; }
.state:hover{ border-color:var(--lime); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.state .pin{ width:8px;height:8px;border-radius:50%; background:var(--lime); flex:none; }

/* ---------- generic content cards ---------- */
.cards-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:2rem; }
.cards-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem; margin-top:2rem; }
.icard{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.5rem; box-shadow:var(--shadow-sm); }
.icard__ico{ width:62px;height:62px;border-radius:16px; background:var(--mint-50); display:grid; place-items:center; margin-bottom:1.1rem; }
.icard__ico svg{ width:32px;height:32px; color:var(--lime-700); }
.icard h3{ font-size:1.2rem; margin-bottom:.4rem; }
.icard p{ color:var(--muted); font-size:.96rem; }
.icard--wide{ grid-column:1 / -1; }
.icard .two-col{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem 2rem; margin-top:.5rem; }
.svc-sub{ font-family:var(--sans); font-weight:700; font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; color:var(--lime-700); margin:1.1rem 0 .6rem; }
.svc-list{ list-style:none; padding:0; margin:0; display:grid; gap:.45rem; }
.svc-list li{ position:relative; padding-left:1.4rem; color:var(--muted); font-size:.95rem; line-height:1.45; }
.svc-list li::before{ content:""; position:absolute; left:0; top:.5em; width:7px; height:7px; border-radius:50%; background:var(--lime); }
@media (max-width:640px){ .icard .two-col{ grid-template-columns:1fr; } }

/* ---------- long-form / legal prose ---------- */
.prose{ max-width:820px; margin-inline:auto; }
.prose h2{ font-size:1.55rem; margin-top:2.4rem; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:1.12rem; margin-top:1.7rem; color:var(--forest); }
.prose p{ margin-top:.85rem; color:var(--ink); }
.prose p.eff{ color:var(--muted); font-style:italic; margin-top:.4rem; }
.prose p.nosell{ font-weight:700; color:var(--forest); font-size:1.08rem; margin-top:1.4rem; }
.prose a{ color:var(--lime-700); font-weight:700; }
.prose ul{ margin:.8rem 0 0; padding:0; list-style:none; display:grid; gap:.45rem; }
.prose ul li{ position:relative; padding-left:1.4rem; color:var(--muted); line-height:1.5; }
.prose ul li::before{ content:""; position:absolute; left:0; top:.55em; width:7px; height:7px; border-radius:50%; background:var(--lime); }
.prose .contact-block{ margin-top:1rem; padding:1.3rem 1.5rem; background:var(--mint-50); border:1px solid var(--mint-100); border-radius:var(--radius); color:var(--ink); line-height:1.7; }

/* ---------- FAQ ---------- */
.faq{ max-width:780px; margin:2rem auto 0; border-top:1px solid var(--line); }
.faq__item{ border-bottom:1px solid var(--line); }
.faq__q{ width:100%; text-align:left; background:none; border:none; cursor:pointer; font-family:var(--serif);
  font-size:1.18rem; font-weight:600; color:var(--forest); padding:1.15rem 2.5rem 1.15rem 0; position:relative; display:block; }
.faq__q::after{ content:"+"; position:absolute; right:.2rem; top:50%; transform:translateY(-50%); font-size:1.6rem;
  color:var(--lime-700); font-family:var(--sans); transition:transform .2s ease; }
.faq__item.is-open .faq__q::after{ content:"\2212"; }
.faq__a{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
.faq__a p{ color:var(--muted); padding:0 0 1.2rem; }

/* ---------- footer ---------- */
.site-footer{ background:var(--forest-700); color:#b9b2cc; padding-block:clamp(2.6rem,4vw,3.4rem) 1.6rem; }
.footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:2rem; }
.footer__brand img{ height:34px; margin-bottom:1rem; }
.footer__brand p{ font-size:.94rem; max-width:30ch; }
.site-footer h4{ font-family:var(--sans); font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; color:var(--lime); margin:0 0 1rem; }
.footer__links{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.6rem; }
.footer__links a{ color:#b9b2cc; font-size:.96rem; }
.footer__links a:hover{ color:var(--lime); }
.footer__tel{ font-family:var(--serif); font-size:1.15rem; color:#fff; font-weight:600; }
.footer__social{ display:flex; gap:.7rem; margin-top:1rem; }
.footer__social a{ width:38px;height:38px;border-radius:50%; background:rgba(255,255,255,.08); display:grid; place-items:center; transition:.16s; }
.footer__social a:hover{ background:var(--lime); color:var(--forest); }
.footer__social svg{ width:18px;height:18px; }
.footer__legitscript{ display:inline-flex; transition:.16s; }
.footer__legitscript img{ height:58px; width:auto; margin:0; display:block; }
.footer__legitscript:hover{ opacity:.85; transform:translateY(-2px); }
.footer__bottom{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  margin-top:2.4rem; padding-top:1.4rem; border-top:1px solid rgba(255,255,255,.1); font-size:.86rem; }
.footer__bottom a:hover{ color:var(--lime); }

/* ---------- page hero (interior) ---------- */
.phero{ background:var(--forest); color:#d8d2e6; padding-block:clamp(3rem,5vw,4.5rem); position:relative; overflow:hidden; }
.phero::after{ content:""; position:absolute; right:-60px; top:-60px; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(141,216,30,.22), rgba(141,216,30,0) 70%); z-index:1; }
.phero .wrap{ position:relative; z-index:2; }
.phero h1{ color:#fff; max-width:18ch; }
.phero p{ color:#c3bcd8; margin-top:1rem; max-width:54ch; font-size:1.12rem; }
.phero .eyebrow{ color:var(--lime); }
.phero__crumb{ font-size:.85rem; color:#a99fc4; margin-bottom:1rem; }
.phero__crumb a:hover{ color:var(--lime); }
/* hero with background photo */
.phero--photo{ padding-block:clamp(3.4rem,6vw,5.5rem); }
.phero--photo .phero__bg{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.phero--photo .phero__bg img{ width:100%; height:100%; object-fit:cover; object-position:right center; opacity:.95; }
.phero--photo::before{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(100deg, var(--forest) 0%, var(--forest) 34%, rgba(46,26,82,.55) 64%, rgba(46,26,82,.15) 100%); }
.phero--photo::after{ z-index:1; }

/* face-framing utility for portrait photos */
.img-top{ object-position:center 18% !important; }

/* image placeholder (user to supply photo) */
.ph{ position:relative; border-radius:var(--radius-lg); border:2px dashed var(--line-2);
  background:repeating-linear-gradient(45deg, var(--surf), var(--surf) 13px, #edeaf4 13px, #edeaf4 26px);
  display:flex; align-items:center; justify-content:center; text-align:center; padding:1.5rem; }
.ph span{ font-family:ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.8rem; line-height:1.5;
  color:var(--muted); background:#fff; padding:.7rem 1rem; border-radius:10px; border:1px solid var(--line); max-width:30ch; box-shadow:var(--shadow-sm); }
.ph span b{ display:block; color:var(--forest); font-family:var(--sans); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.3rem; }
.ph--media{ height:clamp(260px,32vw,400px); }

/* ---------- reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- transfer wizard / forms ---------- */
.transfer-grid{ display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(1.5rem,4vw,3rem); align-items:start; }
.transfer-aside .eyebrow{ margin-top:0; }
.mini-steps{ list-style:none; margin:1.6rem 0 0; padding:0; display:flex; flex-direction:column; gap:1.1rem; }
.mini-steps li{ display:flex; gap:.9rem; align-items:flex-start; }
.mini-steps .n{ width:32px;height:32px;border-radius:50%; background:var(--lime); color:var(--forest-700);
  font-weight:700; display:grid; place-items:center; flex:none; font-family:var(--serif); }
.mini-steps b{ color:var(--forest); display:block; }
.mini-steps span{ color:var(--muted); font-size:.94rem; }
.aside-card{ margin-top:1.8rem; background:var(--mint-50); border:1px solid var(--mint-100); border-radius:var(--radius); padding:1.3rem 1.4rem; }
.aside-card h4{ font-family:var(--serif); font-size:1.1rem; color:var(--forest); margin:0 0 .5rem; }
.aside-card p{ color:var(--muted); font-size:.94rem; }
.aside-card a{ color:var(--lime-700); font-weight:700; }

.wz-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:clamp(1.4rem,3vw,2.2rem); }
.wz__bar{ display:flex; align-items:center; gap:.5rem; margin-bottom:1.6rem; }
.wz__dot{ flex:1; display:flex; align-items:center; gap:.5rem; font-size:.82rem; font-weight:700; color:var(--muted-2); }
.wz__dot .num{ width:28px;height:28px;border-radius:50%; border:2px solid var(--line-2); display:grid; place-items:center;
  font-size:.85rem; flex:none; transition:.2s; background:#fff; }
.wz__dot.is-active{ color:var(--forest); }
.wz__dot.is-active .num{ border-color:var(--lime); background:var(--lime); color:var(--forest-700); }
.wz__dot.is-done .num{ border-color:var(--lime-600); background:var(--lime-600); color:#fff; }
.wz__dot .line{ flex:1; height:2px; background:var(--line); border-radius:2px; }
.wz__dot:last-child .line{ display:none; }

.wz__step h3{ font-size:1.4rem; margin-bottom:.3rem; }
.wz__step > p.muted{ margin-bottom:1.3rem; font-size:.96rem; }
.field-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.1rem; }
.field{ display:flex; flex-direction:column; gap:.4rem; margin-bottom:1rem; }
.field--full{ grid-column:1 / -1; }
.field label{ font-weight:600; font-size:.9rem; color:var(--forest); }
.field label .req{ color:var(--lime-700); }
.field input, .field select, .field textarea{
  font-family:var(--sans); font-size:1rem; color:var(--ink); background:#fff;
  border:1.5px solid var(--line-2); border-radius:10px; padding:.78rem .9rem; width:100%; transition:.16s;
}
.field textarea{ resize:vertical; min-height:84px; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--lime-600); box-shadow:0 0 0 3px rgba(141,216,30,.18); }
.field--err input, .field--err select, .field--err textarea{ border-color:#d4503e; box-shadow:0 0 0 3px rgba(212,80,62,.12); }
.field__hint{ font-size:.82rem; color:var(--muted-2); }
.field--err .field__hint, .field--err label{ color:#c0392b; }
.consent{ display:flex; gap:.7rem; align-items:flex-start; background:var(--surf); border:1px solid var(--line); border-radius:10px; padding:.9rem 1rem; }
.consent input{ width:20px;height:20px;flex:none;margin-top:.15rem; accent-color:var(--lime-600); }
.consent label{ font-size:.9rem; color:var(--muted); font-weight:500; line-height:1.5; }
.wz__nav{ display:flex; justify-content:space-between; gap:1rem; margin-top:1.4rem; }
.wz__nav .btn{ min-width:120px; }
.wz__nav--end{ justify-content:flex-end; }

.wz-success{ text-align:center; padding:1rem 0; }
.wz-success .check{ width:74px;height:74px;border-radius:50%; background:var(--lime); display:grid; place-items:center; margin:0 auto 1.2rem; }
.wz-success .check svg{ width:38px;height:38px;color:var(--forest-700); }
.wz-success h2{ margin-bottom:.6rem; }
.wz-success p{ color:var(--muted); max-width:46ch; margin:0 auto; }
.wz-success .btn{ margin-top:1.6rem; }
.wz-success .next-list{ list-style:none; padding:0; margin:1.6rem auto 0; max-width:420px; text-align:left; display:flex; flex-direction:column; gap:.8rem; }
.wz-success .next-list li{ display:flex; gap:.7rem; align-items:flex-start; color:var(--muted); font-size:.95rem; }
.wz-success .next-list svg{ width:20px;height:20px;color:var(--lime-700);flex:none;margin-top:.15rem; }

/* ---------- careers role rows ---------- */
.role-row{ display:flex; align-items:center; justify-content:space-between; gap:1rem;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.1rem 1.4rem;
  box-shadow:var(--shadow-sm); transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.role-row:hover{ transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--line-2); }
.role-row b{ font-family:var(--serif); font-size:1.2rem; color:var(--forest); display:block; }
.role-row span{ color:var(--muted); font-size:.92rem; }
.role-row .btn{ flex:none; }
@media (max-width:560px){ .role-row{ flex-direction:column; align-items:flex-start; } .role-row .btn{ width:100%; } }

/* ---------- locations / maps ---------- */
.loc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; margin-top:2rem; }
.loc-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; }
.loc-card__map{ border:0; width:100%; height:260px; display:block; filter:saturate(1.02); }
.loc-card__body{ padding:1.3rem 1.5rem 1.5rem; }
.loc-card__body h3{ font-size:1.3rem; margin-bottom:.5rem; }
.loc-card__addr{ color:var(--muted); font-size:.98rem; line-height:1.5; }
.loc-card__meta{ display:flex; flex-wrap:wrap; gap:1.2rem; margin-top:1rem; }
.loc-card__meta a{ display:inline-flex; align-items:center; gap:.45rem; font-weight:700; color:var(--lime-700); font-size:.95rem; }
.loc-card__meta svg{ width:17px;height:17px; }
@media (max-width:760px){ .loc-grid{ grid-template-columns:1fr; } }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 940px){
  .hero__grid{ grid-template-columns:1fr; }
  .hero__media{ order:-1; }
  .hero__media img{ height:300px; }
  .media-row{ grid-template-columns:1fr; }
  .media-row--rev .media-row__media{ order:0; }
  .steps{ grid-template-columns:1fr; }
  .svc-grid{ grid-template-columns:1fr; }
  .cards-3{ grid-template-columns:1fr; }
  .cards-2{ grid-template-columns:1fr; }
  .stat-row{ grid-template-columns:repeat(3,1fr); }
  .footer__grid{ grid-template-columns:1fr 1fr; }
  .transfer-grid{ grid-template-columns:1fr; }
  .field-grid{ grid-template-columns:1fr; }
}
@media (max-width: 1024px){
  .nav__links, .nav__actions .nav__tel, .nav__actions .btn{ display:none; }
  .nav__toggle{ display:inline-flex; align-items:center; justify-content:center; margin-left:auto;
    width:46px;height:46px;border-radius:12px; border:1px solid var(--line); background:#fff; cursor:pointer; }
  .nav__toggle svg{ width:24px;height:24px; color:var(--forest); }
}
@media (max-width: 560px){
  body{ font-size:16px; }
  .stat-row{ grid-template-columns:1fr; gap:.4rem; }
  .footer__grid{ grid-template-columns:1fr; gap:1.6rem; }
  .hero__badge{ left:8px; }
  .btn--block-sm{ width:100%; }
  .hero__cta .btn{ flex:1; }
  /* topbar bullets: stack cleanly instead of an awkward 2 + 1 wrap */
  .topbar .wrap{ flex-direction:column; align-items:flex-start; gap:.45rem;
    padding-block:.6rem; }
  .topbar .wrap > span{ display:inline-flex; align-items:center; gap:.55rem; }
  /* hero chips: full-width, consistently aligned buttons */
  .chips{ flex-direction:column; align-items:stretch; gap:.6rem; }
  .chip{ width:100%; justify-content:flex-start; padding:.7rem 1rem; }
}

/* =========================================================
   TWEAKS — expressive controls (palette mood / air / shape)
   Driven by data-* attributes on <html> from tweaks-app.jsx.
   Defaults (purple / compact / soft) live in :root above.
   ========================================================= */

/* --- Palette mood: swaps the dark anchor + neutrals; lime stays brand --- */
:root[data-palette="evergreen"]{
  --forest:#184d33; --forest-700:#0f3322; --forest-600:#236b46;
  --ink:#16261d; --muted:#566a5e; --muted-2:#8a988d;
  --mint-50:#f1f7ec; --mint-100:#e2efd2; --surf:#f4f9f1;
  --line:#e1ebda; --line-2:#cedcc6;
  --shadow-sm:0 1px 2px rgba(16,40,28,.05),0 2px 8px rgba(16,40,28,.05);
  --shadow:0 6px 22px rgba(16,40,28,.09); --shadow-lg:0 18px 48px rgba(16,40,28,.16);
}
:root[data-palette="slate"]{
  --forest:#2e3a4f; --forest-700:#1e2838; --forest-600:#44546e;
  --ink:#1d242f; --muted:#5a6472; --muted-2:#8b94a3;
  --mint-50:#eef2f7; --mint-100:#dde6f1; --surf:#f5f7fb;
  --line:#e3e8f0; --line-2:#cfd8e4;
  --shadow-sm:0 1px 2px rgba(24,32,48,.05),0 2px 8px rgba(24,32,48,.05);
  --shadow:0 6px 22px rgba(24,32,48,.1); --shadow-lg:0 18px 48px rgba(24,32,48,.16);
}

/* --- Air: how much the layout breathes --- */
:root[data-density="comfy"]{ --sy:clamp(3.5rem,6vw,5.5rem); }
:root[data-density="airy"]{ --sy:clamp(4.6rem,8.5vw,7.5rem); }
[data-density="comfy"] .steps,[data-density="comfy"] .svc-grid,
[data-density="comfy"] .cards-3,[data-density="comfy"] .cards-2{ gap:1.6rem; }
[data-density="airy"] .steps,[data-density="airy"] .svc-grid,
[data-density="airy"] .cards-3,[data-density="airy"] .cards-2{ gap:2.25rem; }
[data-density="airy"] .media-row{ gap:clamp(2rem,6vw,5rem); }
[data-density="airy"] .shead{ margin-bottom:.6rem; }
[data-density="comfy"] .step,[data-density="comfy"] .icard{ padding:1.7rem 1.6rem; }
[data-density="airy"] .step,[data-density="airy"] .icard{ padding:2.1rem 1.9rem; }

/* --- Shape language: corner + shadow personality --- */
:root[data-shape="crisp"]{
  --radius:6px; --radius-sm:4px; --radius-lg:10px;
  --shadow-sm:0 1px 2px rgba(20,20,40,.06);
  --shadow:0 3px 10px rgba(20,20,40,.09); --shadow-lg:0 8px 22px rgba(20,20,40,.13);
}
[data-shape="crisp"] .btn{ border-radius:7px; }
[data-shape="crisp"] .chip,[data-shape="crisp"] .state,[data-shape="crisp"] .hero__eyebrow-chip,
[data-shape="crisp"] .wz__dot .num,[data-shape="crisp"] .step__n,[data-shape="crisp"] .footer__social a{ border-radius:5px; }
:root[data-shape="pill"]{ --radius:22px; --radius-sm:16px; --radius-lg:34px; }
[data-shape="pill"] .chip,[data-shape="pill"] .state{ border-radius:999px; }

/* =========================================================
   SERVICES EXPLORER — interactive tabbed services (services.html)
   ========================================================= */
.svc-explorer{ display:grid; grid-template-columns:300px 1fr; gap:1.4rem; margin-top:2.2rem; align-items:start; }
.svc-tabs{ display:flex; flex-direction:column; gap:.55rem; position:sticky; top:88px; }
.svc-tab{ display:flex; align-items:center; gap:.85rem; text-align:left; width:100%;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:.95rem 1.1rem;
  font-family:var(--sans); font-weight:600; font-size:1rem; color:var(--forest); cursor:pointer;
  transition:transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease; }
.svc-tab .ti{ width:40px; height:40px; border-radius:11px; background:var(--mint-50); display:grid; place-items:center; flex:none; transition:.16s; }
.svc-tab .ti svg{ width:21px; height:21px; color:var(--lime-700); }
.svc-tab:hover{ border-color:var(--lime); transform:translateX(3px); }
.svc-tab.is-active{ background:var(--forest); color:#fff; border-color:var(--forest); box-shadow:var(--shadow); }
.svc-tab.is-active .ti{ background:rgba(255,255,255,.14); }
.svc-tab.is-active .ti svg{ color:var(--lime); }
.svc-panels{ position:relative; min-height:340px; }
.svc-panel{ display:none; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3vw,2.5rem); box-shadow:var(--shadow-sm); }
.svc-panel.is-active{ display:block; animation:svcfade .34s cubic-bezier(.2,.7,.3,1); }
@keyframes svcfade{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .svc-panel.is-active{ animation:none; } }
.svc-panel .p-kicker{ font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--lime-700); display:block; margin-bottom:.5rem; }
.svc-panel h3{ font-size:clamp(1.4rem,2.4vw,1.8rem); margin-bottom:.6rem; }
.svc-panel > p{ color:var(--muted); }
.svc-panel > p + p{ margin-top:.7rem; }
.svc-count{ margin-left:auto; font-size:.8rem; font-weight:700; color:var(--muted-2); }
.svc-tab.is-active .svc-count{ color:rgba(255,255,255,.6); }
@media (max-width: 840px){
  .svc-explorer{ grid-template-columns:1fr; gap:1rem; }
  .svc-tabs{ position:static; flex-direction:row; flex-wrap:nowrap; overflow-x:auto; gap:.5rem;
    padding-bottom:.5rem; scrollbar-width:thin; -webkit-overflow-scrolling:touch; }
  .svc-tab{ flex:0 0 auto; padding:.7rem .95rem; }
  .svc-tab .ti{ display:none; }
  .svc-count{ display:none; }
  .svc-panels{ min-height:0; }
}

/* =========================================================
   PrEP LANDING (prep-transfer.html)
   ========================================================= */
.prep-hero{ background:
   radial-gradient(120% 120% at 85% -10%, var(--mint-100) 0%, rgba(233,242,216,0) 48%), var(--white); overflow:hidden; }
.prep-hero__grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center; }
.prep-hero h1{ margin:1rem 0 0; }
.prep-collage{ display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(3, 110px); gap:.8rem; }
.prep-collage img{ width:100%; height:100%; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow); }
.prep-collage .tall{ grid-row:span 2; }
.prep-collage .wide{ grid-column:span 2; }
.prep-badges{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1.5rem; }
.prep-badge{ display:inline-flex; align-items:center; gap:.5rem; background:#fff; border:1px solid var(--line);
  border-radius:999px; padding:.5rem 1rem; font-weight:600; font-size:.92rem; color:var(--forest); box-shadow:var(--shadow-sm); }
.prep-badge svg{ width:17px; height:17px; color:var(--lime-700); }
.prep-form-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg); padding:clamp(1.5rem,3vw,2.4rem); }
@media (max-width: 940px){
  .prep-hero__grid{ grid-template-columns:1fr; }
  .prep-collage{ grid-template-rows:repeat(3, 90px); }
}
