/*
Theme Name: VitaCare
Theme URI: https://example.com/vitacare
Author: VitaCare
Description: A fast, custom WooCommerce theme for an OTC health & wellness store. Deep-green and cream palette, serif display type, pastel product tiles, package pricing tables driven by product variations.
Version: 1.9.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vitacare
Tags: e-commerce, custom-colors, one-column, two-columns
WC requires at least: 8.0
*/

/* ============ Design tokens ============ */
:root{
  --ink:#12211b;
  --ink-soft:#4c5d55;
  --ink-faint:#8a978f;
  --cream:#f4f7f4;
  --page-bg:#f4f7f4;
  --white:#ffffff;
  --forest:#0e3b2e;
  --forest-deep:#0a2c22;
  --green:#17b26a;
  --green-bright:#25c277;
  --green-soft:#e3f4ea;
  --mint:#e7f5ec;
  --lavender:#e8ecfb;
  --peach:#fde8e0;
  --teal:#e0f2f1;
  --coral:#f0704a;
  --coral-soft:#fdeae4;
  --gold:#f2b01e;
  --line:#e7e6e0;
  --radius-lg:22px;
  --radius-md:14px;
  --radius-pill:999px;
  --shadow-card:0 1px 2px rgba(18,33,27,.04),0 8px 24px rgba(18,33,27,.06);
  --font-display:"Fraunces",Georgia,"Times New Roman",serif;
  --font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --w-max:1240px;
}

