  :root{
    --navy:#102a4c;
    --navy-deep:#0a1c33;
    --navy-soft:#2b4a75;
    /* Three teals, three jobs:
       --teal        fills, dots, borders, button backgrounds (decorative, or a
                     background carrying its own dark text - not the measured thing)
       --teal-accent LARGE text, >=18.66px bold, AA threshold 3.0
                     3.76:1 on --paper, 3.13:1 on --band
       --teal-ink    SMALL text, AA threshold 4.5
                     5.66:1 on --paper, 4.71:1 on --band
       The brand teal #3fa9a4 measures 2.72 / 2.26 and fails as text on both. */
    --teal:#3fa9a4;
    --teal-accent:#318e8a;
    --teal-ink:#256f6b;
    --teal-wash:#dcefee;
    --marigold:#e8a723;
    --coral:#e0603a;
    --cream:#f6efe4;
    --band:#dde7f2;
    --paper:#fdfaf5;
    --card:#ffffff;
    --ink:#16202e;
    --ink-soft:#56657a;
    --ink-faint:#8494a8;
    --rule:rgba(16,42,76,.14);
    --rule-soft:rgba(16,42,76,.07);
    --shadow-sm:0 1px 3px rgba(16,42,76,.07);
    --shadow-lg:0 18px 50px -26px rgba(16,42,76,.42);
    --r:14px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --navy:#8fb3e0;
      --navy-deep:#0c1622;
      --navy-soft:#a9c4e8;
      /* on dark surfaces the light teal already passes, so all three match */
      --teal:#5cc9c3;
      --teal-accent:#5cc9c3;
      --teal-ink:#5cc9c3;
      --teal-wash:#14322f;
      --marigold:#f0bc4e;
      --coral:#f07d5b;
      --cream:#16202b;
      --band:#182334;
      --paper:#101822;
      --card:#18222e;
      --ink:#e8eef6;
      --ink-soft:#a3b2c4;
      --ink-faint:#7c8b9e;
      --rule:rgba(232,238,246,.17);
      --rule-soft:rgba(232,238,246,.09);
      --shadow-sm:0 1px 3px rgba(0,0,0,.5);
      --shadow-lg:0 18px 50px -26px rgba(0,0,0,.8);
    }
  }
  :root[data-theme="dark"]{
    --navy:#8fb3e0; --navy-deep:#0c1622; --navy-soft:#a9c4e8;
    --teal:#5cc9c3; --teal-accent:#5cc9c3; --teal-ink:#5cc9c3;
    --teal-wash:#14322f; --marigold:#f0bc4e; --coral:#f07d5b;
    --cream:#16202b; --band:#182334; --paper:#101822; --card:#18222e;
    --ink:#e8eef6; --ink-soft:#a3b2c4; --ink-faint:#7c8b9e;
    --rule:rgba(232,238,246,.17); --rule-soft:rgba(232,238,246,.09);
    --shadow-sm:0 1px 3px rgba(0,0,0,.5); --shadow-lg:0 18px 50px -26px rgba(0,0,0,.8);
  }

  *{margin:0;padding:0;box-sizing:border-box}
  body{font-family:'Karla',system-ui,sans-serif;background:var(--paper);color:var(--ink);
    line-height:1.65;-webkit-font-smoothing:antialiased}
  h1,h2,h3{font-family:'Archivo',system-ui,sans-serif;font-weight:800;line-height:1.05;
    letter-spacing:-.035em;text-wrap:balance}
  .eyebrow{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em}
  img{max-width:100%}
  a{color:inherit}

  .shell{max-width:74rem;margin:0 auto;padding-left:22px;padding-right:22px}

  /* ---------- photo placeholders ---------- */
  .ph{background:var(--teal-wash);border:1.5px dashed var(--teal);border-radius:var(--r);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;gap:4px;padding:22px;color:var(--navy);min-height:150px;position:relative}
  .ph::before{content:"PHOTO";position:absolute;top:10px;left:12px;font-size:.58rem;
    font-weight:800;letter-spacing:.16em;color:var(--teal-ink);opacity:.85}
  .ph b{font-family:'Archivo',sans-serif;font-weight:700;letter-spacing:-.02em;font-size:1.02rem;line-height:1.2}
  .ph span{font-size:.78rem;color:var(--ink-soft);max-width:26ch;line-height:1.4}
  .ph.dark{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.4);color:#fff}
  .ph.dark span{color:rgba(255,255,255,.72)}
  .ph.dark::before{color:rgba(255,255,255,.6)}

  /* ---------- provider portrait ---------- */
  /* height:auto is load-bearing: the img carries width/height attributes so the
     layout reserves space before it loads, and those map to presentational
     width/height properties. aspect-ratio only computes a dimension when the
     other is auto, so without this the attribute height wins and the portrait
     renders stretched. Same reason .shot in photos.css sets height:auto.
     object-position favours the top of the frame so the face survives any
     future change of ratio. */
  .portrait{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;
    object-position:center top;border-radius:var(--r);box-shadow:var(--shadow-sm)}
  .hero-art .portrait{position:relative;z-index:1;width:min(74%,19rem);
    border-radius:200px 200px 20px 20px;box-shadow:var(--shadow-lg)}
  .prose .portrait{max-width:22rem;margin-bottom:28px}

  /* ---------- nav ---------- */
  nav{background:var(--paper);border-bottom:1px solid var(--rule-soft);position:relative;z-index:5}
  .nav-in{display:flex;align-items:center;gap:22px;padding-block:16px;flex-wrap:wrap}
  .logo{font-family:'Archivo',sans-serif;font-weight:800;font-size:1.22rem;letter-spacing:-.04em;
    color:var(--navy);display:flex;align-items:center;gap:8px}
  .logo .dot{width:26px;height:26px;border-radius:50%;background:var(--teal);display:grid;
    place-items:center;font-size:.72rem;color:#04211f;font-weight:800;letter-spacing:0}
  .logo span{color:var(--teal-accent)}
  .nav-links{display:flex;gap:19px;font-size:.87rem;font-weight:500;color:var(--ink-soft);flex-wrap:wrap}
  .nav-links a{text-decoration:none;display:inline-flex;align-items:center;gap:4px}
  .nav-links a:hover{color:var(--navy)}
  .nav-links .car{font-size:.55rem;opacity:.5}
  .nav-sp{flex:1 1 auto}
  .nav-icon{width:34px;height:34px;border-radius:50%;border:1px solid var(--rule);
    display:grid;place-items:center;color:var(--ink-soft);font-size:.9rem;text-decoration:none}
  .btn{display:inline-block;border:none;border-radius:999px;font-family:'Archivo',sans-serif;letter-spacing:-.01em;
    font-weight:700;font-size:.86rem;padding:11px 22px;cursor:pointer;text-decoration:none;
    transition:transform .15s ease}
  .btn:hover{transform:translateY(-1px)}
  .btn-gold{background:var(--marigold);color:#2a1c00}
  .btn-teal{background:var(--teal);color:#04211f}
  .btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
  .btn-outline{background:transparent;color:var(--navy);border:1.5px solid var(--rule)}

  /* ---------- hero ---------- */
  .hero{background:var(--paper);padding-block:52px 112px;position:relative;overflow:hidden}
  /* soft contour pattern, drawn not imported */
  .hero .contours{position:absolute;inset:0;opacity:.5;pointer-events:none}
  .hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
    gap:44px;align-items:center;position:relative;z-index:2}
  @media(max-width:880px){.hero-grid{grid-template-columns:1fr;gap:34px}}

  .tagpill{display:inline-flex;align-items:center;gap:7px;background:var(--card);
    border:1px solid var(--rule);border-radius:999px;padding:6px 15px 6px 11px;
    font-size:.71rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
  .tagpill i{width:15px;height:15px;border-radius:50%;background:var(--teal);display:grid;
    place-items:center;font-style:normal;font-size:.68rem;color:#04211f;line-height:1}

  .hero h1{font-size:clamp(2.4rem,5.6vw,4rem);margin:20px 0 18px;color:var(--navy)}
  .hero h1 em{font-style:normal;color:var(--teal-accent)}
  .hero p.lede{font-size:1.05rem;color:var(--ink-soft);max-width:44ch}
  .hero-cta{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap;align-items:center}
  .callpill{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;
    font-size:.93rem;color:var(--navy)}
  .callpill i{width:38px;height:38px;border-radius:50%;background:var(--teal-wash);
    border:1px solid var(--teal);display:grid;place-items:center;font-style:normal;
    font-size:.95rem;color:var(--navy)}

  /* portrait sits inside a big tinted circle, per the reference layouts */
  .hero-art{position:relative;display:grid;place-items:center;min-height:420px}
  .hero-art .disc{position:absolute;width:min(100%,26rem);aspect-ratio:1;border-radius:50%;
    background:var(--teal-wash);z-index:0}
  .hero-art .ph{position:relative;z-index:1;width:min(74%,19rem);min-height:320px;
    background:transparent;border-color:var(--navy);border-radius:200px 200px 20px 20px}
  .badge{position:absolute;z-index:3;bottom:12px;left:0;background:var(--card);
    border-radius:999px;box-shadow:var(--shadow-lg);border:1px solid var(--rule-soft);
    padding:11px 18px 11px 13px;display:flex;align-items:center;gap:11px;max-width:15rem}
  .badge .yrs{font-family:'Archivo',sans-serif;font-weight:800;font-size:1.5rem;
    letter-spacing:-.045em;color:var(--navy);line-height:1}
  .badge p{font-size:.71rem;line-height:1.3;color:var(--ink-soft)}
  @media(max-width:520px){.badge{position:static;margin-top:14px;max-width:none}}

  /* ---------- booking bar ---------- */
  .bookbar-wrap{margin-top:-58px;position:relative;z-index:3}
  .bookbar{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow-lg);
    border:1px solid var(--rule-soft);padding:20px 22px}
  .bookbar .bb-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:14px}
  .bookbar .bb-head .eyebrow{color:var(--teal-ink)}
  .bookbar .bb-head small{font-size:.78rem;color:var(--ink-faint)}
  .bb-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end}
  @media(max-width:800px){.bb-row{grid-template-columns:1fr}}
  .fld{display:flex;flex-direction:column;gap:5px}
  .fld label{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
  .fld select,.fld input{font-family:inherit;font-size:.9rem;padding:11px 12px;border-radius:9px;
    border:1px solid var(--rule);background:var(--paper);color:var(--ink);width:100%}
  .fld select:focus,.fld input:focus{outline:2px solid var(--teal);outline-offset:1px}

  /* ---------- stat row ---------- */
  .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:0;
    margin-top:52px;border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;background:var(--card)}
  .stat{padding:22px 24px;border-right:1px solid var(--rule-soft)}
  .stat:last-child{border-right:none}
  @media(max-width:760px){.stat{border-right:none;border-bottom:1px solid var(--rule-soft)}
    .stat:last-child{border-bottom:none}}
  .stat .n{font-family:'Archivo',sans-serif;font-size:2.05rem;font-weight:800;letter-spacing:-.045em;line-height:1;
    color:var(--navy);font-variant-numeric:tabular-nums}
  .stat .l{font-size:.82rem;color:var(--ink-soft);margin-top:7px;line-height:1.4}

  section.band{padding-block:72px}
  /* Tinted bands are a deeper blue than the warm cream they replaced, so the
     alternating sections read as distinct blocks rather than near-white.
     #dde7f2 is the deepest value that keeps --ink-soft body copy at AA
     (4.74:1); going darker would require darkening --ink-soft too. */
  .band.tint{background:var(--band)}
  .sec-head{max-width:56ch;margin-bottom:34px}
  .sec-head .eyebrow{color:var(--teal-ink)}
  .sec-head h2{font-size:clamp(1.7rem,3.4vw,2.3rem);margin:12px 0 12px}
  .sec-head p{color:var(--ink-soft)}

  /* ---------- split blocks ---------- */
  .split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:46px;align-items:center}
  @media(max-width:860px){.split{grid-template-columns:1fr;gap:28px}}
  .split.flip .txt{order:2}
  @media(max-width:860px){.split.flip .txt{order:0}}
  .split h2{font-size:clamp(1.6rem,3.2vw,2.15rem);margin-bottom:14px}
  .split p{color:var(--ink-soft);margin-bottom:12px}
  .split .eyebrow{color:var(--teal-ink);margin-bottom:10px;display:block}
  .ph.round{border-radius:50%;aspect-ratio:1;max-width:26rem;margin-inline:auto;min-height:0}
  .credbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
  .credbar span{background:var(--card);border:1px solid var(--rule);border-radius:999px;
    padding:6px 14px;font-size:.79rem;font-weight:600}

  /* ---------- services ---------- */
  .svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:18px}
  .svc{background:var(--card);border:1px solid var(--rule-soft);border-radius:var(--r);
    overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
  .svc .ph{border-radius:0;border:none;border-bottom:1.5px dashed var(--teal);min-height:132px}
  .svc .sv-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
  .svc h3{font-size:1.12rem}
  .svc p{font-size:.88rem;color:var(--ink-soft);flex:1}
  .svc .go{font-size:.82rem;font-weight:700;color:var(--teal-ink);text-decoration:none}

  /* ---------- clinical strip ---------- */
  .clin{background:var(--navy-deep);color:#fff;border-radius:var(--r);padding:34px 34px}
  .clin h2{color:#fff;font-size:1.7rem;margin-bottom:8px}
  .clin > p{color:rgba(255,255,255,.76);max-width:56ch;margin-bottom:22px}
  .clin-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:14px}
  .clin-item{background:rgba(255,255,255,.07);border-radius:11px;padding:16px 18px}
  .clin-item b{display:block;font-family:'Archivo',sans-serif;font-weight:700;letter-spacing:-.02em;font-size:1.02rem;margin-bottom:4px}
  .clin-item span{font-size:.83rem;color:rgba(255,255,255,.72);line-height:1.45}

  /* ---------- visit / map ---------- */
  .visit-media{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  @media(max-width:800px){.visit-media{grid-template-columns:1fr}}
  .visit-media .ph{min-height:290px}
  .ph.map{background:var(--card);border-style:solid;border-color:var(--rule)}
  .ph.map::before{content:"MAP";color:var(--ink-faint)}
  .visit-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:18px;margin-top:22px}
  .vf b{display:block;font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
    color:var(--ink-faint);margin-bottom:5px}
  .vf p{font-size:.93rem}

  /* ---------- reviews ---------- */
  .rev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:16px}
  .rev{background:var(--card);border:1px solid var(--rule-soft);border-radius:var(--r);
    padding:22px;box-shadow:var(--shadow-sm)}
  .stars{color:var(--marigold);font-size:.9rem;letter-spacing:.1em;margin-bottom:10px}
  .rev p{font-size:1.0rem;line-height:1.5;margin-bottom:12px}
  .rev cite{font-style:normal;font-size:.82rem;color:var(--ink-faint);font-weight:600}

  /* ---------- final cta ---------- */
  /* border added so the card still separates from the deeper tint band behind it */
  .final{background:var(--teal-wash);border:1px solid var(--rule-soft);border-radius:var(--r);
    padding:44px 38px;text-align:center}
  .final h2{font-size:clamp(1.7rem,3.4vw,2.3rem);margin-bottom:12px}
  .final p{color:var(--ink-soft);max-width:50ch;margin:0 auto 24px}
  .final .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

  footer.site{background:var(--navy-deep);color:rgba(255,255,255,.72);padding-block:40px;margin-top:0}
  .f-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:26px}
  footer.site b{color:#fff;display:block;margin-bottom:9px;font-size:.78rem;
    letter-spacing:.12em;text-transform:uppercase}
  footer.site p,footer.site li{font-size:.87rem;line-height:1.7}
  footer.site ul{list-style:none}


