/*
Theme Name: Botanica Candle House
Theme URI: https://botanicacandlehouse.lt/
Description: GeneratePress child theme for Botanica Candle House — calm, airy, handmade Lithuanian soy-candle WooCommerce shop. Warm-white palette, light type (Playfair Display + Jost + Waterfall), Brooklyn-style product page. All design tokens live here; functions.php wires WP + WooCommerce to them. Header/footer are GP Premium Block Elements so the client edits everything with no code.
Author: ovanap.dev team
Template: generatepress
Version: 1.0.0
Text Domain: botanica
*/

/* ============================================================
   1 · DESIGN TOKENS  (single source of truth — brief §15 exact)
   ============================================================ */
:root{
  /* The 6 core tokens point at GeneratePress Global Colors (owner-facing master,
     Customizer → Colors → Global Colors; emitted by functions.php from GP's
     option). The literal is only a fallback if the Global Color is ever unset.
     Everything else in the theme keeps referencing these token names unchanged. */
  --bg:var(--bc-base,#FFFEFC);          /* warm white page bg */
  --surface:#FFFFFF;     /* cards */
  --surface-2:#FCFAF4;   /* subtle card */
  --bg-intermediate:#FBF8F3; /* intermediate warm bg (between --bg #FFFEFC & --tint) — contact form panel */
  --tint:#F2ECE3;        /* tinted band */
  --tint-2:#F1EAD9;      /* image placeholder bg */
  --ink:var(--bc-ink,#2A2723);         /* primary text (headings + body) */
  --meta:var(--bc-muted,#6F685C);      /* secondary / meta — legible, never ghosted */
  --meta-2:#4A443B;      /* slightly darker body-secondary */
  --hair:var(--bc-border,#E7DECB);     /* hairline / divider */
  --hair-2:#EFE8D8;      /* inner hairline */
  --hair-3:#E2D8C3;
  --line:#DCD3BF;        /* underline for text inputs (contact + review forms) */
  --olive:var(--bc-accent,#6E6F4F);    /* announcement bar / accent */
  --olive-2:#7C7E5E;     /* active dot / selection / small accent labels */
  --olive-deep:#5E6047;  /* newsletter button text */
  --footer:var(--bc-dark,#2A2723);     /* dark footer / CTA bands */
  --footer-head:#EDE5D4;
  --footer-text:#B7AE9B;
  --footer-link:#A79E8C;
  --on-dark:#FBF7EF;     /* light label on dark/olive */

  --serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --sans:'Jost',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --script:'Waterfall',cursive;
  --wf-scale:1.1;        /* Waterfall editorial-quote size multiplier (owner: +10%) */

  /* ── Body/UI type scale (Jost). Three fixed steps; headings (Playfair) and the
     script accent (Waterfall) are NOT on this scale. Sizes are unchanged from the
     build — only the leading is normalized here so body copy stops drifting (it
     was a mix of 1.6 / 1.65 / 1.7 / 1.75, giving 16/26, 16/27, 15/25, 14/22…).
     Map: 16/27 & 16/28 → body; 15/25 & 15/26 → mid; 14/23 → small. ── */
  --text-body:16px;  --lh-body:1.6;     /* 16 / 26 — primary body copy + leads    */
  --text-mid:15px;   --lh-mid:1.6;      /* 15 / 24 — secondary/flowing body + UI  */
  --text-small:14px; --lh-small:1.571;  /* 14 / 22 — meta / small print           */
  /* NB: --lh-body is also the inherited base leading (BASE rule below). 1.6 keeps
     size-only UI on-scale (14px→22, 12px→19); 1.625 would round 14px up to 23. */

  --maxw:1280px;
  --pad:36px;
  --page-hero-gap:16px;  /* header → page-hero spacing, ONE fixed value across ALL page types + widths (not owner-editable) */
  /* shared primary WooCommerce action-button metrics — reference = the PDP
     add-to-cart "Į KREPŠELĮ". One token, applied to login/register/place-order/
     update-cart so they can't drift back to the tiny WC-default size (~27px). */
  --btn-pad:16px 24px; --btn-fs:12px; --btn-ls:1.4px;
}

/* ============================================================
   2 · BASE
   ============================================================ */
body.botanica,
.botanica-scope{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  font-size:var(--text-body);
  line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.botanica a{color:inherit;text-decoration:none;}
.botanica img{display:block;max-width:100%;height:auto;}
.botanica ::selection{background:var(--olive-2);color:var(--on-dark);}
/* ---- No browser/Woo default BLUE anywhere: one olive accent sitewide ----
   Native checkboxes/radios (checkout terms, login remember-me, shipping/payment
   radios, cookie consent), focus rings and the mobile Safari tap flash all default
   to blue. Route every one to the olive accent token. Buttons keep their own
   fill-out focus treatment (§ buttons); this only covers everything else. */
.botanica,
.botanica input,.botanica select,.botanica textarea{accent-color:var(--olive);}
.botanica{-webkit-tap-highlight-color:rgba(110,111,79,.18);}
.botanica a:focus-visible,
.botanica input:focus-visible,
.botanica select:focus-visible,
.botanica textarea:focus-visible,
.botanica label:focus-visible,
.botanica summary:focus-visible,
.botanica [tabindex]:focus-visible{outline:2px solid var(--olive);outline-offset:2px;border-radius:2px;}
.botanica input[type=text]:focus,.botanica input[type=email]:focus,
.botanica input[type=tel]:focus,.botanica input[type=password]:focus,
.botanica input[type=search]:focus,.botanica input[type=number]:focus,
.botanica select:focus,.botanica textarea:focus{border-color:var(--olive);}
.botanica h1,.botanica h2,.botanica h3,.botanica h4{font-family:var(--serif);font-weight:400;color:var(--ink);line-height:1.1;}
.botanica .container{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}

/* eyebrow label (brief §15: #6F685C, 12–13px, 500) */
.bc-eyebrow{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;color:var(--meta);}
.bc-script{font-family:var(--script);color:var(--ink);}        /* the 2–3 allowed script accents */
/* home founder signature: the name only, +20% over the 30px reference size
   (same script font + colour; owner enhancement). */
.botanica .bc-founder-name{font-size:calc(30px * 1.2);}
.bc-meta{color:var(--meta);}
.bc-price{font-family:var(--sans);color:var(--ink);}            /* prices: simple sans, €39,95 */

/* ============================================================
   3 · BUTTONS  (restrained, consistent — brief §12)
   ============================================================ */
/* The BUTTON is the link/element itself — never a surrounding box. The wp:button
   wrapper (.wp-block-button.bc-btn) carries NO border/background/padding so there
   is no box around the button (demo = standalone button + thin outline). */
button.bc-btn,
a.bc-btn:not(.wp-block-button__link),
.botanica .wp-block-button__link{
  display:inline-block;background:var(--ink);color:var(--on-dark);
  padding:15px 38px;font-family:var(--sans);font-size:13px;letter-spacing:1.8px;
  text-transform:uppercase;font-weight:500;border:1px solid var(--ink);
  border-radius:0;cursor:pointer;transition:background .25s,color .25s;width:auto;}
button.bc-btn:hover,.botanica .wp-block-button__link:hover{background:#3C382F;color:var(--on-dark);}
/* wrapper div = layout only, no box */
.botanica .wp-block-button.bc-btn{background:none!important;border:none!important;padding:0!important;margin:0;}
.botanica .wp-block-button{margin:0;}
/* variants applied to the actual button (link), not the wrapper */
.botanica .bc-btn--light .wp-block-button__link,
button.bc-btn--light{background:var(--bg);color:var(--ink);border-color:var(--ink);}
.botanica .bc-btn--light .wp-block-button__link:hover{background:#EDE5D4;color:var(--ink);}
.botanica .bc-btn--outline .wp-block-button__link,
button.bc-btn--outline{background:transparent;color:var(--ink);border-color:var(--ink);}
.botanica .bc-btn--outline .wp-block-button__link:hover{background:var(--ink);color:var(--on-dark);}
.bc-link{display:inline-block;font-size:13px;letter-spacing:1.6px;text-transform:uppercase;
  font-weight:500;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:3px;}

/* ============================================================
   4 · ANNOUNCEMENT BAR + HEADER + NAV  (Block Elements use these)
   ============================================================ */
.bc-announce{background:var(--olive);}
.bc-announce .container{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding-top:10px;padding-bottom:10px;font-size:12px;letter-spacing:1px;text-transform:uppercase;
  color:#F4EFE2;font-weight:500;}
.bc-announce .bc-spacer{width:46px;flex:0 0 auto;}
.bc-announce .bc-lang{cursor:pointer;flex:0 0 auto;}
.bc-announce .bc-lang .alt{color:#C9C8AE;font-weight:400;}

/* No bottom hairline under the header in ANY state (Tomas's request). The sticky
   soft shadow (§ .is-stuck) stays for elevation — it is not a line. */
.bc-header{background:var(--bg);}
/* Sticky header — desktop AND mobile (client request).
   The header sticks to the top after the announcement bar scrolls away.
   .is-stuck (added by JS on scroll) compacts logo + adds a soft shadow. */
.bc-header--sticky{position:sticky;top:0;z-index:50;transition:box-shadow .3s ease,padding .3s ease;
  /* keep the sticky header on its own composited layer so Chrome doesn't
     repaint/flicker it during the compact transition (safe: transform on the
     sticky element itself doesn't break its stickiness). */
  will-change:transform;transform:translateZ(0);backface-visibility:hidden;}
.bc-header--sticky.is-stuck{box-shadow:0 6px 22px rgba(42,39,35,.07);}
.bc-header--sticky.is-stuck .bc-header-row{padding-top:14px;}
.bc-header--sticky.is-stuck .bc-nav{padding-top:12px;padding-bottom:18px;}
.bc-header--sticky.is-stuck .bc-logo img{height:64px;transition:height .3s ease;}
.bc-logo img{transition:height .3s ease;}
.bc-header-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;
  /* equal breathing room above/below the logo (was 26/0): ~20 top + 20 nav-top below */
  padding-top:20px;padding-bottom:0;}
/* side zones flex from 0 so the burger (left) / cart (right) widths can never push
   the centre (logo) column off-centre — logo stays dead-centre at any width/state. */
.bc-header-icons{min-width:0;}
.bc-header-icons{display:flex;gap:22px;align-items:center;}
.bc-header-icons.right{justify-self:end;}
.bc-logo{justify-self:center;}
.bc-logo img{height:92px;width:auto;}
.bc-ico{display:inline-flex;align-items:center;cursor:pointer;color:var(--ink);transition:color .2s;}
.bc-ico:hover{color:var(--olive);}
.bc-cartcount{font-size:12px;font-weight:500;color:var(--meta);}

.bc-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 32px;
  padding-top:20px;padding-bottom:22px;font-size:13px;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--ink);font-weight:400;}
.bc-nav a{cursor:pointer;}
/* Top-level items render directly inside <nav> (items_wrap '%3$s', no <ul>), so
   each <li> is display:list-item and shows its default disc "•" marker. Suppress
   it. Sub-menu <li> keep their own reset via ul.sub-menu (list-style:none). */
.bc-nav > li{list-style:none;}
.bc-nav .current-menu-item>a,.bc-nav a.is-current{border-bottom:1px solid var(--ink);padding-bottom:2px;}
.bc-nav .menu-item-has-children>a::after{content:" ▾";font-size:8px;}
.bc-nav ul.sub-menu,.bc-drop .bc-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%);
  background:var(--bg);border:1px solid var(--hair);box-shadow:0 14px 34px rgba(42,39,35,.10);
  padding:14px 0;min-width:222px;display:flex;flex-direction:column;opacity:0;visibility:hidden;
  transition:opacity .22s ease;z-index:45;list-style:none;margin:0;}
.bc-nav li{position:relative;}
.bc-nav li:hover>ul.sub-menu,.bc-drop:hover .bc-menu{opacity:1;visibility:visible;}
.bc-nav ul.sub-menu a,.bc-drop .bc-menu a{display:block;padding:10px 24px;font-size:11.5px;letter-spacing:1.2px;
  text-transform:uppercase;color:#4A443B;white-space:nowrap;border-bottom:none;}
.bc-nav ul.sub-menu a:hover,.bc-drop .bc-menu a:hover{background:var(--tint);color:var(--ink);}
/* B5 — shop dropdown: set the two CATEGORY rows ("Visos žvakės" / "Arbatinės
   žvakutės ir aksesuarai") apart from the scent list — owner wants them NOT bold, so
   the categories match the product rows' weight/colour/tracking; only a hairline
   divider + a little extra spacing group the scents (no heavier text). */
/* only the first category ("Visos žvakės") is bold; scents + "Arbatinės…" stay regular */
.bc-nav ul.sub-menu li.bc-cat:first-child > a{font-weight:600;}
.bc-nav ul.sub-menu li.bc-cat + li:not(.bc-cat) > a{padding-top:14px;}
.bc-nav ul.sub-menu li.bc-cat ~ li.bc-cat{border-top:1px solid var(--hair-2);margin-top:6px;padding-top:6px;}

/* burger + mobile drawer (hidden on desktop) */
.bc-burger{display:none;background:none;border:none;}
.bc-drawer{position:fixed;inset:0;background:rgba(42,39,35,.5);opacity:0;visibility:hidden;
  transition:opacity .3s ease;z-index:60;}
.bc-drawer.is-open{opacity:1;visibility:visible;}
/* full-screen drawer (covers the whole viewport, no top gap) */
.bc-drawer__panel{position:absolute;top:0;left:0;right:0;bottom:0;width:100vw;max-width:100vw;background:var(--bg);
  transform:translateX(-100%);transition:transform .3s ease;padding:18px 28px 24px;overflow-y:auto;
  display:flex;flex-direction:column;}
.bc-drawer.is-open .bc-drawer__panel{transform:none;}
/* drawer top now holds only the close X (brand text removed — client error) → right-align */
.bc-drawer__top{display:flex;align-items:center;justify-content:flex-end;margin-bottom:14px;
  padding-bottom:14px;border-bottom:1px solid var(--hair-2);}
.bc-drawer__close{background:none;border:none;font-size:34px;line-height:1;color:var(--ink);cursor:pointer;padding:0 4px;}
.bc-drawer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}
.bc-drawer__list a{display:block;padding:14px 0;font-size:15px;letter-spacing:1.4px;text-transform:uppercase;
  border-bottom:1px solid var(--hair-2);color:var(--ink);}
/* Collapsible product submenu — keeps the drawer compact and scales past ~20
   products (default collapsed; tap PARDUOTUVĖ to expand). JS toggles .is-open. */
.bc-drawer__list .menu-item-has-children > a{position:relative;}
.bc-drawer__list .menu-item-has-children > a::after{content:"";position:absolute;right:4px;top:50%;width:8px;height:8px;
  border-right:1.6px solid var(--ink);border-bottom:1.6px solid var(--ink);transform:translateY(-75%) rotate(45deg);
  transition:transform .25s ease;opacity:.55;}
.bc-drawer__list .menu-item-has-children.is-open > a::after{transform:translateY(-25%) rotate(225deg);}
.bc-drawer__list .sub-menu{list-style:none;margin:0;max-height:0;overflow:hidden;padding:0 0 0 14px;transition:max-height .32s ease;}
.bc-drawer__list .menu-item-has-children.is-open > .sub-menu{max-height:2000px;padding:4px 0 10px 14px;}
.bc-drawer__list .sub-menu a{font-size:12.5px;border-bottom:none;padding:8px 0;color:var(--meta-2);}
/* mobile drawer: only "Visos žvakės" (first category) bold, matching desktop */
.bc-drawer__list .sub-menu li.bc-cat:first-child > a{font-weight:600;color:var(--ink);}
@media(max-width:860px){
  .bc-burger{display:inline-flex;}
  .bc-header .bc-nav{display:none;}
}

/* ============================================================
   5 · HERO  (single ken-burns image — keep text in normal flow,
      KB Chrome paint bug: no animation/filter on hero text/CTA)
   ============================================================ */
.bc-hero{position:relative;overflow:hidden;background:var(--hair);}
.bc-hero--home{height:660px;}
.bc-hero--inner{height:clamp(320px,40vw,460px);}
.bc-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  animation:bcKenBurns 26s ease-in-out infinite;will-change:transform;}
.bc-hero__overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(42,39,35,.10),rgba(42,39,35,.42));}
.bc-hero__overlay--inner{background:linear-gradient(to bottom,rgba(42,39,35,.34),rgba(42,39,35,.56));}
.bc-hero__inner{position:relative;height:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);
  display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--on-dark);}
.bc-hero__inner h1{color:var(--on-dark);font-weight:400;}
.bc-hero--home h1{font-size:70px;line-height:1.04;letter-spacing:1px;text-shadow:0 1px 30px rgba(42,39,35,.3);}
.bc-hero--inner h1{font-size:clamp(36px,5.4vw,56px);line-height:1.24;text-shadow:0 2px 22px rgba(42,39,35,.5);}
.bc-hero__script{font-family:var(--script);font-size:46px;line-height:1;margin-bottom:4px;color:#F4EFE4;}
.bc-hero__lead{margin-top:18px;font-size:var(--text-body);line-height:var(--lh-body);max-width:46ch;color:#F2ECE0;}
.bc-hero__eyebrow{font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:500;margin-bottom:14px;color:#EDE7DA;}
.bc-hero__scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:#F2ECE0;animation:bcFloat 2.8s ease-in-out infinite;}
@keyframes bcKenBurns{0%{transform:scale(1.0);}50%{transform:scale(1.05);}100%{transform:scale(1.0);}}
@keyframes bcFloat{0%{transform:translateY(0);}50%{transform:translateY(7px);}100%{transform:translateY(0);}}
@media(prefers-reduced-motion:reduce){.bc-hero__img,.bc-hero__scroll{animation:none;}}

/* ============================================================
   6 · SECTIONS / SPLITS / GRIDS
   ============================================================ */
.bc-section{max-width:var(--maxw);margin:0 auto;padding:88px var(--pad);}
.bc-band{background:var(--tint);}
/* GP wraps every group in an inner-container with 40px pad + 1200 max-width; on our
   full-width tint bands that DOUBLE-pads the content (the .bc-section inside already
   handles max-width + its own 88px/36px padding), making pages taller than the
   reference (the reference bands have 0 wrapper padding). Neutralise it so a band's
   spacing = its .bc-section only, matching the reference. */
/* GP adds a 40px-padded, 1200-max-width inner-container to EVERY group. Our design
   sets all padding on the .bc-* elements themselves, so this is always unwanted
   double-padding — it inflated section AND contact-row heights vs the reference.
   Neutralise it globally; the .bc-* elements own their spacing/width. */
.botanica .wp-block-group__inner-container{max-width:none;padding:0;}
.bc-band--dark{background:var(--footer);color:var(--footer-head);}
.bc-split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.bc-split--feature{grid-template-columns:1.05fr .95fr;}
.bc-split--story{grid-template-columns:1fr 1.05fr;gap:72px;}
/* Home accessories teaser ("Smulkmenos…") — reference 1:1 on DESKTOP: image = a
   white square (1/1) at the band edge (no section padding, no column gap), text
   column padded. Mobile (<=860) stacks via the shared rule below — untouched. */
@media(min-width:861px){
  /* neutralise GP's group inner-container (40px pad + 1200 max-width) for THIS
     band only, so the image square reaches the 1280 container edge like the ref */
  .botanica .wp-block-group__inner-container:has(> .bc-split--teatime){max-width:none;padding:0;}
  .botanica .bc-split--teatime{grid-template-columns:1fr 1fr!important;gap:0!important;padding:0!important;align-items:center;}
  .botanica .bc-split--teatime > .wp-block-column{margin:0;}
  .botanica .bc-split--teatime .bc-imgwrap{aspect-ratio:1/1;background:var(--surface);}
  .botanica .bc-split--teatime .bc-imgwrap img{width:100%;height:100%;object-fit:cover;object-position:center 62%;}
  /* The horizontal padding IS the gap between the picture and the text in this
     edge-to-edge split — there is no column gap to fall back on. clamp()'s
     28px floor let it close to 45px around 900px wide while the featured
     block above keeps a steady 64px, so the same page showed two different
     rhythms depending on the window. Floor it at the featured block's gap.
     Measured: 1600/1440 = 68px, 1280 = 64px, 1100 = 55px, 1000 = 50px,
     900 = 45px before this; 64px minimum after. Below 783px the columns
     stack and this rule no longer applies. */
  .botanica .bc-split--teatime > .wp-block-column:last-child{padding:clamp(40px,5vw,64px) clamp(64px,5vw,68px);box-sizing:border-box;}
}
/* core image blocks must be block + full-width or aspect-ratio collapses */
.botanica .wp-block-image{display:block;margin:0;}
.botanica .wp-block-image.bc-imgwrap,.botanica .wp-block-image.bc-card__media{width:100%;}
.bc-imgwrap{display:block;width:100%;overflow:hidden;background:var(--tint-2);line-height:0;}
/* Linked feature images: the <a> must fill the aspect-ratio figure so the <img>'s
   height:100% + object-fit:cover engage. Without this a non-matching image (e.g. a
   square photo in a 4:5 frame) sits at natural height and leaves an empty strip. */
.bc-imgwrap a{display:block;width:100%;height:100%;}
/* image FILLS the wrapper (height:100%) and the aspect-ratio lives on the WRAPPER,
   so the img can never sit short of its box — no placeholder-bg strip below it. */
.bc-imgwrap img{width:100%;height:100%;object-fit:cover;display:block;}
.bc-ar-45{aspect-ratio:4/5;}
.bc-ar-11{aspect-ratio:1/1;}
.bc-scent img{transition:transform 1.1s ease;}
.bc-scent:hover img{transform:scale(1.045);}

/* product / scent cards (photo + name + one-line scent + price ONLY) */
.bc-cards{display:grid;gap:30px;}
.bc-cards--4{grid-template-columns:repeat(4,1fr);}
.bc-cards--3{grid-template-columns:repeat(3,1fr);}
.bc-cards--auto{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(22px,2.4vw,36px);}
.bc-card__media{display:block;width:100%;overflow:hidden;aspect-ratio:4/5;background:var(--tint-2);}
.bc-card__media img{width:100%;height:100%;object-fit:cover;display:block;}
.bc-card__name{margin-top:16px;font-family:var(--serif);font-size:23px;font-weight:400;color:var(--ink);}
.bc-card__scent{margin-top:4px;font-size:13px;letter-spacing:.2px;color:var(--meta);}
.bc-card__price{margin-top:9px;font-size:15px;color:var(--ink);}
.bc-card__tag{margin-top:10px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--olive-2);font-weight:500;}

/* trust badges (4 on home) */
.bc-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;
  max-width:1080px;margin:0 auto;padding:54px var(--pad);border-bottom:1px solid var(--hair);}
.bc-badge{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;}
.bc-badge img{height:118px;width:auto;}
.bc-badge span{font-size:13px;letter-spacing:.6px;color:var(--ink);font-weight:500;}

/* quote band */
.bc-quote{max-width:880px;margin:0 auto;padding:100px var(--pad);text-align:center;}
/* B4 — enforce centered quote + soy-wax soft-quote on all widths (guards against a
   cached/edited instance losing alignment); text wraps by width, no manual breaks. */
.botanica .bc-quote p,.botanica .bc-soft-quote{text-align:center;margin-left:auto;margin-right:auto;}
.bc-quote p{font-family:var(--serif);font-weight:400;font-style:italic;font-size:38px;line-height:1.3;color:var(--ink);}

/* values / list rows */
.bc-rule-list{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;}
.bc-rule-row{display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--hair-3);}
.bc-rule-row .dash{color:var(--olive);flex:0 0 auto;}
.bc-rule-row span:last-child{font-size:var(--text-body);line-height:var(--lh-body);color:var(--ink);}

/* ============================================================
   7 · NEWSLETTER  (Likime kartu)
   ============================================================ */
.bc-news{max-width:680px;margin:0 auto;padding:96px var(--pad);text-align:center;}
.bc-news h2{font-weight:400;font-size:42px;letter-spacing:.5px;}
.bc-news p{margin:18px auto 28px;font-size:var(--text-mid);line-height:var(--lh-mid);color:var(--meta);max-width:44ch;}
.bc-news__form{display:flex;max-width:min(420px,100%);margin:0 auto;border-bottom:1px solid var(--ink);}
.bc-news__form input{flex:1;min-width:0;background:transparent;border:none;padding:12px 4px;font-size:15px;color:var(--ink);outline:none;}
.bc-news__form button{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;padding:0 12px;color:var(--olive-deep);background:none;border:none;cursor:pointer;}

/* ============================================================
   8 · FOOTER  (Block Element)
   ============================================================ */
.bc-footer{background:var(--footer);color:#C7BEAD;}
.bc-footer a{cursor:pointer;}
.bc-foot-service{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;
  max-width:var(--maxw);margin:0 auto;padding:32px var(--pad);border-bottom:1px solid rgba(255,255,255,.09);}
.bc-foot-service .h{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--footer-head);font-weight:500;}
.bc-foot-service .v{font-size:15px;color:var(--footer-text);margin-top:7px;}
.bc-foot-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;
  max-width:var(--maxw);margin:0 auto;padding:54px var(--pad);}