/* ============ Base ============ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page-bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
html,body{overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:var(--green);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.12;color:var(--ink);margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.5vw,3.4rem)}
h2{font-size:clamp(1.6rem,3vw,2.2rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.vc-wrap{max-width:var(--w-max);margin:0 auto;padding:0 20px}
.screen-reader-text{position:absolute!important;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
.vc-eyebrow{font:600 .78rem/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin:0 0 10px}
.vc-section{margin:56px 0}
.vc-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px}
.vc-section-head .vc-more{font-weight:600;white-space:nowrap}

/* Buttons */
.vc-btn,.button,button.button,input[type=submit],.woocommerce a.button,.woocommerce button.button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font:600 .95rem/1 var(--font-body);color:#fff;background:var(--green-bright);
  border:0;border-radius:var(--radius-pill);padding:14px 26px;cursor:pointer;
  transition:background .15s ease,transform .15s ease;text-decoration:none!important;
}
.vc-btn:hover,.woocommerce a.button:hover,.woocommerce button.button:hover{background:var(--green);color:#fff}
.vc-btn--dark{background:var(--forest)}
.vc-btn--dark:hover{background:var(--forest-deep)}
.vc-btn--ghost{background:var(--green-soft);color:var(--ink)}
.vc-btn--ghost:hover{background:#d6ecdf;color:var(--ink)}
.vc-btn--outline{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35)}
.vc-btn--outline:hover{background:rgba(255,255,255,.08)}

/* ============ Announcement bar ============ */
.vc-announce{background:var(--forest-deep);color:#dff3e8;font-size:.82rem;font-weight:600}
.vc-announce{font-size:.78rem}
.vc-announce .vc-wrap{display:flex;justify-content:center;gap:22px;padding:6px 20px;flex-wrap:wrap}
@media(max-width:700px){
  .vc-announce{font-size:.72rem}
  .vc-announce .vc-wrap{padding:4px 12px;gap:0;flex-wrap:nowrap;overflow:hidden}
  .vc-announce span{white-space:nowrap}
  .vc-announce span:nth-child(n+2){display:none}
}
.vc-announce span{display:inline-flex;align-items:center;gap:7px}

/* ============ Header ============ */
.vc-header{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60}
.vc-header .vc-wrap{display:flex;align-items:center;gap:20px;padding:20px 20px}
.vc-logo{display:flex;align-items:center;gap:11px;font-family:var(--font-display);font-size:1.55rem;font-weight:700;color:var(--ink);text-decoration:none!important;letter-spacing:-.015em}
.vc-logo:hover{color:var(--ink)}
.vc-logo-mark{width:44px;height:44px;flex:0 0 auto;display:grid;place-items:center;color:var(--green-bright);border-radius:14px;box-shadow:0 6px 16px rgba(23,178,106,.32);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.vc-logo-mark svg{width:100%;height:100%;display:block;border-radius:14px}
.vc-logo:hover .vc-logo-mark{transform:translateY(-2px) rotate(-4deg)}
.vc-logo-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vc-logo em{font-style:normal;color:var(--green)}
.vc-cart-btn,.vc-cats-toggle{transition:transform .18s cubic-bezier(.2,.8,.2,1),background .18s ease}
.vc-cart-btn:hover,.vc-cats-toggle:hover{transform:translateY(-1px)}
.vc-cats{position:relative}
.vc-cats-toggle{display:inline-flex;align-items:center;gap:8px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-pill);padding:11px 18px;font:600 .92rem/1 var(--font-body);color:var(--ink);cursor:pointer}

/* ── Category mega-menu sidebar ─────────────────────────────────── */
.vc-catnav{position:fixed;inset:0;z-index:120;visibility:hidden;pointer-events:none}
.vc-catnav.is-open{visibility:visible;pointer-events:auto}
.vc-catnav-backdrop{position:absolute;inset:0;background:rgba(18,33,27,.42);opacity:0;transition:opacity .28s ease}
.vc-catnav.is-open .vc-catnav-backdrop{opacity:1}
.vc-catnav-panel{position:absolute;top:0;left:0;height:100%;width:min(880px,96vw);max-width:96vw;background:#fff;box-shadow:0 24px 70px rgba(18,33,27,.28);display:flex;flex-direction:column;transform:translateX(-102%);transition:transform .32s cubic-bezier(.22,.8,.24,1);will-change:transform}
.vc-catnav.is-open .vc-catnav-panel{transform:translateX(0)}
.vc-catnav-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line);flex:0 0 auto}
.vc-catnav-title{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.vc-catnav-x{width:38px;height:38px;border:1px solid var(--line);background:var(--cream);border-radius:50%;font-size:1.4rem;line-height:1;color:var(--ink-soft);cursor:pointer;display:grid;place-items:center;transition:background .18s ease,color .18s ease}
.vc-catnav-x:hover{background:var(--green-soft);color:var(--ink)}
.vc-catnav-body{flex:1 1 auto;display:grid;grid-template-columns:300px 1fr;min-height:0}
.vc-catnav-side{display:flex;flex-direction:column;min-height:0;overflow:auto;border-right:1px solid var(--line);background:var(--cream);-webkit-overflow-scrolling:touch}
.vc-catnav-list{list-style:none;margin:0;padding:12px;flex:0 0 auto}
/* Small-text info links under the categories */
.vc-catnav-links{margin-top:auto;padding:16px 18px calc(20px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);text-align:center}
.vc-catnav-links-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px}
.vc-catnav-links-list li{margin:0}
.vc-catnav-links-list a{font-size:.82rem;font-weight:500;line-height:1.7;color:var(--ink-soft);text-decoration:none!important;transition:color .15s ease}
.vc-catnav-links-list a:hover{color:var(--green)}
.vc-catnav-contact{display:inline-flex;align-items:center;gap:8px;margin:8px 0 12px;padding:10px 22px;border-radius:var(--radius-pill);background:var(--green);color:#fff!important;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-decoration:none!important;transition:transform .18s ease,opacity .18s ease}
.vc-catnav-contact:hover{transform:translateY(-1px);opacity:.92}
.vc-catnav-cat{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 15px;border:0;background:transparent;border-radius:12px;font:600 .96rem/1.2 var(--font-body);color:var(--ink);cursor:pointer;text-align:left;transition:background .16s ease,color .16s ease}
.vc-catnav-cat:hover{background:var(--green-soft)}
.vc-catnav-cat.is-active{background:#fff;box-shadow:var(--shadow-card);color:var(--ink)}
.vc-catnav-cat-meta{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}
.vc-catnav-count{min-width:26px;text-align:center;font-size:.72rem;font-weight:600;color:var(--ink-soft);background:rgba(18,33,27,.06);border-radius:var(--radius-pill);padding:3px 8px}
.vc-catnav-cat.is-active .vc-catnav-count{background:var(--green-soft);color:var(--green)}
.vc-catnav-arrow{color:var(--ink-faint);font-size:1.15rem;line-height:1;display:none}
.vc-catnav-panes{position:relative;overflow:auto;padding:22px 26px}
.vc-catnav-pane{display:none}
.vc-catnav-pane.is-active{display:block;animation:vcCatFade .24s ease}
@keyframes vcCatFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.vc-catnav-pane-head{display:flex;align-items:center;gap:10px;margin:0 0 16px}
.vc-catnav-back{display:none;width:34px;height:34px;border:1px solid var(--line);background:var(--cream);border-radius:50%;font-size:1.35rem;line-height:1;color:var(--ink-soft);cursor:pointer;place-items:center}
.vc-catnav-pane-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--ink);text-decoration:none!important;letter-spacing:-.01em}
.vc-catnav-pane-title:hover{color:var(--green)}
.vc-catnav-products{list-style:none;margin:0 0 18px;padding:0;columns:2;column-gap:26px}
.vc-catnav-products li{break-inside:avoid;margin:0 0 2px}
.vc-catnav-products a{display:block;padding:8px 10px;border-radius:9px;color:var(--ink-soft);font-size:.92rem;font-weight:500;text-decoration:none!important;transition:background .14s ease,color .14s ease}
.vc-catnav-products a:hover{background:var(--green-soft);color:var(--ink)}
.vc-catnav-viewall{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:.9rem;color:var(--green);text-decoration:none!important}
.vc-catnav-viewall span{transition:transform .18s ease}
.vc-catnav-viewall:hover span{transform:translateX(3px)}
.vc-catnav-empty{color:var(--ink-faint);font-size:.92rem}
body.vc-catnav-lock{overflow:hidden}

/* Mobile: drawer slides in from the RIGHT (matching the header button position),
   title on the left, close button on the right, single-column drill-down
   (categories → tap → products). */
@media(max-width:760px){
  .vc-catnav-panel{left:auto;right:0;width:min(400px,90vw);max-width:90vw;border-radius:20px 0 0 20px;transform:translateX(102%)}
  .vc-catnav.is-open .vc-catnav-panel{transform:translateX(0)}
  .vc-catnav-head{flex-direction:row;justify-content:space-between;padding:16px 18px;padding-top:calc(16px + env(safe-area-inset-top,0px))}
  .vc-catnav-title{order:0;text-align:left;font-size:1.25rem}
  .vc-catnav-x{order:1;width:42px;height:42px;font-size:1.5rem}
  .vc-catnav-body{grid-template-columns:1fr;position:relative;overflow:hidden}
  .vc-catnav-side{border-right:0;width:100%;transition:transform .3s cubic-bezier(.22,.8,.24,1)}
  .vc-catnav-list{border-right:0;width:100%;padding:10px}
  .vc-catnav-links{padding:14px 16px calc(22px + env(safe-area-inset-bottom,0px))}
  .vc-catnav-links-list a{font-size:.85rem}
  .vc-catnav-cat{padding:15px 14px;font-size:1rem;border-radius:13px}
  .vc-catnav-arrow{display:inline-block}
  .vc-catnav-panes{position:absolute;inset:0;padding:16px 16px calc(24px + env(safe-area-inset-bottom,0px));background:#fff;transform:translateX(100%);transition:transform .3s cubic-bezier(.22,.8,.24,1);pointer-events:none}
  .vc-catnav-body.show-pane .vc-catnav-side{transform:translateX(-18%)}
  .vc-catnav-body.show-pane .vc-catnav-panes{transform:translateX(0);pointer-events:auto}
  .vc-catnav-back{display:grid;width:38px;height:38px}
  .vc-catnav-pane-title{font-size:1.15rem}
  .vc-catnav-products{columns:1}
  .vc-catnav-products a{padding:12px 12px;font-size:.95rem}
  .vc-catnav-cat.is-active{background:var(--green-soft);box-shadow:none}
}
.vc-search{flex:1;min-width:160px}
.vc-search form{position:relative;display:block}
.vc-search input[type=search]{width:100%;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--white);padding:13px 18px 13px 42px;font:400 .95rem var(--font-body);color:var(--ink)}
.vc-search input[type=search]::placeholder{color:var(--ink-faint)}
.vc-search .vc-search-ic{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--ink-faint);pointer-events:none}
.vc-nav{display:flex;align-items:center;gap:22px}
.vc-nav a{color:var(--ink);font-weight:600;font-size:.95rem;text-decoration:none!important}
.vc-nav a:hover{color:var(--green)}
.vc-cart-btn{display:inline-flex;align-items:center;gap:9px;background:var(--forest-deep);color:#fff!important;border-radius:var(--radius-pill);padding:14px 22px;font-weight:700;position:relative;text-decoration:none!important}
.vc-cart-btn:hover{background:var(--forest)}
.vc-cart-count{position:absolute;top:-6px;left:14px;background:var(--coral);color:#fff;border-radius:999px;font-size:.68rem;font-weight:700;min-width:18px;height:18px;display:grid;place-items:center;padding:0 4px}
@media(max-width:900px){
  .vc-header .vc-wrap{flex-wrap:wrap}
  .vc-search{order:5;flex-basis:100%}
  .vc-nav{margin-left:auto}
}
@media(max-width:700px){
  .vc-header .vc-wrap{display:grid;grid-template-columns:1fr auto auto;grid-template-areas:"logo cats cart" "search search search";gap:12px;padding:14px 14px;align-items:center}
  .vc-logo{grid-area:logo;font-size:1.2rem;gap:9px;min-width:0}
  .vc-logo-mark{width:38px;height:38px;border-radius:12px}
  .vc-logo-mark svg{border-radius:12px}
  .vc-cats{grid-area:cats}
  .vc-cats-toggle{width:42px;height:42px;padding:0;justify-content:center;border-radius:50%;font-size:1.05rem;gap:0}
  .vc-cats-lbl{display:none}
  .vc-cart-btn{grid-area:cart;padding:11px 15px;font-size:.88rem;gap:6px}
  .vc-cart-count{top:-6px;left:8px}
  .vc-search{grid-area:search;order:0}
  .vc-search input[type=search]{padding:11px 16px 11px 38px;font-size:.9rem}
  .vc-nav{display:none}
}

/* ============ Hero ============ */
.vc-hero{display:grid;grid-template-columns:1.05fr 1fr;gap:24px;margin-top:28px}
.vc-hero-panel{background:linear-gradient(145deg,var(--forest) 0%,var(--forest-deep) 100%);border-radius:var(--radius-lg);color:#fff;padding:clamp(28px,4vw,52px);position:relative;overflow:hidden}
.vc-hero-panel::after{content:"";position:absolute;left:-70px;bottom:-90px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.05)}
.vc-hero-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-pill);padding:7px 14px;font-size:.8rem;font-weight:600;color:#d9efe3;margin-bottom:20px}
.vc-hero-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green-bright)}
.vc-hero h1{color:#fff;margin-bottom:16px}
.vc-hero-sub{color:#cfe4d8;max-width:44ch;margin-bottom:26px}
.vc-hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:30px;position:relative;z-index:1}
.vc-hero-stats{display:flex;gap:0;border-top:1px solid rgba(255,255,255,.15);padding-top:22px}
.vc-hero-stats div{padding:0 22px;border-left:1px solid rgba(255,255,255,.15)}
.vc-hero-stats div:first-child{padding-left:0;border-left:0}
.vc-hero-stats strong{display:block;font-family:var(--font-display);font-size:1.5rem}
.vc-hero-stats span{color:#a9c8b8;font-size:.82rem}
.vc-hero-visual{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:22px;display:flex;flex-direction:column;gap:14px}
.vc-hero-img{border-radius:16px;background:repeating-linear-gradient(45deg,var(--mint),var(--mint) 14px,#eef8f1 14px,#eef8f1 28px);min-height:260px;display:grid;place-items:center;overflow:hidden}
.vc-hero-img img{width:100%;height:100%;object-fit:cover}
.vc-hero-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.vc-hero-tile{border-radius:14px;padding:14px 16px}
.vc-hero-tile strong{display:block;font-size:.95rem}
.vc-hero-tile span{font-size:.82rem;color:var(--ink-soft)}
.t-mint{background:var(--mint)}.t-lav{background:var(--lavender)}.t-peach{background:var(--peach)}.t-teal{background:var(--teal)}
@media(max-width:900px){.vc-hero{grid-template-columns:1fr}}

/* Promo tiles row */
.vc-promos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.vc-promo{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:14px;border-radius:var(--radius-lg);padding:26px 24px;min-height:118px;box-shadow:var(--shadow-card);transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease}
.vc-promo::before{content:"";position:absolute;top:-46px;right:-46px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.45);pointer-events:none}
.vc-promo::after{content:"";position:absolute;bottom:-58px;right:34px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.28);pointer-events:none}
.vc-promo > div{position:relative;z-index:1}
.vc-promo h3{margin:0 0 4px;font-size:1.35rem;letter-spacing:-.015em}
.vc-promo span{color:var(--ink-soft);font-size:.87rem}
.vc-promo .emoji{position:relative;z-index:1;flex:0 0 auto;width:58px;height:58px;display:grid;place-items:center;font-size:1.7rem;background:#fff;border-radius:50%;box-shadow:0 8px 18px rgba(18,33,27,.10)}
.vc-promo:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(18,33,27,.12)}
@media(max-width:820px){.vc-promos{grid-template-columns:1fr}.vc-promo{min-height:0;padding:20px 20px}.vc-promo .emoji{width:50px;height:50px;font-size:1.45rem}}

/* ============ Product cards ============ */
.woocommerce ul.products,.woocommerce-page ul.products,ul.products{list-style:none;margin:0 0 10px;padding:0;display:grid!important;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px;width:100%}
ul.products::before,ul.products::after{display:none!important;content:none!important}
/* auto-fill keeps every card at a comfortable width no matter how many
   products a category has — two products no longer stretch or squash. */
/* Phones: always two products per row, right down to the narrowest screens. */
@media(max-width:760px){
  .woocommerce ul.products,.woocommerce-page ul.products,ul.products,
  ul.products.columns-2,ul.products.columns-3,ul.products.columns-4,ul.products.columns-5,
  .related.products ul.products,.upsells.products ul.products,.cross-sells ul.products{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px
  }
}
@media(max-width:420px){
  .woocommerce ul.products,.woocommerce-page ul.products,ul.products,
  .related.products ul.products,.upsells.products ul.products,.cross-sells ul.products{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px
  }
}
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product,li.product{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);display:flex;flex-direction:column;position:relative;width:auto!important;min-width:0;float:none!important;clear:none!important;margin:0!important;padding:18px!important;box-sizing:border-box}
.vc-card-media{border-radius:16px;aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden;position:relative;margin-bottom:14px}
.vc-card-media img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.vc-tint-0{background:var(--mint)}.vc-tint-1{background:var(--lavender)}.vc-tint-2{background:var(--peach)}.vc-tint-3{background:var(--teal)}
.vc-sale-badge{position:absolute;top:10px;left:10px;background:var(--coral);color:#fff;font:700 .72rem/1 var(--font-body);border-radius:var(--radius-pill);padding:6px 10px;z-index:2}
li.product a{text-decoration:none!important}
li.product .woocommerce-loop-product__title,.vc-card-title{font-family:var(--font-display);font-size:1.05rem;font-weight:600;line-height:1.3;margin:0;padding:0;color:var(--ink)!important;overflow-wrap:break-word}
.vc-card-sub{color:var(--ink-faint)!important;font-size:.82rem;margin:4px 0 10px;min-height:1.2em;display:block}
.woocommerce ul.products li.product .price,li.product .price{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--ink)!important;margin:0 0 14px}
.woocommerce ul.products li.product .price del,li.product .price del{color:var(--ink-faint)!important;font-size:.82rem;font-weight:400;margin-right:5px}
.woocommerce ul.products li.product .price ins,li.product .price ins{text-decoration:none;color:var(--ink)!important}
li.product .price del{color:var(--ink-faint)!important;font-size:.85rem;font-weight:500;margin-right:6px;opacity:1}
li.product .price ins{text-decoration:none;font-weight:700}
.woocommerce ul.products li.product .button,li.product .button{margin-top:auto;background:var(--green-soft);color:var(--ink);width:100%}
li.product .button:hover{background:var(--green-bright);color:#fff}
li.product .added_to_cart{margin-top:8px;text-align:center;font-weight:600;font-size:.88rem}
@media(max-width:760px){.woocommerce ul.products li.product,.woocommerce-page ul.products li.product,li.product{padding:12px!important}.vc-card-media{border-radius:12px;margin-bottom:10px}li.product .woocommerce-loop-product__title{font-size:.95rem}li.product .price{font-size:1.05rem}li.product .button{padding:11px 12px;font-size:.84rem}}

/* ============ Shop archive ============ */
.vc-shop{display:grid;grid-template-columns:250px 1fr;gap:26px;align-items:start;margin-top:24px}
.vc-side{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px;position:sticky;top:86px}
.vc-side h3{font-size:1.1rem;margin-bottom:12px}
.vc-side ul{list-style:none;margin:0;padding:0}
.vc-side li a{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;border-radius:10px;color:var(--ink);font-weight:500;font-size:.92rem;text-decoration:none!important}
.vc-side li a:hover,.vc-side li.current-cat>a{background:var(--green-soft);color:var(--ink)}
.vc-side li a::after{content:"›";color:var(--ink-faint)}
.vc-shop-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.woocommerce-result-count{color:var(--ink-soft);font-size:.9rem;margin:0}
.woocommerce-ordering select{border:1px solid var(--line);border-radius:var(--radius-pill);padding:10px 16px;background:#fff;font:600 .88rem var(--font-body);color:var(--ink)}
.woocommerce-breadcrumb{font-size:.85rem;color:var(--ink-faint);margin:20px 0 6px}
.woocommerce-breadcrumb a{color:var(--ink-faint)}
/* Pagination styling lives in the WooCommerce override block at the end of this file. */
@media(max-width:860px){.vc-shop{grid-template-columns:1fr}.vc-side{position:static}}

/* ============ Single product ============ */
.vc-product-top{display:grid;grid-template-columns:1fr 1.1fr;gap:28px;margin-top:18px}
.vc-gallery{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px}
.vc-gallery .woocommerce-product-gallery__wrapper{border-radius:16px;overflow:hidden;background:var(--mint)}
.vc-gallery img{width:100%;object-fit:cover}
.vc-gallery .flex-control-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;list-style:none;margin:12px 0 0;padding:0}
.vc-gallery .flex-control-thumbs img{border-radius:10px;background:var(--mint);cursor:pointer;opacity:.65}
.vc-gallery .flex-control-thumbs img.flex-active{opacity:1}
.vc-stock-pill{display:inline-flex;align-items:center;gap:7px;background:var(--green-soft);color:var(--forest);border-radius:var(--radius-pill);padding:7px 14px;font-size:.8rem;font-weight:700;margin-bottom:14px}
.vc-stock-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green-bright)}
.vc-summary .product_title{font-size:clamp(2rem,4vw,2.9rem);margin-bottom:8px}
.vc-summary .vc-ingredient{color:var(--ink-soft);margin-bottom:10px}
.vc-summary .vc-ingredient strong{color:var(--ink)}
.vc-summary .woocommerce-product-rating{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.vc-summary .woocommerce-product-details__short-description{color:var(--ink-soft);max-width:56ch}
.vc-from-price{display:flex;align-items:baseline;gap:10px;margin:18px 0}
.vc-from-price .lbl{color:var(--ink-faint);font-size:.9rem}
.vc-from-price .amt{font-family:var(--font-display);font-weight:700;font-size:2.2rem;color:var(--green)}
.vc-summary form.cart{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin:6px 0 18px}
.vc-summary form.cart .quantity input{width:76px;height:52px;border:1px solid var(--line);border-radius:var(--radius-md);text-align:center;font:600 1rem var(--font-body)}
.vc-summary form.cart .single_add_to_cart_button{flex:1;min-width:220px;font-size:1.02rem}
.vc-perks{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin-top:6px}
.vc-perks span{display:flex;align-items:center;gap:9px;font-size:.88rem;color:var(--ink-soft);font-weight:500}
@media(max-width:860px){.vc-product-top{grid-template-columns:1fr}}

/* ============ Package pricing tables ("Choose your package") ============ */
/* One dark-headed table per dose. Prices in ink, sale price in green,
   struck price + -% badge in coral, one green ADD per row. */
.vc-pkg-sec{margin-top:44px}
.vc-pkg-sec-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.vc-pkg-sec-head h2{margin:0;font-size:clamp(1.4rem,2.4vw,1.9rem)}
.vc-pkg-hint{background:var(--green-soft);color:var(--green);font:600 .72rem/1 var(--font-body);border-radius:var(--radius-pill);padding:7px 12px}

.vc-pkg{background:var(--white);border-radius:20px;box-shadow:var(--shadow-card);overflow:hidden;margin-bottom:24px}
.vc-pkg-head{display:flex;align-items:center;gap:13px;background:var(--forest-deep);padding:17px 24px}
.vc-pkg-ico{flex:0 0 auto;width:36px;height:36px;border-radius:11px;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:1.05rem}
.vc-pkg-head h3{margin:0;color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.18rem;letter-spacing:-.01em}

.vc-pkg-cols,.vc-pkg-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr) minmax(0,1.4fr) auto;gap:16px;align-items:center;padding:15px 24px}
.vc-pkg-cols{padding:12px 24px;background:#f5f8f6;border-bottom:1px solid var(--line);font:700 .66rem/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}
.vc-pkg-row{margin:0;border-top:1px solid var(--line)}
.vc-pkg-cols + .vc-pkg-row{border-top:0}
.vc-pkg-row:nth-of-type(even){background:#fbfcfb}
.vc-pkg-row.is-sold .c-pack,.vc-pkg-row.is-sold .c-per{opacity:.5}

.vc-pkg .c-pack{min-width:0}
.vc-pkg .pack-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.vc-pkg .c-pack b{font-family:var(--font-display);font-weight:700;font-size:1.12rem;line-height:1.2;color:var(--ink);white-space:nowrap}
.vc-pkg .c-pack .best{font-style:normal;display:inline-flex;align-items:center;gap:4px;background:var(--ink);color:#fff;font:700 .62rem/1 var(--font-body);letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-pill);padding:5px 9px;white-space:nowrap}
.vc-pkg .c-pack .ship{display:block;margin-top:4px;color:var(--green);font-size:.82rem;font-weight:600}

.vc-pkg .c-per{color:var(--ink);font-size:.95rem;font-weight:500;white-space:nowrap}
.vc-pkg .c-per .per-word{display:none;font-style:normal;color:var(--ink-faint);font-weight:400;font-size:.8rem}

.vc-pkg .c-price{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
.vc-pkg .c-price .was{display:inline-flex;flex-direction:column;align-items:center;gap:3px;flex:0 0 auto}
.vc-pkg .c-price .was del{color:var(--coral);font-size:.8rem;line-height:1}
.vc-pkg .c-price .was i{font-style:normal;background:var(--coral);color:#fff;font:700 .64rem/1 var(--font-body);border-radius:var(--radius-pill);padding:3px 7px}
.vc-pkg .c-price .now{font-family:var(--font-display);font-weight:700;font-size:1.28rem;line-height:1.1;color:var(--green);white-space:nowrap}
.vc-pkg .c-price .sold{color:var(--ink-faint);font-weight:600;font-size:.9rem}

.vc-pkg .c-add{justify-self:end}
.vc-pkg-add{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--green-bright,var(--green));color:#fff;border:0;border-radius:var(--radius-pill);padding:12px 26px;font:700 .82rem/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:transform .16s ease,filter .16s ease,background .16s ease}
.vc-pkg-add:hover{transform:translateY(-1px);filter:brightness(1.05)}
.vc-pkg-add:active{transform:none}
.vc-pkg-add:disabled{background:var(--line);color:var(--ink-faint);cursor:not-allowed;transform:none;filter:none}
.vc-pkg-add.is-busy{opacity:.65;pointer-events:none}
.vc-pkg-add .ic{font-size:.95rem;line-height:1}

/* ---- Mobile: header row hidden; each row stacks pack / price with ADD on the right ---- */
@media(max-width:820px){
  .vc-pkg-cols,.vc-pkg-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1.4fr) auto;padding:14px 18px}
  .vc-pkg-cols span:nth-child(2),.vc-pkg .c-per{display:none}
}
@media(max-width:700px){
  .vc-pkg-sec{margin-top:26px}
  .vc-pkg-sec-head{margin-bottom:14px;gap:8px}
  .vc-pkg-sec-head h2{font-size:1.25rem}
  .vc-pkg-hint{font-size:.65rem;padding:5px 9px}
  .vc-pkg{border-radius:16px;margin-bottom:18px}
  .vc-pkg-head{padding:14px 16px;gap:10px}
  .vc-pkg-ico{width:32px;height:32px;border-radius:9px;font-size:.95rem}
  .vc-pkg-head h3{font-size:1.02rem}
  .vc-pkg-cols{display:none}
  .vc-pkg-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"pack add" "per add" "price add";gap:3px 14px;padding:13px 16px}
  .vc-pkg .c-pack{grid-area:pack}
  .vc-pkg .c-pack b{font-size:1.02rem}
  .vc-pkg .c-pack .best{font-size:.56rem;padding:4px 7px}
  .vc-pkg .c-pack .ship{margin-top:2px;font-size:.76rem}
  .vc-pkg .c-per{display:block;grid-area:per;color:var(--ink-faint);font-weight:400;font-size:.8rem}
  .vc-pkg .c-per .per-word{display:inline}
  .vc-pkg .c-price{grid-area:price;gap:9px;margin-top:2px}
  .vc-pkg .c-price .was{flex-direction:row;gap:6px;align-items:center}
  .vc-pkg .c-price .was del{font-size:.76rem}
  .vc-pkg .c-price .was i{font-size:.58rem;padding:3px 6px}
  .vc-pkg .c-price .now{font-size:1.12rem}
  .vc-pkg .c-add{grid-area:add;align-self:center}
  .vc-pkg-add{padding:11px 16px;font-size:.76rem;gap:6px}
  .vc-pkg-add .lbl{display:inline}
}
@media(max-width:400px){
  .vc-pkg-head h3{font-size:.95rem}
  .vc-pkg-add{padding:10px 13px;font-size:.72rem}
}


/* ============ Content pages (Help, Shipping, About, Guarantee, Contact) ============ */
/* Shared section styles. Content comes from inc/page-content.php; changing the
   words there never touches anything below. */
.vc-page{padding-bottom:8px}
.vc-page > section{margin-bottom:56px}
.vc-page > section:last-child{margin-bottom:8px}

/* ---- Section headings ---- */
.vc-pg-head{margin:0 0 24px;max-width:62ch}
.vc-pg-head h2{margin:0 0 8px;font-size:clamp(1.5rem,2.8vw,2.1rem)}
.vc-pg-intro{margin:0;color:var(--ink-soft);font-size:1.02rem}
.vc-pg-eyebrow{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-pill);padding:7px 14px;font-size:.8rem;font-weight:600;color:#d9efe3;margin-bottom:18px}
.vc-pg-eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green-bright)}
.vc-pg-note{margin:14px 0 0;color:var(--ink-faint);font-size:.88rem;max-width:70ch}
.vc-pg-link{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-weight:600;font-size:.9rem;color:var(--green);text-decoration:none!important}
.vc-pg-link span{transition:transform .18s ease}
.vc-pg-link:hover span{transform:translateX(3px)}
.vc-pg-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}