/* =========================================================
   INTERIOR PAGE COMPONENTS
   ========================================================= */

/* current nav item */
.nav-links a[aria-current="page"]{color:var(--navy);font-weight:700}

/* ---------- page hero (interior) ---------- */
.phero{background:var(--paper);padding-block:46px 52px;position:relative;overflow:hidden;
  border-bottom:1px solid var(--rule-soft)}
.phero .contours{position:absolute;inset:0;opacity:.5;pointer-events:none}
.phero .shell{position:relative;z-index:2}
.phero h1{font-size:clamp(2.1rem,4.6vw,3.3rem);margin:18px 0 16px;color:var(--navy);max-width:20ch}
.phero h1 em{font-style:normal;color:var(--teal-accent)}
.phero p.lede{font-size:1.05rem;color:var(--ink-soft);max-width:52ch}
.phero .hero-cta{display:flex;gap:14px;margin-top:26px;flex-wrap:wrap;align-items:center}

/* breadcrumb */
.crumb{font-size:.78rem;color:var(--ink-faint);display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--navy)}
.crumb span{opacity:.5}

/* ---------- prose ---------- */
.prose{max-width:62ch}
.prose h2{font-size:clamp(1.45rem,2.9vw,1.95rem);margin:34px 0 12px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.1rem;margin:24px 0 8px}
.prose p{color:var(--ink-soft);margin-bottom:14px}
.prose ul,.prose ol{color:var(--ink-soft);margin:0 0 16px 1.1rem}
.prose li{margin-bottom:7px}
.prose strong{color:var(--ink);font-weight:700}