.bc-foot-cols .logo{height:62px;width:auto;filter:brightness(0) invert(1);opacity:.92;}
.bc-foot-cols .blurb{margin-top:18px;font-size:var(--text-small);line-height:var(--lh-small);color:#A79E8C;max-width:30ch;}
.bc-foot-cols .h{font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--footer-head);font-weight:500;margin-bottom:16px;}
.bc-foot-cols .links{display:flex;flex-direction:column;gap:11px;font-size:14px;color:var(--footer-link);}
.bc-foot-legal{display:flex;flex-wrap:wrap;gap:8px 22px;max-width:var(--maxw);margin:0 auto;padding:18px var(--pad);
  border-top:1px solid rgba(255,255,255,.09);font-size:12px;letter-spacing:.4px;color:#8C8472;}
.bc-foot-copy{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;max-width:var(--maxw);margin:0 auto;
  padding:14px var(--pad) 40px;font-size:12px;letter-spacing:.4px;color:#7E7565;}
.bc-foot-copy .by{color:#B8B095;}

/* ============================================================
   9 · WOOCOMMERCE — SHOP ARCHIVE
   ============================================================ */
.botanica.woocommerce ul.products,.botanica.woocommerce ul.products{display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(22px,2.4vw,36px);margin:0;list-style:none;}
.botanica.woocommerce ul.products li.product{float:none;width:auto;margin:0;text-align:left;}
.botanica.woocommerce ul.products li.product a img{margin:0;aspect-ratio:4/5;object-fit:cover;background:var(--tint-2);}
.botanica.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--serif);
  font-size:23px;font-weight:400;color:var(--ink);padding:16px 0 0;}
.botanica.woocommerce ul.products li.product .price{font-family:var(--sans);color:var(--ink);font-size:15px;font-weight:400;}
.botanica.woocommerce ul.products li.product .price del{color:var(--meta);opacity:.7;}
.botanica.woocommerce ul.products li.product .button{margin-top:8px;}
.botanica.woocommerce .woocommerce-result-count,
.botanica.woocommerce .woocommerce-ordering{color:var(--meta);font-size:12px;letter-spacing:1px;text-transform:uppercase;}

/* Shop/archive: the product grid sat FLUSH under the full-bleed hero header
   (hero bottom == grid top, 0 gap) — the hero image and the first product image
   read as one glued block. Separate them, and give the single-column mobile grid
   a clearer rhythm between cards (was 22px). */
.botanica.woocommerce-shop .entry-content > ul.products,
.botanica.post-type-archive-product .entry-content > ul.products,
.botanica.tax-product_cat .entry-content > ul.products,
.botanica.tax-product_tag .entry-content > ul.products{margin-top:clamp(34px,5vw,64px);}
@media(max-width:768px){
  .botanica.woocommerce-shop .entry-content > ul.products,
  .botanica.post-type-archive-product .entry-content > ul.products,
  .botanica.tax-product_cat .entry-content > ul.products,
  .botanica.tax-product_tag .entry-content > ul.products{row-gap:44px;}
}

/* Shop archive MOBILE gutter: on mobile the max-width container no longer
   creates side margins, so the product grid / result-count / sorting sat flush
   to the screen edge (the demo insets them ~var(--pad)). Pad the direct
   children of .entry-content only — the full-bleed hero (header) stays edge-to-
   edge and the accessories section keeps its own padding (no double gutter). */
@media(max-width:768px){
  .botanica.woocommerce-shop .entry-content > ul.products,
  .botanica.woocommerce-shop .entry-content > .woocommerce-result-count,
  .botanica.woocommerce-shop .entry-content > .woocommerce-ordering,
  .botanica.post-type-archive-product .entry-content > ul.products,
  .botanica.post-type-archive-product .entry-content > .woocommerce-result-count,
  .botanica.post-type-archive-product .entry-content > .woocommerce-ordering,
  .botanica.tax-product_cat .entry-content > ul.products,
  .botanica.tax-product_cat .entry-content > .woocommerce-result-count,
  .botanica.tax-product_cat .entry-content > .woocommerce-ordering,
  .botanica.tax-product_tag .entry-content > ul.products,
  .botanica.tax-product_tag .entry-content > .woocommerce-result-count,
  .botanica.tax-product_tag .entry-content > .woocommerce-ordering{
    padding-left:var(--pad);padding-right:var(--pad);box-sizing:border-box;}
}

/* ============================================================
   10 · WOOCOMMERCE — SINGLE PRODUCT (Brooklyn sticky pattern)
   ============================================================ */
/* Brooklyn 1:1 (content-single-product.php): LEFT = sticky thumbnail strip +
   stacked main images that scroll; RIGHT = sticky info column. */
.botanica.single-product div.product{display:block;}
.botanica .bc-pdp-grid{max-width:var(--maxw);margin:0 auto;padding:20px var(--pad) 40px;
  display:grid;grid-template-columns:1.12fr 1fr;gap:68px;align-items:start;}
.botanica .bc-pdp-gallery{display:flex;gap:14px;align-items:flex-start;}
.botanica .bc-pdp-thumbs{position:sticky;top:104px;display:flex;flex-direction:column;gap:12px;flex:0 0 78px;}
.botanica .bc-pdp-thumb{display:block;overflow:hidden;aspect-ratio:1/1;background:var(--tint-2);
  border:1px solid var(--hair);opacity:.55;transition:opacity .2s,border-color .2s;}
.botanica .bc-pdp-thumb.is-active{border-color:var(--ink);opacity:1;}
.botanica .bc-pdp-thumb img{width:100%;height:100%;object-fit:cover;margin:0;}
.botanica .bc-pdp-images{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px;}
.botanica .bc-pdp-image{margin:0;overflow:hidden;background:var(--tint-2);scroll-margin-top:104px;aspect-ratio:4/5;}
.botanica .bc-pdp-image img{width:100%;height:100%;object-fit:cover;display:block;}
/* A demonstration clip in the gallery. `contain`, not `cover`: the photographs
   are compositions that survive a crop, a clip is an ACTION and cropping it can
   cut the very thing it demonstrates. The box keeps the gallery's 4:5 rhythm. */
.botanica .bc-pdp-image--video{background:var(--tint-2);}
.botanica .bc-pdp-video{width:100%;height:100%;object-fit:contain;display:block;background:var(--tint-2);}
.botanica .bc-pdp-thumb--video{position:relative;}
.botanica .bc-pdp-thumb__play{position:absolute;inset:0;display:grid;place-items:center;
  color:#fff;background:rgba(42,39,35,.28);}
.botanica .bc-pdp-grid .summary.entry-summary{position:sticky;top:104px;align-self:start;margin:0;width:auto!important;float:none;}
.botanica .bc-breadcrumb{max-width:var(--maxw);margin:0 auto;padding:26px var(--pad) 4px;
  font-size:13px;letter-spacing:.3px;color:var(--meta);}
.botanica .bc-breadcrumb .current{color:var(--ink);}
.botanica.single-product .summary .product_title{font-size:48px;line-height:1.04;letter-spacing:.5px;font-weight:400;font-family:var(--serif);}
.botanica.single-product .summary .price{font-size:26px;font-weight:400;color:var(--ink);font-family:var(--sans);margin-top:18px;display:block;}
/* variable PDP: one selected price + descriptor (JS-updated), replaces Woo's range */
.botanica.single-product .summary .bc-pdp-price{margin-top:20px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;}
.botanica.single-product .summary .bc-pdp-price__amount{font-size:26px;font-weight:400;letter-spacing:.3px;color:var(--ink);font-family:var(--sans);}
.botanica.single-product .summary .bc-pdp-price__amount .woocommerce-Price-amount{font-size:inherit;font-weight:inherit;color:inherit;}
.botanica.single-product .summary .bc-pdp-price__desc{font-size:14px;letter-spacing:.3px;color:var(--meta);}
.botanica.single-product .summary .woocommerce-product-details__short-description{margin-top:24px;font-size:var(--text-body);line-height:var(--lh-body);color:var(--ink);max-width:46ch;}
.botanica.single-product .summary .bc-eyebrow{display:block;margin-bottom:16px;}
/* after-summary rows: own full-width band, never overlapping the buy column */
.botanica.single-product .woocommerce-tabs,
.botanica.single-product .related,
.botanica.single-product .upsells{max-width:var(--maxw);margin-left:auto;margin-right:auto;
  padding-left:var(--pad);padding-right:var(--pad);clear:both;}
.botanica.single-product .related.products{padding-top:78px;padding-bottom:78px;} /* ref 78/78 (was 20 — under desktop+mobile) */
/* Related "Galbūt patiks ir šie": reference = 3 equal columns spanning the
   container, gap 34px (NOT the shop's auto-fill 230px grid, which made the cards
   too narrow). Cards keep the 4/5 image ratio + scent line + "nuo €" price. */
.botanica.single-product .related.products ul.products{grid-template-columns:repeat(3,1fr);gap:34px;}
@media(max-width:860px){
  .botanica.single-product .related.products ul.products{grid-template-columns:1fr;}
}
@media(max-width:1024px){
  .botanica .bc-pdp-grid{grid-template-columns:1fr;gap:30px;}
  .botanica .bc-pdp-thumbs{display:none;}
  .botanica .bc-pdp-grid .summary.entry-summary{position:static;}
}

/* scent notes */
.bc-notes{margin-top:36px;border-top:1px solid var(--hair);padding-top:24px;}
.bc-notes .h{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;color:var(--meta);margin-bottom:14px;}
.bc-notes__row{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:10px 0;border-bottom:1px solid var(--hair-2);}
.bc-notes__row:last-child{border-bottom:none;}
.bc-notes__row .k{font-size:14px;color:var(--meta);white-space:nowrap;}
.bc-notes__row .v{font-size:15px;color:var(--ink);text-align:right;}

/* size selector (variations as S/M/L boxes) */
.bc-sizes{margin-top:32px;}
.bc-sizes .h{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;color:var(--meta);margin-bottom:13px;}
.bc-sizes__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.bc-size{padding:14px 8px;text-align:center;cursor:pointer;transition:all .2s;user-select:none;border:1px solid #E0D7C3;background:transparent;}
.bc-size.is-active{border-color:var(--ink);background:var(--surface);}
.bc-size .s{font-size:15px;letter-spacing:.5px;font-weight:500;color:var(--ink);}
.bc-size .m{font-size:13px;color:var(--meta);margin-top:6px;}

/* reference shows no product-meta line (SKU already hidden when empty via PHP;
   the category link isn't in the design) — hide the whole meta row to match 1:1. */
.botanica.single-product .product_meta{display:none;}
/* native Woo variations table is hidden — S/M/L boxes proxy it */
.botanica.single-product .variations{display:none;}
.botanica.single-product .woocommerce-variation-add-to-cart .reset_variations{display:none;}
/* the standalone Woo variation price is redundant now (price shows in the top
   price row + the add-to-cart label) — hide it, keep availability/stock text. */
.botanica.single-product .single_variation .price,
.botanica.single-product .woocommerce-variation-price{display:none;}

/* inline trust icons */
.bc-pdp-trust{margin-top:28px;display:flex;gap:26px;padding:20px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.bc-pdp-trust>div{display:flex;flex-direction:column;align-items:center;gap:9px;flex:1;text-align:center;}
.bc-pdp-trust img{height:46px;width:auto;}
.bc-pdp-trust span{font-size:11.5px;color:var(--meta);}

/* add to cart row */
.botanica .bc-pdp__info form.cart{margin-top:22px;display:flex;gap:10px;align-items:stretch;}
.botanica .bc-pdp__info form.cart .quantity{display:flex;align-items:center;border:1px solid var(--ink);flex:0 0 auto;}
.botanica .bc-pdp__info form.cart .single_add_to_cart_button{flex:1;background:var(--ink);color:var(--on-dark);
  padding:17px;font-size:13px;letter-spacing:1.8px;text-transform:uppercase;font-weight:500;border:none;border-radius:0;}
.botanica .bc-pdp__info form.cart .single_add_to_cart_button:hover{background:#3C382F;}
/* "Pirkti dabar" (buy now) — full-width outline button below the add-to-cart row.
   It lives inside the variations form (so it submits the selected variation); the
   add-to-cart container (§17) wraps so it drops onto its own full-width line. */
.botanica.single-product .bc-buynow{flex:0 0 100%;width:100%;margin-top:0;background:transparent;color:var(--ink);
  border:1px solid var(--ink);border-radius:0;padding:16px;font-family:var(--sans);font-size:13px;letter-spacing:1.8px;
  text-transform:uppercase;font-weight:500;cursor:pointer;transition:background .25s,color .25s;}
.botanica.single-product .bc-buynow:hover,
.botanica.single-product .bc-buynow:active{background:var(--ink);color:var(--on-dark);}
/* touch: don't let the emulated hover stick (would freeze PIRKTI DABAR solid-dark
   after a tap) — cancel it, fill only WHILE pressed (:active). Mirrors §23.
   A real tap fires :hover AND :active together, so :active must be re-asserted
   AFTER the :hover reset (equal specificity → source order wins) or the reset
   swallows the press effect and the tap shows nothing. */
@media(hover:none){
  .botanica.single-product .bc-buynow:hover{background:transparent;color:var(--ink);}
  .botanica.single-product .bc-buynow:active{background:var(--ink);color:var(--on-dark);}
}
.bc-handmade{margin-top:20px;background:var(--surface-2);border:1px solid var(--hair);padding:15px 18px;
  font-size:var(--text-small);line-height:var(--lh-small);color:var(--meta);}
.bc-handmade b{color:var(--ink);font-weight:500;}

/* PDP sticky mini-bar — slides down on scroll (design 1:1). */
.bc-minibar{position:fixed;top:0;left:0;right:0;z-index:60;background:var(--bg);border-bottom:1px solid var(--hair);
  box-shadow:0 6px 22px rgba(42,39,35,.06);transform:translateY(-100%);transition:transform .35s ease;}
.bc-minibar.is-visible{transform:translateY(0);}
.bc-minibar__inner{max-width:var(--maxw);margin:0 auto;padding:11px var(--pad);display:flex;align-items:center;gap:18px;}
.bc-minibar__img img{width:46px;height:46px;object-fit:cover;background:var(--tint-2);display:block;}
.bc-minibar__meta{flex:1;min-width:0;}
.bc-minibar__name{font-family:var(--serif);font-size:21px;color:var(--ink);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bc-minibar__price{font-size:13px;color:var(--meta);margin-top:4px;}
.bc-minibar__price .woocommerce-Price-amount{font-size:inherit;color:inherit;}
.bc-minibar__btn{flex:0 0 auto;background:var(--ink);color:var(--on-dark);padding:13px 36px;font-size:12px;letter-spacing:1.8px;
  text-transform:uppercase;font-weight:500;border:none;cursor:pointer;transition:background .25s;}
.bc-minibar__btn:hover{background:#3C382F;}
@media(max-width:600px){
  .bc-minibar__name{font-size:17px;}
  .bc-minibar__btn{padding:12px 20px;}
  .bc-minibar__inner{gap:12px;}
}

/* accordion (max 3 rows) */
.bc-acc{margin-top:40px;}
.bc-acc__item{border-top:1px solid var(--hair);}
.bc-acc__item:last-child{border-bottom:1px solid var(--hair);}
.bc-acc__head{display:flex;align-items:center;gap:16px;padding:19px 0;cursor:pointer;
  font-size:13px;letter-spacing:.8px;text-transform:uppercase;color:var(--ink);font-weight:500;}
.bc-acc__sign{font-size:18px;color:var(--meta);width:14px;display:inline-block;text-align:center;}
.bc-acc__body{padding:0 0 22px;font-size:var(--text-mid);line-height:var(--lh-mid);color:#423E37;max-width:54ch;display:none;}
.bc-acc__item.is-open .bc-acc__body{display:block;}

/* mood band + 6-icon strip + reviews + related reuse tokens above */
/* Benefit strip — Brooklyn Candle style: LARGE line icons, airy grid, uppercase
   letter-spaced labels. Icon box (--bi) + label scale together via --benefit-scale
   (owner S/M/L = .8 / 1 / 1.15; M is the reference baseline). Desktop = one airy
   row of 6 (~118px); mobile drops to a 2-col grid with big icons (~140px). Icon
   PNGs are 360x360 (hi-res from the source sheet) so they stay >=2x sharp @DPR2
   (140px box -> 2.57x, 118px -> 3.05x). */
.bc-iconstrip{--bi:62px;display:grid;grid-template-columns:repeat(6,1fr);gap:40px 24px;max-width:1200px;margin:0 auto;padding:76px var(--pad);}
.bc-iconstrip>div{display:flex;flex-direction:column;align-items:center;gap:9.35px;text-align:center;}
.bc-iconstrip img{height:calc(var(--bi) * var(--benefit-scale,1));width:calc(var(--bi) * var(--benefit-scale,1));object-fit:contain;object-position:center bottom;display:block;}
/* Label: one step smaller (12px) + slightly tighter tracking (.08em) so every
   label fits ONE line down to 360px (longest, "PAGAMINTA LIETUVOJE", ~143px < the
   ~152px cell); no max-width cap so the cell governs and nothing force-wraps. */
.bc-iconstrip span{font-size:calc(10.5px * var(--benefit-scale,1));font-family:var(--benefit-font,var(--sans));
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-weight:500;line-height:1.3;}
.bc-mood{position:relative;height:520px;overflow:hidden;background:var(--hair);}
.bc-mood img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
/* R9: was a full-band scrim (rgba .46 -> .10). Her photographs are not dimmed
   any more — the contrast moved onto .bc-mood__plate, behind the words only.
   The element stays (it is a positioned box other rules rely on). */
.bc-mood__overlay{position:absolute;inset:0;background:none;}
.bc-mood__plate{background:rgba(251,247,239,.70);padding:clamp(20px,2.6vw,30px) clamp(22px,3.4vw,40px);
  /* px, not ch: `ch` here resolves against the panel's own 16px sans, so 26ch
     came out ~240px and broke the heading onto four lines with an orphan comma. */
  max-width:min(560px,100%);}
.bc-mood__inner{position:relative;height:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);
  display:flex;flex-direction:column;justify-content:center;color:var(--on-dark);}
/* R9: dark type on the plate. The old cream-on-photo pairing measured 1.07:1 on
   the bergamot band once the scrim came off — invisible. */
.bc-mood__inner h2{color:var(--ink);font-weight:400;font-size:44px;line-height:1.18;max-width:18ch;text-shadow:none;}
.bc-mood__plate .bc-hero__eyebrow{color:var(--meta);}

.botanica.woocommerce #reviews .commentlist{margin-top:24px;}
.botanica.woocommerce #review_form .form-submit input{background:transparent;color:var(--ink);
  border:1px solid var(--ink);padding:14px 40px;font-size:12px;letter-spacing:1.8px;text-transform:uppercase;font-weight:500;border-radius:0;}

/* ============================================================
   11 · WOOCOMMERCE — CART / CHECKOUT / ACCOUNT (brand-light)
   ============================================================ */
.botanica.woocommerce-cart table.cart,.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table{border-color:var(--hair);}
.botanica.woocommerce #payment,.botanica.woocommerce .cart_totals{background:var(--surface-2);border:1px solid var(--hair);}
.botanica.woocommerce form .form-row input.input-text,.botanica.woocommerce form .form-row textarea{
  border:1px solid var(--hair);background:var(--surface);border-radius:0;}
.botanica.woocommerce .button,.botanica.woocommerce a.button,.botanica.woocommerce button.button{
  background:var(--ink);color:var(--on-dark);border-radius:0;text-transform:uppercase;letter-spacing:var(--btn-ls);
  font-size:var(--btn-fs);font-weight:500;padding:var(--btn-pad);line-height:1.15;}
.botanica.woocommerce .button:hover{background:#3C382F;color:var(--on-dark);}
.botanica.woocommerce-message,.botanica.woocommerce-info{border-top-color:var(--olive);}
/* beat GenerateBlocks Pro / preset accent on primary Woo buttons */
.botanica.woocommerce button.button.alt,
.botanica.woocommerce .single_add_to_cart_button,
.botanica.woocommerce a.button.alt,
.botanica.woocommerce a.button,
.botanica.woocommerce ul.products li.product .button{
  background:var(--ink)!important;color:var(--on-dark)!important;border-color:var(--ink)!important;}
.botanica.woocommerce button.button.alt:hover,
.botanica.woocommerce .single_add_to_cart_button:hover,
.botanica.woocommerce a.button:hover{background:#3C382F!important;color:var(--on-dark)!important;}

/* ============================================================
   12 · CARE / ABOUT / CONTACT / BLOG helpers
   ============================================================ */
.bc-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(26px,3vw,44px);}
.bc-step .n{font-family:var(--serif);font-size:34px;font-weight:400;color:var(--olive-2);}
.bc-step h3{margin-top:10px;font-size:22px;line-height:1.2;font-weight:400;}
.bc-step p{margin-top:8px;font-size:var(--text-mid);line-height:var(--lh-mid);color:var(--meta);}
.bc-values{display:grid;grid-template-columns:repeat(4,1fr);gap:40px 44px;}
.bc-value{border-top:1px solid var(--hair);padding-top:22px;}
.bc-value h3{font-size:calc(22px * var(--values-scale,1));font-weight:400;}
.bc-value p{margin-top:10px;font-size:calc(var(--text-mid) * var(--values-scale,1));line-height:var(--lh-mid);color:var(--meta-2);}
.bc-contact-row{padding:22px 0;border-top:1px solid var(--hair);}
.bc-contact-row:last-child{border-bottom:1px solid var(--hair);}
.bc-contact-row .k{font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;color:var(--meta);margin-bottom:8px;}
.bc-contact-row .v,.bc-contact-row a{font-size:18px;color:var(--ink);}
.bc-form{background:var(--bg-intermediate);border:1px solid var(--hair);padding:clamp(24px,3vw,40px);}
.bc-form input,.bc-form textarea{width:100%;background:transparent;border:none;border-bottom:1px solid #DCD3BF;
  padding:11px 2px;font-size:15px;color:var(--ink);outline:none;margin-bottom:18px;font-family:var(--sans);}
.bc-form textarea{border:1px solid var(--hair);padding:13px;resize:vertical;line-height:1.6;}
.bc-post__cat{font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--olive-2);font-weight:500;}
.bc-post img{transition:transform 1.2s ease;}
.bc-post:hover img{transform:scale(1.05);}

/* reveal-on-scroll (never strand above-the-fold; JS adds .is-in, CSS safety shows after) */
.bc-reveal{opacity:0;transform:translateY(24px);transition:opacity 1.1s cubic-bezier(.22,.61,.36,1),transform 1.1s cubic-bezier(.22,.61,.36,1);}
.bc-reveal.is-in{opacity:1;transform:none;}
.no-js .bc-reveal{opacity:1;transform:none;}

/* ============================================================
   13 · RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  .botanica .bc-pdp{grid-template-columns:1fr;gap:36px;}
  .botanica .bc-pdp__gallery,.botanica .bc-pdp__info{position:static;}
}
@media(max-width:860px){
  .bc-nav{flex-wrap:wrap;gap:12px 24px;}
  .bc-split,.bc-split--feature,.bc-split--story{grid-template-columns:1fr;gap:36px;}
  .bc-cards--4{grid-template-columns:1fr 1fr;}
  .bc-cards--3{grid-template-columns:1fr;}
  .bc-badges{grid-template-columns:1fr 1fr;gap:40px 20px;}
  .bc-foot-cols{grid-template-columns:1fr 1fr;}
  .bc-iconstrip{grid-template-columns:repeat(3,1fr);gap:46px 18px;}
  .bc-rule-list,.bc-values{grid-template-columns:1fr;}
  .bc-hero--home{height:560px;}
  .bc-hero--home h1{font-size:clamp(40px,9vw,70px);}
}
/* ---- MOBILE per-section spacing = EXACT reference values (constant across
   390/768 in the reference). Applied to the section modifiers so each section's
   own padding/image matches the reference; scoped to <=860 (desktop untouched). */
@media(max-width:860px){
  /* S1 (round 3): was 88/40. The extra top was compensating for the shop grid's
     own top padding below it — the same stacked-padding class of defect as round
     1's PROD-02. Symmetrical at the same total (128px). */
  .botanica .bc-split--feature{padding-top:64px;padding-bottom:64px;}
  .botanica .bc-quote{padding-top:100px!important;padding-bottom:100px!important;} /* ref 100/100 */
  .botanica .bc-iconstrip{padding-top:54px;padding-bottom:54px;}        /* ref 54/54 */
  .botanica .bc-news{padding-top:96px;padding-bottom:96px;}             /* ref 96/96 */
  /* teatime image = full-width edge-to-edge square (ref 390x390 @390); text padded */
  .botanica .bc-split--teatime{padding:0!important;}
  .botanica .bc-split--teatime .bc-imgwrap{aspect-ratio:1/1;}
  .botanica .bc-split--teatime > .wp-block-column:last-child{padding:44px var(--pad);box-sizing:border-box;}
}
@media(max-width:520px){
  :root{--pad:20px;}
  .bc-cards--4,.bc-badges{grid-template-columns:1fr;}
  .bc-foot-cols{grid-template-columns:1fr;}
  /* mobile 2-col: slightly smaller icons, tighter row gap + label closer to icon
     (was 140 / 52 / 11 — too airy). */
  .bc-iconstrip{--bi:62px;grid-template-columns:repeat(2,1fr);gap:34px 12px;}
  .bc-iconstrip>div{gap:6.8px;}
  .bc-logo img{height:64px;}
  .bc-section{padding:72px var(--pad);}
  /* About (page-id-60): its bands (story/skaidri/values/dark/quote-narrow) are
     bare .bc-section and the reference keeps them at 90-96 with NO mobile
     reduction. Restore the 88px base at ≤520 so they don't collapse to 72
     (ref Δ≤8). One page rule covers all About bands. */
  .botanica.page-id-60 .bc-section{padding-top:88px;padding-bottom:88px;}
  /* mobile overflow guards */
  .bc-announce .container{font-size:10px;letter-spacing:.5px;gap:6px;}
  .bc-announce .bc-spacer{display:none;}
  .bc-announce .bc-lang{display:none;}
  .bc-announce .bc-announce__text{text-align:center;width:100%;}
  .bc-mood{height:auto;min-height:360px;}
  .bc-mood__inner{padding:48px var(--pad);}
  .bc-mood__inner h2{font-size:30px;}
  .bc-hero--home h1{font-size:clamp(36px,10vw,54px);}
  .bc-quote p{font-size:26px;}
  .botanica.single-product .summary .product_title{font-size:38px;}
  .bc-foot-copy,.bc-foot-legal{flex-direction:column;}
}

/* ============================================================
   14 · 1:1 QA FIXES vs static demo (logo, footer logo, full-bleed)
   ============================================================ */
/* Header logo — static = 92px tall (GP custom-logo defaults override; force) */
.botanica .bc-header .custom-logo,
.botanica .bc-logo img{height:92px!important;width:auto!important;max-width:none!important;}
.botanica .bc-header--sticky.is-stuck .custom-logo{height:64px!important;}
@media(max-width:520px){.botanica .bc-header .custom-logo{height:64px!important;}}

/* Footer logo — static = 62px tall, inverted to white on the dark footer */
.botanica .bc-footer .custom-logo,
.botanica .bc-foot-cols img{height:62px!important;width:auto!important;max-width:none!important;
  filter:brightness(0) invert(1);opacity:.92;}

/* FULL-BLEED MODEL (matches the demo: body full-width, sections self-width).
   Root cause of the old white frames: GP's .site.grid-container has max-width
   1280 AND overflow-x:clip, which clipped the 100vw bands back to 1280 on wide
   screens. Fix: let #page span the viewport, re-centre normal content at 1280
   via .inside-article, and let bands/hero break out to the viewport edge. */
.botanica .site.grid-container{max-width:100%!important;}
/* GP "separate containers" gives each article a WHITE card bg + padding + shadow —
   that is the "white areas" on the cream design. Strip it; content sits on the
   cream body. (Also set content_layout=one-container in GP options.) */
.botanica .inside-article{max-width:var(--maxw);margin-left:auto!important;margin-right:auto!important;
  background:transparent!important;padding:0!important;box-shadow:none!important;border:none!important;}
.botanica .site-content,.botanica #content,.botanica .content-area,.botanica .site-main{
  background:transparent!important;padding:0!important;}
.botanica #page{padding-left:0!important;padding-right:0!important;}
/* overflow guard for the 100vw break-out — pages only (not the PDP, whose sticky
   gallery would break under overflow:clip; the PDP has no full-bleed band). */
.botanica:not(.single-product) #page{overflow-x:clip;}
.botanica .bc-band,
.botanica .entry-content > .wp-block-cover.bc-hero,
.botanica .bc-hero--home,
.botanica .bc-hero--inner,
.botanica .bc-mood{
  width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
}
.botanica .bc-band > .bc-section{max-width:var(--maxw);margin-left:auto;margin-right:auto;}
/* PDP mood band stays contained (no full-bleed) so the buy grid's sticky is intact */
.botanica.single-product .bc-mood{width:100%;max-width:100%;margin:0;}

/* trust badges row (4 hand-drawn icons) — home, after hero */
.bc-badges-row{max-width:1080px!important;margin-left:auto!important;margin-right:auto!important;
  border-bottom:1px solid var(--hair);padding:54px var(--pad) 54px!important;gap:28px!important;}
.bc-badges-row .wp-block-column{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;}
.bc-badges-row .wp-block-image{margin:0;}
.bc-badges-row img{height:118px;width:auto;}
.bc-badges-row p{font-size:13px;letter-spacing:.6px;color:var(--ink);font-weight:500;margin:0;}
@media(max-width:860px){.bc-badges-row{flex-wrap:wrap!important;}.bc-badges-row .wp-block-column{flex-basis:calc(50% - 14px)!important;}}

/* ============================================================
   15 · Woo product grid — universal (home [products] shortcode + shop)
   Works whether or not <body> has .woocommerce (shortcode wraps its own).
   ============================================================ */
.botanica ul.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:clamp(22px,2.4vw,36px);margin:0;padding:0;list-style:none;}
.botanica ul.products::before,.botanica ul.products::after{content:none;display:none;}
.botanica ul.products li.product{float:none!important;width:auto!important;margin:0!important;text-align:left;}
.botanica ul.products li.product a img{aspect-ratio:4/5;object-fit:cover;background:var(--tint-2);margin:0 0 16px;}
.botanica ul.products li.product .woocommerce-loop-product__title{font-family:var(--serif);
  font-size:23px;font-weight:400;color:var(--ink);padding:0 0 4px;}
.botanica ul.products li.product .price{font-family:var(--sans)!important;color:var(--ink)!important;
  font-size:15px;font-weight:400;}
.botanica ul.products li.product .price del{color:var(--meta);opacity:.7;}
.botanica ul.products li.product .button,
.botanica ul.products li.product .added_to_cart{background:var(--ink)!important;color:var(--on-dark)!important;
  border:1px solid var(--ink)!important;border-radius:0;margin-top:10px;display:inline-block;
  font-size:12px;letter-spacing:1.4px;text-transform:uppercase;font-weight:500;padding:12px 24px;}
.botanica ul.products li.product .button:hover{background:#3C382F!important;}
/* S1 (round 3): was 48/90. Symmetrical at the same total (138px). */
.bc-shop-grid{padding-top:69px;padding-bottom:69px;}
/* Home featured grid: reference = 4 equal columns spanning the container content
   (left edge aligned to the featured image above, 36px inset), gap 30px — NOT the
   shop's auto-fill minmax grid, which left the cards inset ~44px from the edge.
   GP wraps the group in an inner-container with its own 40px pad + 1200 max-width;
   neutralise it so the grid aligns to the section's 36px content edge (116px). */
.botanica .bc-shop-grid > .wp-block-group__inner-container{max-width:none;padding:0;margin:0;}
.botanica .bc-shop-grid ul.products{grid-template-columns:repeat(4,1fr);gap:30px;}
@media(max-width:860px){ .botanica .bc-shop-grid ul.products{grid-template-columns:repeat(2,1fr);} }
@media(max-width:480px){ .botanica .bc-shop-grid ul.products{grid-template-columns:1fr;} }
.bc-shop-grid .wp-block-buttons{margin-top:54px;}

/* secondary CTA = text link (static uses underline, not a boxed button) */
.bc-link-wrap{margin-top:26px;}
.bc-link-wrap .bc-link{margin:0;}

/* ============================================================
   16 · HERO (wp:cover) + button + sticky — measured 1:1 vs demo
   Demo hero: heading #FBF7EF, centered flex, button cream bg + dark text
   + padding 15/38; overlay = vertical gradient; image ken-burns.
   ============================================================ */
.botanica .bc-hero.wp-block-cover{align-items:center;justify-content:center;border-radius:0;}
.botanica .bc-hero--home{min-height:660px;}
.botanica .bc-hero--inner{min-height:460px;}
/* Inner-page hero mobile height = reference clamp(320,40vw,460) → 320 at ≤860
   for the RESPONSIVE-hero pages (shop, care). About (page-id-60) uses a FIXED
   460px hero in the reference at every width, so it keeps 460 on mobile too. */
@media(max-width:860px){
  .botanica .bc-hero--inner{min-height:320px;}
  .botanica.page-id-60 .bc-hero--inner{min-height:460px;} /* About = ref fixed 460 */
}
/* Care (page-id-61): its bands (4-steps, video, safety, dark-CTA) are bare
   .bc-section; reference = clamp(54,7vw,96) → 54 across mobile (dark-CTA 60,
   Δ6). The generic .bc-section (88 base / 72 ≤520) over-pads them by 18-34px.
   One page rule pins 54 at ≤860. Newsletter stays 96/96 (owner variance). */
@media(max-width:860px){ .botanica.page-id-61 .bc-section{padding-top:54px;padding-bottom:54px;} }
/* Kontaktai (page-id-62): two bare-.bc-section sections with ASYMMETRIC
   reference padding (heading 48/30; contact block 20/60) — the generic
   .bc-section (88/72) over-pads both. Two targeted page rules at ≤860.
   Newsletter stays 96/96 (owner variance vs ref 60). */
@media(max-width:860px){
  /* QA-02 (round 7): were 48/30 and 20/60. Symmetrical at the same totals
     (78 and 80), so the page rhythm and height are unchanged. */
  .botanica.page-id-62 .bc-contact-intro{padding-top:39px;padding-bottom:39px;}
  .botanica.page-id-62 .bc-split{padding-top:40px;padding-bottom:40px;}
}
.botanica .bc-hero .wp-block-cover__inner-container{max-width:var(--maxw);width:100%;margin:0 auto;
  padding:0 var(--pad);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;}
/* ROUND 3 (R3-04): the round-1 hero rules that used to sit here are gone.
   They targeted classes the shared .bh component no longer emits
   (.bc-hero__script, .bc-hero__lead, .wp-block-cover__image-background) or
   re-declared what the component now owns. One of them —
   `inner-container h1,h2,p{color:#FBF7EF!important}` — was silently beating
   the editor's colour control, so picking a colour painted nothing. Found by
   comparing rendered pixels, not getComputedStyle. */
/* overlay = demo vertical gradient (replaces flat dim) */
/* ken-burns on the cover image */

/* hero button: cream fill + dark text + thin dark border + breathing room (demo + client) */
.botanica .bc-hero .wp-block-button__link,
.botanica .bc-btn--light .wp-block-button__link{
  background:#FBF7EF!important;color:#2A2723!important;border:1px solid #2A2723!important;
  padding:15px 38px!important;border-radius:0;font-size:13px;letter-spacing:1.8px;text-transform:uppercase;font-weight:500;}
.botanica .bc-hero .wp-block-button__link:hover,
.botanica .bc-btn--light .wp-block-button__link:hover{background:#EDE5D4!important;color:#2A2723!important;}
.botanica .bc-hero .wp-block-buttons{margin-top:30px;justify-content:center;display:flex;}

/* ---- Homepage hero SLIDER layer (theme-native, cross-fade) ----
   The <section> keeps the old cover classes (wp-block-cover bc-hero bc-hero--home)
   so all existing hero styling still applies; we only stack fading images behind
   the dim + fixed text overlay, and add prev/next + dots. JS: js/botanica.js. */
/* Center the overlay vertically. Because the shortcode isn't a real wp:cover
   block, core cover's `display:flex` isn't loaded, so the inherited
   justify-content:center was inert and the overlay pinned to the top. Restore
   flex centering here (height unchanged — set elsewhere). */
.bc-hero--home{display:flex;flex-direction:column;justify-content:center;align-items:center;}
.bc-hero--home .bc-hero__slides{position:absolute;inset:0;z-index:0;}
.bc-hero--home .bc-hero__slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;will-change:opacity;}
.bc-hero--home .bc-hero__slide.is-active{opacity:1;}
.bc-hero--home .bc-hero__slides .bc-hero__img{cursor:grab;} /* drag affordance; .bc-hero__img base = inset:0, object-fit:cover */
/* position:relative is essential — the shortcode (not a real wp:cover block)
   means WP doesn't enqueue core cover CSS, so without this the inner container
   is static, z-index is inert, and the absolutely-positioned slide images paint
   OVER the text. Positioning it lifts the whole overlay above the slides. */
.bc-hero--home .wp-block-cover__slides,.bc-hero--home .bc-hero__slides{z-index:0;}
.bc-hero--home .wp-block-cover__inner-container{position:relative;z-index:2;}
/* HERO-01 (client 2026-07-20 19:56 "Nuimkit tas baltas aurioles aplink tekstus"):
   the previous treatment was DARK ink + a white glow text-shadow over a transparent
   dim — that glow is the "white halo" she asked to remove. Legibility now comes
   from the image overlay instead, reusing the exact darkening she praised on the
   APIE MUS hero (HERO-05: "Kaip padaret ta uztamsinima, jis cia labai tinka").
   Text returns to cream; the only shadow left is a soft DARK one (never white). */
/* Round-1 home-hero overlay rules removed 2026-07-27: the shared .bh component
   now owns the overlay via --bh-overlay, which the front-end editor drives.
   Their !important silently beat the component rule (found by HE-04 test). */
/* R3-04: round 1 forced cream !important here. The .bh component now owns the
   colour, and this rule was the reason the editor's colour swatches painted
   nothing. The soft dark shadow it also carried moves onto the component so
   text keeps its legibility lift at any chosen colour. */

/* ---- HERO-02/03/04: owner-adjustable hero text scale + position ----------
   HERO-02 rebases the type larger and stacks it tighter with the button lower,
   matching the proportions of her Canva mockup (layout reference only — brand
   typefaces are unchanged, per her note that those Canva fonts were substitutes).
   HERO-03/04 make it adjustable WITHOUT code: the [botanica_hero] shortcode emits
   data-size / data-size-m / data-align-x / data-align-y from ACF options, and every
   size below is derived from --bc-hero-scale, so desktop and mobile scale
   independently and neither can break the layout (steps are constrained, the inner
   container keeps its max-width + padding). */
.bc-hero--home{--bc-hero-scale:1;}
.bc-hero--home[data-size="s"] {--bc-hero-scale:.74;}
.bc-hero--home[data-size="m"] {--bc-hero-scale:.87;}
.bc-hero--home[data-size="l"] {--bc-hero-scale:1;}
.bc-hero--home[data-size="xl"]{--bc-hero-scale:1.15;}
/* HERO-02 desktop rebase: wordmark 70 -> 92, script 46 -> 64, lead 16 -> 18.
   R-LOOP2: was a bare `h1` selector — visual size coupled to WHICHEVER line
   happens to carry the <h1> tag, rather than to the title line itself. That
   coupling is exactly why promoting a different line (lead) to <h1> for
   semantics (see botanica_hero_h1_key()) used to also silently inherit the
   TITLE's font metrics. Scoped to .bh__title, the class that actually means
   "this is the title line" regardless of its tag, so retagging never changes
   how a line looks. */
.botanica .bc-hero--home .wp-block-cover__inner-container .bh__title{
  font-size:calc(92px * var(--bc-hero-scale));line-height:1.02;letter-spacing:1px;}
.botanica .bc-hero--home .bc-hero__script{
  font-size:calc(64px * var(--bc-hero-scale))!important;line-height:1;margin-bottom:calc(2px * var(--bc-hero-scale))!important;}
.botanica .bc-hero--home .bc-hero__lead{
  font-size:calc(18px * var(--bc-hero-scale))!important;margin-top:calc(14px * var(--bc-hero-scale));max-width:44ch;}
/* "button lower" — a deliberate gap under the tightened text stack. */
.botanica .bc-hero--home .wp-block-buttons{margin-top:calc(54px * var(--bc-hero-scale));}
/* Text-block position (constrained: 3 x 3, never free CSS). */
.bc-hero--home[data-align-x="left"] {align-items:flex-start;}
.bc-hero--home[data-align-x="right"]{align-items:flex-end;}
.bc-hero--home[data-align-x="left"]  .wp-block-cover__inner-container,
.bc-hero--home[data-align-x="left"]  .wp-block-cover__inner-container h1,
.bc-hero--home[data-align-x="left"]  .wp-block-cover__inner-container p{text-align:left;}
.bc-hero--home[data-align-x="right"] .wp-block-cover__inner-container,
.bc-hero--home[data-align-x="right"] .wp-block-cover__inner-container h1,
.bc-hero--home[data-align-x="right"] .wp-block-cover__inner-container p{text-align:right;}
.bc-hero--home[data-align-x="left"]  .wp-block-buttons{justify-content:flex-start;}
.bc-hero--home[data-align-x="right"] .wp-block-buttons{justify-content:flex-end;}
.bc-hero--home[data-align-y="top"]   {justify-content:flex-start;padding-top:clamp(48px,8vh,96px);}
.bc-hero--home[data-align-y="bottom"]{justify-content:flex-end;padding-bottom:clamp(48px,8vh,96px);}
/* Owner-chosen overlay strength. "dark" is the APIE MUS treatment she praised and
   is the default; the others are one step lighter/darker each way. */
/* Owner-chosen hero height, desktop + mobile independently. */
.botanica .bc-hero--home[data-h="s"] {min-height:480px;height:480px;}
.botanica .bc-hero--home[data-h="m"] {min-height:570px;height:570px;}
.botanica .bc-hero--home[data-h="l"] {min-height:660px;height:660px;}
.botanica .bc-hero--home[data-h="xl"]{min-height:100svh;height:100svh;}
/* MOBILE rebase + its own independent size step (HERO-03: the two breakpoints are
   tuned separately, so a change on one never drags the other). Must come after the
   desktop block above — it overrides the earlier max-width:768px h1 rule too. */
@media(max-width:860px){
  .bc-hero--home[data-size-m="s"] {--bc-hero-scale:.74;}
  .bc-hero--home[data-size-m="m"] {--bc-hero-scale:.87;}
  .bc-hero--home[data-size-m="l"] {--bc-hero-scale:1;}
  .bc-hero--home[data-size-m="xl"]{--bc-hero-scale:1.15;}
  .botanica .bc-hero--home .wp-block-cover__inner-container .bh__title{
    font-size:calc(clamp(34px,10.5vw,54px) * var(--bc-hero-scale));line-height:1.06;}
  .botanica .bc-hero--home .bc-hero__script{
    font-size:calc(clamp(30px,9vw,42px) * var(--bc-hero-scale))!important;margin-bottom:calc(2px * var(--bc-hero-scale))!important;}
  .botanica .bc-hero--home .bc-hero__lead{
    font-size:calc(16px * var(--bc-hero-scale))!important;margin-top:calc(12px * var(--bc-hero-scale));max-width:34ch;}
  .botanica .bc-hero--home .wp-block-buttons{margin-top:calc(38px * var(--bc-hero-scale));}
  .botanica .bc-hero--home[data-h-m="s"] {min-height:420px;height:420px;}
  .botanica .bc-hero--home[data-h-m="m"] {min-height:500px;height:500px;}
  .botanica .bc-hero--home[data-h-m="l"] {min-height:560px;height:560px;}
  .botanica .bc-hero--home[data-h-m="xl"]{min-height:100svh;height:100svh;}
}
.bc-hero__arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:44px;height:44px;padding:0;border:0;border-radius:50%;
  background:rgba(251,247,239,.14);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;}
.bc-hero__arrow:hover,.bc-hero__arrow:focus-visible{background:rgba(251,247,239,.30);outline:none;}
.bc-hero__arrow--prev{left:18px;}
.bc-hero__arrow--next{right:18px;}
.bc-hero__arrow::before{content:"";width:10px;height:10px;border-top:2px solid #FBF7EF;border-left:2px solid #FBF7EF;}
.bc-hero__arrow--prev::before{transform:rotate(-45deg);margin-left:4px;}
.bc-hero__arrow--next::before{transform:rotate(135deg);margin-right:4px;}
.bc-hero__dots{position:absolute;z-index:3;left:0;right:0;bottom:22px;display:flex;gap:10px;justify-content:center;}
.bc-hero__dot{width:9px;height:9px;padding:0;border-radius:50%;border:1px solid rgba(251,247,239,.75);background:transparent;cursor:pointer;transition:background .2s;}
.bc-hero__dot.is-active,.bc-hero__dot:hover{background:#FBF7EF;}
@media(prefers-reduced-motion:reduce){.bc-hero--home .bc-hero__slide{transition:none;}}
@media(max-width:600px){
  .bc-hero__arrow{width:38px;height:38px;}
  .bc-hero__arrow--prev{left:8px;}
  .bc-hero__arrow--next{right:8px;}
  .bc-hero__dots{bottom:16px;}
  /* HERO-02 made the mobile lead wider, which pushed its box under the vertically
     centred arrows (measured overlap 21-26px at 375/390/430). The previous round had
     verified "arrows never 2D-overlap text/button" — keep that true by dropping the
     arrows out of the text band onto the photo above the dots, rather than narrowing
     the copy the client asked us to enlarge. */
  .bc-hero__arrow{top:auto;bottom:52px;transform:none;}
}

/* sticky header: make the STUCK state genuinely thin */
.bc-header--sticky.is-stuck .bc-announce{display:none;}
.bc-header--sticky.is-stuck .bc-header-row{padding-top:8px;padding-bottom:0;}
.botanica .bc-header--sticky.is-stuck .bc-header .custom-logo,
.botanica .bc-header--sticky.is-stuck .custom-logo{height:44px!important;}
.bc-header--sticky.is-stuck .bc-nav{padding-top:8px;padding-bottom:10px;}

/* ============================================================
   17 · PDP add-to-cart row (size boxes are now ABOVE the form)
   ============================================================ */
.botanica.single-product .bc-sizes{margin-top:32px;margin-bottom:0;}
.botanica.single-product form.cart{margin-top:24px;display:block;}
.botanica.single-product .single_variation_wrap{margin-top:0;}
.botanica.single-product .woocommerce-variation-price,
.botanica.single-product .single_variation{margin-bottom:14px;}
/* wrap so the stepper + add-to-cart stay on row 1 and "Pirkti dabar" drops to a
   full-width row below (it lives in this form to submit the selected variation). */
.botanica.single-product .woocommerce-variation-add-to-cart{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;margin:0;}
/* qty = the brand stepper (− N +); compact on the left, stretches to the
   button height. The add-to-cart button takes the remaining width. */
.botanica.single-product form.cart .quantity.bc-stepper{flex:0 0 auto;height:auto;align-self:stretch;}
.botanica.single-product form.cart .quantity.bc-stepper .bc-stepper__input{width:42px;}
.botanica.woocommerce.single-product button.single_add_to_cart_button.button{flex:1 1 auto;min-width:0;padding:16px 24px!important;}
/* non-variable (simple) add-to-cart row — mirror the variable pattern: row 1 =
   stepper + full-width Į KREPŠELĮ, row 2 = "Pirkti dabar" full-width. MUST wrap,
   else bc-buynow (flex:0 0 100%) can't drop to its own line and crushes the
   add-to-cart button to a sliver. */
.botanica.single-product form.cart:not(.variations_form){display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;}

/* ============================================================
   18 · RESPONSIVE HEADER LAW (mobile hamburger + announcement marquee)
   ============================================================ */
/* buttons never wrap letter-by-letter */
.botanica .wp-block-button__link,.bc-btn,.bc-link,.botanica .button,.botanica .single_add_to_cart_button{white-space:nowrap;}

/* announcement: one line always; JS adds .is-marquee when text overflows */
.bc-announce__text{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-align:center;}
.bc-ticker{display:inline-block;}
.bc-ticker__dup{display:none;}
.bc-announce__text.is-marquee{text-align:left;}
.bc-announce__text.is-marquee .bc-ticker{display:inline-flex;animation:bc-ticker 30s linear infinite;will-change:transform;}
.bc-announce__text.is-marquee .bc-ticker>span{padding-right:48px;flex:0 0 auto;}
.bc-announce__text.is-marquee .bc-ticker__dup{display:inline-block;}
@keyframes bc-ticker{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){.bc-ticker{animation:none!important;}}

/* mobile header bar = logo + hamburger (+ cart); other utilities go in the drawer */
@media(max-width:860px){
  .bc-ico--desk{display:none!important;}
  /* nav is hidden on mobile (see §4), so the "space below via nav" that balances
     the logo on desktop is gone here — give the row an equal bottom pad so the
     logo (and the burger/cart, which align to it) sit vertically centred in the
     header bar instead of flush to its bottom edge. */
  .bc-header-row{padding-top:18px;padding-bottom:18px;}
  .bc-announce .bc-lang{display:none;}
  .bc-announce .bc-spacer{display:none;}
  /* stuck (compact) state stays thin but keeps the same top/bottom symmetry */
  .bc-header--sticky.is-stuck .bc-header-row{padding-top:10px;padding-bottom:10px;}
}

/* drawer: utility row + language (utilities moved off the mobile bar) */
/* drawer foot: utilities + language on ONE row, pinned to the bottom */
.bc-drawer__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding-top:18px;border-top:1px solid var(--hair-2);}
.bc-drawer__util{display:flex;flex-direction:row;align-items:center;gap:26px;}
.bc-drawer__util a{display:inline-flex;align-items:center;gap:5px;color:var(--ink);}
.bc-drawer__util svg{width:22px;height:22px;}
.bc-drawer__lang{font-size:13px;letter-spacing:1.5px;}
.bc-drawer__lang a,.bc-drawer__lang .cur{color:var(--ink);}
.bc-drawer__lang .cur{font-weight:600;border-bottom:1px solid var(--ink);}

/* ============================================================
   19 · DEMO EFFECTS — card hover zoom (Brooklyn/Instant-Cosy feel)
   ============================================================ */
.botanica ul.products li.product a img,
.botanica ul.products li.product img,
.botanica .bc-card__media img,
.botanica .bc-imgwrap img{transition:transform 1.1s ease;}
.botanica ul.products li.product:hover img,
.botanica .bc-card__media:hover img,
.botanica a:hover > .bc-imgwrap img,
.botanica .bc-scent:hover img{transform:scale(1.045);}
.botanica ul.products li.product a img{overflow:hidden;}
.botanica ul.products li.product a{display:block;overflow:hidden;}
/* keep hero ken-burns alive */
.botanica .bc-hero--home .wp-block-cover__image-background{animation:bcKenBurns 26s ease-in-out infinite;}

/* ============================================================
   20 · Remove the sand-coloured gap between the last content
   block and the footer (block/content bottom margin showed the body bg).
   ============================================================ */
.botanica .entry-content{margin-bottom:0;}
.botanica .entry-content > *:last-child,
.botanica .bc-band:last-child,
.botanica .bc-news:last-child,
.botanica .bc-section:last-child{margin-bottom:0!important;}
.botanica .site-content,.botanica .site-main,.botanica .content-area,.botanica .inside-article{
  margin-bottom:0!important;padding-bottom:0!important;}
/* Header→page-hero gap: ONE fixed system value on every page type + width.
   Measured live: .site-main margin-top:var pinned all pages to 20px EXCEPT the
   single product, where GP's default .entry-content{margin-top:2em} (32px) collapsed
   THROUGH .site-main and overrode the var (breadcrumb sat 32px below the nav). Kill
   that collapse so the product matches every other page. Same gap desktop + mobile,
   no per-page one-offs; not owner-editable. */
.botanica .site-content{margin-top:0!important;}
.botanica .site-main{margin-top:var(--page-hero-gap,12px)!important;}
/* neutralise child top-margins that would collapse through .site-main and defeat
   the unified gap (GP 2em on single product/post, Woo wrappers). The gap is owned
   solely by .site-main's margin above. */
.botanica.single-product .entry-content,
.botanica .site-main > .woocommerce > .entry-content,
.botanica .site-main article.type-product .entry-content{margin-top:0!important;}

/* ============================================================
   21 · GLOBAL TOKEN RECONCILIATION (measured 1:1 vs static demo)
   Two systemic gaps fixed here so EVERY page inherits, not page-by-page:
   (a) WP core adds `is-layout-flex` to every wp:columns block, which kills
       our `.bc-split` grid (ratio + vertical centring went dead → splits
       rendered 50/50, top-aligned, copy full-width).
   (b) Generic in-section <h2> had NO size/weight rule, so it fell back to
       GP's ~35px/400 instead of the demo's 42–48px Playfair 300.
   See qa/demo-tokens.md for the source values.
   ============================================================ */

/* (a) Re-assert grid over core's is-layout-flex (specificity 0,2,0 already
   beats core's 0,1,0; !important on display guards the flex shorthand). */
.botanica .bc-split{display:grid!important;align-items:center!important;}
.botanica .bc-split--feature{grid-template-columns:1.05fr .95fr!important;gap:64px!important;}
.botanica .bc-split--story{grid-template-columns:1fr 1.05fr!important;gap:72px!important;}
/* R23-01 — the photograph lines up with the top of the text, not with its middle.
   `.bc-split` centres both columns (align-items:center). The APIE MUS story text
   column is 882px tall and the photograph 693px, so centring pushed the photo
   95px BELOW the first line of text and 94px below the last — it lined up with
   neither edge, and that floating photo is what she kept calling "negerai
   lygiuoja". Measured at 1440: image-top minus text-top was +95px, now 0.
   Nothing else changes: the paragraphs were already left-aligned with a dead-
   straight left edge (measured spread 0px), so the rag was never the defect.
   Mobile is untouched — at 390 the grid is one column and already align-items:start.

   SCOPED TO page-id-60 ON PURPOSE. `.bc-split--story` is ALSO used by a block on
   the HOME page ("Jausmas, prie kurio norisi sugrįžti"), which is a different,
   deliberately CENTRED composition that nobody has complained about. An unscoped
   rule moved that one by 52px too — an unrequested change to a page this round
   was never about. Same `.page-id-NN` scoping the theme already uses at §835. */
.botanica.page-id-60 .bc-split--story{align-items:start!important;}
.botanica .bc-split:not(.bc-split--feature):not(.bc-split--story){grid-template-columns:1fr 1fr!important;}
/* columns must not keep their flex-basis once we're in grid */
.botanica .bc-split > .wp-block-column{flex-basis:auto!important;width:auto!important;min-width:0;}
/* badges row is also a wp:columns → force the demo's 4-up grid, not flex */
.botanica .bc-badges-row{display:grid!important;grid-template-columns:repeat(4,1fr)!important;
  gap:28px!important;align-items:start!important;}
.botanica .bc-badges-row > .wp-block-column{flex-basis:auto!important;width:auto!important;}

/* (b) Display-heading scale — Playfair 300, per-section sizes from the demo.
   Large display headings only; card titles / h3 stay 400 (handled elsewhere). */
.botanica .entry-content h1{font-weight:300;}
.botanica .bc-split--feature h2{font-family:var(--serif);font-weight:300;font-size:48px;line-height:1.05;}
.botanica .bc-split--story h2{font-family:var(--serif);font-weight:300;font-size:46px;line-height:1.08;}
.botanica .bc-band .bc-split:not(.bc-split--story) h2,
.botanica .bc-split:not(.bc-split--feature):not(.bc-split--story) h2{
  font-family:var(--serif);font-weight:300;font-size:42px;line-height:1.14;}
.botanica .bc-news h2{font-weight:300;}
.botanica .bc-quote p{font-weight:300;}
/* R-LOOP2: scoped to .bh__title (was bare h1, !important) — with the H1 tag
   now able to land on .bh__lead instead (botanica_hero_h1_key()), a bare-h1
   selector would have force-set the LEAD line's weight to 300 the moment it
   became the h1, regardless of what the owner configured for it. */
.botanica .bc-hero--home .wp-block-cover__inner-container .bh__title{font-weight:300!important;}
/* any other section heading the demo renders as a light display title */
.botanica .entry-content > .wp-block-group:not(.bc-news):not(.bc-quote) > h2.wp-block-heading{
  font-family:var(--serif);font-weight:300;}

/* Featured text column — scent tags 14px; description constrained, body leading
   (normalized to the type scale; was lh1.7). */
.botanica .bc-split--feature .bc-meta{font-size:14px;letter-spacing:.3px;margin-top:8px;}
.botanica .bc-split--feature .wp-block-column > p:not(.bc-eyebrow):not(.bc-meta):not(.bc-link-wrap):not(.bc-feature-price){
  max-width:42ch;line-height:var(--lh-body);margin-top:22px;}
/* price + CTA share one flex row (markup wraps them in .bc-feature-cta) */
.botanica .bc-feature-cta{display:flex;align-items:center;gap:26px;margin-top:26px;flex-wrap:wrap;}
.botanica .bc-feature-cta > *{margin:0;}
/* price stays on one line and never shrinks to a 1-char-per-line column in the
   flex row (mobile bug: the <p> was squeezed to ~0 width and broke per char). */
.botanica .bc-feature-price{font-size:18px;color:var(--ink);white-space:nowrap;flex:0 0 auto;}
.botanica .bc-feature-cta .bc-link-wrap{flex:0 0 auto;white-space:nowrap;}

/* Story text column — description width; body leading (normalized to the type
   scale; was lh1.75).

   R21-08: was 50ch, which computes to 500px inside a 582px column — an 82px
   dead strip down the right of every body paragraph, and the reason the eyebrow,
   the heading and the signature (none of them capped) ran wider than the prose
   between them. That mismatch is what reads as "the first paragraph is not
   aligned with the rest". 64ch is wider than the column at every desktop width,
   so the paragraphs simply fill it and share ONE measure with the heading; the
   cap still bites on any container wider than ~640px, keeping the line length
   inside the readable range (~58 characters at 1440, never past 64).
   Mobile is untouched: the column is 350px there, far below either cap. */
.botanica .bc-split--story .wp-block-column > p:not(.bc-eyebrow):not(.bc-meta):not(.bc-link-wrap){
  max-width:64ch;line-height:var(--lh-body);}

/* R23-02 — the two spacing controls she asked for.
   The base values are the 20px / 24px this block has always had, and the
   variable is a multiplier from the theme's EXISTING 3-step scale
   (.8 / 1 / 1.15 — the same one the benefit strip uses), emitted by the same
   `botanica-owner-vars` mechanism. No new numbers, no second spacing system.
   „Normalus" resolves to 1, so choosing nothing renders byte-identically.

   SCOPED TO page-id-60 ON PURPOSE. `.bc-split--story` is also used by a block on
   the HOME page, and her two controls must move ONE block, not two. Excludes the
   eyebrow, the signature „— Gintarė, įkūrėja" and the „DAUGIAU APIE MUS" link,
   which keep the spacing they already had. */
.botanica.page-id-60 .bc-split--story .wp-block-column > p:not(.bc-eyebrow):not(.bc-meta):not(.bc-link-wrap){
  margin-bottom:calc(24px * var(--story-para-gap,1));}
.botanica.page-id-60 .bc-split--story .wp-block-column > :is(h2,h3,h4){
  margin-bottom:calc(20px * var(--story-head-gap,1));}

/* keep headings from overflowing on small screens (demo holds px; we guard) */
@media(max-width:860px){
  .botanica .bc-split--feature h2{font-size:40px;}
  .botanica .bc-split--story h2{font-size:38px;}
  .botanica .bc-band .bc-split h2,
  .botanica .bc-split:not(.bc-split--feature):not(.bc-split--story) h2{font-size:36px;}
}
@media(max-width:520px){
  .botanica .bc-split--feature h2,
  .botanica .bc-split--story h2{font-size:32px;}
}

/* ============================================================
   22 · FILL-OUT BUTTON HOVER (reverse wipe)
   Standalone marketing CTAs + PDP add-to-cart + review submit share one
   interaction: RESTING = solid fill (ink bg via ::before) + contrast text + 1px
   frame; on HOVER the fill SLIDES OUT to the RIGHT (::before translateX 0→101%)
   leaving the frame + text (filled → outline). Text recolours to the frame
   colour as the bg leaves, so it stays readable in both states. Slides back in
   on mouse-out. Variants set --btn-ink (frame + outline-state text) / --btn-fill
   (the fill) / --btn-on (filled-state text). Mechanism shared.
   ============================================================ */
.botanica .wp-block-button__link,
.botanica button.bc-btn,
.botanica a.bc-btn:not(.wp-block-button__link),
.botanica.woocommerce.single-product button.single_add_to_cart_button.button,
.botanica.woocommerce #review_form .form-submit input{
  --btn-ink:#2A2723; --btn-fill:#2A2723; --btn-on:#FBF7EF;
  position:relative; overflow:hidden; z-index:0; isolation:isolate;
  background:transparent!important; color:var(--btn-on)!important;   /* RESTING = filled -> contrast text */
  border:1px solid var(--btn-ink)!important; border-radius:0;
  transition:color .42s cubic-bezier(.785,.135,.15,.86);
}
.botanica .wp-block-button__link::before,
.botanica button.bc-btn::before,
.botanica a.bc-btn:not(.wp-block-button__link)::before,
.botanica.woocommerce.single-product button.single_add_to_cart_button.button::before,
.botanica.woocommerce #review_form .form-submit input::before{
  /* inset:-1px (not 0) bleeds the fill 1px past every edge; overflow:hidden on the
     button clips it back to the border box, so fractional heights can't leave a
     thin unfilled strip along the bottom edge. Covers all four edges box-safe. */
  content:""; position:absolute; inset:-1px; background:var(--btn-fill);
  transform:translateX(0);                                          /* fill COVERS at rest */
  transition:transform .42s cubic-bezier(.785,.135,.15,.86); z-index:-1;
}
/* HOVER: fill exits right, text recolours to the frame colour (outline state) */
.botanica .wp-block-button__link:hover,
.botanica button.bc-btn:hover,
.botanica a.bc-btn:not(.wp-block-button__link):hover,
.botanica.woocommerce.single-product button.single_add_to_cart_button.button:hover,
.botanica.woocommerce #review_form .form-submit input:hover{
  background:transparent!important; color:var(--btn-ink)!important;
}
.botanica .wp-block-button__link:hover::before,
.botanica button.bc-btn:hover::before,
.botanica a.bc-btn:not(.wp-block-button__link):hover::before,
.botanica.woocommerce.single-product button.single_add_to_cart_button.button:hover::before,
.botanica.woocommerce #review_form .form-submit input:hover::before{
  transform:translateX(105%);
}
/* LIGHT variant (hero, on the dark photo): filled cream + ink text at rest,
   cream frame + cream text on hover. Match §16's specificity so these win. */
.botanica .bc-hero .wp-block-button__link,
.botanica .bc-btn--light .wp-block-button__link{
  --btn-ink:#FBF7EF; --btn-fill:#FBF7EF; --btn-on:#2A2723;
  color:var(--btn-on)!important; border-color:var(--btn-ink)!important;   /* filled cream -> ink text */
}
.botanica .bc-hero .wp-block-button__link,
.botanica .bc-hero .wp-block-button__link:hover,
.botanica .bc-btn--light .wp-block-button__link,
.botanica .bc-btn--light .wp-block-button__link:hover{
  background:transparent!important;
}
.botanica .bc-hero .wp-block-button__link:hover,
.botanica .bc-btn--light .wp-block-button__link:hover{
  color:var(--btn-ink)!important;          /* outline state -> cream text on the dark image */
}
/* reduced motion: no slide, fill just disappears instantly on hover */
@media(prefers-reduced-motion:reduce){
  .botanica .wp-block-button__link::before,
  .botanica button.bc-btn::before,
  .botanica a.bc-btn:not(.wp-block-button__link)::before,
  .botanica.woocommerce.single-product button.single_add_to_cart_button.button::before,
  .botanica.woocommerce #review_form .form-submit input::before{
    transition:none;
  }
}

