:root {
    --color-primary: #15803D; --color-primary-dark: #14532D; --color-secondary: #22C55E;
    --color-accent: #EC4899; --color-bg: #F0FDF4; --color-bg-2: #ECFDF5;
    --color-fg: #14532D; --color-muted: #496B57; --color-border: #A7E3BD; --color-card: #FFFFFF;
    --color-warn: #B45309; --color-warn-bg: #FEF3C7;
    --shadow-soft: 0 20px 48px -22px rgba(20,83,45,.45); --shadow-leaf: 0 10px 30px -12px rgba(20,83,45,.45);
    --ease-spring: cubic-bezier(.34,1.56,.64,1);
    --font-head: 'Rubik', 'Assistant', system-ui, sans-serif; --font-body: 'Assistant', system-ui, sans-serif;
    --accent: #15803D; --accent-bg: #DCFCE7;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body {
    font-family: var(--font-body); color: var(--color-fg);
    background-color: #DCF1E3;
    background-image:
      radial-gradient(1100px 560px at 92% -8%, var(--accent-bg) 0%, transparent 60%),
      radial-gradient(960px 520px at -12% 10%, rgba(244,114,182,.22) 0%, transparent 52%),
      radial-gradient(900px 720px at 50% 114%, rgba(21,128,61,.20) 0%, transparent 60%);
    background-attachment: fixed;
    line-height: 1.75; -webkit-font-smoothing: antialiased; overflow-x: hidden;
  }
  h1,h2,h3 { font-family: var(--font-head); line-height:1.18; color: var(--color-primary-dark); }
  a { color: inherit; text-decoration: none; }
  .wrap { max-width: 980px; margin-inline:auto; padding-inline: 24px; }

  /* particles */
  .field { position: fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden; }
  .spore { position:absolute; bottom:-20px; border-radius:50%; opacity:0;
    background: radial-gradient(circle at 30% 30%, #86EFAC, #22C55E); animation: rise linear infinite; }
  @keyframes rise { 0%{transform:translateY(0) scale(.6);opacity:0;} 10%{opacity:.6;} 90%{opacity:.4;} 100%{transform:translateY(-110vh) translateX(40px) scale(1.1);opacity:0;} }

  header.nav { position: sticky; top:0; z-index:50; backdrop-filter: blur(14px);
    background: rgba(240,253,244,.72); border-bottom:1px solid transparent; transition: border-color .3s, box-shadow .3s; }
  header.nav.scrolled { border-color: var(--color-border); box-shadow: 0 6px 24px -16px rgba(20,83,45,.5); }
  .nav-inner { display:flex; align-items:center; justify-content:space-between; height:72px; }
  .brand { display:flex; align-items:center; gap:10px; font-family:var(--font-head); font-weight:900; font-size:1.4rem; color:var(--color-primary-dark); }
  .brand .leaf-mark { width:36px; height:36px; animation: sway 4s var(--ease-spring) infinite; transform-origin: bottom center; }
  @keyframes sway { 0%,100%{transform:rotate(-6deg);} 50%{transform:rotate(6deg);} }
  .back-link { display:inline-flex; align-items:center; gap:7px; font-weight:600; color:var(--color-muted); transition: color .2s, gap .2s; }
  .back-link:hover { color:var(--color-primary-dark); gap:11px; }

  /* hero */
  .herb-hero { position:relative; z-index:1; padding: 56px 0 30px; }
  .crumbs { font-size:.9rem; color:var(--color-muted); margin-bottom: 22px; }
  .crumbs a:hover { color: var(--color-primary); }
  .hero-row { display:flex; align-items:center; gap:34px; flex-wrap:wrap;
    background: linear-gradient(135deg, var(--accent-bg) 0%, rgba(255,255,255,.55) 70%);
    border: 1px solid var(--color-border); border-radius: 34px; padding: 28px 32px;
    box-shadow: var(--shadow-soft); position: relative; overflow: hidden; }
  .hero-row::after { content:""; position:absolute; left:-40px; top:-40px; width:160px; height:160px; border-radius:50%;
    background: radial-gradient(circle, var(--accent) 0%, transparent 70%); opacity:.12; }
  .big-icon { flex-shrink:0; width:120px; height:120px; border-radius: 32px 40px 34px 44px;
    display:grid; place-items:center; box-shadow: var(--shadow-soft); position:relative; animation: floaty 6s ease-in-out infinite; }
  @keyframes floaty { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-12px);} }
  .big-icon svg { width:64px; height:64px; }
  .herb-figure { flex-shrink:0; position:relative; width:300px; max-width:100%; height:230px; border-radius: 28px 36px 30px 40px;
    overflow:hidden; box-shadow: var(--shadow-soft); background: var(--accent-bg); animation: floaty 7s ease-in-out infinite; }
  .herb-figure img { width:100%; height:100%; object-fit:cover; display:block; }
  .fig-badge { position:absolute; bottom:14px; right:16px; width:54px; height:54px; border-radius:16px; background: var(--accent-bg);
    display:grid; place-items:center; border:3px solid #fff; box-shadow:0 8px 20px -6px rgba(0,0,0,.4); }
  .fig-badge svg { width:30px; height:30px; }
  .fig-credit { position:relative; z-index:1; margin-top:14px; font-size:.82rem; color:var(--color-muted); display:flex; align-items:center; gap:7px; }
  .fig-credit svg { width:15px; height:15px; flex-shrink:0; }
  .fig-credit a { color:var(--color-primary); text-decoration:underline; }
  .gallery-strip { display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; }
  .gallery-strip button { padding:0; border:2.5px solid transparent; border-radius:14px; overflow:hidden; cursor:pointer;
    width:84px; height:64px; background:none; transition: border-color .2s ease, transform .2s var(--ease-spring); box-shadow: var(--shadow-soft); }
  .gallery-strip button:hover { transform: translateY(-2px); }
  .gallery-strip button.active { border-color: var(--accent); }
  .gallery-strip img { width:100%; height:100%; object-fit:cover; display:block; }
  .herb-actions { display:flex; gap:10px; flex-wrap:wrap; margin: 4px 0 2px; }
  .act-btn { display:inline-flex; align-items:center; gap:7px; cursor:pointer; font-family:var(--font-body); font-weight:700;
    font-size:.92rem; padding:10px 18px; border-radius:999px; border:1.5px solid var(--color-border); background:#fff; color:var(--color-primary-dark);
    transition: transform .2s var(--ease-spring), background .2s ease, box-shadow .2s ease; }
  .act-btn:hover { transform: translateY(-2px); background: var(--color-bg-2); box-shadow: var(--shadow-soft); }
  .act-btn svg { width:17px; height:17px; }
  .act-btn.copied { background: var(--color-secondary); color:#fff; border-color:transparent; }
  .hero-meta h1 { font-size: clamp(2.2rem, 6vw, 3.4rem); margin-bottom: 6px; }
  @media print {
    .field, header.nav, .herb-actions, .gallery-strip, .pager, footer .foot-bottom, .back-link { display:none !important; }
    body { background:#fff !important; }
    .block, .lead-card, .herb-figure { box-shadow:none !important; border:1px solid #ccc !important; }
    .funfact { background:#f3f4f6 !important; -webkit-print-color-adjust:exact; }
    .funfact h2, .funfact p { color:#111 !important; }
    a { text-decoration:none !important; color:#111 !important; }
    section { break-inside: avoid; }
  }
  .hero-meta .latin { font-style:italic; color:var(--color-muted); font-size:1.05rem; margin-bottom:14px; }
  .tags { display:flex; flex-wrap:wrap; gap:8px; }
  .tag { font-size:.82rem; font-weight:700; padding:5px 13px; border-radius:999px; background:#fff; border:1px solid var(--color-border); color:var(--accent); }
  .tag.season { background: var(--accent-bg); border-color: transparent; color: var(--color-primary-dark); }

  .lead-card { position:relative; z-index:1; background: linear-gradient(135deg, var(--accent-bg) 0%, #ffffff 58%);
    border:1px solid var(--color-border); border-radius: 26px; padding: 30px 34px; box-shadow: var(--shadow-soft);
    margin-top: 26px; font-size:1.18rem; color:#173f29; }
  .lead-card::before { content:""; position:absolute; top:22px; right:0; width:5px; height:calc(100% - 44px);
    border-radius:6px; background: var(--accent); }

  /* content blocks */
  .content { position:relative; z-index:1; padding: 40px 0 20px; display:grid; gap: 22px; }
  .block { position:relative; background: linear-gradient(168deg, #ffffff 0%, #F1FAF3 100%);
    border:1px solid var(--color-border); border-radius:22px; padding:28px 30px; box-shadow: var(--shadow-soft); overflow:hidden; }
  .block::before { content:""; position:absolute; top:0; right:0; width:6px; height:100%;
    background: linear-gradient(180deg, var(--accent), transparent 85%); opacity:.85; }
  .block h2 { font-size:1.5rem; margin-bottom:12px; display:flex; align-items:center; gap:10px; }
  .block h2 .h-ic { width:38px; height:38px; border-radius:11px; background: var(--accent-bg); display:grid; place-items:center; flex-shrink:0; }
  .block h2 .h-ic svg { width:22px; height:22px; }
  .block p { color:#2b5a3f; }
  .facts-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(155px,1fr)); gap:14px; margin-top:6px; }
  .fact { background: var(--accent-bg); border-radius:14px; padding:14px 16px; }
  .fact .fk { font-size:.78rem; font-weight:700; color:var(--color-primary-dark); margin-bottom:5px; }
  .fact .fv { color:#234; font-size:.96rem; }
  .fact .prop-pill { display:inline-block; font-size:.74rem; font-weight:600; color:#4338CA; background:#fff; border:1px solid #C7D2FE; padding:2px 8px; border-radius:999px; margin:2px 2px 0 0; }
  .uses-list { list-style:none; display:grid; gap:10px; margin-top:6px; }
  .uses-list li { display:flex; gap:11px; align-items:flex-start; color:#2b5a3f; }
  .uses-list li svg { flex-shrink:0; width:22px; height:22px; margin-top:3px; }
  .two-col { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
  .prep-box { background: var(--accent-bg); border:1px dashed var(--accent); border-radius:18px; padding:18px 20px; color: var(--color-primary-dark); }
  .prep-box .k { font-weight:700; display:block; margin-bottom:4px; }
  .dose-note { display:flex; gap:8px; align-items:flex-start; margin-top:12px; font-size:.84rem; color:#8A5A00;
    background:#FFFBEB; border:1px solid #FDE68A; border-radius:12px; padding:10px 14px; line-height:1.55; }
  .dose-note svg { flex-shrink:0; width:16px; height:16px; margin-top:2px; }
  .legal-links { margin-bottom:14px; font-size:.88rem; color:#A7F3D0; }
  .legal-links a { text-decoration:underline; color:#A7F3D0; }
  .legal-links a:hover { color:#fff; }
  .legal-page { max-width:820px; margin-inline:auto; padding:50px 24px 30px; position:relative; z-index:1; }
  .legal-page h1 { font-size: clamp(1.9rem, 4.5vw, 2.6rem); margin-bottom:8px; }
  .legal-page .updated { color:var(--color-muted); font-size:.9rem; margin-bottom:26px; }
  .legal-page section.lp { background:linear-gradient(168deg,#fff 0%,#F1FAF3 100%); border:1px solid var(--color-border);
    border-radius:20px; padding:24px 28px; box-shadow:var(--shadow-soft); margin-bottom:18px; }
  .legal-page section.lp h2 { font-size:1.25rem; margin-bottom:10px; }
  .legal-page section.lp p, .legal-page section.lp li { color:#2b5a3f; font-size:.98rem; }
  .legal-page section.lp ul { padding-right:20px; margin-top:6px; }

  /* ===== Goal pages & glossary ===== */
  .goal-intro { font-size:1.12rem; color:#1f4d33; }
  .mini-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:18px; margin-top:8px; }
  .mini-card { background:#fff; border:1px solid var(--color-border); border-radius:20px; overflow:hidden;
    box-shadow:var(--shadow-soft); transition:transform .3s var(--ease-spring), box-shadow .3s ease; display:flex; flex-direction:column; }
  .mini-card:hover { transform:translateY(-6px); box-shadow:0 26px 52px -22px rgba(20,83,45,.5); }
  .mini-card img { width:100%; height:130px; object-fit:cover; display:block; }
  .mini-card .mc-body { padding:14px 16px 16px; display:flex; flex-direction:column; gap:5px; flex:1; }
  .mini-card h3 { font-size:1.15rem; margin:0; }
  .mini-card .mc-latin { font-style:italic; font-size:.76rem; color:var(--color-muted); }
  .mini-card p { font-size:.88rem; color:var(--color-muted); flex:1; }
  .mini-card .mc-link { font-weight:700; font-size:.88rem; color:var(--color-primary); }
  .gloss-term { background:#fff; border:1px solid var(--color-border); border-radius:18px; padding:20px 24px;
    box-shadow:var(--shadow-soft); margin-bottom:14px; }
  .gloss-term h2 { font-size:1.2rem; margin-bottom:6px; color:var(--color-primary-dark); }
  .gloss-term p { color:#2b5a3f; font-size:.97rem; }
  .gloss-term .gt-herbs { margin-top:10px; display:flex; flex-wrap:wrap; gap:7px; }
  .gloss-term .gt-herbs a { font-size:.8rem; font-weight:600; color:var(--color-primary-dark); background:var(--color-bg-2);
    border:1px solid var(--color-border); padding:4px 11px; border-radius:999px; }
  .gloss-term .gt-herbs a:hover { background:var(--color-primary); color:#fff; }

  /* ===== Skip link (a11y) ===== */
  .skip-link { position: absolute; top: -60px; right: 16px; z-index: 200; background: var(--color-primary-dark);
    color: #fff; font-weight: 700; padding: 12px 22px; border-radius: 0 0 14px 14px; transition: top .2s ease; }
  .skip-link:focus { top: 0; outline: 3px solid #fff; outline-offset: -3px; }

  /* ===== Back to top ===== */
  .to-top { position: fixed; bottom: 26px; left: 26px; z-index: 70; width: 52px; height: 52px; border-radius: 50%;
    border: none; cursor: pointer; background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
    color: #fff; display: grid; place-items: center; box-shadow: 0 12px 30px -10px rgba(20,83,45,.6);
    opacity: 0; transform: translateY(16px); pointer-events: none;
    transition: opacity .3s ease, transform .3s var(--ease-spring); }
  .to-top.show { opacity: 1; transform: translateY(0); pointer-events: auto; }
  .to-top:hover { transform: translateY(-4px); }
  .to-top:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
  @media print { .to-top { display: none !important; } }

  /* ===== Contact form ===== */
  .contact-form { display: grid; gap: 14px; }
  .contact-form label { font-weight: 700; color: var(--color-primary-dark); font-size: .95rem; }
  .contact-form .cf-hint { font-weight: 400; color: var(--color-muted); font-size: .82rem; }
  .contact-form input, .contact-form select, .contact-form textarea {
    width: 100%; margin-top: 6px; padding: 12px 16px; border-radius: 14px; border: 1.5px solid var(--color-border);
    background: #fff; font-family: var(--font-body); font-size: 1rem; color: var(--color-fg); outline: none;
    transition: border-color .2s ease, box-shadow .2s ease; }
  .contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus {
    border-color: var(--color-secondary); box-shadow: 0 0 0 4px rgba(34,197,94,.16); }
  .contact-form textarea { min-height: 140px; resize: vertical; }
  .cf-msg { min-height: 1.4em; font-weight: 700; }
  .cf-msg.ok { color: var(--color-primary); }
  .cf-msg.err { color: #B91C1C; }
  .hp-field { position: absolute; right: -9999px; width: 1px; height: 1px; overflow: hidden; }

  /* ===== Compare page ===== */
  .compare-shell { max-width: 1100px; margin-inline: auto; padding: 44px 24px 20px; position: relative; z-index: 1; }
  .compare-shell h1 { font-family: var(--font-head); font-size: clamp(1.9rem, 4.5vw, 2.6rem); color: var(--color-primary-dark); margin-bottom: 6px; }
  .cmp-wrap { background: #fff; border: 1px solid var(--color-border); border-radius: 22px; box-shadow: var(--shadow-soft);
    overflow-x: auto; margin-top: 22px; }
  .cmp-table { width: 100%; border-collapse: collapse; min-width: 640px; }
  .cmp-table th, .cmp-table td { padding: 14px 16px; text-align: right; vertical-align: top; border-bottom: 1px solid var(--color-border); font-size: .95rem; }
  .cmp-table thead th { background: var(--color-bg-2); }
  .cmp-table .rowlabel { font-weight: 700; color: var(--color-primary-dark); background: var(--color-bg-2); white-space: nowrap; width: 130px; }
  .cmp-table .ch-img { width: 100%; height: 96px; object-fit: cover; border-radius: 12px; display: block; }
  .cmp-table .ch-name { font-family: var(--font-head); font-weight: 700; font-size: 1.1rem; color: var(--color-primary-dark); margin-top: 8px; }
  .cmp-table .ch-latin { font-style: italic; font-size: .8rem; color: var(--color-muted); }
  .cmp-pill { display: inline-block; font-size: .74rem; font-weight: 600; color: var(--color-primary); background: var(--color-bg-2);
    border: 1px solid var(--color-border); padding: 2px 9px; border-radius: 999px; margin: 2px 2px 0 0; }
  .cmp-table td.warn-cell { color: var(--color-warn); }
  .cmp-yes { color: var(--color-primary); font-weight: 700; } .cmp-no { color: var(--color-muted); }
  .cmp-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
  .cmp-empty { background: #fff; border: 1px solid var(--color-border); border-radius: 22px; box-shadow: var(--shadow-soft);
    padding: 40px 32px; text-align: center; margin-top: 22px; }
  .cmp-empty p { color: var(--color-muted); margin-bottom: 20px; }
  @media print { .cmp-actions, header.nav, .field { display: none !important; } body { background: #fff !important; } .cmp-wrap { box-shadow: none !important; } }

  /* ===== Finder quiz ===== */
  .quiz-shell { max-width:760px; margin-inline:auto; padding:44px 24px 20px; position:relative; z-index:1; }
  .quiz-box { background:linear-gradient(168deg,#fff 0%,#F1FAF3 100%); border:1px solid var(--color-border);
    border-radius:26px; padding:34px 32px; box-shadow:var(--shadow-soft); }
  .q-progress { display:flex; gap:8px; margin-bottom:24px; }
  .q-progress span { flex:1; height:6px; border-radius:99px; background:#D9EDE0; transition:background .3s ease; }
  .q-progress span.done { background:linear-gradient(90deg,var(--color-secondary),var(--color-accent)); }
  .q-step h2 { font-size:1.5rem; margin-bottom:6px; }
  .q-step .q-sub { color:var(--color-muted); font-size:.95rem; margin-bottom:20px; }
  .q-opts { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; }
  .q-opts button { cursor:pointer; text-align:right; font-family:var(--font-body); font-size:1rem; font-weight:600;
    color:var(--color-primary-dark); background:#fff; border:1.5px solid var(--color-border); border-radius:16px;
    padding:16px 18px; transition:all .2s var(--ease-spring); }
  .q-opts button:hover { border-color:var(--color-secondary); transform:translateY(-2px); box-shadow:var(--shadow-soft); }
  .q-opts button .q-emoji { font-size:1.3rem; margin-left:8px; }
  .q-back { margin-top:18px; background:none; border:none; cursor:pointer; color:var(--color-muted);
    font-family:var(--font-body); font-weight:600; font-size:.92rem; }
  .q-back:hover { color:var(--color-primary-dark); }
  .q-note { margin-top:20px; font-size:.85rem; color:var(--color-muted); }
  .q-consult { background:var(--color-warn-bg); border:1px solid #FDE68A; border-radius:18px; padding:22px 24px; color:#78350F; }
  .q-consult h3 { color:var(--color-warn); margin-bottom:8px; }
  .q-restart { margin-top:16px; }
  .warn-box { background: var(--color-warn-bg); border:1px solid #FDE68A; border-radius:18px; padding:18px 20px; color:#78350F; display:flex; gap:12px; }
  .warn-box svg { flex-shrink:0; width:26px; height:26px; }
  .funfact { background: linear-gradient(135deg, var(--color-primary-dark), var(--color-primary)); color:#fff; border:none; }
  .funfact::before { display:none; }
  .funfact h2, .funfact p { color:#fff; }
  .funfact h2 .h-ic { background: rgba(255,255,255,.18); }

  /* prev/next + cta */
  .pager { display:flex; justify-content:space-between; gap:14px; margin: 34px 0 10px; flex-wrap:wrap; }
  .pager a { flex:1; min-width:200px; background:#fff; border:1px solid var(--color-border); border-radius:18px; padding:16px 20px; box-shadow: var(--shadow-soft); transition: transform .25s var(--ease-spring); }
  .pager a:hover { transform: translateY(-4px); }
  .pager .dir { font-size:.8rem; color:var(--color-muted); }
  .pager .nm { font-family:var(--font-head); font-weight:700; font-size:1.15rem; color:var(--color-primary-dark); }
  .pager .next { text-align:left; }
  .btn { display:inline-flex; align-items:center; gap:8px; cursor:pointer; border:none; font-family:var(--font-body); font-weight:700; font-size:1rem; padding:13px 26px; border-radius:999px; transition: transform .25s var(--ease-spring), box-shadow .25s; }
  .btn-primary { background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); color:#fff; box-shadow: var(--shadow-leaf); }
  .btn-primary:hover { transform: translateY(-3px); }

  footer { background: var(--color-primary-dark); color:#D1FAE5; padding: 40px 0 26px; position:relative; z-index:1; margin-top: 50px; text-align:center; }
  .disclaimer { max-width: 760px; margin: 0 auto 18px; padding: 16px 20px; background: rgba(255,255,255,.06); border-radius:14px; font-size:.85rem; color:#A7F3D0; line-height:1.6; }
  .foot-bottom { font-size:.85rem; color:#86EFAC; }

  .reveal { opacity:0; transform: translateY(28px); transition: opacity .6s ease, transform .6s var(--ease-spring); }
  .reveal.in { opacity:1; transform:none; }

  @media (max-width: 700px) {
    .two-col { grid-template-columns:1fr; }
    .big-icon { width:96px; height:96px; } .big-icon svg { width:52px; height:52px; }
    .hero-row { gap:20px; }
  }
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation:none !important; transition:none !important; }
    .reveal { opacity:1; transform:none; } html { scroll-behavior:auto; }
  }

  /* ===== Dark mode ===== */
  :root[data-theme="dark"] {
    --color-bg:#0F1A14; --color-bg-2:#16241C; --color-fg:#E6F2EB; --color-muted:#9EC0AD;
    --color-border:#2C4838; --color-card:#16241C; --color-primary-dark:#86EFAC; --color-primary:#4ADE80;
    --accent-bg:#1E3527; --color-warn-bg:#3A2E12;
    --shadow-soft:0 20px 48px -22px rgba(0,0,0,.6); --shadow-leaf:0 10px 30px -12px rgba(0,0,0,.6);
  }
  :root[data-theme="dark"] body { background-color:#0B1410; background-image:
    radial-gradient(1100px 560px at 92% -8%, rgba(34,197,94,.10) 0%, transparent 60%),
    radial-gradient(960px 520px at -12% 10%, rgba(236,72,153,.07) 0%, transparent 52%),
    radial-gradient(900px 720px at 50% 114%, rgba(34,197,94,.08) 0%, transparent 60%); }
  :root[data-theme="dark"] header.nav { background:rgba(13,22,17,.82); }
  :root[data-theme="dark"] .block, :root[data-theme="dark"] .mini-card, :root[data-theme="dark"] .gloss-term,
  :root[data-theme="dark"] .legal-page section.lp, :root[data-theme="dark"] .quiz-box, :root[data-theme="dark"] .cmp-wrap,
  :root[data-theme="dark"] .pager a, :root[data-theme="dark"] .intro-card, :root[data-theme="dark"] .season-card,
  :root[data-theme="dark"] .blend-card, :root[data-theme="dark"] .herb-card, :root[data-theme="dark"] .faq-item {
    background:linear-gradient(168deg,#182A20,#13211A) !important; border-color:var(--color-border) !important; }
  :root[data-theme="dark"] .lead-card { background:linear-gradient(135deg,var(--accent-bg),#16241C 60%) !important; }
  :root[data-theme="dark"] .hero-row { background:linear-gradient(135deg,var(--accent-bg),rgba(22,36,28,.55) 70%) !important; }
  :root[data-theme="dark"] .tag, :root[data-theme="dark"] .act-btn, :root[data-theme="dark"] .filter-btn,
  :root[data-theme="dark"] .herb-tag, :root[data-theme="dark"] .chip, :root[data-theme="dark"] .blend-chip,
  :root[data-theme="dark"] .cmp-pill, :root[data-theme="dark"] .prop-pill, :root[data-theme="dark"] .gt-herbs a,
  :root[data-theme="dark"] .goal-strip a, :root[data-theme="dark"] .herb-search input,
  :root[data-theme="dark"] .contact-form input, :root[data-theme="dark"] .contact-form select,
  :root[data-theme="dark"] .contact-form textarea, :root[data-theme="dark"] .gallery-strip button {
    background:#12201A !important; color:var(--color-fg) !important; border-color:var(--color-border) !important; }
  :root[data-theme="dark"] .prep-box { background:#12261B !important; }
  :root[data-theme="dark"] .fact { background:#12261B !important; }
  /* hardcoded dark-green text -> light */
  :root[data-theme="dark"] .block p, :root[data-theme="dark"] .uses-list li, :root[data-theme="dark"] .gloss-term p,
  :root[data-theme="dark"] .legal-page section.lp p, :root[data-theme="dark"] .legal-page section.lp li,
  :root[data-theme="dark"] .blend-recipe, :root[data-theme="dark"] .fact .fv, :root[data-theme="dark"] .goal-intro,
  :root[data-theme="dark"] .lead-card, :root[data-theme="dark"] .prep-box, :root[data-theme="dark"] .mini-card p,
  :root[data-theme="dark"] .q-opts button, :root[data-theme="dark"] .cmp-table td { color:var(--color-fg) !important; }
  :root[data-theme="dark"] .cmp-table thead th, :root[data-theme="dark"] .cmp-table .rowlabel { background:#12201A !important; }
  :root[data-theme="dark"] .cmp-table th, :root[data-theme="dark"] .cmp-table td { border-color:var(--color-border) !important; }
  :root[data-theme="dark"] .warn-box { background:#2F2712 !important; color:#F3D488 !important; }
  :root[data-theme="dark"] .warn-box svg { stroke:#F3D488 !important; }
  :root[data-theme="dark"] .dose-note { background:#2A230F !important; color:#EAC77A !important; border-color:#4A3A15 !important; }
  :root[data-theme="dark"] .lead-card::before { background:var(--color-primary) !important; }
  :root[data-theme="dark"] img:not(.leaf-mark):not([alt=""]) { filter:brightness(.92); }
  :root[data-theme="dark"] footer { background:#0B140F !important; }
  /* theme toggle button */
  .theme-toggle { background:none; border:1.5px solid var(--color-border); color:var(--color-primary-dark); cursor:pointer;
    width:40px; height:40px; border-radius:50%; display:inline-grid; place-items:center; transition:background .2s, transform .2s; }
  .theme-toggle:hover { transform:translateY(-2px); background:var(--color-bg-2); }
  .theme-toggle svg { width:20px; height:20px; }