/* ---- Hero ---- */
.vc-pg-hero{background:linear-gradient(145deg,var(--forest) 0%,var(--forest-deep) 100%);border-radius:var(--radius-lg);color:#fff;padding:clamp(30px,5vw,60px);position:relative;overflow:hidden;margin-top:28px}
.vc-pg-hero::after{content:"";position:absolute;right:-90px;top:-90px;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.05)}
.vc-pg-hero-inner{position:relative;z-index:1;max-width:60ch}
.vc-pg-hero h1{color:#fff;margin:0 0 16px;font-size:clamp(1.9rem,4.2vw,3.1rem)}
.vc-pg-hero-sub{color:#cfe4d8;font-size:1.05rem;margin:0;max-width:52ch}
.vc-pg-hero .vc-pg-btns{margin-top:28px}

/* ---- Icon cards ---- */
.vc-pg-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.vc-pg-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px 26px 24px;display:flex;flex-direction:column;transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease}
.vc-pg-card:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(18,33,27,.05),0 16px 36px rgba(18,33,27,.09)}
.vc-pg-card .ico{width:46px;height:46px;border-radius:14px;background:var(--green-soft);display:grid;place-items:center;font-size:1.3rem;margin-bottom:16px}
.vc-pg-card h3{margin:0 0 8px;font-size:1.14rem}
.vc-pg-card p{margin:0;color:var(--ink-soft);font-size:.94rem}
.vc-pg-card .vc-pg-link{margin-top:auto;padding-top:14px}

/* ---- Numbered steps ---- */
.vc-pg-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;counter-reset:vcstep}
.vc-pg-steps li{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px;display:flex;gap:15px;align-items:flex-start}
.vc-pg-steps .n{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--forest-deep);color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:1rem}
.vc-pg-steps .b{display:flex;flex-direction:column;gap:6px;min-width:0}
.vc-pg-steps .b strong{font-family:var(--font-display);font-weight:700;font-size:1.06rem;color:var(--ink);line-height:1.25}
.vc-pg-steps .b span{color:var(--ink-soft);font-size:.92rem}

/* ---- Table ---- */
.vc-pg-tablewrap{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}
.vc-pg-table{width:100%;border-collapse:collapse}
.vc-pg-table th{text-align:left;background:var(--forest-deep);color:#fff;font:700 .68rem/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;padding:15px 22px}
.vc-pg-table td{padding:16px 22px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:.95rem;vertical-align:top}
.vc-pg-table tbody tr:nth-child(even){background:#fbfcfb}
.vc-pg-table td:first-child{font-weight:700;color:var(--ink);font-family:var(--font-display);font-size:1.02rem}

/* ---- FAQ accordion ---- */
.vc-faq{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:8px 26px 18px}
.vc-faq-group{margin:26px 0 4px;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-family:var(--font-body)}
.vc-faq-group:first-child{margin-top:20px}
.vc-faq-item{border-bottom:1px solid var(--line)}
.vc-faq-item:last-child{border-bottom:0}
.vc-faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:18px 0;font-weight:600;font-size:1.02rem;color:var(--ink);-webkit-tap-highlight-color:transparent}
.vc-faq-item summary::-webkit-details-marker{display:none}
.vc-faq-item summary:hover{color:var(--green)}
.vc-faq-item .q{flex:1 1 auto;min-width:0}
.vc-faq-item .mk{flex:0 0 auto;position:relative;width:24px;height:24px;border-radius:50%;background:var(--green-soft);transition:background .2s ease,transform .25s ease}
.vc-faq-item .mk::before,.vc-faq-item .mk::after{content:"";position:absolute;left:50%;top:50%;background:var(--green);border-radius:2px;transform:translate(-50%,-50%)}
.vc-faq-item .mk::before{width:11px;height:2px}
.vc-faq-item .mk::after{width:2px;height:11px;transition:transform .25s ease,opacity .2s ease}
.vc-faq-item[open] .mk{background:var(--green);transform:rotate(180deg)}
.vc-faq-item[open] .mk::before{background:#fff}
.vc-faq-item[open] .mk::after{opacity:0;transform:translate(-50%,-50%) scaleY(0)}
.vc-faq-item .a{padding:0 44px 20px 0;animation:vcFaqIn .22s ease}
.vc-faq-item .a p{margin:0;color:var(--ink-soft);font-size:.96rem;max-width:78ch}
@keyframes vcFaqIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ---- Prose ---- */
.vc-pg-prose{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:30px 32px}
.vc-pg-prose p{color:var(--ink-soft);font-size:1rem;max-width:74ch}
.vc-pg-prose p:last-child{margin-bottom:0}
.vc-pg-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.vc-pg-list li{position:relative;padding-left:34px;color:var(--ink-soft);font-size:.98rem;max-width:74ch}
.vc-pg-list li::before{content:"✓";position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:.78rem;font-weight:700;display:grid;place-items:center}

/* ---- Stats strip ---- */
.vc-pg-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:2px;background:var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card)}
.vc-pg-stats > div{background:var(--white);padding:26px 22px;text-align:center}
.vc-pg-stats strong{display:block;font-family:var(--font-display);font-weight:700;font-size:clamp(1.6rem,3vw,2.2rem);color:var(--ink);line-height:1.1}
.vc-pg-stats span{display:block;margin-top:6px;color:var(--ink-faint);font-size:.85rem}