/* ============================================================
   23 · BUTTON INTERACTION STATES — text must NEVER disappear
   The fill-out hover is mirrored on :focus-visible + :active (keyboard/touch).
   On touch (hover:none) the emulated sticky-hover is cancelled so the button
   stays FILLED at rest and only empties WHILE pressed (:active). Text colour is
   re-asserted at each state so it always reads (filled→contrast, outline→frame).
   ============================================================ */
/* generic buttons: focus-visible + active mirror hover (fill exits, text=frame) */
.botanica .wp-block-button__link:focus-visible,
.botanica .wp-block-button__link:active,
.botanica button.bc-btn:focus-visible,
.botanica button.bc-btn:active,
.botanica a.bc-btn:not(.wp-block-button__link):focus-visible,
.botanica a.bc-btn:not(.wp-block-button__link):active,
.botanica.woocommerce.single-product button.single_add_to_cart_button.button:focus-visible,
.botanica.woocommerce.single-product button.single_add_to_cart_button.button:active,
.botanica.woocommerce #review_form .form-submit input:focus-visible,
.botanica.woocommerce #review_form .form-submit input:active{
  background:transparent!important; color:var(--btn-ink)!important;
}
.botanica .wp-block-button__link:focus-visible::before,
.botanica .wp-block-button__link:active::before,
.botanica button.bc-btn:focus-visible::before,
.botanica button.bc-btn:active::before,
.botanica a.bc-btn:not(.wp-block-button__link):focus-visible::before,
.botanica a.bc-btn:not(.wp-block-button__link):active::before,
.botanica.woocommerce.single-product button.single_add_to_cart_button.button:focus-visible::before,
.botanica.woocommerce.single-product button.single_add_to_cart_button.button:active::before,
.botanica.woocommerce #review_form .form-submit input:focus-visible::before,
.botanica.woocommerce #review_form .form-submit input:active::before{
  transform:translateX(105%);
}
/* hero/light variant outline-state text at 0,4,0 to beat its resting rule */
.botanica .bc-hero .wp-block-button__link:focus-visible,
.botanica .bc-hero .wp-block-button__link:active,
.botanica .bc-btn--light .wp-block-button__link:focus-visible,
.botanica .bc-btn--light .wp-block-button__link:active{
  color:var(--btn-ink)!important;
}
/* TOUCH devices: don't let hover stick -> stay FILLED at rest, empty only while
   pressed (:active). */