/* two-column: prose + sticky sidebar */
.page-grid{display:grid;grid-template-columns:minmax(0,1fr) 20rem;gap:52px;align-items:start}
@media(max-width:940px){.page-grid{grid-template-columns:minmax(0,1fr);gap:34px}}
.side{position:sticky;top:22px;display:flex;flex-direction:column;gap:16px}
@media(max-width:940px){.side{position:static}}
.sidecard{background:var(--card);border:1px solid var(--rule-soft);border-radius:var(--r);
  padding:22px;box-shadow:var(--shadow-sm)}
.sidecard h3{font-size:1.05rem;margin-bottom:8px}
.sidecard p{font-size:.88rem;color:var(--ink-soft);margin-bottom:14px}
.sidecard .btn{width:100%;text-align:center}
.sidecard ul{list-style:none;font-size:.88rem;color:var(--ink-soft)}
.sidecard ul li{padding-block:7px;border-bottom:1px solid var(--rule-soft)}
.sidecard ul li:last-child{border-bottom:none}
.sidecard ul a{text-decoration:none}
.sidecard ul a:hover{color:var(--navy)}

/* ---------- feature / step cards ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--rule-soft);border-radius:var(--r);
  padding:22px;box-shadow:var(--shadow-sm)}
.card h3{font-size:1.05rem;margin-bottom:7px}
.card p{font-size:.88rem;color:var(--ink-soft)}
.card .num{font-family:'Archivo',sans-serif;font-weight:800;font-size:.72rem;letter-spacing:.14em;
  color:var(--teal-ink);display:block;margin-bottom:9px}

/* pill list */
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pills span{background:var(--card);border:1px solid var(--rule);border-radius:999px;
  padding:7px 15px;font-size:.82rem;font-weight:600}