/* ---- Dark panel ---- */
.vc-pg-panel{background:linear-gradient(145deg,var(--forest) 0%,var(--forest-deep) 100%);border-radius:var(--radius-lg);color:#fff;padding:clamp(28px,4vw,52px);position:relative;overflow:hidden}
.vc-pg-panel::after{content:"";position:absolute;left:-70px;bottom:-90px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.05)}
.vc-pg-panel-in{position:relative;z-index:1;max-width:64ch}
.vc-pg-panel h2{color:#fff;margin:0 0 14px}
.vc-pg-panel p{color:#cfe4d8;margin:0;max-width:56ch}
.vc-pg-ticks{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:11px}
.vc-pg-ticks li{position:relative;padding-left:32px;color:#e4f1ea;font-size:.96rem}
.vc-pg-ticks li::before{content:"✓";position:absolute;left:0;top:0;width:21px;height:21px;border-radius:50%;background:rgba(255,255,255,.14);color:var(--green-bright);font-size:.75rem;font-weight:700;display:grid;place-items:center}

/* ---- Closing CTA ---- */
.vc-pg-cta{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:30px 32px;display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap}
.vc-pg-cta .l{min-width:0;max-width:56ch}
.vc-pg-cta h2{margin:0 0 6px;font-size:clamp(1.3rem,2.4vw,1.75rem)}
.vc-pg-cta p{margin:0;color:var(--ink-soft);font-size:.96rem}
.vc-pg-cta .vc-pg-btns{margin-top:0;flex:0 0 auto}

/* ---- Contact ---- */
.vc-contact{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:20px;align-items:start}
.vc-contact-side{display:grid;gap:14px}
.vc-contact-item{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:20px;display:flex;gap:14px;align-items:flex-start}
.vc-contact-item .ico{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:var(--green-soft);display:grid;place-items:center;font-size:1.1rem}
.vc-contact-item strong{display:block;font-family:var(--font-display);font-weight:700;font-size:1.02rem;color:var(--ink);margin-bottom:4px}
.vc-contact-item p{margin:0;color:var(--ink-soft);font-size:.9rem}
.vc-contact-item .vc-pg-link{margin-top:9px;font-size:.86rem}
.vc-contact-form{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:28px 30px}
.vc-field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.vc-field{margin:0 0 16px;display:block}
.vc-field label{display:block;margin-bottom:7px;font-weight:600;font-size:.86rem;color:var(--ink)}
.vc-field input,.vc-field select,.vc-field textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--cream);padding:13px 15px;font:400 .95rem var(--font-body);color:var(--ink);transition:border-color .18s ease,background .18s ease}
.vc-field input:focus,.vc-field select:focus,.vc-field textarea:focus{border-color:var(--green-bright);background:#fff;outline:none}
.vc-field textarea{resize:vertical;min-height:130px}
.vc-field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238a978f' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;padding-right:38px}
.vc-form-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}
.vc-consent{color:var(--ink-faint);font-size:.82rem}
.vc-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.vc-note{border-radius:var(--radius-md);padding:14px 17px;margin-bottom:20px;font-size:.94rem;font-weight:500}
.vc-note--ok{background:var(--green-soft);color:var(--green)}
.vc-note--err{background:var(--coral-soft);color:var(--coral)}

/* ---- Mobile ---- */
@media(max-width:900px){
  .vc-contact{grid-template-columns:1fr}
}
@media(max-width:760px){
  .vc-page > section{margin-bottom:34px}
  .vc-pg-hero{margin-top:18px;padding:26px 20px;border-radius:18px}
  .vc-pg-hero h1{font-size:1.72rem}
  .vc-pg-hero-sub{font-size:.96rem}
  .vc-pg-eyebrow{font-size:.72rem;padding:6px 12px;margin-bottom:14px}
  .vc-pg-btns{gap:9px;margin-top:20px}
  .vc-pg-btns .vc-btn{flex:1 1 auto;text-align:center;justify-content:center}
  .vc-pg-head{margin-bottom:16px}
  .vc-pg-head h2{font-size:1.35rem}
  .vc-pg-intro{font-size:.94rem}
  .vc-pg-cards{grid-template-columns:1fr;gap:12px}
  .vc-pg-card{padding:20px;border-radius:16px}
  .vc-pg-card .ico{width:40px;height:40px;border-radius:12px;font-size:1.15rem;margin-bottom:12px}
  .vc-pg-card h3{font-size:1.05rem}
  .vc-pg-steps{grid-template-columns:1fr;gap:11px}
  .vc-pg-steps li{padding:18px;border-radius:16px;gap:13px}
  .vc-pg-steps .n{width:30px;height:30px;font-size:.92rem}
  .vc-pg-prose{padding:22px 20px;border-radius:16px}
  .vc-pg-stats{grid-template-columns:1fr 1fr}
  .vc-pg-stats > div{padding:20px 14px}
  .vc-pg-panel{padding:26px 20px;border-radius:18px}
  .vc-pg-panel h2{font-size:1.35rem}
  .vc-faq{padding:4px 18px 12px;border-radius:16px}
  .vc-faq-item summary{padding:16px 0;font-size:.96rem;gap:12px}
  .vc-faq-item .a{padding:0 36px 16px 0}
  .vc-faq-item .a p{font-size:.92rem}
  .vc-pg-cta{padding:22px 20px;border-radius:16px;flex-direction:column;align-items:flex-start;gap:16px}
  .vc-pg-cta .vc-pg-btns{width:100%}
  .vc-contact-form{padding:20px 18px;border-radius:16px}
  .vc-field-row{grid-template-columns:1fr;gap:0}
  .vc-form-foot .vc-btn{width:100%;text-align:center;justify-content:center}

  /* Tables become stacked cards, each cell labelled by its column. */
  .vc-pg-tablewrap{background:transparent;box-shadow:none;border-radius:0}
  .vc-pg-table,.vc-pg-table tbody,.vc-pg-table tr,.vc-pg-table td{display:block;width:100%}
  .vc-pg-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .vc-pg-table tr{background:var(--white)!important;border-radius:16px;box-shadow:var(--shadow-card);padding:6px 0;margin-bottom:12px}
  .vc-pg-table td{border-top:0;padding:9px 18px;display:flex;justify-content:space-between;align-items:baseline;gap:14px;text-align:right}
  .vc-pg-table td::before{content:attr(data-label);flex:0 0 auto;text-align:left;font:700 .64rem/1.3 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
  .vc-pg-table td:first-child{font-size:1.06rem;padding-top:14px}
  .vc-pg-table td:first-child::before{align-self:center}
}


/* ============ Track your order ============ */
.vc-track-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:clamp(20px,3vw,32px)}
.vc-track-row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.vc-track-field{flex:1 1 260px;margin:0}
.vc-track-field input{font-size:1.02rem;padding:14px 16px}
.vc-track-submit{flex:0 0 auto;padding:14px 30px;font-size:.95rem}
.vc-track-submit.is-busy{opacity:.7;pointer-events:none}

.vc-track-carriers{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.vc-track-carriers label{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-pill);padding:9px 16px;font-size:.86rem;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease;-webkit-tap-highlight-color:transparent}
.vc-track-carriers input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.vc-track-carriers label:hover{border-color:#c3cec8}
.vc-track-carriers label.is-selected{background:var(--green-soft);border-color:var(--green-bright);color:var(--ink)}

.vc-track-out:empty{display:none}
.vc-track-loading{display:flex;align-items:center;gap:12px;margin-top:22px;padding:18px 20px;background:var(--cream);border-radius:var(--radius-md);color:var(--ink-soft);font-size:.92rem}
.vc-track-loading .spin{flex:0 0 auto;width:18px;height:18px;border-radius:50%;border:2px solid var(--green-soft);border-top-color:var(--green);animation:vcSpin .7s linear infinite}
@keyframes vcSpin{to{transform:rotate(360deg)}}

.vc-track-result{margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
.vc-track-result--err{display:flex;align-items:flex-start;gap:12px;margin-top:22px;padding:16px 18px;background:var(--coral-soft);border-radius:var(--radius-md);border-top:0}
.vc-track-result--err .ico{flex:0 0 auto;font-size:1.1rem}
.vc-track-result--err p{margin:0;color:var(--coral);font-weight:600;font-size:.92rem}

.vc-track-status{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.vc-track-status .ico{flex:0 0 auto;width:46px;height:46px;border-radius:14px;background:var(--green-soft);display:grid;place-items:center;font-size:1.35rem}
.vc-track-status strong{display:block;font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--ink);line-height:1.25}
.vc-track-status span{color:var(--ink-faint);font-size:.86rem}
.vc-track-status--delivered .ico{background:var(--green-soft)}
.vc-track-status--exception .ico,.vc-track-status--failed_attempt .ico{background:var(--coral-soft)}
.vc-track-empty{color:var(--ink-soft);font-size:.94rem;background:var(--cream);border-radius:var(--radius-md);padding:16px 18px;margin:0}

.vc-track-timeline{list-style:none;margin:0;padding:0 0 0 3px}
.vc-track-timeline li{position:relative;padding:0 0 22px 26px;border-left:2px solid var(--line)}
.vc-track-timeline li:last-child{border-left-color:transparent;padding-bottom:0}
.vc-track-timeline .dot{position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--ink-faint)}
.vc-track-timeline li.is-latest .dot{background:var(--green-bright);border-color:var(--green-bright);box-shadow:0 0 0 4px var(--green-soft)}
.vc-track-timeline .b{display:flex;flex-direction:column;gap:4px}
.vc-track-timeline strong{font-size:.98rem;color:var(--ink);line-height:1.35;font-weight:600}
.vc-track-timeline li.is-latest strong{color:var(--green)}
.vc-track-timeline .meta{color:var(--ink-faint);font-size:.82rem}
.vc-track-result .vc-pg-link{margin-top:18px}

/* ---- Compact widget on My Account → View Order ---- */
.vc-track-inline{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px 28px;margin:28px 0}
.vc-track-inline h2{margin:0 0 4px;font-size:1.2rem}
.vc-track-inline .vc-track-result{border-top:0;padding-top:16px;margin-top:6px}
.vc-track-inline .vc-track-status{margin-bottom:16px}

@media(max-width:700px){
  .vc-track-card{padding:18px 16px;border-radius:16px}
  .vc-track-row{flex-direction:column;align-items:stretch;gap:12px}
  .vc-track-submit{width:100%;justify-content:center}
  .vc-track-carriers{gap:7px}
  .vc-track-carriers label{padding:8px 13px;font-size:.8rem}
  .vc-track-status .ico{width:40px;height:40px;border-radius:12px;font-size:1.1rem}
  .vc-track-status strong{font-size:1.05rem}
  .vc-track-inline{padding:18px 16px;border-radius:16px;margin:20px 0}
}

/* Info panels + reviews */
.vc-info-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}
.vc-info-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:28px 30px}
.vc-info-card h3{font-size:1.3rem}
.vc-info-card p,.vc-info-card li{color:var(--ink-soft);font-size:.95rem}
@media(max-width:760px){.vc-info-cards{grid-template-columns:1fr}}
.woocommerce-Reviews{margin-top:44px}
.commentlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.commentlist li{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:22px}
.comment-form{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px;margin-top:22px}
.comment-form input[type=text],.comment-form input[type=email],.comment-form textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-md);padding:12px 14px;font:400 .95rem var(--font-body)}
.star-rating,.wc-review-rating{color:var(--gold)}