@media (hover:none){
  .botanica .wp-block-button__link:hover,
  .botanica button.bc-btn:hover,
  .botanica a.bc-btn:not(.wp-block-button__link):hover,
  .botanica.woocommerce.single-product button.single_add_to_cart_button.button:hover,
  .botanica.woocommerce #review_form .form-submit input:hover{ color:var(--btn-on)!important; }
  .botanica .bc-hero .wp-block-button__link:hover,
  .botanica .bc-btn--light .wp-block-button__link:hover{ color:var(--btn-on)!important; }
  .botanica .wp-block-button__link:hover::before,
  .botanica button.bc-btn:hover::before,
  .botanica a.bc-btn:not(.wp-block-button__link):hover::before,
  .botanica.woocommerce.single-product button.single_add_to_cart_button.button:hover::before,
  .botanica.woocommerce #review_form .form-submit input:hover::before{ transform:translateX(0); }
  /* A real tap fires :hover AND :active at once; the :hover reset above would
     cancel the press. Re-assert :active LAST (equal specificity → source order
     wins) so the fill still wipes out WHILE the finger is down — the same visual
     as PC hover — then snaps back to filled on release (no stuck state). This is
     what makes "Į KREPŠELĮ" (single_add_to_cart_button) react to touch. */
  .botanica .wp-block-button__link:active,
  .botanica button.bc-btn:active,
  .botanica a.bc-btn:not(.wp-block-button__link):active,
  .botanica.woocommerce.single-product button.single_add_to_cart_button.button:active,
  .botanica.woocommerce #review_form .form-submit input:active{ color:var(--btn-ink)!important; }
  .botanica .bc-hero .wp-block-button__link:active,
  .botanica .bc-btn--light .wp-block-button__link:active{ color:var(--btn-ink)!important; }
  .botanica .wp-block-button__link:active::before,
  .botanica button.bc-btn:active::before,
  .botanica a.bc-btn:not(.wp-block-button__link):active::before,
  .botanica.woocommerce.single-product button.single_add_to_cart_button.button:active::before,
  .botanica.woocommerce #review_form .form-submit input:active::before{ transform:translateX(105%); }
}

/* ============================================================
   24 · MOBILE POLISH (footer two-up, header/hero spacing, PDP strip gap)
   ============================================================ */
/* PDP made-in-LT notice: clear breathing room above (add-to-cart row) AND
   below (product_meta) so the block isn't cramped against either. */
.botanica .bc-handmade{margin-top:30px;margin-bottom:28px;padding:16px 18px;}
.botanica.single-product .product_meta{margin-top:0;padding-top:4px;}

@media(max-width:600px){
  /* Footer: two columns per row instead of one long stacked list (all 3 zones) */
  .botanica .bc-foot-service{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:22px 18px;}
  .botanica .bc-foot-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:28px 18px;}
  .botanica .bc-foot-legal{display:grid!important;grid-template-columns:1fr 1fr;gap:10px 18px;}
  /* Header: keep the logo symmetric (equal top/bottom) at the smallest widths */
  .botanica .bc-header-row{padding-top:18px;padding-bottom:18px;}
  /* Hero: trim the space above the hero a touch (keep the bottom) */
  .botanica .bc-hero--home{margin-top:0;}
  /* PDP benefit strip: follows the section-type value (54/54, ref 56/56) at all
     mobile widths — the old 22/30 PDP override was a page-scoped micro-tweak the
     owner's section-type decision retires. Falls through to the ≤860 rule. */
}

/* ============================================================
   25 · HEADER — utility icons vertically centred in ALL states
   (normal + stuck). Reaffirmed so the search (left) and account/cart
   (right) always sit on the logo's centre line, never high.
   ============================================================ */
.botanica .bc-header-row{align-items:center;}
.botanica .bc-header-icons{align-items:center;display:flex;}
.botanica .bc-header--sticky.is-stuck .bc-header-row{align-items:center;}
.botanica .bc-header--sticky.is-stuck .bc-header-icons{align-items:center;}

/* ============================================================
   26 · CART / CHECKOUT / WOO NOTICES — full brand polish
   (cart+checkout now carry the `woocommerce` body class so §11/§15 apply;
   this section themes the notice banners + remaining default-Woo chrome.)
   ============================================================ */
/* Woo notice banners (message / info / error) -> brand, never default blue/green */
.botanica .woocommerce-message,
.botanica .woocommerce-info,
.botanica .woocommerce-error{
  background:var(--tint)!important;border:1px solid var(--hair)!important;
  border-top:3px solid var(--olive)!important;color:var(--ink)!important;
  border-radius:0;font-family:var(--sans);font-size:14px;letter-spacing:.2px;}