/* ---------- menu table ---------- */
.menu-tbl{width:100%;border-collapse:collapse;background:var(--card);
  border:1px solid var(--rule-soft);border-radius:var(--r);overflow:hidden}
.menu-tbl th{text-align:left;font-family:'Archivo',sans-serif;font-size:.7rem;font-weight:800;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);
  padding:14px 18px;border-bottom:1px solid var(--rule)}
.menu-tbl td{padding:15px 18px;border-bottom:1px solid var(--rule-soft);
  font-size:.92rem;vertical-align:top}
.menu-tbl tr:last-child td{border-bottom:none}
.menu-tbl td b{font-family:'Archivo',sans-serif;font-weight:700;letter-spacing:-.02em}
.menu-tbl td.note{color:var(--ink-soft);font-size:.87rem}
@media(max-width:700px){
  .menu-tbl,.menu-tbl tbody,.menu-tbl tr,.menu-tbl td{display:block;width:100%}
  .menu-tbl thead{display:none}
  .menu-tbl tr{border-bottom:1px solid var(--rule);padding-block:6px}
  .menu-tbl tr:last-child{border-bottom:none}
  .menu-tbl td{border-bottom:none;padding:5px 18px}
}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--rule-soft)}
.faq details{border-bottom:1px solid var(--rule-soft)}
.faq summary{cursor:pointer;list-style:none;padding:17px 0;font-family:'Archivo',sans-serif;
  font-weight:700;letter-spacing:-.02em;font-size:1.02rem;color:var(--navy);
  display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.3rem;color:var(--teal-ink);line-height:1;flex:none}
