/* ============ TOKENS ============ */
  :root{
    --ink:        #122622;
    --ink-soft:   #46615A;
    --ink-faint:  #7C9089;
    --bg:         #FBFAF3;
    --surface:    #EAF3ED;
    --surface-2:  #DBEEE2;
    --brand:      #0E9668;
    --brand-2:    #0B7A55;
    --accent:     #F2622E;
    --accent-soft:#FF8B5E;
    --line:       rgba(18,38,34,0.14);
    --line-strong:rgba(18,38,34,0.28);
    --on-brand:   #F5FBF8;
    --logo-blue:  #1E4DB7;
    --logo-navy:  #1B2B4B;
    --logo-green: #2E9B47;
    --logo-leaf:  #63B946;
    --shadow:     0 18px 40px -22px rgba(14,150,104,0.3);
    --radius-s:   3px;
    --radius-m:   6px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ink:        #EAF3ED;
      --ink-soft:   #B9CFC5;
      --ink-faint:  #7C9089;
      --bg:         #0A1613;
      --surface:    #10221D;
      --surface-2:  #163227;
      --brand:      #17B37E;
      --brand-2:    #0E8A61;
      --accent:     #FF7A4D;
      --accent-soft:#C2481F;
      --line:       rgba(234,243,237,0.14);
      --line-strong:rgba(234,243,237,0.28);
      --on-brand:   #F5FBF8;
      --logo-blue:  #7FA2F5;
    --logo-navy:  #E6EEF8;
      --logo-green: #4CC46A;
      --logo-leaf:  #7FD05E;
      --shadow:     0 18px 44px -20px rgba(0,0,0,0.6);
    }
  }
  :root[data-theme="dark"]{
    --ink:        #EAF3ED;
    --ink-soft:   #B9CFC5;
    --ink-faint:  #7C9089;
    --bg:         #0A1613;
    --surface:    #10221D;
    --surface-2:  #163227;
    --brand:      #17B37E;
    --brand-2:    #0E8A61;
    --accent:     #FF7A4D;
    --accent-soft:#C2481F;
    --line:       rgba(234,243,237,0.14);
    --line-strong:rgba(234,243,237,0.28);
    --on-brand:   #F5FBF8;
    --logo-blue:  #7FA2F5;
    --logo-navy:  #E6EEF8;
    --logo-green: #4CC46A;
    --logo-leaf:  #7FD05E;
    --shadow:     0 18px 44px -20px rgba(0,0,0,0.6);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:"Libre Franklin",-apple-system,"Segoe UI",sans-serif;
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:"Lora",Georgia,"Times New Roman",serif;
    font-weight:600;
    color:var(--ink);
    margin:0;
    text-wrap:balance;
    letter-spacing:-0.01em;
  }
  h1{line-height:1.12;}
  h2,h3{line-height:1.25;}
  p{margin:0;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  button{font-family:inherit;}
  :focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

  .mono{
    font-family:"IBM Plex Mono",ui-monospace,monospace;
    font-variant-numeric:tabular-nums;
  }
  .eyebrow{
    font-family:"IBM Plex Mono",ui-monospace,monospace;
    font-size:0.72rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--accent);
  }
  .wrap{
    max-width:1160px;
    margin:0 auto;
    padding:0 clamp(20px,4vw,48px);
  }
  .hr{border:none;border-top:1px solid var(--line);}

  /* ============ HEADER ============ */
  .site-header{
    position:sticky;top:0;z-index:40;
    background:var(--bg);
    border-bottom:1px solid var(--line-strong);
  }
  .header-top{
    background:var(--brand);
    color:var(--on-brand);
  }
  .header-top .wrap{
    display:flex;justify-content:space-between;align-items:center;
    padding-top:6px;padding-bottom:6px;
    font-family:"IBM Plex Mono",monospace;
    font-size:0.72rem;
    letter-spacing:0.04em;
    gap:16px;
    flex-wrap:wrap;
  }
  .header-top a:hover{color:var(--accent-soft);}
  .header-top .sep{opacity:0.5;margin:0 2px;}
  .header-main .wrap{
    display:flex;align-items:center;justify-content:space-between;
    gap:24px;
    padding-top:10px;padding-bottom:10px;
  }
  .brand{display:flex;align-items:center;gap:12px;flex:none;}
  .brand-mark{
    width:44px;height:44px;flex:none;
    border:1.5px solid var(--brand);
    border-radius:var(--radius-s);
    display:flex;align-items:center;justify-content:center;
    font-family:"Lora",serif;font-weight:600;font-size:1.15rem;
    color:var(--brand);
    background:var(--surface);
  }
  .brand-name{font-family:"Lora",serif;font-weight:600;font-size:1.22rem;line-height:1.1;white-space:nowrap;}
  .brand-sub{
    font-family:"IBM Plex Mono",monospace;font-size:0.64rem;
    letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-faint);
  }
  nav.primary-nav{display:flex;align-items:center;gap:2px;}
  nav.primary-nav{flex:1;justify-content:center;}
  nav.primary-nav a{
    padding:8px 11px;font-size:0.9rem;font-weight:500;color:var(--ink-soft);
    border-radius:var(--radius-s);
    white-space:nowrap;
    transition:color .15s ease, background .15s ease;
  }
  nav.primary-nav a:hover{color:var(--ink);background:var(--surface);}
  nav.primary-nav a.active{color:var(--brand);}
  :root[data-theme="dark"] nav.primary-nav a.active,
  @media (prefers-color-scheme: dark){ }
  nav.primary-nav a.active{position:relative;}
  nav.primary-nav a.active::after{
    content:"";position:absolute;left:14px;right:14px;bottom:3px;height:2px;background:var(--accent);
  }
  .header-cta{display:flex;align-items:center;gap:10px;flex:none;}
  .menu-toggle{
    display:none;
    width:40px;height:40px;border:1px solid var(--line-strong);border-radius:var(--radius-s);
    background:var(--surface);align-items:center;justify-content:center;cursor:pointer;
  }
  .menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{
    content:"";display:block;width:18px;height:1.5px;background:var(--ink);position:relative;
  }
  .menu-toggle span::before{position:absolute;top:-6px;}
  .menu-toggle span::after{position:absolute;top:6px;}

  .policy-box{margin-top:28px;border:1px solid var(--line-strong);border-left:4px solid var(--accent);border-radius:var(--radius-m);background:var(--surface);padding:20px 24px;max-width:720px;}
  .policy-box h2{font-size:1.25rem;margin-bottom:8px;}
  .policy-box p{color:var(--ink-soft);font-size:0.95rem;}
  .policy-box p + p{margin-top:6px;}
  /* language toggle */
  .lang-toggle{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.14);color:var(--on-brand);border:1px solid rgba(255,255,255,0.35);border-radius:99px;padding:3px 10px;font:inherit;font-family:"IBM Plex Mono",monospace;font-size:0.72rem;letter-spacing:0.04em;cursor:pointer;}
  .lang-toggle:hover{background:rgba(255,255,255,0.26);}
  .lang-toggle svg{width:12px;height:12px;fill:currentColor;}
  .hero-media{display:flex;flex-direction:column;gap:14px;min-width:0;}
  .virtual-callout{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--brand-2);color:var(--on-brand);border-radius:var(--radius-m);box-shadow:var(--shadow);transition:transform .15s ease, background .15s ease;}
  .virtual-callout:hover{background:var(--brand);transform:translateY(-1px);}
  .virtual-callout .vc-icon{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,0.16);display:flex;align-items:center;justify-content:center;flex:none;}
  .virtual-callout .vc-icon svg{width:20px;height:20px;fill:currentColor;}
  .virtual-callout .vc-text{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.3;}
  .virtual-callout .vc-text strong{font-size:0.98rem;}
  .virtual-callout .vc-text span{font-size:0.84rem;color:rgba(245,251,248,0.82);}
  .virtual-callout .vc-go{font-size:0.84rem;font-weight:600;white-space:nowrap;color:#FFD2BF;}
  @media (max-width:480px){ .virtual-callout .vc-go{display:none;} }
  /* virtual consultations */
  .virtual-band{background:var(--brand-2);color:var(--on-brand);scroll-margin-top:110px;}
  .virtual-band h2{color:var(--on-brand);font-size:clamp(1.6rem,2.6vw,2.1rem);margin-top:10px;}
  .virtual-band .eyebrow{color:var(--accent-soft);}
  .virtual-band p{color:rgba(245,251,248,0.82);max-width:60ch;margin-top:12px;}
  .virtual-band .btn-ghost{color:var(--on-brand);border-color:rgba(245,251,248,0.5);}
  .virtual-band .btn-ghost:hover{color:var(--on-brand);border-color:var(--on-brand);background:rgba(255,255,255,0.1);}
  .virtual-steps{margin:18px 0 0;padding-left:20px;color:rgba(245,251,248,0.9);max-width:60ch;}
  .virtual-steps li{margin-bottom:8px;}
  .virtual-note{font-size:0.84rem;}
  .btn-video svg{width:18px;height:18px;fill:currentColor;flex:none;}
  .virtual-inline{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px;padding:16px 20px;border:1px solid var(--line-strong);border-radius:var(--radius-m);background:var(--surface);}
  .virtual-inline > div svg{width:28px;height:28px;fill:var(--brand);}
  .virtual-inline p{flex:1 1 280px;color:var(--ink-soft);font-size:0.94rem;}
  /* shop */
  .shop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line-strong);border:1px solid var(--line-strong);}
  .shop-card{background:var(--bg);padding:24px;display:flex;flex-direction:column;gap:10px;}
  .shop-card h3{font-size:1.1rem;}
  .shop-card p{color:var(--ink-soft);font-size:0.9rem;flex:1;}
  .shop-card .shop-reserve{font-size:0.86rem;font-weight:600;color:var(--brand);}
  .shop-card .shop-reserve:hover{color:var(--accent);}
  @media (max-width:1000px){ .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
  @media (max-width:560px){ .shop-grid{grid-template-columns:1fr;} }
  /* social links */
  .social-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
  .footer-grid .social-row a.social-link,.social-link{display:inline-flex;align-items:center;gap:7px;margin:0;padding:7px 12px;border:1px solid rgba(239,234,218,0.35);border-radius:99px;font-size:0.8rem;font-weight:600;color:var(--on-brand);}
  .social-link:hover{background:rgba(255,255,255,0.12);}
  .social-link svg{width:14px;height:14px;fill:currentColor;flex:none;}
  /* logo */
  .lg-b{fill:var(--logo-blue);} .lg-g{fill:var(--logo-green);} .lg-l{fill:var(--logo-leaf);} .lg-n{fill:var(--logo-navy);}
  .brand{line-height:0;}
  .brand .logo-wordmark{height:54px;width:auto;display:block;max-width:100%;}
  .top-mobile-only{display:none;}
  .footer-logo{margin-bottom:14px;}
  .footer-logo .logo-footer{height:52px;width:auto;display:block;max-width:100%;}
  @media (max-width:1320px){ .header-cta .btn-ghost{display:none;} }
  @media (max-width:1060px){ .brand .logo-wordmark{height:44px;} nav.primary-nav a{padding:8px 8px;} }
  @media (max-width:760px){ .top-extra{display:none;} .top-mobile-only{display:inline;} .brand{flex:1 1 auto;min-width:0;} .brand .logo-wordmark{height:auto;width:100%;max-width:250px;} }
  /* buttons */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:11px 20px;
    border-radius:var(--radius-s);
    font-size:0.9rem;font-weight:600;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .12s ease, box-shadow .12s ease, background .15s ease, border-color .15s ease;
    white-space:nowrap;
  }
  .btn:active{transform:translateY(1px);}
  .btn-accent{background:var(--accent);color:#1F0A02;}
  .btn-accent:hover{background:var(--accent-soft);}
  .btn-ghost{background:transparent;border-color:var(--line-strong);color:var(--ink);}
  .btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
  .btn-line{background:transparent;border-bottom:1.5px solid var(--accent);border-radius:0;padding:2px 0;color:var(--ink);font-weight:600;}
  .btn-block{width:100%;}
  .btn-lg{padding:14px 26px;font-size:0.98rem;}

  /* ============ PAGES / SECTIONS ============ */
  [hidden]{display:none!important;}
  section.page{display:none;padding:0;border-top:none;}
  section.page.is-active{display:block;}
  section{padding:clamp(48px,7vw,88px) 0;}
  section.tight{padding:clamp(32px,5vw,56px) 0;}
  section+section{border-top:1px solid var(--line);}

  /* HERO */
  .hero{
    background:var(--surface);
    border-bottom:1px solid var(--line-strong);
    padding:clamp(56px,9vw,104px) 0 clamp(40px,6vw,64px);
  }
  .hero-grid{
    display:grid;grid-template-columns:0.9fr 1.1fr;gap:clamp(28px,5vw,56px);align-items:center;
  }
  .hero h1{font-size:clamp(2.3rem,4.4vw,3.6rem);line-height:1.06;}
  .hero-lede{
    margin-top:20px;max-width:46ch;color:var(--ink-soft);font-size:1.08rem;
  }
  .hero-actions{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap;}
  .hero-panel{
    background:var(--bg);
    border:1px solid var(--line-strong);
    border-radius:var(--radius-m);
    padding:22px 24px;
    box-shadow:var(--shadow);
  }
  .hero-panel .row{
    display:flex;justify-content:space-between;gap:12px;
    padding:11px 0;border-bottom:1px solid var(--line);
    font-size:0.88rem;
  }
  .hero-panel .row:last-child{border-bottom:none;}
  .hero-panel .row .k{color:var(--ink-faint);}
  .hero-panel .row .v{font-family:"IBM Plex Mono",monospace;font-weight:500;text-align:right;}
  .hero-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:28px 0 0;border-top:1px solid var(--line-strong);max-width:460px;}
  .hero-facts div{padding:10px 0;border-bottom:1px solid var(--line);}
  .hero-facts dt{font-family:"IBM Plex Mono",monospace;font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);}
  .hero-facts dd{margin:2px 0 0;font-size:0.92rem;font-weight:500;}
  .hero-facts a:hover{color:var(--accent);}

  /* video reel */
  .reel{margin:0;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius-m);box-shadow:var(--shadow);overflow:hidden;max-width:100%;}
  .reel-stage{position:relative;aspect-ratio:16/9;background:#0A1613;max-width:100%;}
  .reel-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s ease;}
  .reel-stage video.on{opacity:1;}
  .reel-caption{position:absolute;left:14px;bottom:14px;display:flex;flex-direction:column;gap:2px;padding:8px 12px;background:rgba(10,22,19,0.72);color:#F5FBF8;border-radius:4px;max-width:calc(100% - 28px);}
  .reel-caption small{font-family:"IBM Plex Mono",monospace;font-size:0.64rem;letter-spacing:0.1em;text-transform:uppercase;color:#FF8B5E;}
  .reel-caption span{font-size:0.9rem;font-weight:600;}
  .reel-controls{position:absolute;right:12px;top:12px;display:flex;gap:8px;}
  .reel-btn{height:34px;min-width:34px;padding:0 10px;border-radius:99px;border:none;background:rgba(10,22,19,0.62);color:#F5FBF8;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;font-size:0.74rem;font-weight:600;font-family:inherit;}
  .reel-btn:hover{background:rgba(10,22,19,0.8);}
  .reel-btn svg{width:14px;height:14px;fill:currentColor;flex:none;}
  .reel-btn.is-sound-on{background:#F2622E;color:#1F0A02;}
  .reel-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-strong);}
  .reel-tab{position:relative;background:none;border:none;border-left:1px solid var(--line);padding:12px 14px 14px;text-align:left;cursor:pointer;color:var(--ink-soft);font:inherit;}
  .reel-tab:first-child{border-left:none;}
  .reel-tab strong{display:block;font-size:0.86rem;font-weight:600;line-height:1.25;}
  .reel-tab span{display:block;font-family:"IBM Plex Mono",monospace;font-size:0.68rem;color:var(--ink-faint);margin-top:3px;}
  .reel-tab:hover{color:var(--ink);}
  .reel-tab.is-on{color:var(--ink);background:var(--surface);}
  .reel-tab .bar{position:absolute;left:0;top:-1px;height:2px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;}
  .reel-tab.is-on .bar{transform:scaleX(var(--p,0));}
  @media (max-width:480px){
    .reel-tab{padding:10px 8px 12px;}
    .reel-tab strong{font-size:0.78rem;}
    .reel-tab span{display:none;}
    .reel-caption span{font-size:0.8rem;}
    .reel-btn .lbl{display:none;}
    .header-cta .btn-accent{display:none;}
  }
  .status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#3E8A5B;margin-right:6px;}

  /* trust strip */
  .trust-strip{background:var(--brand);color:var(--on-brand);}
  .trust-row{
    display:flex;flex-wrap:wrap;gap:0;
  }
  .trust-item{
    flex:1 1 220px;
    display:flex;gap:12px;align-items:flex-start;
    padding:22px 24px;
    border-left:1px solid rgba(239,234,218,0.16);
  }
  .trust-item:first-child{border-left:none;}
  .trust-item .num{font-family:"IBM Plex Mono",monospace;color:var(--accent-soft);font-size:0.8rem;}
  .trust-item h4{color:var(--on-brand);font-size:1rem;font-weight:600;}
  .trust-item p{color:rgba(239,234,218,0.72);font-size:0.86rem;margin-top:4px;}

  /* section headers */
  .section-head{
    display:flex;justify-content:space-between;align-items:flex-end;gap:24px;
    margin-bottom:36px;flex-wrap:wrap;
  }
  .section-head h2{font-size:clamp(1.6rem,2.6vw,2.1rem);}
  .section-head .eyebrow{display:block;margin-bottom:10px;}

  /* ledger list (services on home) */
  .ledger{border-top:1px solid var(--line-strong);}
  .ledger-row{
    display:grid;grid-template-columns:64px 1.1fr 1.4fr auto;gap:24px;align-items:center;
    padding:22px 0;border-bottom:1px solid var(--line);
  }
  .ledger-row .tag{font-family:"IBM Plex Mono",monospace;color:var(--ink-faint);font-size:0.82rem;}
  .ledger-row h3{font-size:1.08rem;}
  .ledger-row p{color:var(--ink-soft);font-size:0.92rem;}
  .ledger-row a.more{font-size:0.84rem;font-weight:600;color:var(--brand);white-space:nowrap;}
  :root[data-theme="dark"] .ledger-row a.more{color:var(--accent);}
  @media (prefers-color-scheme:dark){ .ledger-row a.more{color:var(--accent);} }

  .also-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:22px;}
  .also-row .eyebrow{color:var(--ink-faint);margin-right:4px;}
  /* reviews */
  .reviews-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:32px;}
  .reviews-head h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin-top:10px;}
  .rating-summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
  .rating-num{font-family:"Lora",Georgia,serif;font-size:2.6rem;font-weight:600;line-height:1;}
  .stars{display:inline-flex;gap:2px;color:#E8A317;font-size:1.05rem;letter-spacing:0;line-height:1;}
  .rating-meta{display:flex;flex-direction:column;gap:4px;font-size:0.84rem;color:var(--ink-soft);}
  .review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
  .review-card{margin:0;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius-m);padding:24px;display:flex;flex-direction:column;gap:14px;}
  .review-card blockquote{margin:0;font-size:0.96rem;line-height:1.6;color:var(--ink);flex:1;}
  .review-card figcaption{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:14px;border-top:1px solid var(--line);font-size:0.86rem;}
  .review-card figcaption strong{font-weight:600;}
  .review-card figcaption span{font-family:"IBM Plex Mono",monospace;font-size:0.68rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);}
  .reviews-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px;}
  @media (max-width:920px){ .review-grid{grid-template-columns:1fr;} }
  /* service grid (services page) */
  .svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-strong);border:1px solid var(--line-strong);}
  .svc-card{background:var(--bg);padding:28px;}
  .svc-card .tag{font-family:"IBM Plex Mono",monospace;color:var(--accent);font-size:0.78rem;}
  .svc-card h3{margin-top:10px;font-size:1.18rem;}
  .svc-card p{margin-top:10px;color:var(--ink-soft);font-size:0.92rem;}
  .svc-card ul{margin:12px 0 0;padding-left:18px;color:var(--ink-soft);font-size:0.88rem;}
  .svc-card li{margin-bottom:4px;}

  /* pharmacist / spotlight */
  .spotlight{display:grid;grid-template-columns:0.62fr 1fr;gap:48px;align-items:center;}
  .spotlight-photo{
    aspect-ratio:4/5;border-radius:var(--radius-m);
    background:
      linear-gradient(160deg, var(--brand) 0%, var(--brand-2) 100%);
    display:flex;align-items:flex-end;padding:20px;
    border:1px solid var(--line-strong);
  }
  .spotlight-photo span{
    font-family:"IBM Plex Mono",monospace;font-size:0.7rem;color:rgba(239,234,218,0.7);
    letter-spacing:0.08em;text-transform:uppercase;
  }
  .quote{
    font-family:"Lora",serif;font-style:italic;font-weight:420;
    font-size:1.3rem;line-height:1.4;color:var(--ink);
    border-left:2px solid var(--accent);padding-left:20px;margin:20px 0;
  }

  /* journal */
  .journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .journal-card{border:1px solid var(--line-strong);border-radius:var(--radius-m);overflow:hidden;background:var(--surface);display:flex;flex-direction:column;}
  .journal-card-body{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1;}
  .journal-meta{font-family:"IBM Plex Mono",monospace;font-size:0.72rem;color:var(--ink-faint);letter-spacing:0.04em;}
  .journal-card h3{font-size:1.08rem;line-height:1.3;}
  .journal-card p{color:var(--ink-soft);font-size:0.9rem;flex:1;}
  .journal-card .read{font-size:0.84rem;font-weight:600;color:var(--brand);margin-top:6px;}
  @media (prefers-color-scheme:dark){ .journal-card .read{color:var(--accent);} }
  :root[data-theme="dark"] .journal-card .read{color:var(--accent);}
  .article{max-width:66ch;margin:0 auto;}
  .article h1{font-size:clamp(1.9rem,3.4vw,2.6rem);}
  .article .dek{margin-top:14px;color:var(--ink-soft);font-size:1.08rem;}
  .article .body-copy p{margin-top:18px;color:var(--ink-soft);font-size:1.02rem;}
  .article .body-copy h3{margin-top:32px;font-size:1.2rem;color:var(--ink);}
  .back-link{display:inline-flex;align-items:center;gap:6px;font-size:0.88rem;font-weight:600;color:var(--ink-soft);margin-bottom:28px;}
  .back-link:hover{color:var(--accent);}

  /* forms */
  .form-shell{
    display:grid;grid-template-columns:1fr 1.3fr;gap:0;
    border:1px solid var(--line-strong);border-radius:var(--radius-m);overflow:hidden;
  }
  .form-side{
    background:var(--brand);color:var(--on-brand);padding:36px;
  }
  .form-side h2{color:var(--on-brand);font-size:1.5rem;}
  .form-side p{color:rgba(239,234,218,0.78);margin-top:14px;font-size:0.94rem;}
  .form-side .contact-line{margin-top:24px;padding-top:20px;border-top:1px solid rgba(239,234,218,0.18);}
  .form-side .contact-line .row{display:flex;justify-content:space-between;padding:6px 0;font-size:0.86rem;}
  .form-side .contact-line .k{color:rgba(239,234,218,0.6);}
  .form-side .contact-line .v{font-family:"IBM Plex Mono",monospace;}
  .form-main{background:var(--bg);padding:36px;}
  .field{margin-bottom:18px;}
  .field label{display:block;font-size:0.82rem;font-weight:600;margin-bottom:7px;color:var(--ink-soft);}
  .field .req{color:var(--accent);}
  .field input,.field select,.field textarea{
    width:100%;padding:11px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-s);
    background:var(--surface);color:var(--ink);font-family:inherit;font-size:0.94rem;
  }
  .field textarea{resize:vertical;min-height:90px;}
  .field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .disclaimer{
    font-size:0.78rem;color:var(--ink-faint);margin-top:6px;line-height:1.5;
    background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);padding:12px 14px;
  }
  .confirm-panel{display:none;text-align:center;padding:20px 0;}
  .confirm-panel.is-active{display:block;}
  .confirm-panel .ticket{
    display:inline-block;border:1px dashed var(--line-strong);border-radius:var(--radius-s);
    padding:14px 22px;margin-top:16px;font-family:"IBM Plex Mono",monospace;font-size:0.9rem;
  }

  /* about */
  .about-hero{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
  .value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px;}
  .value-item{border-top:2px solid var(--accent);padding-top:14px;}
  .value-item h4{font-size:1.02rem;}
  .value-item p{margin-top:8px;color:var(--ink-soft);font-size:0.9rem;}

  /* insurance / hours ledger */
  .info-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
  .hours-table{width:100%;border-collapse:collapse;}
  .hours-table td{padding:9px 0;border-bottom:1px solid var(--line);font-size:0.92rem;}
  .hours-table td:last-child{text-align:right;font-family:"IBM Plex Mono",monospace;}
  .hours-table tr.today td{color:var(--brand);font-weight:600;}
  @media (prefers-color-scheme:dark){ .hours-table tr.today td{color:var(--accent);} }
  :root[data-theme="dark"] .hours-table tr.today td{color:var(--accent);}
  .form-side .hours-table td{color:var(--on-brand);border-bottom-color:rgba(239,234,218,0.18);}
  .form-side .hours-table tr.today td,
  :root .form-side .hours-table tr.today td{color:var(--on-brand);font-weight:700;background:rgba(0,0,0,0.12);}
  .form-side .hours-table tr.today td:first-child{padding-left:8px;}
  .form-side .hours-table tr.today td:last-child{padding-right:8px;}
  .chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
  .chip{
    font-size:0.8rem;padding:6px 12px;border:1px solid var(--line-strong);border-radius:99px;color:var(--ink-soft);
  }

  /* footer */
  footer{background:var(--brand-2);color:rgba(239,234,218,0.82);border-top:1px solid var(--line-strong);}
  .footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding:56px 0 32px;}
  .footer-grid h5{
    font-family:"IBM Plex Mono",monospace;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;
    color:var(--accent-soft);margin-bottom:14px;
  }
  .footer-grid a,.footer-grid p{display:block;font-size:0.88rem;margin-bottom:8px;color:rgba(239,234,218,0.72);}
  .footer-grid a:hover{color:var(--on-brand);}
  .footer-bottom{
    border-top:1px solid rgba(239,234,218,0.14);padding:18px 0;
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
    font-size:0.76rem;color:rgba(239,234,218,0.5);
  }

  /* responsive */
  @media (max-width:920px){
    .hero-grid,.spotlight,.about-hero,.info-grid{grid-template-columns:1fr;}
    .spotlight-photo{max-width:280px;}
    .svc-grid{grid-template-columns:1fr;}
    .journal-grid{grid-template-columns:1fr;}
    .form-shell{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr 1fr;}
    .value-grid{grid-template-columns:1fr;}
    .ledger-row{grid-template-columns:48px 1fr;row-gap:6px;align-items:start;}
    .ledger-row > .tag{grid-column:1;grid-row:1 / span 3;padding-top:3px;}
    .ledger-row > *:not(.tag){grid-column:2;}
    .trust-row{flex-direction:column;}
    .trust-item{flex:none;border-left:none;border-top:1px solid rgba(239,234,218,0.16);}
    .trust-item:first-child{border-top:none;}
  }
  @media (max-width:760px){
    nav.primary-nav{display:none;}
    .menu-toggle{display:flex;}
    .header-cta .btn-ghost{display:none;}
    body.nav-open nav.primary-nav{
      display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;
      background:var(--bg);border-bottom:1px solid var(--line-strong);padding:8px clamp(20px,4vw,48px) 16px;
      gap:2px;
    }
    body.nav-open nav.primary-nav a{padding:11px 4px;border-bottom:1px solid var(--line);}
    .header-main{position:relative;}
    .field-row{grid-template-columns:1fr;}
  }
  @media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }

  /* ============ CHAT WIDGET ============ */
  .chat-launcher{
    position:fixed;right:22px;bottom:22px;z-index:60;
    width:56px;height:56px;border-radius:50%;
    background:var(--accent);color:#1F0A02;
    display:flex;align-items:center;justify-content:center;
    border:none;cursor:pointer;box-shadow:var(--shadow);
  }
  .chat-launcher:hover{background:var(--accent-soft);}
  .chat-launcher svg{width:24px;height:24px;}
  .chat-panel{
    position:fixed;right:22px;bottom:88px;z-index:60;
    width:340px;max-width:calc(100vw - 44px);
    max-height:min(520px,calc(100vh - 140px));
    background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius-m);
    box-shadow:var(--shadow);
    display:flex;flex-direction:column;overflow:hidden;
    opacity:0;transform:translateY(12px);pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
  }
  .chat-panel.is-open{opacity:1;transform:translateY(0);pointer-events:auto;}
  .chat-head{background:var(--brand);color:var(--on-brand);padding:14px 16px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
  .chat-head strong{font-family:"Lora",serif;font-size:1rem;display:block;}
  .chat-head span{display:block;font-size:0.7rem;color:rgba(245,251,248,0.72);font-family:"IBM Plex Mono",monospace;margin-top:3px;}
  .chat-close{background:none;border:none;color:var(--on-brand);font-size:1.3rem;cursor:pointer;line-height:1;padding:2px 4px;flex:none;}
  .chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--surface);}
  .chat-bubble{max-width:85%;padding:10px 13px;border-radius:10px;font-size:0.86rem;line-height:1.45;}
  .chat-bubble.from-pharmacy{background:var(--bg);border:1px solid var(--line-strong);align-self:flex-start;border-bottom-left-radius:2px;color:var(--ink);}
  .chat-bubble.from-user{background:var(--brand);color:var(--on-brand);align-self:flex-end;border-bottom-right-radius:2px;}
  a.chat-bubble.from-pharmacy{text-decoration:none;color:var(--brand);}
  @media (prefers-color-scheme:dark){ a.chat-bubble.from-pharmacy{color:var(--accent);} }
  :root[data-theme="dark"] a.chat-bubble.from-pharmacy{color:var(--accent);}
  .chat-quick{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 12px;background:var(--surface);}
  .chat-quick button{font-size:0.76rem;padding:6px 10px;border:1px solid var(--line-strong);border-radius:99px;background:var(--bg);color:var(--ink-soft);cursor:pointer;}
  .chat-quick button:hover{border-color:var(--accent);color:var(--accent);}
  .chat-foot{border-top:1px solid var(--line-strong);padding:12px 16px;display:flex;gap:8px;background:var(--bg);}
  .chat-foot a{flex:1;text-align:center;font-size:0.78rem;font-weight:600;padding:9px 8px;border-radius:var(--radius-s);border:1px solid var(--line-strong);color:var(--ink);}
  .chat-foot a:hover{border-color:var(--accent);color:var(--accent);}
  @media (max-width:480px){
    .chat-panel{right:12px;left:12px;width:auto;bottom:82px;}
    .chat-launcher{right:16px;bottom:16px;}
  }
.page{display:block;}