.botanica .woocommerce-message::before,
.botanica .woocommerce-info::before,
.botanica .woocommerce-error::before{color:var(--olive)!important;}
.botanica .woocommerce-error{border-top-color:#9A3B2E!important;}
.botanica .woocommerce-error::before{color:#9A3B2E!important;}
/* the button inside a notice = brand ink, compact */
.botanica .woocommerce-message .button,
.botanica .woocommerce-info .button{font-size:11px;padding:10px 20px;}

/* Cart/checkout headings -> brand serif */
.botanica.woocommerce-cart .cart_totals h2,
.botanica.woocommerce-checkout h3,
.botanica.woocommerce-checkout #order_review_heading,
.botanica.woocommerce form.checkout h3{font-family:var(--serif);font-weight:300;}

/* Table headers + cells: brand type, hairlines */
.botanica .woocommerce table.shop_table{border:1px solid var(--hair);border-radius:0;}
.botanica .woocommerce table.shop_table th{font-family:var(--sans);font-weight:500;
  letter-spacing:.4px;color:var(--ink);text-transform:none;}
.botanica .woocommerce table.shop_table td,
.botanica .woocommerce table.shop_table tr{border-color:var(--hair);}

/* Coupon + qty inputs: brand */
.botanica .woocommerce .coupon .input-text,
.botanica .woocommerce .quantity .qty{border:1px solid var(--hair)!important;border-radius:0;background:var(--surface);}

/* the "update cart" button stays a quiet outline even when enabled (secondary) */
.botanica .woocommerce button[name="update_cart"]{
  background:transparent!important;color:var(--ink)!important;border:1px solid var(--ink)!important;}
.botanica .woocommerce button[name="update_cart"]:disabled{opacity:.4;}

/* order-received / thank-you page inherits brand spacing */
.botanica.woocommerce-order-received .woocommerce-order h2{font-family:var(--serif);font-weight:300;}

/* ============================================================
   27 · SEARCH OVERLAY (products only) + results page
   ============================================================ */
.bc-search{position:fixed;inset:0;z-index:80;opacity:0;visibility:hidden;transition:opacity .25s ease;}
.bc-search.is-open{opacity:1;visibility:visible;}
.bc-search__backdrop{position:absolute;inset:0;background:rgba(42,39,35,.55);backdrop-filter:blur(2px);}
.bc-search__panel{position:absolute;top:0;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--hair);
  padding:clamp(24px,5vw,54px) var(--pad);box-shadow:0 18px 50px rgba(42,39,35,.14);
  transform:translateY(-12px);transition:transform .28s cubic-bezier(.22,.61,.36,1);}
.bc-search.is-open .bc-search__panel{transform:none;}
.bc-search__form{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:16px;
  border-bottom:1px solid var(--ink);padding-bottom:14px;}
.bc-search__ico{display:inline-flex;color:var(--meta);}
.bc-search__ico svg{width:24px;height:24px;}
.bc-search__input{flex:1;min-width:0;background:transparent;border:none;outline:none;
  font-family:var(--serif);font-weight:300;font-size:clamp(22px,3.4vw,34px);color:var(--ink);}
.bc-search__input::placeholder{color:var(--hair-3);}
.bc-search__close{background:none;border:none;font-size:30px;line-height:1;color:var(--ink);cursor:pointer;padding:0 4px;}
.bc-search__hint{max-width:var(--maxw);margin:14px auto 0;font-size:12px;letter-spacing:.4px;color:var(--meta);}

/* Live-search results dropdown — sits under the input inside the panel, aligned
   to the same max-width. Minimalist: hairlines, no radius, Playfair names. */
.bc-search__results{max-width:var(--maxw);margin:8px auto 0;position:relative;
  max-height:min(62vh,560px);overflow-y:auto;}
.bc-search__results[hidden]{display:none;}
.bc-search__results.is-loading{opacity:.55;transition:opacity .15s;}
.bc-search__group{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--meta);
  font-weight:500;padding:16px 0 8px;border-bottom:1px solid var(--hair);}
.bc-search__group--sec{margin-top:6px;}
.bc-search__item{display:flex;align-items:center;gap:16px;padding:12px 6px;text-decoration:none;
  color:var(--ink);border-bottom:1px solid var(--hair);}
.bc-search__item.is-active,.bc-search__item:hover{background:var(--tint);}
.bc-search__thumb{flex:0 0 auto;width:52px;height:64px;background:var(--tint-2);overflow:hidden;display:block;}
.bc-search__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.bc-search__meta{display:flex;flex-direction:column;gap:3px;min-width:0;}
.bc-search__name{font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.2;color:var(--ink);}
.bc-search__price{font-size:13px;letter-spacing:.2px;color:var(--meta);}
.bc-search__item--page{padding:11px 6px;}
.bc-search__item--page .bc-search__name{font-size:16px;}
.bc-search__more{display:block;padding:13px 6px;text-decoration:none;border-bottom:1px solid var(--hair);
  font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent);font-weight:500;}
.bc-search__more.is-active,.bc-search__more:hover{background:var(--tint);}
.bc-search__empty{padding:22px 6px;color:var(--meta);font-size:15px;}
.bc-search__empty::first-letter{text-transform:none;}
.bc-search__loading{padding:18px 6px;color:var(--meta);font-size:13px;letter-spacing:.4px;}
@media(max-width:600px){
  .bc-search__name{font-size:17px;}
  .bc-search__thumb{width:46px;height:56px;}
}

.bc-search-results{max-width:var(--maxw);margin:0 auto;padding-top:48px;padding-bottom:90px;}
.bc-search-results__head{margin-bottom:36px;}
.bc-search-results__head h2{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4vw,44px);line-height:1.08;margin-top:8px;}
.bc-search-results__head .bc-meta{margin-top:10px;}
.bc-search-empty{padding:30px 0 60px;}
.bc-search-empty p{font-size:18px;color:var(--ink);margin-bottom:18px;}

/* ============================================================
   28 · SEARCH TOGGLE BUTTON RESET + BLOG SINGLE POST
   ============================================================ */
/* the search icon is now a <button> — strip the default button chrome so it
   looks like the other header icons (no grey box) */
.botanica .bc-search-toggle{background:none;border:none;padding:0;margin:0;
  color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;}
.botanica .bc-search-toggle:hover{color:var(--olive);}

/* Blog single post — readable centred column + brand type, so EVERY new post
   inherits the styling with no work. */
.botanica.single-post .entry-header,
.botanica.single-post .entry-content,
.botanica.single-post .entry-meta,
.botanica.single-post .entry-summary,
.botanica.single-post nav.post-navigation,
.botanica.single-post #comments,
.botanica.single-post .comment-respond{
  max-width:760px;margin-left:auto;margin-right:auto;}
.botanica.single-post .featured-image,
.botanica.single-post .post-image{max-width:1000px;margin:0 auto 8px;}
.botanica.single-post .post-image img{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--tint-2);}
.botanica.single-post .entry-title{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4vw,44px);line-height:1.1;}
.botanica.single-post .entry-meta{font-size:13px;letter-spacing:.4px;color:var(--meta);text-transform:none;}
.botanica.single-post .entry-content{margin-top:26px;}
.botanica.single-post .entry-content p{font-size:17px;line-height:1.85;color:var(--ink);margin-bottom:20px;}
.botanica.single-post .entry-content h2,
.botanica.single-post .entry-content h3{font-family:var(--serif);font-weight:400;margin:32px 0 10px;}
.botanica.single-post .entry-content h2{font-size:28px;}
.botanica.single-post .entry-content h3{font-size:22px;}
.botanica.single-post .entry-content blockquote{border-left:2px solid var(--olive);padding-left:20px;
  font-style:italic;color:var(--meta-2);margin:24px 0;}
/* comment form -> brand inputs (match contact form) */
.botanica.single-post #comments h2,
.botanica.single-post .comment-reply-title{font-family:var(--serif);font-weight:300;font-size:28px;}
.botanica.single-post .comment-form input[type=text],
.botanica.single-post .comment-form input[type=email],
.botanica.single-post .comment-form input[type=url],
.botanica.single-post .comment-form textarea{width:100%;background:var(--surface);border:1px solid var(--hair);
  border-radius:0;padding:12px;font-family:var(--sans);font-size:15px;color:var(--ink);margin-bottom:14px;}

/* ============================================================
   29 · ABOUT PAGE sections (demo-matched)
   ============================================================ */
/* "Kaip mes liejame" band — inner column 1000px like the demo */
.botanica .bc-narrow-1000{max-width:1000px!important;}
.botanica .bc-narrow-1000 .bc-eyebrow{margin-bottom:14px;}
.botanica .bc-narrow-1000 > h2{margin-bottom:48px;}
/* two-column dashed rule list already exists (§6 .bc-rule-list/.bc-rule-row/.dash) */
.botanica .bc-rule-list .bc-rule-row span:last-child{font-size:var(--text-body);line-height:var(--lh-body);color:var(--ink);}

/* "Apie netobulą grožį" — italic Playfair 300, 27px, narrow centred */
.botanica .bc-quote-narrow .bc-eyebrow{display:block;margin-bottom:16px;}
.botanica .bc-soft-quote{font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:27px;line-height:1.45;color:var(--ink);max-width:none;}

/* "Mūsų vertybės" band — hairline top like the demo */
.botanica .bc-band--hairtop{border-top:1px solid var(--hair);}
.botanica .bc-band .bc-eyebrow,
.botanica .bc-band--hairtop .bc-eyebrow{margin-bottom:14px;}
/* R34 — owner-adjustable via "Tarpas tarp antraštės ir kortelių" (Apie mus).
   var() fallback (56px) matches the pre-R34 fixed value if the option is unset. */
.botanica .bc-band .bc-section > h2.has-text-align-center{margin-bottom:var(--grids-head-gap,56px);}

/* eyebrow on the dark CTA band = muted gold */
.botanica .bc-eyebrow--ondark{color:#B8B095!important;margin-bottom:16px;}
.botanica .bc-band--dark .bc-section p.has-text-align-center{color:#C7BEAD;max-width:44ch;margin-left:auto;margin-right:auto;}

/* ============================================================
   30 · DISPLAY-HEADING RECONCILIATION (comprehensive)
   Every in-content section <h2> + PDP display headings = Playfair 300, like the
   demo. §21 only caught direct children of .entry-content; band/group-nested
   headings (About "Skaidri sudėtis", "Kuo tikime", CTA) stayed 35px/400. Card
   titles (23) + value/step h3 (22) intentionally stay 400 (not block headings).
   ============================================================ */
.botanica .entry-content h2.wp-block-heading,
.botanica .bc-band h2.wp-block-heading,
.botanica .bc-section h2.wp-block-heading,
.botanica .bc-narrow-1000 h2.wp-block-heading{font-family:var(--serif);font-weight:300;}
/* About centred band headings — exact demo sizes (constrained groups insert a
   .wp-block-group__inner-container wrapper, so use descendant, not direct child) */
.botanica .bc-narrow-1000 h2.wp-block-heading{font-size:38px!important;line-height:1.1;}
.botanica .bc-band--hairtop h2.wp-block-heading{font-size:40px!important;line-height:1.1;}
.botanica .bc-band--dark h2.wp-block-heading{font-size:42px!important;line-height:1.1;}
/* inner hero h1 to the demo's 60px ceiling (was 56)
   R-LOOP2: scoped to .bh__title (was bare h1) — same reason as the home rules
   above, kept consistent even though About's own title is currently always
   the one shown (this stays correct if that ever changes). */
.botanica .bc-hero--inner .wp-block-cover__inner-container .bh__title{font-size:clamp(36px,5.4vw,56px);}
.botanica.page-id-60 .bc-hero--inner .wp-block-cover__inner-container .bh__title{font-size:clamp(40px,6vw,60px);}
/* PDP display headings = 300 (were 400) */
.botanica.single-product .summary .product_title{font-size:56px!important;font-weight:300!important;}
.botanica .bc-mood__inner h2{font-weight:300;}
.botanica.single-product .related h2,
.botanica.single-product #reviews h2,
.botanica.single-product #reviews .woocommerce-Reviews-title,
.botanica.single-product .comment-reply-title{font-family:var(--serif)!important;font-weight:300!important;}
.botanica.single-product .related h2{font-size:36px;}
@media(max-width:520px){
  .botanica.single-product .summary .product_title{font-size:38px!important;}
}

/* ============================================================
   31 · CARE PAGE (Priežiūra) — demo-matched sections
   ============================================================ */
.botanica .bc-care-head{text-align:center;margin-bottom:clamp(36px,4vw,56px);}
.botanica .bc-care-head .bc-eyebrow{margin-bottom:14px;}
.botanica .bc-care-head h2{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4vw,42px);line-height:1.14;}
.botanica .bc-band .bc-care-head h2{font-size:clamp(28px,3.6vw,38px);}
/* video embeds: responsive 16:9 boxes. Placeholder now, real YouTube later —
   the owner pastes an <iframe …> inside a .bc-video-ph and it fills the box
   exactly (16:9 = YouTube's ratio, so no overflow and no letterbox bars).
   Two-up + centred on desktop; each full-width in the content column on mobile. */
.botanica .bc-videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:clamp(20px,2.4vw,32px);justify-items:center;}
.botanica .bc-video-ph{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#E4DBC8;
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.4) 0 2px,transparent 2px 22px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;}
/* any embed dropped inside fills the 16:9 box */
.botanica .bc-video-ph iframe,
.botanica .bc-video-ph video,
.botanica .bc-video-ph embed,
.botanica .bc-video-ph object{position:absolute;inset:0;width:100%;height:100%;border:0;}
.botanica .bc-video-ph .play{display:grid;place-items:center;width:62px;height:62px;
  border:1px solid #8C8472;border-radius:50%;color:#6F685C;}
.botanica .bc-video-ph .cap{font-family:ui-monospace,monospace;font-size:11px;letter-spacing:.5px;color:#8C8472;}
@media(max-width:600px){
  .botanica .bc-videos{grid-template-columns:1fr;}
}
/* safety split: left heading+intro+size table, right dashed list */
.botanica .bc-care-safety{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:clamp(34px,5vw,72px);align-items:start;}
.botanica .bc-care-safety h2{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.4vw,38px);line-height:1.16;}
.botanica .bc-care-safety > div > p{margin-top:18px;font-size:var(--text-body);line-height:var(--lh-body);color:var(--meta);max-width:42ch;}
.botanica .bc-size-table{margin-top:26px;border-top:1px solid var(--hair-3);padding-top:22px;}
.botanica .bc-size-table .h{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;color:var(--meta);margin-bottom:14px;}
.botanica .bc-size-table .row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--hair-2);font-size:15px;color:var(--ink);}
.botanica .bc-size-table .row:last-child{border-bottom:none;}
.botanica .bc-size-table .row .d{color:var(--meta);}
.botanica .bc-care-rules{display:flex;flex-direction:column;}
.botanica .bc-care-rules .bc-rule-row{padding:15px 0;border-top:1px solid var(--hair);}
.botanica .bc-care-rules .bc-rule-row:last-child{border-bottom:1px solid var(--hair);}
.botanica .bc-care-rules .bc-rule-row span:last-child{font-size:var(--text-mid);line-height:var(--lh-mid);color:var(--ink);}

/* ============================================================
   32 · CONTACT PAGE (Kontaktai) — demo-matched
   ============================================================ */
.botanica .bc-contact-intro h1.wp-block-heading{font-family:var(--serif);font-weight:300;
  font-size:clamp(40px,6vw,62px);line-height:1.2;letter-spacing:.6px;}
.botanica .bc-form h2.wp-block-heading{font-family:var(--serif);font-weight:300;
  font-size:clamp(26px,3vw,32px)!important;line-height:1.16;margin-bottom:24px;}
.botanica .bc-contact-social{display:flex;gap:20px;font-size:16px;color:var(--ink);}
.botanica .bc-contact-social a{border-bottom:1px solid #C9BFA8;padding-bottom:2px;cursor:pointer;}
.botanica .bc-contact-handle{margin-top:8px;font-size:14px;color:var(--meta);}

/* ============================================================
   33 · BLOG ARCHIVE (Tinklaraštis) — magazine layout
   ============================================================ */
/* QA-02 (round 7): was clamp(48,6vw,84)/clamp(28,3vw,40). Symmetrical at the
   same total at both ends of the clamp (76 and 124). */
.botanica .bc-blog-intro{text-align:center;padding-top:clamp(38px,4.5vw,62px);padding-bottom:clamp(38px,4.5vw,62px);}
.botanica .bc-blog-intro .bc-eyebrow{display:block;margin-bottom:16px;}
.botanica .bc-blog-intro h1{font-family:var(--serif);font-weight:300;font-size:clamp(40px,6vw,62px);line-height:1.2;letter-spacing:.6px;}
.botanica .bc-blog-intro__lead{margin:20px auto 0;font-size:var(--text-body);line-height:var(--lh-body);color:var(--meta);max-width:52ch;}
/* feature post: image left + body right */
/* QA-02 (round 7): was clamp(20,3vw,40)/clamp(40,5vw,60). Totals preserved (60 and 100). */
.botanica .bc-feature-wrap{padding-top:clamp(30px,4vw,50px);padding-bottom:clamp(30px,4vw,50px);}
.botanica .bc-feature-post{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(24px,4vw,56px);align-items:center;}
/* No picture: one column, so the text is not pushed into half a row beside an
   empty space. The card still reads as a card — it simply has no image. */
.botanica .bc-feature-post--noimg{grid-template-columns:1fr;}
.botanica .bc-feature-post .bc-imgwrap{overflow:hidden;background:var(--hair);}
.botanica .bc-feature-post .bc-imgwrap img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;}
.botanica .bc-feature-post h2{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.4vw,40px);line-height:1.14;margin-top:12px;color:var(--ink);}
.botanica .bc-feature-post p{margin-top:14px;font-size:var(--text-body);line-height:var(--lh-body);color:var(--meta);max-width:48ch;}
.botanica .bc-feature-post .bc-link{margin-top:18px;}
/* 3-col post grid */
/* QA-02 (round 7): was 0 / clamp(60,8vw,100). The zero top only read as
   deliberate while the feature wrap above carried an oversized bottom; once
   that was balanced this became the last asymmetry on the page. Totals kept. */
.botanica .bc-post-grid-wrap{padding-top:clamp(30px,4vw,50px);padding-bottom:clamp(30px,4vw,50px);}
.botanica .bc-post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(28px,3vw,44px);}
.botanica .bc-post-card{display:block;}
.botanica .bc-post-card .bc-imgwrap{overflow:hidden;background:var(--hair);}
.botanica .bc-post-card .bc-imgwrap img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.botanica .bc-post-card .bc-post__cat{margin-top:16px;}
.botanica .bc-post-card h3{margin-top:8px;font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.2;color:var(--ink);}
.botanica .bc-post-card p{margin-top:10px;font-size:var(--text-mid);line-height:var(--lh-mid);color:var(--meta);}
.botanica .bc-blog-more{margin-top:clamp(40px,5vw,64px);text-align:center;font-size:13.5px;color:var(--meta);}
/* category eyebrow uses the existing .bc-post__cat (§12) */

/* ============================================================
   34 · PDP reviews shown directly (no Woo tabs) — demo-matched
   ============================================================ */
.botanica.single-product .bc-pdp-reviews{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,5vw,72px) var(--pad);}
.botanica.single-product .bc-pdp-reviews__head{margin-bottom:24px;}
.botanica.single-product .bc-pdp-reviews__head .bc-eyebrow{display:block;margin-bottom:12px;}
.botanica.single-product .bc-pdp-reviews__head h2{font-family:var(--serif)!important;font-weight:300!important;font-size:38px;line-height:1.1;}
.botanica.single-product .bc-pdp-reviews #reviews{max-width:760px;}
.botanica.single-product .bc-pdp-reviews .woocommerce-Reviews-title{display:none;} /* our heading replaces it */
.botanica.single-product .bc-pdp-reviews .comment-form-rating label{font-size:13px;color:var(--meta);}
/* Mobile: reviews = reference section-type 78/78 (desktop keeps the clamp ~72,
   Δ6 within tolerance). Placed after the base rule so it wins by source order. */
@media(max-width:860px){
  .botanica.single-product .bc-pdp-reviews{padding-top:78px;padding-bottom:78px;}
}

/* ============================================================
   35 · SHOP "Aksesuarai" section (demo split candles → accessories)
   ============================================================ */
/* accessories = full-bleed tint band (reference), content stays contained */
.botanica.woocommerce .bc-shop-accessories{max-width:none;width:100vw;margin-left:calc(50% - 50vw);
  /* QA-02 (round 7): was 48..80 top / 40..64 bottom. Totals preserved (88 and 144). */
  background:var(--tint);margin-top:clamp(40px,5vw,72px);padding:clamp(44px,4.5vw,72px) 0;}
.botanica.woocommerce .bc-shop-accessories > *{max-width:var(--maxw);margin-left:auto;margin-right:auto;
  padding-left:var(--pad);padding-right:var(--pad);box-sizing:border-box;}
/* shop result-count / sort bar (reference 1:1) */
.botanica.woocommerce .bc-shop-bar{display:flex;justify-content:space-between;align-items:flex-end;
  max-width:var(--maxw);margin:0 auto;padding:clamp(28px,4vw,46px) var(--pad) 6px;border-bottom:1px solid var(--hair);}
/* ^ ref count-bar = clamp(28,4vw,46) top / 6 bottom; the grid's own top margin (34)
   supplies the bar→grid gap. Was padding:0 + margin-bottom → glued to the hero
   (0 gap above) at every width; also the owner B3 breathing-room request. */
.botanica .bc-shop-bar__tabs{display:flex;gap:26px;}
.botanica .bc-shop-bar__tab{font-size:12px;letter-spacing:1.4px;text-transform:uppercase;font-weight:500;
  color:var(--meta);padding-bottom:14px;margin-bottom:-1px;border-bottom:1px solid transparent;cursor:pointer;text-decoration:none;}
.botanica .bc-shop-bar__tab.is-active{color:var(--ink);border-bottom-color:var(--ink);}
.botanica .bc-shop-bar__tab:hover{color:var(--ink);}
.botanica .bc-shop-bar__sort{display:flex;align-items:center;gap:6px;font-size:12px;letter-spacing:1px;
  text-transform:uppercase;color:var(--meta);padding-bottom:12px;margin:0;}
.botanica .bc-shop-bar__sortlbl{color:var(--meta);}
.botanica .bc-shop-bar__sortwrap{position:relative;display:inline-flex;align-items:center;}
.botanica .bc-shop-bar__sortwrap::after{content:"\25BE";position:absolute;right:0;pointer-events:none;color:var(--meta);}
.botanica .bc-shop-bar__sortsel{appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background:none;border:none;outline:none;cursor:pointer;color:var(--ink);
  font:inherit;letter-spacing:1px;text-transform:uppercase;padding:0 18px 0 0;margin:0;}
.botanica .bc-shop-bar__sortsel:focus-visible{outline:1px solid var(--accent);outline-offset:3px;}
.botanica .bc-shop-bar__sortsel option{text-transform:none;letter-spacing:normal;color:var(--ink);}
@media(max-width:600px){
  .botanica.woocommerce .bc-shop-bar{flex-direction:column;align-items:flex-start;gap:12px;}
}
/* bestseller badge on the loop card (field-controlled) */
.botanica .bc-card__badge,
.botanica.woocommerce ul.products li.product .bc-card__badge{font-size:11px;letter-spacing:1.4px;
  text-transform:uppercase;font-weight:500;color:var(--olive-2);margin:10px 0 -2px;}