.faq details[open] summary::after{content:"\2013"}
.faq details p{color:var(--ink-soft);font-size:.94rem;padding-bottom:18px;max-width:64ch}

/* ---------- booking embed ---------- */
.embed-wrap{background:var(--card);border:1px solid var(--rule-soft);border-radius:var(--r);
  box-shadow:var(--shadow-sm);padding:10px;overflow:hidden;max-width:100%}
/* DrChrono ships a fixed 650px widget. Scale it down on narrow screens so it
   never forces a horizontal page scroll. */
.embed-scale{width:650px;transform-origin:top left;margin:0 auto}
.embed-scale iframe{display:block;width:650px;height:1180px;border:0}
@media(max-width:700px){
  .embed-wrap{padding:6px}
  .embed-scale{transform:scale(.72);width:650px;height:850px;margin:0}
}
@media(max-width:480px){
  .embed-scale{transform:scale(.55);height:650px}
}
.embed-note{font-size:.84rem;color:var(--ink-soft);margin-top:14px;max-width:62ch}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px;align-items:start}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;gap:30px}}
.contact-rows{list-style:none}
.contact-rows li{padding-block:16px;border-bottom:1px solid var(--rule-soft)}
.contact-rows li:last-child{border-bottom:none}
.contact-rows b{display:block;font-size:.7rem;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-faint);margin-bottom:5px}
.contact-rows a{font-weight:600}
.mapframe{border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;background:var(--card)}
.mapframe iframe{display:block;width:100%;height:340px;border:0}