/* ============ Cart ============ */
.vc-cart-layout{display:grid;grid-template-columns:1fr 320px;gap:26px;align-items:start;margin-top:10px}
.vc-cart-note{color:var(--ink-faint);font-size:.9rem;margin-top:-6px}
.vc-cart-items{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}
.vc-cart-row{display:grid;grid-template-columns:76px 1fr auto auto auto;gap:18px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}
.vc-cart-row:last-child{border-bottom:0}
.vc-cart-thumb{width:76px;height:64px;border-radius:14px;overflow:hidden;display:grid;place-items:center}
.vc-cart-thumb img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.vc-cart-name{font-family:var(--font-display);font-weight:600;font-size:1.05rem}
.vc-cart-name a{color:var(--ink);text-decoration:none!important}
.vc-cart-meta{color:var(--ink-faint);font-size:.83rem}
.vc-qty{display:inline-flex;align-items:center;background:var(--cream);border-radius:var(--radius-md);overflow:hidden;flex:0 0 auto}
.vc-qty button{width:40px;height:44px;border:0;background:transparent;font-size:1.35rem;line-height:1;cursor:pointer;color:var(--ink);display:flex;align-items:center;justify-content:center;padding:0;-webkit-appearance:none;appearance:none;font-family:var(--font-body)}
.vc-qty button:hover{background:#eae8e1}
.vc-qty input,.vc-qty .qty{width:46px;height:44px;border:0;background:#fff;text-align:center;font:600 .95rem var(--font-body);-moz-appearance:textfield;padding:0}
.vc-qty input::-webkit-inner-spin-button,.vc-qty input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.vc-cart-price{text-align:right}
.vc-cart-price del{display:block;color:var(--ink-faint);font-size:.8rem}
.vc-cart-price .amt{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--green)}
.vc-cart-off{display:inline-block;margin-top:3px;background:var(--coral-soft);color:var(--coral);font-size:.72rem;font-weight:700;border-radius:var(--radius-pill);padding:3px 9px;line-height:1.2}
.vc-cart-sale{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--forest-deep);color:#fff;border-radius:var(--radius-lg);padding:20px 26px;margin-bottom:18px;box-shadow:var(--shadow-card);width:100%;box-sizing:border-box;flex-wrap:wrap}
.vc-cart-sale-text{flex:1 1 220px;min-width:0}
.vc-cart-sale-text strong{display:block;font-family:var(--font-display);font-size:1.25rem;font-weight:600;letter-spacing:-.01em;margin-bottom:3px;overflow-wrap:break-word}
.vc-cart-sale-text span{color:#bfd6c9;font-size:.85rem;overflow-wrap:break-word}
.vc-cart-sale-pill{flex:0 0 auto;background:var(--coral);color:#fff;font-weight:700;font-size:.88rem;border-radius:var(--radius-pill);padding:11px 20px;white-space:nowrap}
/* Compact on phones so the banner never dwarfs the cart items below it. */
@media(max-width:720px){
  .vc-cart-sale{flex-direction:column;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:16px;margin-bottom:14px}
  .vc-cart-sale-text{flex-basis:auto;width:100%}
  .vc-cart-sale-text strong{font-size:1rem;margin-bottom:2px}
  .vc-cart-sale-text span{font-size:.8rem}
  .vc-cart-sale-pill{padding:7px 14px;font-size:.78rem}
}
@media(max-width:430px){.vc-cart-sale-text strong{font-size:.95rem}}
@media(max-width:360px){.vc-cart-sale-pill{font-size:.74rem;padding:6px 12px}}
.vc-cart-remove{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--coral);font-size:1rem;text-decoration:none!important}
.vc-cart-remove:hover{background:var(--coral-soft)}
.vc-coupon{display:flex;gap:10px;padding:16px 22px;border-top:1px solid var(--line);background:#fbfaf7;flex-wrap:wrap}
.vc-coupon input{flex:1;min-width:170px;border:1px solid var(--line);border-radius:var(--radius-pill);padding:12px 18px;font:400 .92rem var(--font-body)}
.vc-coupon-form{margin:0}
.vc-coupon--side{border-top:0;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px 20px}
.vc-cart-actions{justify-content:flex-end}
.vc-cart-side{display:flex;flex-direction:column;gap:18px;position:sticky;top:86px}
.cart_totals{background:linear-gradient(150deg,var(--forest),var(--forest-deep));border-radius:var(--radius-lg);color:#fff;padding:24px}
.cart_totals h2{color:#fff;font-size:1.35rem;margin-bottom:14px}
.cart_totals table{width:100%;border-collapse:collapse}
.cart_totals th,.cart_totals td{padding:8px 0;text-align:left;font-size:.92rem;border:0;color:#cfe4d8;font-weight:500}
.cart_totals td{text-align:right;color:#fff}
.cart_totals .order-total th,.cart_totals .order-total td{padding-top:14px;border-top:1px solid rgba(255,255,255,.18);font-size:1.05rem}
.cart_totals .order-total .amount{font-family:var(--font-display);font-size:1.9rem;font-weight:700}
.cart_totals .woocommerce-shipping-methods{list-style:none;margin:0;padding:0}
.cart_totals .woocommerce-shipping-methods li{margin:4px 0}
.cart_totals .woocommerce-shipping-methods label{color:#fff}
.cart_totals a{color:#a5e8c6}
.wc-proceed-to-checkout{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.wc-proceed-to-checkout .checkout-button{width:100%;font-size:1rem}
.vc-benefits{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px 22px}
.vc-benefits > div{display:grid;grid-template-columns:24px 1fr;gap:12px;padding:11px 0;align-items:start;border-bottom:1px solid var(--line)}
.vc-benefits > div:last-child{border-bottom:0}
.vc-benefits > div > span{font-size:1.1rem;line-height:1.3}
.vc-benefits strong{display:block;font-size:.92rem;line-height:1.3}
.vc-benefits > div > div span{color:var(--ink-soft);font-size:.82rem;display:block;margin-top:2px}
.vc-cart-empty{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:56px 30px;text-align:center}
.cross-sells{margin-top:48px}
@media(max-width:920px){.vc-cart-layout{grid-template-columns:1fr}.vc-cart-side{position:static}
  /* Touch range: keep every cart control at a 44px target. */
  .vc-cart-remove{width:44px;height:44px;border-radius:12px}
  .vc-qty button{height:44px}
  .vc-qty input,.vc-qty .qty{height:44px}}

/* ============ Checkout / account / forms ============ */
.woocommerce-checkout .vc-page-body,.woocommerce-account .vc-page-body{background:transparent}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{
  border:1px solid var(--line);border-radius:var(--radius-md);padding:13px 15px;font:400 .95rem var(--font-body);background:#fff;width:100%}
.woocommerce form .form-row label{font-weight:600;font-size:.88rem;margin-bottom:5px;display:inline-block}
.woocommerce-checkout #customer_details,.woocommerce-checkout .woocommerce-checkout-review-order{
  background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px}
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:start}
.woocommerce-checkout form.checkout h3{font-size:1.25rem}
#order_review_heading{grid-column:2}
.woocommerce-checkout .woocommerce-checkout-review-order table{width:100%;border-collapse:collapse}
.woocommerce-checkout .woocommerce-checkout-review-order td,.woocommerce-checkout .woocommerce-checkout-review-order th{padding:9px 0;border-bottom:1px solid var(--line);text-align:left;font-size:.92rem}
#place_order{width:100%;font-size:1rem}
@media(max-width:860px){.woocommerce-checkout form.checkout{grid-template-columns:1fr}#order_review_heading{grid-column:1}}
.woocommerce-account .woocommerce{display:grid;grid-template-columns:240px 1fr;gap:26px;align-items:start}
.woocommerce-MyAccount-navigation{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:14px}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0}
.woocommerce-MyAccount-navigation a{display:block;padding:11px 14px;border-radius:10px;color:var(--ink);font-weight:600;font-size:.92rem;text-decoration:none!important}
.woocommerce-MyAccount-navigation li.is-active a,.woocommerce-MyAccount-navigation a:hover{background:var(--green-soft)}
.woocommerce-MyAccount-content{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px}
@media(max-width:820px){.woocommerce-account .woocommerce{grid-template-columns:1fr}}

/* Notices */
/* WooCommerce's own woocommerce.css positions an icon glyph with
   .woocommerce-message::before{position:absolute;font-family:WooCommerce}
   and reserves room for it with padding-left:3.5em. Those rules are reset
   here (same specificity, theme CSS now loads last) and the icon is rendered
   as a real element by the notices/*.php template overrides, so it can be
   sized and vertically centred with flexbox. */
.woocommerce-message,.woocommerce-info,.woocommerce-error,
.woocommerce .woocommerce-message,.woocommerce .woocommerce-info,.woocommerce .woocommerce-error{
  position:relative;list-style:none;
  display:flex;align-items:center;gap:12px;
  background:var(--green-soft);border:1px solid rgba(23,178,106,.20);
  border-radius:16px;box-shadow:0 1px 2px rgba(18,33,27,.04),0 6px 18px rgba(18,33,27,.06);
  padding:14px clamp(14px,3vw,18px);margin:16px 0;
  min-height:64px;font-size:.92rem;line-height:1.45;color:var(--ink);
  animation:vc-notice-in .38s cubic-bezier(.2,.8,.2,1) both}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before,
.woocommerce .woocommerce-message::before,.woocommerce .woocommerce-info::before,.woocommerce .woocommerce-error::before{
  content:none;display:none}
.woocommerce-info{background:var(--lavender);border-color:rgba(76,93,181,.18)}
.woocommerce-error{background:var(--coral-soft);border-color:rgba(240,112,74,.22)}
ul.woocommerce-error{margin:16px 0;padding:14px clamp(14px,3vw,18px)}
ul.woocommerce-error li{margin:2px 0;min-width:0;list-style:none}

/* Icon: fixed-size glyph in a chip, centred against the text. */
.vc-notice-ico{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;
  border-radius:50%;background:var(--green);box-shadow:0 3px 8px rgba(23,178,106,.28)}
.vc-notice-ico svg{width:18px;height:18px;display:block;fill:none;stroke:#fff;
  stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.vc-notice-ico svg .dot{fill:#fff;stroke:none}
.vc-notice--info .vc-notice-ico{background:#5b6bc0;box-shadow:0 3px 8px rgba(91,107,192,.28)}
.vc-notice--error .vc-notice-ico{background:var(--coral);box-shadow:0 3px 8px rgba(240,112,74,.3)}

/* Text row: message left, any action pinned right, all on one baseline. */
.vc-notice-text{flex:1 1 auto;min-width:0;display:flex;align-items:center;flex-wrap:wrap;
  gap:8px 12px;font-weight:500;overflow-wrap:break-word}
.vc-notice-text .button,.woocommerce-message .button,.woocommerce-info .button,.woocommerce-error .button{
  order:2;margin-left:auto;float:none;flex:0 0 auto;
  background:var(--forest);color:#fff!important;border-radius:var(--radius-pill);
  padding:0 18px;height:40px;display:inline-flex;align-items:center;
  font:700 .82rem/1 var(--font-body);letter-spacing:.02em;text-decoration:none!important;
  transition:background .18s ease,transform .18s cubic-bezier(.2,.8,.2,1)}
.vc-notice-text .button:hover{background:var(--forest-deep);transform:translateY(-1px)}
/* "Undo?" stays attached to the sentence it belongs to. */
.vc-notice-text .restore-item{order:0;margin:0;font-weight:700;color:var(--green);
  text-decoration:underline;text-underline-offset:2px}
.vc-notice-text .restore-item:hover{color:var(--forest)}
/* Add-to-cart redirects straight to the cart, so that notice carries no
   button; centre it as a single unit with no space reserved. */
.woocommerce-message .vc-notice-text:not(:has(.button)),
.woocommerce-info .vc-notice-text:not(:has(.button)){
  display:flex;align-items:center;min-height:34px;margin:0}
@keyframes vc-notice-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(max-width:560px){
  .woocommerce-message,.woocommerce-info,.woocommerce-error{
    gap:10px;padding:11px 13px;min-height:60px;font-size:.85rem;line-height:1.35;border-radius:14px}
  .vc-notice-ico{width:28px;height:28px}
  .vc-notice-ico svg{width:15px;height:15px}
  .vc-notice-text{display:block;gap:0}
  .vc-notice-text .button{display:inline-flex;width:auto;margin:0 0 0 6px;float:none;
    vertical-align:middle;height:28px;padding:0 12px;font-size:.74rem;line-height:1}
}
@media(max-width:360px){
  .woocommerce-message,.woocommerce-info,.woocommerce-error{padding:10px 11px;font-size:.82rem}
}

/* Fallback for notices injected by WooCommerce's checkout JavaScript, which
   bypasses the notices/*.php templates and so has no .vc-notice-ico element. */
ul.woocommerce-error:not(.vc-notice),
div.woocommerce-error:not(.vc-notice),
.woocommerce-NoticeGroup .woocommerce-error:not(.vc-notice){display:flex;align-items:center;gap:12px}
ul.woocommerce-error:not(.vc-notice)::before,
div.woocommerce-error:not(.vc-notice)::before,
.woocommerce-NoticeGroup .woocommerce-error:not(.vc-notice)::before{
  content:"";display:block;position:static;flex:0 0 auto;width:34px;height:34px;border-radius:50%;
  font-size:0;background-color:var(--coral);box-shadow:0 3px 8px rgba(240,112,74,.3);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 6v8'/%3E%3Ccircle cx='12' cy='17.5' r='1.3' fill='%23fff' stroke='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;background-size:16px 16px}

/* ============ Testimonials / reviews section ============ */
.vc-reviews-hero{background:linear-gradient(150deg,var(--forest),var(--forest-deep));border-radius:var(--radius-lg);color:#fff;text-align:center;padding:clamp(34px,5vw,60px);position:relative;overflow:hidden;margin-top:24px}
.vc-reviews-hero::before{content:"";position:absolute;left:-60px;bottom:-80px;width:230px;height:230px;border-radius:50%;background:rgba(255,255,255,.05)}
.vc-reviews-hero h1,.vc-reviews-hero h2{color:#fff}
.vc-reviews-hero p{color:#cfe4d8;max-width:52ch;margin:0 auto}
.vc-stars{color:var(--gold);letter-spacing:3px;font-size:1.05rem;margin-bottom:10px}
.vc-review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:18px;margin-top:26px}
.vc-review-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px;display:flex;flex-direction:column;gap:14px}
.vc-review-card blockquote{margin:0;color:var(--ink);font-size:.95rem}
.vc-review-who{display:flex;align-items:center;gap:12px;margin-top:auto}
.vc-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.9rem}
.vc-review-who strong{display:block;font-size:.9rem}
.vc-review-who span{color:var(--ink-faint);font-size:.78rem}

/* ============ Footer ============ */
.vc-footer{background:var(--forest-deep);color:#bcd8ca;margin-top:70px}
.vc-footer .vc-wrap{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1.4fr;gap:30px;padding:52px 20px 30px}
.vc-footer h4{color:#fff;font:700 .78rem/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px}
.vc-footer ul{list-style:none;margin:0;padding:0}
.vc-footer li{margin:9px 0}
.vc-footer a{color:#bcd8ca;text-decoration:none!important}
.vc-footer a:hover{color:#fff}
.vc-footer .vc-logo{color:#fff;margin-bottom:12px}
.vc-footer .vc-logo em{color:var(--green-bright)}
.vc-foot-about{font-size:.88rem;max-width:30ch}
.vc-pay{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.vc-pay span{background:rgba(255,255,255,.08);border-radius:8px;padding:5px 10px;font-size:.75rem;font-weight:600;color:#e8f5ee}
.vc-news-form{display:flex;background:rgba(255,255,255,.08);border-radius:var(--radius-pill);padding:5px;margin-top:6px}
.vc-news-form input{flex:1;background:transparent;border:0;color:#fff;padding:9px 14px;font:400 .9rem var(--font-body);min-width:0}
.vc-news-form input::placeholder{color:#9dbfae}
.vc-news-form button{border:0;background:var(--green-bright);color:#fff;border-radius:var(--radius-pill);padding:9px 18px;font:600 .88rem var(--font-body);cursor:pointer}
.vc-foot-base{border-top:1px solid rgba(255,255,255,.12)}
.vc-foot-base .vc-wrap{display:flex;justify-content:space-between;gap:16px;padding:18px 20px;font-size:.82rem;flex-wrap:wrap}
/* Tablet: brand + newsletter go full-width, the three link columns sit in a tidy row of three. */
@media(max-width:920px){
	.vc-footer .vc-wrap{grid-template-columns:repeat(3,1fr);gap:34px 26px;padding:46px 22px 28px}
	.vc-footer .vc-wrap>div:first-child{grid-column:1/-1}
	.vc-footer .vc-wrap>div:last-child{grid-column:1/-1;max-width:560px}
}
/* Phone: single column, comfortable vertical rhythm. */
@media(max-width:600px){
	.vc-footer{margin-top:52px}
	.vc-footer .vc-wrap{grid-template-columns:1fr;gap:30px;padding:40px 22px 26px}
	.vc-footer .vc-wrap>div:last-child{max-width:none}
	.vc-footer h4{margin-bottom:12px}
	.vc-foot-about{max-width:42ch}
	.vc-foot-base .vc-wrap{padding:16px 22px}
}

/* ============ Blog ============ */
.vc-post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:24px}
.vc-post-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;display:flex;flex-direction:column}
.vc-post-card .thumb{aspect-ratio:16/9;background:var(--mint);overflow:hidden}
.vc-post-card .thumb img{width:100%;height:100%;object-fit:cover}
.vc-post-card .body{padding:20px 22px}
.vc-post-card time{color:var(--ink-faint);font-size:.8rem}
.vc-single-content{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:clamp(24px,4vw,48px);max-width:820px;margin:24px auto}
.vc-single-content img{border-radius:14px}

/* Page shell */
.vc-page-body{min-height:52vh;padding-bottom:20px}
.vc-page-title{margin-top:30px}
.vc-nav ul.vc-nav-list{display:flex;gap:22px;list-style:none;margin:0;padding:0}
.vc-nav ul.vc-nav-list li{margin:0}

/* Single product polish */
.vc-single-product{margin-top:6px}
.vc-single-product .woocommerce-breadcrumb{margin-top:14px}
.vc-summary .quantity{display:inline-flex}
.vc-summary form.cart .variations{width:100%;border-collapse:collapse;margin-bottom:14px}
.vc-summary form.cart .variations td{padding:6px 0}
.vc-summary form.cart .variations label{font-weight:600}
.vc-summary form.cart .reset_variations{font-size:.82rem;margin-left:8px}
.vc-summary .woocommerce-variation-price{margin:8px 0}
.vc-summary .woocommerce-variation-price .amt,.vc-summary .woocommerce-variation-price .price{font-family:var(--font-display);font-weight:700;font-size:1.4rem;color:var(--green)}
.vc-choose-cta{margin:6px 0 18px}
.vc-stock-pill--out{background:var(--coral-soft);color:var(--coral)}
.vc-stock-pill--out::before{background:var(--coral)}
.vc-info-card .vc-sku{color:var(--ink-faint);font-size:.85rem;margin-top:12px}
.vc-info-card table.woocommerce-product-attributes{width:100%;border-collapse:collapse;margin-top:8px;font-size:.9rem}
.vc-info-card table.woocommerce-product-attributes th{text-align:left;padding:8px 10px 8px 0;color:var(--ink);white-space:nowrap;vertical-align:top}
.vc-info-card table.woocommerce-product-attributes td{padding:8px 0;color:var(--ink-soft)}
.vc-info-card table.woocommerce-product-attributes tr{border-bottom:1px solid var(--line)}
/* Hide WooCommerce default single price/cart when the pack table drives the purchase */
.vc-single-product.product-type-variable > .price,
.vc-single-product .single_variation_wrap .woocommerce-variation-add-to-cart{}
.related.products,.upsells.products{margin-top:48px}
.related.products > h2,.upsells.products > h2,.cross-sells > h2{font-family:var(--font-display);font-size:1.6rem;margin-bottom:18px}
@media(max-width:760px){
  .vc-summary .product_title{font-size:2rem}
  .vc-perks{grid-template-columns:1fr}
  .vc-info-cards{gap:14px}
  .vc-product-top{gap:18px}
}

/* Homepage review empty state (admin only) */
.vc-review-empty{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px 28px;color:var(--ink-soft)}
.vc-review-empty p{margin:0 0 8px}

/* Coupon row mobile */
@media(max-width:520px){
  .vc-coupon{flex-direction:column}
  .vc-coupon input,.vc-coupon .vc-btn{width:100%}
}
/* Related / cross-sell / upsell use the same responsive product grid */
.related.products ul.products,.upsells.products ul.products,.cross-sells ul.products{grid-template-columns:repeat(5,1fr)}
@media(max-width:1024px){.related.products ul.products,.upsells.products ul.products,.cross-sells ul.products{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.related.products ul.products,.upsells.products ul.products,.cross-sells ul.products{grid-template-columns:repeat(2,1fr)}}
/* Make sure single add to cart button (simple products) is full width & tidy */
.vc-summary form.cart{align-items:center}
.vc-summary form.cart .button{padding:15px 26px}

/* ============ Defensive overrides (plugin/host CSS) ============ */
.woocommerce-products-header{background:none!important;padding:0!important;margin:8px 0 4px}
.woocommerce-products-header__title,.woocommerce-products-header__title.page-title{color:var(--ink)!important;font-family:var(--font-display)}
.woocommerce-breadcrumb{background:none!important;color:var(--ink-faint)!important}
.woocommerce-breadcrumb a{color:var(--ink-faint)!important}
.term-description{color:var(--ink-soft);max-width:70ch}

/* Cart totals: keep the dark panel clean of injected table styles */
.cart_totals table,.cart_totals table tr,.cart_totals table th,.cart_totals table td{background:transparent!important;border:0!important;box-shadow:none!important}
.cart_totals .order-total th,.cart_totals .order-total td{border-top:1px solid rgba(255,255,255,.18)!important}
.cart_totals th{color:#cfe4d8!important}
.cart_totals td,.cart_totals td .amount{color:#fff!important}
.cart_totals td[data-title]::before{display:none}
.cart_totals h2{color:#fff!important}

/* Cart rows: never clip the stepper */
.vc-cart-items{overflow:visible}
.vc-cart-row > div{min-width:0}
.vc-qty{flex:0 0 auto}
.vc-qty button{flex:0 0 auto;min-width:36px}
@media(max-width:640px){
  .vc-qty button{width:44px;height:44px;font-size:1.25rem}
  .vc-qty input,.vc-qty .qty{width:clamp(38px,11vw,46px);height:44px}
}
@media(max-width:360px){.vc-qty button{width:40px}}
.related.products>h2,.upsells.products>h2,.cross-sells>h2,.vc-section-head h2,.vc-pkg-sec-head h2{color:var(--ink)!important}

/* Cart item variation meta: neutralise WooCommerce's floated dl layout */
.vc-cart-meta{overflow-wrap:break-word}
.vc-cart-meta dl.variation{display:block;margin:0 0 4px;overflow:hidden}
.vc-cart-meta dl.variation dt,.vc-cart-meta dl.variation dd{float:none!important;display:inline;margin:0 4px 0 0;padding:0;font-size:.83rem;color:var(--ink-faint)}
.vc-cart-meta dl.variation dd p{display:inline;margin:0}
.vc-cart-meta dl.variation dd::after{content:" · "}
.vc-cart-meta dl.variation dd:last-of-type::after{content:""}

/* Cart row: safe alignment on all widths */
.vc-cart-row{align-items:center}
.vc-cart-name{overflow-wrap:break-word}
/* Cart page: never allow horizontal drift on narrow screens */
.vc-cart-layout{min-width:0;max-width:100%}
.vc-cart-layout > div{min-width:0;max-width:100%}
.woocommerce-cart .vc-page-body{overflow-x:clip}
/* Fluid rows: every dimension scales with the screen instead of being tuned
   for one device, so odd aspect ratios (Nord CE5 Lite etc.) get the same
   proportions as an iPhone rather than a squeezed version of its layout. */
@media(max-width:640px){
  .vc-cart-row{grid-template-columns:clamp(48px,15vw,60px) minmax(0,1fr) auto;grid-template-areas:"thumb name remove" "qty qty price";row-gap:14px;column-gap:clamp(8px,3vw,14px);padding:clamp(12px,3.5vw,16px);align-items:start}
  .vc-cart-row .vc-cart-thumb{grid-area:thumb;width:clamp(48px,15vw,60px);height:clamp(48px,15vw,60px);border-radius:12px}
  .vc-cart-row > div:nth-child(2){grid-area:name}
  .vc-cart-name{font-size:clamp(1rem,3.2vw,1.08rem);line-height:1.3}
  .vc-cart-meta{font-size:clamp(.82rem,2.7vw,.87rem)}
  .vc-cart-row .vc-qty{grid-area:qty;justify-self:start;align-self:center}
  .vc-cart-price{grid-area:price;justify-self:end;align-self:center;text-align:right}
  .vc-cart-price .amt{font-size:clamp(1.05rem,3.4vw,1.18rem)}
  .vc-cart-price del{font-size:.78rem}
  .vc-cart-off{font-size:.7rem;padding:3px 8px}
  .vc-cart-remove{grid-area:remove;justify-self:end;width:44px;height:44px;border-radius:12px}
}
@media(max-width:360px){
  .vc-cart-off{font-size:.66rem;padding:2px 7px}
  .vc-coupon{padding:14px}
  .vc-coupon input{min-width:0}
}

/* Mobile page spacing: breathing room for shop/category/product pages */
@media(max-width:700px){
  .vc-wrap{padding:0 16px}
  .vc-page-body{padding-top:6px}
  .woocommerce-products-header{margin:14px 0 10px!important}
  .vc-shop-toolbar{margin:0 0 16px;gap:10px}
  .woocommerce-result-count{font-size:.85rem}
  .vc-section{margin:38px 0}
  .vc-product-top{margin-top:12px}
  .related.products,.upsells.products,.cross-sells{margin-top:36px}
  .vc-hero-stats div{padding:0 12px}
  .vc-hero-stats strong{font-size:1.15rem}
  .vc-hero-stats span{font-size:.75rem}
}

/* ============ Motion: page enter/leave, reveal on scroll, cart feedback ============ */

/* Page enter — the whole content area fades + rises once the document is ready. */
@keyframes vc-page-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes vc-fade-in{from{opacity:0}to{opacity:1}}
@keyframes vc-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes vc-pop{0%{transform:scale(1)}35%{transform:scale(1.14)}100%{transform:scale(1)}}

/* Chrome (header/announce/footer) fades in on first paint. */
.vc-announce,.vc-header,.vc-footer{animation:vc-fade-in .5s ease both}
.vc-header{animation-delay:.04s}

/* Main content rises in. Kept off until JS marks the document ready so the
   animation can't leave content invisible if JS fails (no-JS = no animation). */
html.vc-js .vc-page-body{opacity:0}
html.vc-js.vc-ready .vc-page-body{animation:vc-page-in .55s cubic-bezier(.2,.8,.2,1) both}

/* Leaving for another page: fade + settle, then the browser navigates. */
html.vc-leaving .vc-page-body{opacity:0;transform:translateY(-8px);transition:opacity .19s ease,transform .19s ease}
html.vc-leaving .vc-header,html.vc-leaving .vc-footer,html.vc-leaving .vc-announce{opacity:.55;transition:opacity .19s ease}

/* Scroll reveal: sections rise as they come into view. */
html.vc-js [data-reveal]{opacity:0}
html.vc-safe [data-reveal]{opacity:1!important}
html.vc-js [data-reveal].vc-in{animation:vc-rise .6s cubic-bezier(.2,.8,.2,1) both}
html.vc-js [data-reveal].vc-in[data-reveal-delay="1"]{animation-delay:.07s}
html.vc-js [data-reveal].vc-in[data-reveal-delay="2"]{animation-delay:.14s}
html.vc-js [data-reveal].vc-in[data-reveal-delay="3"]{animation-delay:.21s}
html.vc-js [data-reveal].vc-in[data-reveal-delay="4"]{animation-delay:.28s}
html.vc-js [data-reveal].vc-in[data-reveal-delay="5"]{animation-delay:.35s}

/* Product grids / cart rows stagger in. */
html.vc-js ul.products.vc-in > li{animation:vc-rise .5s cubic-bezier(.2,.8,.2,1) both}
html.vc-js ul.products.vc-in > li:nth-child(1){animation-delay:.02s}
html.vc-js ul.products.vc-in > li:nth-child(2){animation-delay:.07s}
html.vc-js ul.products.vc-in > li:nth-child(3){animation-delay:.12s}
html.vc-js ul.products.vc-in > li:nth-child(4){animation-delay:.17s}
html.vc-js ul.products.vc-in > li:nth-child(5){animation-delay:.22s}
html.vc-js ul.products.vc-in > li:nth-child(n+6){animation-delay:.27s}

/* Cart: rows rise in, and the header cart button pops whenever it updates. */
.vc-cart-row{animation:vc-rise .45s cubic-bezier(.2,.8,.2,1) both}
.vc-cart-row:nth-child(2){animation-delay:.05s}
.vc-cart-row:nth-child(3){animation-delay:.1s}
.vc-cart-row:nth-child(n+4){animation-delay:.15s}
.vc-cart-items,.cart_totals,.vc-cart-empty{animation:vc-rise .5s cubic-bezier(.2,.8,.2,1) both}
.cart_totals{animation-delay:.08s}
.vc-cart-btn.vc-bump{animation:vc-pop .45s cubic-bezier(.2,.8,.2,1)}
.vc-cart-count{animation:vc-pop .4s cubic-bezier(.2,.8,.2,1)}

/* WooCommerce notices slide in. */
/* Notice entrance animation is defined with the notice card above (vc-notice-in). */

/* Product card + button lift. */
.vc-card,.vc-post-card,.vc-review-card{transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease}
.vc-card:hover,.vc-post-card:hover{transform:translateY(-4px);box-shadow:0 6px 14px rgba(18,33,27,.07),0 18px 40px rgba(18,33,27,.1)}
.vc-btn,.button,button.button,.woocommerce a.button,.woocommerce button.button{transition:background .16s ease,transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s ease}
.vc-btn:hover,.woocommerce a.button:hover,.woocommerce button.button:hover{transform:translateY(-1px)}
.vc-btn:active,.woocommerce a.button:active,.woocommerce button.button:active{transform:translateY(0) scale(.98)}

/* Respect the OS "reduce motion" setting: everything appears instantly. */
@media(prefers-reduced-motion:reduce){
  html.vc-js .vc-page-body,html.vc-js [data-reveal]{opacity:1!important;animation:none!important;transform:none!important}
  .vc-announce,.vc-header,.vc-footer,.vc-cart-row,.vc-cart-items,.cart_totals,.vc-cart-empty,
  .woocommerce-message,.woocommerce-info,.woocommerce-error,.vc-cart-btn.vc-bump,.vc-cart-count{animation:none!important}
  html.vc-leaving .vc-page-body{opacity:1;transform:none;transition:none}
}

/* ============ Category archive header ============ */
.vc-archive-head{margin:14px 0 22px!important}
.vc-archive-head .vc-eyebrow{margin-bottom:6px}
.vc-archive-head .page-title{margin:0 0 8px;font-size:clamp(1.9rem,4vw,2.9rem)}
.vc-archive-head .term-description{color:var(--ink-soft);max-width:70ch;margin:0}
.vc-cat-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.vc-cat-chips a{display:inline-flex;align-items:center;gap:7px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-pill);padding:8px 14px;font-size:.88rem;font-weight:600;color:var(--ink);text-decoration:none!important}
.vc-cat-chips a span{color:var(--ink-faint);font-weight:500;font-size:.8rem}
.vc-cat-chips a:hover{border-color:var(--green-bright)}
.vc-cat-chips a.is-active{background:var(--forest-deep);border-color:var(--forest-deep);color:#fff}
.vc-cat-chips a.is-active span{color:#9dbfae}
@media(max-width:700px){
  .vc-archive-head{margin:10px 0 16px!important}
  .vc-cat-chips{margin-top:14px;gap:6px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .vc-cat-chips::-webkit-scrollbar{display:none}
  .vc-cat-chips a{white-space:nowrap;padding:7px 12px;font-size:.83rem}
}

/* ============ Hard reset: one background, one column, no injected banners ============
   Some plugins (and WooCommerce's own fallback templates) inject a coloured page
   banner and a sidebar column into archives. That produced the navy hero band, the
   empty white block and the squashed product column on category pages. The theme
   owns the whole page, so those are neutralised here. */
html,body{background:var(--page-bg)!important}
.vc-page-body,#content,#primary,#main,.site,.site-content,.content-area,
.woocommerce,.woocommerce-page,.wp-site-blocks,.entry-content{background:transparent!important}

/* Kill plugin/theme-injected archive banners. */
.page-header,.archive-header,.entry-header,.page-title-bar,.page-hero,
.woocommerce-products-header:not(.vc-archive-head),
.wp-block-query-title,.term-banner,.category-banner{
  background:none!important;background-color:transparent!important;
  color:var(--ink)!important;padding:0!important;border:0!important;min-height:0!important
}

/* No sidebar: WooCommerce archives are full width in this theme. */
#secondary,.widget-area,.sidebar,aside.sidebar,.woocommerce-sidebar,
.wp-block-woocommerce-filter-wrapper{display:none!important}
.woocommerce .content-area,.woocommerce #primary,.woocommerce-page #primary,
.site-main,.site-content > .vc-wrap{width:100%!important;max-width:none!important;float:none!important;margin-left:0!important;margin-right:0!important}

/* Empty containers left behind by a removed sidebar/banner shouldn't hold space. */
.vc-wrap > div:empty,.vc-page-body > div:empty,.woocommerce > div:empty{display:none!important}

/* ============ Header on narrow / tall phones ============
   On tall-aspect Android screens the viewport is narrower than an iPhone 11's,
   and the cart pill's price text was pushing the site title into an ellipsis
   ("thegen…"). Below 480px the cart shows just the icon + item count — the
   total is one tap away — which gives the title the room it needs. */
@media(max-width:480px){
  .vc-header .vc-wrap{gap:10px;padding:13px 14px}
  .vc-logo{font-size:1.14rem;gap:8px}
  .vc-logo-mark{width:36px;height:36px;border-radius:11px}
  .vc-logo-mark svg{border-radius:11px}
  .vc-logo-txt{min-width:0}
  .vc-cart-total{display:none}
  .vc-cart-btn{padding:0;width:44px;height:44px;justify-content:center;border-radius:50%;gap:0}
  .vc-cart-count{top:-2px;left:auto;right:-2px}
  .vc-cats-toggle{width:40px;height:40px}
}
/* Smallest screens: shrink the wordmark rather than clipping it. */
@media(max-width:360px){
  .vc-header .vc-wrap{gap:8px;padding:12px 12px}
  .vc-logo{font-size:1rem;gap:7px}
  .vc-logo-mark{width:32px;height:32px;border-radius:10px}
  .vc-logo-mark svg{border-radius:10px}
  .vc-cart-btn{width:40px;height:40px}
  .vc-cats-toggle{width:38px;height:38px}
}
/* The title must never be clipped — it is the brand. */
.vc-logo{min-width:0}
.vc-logo-txt{overflow:visible;text-overflow:clip}
@media(max-width:700px){.vc-logo{min-width:0}.vc-logo-txt{overflow:visible}}

/* ============ Product category tiles ============
   WooCommerce outputs these as <li class="product-category product">. They pick
   up the white card background from the product-card rule above, so without the
   styles below their contents were invisible — the blank white boxes. */
li.product-category{padding:0!important;overflow:hidden}
li.product-category > a{display:flex;flex-direction:column;height:100%;padding:18px;text-decoration:none!important;color:inherit}
.vc-cat-media{border-radius:16px;aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden;position:relative;margin-bottom:14px}
.vc-cat-media img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.vc-cat-initial{font-family:var(--font-display);font-weight:700;font-size:2.6rem;color:var(--forest);opacity:.35;line-height:1}
li.product-category .woocommerce-loop-category__title{font-family:var(--font-display);font-size:1.05rem;font-weight:600;line-height:1.3;margin:0;padding:0;color:var(--ink)!important}
li.product-category .woocommerce-loop-category__title .count{display:none} /* replaced by .vc-cat-count */
.vc-cat-count{display:block;margin-top:4px;color:var(--ink-faint);font-size:.82rem}
li.product-category:hover .woocommerce-loop-category__title{color:var(--green)!important}
@media(max-width:760px){
  li.product-category > a{padding:12px}
  .vc-cat-media{border-radius:12px;margin-bottom:10px}
  li.product-category .woocommerce-loop-category__title{font-size:.95rem}
  .vc-cat-initial{font-size:2rem}
}

/* ============ Archive spacing ============ */
.vc-wrap{padding:0 24px}
.vc-page-body{padding-bottom:56px}
.woocommerce-breadcrumb{margin:20px 0 0!important;font-size:.88rem}
.vc-shop-toolbar{margin:0 0 22px!important}
.woocommerce-pagination{margin-top:32px}
@media(max-width:700px){
  .vc-wrap{padding:0 16px}
  .vc-page-body{padding-bottom:40px}
  .woocommerce-breadcrumb{margin:14px 0 0!important;font-size:.8rem}
  .vc-shop-toolbar{margin:0 0 14px!important}
  .woocommerce-result-count{margin:0}
}

/* ============ Header cart button ============
   The emoji glyph and the count badge collided inside the round button on some
   phones. A real icon with the badge anchored outside the circle keeps them clear
   of each other at every size. */
.vc-cart-btn{overflow:visible}
.vc-cart-ico{display:grid;place-items:center;width:20px;height:20px;flex:0 0 auto}
.vc-cart-ico svg{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.vc-cart-count{position:absolute;top:-7px;right:-7px;left:auto;background:var(--coral);color:#fff;border:2px solid var(--white);border-radius:999px;font-size:.66rem;font-weight:700;min-width:20px;height:20px;display:grid;place-items:center;padding:0 4px;line-height:1;box-sizing:border-box}
@media(max-width:480px){
  .vc-cart-btn{padding:0;width:44px;height:44px;justify-content:center;border-radius:50%;gap:0}
  .vc-cart-count{top:-6px;right:-6px}
  .vc-cart-ico{width:19px;height:19px}
  .vc-cart-ico svg{width:19px;height:19px}
}

/* ============ Delivery options (cart) ============ */
.vc-delivery{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:22px 24px;margin-top:18px}
.vc-delivery-title{font-family:var(--font-display);font-size:1.3rem;margin:0 0 14px}
.vc-delivery-pkg + .vc-delivery-pkg{margin-top:16px}
.vc-delivery-pkg-name{display:block;font-weight:600;font-size:.9rem;color:var(--ink-soft);margin-bottom:8px}
.vc-delivery-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.vc-delivery-opt{position:relative;display:flex;align-items:center;gap:12px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:14px 16px;cursor:pointer;transition:border-color .18s ease,background .18s ease}
.vc-delivery-opt:hover{border-color:#c3cec8}
.vc-delivery-opt.is-selected{border-color:var(--green-bright);background:#f5fbf8}
.vc-delivery-opt input.shipping_method{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.vc-delivery-opt .dot{flex:0 0 auto;width:20px;height:20px;border-radius:50%;border:1.5px solid #cfd8d2;background:#fff;display:grid;place-items:center;transition:border-color .18s ease}
.vc-delivery-opt .dot::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--green-bright);transform:scale(0);transition:transform .18s cubic-bezier(.2,.9,.3,1.3)}
.vc-delivery-opt.is-selected .dot{border-color:var(--green-bright)}
.vc-delivery-opt.is-selected .dot::after{transform:scale(1)}
.vc-delivery-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
.vc-delivery-txt strong{font-size:.95rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vc-delivery-cost{flex:0 0 auto;display:flex;align-items:baseline;gap:6px;font-size:.95rem;white-space:nowrap}
.vc-delivery-cost .amount{color:var(--green)}
.vc-delivery-now{font-weight:700;color:var(--green)}
.vc-delivery-was{color:var(--ink-soft);font-weight:500;text-decoration:line-through;font-size:.85rem}
.vc-delivery-was .amount{color:var(--ink-soft)}
.vc-delivery-free{font-weight:700;color:var(--green)}
.vc-delivery-sub{font-size:.8rem;font-weight:400;color:var(--ink-soft);white-space:normal;line-height:1.4}
.vc-delivery-free-note{margin-top:2px}
.vc-shipping-chosen{font-weight:600}
.vc-free{color:var(--green);font-weight:700}
@media(max-width:640px){
  .vc-delivery{padding:18px}
  .vc-delivery-opts{grid-template-columns:1fr}
  .vc-delivery-opt{padding:12px 14px;border-radius:12px}
}

/* ============ Responsive foundation ============ */
/* Fluid page gutter: scales smoothly instead of jumping between breakpoints. */
.vc-wrap{padding-left:clamp(12px,4vw,20px);padding-right:clamp(12px,4vw,20px)}
/* Media never forces width; embeds stay inside their column. */
img,svg,video,iframe{max-width:100%}
table{width:100%;border-collapse:collapse}

/* ============ Prices never break mid-number ============ */
/* WooCommerce wraps amounts as
   <span class="woocommerce-Price-amount"><span class="…currencySymbol">$</span>319.90</span>
   Inside a narrow table cell the browser is free to break between the symbol
   and the digits, which produced "$319.9 / 0" in the cart total. Each amount
   is locked to one line — but the .price *container* stays wrappable, so a
   product-card range like "$75.00 – $565.00" can still break at the dash
   instead of overflowing the card. */
.woocommerce-Price-amount,.woocommerce-Price-currencySymbol,
.cart_totals .amount,.cart-subtotal td,.order-total td,.shipping td,.fee td,
.vc-cart-price .amt,.vc-cart-price del,
.woocommerce-checkout-review-order-table .amount{
  white-space:nowrap;word-break:normal;overflow-wrap:normal;font-variant-numeric:tabular-nums}
.price,.price ins,.price del{white-space:normal;word-break:normal;overflow-wrap:normal}

/* Totals table: value column takes what it needs, label column yields. */
.cart_totals table,.woocommerce-checkout-review-order-table{table-layout:auto;width:100%}
.cart_totals th,.woocommerce-checkout-review-order-table th{width:auto;min-width:0;overflow-wrap:break-word;padding-right:12px}
.cart_totals td,.woocommerce-checkout-review-order-table td{width:1%;white-space:nowrap;text-align:right}
.cart_totals .order-total td .amount{display:inline-block;white-space:nowrap}
@media(max-width:412px){
  .cart_totals{padding:20px 18px}
  .cart_totals .order-total .amount{font-size:clamp(1.4rem,7vw,1.9rem)}
  .cart_totals th,.cart_totals td{font-size:.88rem}
}
@media(max-width:340px){
  .cart_totals{padding:18px 14px}
  .cart_totals .order-total .amount{font-size:1.35rem}
}

/* ============ Pagination — overrides WooCommerce's own high-specificity rules ============ */
/* woocommerce.css styles pagination with
   `.woocommerce nav.woocommerce-pagination ul li a` (2 classes + 3 elements),
   which outranks any `.woocommerce-pagination li a` rule. These selectors
   match that specificity and reset the borders WooCommerce draws. */
.woocommerce nav.woocommerce-pagination,
.woocommerce-page nav.woocommerce-pagination,
nav.woocommerce-pagination{margin:34px 0 10px;text-align:center}
.woocommerce nav.woocommerce-pagination ul,
.woocommerce-page nav.woocommerce-pagination ul,
nav.woocommerce-pagination ul{
  display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;
  list-style:none;margin:0;padding:6px;
  border:0;border-radius:var(--radius-pill);
  background:var(--white);box-shadow:var(--shadow-card);white-space:normal}
.woocommerce nav.woocommerce-pagination ul li,
.woocommerce-page nav.woocommerce-pagination ul li,
nav.woocommerce-pagination ul li{
  border:0;border-right:0;margin:0;padding:0;overflow:visible;float:none;display:inline-flex}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce-page nav.woocommerce-pagination ul li a,
.woocommerce-page nav.woocommerce-pagination ul li span,
nav.woocommerce-pagination ul li a,
nav.woocommerce-pagination ul li span,
.vc-pagination .page-numbers{
  display:inline-grid;place-items:center;box-sizing:border-box;
  min-width:44px;height:44px;padding:0 14px;margin:0;
  border:0;border-radius:var(--radius-pill);background:transparent;
  color:var(--ink-soft);font:600 .92rem/1 var(--font-body);text-decoration:none!important;
  transition:background .18s ease,color .18s ease,transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce-page nav.woocommerce-pagination ul li a:hover,
nav.woocommerce-pagination ul li a:hover,
.vc-pagination a.page-numbers:hover{
  background:var(--green-soft);color:var(--ink);transform:translateY(-1px)}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a.current,
.woocommerce-page nav.woocommerce-pagination ul li span.current,
nav.woocommerce-pagination ul li span.current,
.vc-pagination .page-numbers.current{
  background:var(--green);color:#fff;box-shadow:0 6px 16px rgba(23,178,106,.34)}
.woocommerce nav.woocommerce-pagination ul li span.dots,
nav.woocommerce-pagination ul li span.dots{color:var(--ink-faint);min-width:26px;padding:0;background:none}
/* Arrows: centred SVG backgrounds. Rotated CSS borders were never optically
   centred because rotating a square moves its bounding box. */
.woocommerce nav.woocommerce-pagination ul li a.prev,
.woocommerce nav.woocommerce-pagination ul li a.next,
.woocommerce-page nav.woocommerce-pagination ul li a.prev,
.woocommerce-page nav.woocommerce-pagination ul li a.next,
nav.woocommerce-pagination ul li a.prev,
nav.woocommerce-pagination ul li a.next,
.vc-pagination .page-numbers.prev,.vc-pagination .page-numbers.next{
  width:44px;min-width:44px;height:44px;padding:0;margin:0;
  font-size:0;line-height:0;text-indent:0;overflow:hidden;
  display:inline-grid;place-items:center;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312211b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5l-7 7 7 7'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:50% 50%;background-size:17px 17px}
.woocommerce nav.woocommerce-pagination ul li a.next,
.woocommerce-page nav.woocommerce-pagination ul li a.next,
nav.woocommerce-pagination ul li a.next,
.vc-pagination .page-numbers.next{transform:scaleX(-1)}
.woocommerce nav.woocommerce-pagination ul li a.next:hover,
nav.woocommerce-pagination ul li a.next:hover,
.vc-pagination .page-numbers.next:hover{transform:scaleX(-1) translateY(-1px)}
@media(max-width:480px){
  .woocommerce nav.woocommerce-pagination ul,nav.woocommerce-pagination ul{gap:4px;padding:5px}
  .woocommerce nav.woocommerce-pagination ul li a,
  .woocommerce nav.woocommerce-pagination ul li span,
  nav.woocommerce-pagination ul li a,nav.woocommerce-pagination ul li span,
  .vc-pagination .page-numbers{min-width:40px;height:40px;padding:0 10px;font-size:.88rem}
  .woocommerce nav.woocommerce-pagination ul li a.prev,
  .woocommerce nav.woocommerce-pagination ul li a.next,
  nav.woocommerce-pagination ul li a.prev,nav.woocommerce-pagination ul li a.next,
  .vc-pagination .page-numbers.prev,.vc-pagination .page-numbers.next{
    width:40px;min-width:40px;height:40px;background-size:16px 16px}
}

/* ============ Breakpoint refinements — 480 / 430 / 390 / 360 / 320 ============ */
/* Each step improves the layout rather than only shrinking it. Product card
   and pricing-table styling are deliberately left untouched. */
@media(max-width:480px){
  .vc-hero-stats{flex-wrap:wrap;row-gap:14px}
  .vc-hero-stats div{flex:1 1 33%;padding:0 12px}
  .vc-hero-ctas .vc-btn{flex:1 1 auto;justify-content:center;text-align:center}
  .vc-promo{padding:18px 16px}
  .vc-summary form.cart .single_add_to_cart_button{min-width:0;width:100%}
}
@media(max-width:430px){
  .vc-foot-about{font-size:.86rem}
  .vc-news-form{flex-wrap:wrap;gap:6px;border-radius:var(--radius-lg);padding:8px}
  .vc-news-form input{min-width:0;flex:1 1 100%}
  .vc-news-form button{flex:1 1 auto;min-height:44px}
}
@media(max-width:360px){
  .vc-wrap{padding-left:10px;padding-right:10px}
}
@media(max-width:320px){
  .vc-logo{font-size:1.05rem}
  .vc-cart-btn{padding:10px 12px;font-size:.82rem}
}