.botanica.woocommerce .bc-shop-accessories .bc-care-head{text-align:center;margin-bottom:clamp(28px,3vw,48px);}
.botanica.woocommerce .bc-shop-accessories .bc-care-head .bc-eyebrow{display:block;margin-bottom:14px;}
.botanica.woocommerce .bc-shop-accessories .bc-care-head h2{font-family:var(--serif)!important;font-weight:300!important;font-size:40px;line-height:1.1;}
.botanica.woocommerce .bc-shop-accessories ul.products{grid-template-columns:repeat(3,1fr);}
@media(max-width:860px){.botanica.woocommerce .bc-shop-accessories ul.products{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.botanica.woocommerce .bc-shop-accessories ul.products{grid-template-columns:1fr;}}

/* demo shop has no result-count / ordering bar — hide for a clean 1:1 */
.botanica.woocommerce .woocommerce-result-count,
.botanica.woocommerce .woocommerce-ordering{display:none;}

/* ============================================================
   36 · Global horizontal-overflow guard (announcement marquee sits OUTSIDE
   #page, so #page's overflow-x:clip didn't catch its duplicated ticker track).
   overflow-x:clip (not hidden) keeps position:sticky working.
   ============================================================ */
html,body{overflow-x:clip;}
.botanica .bc-announce,
.botanica .bc-announce .container,
.botanica .bc-announce__text{overflow-x:clip;max-width:100%;}

/* ============================================================
   37 · MOBILE: all image|text two-column rows collapse to ONE column
   (image first → image-top, text-below). §21 forced grid-template !important
   on .bc-split to beat WP core's is-layout-flex; that !important also beat the
   mobile collapse, so splits stayed 2-up and headings wrapped one char per line
   ("Chamomil e", "Smulkm enos"). Re-assert the collapse with !important here,
   later in the file, so it wins on mobile. Fix once, globally — not per section.
   ============================================================ */
@media(max-width:860px){
  .botanica .bc-split,
  .botanica .bc-split--feature,
  .botanica .bc-split--story,
  .botanica .wp-block-columns.bc-split,
  .botanica .bc-split:not(.bc-split--feature):not(.bc-split--story){
    grid-template-columns:1fr!important;gap:36px!important;align-items:start!important;}
  .botanica .bc-split > .wp-block-column,
  .botanica .bc-split--feature > .wp-block-column,
  .botanica .bc-split--story > .wp-block-column{width:auto!important;flex-basis:auto!important;}
  /* other two-column rows already collapse (auto-fit minmax) — guard anyway */
  .botanica .bc-care-safety,
  .botanica .bc-feature-post,
  .botanica .bc-pdp-grid{grid-template-columns:1fr!important;}
  /* headings never split a word across lines once full-width */
  .botanica .bc-split h2,
  .botanica .bc-split--feature h2,
  .botanica .bc-split--story h2{overflow-wrap:normal;word-break:normal;}
}

/* ============================================================
   38 · MOBILE FOOTER (≤768px) — simplify for a boutique shop
   Desktop footer unchanged. Mobile shows only: logo + tagline, contacts
   (email/phone/social), ONE compact row of primary links, legal + copyright.
   Trust badges + the repeated menu columns are hidden (kept in DOM for desktop).
   ============================================================ */
.bc-foot-mobile-links{display:none;} /* desktop: hidden */
/* Footer nav renders bare <li> (items_wrap=%3$s) which keep the UA disc marker
   (•). Strip list markers everywhere in the footer and lay nav items as clean
   flex rows — no bullets stuck to words, no ragged wrap. */
.botanica .bc-footer ul,
.botanica .bc-footer li{list-style:none!important;margin:0;padding:0;}
.botanica .bc-footer li::marker{content:"";}
@media(max-width:768px){
  /* hide trust badges (duplicate the PDP benefit strip) + the menu columns */
  .botanica .bc-footer .bc-foot-service{display:none!important;}
  .botanica .bc-foot-cols > div:nth-child(2),   /* Parduotuvė menu */
  .botanica .bc-foot-cols > div:nth-child(3){   /* Informacija menu */
    display:none!important;}
  /* foot-cols -> single column with generous vertical rhythm between sections */
  .botanica .bc-foot-cols{grid-template-columns:1fr!important;gap:36px!important;
    padding-top:44px!important;padding-bottom:32px!important;}
  .botanica .bc-foot-cols .blurb{max-width:34ch;line-height:var(--lh-small);}
  .botanica .bc-foot-cols > div:last-child .h{margin-bottom:14px;}
  .botanica .bc-foot-cols > div:last-child .links{gap:12px;}
  /* compact one-row primary links — even spacing, clean wrap, no bullets */
  .botanica .bc-foot-mobile-links{display:flex!important;flex-wrap:wrap;gap:14px 22px;
    max-width:var(--maxw);margin:0 auto;padding:24px var(--pad);
    border-top:1px solid rgba(255,255,255,.09);}
  .botanica .bc-foot-mobile-links li{display:inline-flex;}
  .botanica .bc-foot-mobile-links a{font-size:13px;letter-spacing:.6px;
    text-transform:uppercase;color:var(--footer-link);}
  .botanica .bc-foot-mobile-links a:hover{color:var(--footer-head);}
  /* legal links: flex-wrap row, no bullets, even spacing */
  .botanica .bc-foot-legal{display:flex!important;flex-wrap:wrap;gap:9px 18px;
    padding-top:20px!important;padding-bottom:18px!important;}
  .botanica .bc-foot-legal li{display:inline-flex;}
  /* copyright: clear separation above, breathing room below */
  .botanica .bc-foot-copy{padding-top:8px!important;padding-bottom:34px!important;gap:8px;
    border-top:1px solid rgba(255,255,255,.07);}
}

/* ============================================================
   39 · MOBILE announcement bar — kill the stray "|" at the right
   The marquee text is hard-clipped mid-character by overflow:hidden, leaving a
   thin vertical sliver of the next letter that reads as a stray "|" separator.
   Fade the edges on mobile (mask) so the text dissolves instead of hard-clipping
   — no vertical line. Desktop unchanged.
   ============================================================ */
@media(max-width:768px){
  .botanica .bc-announce__text{
    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 14px,#000 calc(100% - 20px),transparent 100%);
    mask-image:linear-gradient(to right,transparent 0,#000 14px,#000 calc(100% - 20px),transparent 100%);
  }
}

/* ============================================================
   40 · BLOG SINGLE POST — mobile gutters
   §28 centres the post at max-width:760 with auto margins; below 760 that gives
   the content full width with NO horizontal padding, so the title/byline/body
   sat flush against the left edge. Add the site gutter (--pad) on mobile so the
   text aligns with the rest of the site.
   ============================================================ */
@media(max-width:768px){
  .botanica.single-post .entry-header,
  .botanica.single-post .entry-title,
  .botanica.single-post .entry-meta,
  .botanica.single-post .entry-content,
  .botanica.single-post .entry-summary,
  .botanica.single-post nav.post-navigation,
  .botanica.single-post #comments,
  .botanica.single-post .comment-respond{
    padding-left:var(--pad);padding-right:var(--pad);box-sizing:border-box;}
}

/* ============================================================
   41 · WOO PRODUCT REVIEWS — restyled to the Botanica design system
   CSS-only against Woo's default review markup (the submit is a <button> via the
   comment-form filter so the §22 fill-out hover works). Reference = the static
   demo reviews block (max-width 880, Playfair heading, underline name/email
   inputs, surface-2 textarea, outline CTA). Tokens only — no magic hex.
   ============================================================ */
.botanica.single-product .bc-pdp-reviews #reviews{max-width:640px;margin:0 auto;}
/* intro subtitle under the heading */
.botanica.single-product .bc-pdp-reviews__head{text-align:center;}
.botanica.single-product .bc-pdp-reviews__sub{margin:16px auto 0;font-size:var(--text-mid);line-height:var(--lh-mid);
  color:var(--meta);max-width:48ch;}

/* empty state — on-brand, no default box */
.botanica.single-product .bc-pdp-reviews .woocommerce-noreviews{
  margin:40px 0 0;border-top:1px solid var(--hair-2);border-bottom:1px solid var(--hair-2);
  padding:34px 0;text-align:center;background:transparent;color:var(--meta);
  font-family:var(--serif);font-weight:400;font-style:italic;font-size:21px;line-height:1.4;}

/* "Būkite pirmas aprašęs…" notes -> quiet centred prompt. The reply-title is a
   sibling of the form inside #respond (NOT inside .comment-form), so target it
   directly. Spacing lives on the empty-state box (margin-bottom) so it can't be
   eaten by margin-collapse through #respond. */
.botanica.single-product .bc-pdp-reviews .woocommerce-noreviews{margin-bottom:40px;}
.botanica.single-product .bc-pdp-reviews .comment-notes,
.botanica.single-product .bc-pdp-reviews .comment-reply-title{
  text-align:center;font-size:15px;color:var(--meta);margin:8px 0 0;font-family:var(--sans);font-weight:400;}
.botanica.single-product .bc-pdp-reviews .comment-reply-title{font-family:var(--serif);font-weight:300;font-size:22px;color:var(--ink);}

/* the form: centred column, demo width */
.botanica.single-product .bc-pdp-reviews #commentform,
.botanica.single-product .bc-pdp-reviews .comment-form{max-width:560px;margin:34px auto 0;}
.botanica.single-product .bc-pdp-reviews .comment-form p{margin:0 0 18px;}
/* field labels = small meta */
.botanica.single-product .bc-pdp-reviews .comment-form label{display:block;font-size:13px;
  letter-spacing:.3px;color:var(--meta);margin-bottom:8px;}
.botanica.single-product .bc-pdp-reviews .comment-form .required{color:var(--olive);}

/* star rating selector (Jūsų įvertinimas) — brand colour, larger, spaced */
.botanica.single-product .bc-pdp-reviews .comment-form-rating{text-align:left;}
.botanica.single-product .bc-pdp-reviews p.stars{margin:0;}
.botanica.single-product .bc-pdp-reviews p.stars a{color:var(--hair-3);transition:color .2s;}
.botanica.single-product .bc-pdp-reviews p.stars a::before{font-size:22px;letter-spacing:3px;}
.botanica.single-product .bc-pdp-reviews p.stars:hover a,
.botanica.single-product .bc-pdp-reviews p.stars.selected a.active,
.botanica.single-product .bc-pdp-reviews p.stars a:hover,
.botanica.single-product .bc-pdp-reviews p.stars.selected a:not(.active){color:var(--olive-2);}

/* textarea = boxed surface-2 (demo); name/email = underline (demo) */
.botanica.single-product .bc-pdp-reviews .comment-form-comment textarea,
.botanica.single-product .bc-pdp-reviews #comment{width:100%;background:var(--surface-2);
  border:1px solid var(--hair);border-radius:0;padding:13px;font-family:var(--sans);font-size:15px;
  line-height:1.6;color:var(--ink);outline:none;resize:vertical;box-sizing:border-box;}
.botanica.single-product .bc-pdp-reviews .comment-form-author input,
.botanica.single-product .bc-pdp-reviews .comment-form-email input{width:100%;background:transparent;
  border:none;border-bottom:1px solid var(--line);border-radius:0;padding:11px 2px;
  font-family:var(--sans);font-size:15px;color:var(--ink);outline:none;box-sizing:border-box;}
.botanica.single-product .bc-pdp-reviews .comment-form input:focus,
.botanica.single-product .bc-pdp-reviews .comment-form textarea:focus{border-color:var(--olive);}

/* cookies-consent: aligned checkbox + label */
.botanica.single-product .bc-pdp-reviews .comment-form-cookies-consent{display:flex;
  align-items:flex-start;gap:10px;}
.botanica.single-product .bc-pdp-reviews .comment-form-cookies-consent input{flex:0 0 auto;
  width:16px;height:16px;margin-top:2px;accent-color:var(--olive);}
.botanica.single-product .bc-pdp-reviews .comment-form-cookies-consent label{margin:0;font-size:13px;
  line-height:1.5;color:var(--meta);}

/* submit: centre the (branded) button like the demo */
.botanica.single-product .bc-pdp-reviews .form-submit{text-align:center;margin-top:8px;}

/* review LIST items (when reviews exist) */
.botanica.single-product .bc-pdp-reviews .commentlist{list-style:none;margin:34px 0 0;padding:0;}
.botanica.single-product .bc-pdp-reviews .commentlist li.review,
.botanica.single-product .bc-pdp-reviews .commentlist li.comment{border-top:1px solid var(--hair);
  padding:26px 0;}
.botanica.single-product .bc-pdp-reviews .commentlist .comment_container{display:flex;gap:16px;align-items:flex-start;}
.botanica.single-product .bc-pdp-reviews .commentlist img.avatar{width:44px;height:44px;border-radius:50%;
  margin:0;background:var(--tint-2);}
.botanica.single-product .bc-pdp-reviews .commentlist .comment-text{flex:1;min-width:0;}
.botanica.single-product .bc-pdp-reviews .commentlist .meta{font-size:13px;color:var(--meta);margin:0 0 6px;}
.botanica.single-product .bc-pdp-reviews .commentlist .meta strong{font-family:var(--serif);font-weight:400;
  font-size:17px;color:var(--ink);display:inline;margin-right:8px;}
.botanica.single-product .bc-pdp-reviews .commentlist .star-rating{margin:4px 0 10px;font-size:13px;color:var(--olive-2);}
.botanica.single-product .bc-pdp-reviews .commentlist .description p{font-size:var(--text-mid);line-height:var(--lh-mid);color:var(--ink);margin:0;}

/* mobile gutters: nothing flush to the edge */
@media(max-width:768px){
  .botanica.single-product .bc-pdp-reviews{padding-left:var(--pad);padding-right:var(--pad);}
  /* bulletproof: the submit (a nowrap .bc-btn) can never exceed the column — cap
     at 100% and let the label wrap instead of leaking past the right edge. */
  .botanica.single-product .bc-pdp-reviews .form-submit{display:flex;justify-content:center;}
  .botanica.single-product .bc-pdp-reviews .form-submit button,
  .botanica.single-product .bc-pdp-reviews .form-submit input{max-width:100%;white-space:normal;
    box-sizing:border-box;}
}

/* ============================================================
   28 · CART REDESIGN — card-per-item (Part 1)
   Replaces the default Woo responsive table (woocommerce/cart/cart.php
   override) with a brand card layout: rounded thumbnail + name + variation
   meta + unit price, qty stepper, line subtotal, discreet × remove. SAME
   structure desktop + mobile (no repeated Produktas:/Kaina: labels). Tokens
   only. Stepper behaviour = §28b (Part 3); coupon collapse = §28c (Part 4).
   ============================================================ */
.botanica.woocommerce-cart .bc-cart-form{margin:0;}
.botanica.woocommerce-cart .bc-cart-list{border-top:1px solid var(--hair);}

.botanica .bc-cart-item{
  position:relative;
  display:grid;
  grid-template-columns:76px 1fr;
  gap:20px;
  align-items:start;
  padding:24px 44px 24px 0;          /* right pad = room for the × */
  border-bottom:1px solid var(--hair);
}
.botanica .bc-cart-item__thumb{width:76px;}
.botanica .bc-cart-item__thumb img{width:76px;height:76px;object-fit:cover;border-radius:6px;
  background:var(--tint-2);margin:0;}
.botanica .bc-cart-item__main{min-width:0;}
.botanica .bc-cart-item__name{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.25;
  color:var(--ink);}
.botanica .bc-cart-item__name a{color:inherit;}
.botanica .bc-cart-item__name a:hover{color:var(--olive-2);}
.botanica .bc-cart-item__meta{margin-top:5px;font-size:13px;color:var(--meta);line-height:1.5;}
.botanica .bc-cart-item__meta p{margin:0;}
.botanica .bc-cart-item__meta dl,
.botanica .bc-cart-item__meta dt,
.botanica .bc-cart-item__meta dd{display:inline;margin:0;font-size:13px;}
.botanica .bc-cart-item__meta dt{font-weight:500;}
.botanica .bc-cart-item__meta dt::after{content:" ";}
.botanica .bc-cart-item__meta dd::after{content:"";}
.botanica .bc-cart-item__unit{margin-top:4px;font-size:13px;color:var(--meta);}
.botanica .bc-cart-item__unit .amount{font-variant-numeric:tabular-nums;}

.botanica .bc-cart-item__controls{margin-top:16px;display:flex;align-items:center;
  justify-content:space-between;gap:16px;}
.botanica .bc-cart-item__subtotal{font-size:17px;color:var(--ink);font-variant-numeric:tabular-nums;
  white-space:nowrap;}
.botanica .bc-cart-item__subtotal .amount{font-variant-numeric:tabular-nums;}

/* discreet × remove (top-right of the card) */
.botanica a.bc-cart-item__remove{position:absolute;top:24px;right:0;width:26px;height:26px;
  display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1;
  color:var(--meta);background:none;border:none;border-radius:50%;text-decoration:none;
  transition:color .2s ease,background .2s ease;}
.botanica a.bc-cart-item__remove:hover{color:#9A3B2E;background:var(--tint);}

/* qty stepper — static appearance here; +/- wired in §28b (Part 3) */
.botanica .bc-stepper{display:inline-flex;align-items:stretch;border:1px solid var(--ink);
  height:42px;background:var(--surface);}
.botanica .bc-stepper__btn{width:38px;border:none;background:none;color:var(--ink);font-size:18px;
  line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  padding:0;transition:background .18s ease,color .18s ease;-webkit-appearance:none;appearance:none;}
.botanica .bc-stepper__btn:hover{background:var(--ink);color:var(--on-dark);}
.botanica .bc-stepper__input{width:46px;text-align:center;border:none;border-left:1px solid var(--hair);
  border-right:1px solid var(--hair);background:transparent;font-family:var(--sans);font-size:15px;
  color:var(--ink);-moz-appearance:textfield;padding:0;height:100%;}
.botanica .bc-stepper__input::-webkit-outer-spin-button,
.botanica .bc-stepper__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.botanica .bc-qty-fixed{display:inline-flex;align-items:center;justify-content:center;min-width:42px;
  height:42px;border:1px solid var(--hair);color:var(--meta);font-size:15px;background:var(--surface-2);}

/* ---- cart button system: ghost (secondary) + primary. NO fill-out wipe
   (playbook: keep cart/checkout buttons solid/clear for conversion). ------- */
.botanica .bc-cbtn{display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:1.4px;text-transform:uppercase;
  padding:15px 26px;border:1px solid var(--ink);border-radius:0;cursor:pointer;white-space:nowrap;
  text-decoration:none;line-height:1;transition:background .22s ease,color .22s ease;}
.botanica .bc-cbtn--ghost{background:transparent;color:var(--ink);}
.botanica .bc-cbtn--ghost:hover{background:var(--ink);color:var(--on-dark);}
.botanica .bc-cbtn--primary{background:var(--ink);color:var(--on-dark);}
.botanica .bc-cbtn--primary:hover{background:#3C382F;color:var(--on-dark);}

/* actions row: coupon (left) + update (right) */
.botanica .bc-cart-actions{display:flex;flex-wrap:wrap;align-items:flex-start;
  justify-content:space-between;gap:18px;margin-top:24px;}
.botanica .bc-coupon{display:flex;flex-direction:column;gap:10px;min-width:280px;}
.botanica .bc-coupon__row{display:flex;gap:10px;align-items:stretch;}

/* ---- Part 4: coupon collapsed behind a quiet link --------------------------
   No-JS: toggle hidden, row visible (functional). JS adds .is-enhanced ->
   toggle shown, row hidden until .is-open. ---------------------------------- */
.botanica .bc-coupon__toggle{display:none;}
.botanica .bc-coupon.is-enhanced .bc-coupon__toggle{display:inline-flex;align-items:center;gap:7px;
  align-self:flex-start;background:none;border:none;padding:0;cursor:pointer;
  font-family:var(--sans);font-size:var(--text-small);color:var(--meta-2);letter-spacing:.2px;
  border-bottom:1px solid var(--line);line-height:var(--lh-small);transition:color .2s ease,border-color .2s ease;}
.botanica .bc-coupon.is-enhanced .bc-coupon__toggle::after{content:"+";font-size:15px;color:var(--olive-2);
  transition:transform .2s ease;}
.botanica .bc-coupon.is-enhanced .bc-coupon__toggle:hover{color:var(--ink);border-color:var(--ink);}
.botanica .bc-coupon.is-enhanced.is-open .bc-coupon__toggle::after{content:"\2212";}  /* minus */
.botanica .bc-coupon.is-enhanced .bc-coupon__row{display:none;}
.botanica .bc-coupon.is-enhanced.is-open .bc-coupon__row{display:flex;margin-top:4px;}
.botanica .bc-coupon__input{flex:1 1 auto;min-width:0;border:1px solid var(--hair)!important;
  background:var(--surface);border-radius:0;padding:0 14px;height:48px;font-size:14px;color:var(--ink);
  font-family:var(--sans);}
.botanica .bc-coupon__input:focus{outline:none;border-color:var(--olive)!important;}
.botanica .bc-coupon__apply{flex:0 0 auto;}
.botanica .bc-cart-update{flex:0 0 auto;}

/* ---- Part 2: added-to-cart success = single centred cream/ink bar -------
   Overrides §26's tinted-box treatment for the SUCCESS message only (info /
   error keep the §26 tint). Woo's icon font is dropped for our <svg> ✓.       */
.botanica .woocommerce-message{
  background:var(--surface-2)!important;border:1px solid var(--hair)!important;
  border-top:1px solid var(--hair)!important;color:var(--ink)!important;
  display:flex;align-items:center;justify-content:center;text-align:center;
  padding:15px 22px;margin:0 0 14px;border-radius:0;font-family:var(--sans);
  font-size:15px;letter-spacing:.2px;}
.botanica .woocommerce-message::before{display:none!important;content:none!important;}
.botanica .woocommerce-message .button{display:none;}     /* drop any stray default view-cart btn */
.botanica .bc-added{display:inline-flex;align-items:center;justify-content:center;gap:14px;
  flex-wrap:wrap;color:var(--ink);}
.botanica .bc-added__ico{color:var(--olive);flex:0 0 auto;}
.botanica .bc-added__txt{line-height:1.4;}
.botanica .woocommerce-message .bc-added__btn{display:inline-flex;padding:11px 20px;font-size:11px;}
@media(max-width:768px){
  .botanica .woocommerce-message{padding:16px 18px;}
  .botanica .bc-added{flex-direction:column;gap:11px;}
}

/* ---- Part 5: free-shipping progress bar (reads real min_amount) ----------- */
.botanica .bc-freeship{background:var(--tint);border:1px solid var(--hair);border-radius:0;
  padding:14px 22px;margin:0 0 10px;display:flex;flex-direction:column;gap:10px;}
.botanica .bc-freeship__msg{margin:0;font-size:14px;color:var(--ink);letter-spacing:.2px;text-align:center;line-height:1.4;}
.botanica .bc-freeship__msg .amount{font-weight:500;color:var(--olive-deep);}
.botanica .bc-freeship__ico{color:var(--olive);font-weight:600;}
.botanica .bc-freeship__track{height:5px;background:var(--hair-2);border-radius:3px;overflow:hidden;}
.botanica .bc-freeship__fill{display:block;height:100%;background:var(--olive);border-radius:3px;
  transition:width .5s cubic-bezier(.22,.61,.36,1);}
.botanica .bc-freeship.is-reached .bc-freeship__msg{color:var(--olive-deep);}
.botanica .bc-freeship.is-reached .bc-freeship__fill{background:var(--olive-2);}

/* ---- Part 5: sticky mobile checkout bar (≤768px only) --------------------- */
.botanica .bc-cart-stickybar{display:none;}
@media(max-width:768px){
  .botanica .bc-cart-stickybar{position:fixed;left:0;right:0;bottom:0;z-index:60;
    display:flex;align-items:center;justify-content:space-between;gap:14px;
    background:var(--surface);border-top:1px solid var(--hair);box-shadow:0 -8px 24px rgba(42,39,35,.12);
    padding:11px 16px calc(11px + env(safe-area-inset-bottom));
    transform:translateY(0);transition:transform .32s cubic-bezier(.22,.61,.36,1);}
  .botanica .bc-cart-stickybar.is-hidden{transform:translateY(130%);}
  .botanica .bc-cart-stickybar__total{display:flex;flex-direction:column;line-height:1.05;}
  .botanica .bc-cart-stickybar__k{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--meta);}
  .botanica .bc-cart-stickybar__v{font-size:18px;color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums;margin-top:2px;}
  .botanica .bc-cart-stickybar__v .amount{font-variant-numeric:tabular-nums;}
  .botanica .bc-cart-stickybar__btn{flex:0 0 auto;padding:14px 22px;}
}

/* ---- Part 6: totals summary card + empty state ---------------------------- */
/* full control of the collaterals column (override Woo's float:right 50%) */
.botanica.woocommerce-cart .cart-collaterals{float:none;width:100%;display:flex;
  justify-content:flex-end;margin-top:6px;}
.botanica.woocommerce-cart .cart-collaterals .cross-sells{display:none;}  /* keep the cart focused */

.botanica .bc-totals{float:none!important;width:100%!important;max-width:430px;
  background:var(--surface-2);border:1px solid var(--hair);border-radius:0;padding:30px 32px 32px;}
.botanica .bc-totals__title{font-family:var(--serif);font-weight:300;font-size:26px;color:var(--ink);
  margin:0 0 18px;line-height:1.1;}
.botanica .bc-totals__rows{display:block;}
.botanica .bc-totals__row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:13px 0;border-bottom:1px solid var(--hair-2);}
/* Single divider before the emphasised total: the total row draws its own ink
   rule (border-top below), so drop the hair line on the row directly above it —
   otherwise the two stack into a doubled line between e.g. "Tarpinė suma" and
   "Viso". Rule-level fix (adjacency), not a pixel nudge. */
.botanica .bc-totals__row:has(+ .bc-totals__row--total){border-bottom:none;}
.botanica .bc-totals__k{font-size:14px;color:var(--meta-2);letter-spacing:.2px;}
.botanica .bc-totals__v{font-size:15px;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;}
.botanica .bc-totals__v .amount{font-variant-numeric:tabular-nums;}
.botanica .bc-totals__row.cart-discount .bc-totals__k{color:var(--olive-deep);}
.botanica .bc-totals__row.cart-discount .bc-totals__v{color:var(--olive-deep);}
.botanica .bc-totals__row.cart-discount a{font-size:12px;color:var(--meta);text-decoration:underline;
  margin-left:8px;}
.botanica .bc-totals__row--shipping{flex-wrap:wrap;}
.botanica .bc-totals__row--shipping .bc-totals__k,
.botanica .bc-totals__row--shipping #shipping_method{font-size:14px;color:var(--meta-2);}
.botanica .bc-totals__row--total{border-bottom:none;border-top:1px solid var(--ink);margin-top:4px;
  padding-top:18px;align-items:center;}
.botanica .bc-totals__row--total .bc-totals__k{font-family:var(--serif);font-size:20px;color:var(--ink);
  letter-spacing:0;}
.botanica .bc-totals__row--total .bc-totals__v{font-size:22px;color:var(--ink);font-weight:500;}
.botanica .bc-totals__row--total .bc-totals__v strong{font-weight:500;}
.botanica .bc-totals .wc-proceed-to-checkout{margin-top:22px;padding:0;}
.botanica .bc-totals .checkout-button{display:flex;width:100%;padding:17px 24px;}
.botanica .bc-totals__note{margin:14px 0 0;font-size:12px;line-height:1.5;color:var(--meta);text-align:center;}

/* empty cart on-brand state */
.botanica .bc-cart-empty{max-width:520px;margin:48px auto 64px;text-align:center;padding:0 var(--pad);}
.botanica .bc-cart-empty__ico{color:var(--olive-2);margin:0 auto 20px;}
.botanica .bc-cart-empty__title{font-family:var(--serif);font-weight:300;font-size:34px;color:var(--ink);
  line-height:1.15;margin:0;}
.botanica .bc-cart-empty__text{margin:14px auto 28px;color:var(--meta);font-size:var(--text-mid);line-height:var(--lh-mid);max-width:400px;}
.botanica .bc-cart-empty .bc-cbtn{display:inline-flex;}

/* CART MOBILE — same card structure, tighter */
@media(max-width:768px){
  .botanica .bc-cart-item{grid-template-columns:64px 1fr;gap:16px;padding:20px 36px 20px 0;}
  .botanica .bc-cart-item__thumb{width:64px;}
  .botanica .bc-cart-item__thumb img{width:64px;height:64px;}
  .botanica .bc-cart-item__name{font-size:18px;}
  .botanica a.bc-cart-item__remove{top:20px;}
  /* cart actions stack; buttons stay sized to their label (not full-width bars),
     left-aligned like standalone buttons. Static — no slide/transform. */
  .botanica .bc-cart-actions{flex-direction:column;align-items:flex-start;gap:16px;}
  .botanica .bc-coupon{min-width:0;width:100%;}
  .botanica .bc-coupon__row{flex-direction:column;align-items:stretch;gap:10px;}
  .botanica .bc-coupon__input{width:100%;}
  .botanica .bc-coupon__apply{align-self:flex-start;}
  .botanica .bc-cart-update{width:auto;align-self:flex-start;}
  .botanica.woocommerce-cart .cart-collaterals{justify-content:stretch;}
  .botanica .bc-totals{max-width:none;padding:26px 22px 28px;}
  .botanica .bc-cart-empty__title{font-size:28px;}
  /* clearance below the summary card: a clean gap before the dark footer AND
     room so the fixed sticky checkout bar never sits over the card / note. */
  .botanica.woocommerce-cart .woocommerce{padding-bottom:84px;}
}
/* Desktop: gap between the cart summary ("Krepšelio suma") and the dark footer —
   the block sat flush to the footer at >=769px (mobile has its own clearance above). */
@media(min-width:769px){
  .botanica.woocommerce-cart .woocommerce{padding-bottom:72px;}
}

/* Fix C: mobile gutter — cart + checkout content (notice, free-ship bar, cards,
   coupon, totals) sat flush to the screen edge. Pad the Woo content wrapper so
   nothing touches the edge; box-sizing keeps it from causing overflow. ------- */
@media(max-width:768px){
  .botanica.woocommerce-cart .woocommerce,
  .botanica.woocommerce-checkout .woocommerce,
  .botanica.woocommerce-account .woocommerce{
    padding-left:var(--pad);padding-right:var(--pad);box-sizing:border-box;}
}

/* ---- Part 6: checkout polish (fields / labels / order summary / CTA) -------
   Checkout inherits §11/§26 brand chrome; this tightens fields, cards the
   order summary, and makes the place-order button a prominent primary CTA.   */
.botanica.woocommerce-checkout .woocommerce-billing-fields h3,
.botanica.woocommerce-checkout .woocommerce-additional-fields h3,
.botanica.woocommerce-checkout #order_review_heading{font-family:var(--serif);font-weight:300;
  font-size:26px;color:var(--ink);margin:0 0 20px;line-height:1.1;}