/* ---------- related strip ---------- */
.related{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:14px}
.related a{background:var(--card);border:1px solid var(--rule-soft);border-radius:var(--r);
  padding:18px 20px;text-decoration:none;box-shadow:var(--shadow-sm);display:block}
.related a b{display:block;font-family:'Archivo',sans-serif;font-weight:700;letter-spacing:-.02em;
  font-size:1rem;color:var(--navy);margin-bottom:4px}
.related a span{font-size:.85rem;color:var(--ink-soft)}

/* ---------- alert / medical note ---------- */
.mednote{background:var(--teal-wash);border-left:3px solid var(--teal);border-radius:8px;
  padding:16px 18px;font-size:.88rem;color:var(--ink-soft);max-width:64ch}
.mednote b{color:var(--ink)}

/* ---------- mobile nav ---------- */
.nav-toggle{display:none;background:none;border:1px solid var(--rule);border-radius:9px;
  width:40px;height:38px;color:var(--navy);font-size:1.1rem;cursor:pointer;line-height:1}
@media(max-width:860px){
  .nav-toggle{display:block;order:3}
  .nav-in{gap:12px}
  .nav-links{display:none;order:5;flex-basis:100%;flex-direction:column;gap:0;padding-bottom:10px}
  .nav-links.open{display:flex}
  .nav-links a{padding-block:11px;border-bottom:1px solid var(--rule-soft);font-size:.95rem}
  .nav-icon{display:none}
}

/* content placeholder (awaiting client-supplied info, staging only) */
.ph.info{min-height:0;padding:18px;text-align:left;align-items:flex-start;justify-content:flex-start;
  background:var(--card);border-color:var(--marigold)}
.ph.info::before{content:"NEEDED FROM CLIENT";color:var(--marigold);position:static;margin-bottom:8px}
.ph.info span{max-width:none}

/* footer wordmark sits on navy — force it light */
footer.site .logo{color:#fff}
footer.site .logo .dot{background:var(--teal);color:#04211f}
footer.site a{text-decoration:none}
footer.site a:hover{color:#fff}