.botanica.woocommerce-checkout .form-row{margin:0 0 16px;}
.botanica.woocommerce-checkout .form-row label{font-size:13px;color:var(--meta-2);letter-spacing:.3px;
  margin-bottom:6px;display:block;}
.botanica.woocommerce-checkout .form-row .required{color:#9A3B2E;border:0;text-decoration:none;}
.botanica.woocommerce-checkout .form-row input.input-text,
.botanica.woocommerce-checkout .form-row textarea,
.botanica.woocommerce-checkout .form-row select,
.botanica.woocommerce-checkout .select2-selection{border:1px solid var(--hair)!important;
  background:var(--surface)!important;border-radius:0!important;color:var(--ink);font-family:var(--sans);
  font-size:14px;}
.botanica.woocommerce-checkout .form-row input.input-text,
.botanica.woocommerce-checkout .form-row select,
.botanica.woocommerce-checkout .select2-selection--single{height:50px;padding:0 14px;line-height:48px;}
.botanica.woocommerce-checkout .form-row textarea{padding:13px 14px;min-height:96px;line-height:1.6;}
.botanica.woocommerce-checkout .form-row input.input-text:focus,
.botanica.woocommerce-checkout .form-row textarea:focus,
.botanica.woocommerce-checkout .form-row select:focus{outline:none;border-color:var(--olive)!important;}
/* B. LT-only store: hide the "Šalis / Regionas: Lietuva" row. The <select> stays
   in the DOM with LT selected (LT is the only allowed country), so the order still
   posts billing/shipping_country=LT and shipping/tax/validation keep working. */
.botanica.woocommerce-checkout #billing_country_field,
.botanica.woocommerce-checkout #shipping_country_field{display:none!important;}
.botanica.woocommerce-checkout .select2-container--default .select2-selection--single
  .select2-selection__rendered{line-height:48px;color:var(--ink);padding-left:0;}
.botanica.woocommerce-checkout .select2-container--default .select2-selection--single
  .select2-selection__arrow{height:48px;}

/* order summary = brand card */
.botanica.woocommerce-checkout #order_review{background:var(--surface-2);border:1px solid var(--hair);
  padding:26px 28px 28px;}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table{border:none;background:none;margin:0;}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table thead th{font-family:var(--sans);
  font-size:11.5px;letter-spacing:1px;text-transform:uppercase;color:var(--meta);border-bottom:1px solid var(--hair);
  padding:0 0 12px;}
/* Kill the redundant INNER table frame (a specificity leak from the generic
   table.shop_table border defeated the intended border:none here) — it made the
   amounts read as "jammed against the frame". The padded #order_review card is now
   the single frame; names (left) + amounts (right) breathe with its 18/28px pad,
   and the header/subtotal/total separators become clean full-width rules. */
.botanica.woocommerce-checkout table.woocommerce-checkout-review-order-table{border:none!important;}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table td,
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table th{border:none;padding:11px 0;vertical-align:top;}
/* clean two columns: label/name LEFT (full, wraps — never cut), amount RIGHT.
   Applies to header, product rows AND every tfoot row (subtotal/shipping/total)
   so all amounts line up in one right column. */
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table th{text-align:left;font-weight:500;}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table td{text-align:right;
  font-variant-numeric:tabular-nums;white-space:nowrap;}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-total{text-align:right;}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table tbody tr{border-bottom:1px solid var(--hair-2);}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name{font-size:14px;color:var(--ink);
  text-align:left;white-space:normal;padding-right:16px;line-height:1.45;}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name .product-quantity{color:var(--meta);white-space:nowrap;}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table .product-total{color:var(--ink);}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-subtotal th{color:var(--meta-2);font-size:14px;font-weight:400;}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-subtotal td{color:var(--meta-2);font-size:14px;}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th{font-family:var(--serif);
  font-weight:300;font-size:19px;color:var(--ink);border-top:1px solid var(--ink);padding-top:15px;}
.botanica.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td{font-size:20px;font-weight:500;
  color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;border-top:1px solid var(--ink);padding-top:15px;}

/* payment box + place-order CTA */
.botanica.woocommerce-checkout #payment{background:none;border:none;border-top:1px solid var(--hair);
  border-radius:0;margin-top:18px;padding-top:18px;}
.botanica.woocommerce-checkout #place_order,
.botanica.woocommerce-checkout #payment #place_order{width:100%;padding:var(--btn-pad)!important;font-size:var(--btn-fs);
  letter-spacing:var(--btn-ls);background:var(--ink)!important;color:var(--on-dark)!important;border:1px solid var(--ink)!important;
  border-radius:0;margin-top:8px;}
.botanica.woocommerce-checkout #place_order:hover{background:#3C382F!important;}
.botanica.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{margin-bottom:14px;}
.botanica.woocommerce-checkout .form-row.woocommerce-validated input.input-text{border-color:var(--hair)!important;}

@media(max-width:768px){
  .botanica.woocommerce-checkout #order_review{padding:22px 18px 24px;}
  .botanica.woocommerce-checkout .woocommerce-billing-fields h3,
  .botanica.woocommerce-checkout #order_review_heading{font-size:23px;}
}

/* ============================================================
   42 · PDP bcZoom load-in + image lightbox (interaction QA)
   ============================================================ */
/* Reference parity: the demo PDP main image does a one-time subtle zoom-in on
   load (scale 1.05→1). Plays once (CSS load anim; thumbnail/size changes don't
   re-render the <img> so it never re-fires). Respects reduced-motion. */
@keyframes bcZoom{from{transform:scale(1.05);}to{transform:scale(1);}}
.botanica .bc-pdp-image img{animation:bcZoom 1.8s ease-out both;}
@media(prefers-reduced-motion:reduce){.botanica .bc-pdp-image img{animation:none;}}

/* Click-to-zoom lightbox (full-screen overlay; additive, no layout impact). */
.botanica .bc-lightbox{position:fixed;inset:0;z-index:2000;display:none;
  align-items:center;justify-content:center;}
.botanica .bc-lightbox.is-open{display:flex;}
.botanica .bc-lightbox__backdrop{position:absolute;inset:0;background:rgba(42,39,35,.92);cursor:zoom-out;}
.botanica .bc-lightbox__stage{position:relative;z-index:1;margin:0;max-width:min(92vw,900px);
  max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:14px;}
.botanica .bc-lightbox__stage img{max-width:100%;max-height:82vh;width:auto;height:auto;
  object-fit:contain;display:block;box-shadow:0 24px 60px rgba(0,0,0,.4);background:var(--tint-2);}
.botanica .bc-lightbox__count{color:#F2ECE0;font-size:12px;letter-spacing:1.4px;text-transform:uppercase;}
.botanica .bc-lightbox__close{position:absolute;top:22px;right:26px;z-index:2;
  background:none;border:none;color:#FBF7EF;font-size:38px;line-height:1;cursor:pointer;padding:6px;opacity:.85;}
.botanica .bc-lightbox__close:hover{opacity:1;}
.botanica .bc-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  background:rgba(251,247,239,.10);border:1px solid rgba(251,247,239,.28);color:#FBF7EF;
  width:52px;height:52px;border-radius:50%;font-size:26px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .2s;}
.botanica .bc-lightbox__nav:hover{background:rgba(251,247,239,.22);}
.botanica .bc-lightbox__prev{left:22px;}
.botanica .bc-lightbox__next{right:22px;}
@media(max-width:600px){
  .botanica .bc-lightbox__close{top:14px;right:16px;font-size:34px;}
  .botanica .bc-lightbox__nav{width:44px;height:44px;font-size:22px;}
  .botanica .bc-lightbox__prev{left:8px;} .botanica .bc-lightbox__next{right:8px;}
}

/* ============================================================
 * 29 · EDITORIAL QUOTE BLOCKS — self-hosted Waterfall script.
 * The demo's big handwritten "editorial" lines. Waterfall is loaded from
 * assets/fonts (GDPR — no Google CDN); its latin-ext subset carries the full
 * Lithuanian diacritic set (ą č ę ė į š ų ū ž). Applied ONLY to the dedicated
 * pull-quote containers — never body copy, never product names. The eyebrow
 * (<p class="bc-eyebrow">) inside a narrow quote is excluded so it keeps its
 * small-caps label styling.
 * Prior state: these <p> inherited var(--serif) (Playfair italic), so Waterfall
 * never took effect. Waterfall is single-weight 400 and already cursive, so the
 * old font-weight:300 / font-style:italic declarations are neutralised here.
 * ============================================================ */
.botanica .bc-quote p:not(.bc-eyebrow){
  font-family:var(--script)!important;
  font-style:normal;
  font-weight:400;
  font-size:calc(58px * var(--wf-scale));   /* base 58 → +10% */
  line-height:1.16;
  color:var(--ink);
}
/* About "netobulas grožis" block is a longer explanatory line — slightly
   smaller + looser leading so the script stays legible. */
.botanica .bc-quote-narrow p:not(.bc-eyebrow){
  font-family:var(--script)!important;
  font-style:normal;
  font-weight:400;
  font-size:calc(40px * var(--wf-scale));   /* base 40 → +10% */
  line-height:1.32;
  color:var(--ink);
  max-width:34ch;
  margin-left:auto;margin-right:auto;
}
@media(max-width:520px){
  .botanica .bc-quote p:not(.bc-eyebrow){font-size:calc(40px * var(--wf-scale));line-height:1.18;}       /* base 40 → +10% */
  .botanica .bc-quote-narrow p:not(.bc-eyebrow){font-size:calc(30px * var(--wf-scale));line-height:1.3;} /* base 30 → +10% */
}
/* Desktop (>=1024px): the "Tegul kambarys…" pull-quote must sit on ONE line.
   Measured live: at 63.8px it needs only ~921px on one line, but .bc-quote was
   capped at max-width:880px (usable ~808px) so it wrapped to 2 lines. Widen the
   container and force a single line (nowrap); the size stays the owner's +10%
   Waterfall on wide screens and eases down slightly on narrow desktops via min()
   so it never overflows at the 1024 boundary. Below 1024px the base rules apply,
   so mobile keeps wrapping naturally (never nowrap → no overflow/clip). Only the
   front-page .bc-quote is non-narrow (verified), so this can't clip other quotes. */
@media(min-width:1024px){
  .botanica .bc-quote{max-width:1120px;}
  .botanica .bc-quote p:not(.bc-eyebrow){
    white-space:nowrap;
    font-size:min(calc(58px * var(--wf-scale)), 6vw);
  }
}
/* Home „sojų vaškas" block: one accent word in the script quote + an explanatory
   paragraph below. The body opts out of the script font + the desktop nowrap and
   sits centred with a constrained width and generous gap under the quote. */
.botanica .bc-quote .bc-accent{color:var(--olive);}
.botanica .bc-quote p.bc-soywax__body{
  font-family:var(--sans)!important;
  font-style:normal;font-weight:400;
  font-size:var(--text-mid)!important;line-height:var(--lh-mid);
  color:var(--meta);
  max-width:58ch;margin:34px auto 0;
  white-space:normal!important;
}
@media(max-width:520px){
  .botanica .bc-quote p.bc-soywax__body{font-size:var(--text-small)!important;margin-top:26px;max-width:40ch;}
}

/* ============================================================
 * 30 · FIX E — editorial section spacing restored to the demo reference.
 * The demo runs its editorial/image bands at 96px top+bottom (values/story) and
 * 90–100 on the transparent ones; WP had collapsed every .bc-section to a flat
 * 88px, so stacked editorial/image blocks read tight vs the source-of-truth demo.
 * Restore 96px on the editorial pages (home story band + all About bands) through
 * the theme spacing system — NOT inline styles. Full-bleed teatime image and the
 * home shop grid keep their own tuned values (excluded).
 * ============================================================ */
.botanica .bc-split--story{padding-top:96px;padding-bottom:96px;}
.botanica.page-id-60 .entry-content .bc-section{padding-top:96px;padding-bottom:96px;}
@media(max-width:520px){
  /* keep mobile generous but not oversized; matches the About mobile 88 baseline */
  /* S1 (round 3): was 72/56. Symmetrical at the same total (128px). */
  .botanica .bc-split--story{padding-top:64px;padding-bottom:64px;}
  .botanica.page-id-60 .entry-content .bc-section{padding-top:88px;padding-bottom:88px;}
}

/* ============================================================
 * 31 · FIX C — home hero: image coverage + mobile copy position.
 * BUG: `.botanica img{height:auto}` (§67) out-specifies `.bc-hero__img{height:100%}`,
 * so the slider image rendered at its natural aspect. On desktop the tall crop
 * happened to overflow-cover, but on mobile a portrait photo came out SHORTER
 * than the 660px hero → bare page background showed under the copy ("crushed"
 * mobile layout). Raise specificity so the image always covers.
 * The home hero intentionally uses dark-ink + light-halo copy on bright photos
 * (no dark dim) — kept. Slide 1 is now a REAL About photo (candle low, airy top),
 * so on mobile the copy sits in the airy TOP, clear of the product.
 * ============================================================ */
.botanica .bc-hero--home .bc-hero__slides .bc-hero__img{height:100%!important;}
/* R10: which part of the photo is in frame is now HERS, per slide and per
   breakpoint. It used to be the constant 50% 38% that lived on this line —
   she could change the picture but not what it showed. Zoom rides the
   standalone `scale` property because ken-burns already owns `transform`. */
.botanica .bc-hero .bc-hero__img{
  object-position:var(--bh-img-x,50%) var(--bh-img-y,50%);
  scale:var(--bh-img-z,1);}
/* Slide 0: desktop gets a landscape "-wide" crop (via <picture>) where the candle is
   composed in frame; centre the crop so the candle body shows. Mobile keeps the tall
   portrait (fallback <img>) with its own offset below; other slides keep the default. */
/* (R10: slide 0's own 50% 50% is now just the default of --bh-img-y.) */

/* RETIRED 2026-07-27 — this @media(max-width:600px) block hard-tuned the mobile hero
   with !important for the OLD portrait masters ("clears the low candle",
   object-position 50% 22%, h1 clamp(30,8.2vw,40)). Two things made it obsolete:
   (a) the client supplied purpose-cut 2:3 mobile masters, so the crop no longer needs
   nudging, and (b) HERO-02 asks for larger mobile text while HERO-03/04 require the
   owner to drive size/position from wp-admin — which those !important declarations
   silently blocked (every mobile size step resolved to the same 31.98px).
   Size, position and height now come from --bc-hero-scale + the data-* attributes in
   the §hero block above. Only the genuinely still-true rule is kept. */
/* (R10: the mobile crop offset is now the `telefonas` layer of --bh-img-y,
   set per slide in the hero editor rather than forced here.) */

/* ============================================================
 * 32 · REUSABLE CROSS-FADE SLIDER (.bc-slider) — same engine as the hero.
 * Lightweight instance used by the About "Mūsų istorija" image slot: two+ photos
 * cross-fade inside one 4:5 slot. JS = the generalised hero slider (data-slider).
 * ============================================================ */
.bc-slider{position:relative;}
.bc-slider__slides{position:absolute;inset:0;}
.bc-slider__slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;will-change:opacity;}
.bc-slider__slide.is-active{opacity:1;}
.bc-slider__slide img{width:100%;height:100%;object-fit:cover;display:block;}
@media(prefers-reduced-motion:reduce){.bc-slider__slide{transition:none;}}

/* ---- HOME-02 — homepage "APIE MUS / Mūsų istorija" text block ---------------
   Client (2026-07-20 20:05): "Ilgesnį tekstą pamirsyt atskirti sakinius ir juos
   iscentruoti kompe ir mobiliam... (Kai sakiniai abu svarbūs - juos geriau
   atskirti, tada labiau akis užfiksuoja)". Each key sentence is now its own
   paragraph in the page content; this centres the column at BOTH breakpoints and
   gives the separated lines room to read as distinct statements. */
.botanica .bc-about-centered{text-align:center;}
.botanica .bc-about-centered > *{margin-left:auto;margin-right:auto;}
/* HOME-02b — the centring has to survive a WRAPPER around the paragraph.
   Measured 2026-08-20 at 1280px: the opening paragraph ("Botanica Candle House
   gimė iš noro…") is a GenerateBlocks paste, so it renders as div > div > div >
   p inside this column. Its text-align was already `center`; what was missing
   is that the measure rule below capped it at 52ch (520px) while the auto side
   margins above only reach DIRECT children — so the capped box sat flush left
   in the 582px column and every line landed 31px left of the rest of the
   section. Both declarations therefore apply at ANY depth from here on, so a
   paragraph she writes or pastes into this section centres by itself, without
   the markup having to come out a particular shape. */
.botanica .bc-about-centered p,
.botanica .bc-about-centered div,
.botanica .bc-about-centered h2,
.botanica .bc-about-centered h3{text-align:center;}
/* Comfortable measure so a centred line never runs edge-to-edge. */
.botanica .bc-about-centered p:not(.bc-eyebrow):not(.bc-meta):not(.bc-link-wrap){
  max-width:52ch;margin-left:auto;margin-right:auto;}
/* Separated sentences need visible air between them, or the split is invisible. */
.botanica .bc-about-centered p:not(.bc-eyebrow):not(.bc-meta):not(.bc-link-wrap) + p{margin-top:16px;}
.botanica .bc-about-centered .bc-eyebrow{margin-bottom:10px;}
.botanica .bc-about-centered .bc-meta{margin-top:26px;}
@media(max-width:860px){
  .botanica .bc-about-centered p:not(.bc-eyebrow):not(.bc-meta):not(.bc-link-wrap){max-width:38ch;}
  .botanica .bc-about-centered p:not(.bc-eyebrow):not(.bc-meta):not(.bc-link-wrap) + p{margin-top:14px;}
}

/* ---- COPY-01 — APIE MUS long-form body ------------------------------------
   Client asked "Ar jis ten sutilps?" (will the long text fit there?). It does not
   fit one unscrolled viewport and should not be forced to: the opening stays in
   the photo split, the remainder runs full-width at a ~65ch measure with a
   generous paragraph rhythm, so it reads as an article rather than a wall. */
.botanica .bc-longform{padding-top:8px;}
.botanica .bc-longform p{max-width:65ch;margin-left:auto;margin-right:auto;}
.botanica .bc-longform p + p{margin-top:22px;}
.botanica .bc-longform .bc-meta{margin-top:34px;}
.botanica .bc-longform a{color:inherit;text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;text-decoration-color:var(--accent,#5C7568);}
.botanica .bc-longform a:hover{text-decoration-thickness:2px;}
@media(max-width:860px){
  .botanica .bc-longform p + p{margin-top:18px;}
}
/* Balanced two-line break for the long About headline (no manual <br>, so it
   stays correct at every width and if the owner edits the wording). */
.botanica .bc-about-centered h2,
.botanica .bc-split--story h2{text-wrap:balance;}
.botanica .bc-about-centered h2{max-width:20ch;margin-left:auto;margin-right:auto;}

/* ---- PROD-02 — equal breathing room above/below the trust-icon block --------
   Client (2026-07-20 20:14): "mobilam ir kompe neisventruota nuo virsaus ir
   apacios (prie produkto)". Measured cause: .bc-pdp-grid's own 40px bottom
   padding STACKS on top of .bc-iconstrip's symmetric padding, so the visual gap
   above the icons was 115px vs 76px below (desktop) and 94px vs 54px (mobile).
   The strip's padding is already symmetric — drop the duplicated grid padding
   when the strip follows it and the section centres itself at both breakpoints. */
.botanica .bc-pdp-grid:has(+ .bc-iconstrip){padding-bottom:0;}
/* Fallback for engines without :has() — same result, scoped to the PDP. */
.single-product .bc-pdp-grid + .bc-iconstrip{margin-top:-40px;}
.single-product .bc-pdp-grid:has(+ .bc-iconstrip) + .bc-iconstrip{margin-top:0;}

/* ---- Product-category archive header (see botanica_archive_head) ----------- */
.botanica .bc-archive-head{max-width:var(--maxw);margin:0 auto;padding:clamp(28px,4vw,44px) var(--pad) clamp(18px,2.4vw,26px);text-align:center;}
.botanica .bc-archive-head__title{font-size:clamp(30px,4.2vw,44px);line-height:1.14;font-weight:400;margin:6px 0 0;}
.botanica .bc-archive-head__desc{max-width:56ch;margin:14px auto 0;color:var(--meta);}
.botanica .bc-archive-head__desc p{margin:0;}

/* ---- A4 — thin / empty product-category archives ---------------------------
   A category holding one product must not read as a broken page. Below a thin
   archive (and on an empty one) we show the sibling categories as cards, so the
   page always has a deliberate second element and somewhere to go next. */
.botanica .bc-thin-more,
.botanica .bc-empty-state{max-width:var(--maxw);margin:0 auto;
  /* S1: symmetrical, same total as the previous 36/48 and 64/80 pairs. */
  padding:clamp(42px,5.5vw,72px) var(--pad);text-align:center;}
.botanica .bc-thin-more__head,
.botanica .bc-empty-state__head{font-size:clamp(22px,2.6vw,30px);font-weight:400;margin:0 0 6px;}
.botanica .bc-empty-state__body{max-width:52ch;margin:0 auto 8px;color:var(--meta);}
.botanica .bc-cat-cards{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:clamp(16px,2.4vw,28px);
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));max-width:820px;margin-left:auto;margin-right:auto;}
.botanica .bc-cat-card a{display:block;text-decoration:none;color:inherit;}
.botanica .bc-cat-card__media{display:block;aspect-ratio:4/5;overflow:hidden;background:var(--surface,#F4EFE4);}
.botanica .bc-cat-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.botanica .bc-cat-card a:hover .bc-cat-card__media img{transform:scale(1.03);}
.botanica .bc-cat-card__name{display:block;margin-top:12px;font-size:15px;letter-spacing:.02em;}
.botanica .bc-cat-card__count{display:block;margin-top:2px;font-size:12.5px;color:var(--meta);}
@media(max-width:600px){
  .botanica .bc-cat-cards{grid-template-columns:1fr 1fr;gap:14px;}
}
/* Thin archive: centre the few tiles at a comfortable size instead of leaving one
   stranded in column 1 of a 4-column grid. */
.botanica.bc-thin-archive.woocommerce ul.products{
  grid-template-columns:repeat(auto-fit,minmax(240px,300px))!important;justify-content:center;}
@media(max-width:600px){
  .botanica.bc-thin-archive.woocommerce ul.products{grid-template-columns:minmax(0,320px)!important;}
}
/* A category card with no unique photo left: a deliberate tinted panel, never a
   repeated image. Uses the brand mark area rather than looking like a load failure. */
.botanica .bc-cat-card__media.is-textonly{
  background:linear-gradient(160deg,var(--surface,#F4EFE4),color-mix(in srgb,var(--surface,#F4EFE4) 82%, #5C7568 18%));
  display:flex;align-items:center;justify-content:center;}
.botanica .bc-cat-card__media.is-textonly::after{
  content:"";width:38%;aspect-ratio:1;opacity:.30;
  background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2C9 6 7 8 7 11a5 5 0 0010 0c0-3-2-5-5-9z' fill='black'/></svg>") center/contain no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2C9 6 7 8 7 11a5 5 0 0010 0c0-3-2-5-5-9z' fill='black'/></svg>") center/contain no-repeat;}

/* ============================================================
 * ROUND 2 · SECTION B — shared hero component (.bh)
 * Every value below comes from a custom property emitted per hero instance by
 * botanica_hero_style_css(). The front-end editor overrides the SAME properties
 * live, so what she drags is what gets saved and what ships.
 * ============================================================ */
.botanica .bc-hero.bh{position:relative;overflow:hidden;display:block;
  height:var(--bh-h,660px);min-height:var(--bh-h,660px);}
.botanica .bc-hero.bh .bc-hero__slides{position:absolute;inset:0;z-index:0;}
.botanica .bc-hero.bh .bc-hero__slide{position:absolute;inset:0;}
.botanica .bc-hero.bh .bc-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
/* The dim span again needs a real box: these heroes are shortcodes, so core
   cover CSS never loads (see round 1 — this is what the white halo was hiding). */
.botanica .bc-hero.bh > .wp-block-cover__background{
  position:absolute;inset:0;z-index:1;pointer-events:none;display:block;
  background:var(--bh-overlay);opacity:1;}

/* The text block: positioned by percentage of the hero box, its own anchor
   centred on that point, width clamped, never allowed to leave the box. */
.botanica .bc-hero.bh .bh__block{
  position:absolute;z-index:2;
  /* BP-01: the anchor is clamped by half the block's own size, so no position,
     size or alignment combination can push text outside the hero. */
  /* Clamp against the EFFECTIVE width (which has a floor), not the raw --bh-maxw:
     with maxw at its minimum the floor made the block wider than the clamp assumed
     and the left edge escaped by exactly the difference. */
  --bh-w-eff:max(var(--bh-maxw,74%),min(240px,100% - 2*var(--pad,20px)));
  left:clamp(calc(var(--bh-w-eff) / 2), var(--bh-x,50%), calc(100% - var(--bh-w-eff) / 2));
  top:clamp(var(--bh-halfy,25%), var(--bh-y,50%), calc(100% - var(--bh-halfy,25%)));
  transform:translate(-50%,-50%);
  /* A very small max-width on a phone makes any headline wrap into a column
     taller than the hero, so the width has a usable floor as well as a cap. */
  width:var(--bh-w-eff);
  max-width:calc(100% - 2*var(--pad,20px));
  /* Final containment backstop: at the most extreme combinations the block is
     kept INSIDE the hero rather than allowed to spill onto the page. */
  /* R17-07: the clip is lifted only when a per-line nudge is in use (the model
     emits --bh-block-of:visible then). With no nudges this is `hidden`, exactly
     as before, and the containment backstop is untouched. */
  max-height:calc(100% - 2*var(--pad,20px));overflow:var(--bh-block-of,hidden);
  text-align:var(--bh-align,center);
  display:flex;flex-direction:column;
  align-items:var(--bh-items,center);
  margin:0;
  /* R9 text plate: contrast lives under the WORDS, not over the photograph.
     With plate="none" this is background:none / padding:0 — byte-identical to
     the pre-R9 render, so turning the plate off changes nothing else. */
  background:var(--bh-plate,none);
  -webkit-backdrop-filter:var(--bh-plate-blur,none);backdrop-filter:var(--bh-plate-blur,none);
  padding:var(--bh-plate-pad,0);
  /* R-LOOP3 (HARD GATE #14): the block sizes tightly to its children's line
     boxes with ZERO headroom, so whichever line is LAST visible (title, when
     lead/button are hidden, as on About) has its glyph ink clipped by the
     overflow:hidden backstop above the instant a descender's true ink extent
     exceeds its line-box — which line-height alone cannot fully guarantee
     across fonts/sizes (measured live: 52px title, lh 1.18 → 61.36px line
     box, but the Playfair Display 'p' still needs ~65px; a 4px overshoot,
     3px at the 34px mobile size). Rather than keep chasing the exact
     line-height, give the block a small permanent bottom safety margin so NO
     last line can ever touch the clip boundary, regardless of which line
     ends up last or how a future font/size changes descender depth. Bottom
     only (not top) to avoid changing perceived text-block width/behaviour;
     the ~5px it shifts the flex column's visual centre is not perceptible.
     --bh-block-pb (hero-model.php) is ALWAYS a single scalar length — do not
     rebuild this with calc(var(--bh-plate-pad,...)+Npx): --bh-plate-pad is
     sometimes a 2-value padding SHORTHAND and breaks calc() silently (the
     declaration is dropped, not merely wrong — this was the first attempt
     at this fix and measured as a total no-op). */
  padding-bottom:var(--bh-block-pb,12px);
  transition:left .28s ease,top .28s ease,width .28s ease;}
.botanica .bc-hero.bh .bh__block{align-items:var(--bh-items,center);}

.botanica .bc-hero.bh .bh__line{margin:0;max-width:100%;
  /* soft DARK shadow only — never a light halo (round 1 HERO-01).
     R9: switched off automatically under a light plate, where the type is dark
     and the same shadow reads as dirt rather than lift.
     R17-04: the per-line --bh-<line>-sh wins, because the plate was never the
     thing that mattered — the LINE's own colour is. Dark type on no plate was
     still getting the dark halo, which is the smudge she reported. The block
     value stays as the fallback so nothing regresses if a line var is absent. */
  text-shadow:var(--bh-shadow,0 2px 22px rgba(42,39,35,.45));}
.botanica .bc-hero.bh .bh__eyebrow{text-shadow:var(--bh-eyebrow-sh,var(--bh-shadow,0 2px 22px rgba(42,39,35,.45)));}
.botanica .bc-hero.bh .bh__script {text-shadow:var(--bh-script-sh, var(--bh-shadow,0 2px 22px rgba(42,39,35,.45)));}
.botanica .bc-hero.bh .bh__title  {text-shadow:var(--bh-title-sh,  var(--bh-shadow,0 2px 22px rgba(42,39,35,.45)));}
.botanica .bc-hero.bh .bh__lead   {text-shadow:var(--bh-lead-sh,   var(--bh-shadow,0 2px 22px rgba(42,39,35,.45)));}
.botanica .bc-hero.bh .bh__button {text-shadow:var(--bh-button-sh, var(--bh-shadow,0 2px 22px rgba(42,39,35,.45)));}

/* R17-07 — each line and the button can be nudged off the stack independently.
   translate() keeps the line in normal flow, so the stack below it does not
   reflow and the block's own position/clamp maths is unaffected. */
.botanica .bc-hero.bh .bh__eyebrow{translate:var(--bh-eyebrow-dx,0px) var(--bh-eyebrow-dy,0px);}
.botanica .bc-hero.bh .bh__script {translate:var(--bh-script-dx,0px)  var(--bh-script-dy,0px);}
.botanica .bc-hero.bh .bh__title  {translate:var(--bh-title-dx,0px)   var(--bh-title-dy,0px);}
.botanica .bc-hero.bh .bh__lead   {translate:var(--bh-lead-dx,0px)    var(--bh-lead-dy,0px);}
.botanica .bc-hero.bh .bh__button {translate:var(--bh-button-dx,0px)  var(--bh-button-dy,0px);}
.botanica .bc-hero.bh .bh__line + .bh__line{margin-top:.35em;}

.botanica .bc-hero.bh .bh__eyebrow{display:var(--bh-eyebrow-d,block);
  font-family:var(--bh-eyebrow-ff);font-weight:var(--bh-eyebrow-fw);font-style:var(--bh-eyebrow-fi);
  font-size:min(var(--bh-eyebrow-fs),calc(var(--bh-h,660px) * .05),max(3.6vw,var(--bh-eyebrow-fs-floor,0px)));letter-spacing:var(--bh-eyebrow-ls);line-height:var(--bh-eyebrow-lh);
  color:var(--bh-eyebrow-c);text-transform:uppercase;}
.botanica .bc-hero.bh .bh__script{display:var(--bh-script-d,block);
  font-family:var(--bh-script-ff);font-weight:var(--bh-script-fw);font-style:var(--bh-script-fi);
  font-size:min(var(--bh-script-fs),calc(var(--bh-h,660px) * .16),max(11vw,var(--bh-script-fs-floor,0px)));letter-spacing:var(--bh-script-ls);line-height:var(--bh-script-lh);
  color:var(--bh-script-c);}
.botanica .bc-hero.bh .bh__title{display:var(--bh-title-d,block);
  font-family:var(--bh-title-ff);font-weight:var(--bh-title-fw);font-style:var(--bh-title-fi);
  font-size:min(var(--bh-title-fs),calc(var(--bh-h,660px) * .22),max(13vw,var(--bh-title-fs-floor,0px)));letter-spacing:var(--bh-title-ls);line-height:var(--bh-title-lh);
  color:var(--bh-title-c);text-wrap:balance;}
.botanica .bc-hero.bh .bh__lead{display:var(--bh-lead-d,block);
  font-family:var(--bh-lead-ff);font-weight:var(--bh-lead-fw);font-style:var(--bh-lead-fi);
  font-size:min(var(--bh-lead-fs),calc(var(--bh-h,660px) * .055),max(4.6vw,var(--bh-lead-fs-floor,0px)));letter-spacing:var(--bh-lead-ls);line-height:var(--bh-lead-lh);
  color:var(--bh-lead-c);max-width:46ch;}
.botanica .bc-hero.bh .bh__button{display:var(--bh-button-d,block);
  /* scales with the chosen title size, so a bigger headline keeps the button low */
  margin-top:calc(var(--bh-title-fs,92px) * .55);}
.botanica .bc-hero.bh .bh__button .wp-block-button__link{
  font-family:var(--bh-button-ff);font-weight:var(--bh-button-fw);
  font-size:min(var(--bh-button-fs),calc(var(--bh-h,660px) * .04),max(3.6vw,var(--bh-button-fs-floor,0px)));letter-spacing:var(--bh-button-ls);}
/* Alignment: --bh-align drives text-align, --bh-items drives the flex cross-axis
   (so the button follows the text). Both come from the same saved value. */
/* Slider chrome sits above the photo but below the editor UI. */
.botanica .bc-hero.bh .bc-hero__arrow,
.botanica .bc-hero.bh .bc-hero__dots{z-index:3;}

/* ---- SE-02 (round 3): per-section background tones -------------------------
   Three brand tones, no colour picker. The dark tone flips every text colour it
   contains, so she cannot produce an unreadable section. */
.botanica .is-style-tone-light{background:#FFFFFF;}
.botanica .is-style-tone-cream{background:var(--surface,#F4EFE4);}
.botanica .is-style-tone-dark{background:var(--ink,#2A2723);}
.botanica .is-style-tone-dark,
.botanica .is-style-tone-dark h1,.botanica .is-style-tone-dark h2,
.botanica .is-style-tone-dark h3,.botanica .is-style-tone-dark h4,
.botanica .is-style-tone-dark p,.botanica .is-style-tone-dark li,
.botanica .is-style-tone-dark .bc-eyebrow,.botanica .is-style-tone-dark .bc-meta{color:#FBF7EF;}
.botanica .is-style-tone-dark .bc-link{color:#FBF7EF;border-color:currentColor;}
.botanica .is-style-tone-dark a:not(.wp-block-button__link){color:#FBF7EF;}
/* Tones need their own breathing room when they become a visible band. */
.botanica .is-style-tone-cream,
.botanica .is-style-tone-dark{padding-top:clamp(48px,6vw,88px);padding-bottom:clamp(48px,6vw,88px);}
/* In the editor a parked section is dimmed rather than gone, so she can find it. */
.editor-styles-wrapper .is-style-is-hidden{opacity:.45;outline:1px dashed #a33;outline-offset:4px;}

/* ============================================================
 * ROUND 4 §5 — global bottom safe area.
 * Her screenshots show the iOS Safari bottom bar sitting over content. Checking
 * 39 elements by hand is not a plan, so this is handled once, globally:
 *   - every genuinely bottom-fixed bar reserves env(safe-area-inset-bottom);
 *   - the page itself gains a scroll buffer at phone widths, so no in-flow
 *     interactive element can come to rest inside the bar's strip.
 * env() resolves to 0 on non-notch devices, so desktop is unaffected.
 * ============================================================ */
:root{--bc-safe-b:env(safe-area-inset-bottom,0px);}

/* Bottom-fixed UI: the cart sticky bar is the only one on the site. */
.botanica .bc-cart-stickybar{
  padding-bottom:calc(12px + var(--bc-safe-b))!important;
  box-sizing:content-box;}

/* Page-level buffer at phone widths: 56px clears the Safari bar (~44-50px)
   plus the inset, so the last row of links never rests underneath it. */
@media(max-width:860px){
  /* The theme's footer is .bc-footer with the copy row .bc-foot-copy — targeting
     GeneratePress's .site-footer missed it entirely (found by re-scanning, not by
     reading the CSS). 64px clears the Safari bar (~44-50px) with margin. */
  .botanica .bc-footer,
  .botanica .site-footer{padding-bottom:calc(64px + var(--bc-safe-b))!important;}
  .botanica .bc-foot-copy{padding-bottom:calc(34px + var(--bc-safe-b));}
  /* When a bottom-fixed bar is present the buffer must clear that too. */
  .botanica.woocommerce-cart .bc-footer{padding-bottom:calc(120px + var(--bc-safe-b))!important;}
}
/* Drawer utilities sit at the very bottom of the panel when it is open. */
.bc-drawer__foot{padding-bottom:calc(14px + var(--bc-safe-b));}

/* ============================================================
 * ROUND 6 — client-owned grids, spec lines and videos.
 *
 * R6-10 reflow: the column count comes from --bc-cols, which PHP derives from
 * the ITEM COUNT (botanica_grid_cols). auto-fit is deliberately NOT used: it is
 * what strands a single card alone on the last row. No card is ever stretched to
 * fill a gap — a short last row stays centred instead.
 * ============================================================ */
.botanica .bc-cardgrid{max-width:var(--maxw);margin:0 auto;padding:clamp(48px,6vw,88px) var(--pad);}
.botanica .bc-cardgrid__head{text-align:center;font-size:clamp(26px,3.4vw,40px);font-weight:400;
  line-height:1.14;margin:0 0 clamp(28px,3.4vw,48px);text-wrap:balance;}
.botanica .bc-cards{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(var(--bc-cols,4),minmax(0,1fr));
  gap:clamp(22px,2.6vw,40px);justify-content:center;}
/* A short last row centres rather than stretching. */
.botanica .bc-cards > .bc-card{min-width:0;}
.botanica .bc-cards[data-count="1"]{max-width:520px;margin-inline:auto;}
.botanica .bc-cards[data-count="2"]{max-width:840px;margin-inline:auto;}
.botanica .bc-card h3{font-size:clamp(17px,1.4vw,20px);font-weight:400;line-height:1.25;margin:0 0 8px;}
.botanica .bc-card p{margin:0;font-size:var(--text-mid);line-height:var(--lh-mid);color:var(--meta);}
/* R21-07: card bodies can now be more than one paragraph (a blank line in the
   textarea). Without this they would butt straight together, because the rule
   above zeroes the margin so a single paragraph sits flush. */
.botanica .bc-card p + p{margin-top:.7em;}
/* R21-04: an eyebrow above a card-grid heading — the same small-caps line the
   page blocks use, spaced to sit with the heading rather than float above it. */
.botanica .bc-cardgrid .bc-eyebrow{margin:0 0 10px;}
/* R6-08 — a rule above each title. */
.botanica .bc-card--ruled{padding-top:16px;border-top:1px solid var(--hair,#E4DDCE);}
/* R6-09 — the number is rendered from position, never stored. */
.botanica .bc-card--step .bc-card__n{display:block;font-family:var(--serif);font-size:clamp(26px,2.6vw,34px);
  color:var(--olive-2,#5C7568);line-height:1;margin-bottom:10px;}

/* R6-11 — videos: same reflow engine, capped at 3 across. */
.botanica .bc-videos{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(var(--bc-cols,2),minmax(0,1fr));gap:clamp(18px,2.2vw,30px);}
.botanica .bc-video__frame{aspect-ratio:16/9;background:var(--surface,#F4EFE4);overflow:hidden;}
.botanica .bc-video__frame iframe{width:100%;height:100%;border:0;display:block;}
.botanica .bc-video__frame--empty{
  background:repeating-linear-gradient(135deg,var(--surface,#F4EFE4) 0 12px,#EFE8DA 12px 24px);}
.botanica .bc-video__cap{display:block;margin-top:10px;font-size:12.5px;color:var(--meta);}
/* Owner-uploaded clips. The ratio is written inline from the file's own
   dimensions — a phone films 9:16 and the 16:9 default above would crop her
   ritual into a stripe. The cap is a safety valve for an unusually tall clip,
   not the normal case; cards align to the top so mixed shapes do not stretch. */
.botanica .bc-videos{align-items:start;}
.botanica .bc-video__frame--file{max-height:min(70vh,620px);border-radius:2px;}
.botanica .bc-video__el{width:100%;height:100%;display:block;object-fit:cover;
  background:var(--surface,#F4EFE4);}
/* „Įsigyti" under a clip. It inherits everything that MAKES it a CTA from
   .bc-link — type, tracking, capitals, the hairline underneath — so this rule
   may only place it. Anything else here would be a second definition of the
   site's secondary CTA, drifting from the first the day one is touched. */
.botanica .bc-video__buy{margin-top:14px;}

/* R6-04 — grey rule + short spec lines under the product description. */
.botanica .bc-specs{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--hair,#E4DDCE);}
.botanica .bc-specs__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.botanica .bc-specs__list li{font-size:var(--text-mid);line-height:1.5;color:var(--meta);}

@media(max-width:860px){
  /* Phones get at most two across whatever the desktop count says; steps stay
     single-column so the numbers read as a sequence. */
  .botanica .bc-cards{grid-template-columns:repeat(min(var(--bc-cols,4),2),minmax(0,1fr));}
  .botanica .bc-cards--steps{grid-template-columns:1fr;}
  /* One column on a phone, so every card's caption and button would otherwise
     run straight into the next clip — the owner's words: „telefone jie visi
     kartu sulipinti". The gap grows and the button spans the card. */
  .botanica .bc-videos{grid-template-columns:1fr;gap:34px;}
  /* Left with the caption, never stretched: a full-width underline reads as a
     rule across the card, not as a link. */
  .botanica .bc-video__buy{margin-top:12px;}
}
@media(max-width:430px){
  .botanica .bc-cards{grid-template-columns:1fr;}
  .botanica .bc-cards[data-count="1"],
  .botanica .bc-cards[data-count="2"]{max-width:none;}
}

/* QA-03 (round 7) — a stepper button that cannot act must look like it.
   aria-disabled is the source of truth (set in js/botanica.js), so the styling
   and the accessibility state can never disagree. */
.botanica .bc-stepper__btn[aria-disabled="true"]{opacity:.35;cursor:not-allowed;}
.botanica .bc-stepper__btn[aria-disabled="true"]:hover{background:transparent;}

/* ---------------------------------------------------------------------------
   „Pastabos" page — screenshot on a comment (R9b). Scoped to that form only.
   --------------------------------------------------------------------------- */
.bc-note-shot{display:flex;flex-direction:column;gap:6px;margin:18px 0 22px;}
.bc-note-shot label{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--meta);}
.bc-note-shot label span{text-transform:none;letter-spacing:0;}
.bc-note-shot input[type=file]{font:inherit;font-size:14px;padding:10px 12px;
  border:1px dashed var(--hair);border-radius:2px;background:var(--tint-2,#F7F3EA);cursor:pointer;}
.bc-note-shot__hint{font-size:13px;line-height:1.5;color:var(--meta);}
.bc-note-shot__picked{font-size:13px;color:var(--ink);}
.bc-note-shot__picked::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;
  background:#5C7568;margin-right:8px;vertical-align:middle;}
.bc-note-shot__link{display:block;margin-top:14px;}
.bc-note-shot__img{max-width:min(560px,100%);height:auto;display:block;
  border:1px solid var(--hair);border-radius:2px;}
