/* ============================================================
   TRUVYA — Shared design system (all pages link this file)
   Aesthetic: VÉDNOIR botanical-noir · Structure: TITRU
   Icons: FontAwesome 6 (no emoji) · Type: Fraunces + Jost
   ============================================================ */

:root{
  --forest:#1E3A2B; --forest-2:#26462F; --moss:#3C5A3A;
  --sage:#7E8E5C; --sage-soft:#A7B383;
  --cream:#FBF7EF; --cream-2:#F4ECDD; --sand:#E8DBC4;
  --gold:#B8924B; --gold-2:#D2B373;
  --ink:#2A2419; --ink-soft:#6A6151; --line:#E4DAC6; --white:#fff;
  --radius:18px;
  --shadow:0 18px 50px -28px rgba(30,58,43,.45);
  --shadow-sm:0 8px 24px -16px rgba(30,58,43,.4);
  --container:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Jost',system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4,.serif{font-family:'Fraunces',Georgia,serif;font-weight:400;line-height:1.08;letter-spacing:-.01em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.fa-solid,.fa-regular,.fa-brands{line-height:1}
.container{max-width:var(--container);margin:0 auto;padding:0 28px}
.eyebrow{font-size:12px;letter-spacing:.32em;text-transform:uppercase;font-weight:500;color:var(--gold)}
.center{text-align:center}
section{position:relative}
.section-pad{padding:96px 0}
.head{max-width:660px;margin:0 auto 54px;text-align:center}
.head .eyebrow{margin-bottom:16px;display:inline-block}
.head h2{font-size:clamp(30px,3.6vw,46px);margin-bottom:14px}
.head p{color:var(--ink-soft);font-size:16.5px}
.sprig{display:inline-flex;align-items:center;gap:12px;color:var(--gold);justify-content:center}
.sprig::before,.sprig::after{content:"";height:1px;width:54px;background:linear-gradient(90deg,transparent,var(--gold))}
.sprig::after{background:linear-gradient(90deg,var(--gold),transparent)}
.stars{color:var(--gold);letter-spacing:2px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:'Jost';font-weight:500;font-size:15px;
  letter-spacing:.02em;padding:15px 30px;border-radius:100px;cursor:pointer;border:1.5px solid transparent;
  transition:.3s ease;white-space:nowrap;background:none}
.btn-primary{background:var(--forest);color:#F5F1E6}
.btn-primary:hover{background:var(--forest-2);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.btn-gold{background:var(--gold);color:#231d10}
.btn-gold:hover{background:var(--gold-2);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.btn-outline{background:transparent;border-color:var(--forest);color:var(--forest)}
.btn-outline:hover{background:var(--forest);color:#F5F1E6}
.btn-light{background:#F5F1E6;color:var(--forest)}
.btn-light:hover{transform:translateY(-2px);box-shadow:0 14px 30px -18px rgba(0,0,0,.6)}
.btn-block{width:100%;justify-content:center}
.btn .arw{transition:.3s;font-size:13px}
.btn:hover .arw{transform:translateX(4px)}

/* ---------- Image placeholders ---------- */
.ph{position:relative;border:1.5px dashed var(--gold);border-radius:var(--radius);overflow:hidden;
  background:radial-gradient(120% 90% at 80% 10%, rgba(167,179,131,.35), transparent 60%),
    linear-gradient(150deg,var(--cream-2),#E4E9D4);
  display:grid;place-items:center;text-align:center;color:var(--forest)}
.ph::before{content:"";position:absolute;inset:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 24 24' fill='none' stroke='%231E3A2B' stroke-width='.4' opacity='.18'><path d='M12 2C8 7 7 13 12 22 17 13 16 7 12 2Z'/><path d='M12 6v14'/></svg>") center/90px no-repeat}
.ph-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px}
.ph .cam{font-size:26px;opacity:.55;margin-bottom:2px}
.ph-id{font-family:'Jost';font-weight:600;font-size:13px;letter-spacing:.15em;background:var(--forest);color:#F5F1E6;
  padding:3px 10px;border-radius:100px}
.ph-lbl{font-family:'Jost';font-size:12.5px;color:var(--ink-soft);max-width:220px}
.ph.on-dark{border-color:var(--gold-2);background:linear-gradient(150deg,rgba(255,255,255,.07),rgba(255,255,255,.02));color:#EBE6D6}
.ph.on-dark .ph-id{background:var(--gold);color:#231d10}
.ph.on-dark .ph-lbl{color:#C9C4B2}
.ph.on-dark::before{filter:invert(1);opacity:.12}
/* real photo or video fills the placeholder box */
.ph img,.ph video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.ph.has-img{border:none}
.ph.has-img::before{display:none}
.ph.has-img .ph-inner{display:none}
.qbub{z-index:2}

/* ---------- Forms (shared) ---------- */
.field{margin-bottom:18px}
.field label{display:block;font-size:13px;font-weight:500;letter-spacing:.04em;margin-bottom:8px;color:var(--ink)}
.input,select.input,textarea.input{width:100%;padding:14px 18px;border:1.5px solid var(--line);border-radius:12px;
  font-family:'Jost';font-size:15px;background:var(--white);color:var(--ink);transition:.2s}
.input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,146,75,.12)}
textarea.input{resize:vertical;min-height:130px}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.input-ico{position:relative}
.input-ico i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--ink-soft);font-size:14px}
.input-ico .input{padding-left:42px}
.checkrow{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-soft)}
.checkrow input{width:17px;height:17px;accent-color:var(--forest)}

/* ---------- Badges / chips ---------- */
.badge{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:100px}
.badge-gold{background:var(--gold);color:#231d10}
.badge-sand{background:var(--sand);color:var(--moss)}
.badge-moss{background:var(--moss);color:#F1EEDF}
.badge-out{border:1px solid var(--line);color:var(--ink-soft)}

/* ---------- Accordion ---------- */
.acc-item{border-top:1px solid var(--line)}
.acc-item:last-child{border-bottom:1px solid var(--line)}
.acc-q{display:flex;justify-content:space-between;align-items:center;padding:18px 2px;cursor:pointer;
  font-family:'Fraunces';font-size:18px;color:var(--forest)}
.acc-q .pm{font-family:'Jost';font-size:22px;color:var(--gold);transition:.3s}
.acc-item.open .pm{transform:rotate(45deg)}
.acc-a{max-height:0;overflow:hidden;transition:max-height .4s ease;font-size:14.5px;color:var(--ink-soft)}
.acc-a div{padding:0 2px 20px}

/* ---------- Qty stepper ---------- */
.qty{display:flex;align-items:center;border:1.5px solid var(--forest);border-radius:100px;overflow:hidden}
.qty button{width:42px;height:50px;background:none;border:none;font-size:18px;cursor:pointer;color:var(--forest)}
.qty span{width:34px;text-align:center;font-weight:600}
.qty.sm button{height:40px;width:34px;font-size:15px}

/* =========================================================
   TICKER
   ========================================================= */
.ticker{background:var(--forest);color:#EBE6D6;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;
  padding:9px 0;overflow:hidden;white-space:nowrap}
.ticker .track{display:inline-flex;animation:scroll 32s linear infinite}
.ticker span{padding:0 26px;display:inline-flex;align-items:center;gap:10px}
.ticker i{color:var(--gold-2);font-size:9px}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* =========================================================
   HEADER
   ========================================================= */
header{position:sticky;top:0;z-index:50;background:rgba(251,247,239,.86);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.logo{display:flex;flex-direction:column;line-height:1}
.logo .word{font-family:'Fraunces';font-size:27px;letter-spacing:.06em;color:var(--forest);font-weight:500}
.logo .sub{font-size:9.5px;letter-spacing:.42em;text-transform:uppercase;color:var(--gold);margin-top:3px;padding-left:2px}
.menu{display:flex;gap:34px;font-size:14.5px;letter-spacing:.02em}
.menu a{position:relative;padding:4px 0;color:var(--ink)}
.menu a::after{content:"";position:absolute;left:0;bottom:-2px;height:1.5px;width:0;background:var(--gold);transition:.3s}
.menu a:hover::after,.menu a.active::after{width:100%}
.menu a.active{color:var(--forest)}
.nav-ico{display:flex;gap:22px;align-items:center}
.nav-ico a{color:var(--ink);font-size:18px;cursor:pointer;transition:.2s;position:relative}
.nav-ico a:hover{color:var(--gold)}
.cart-badge{position:absolute;top:-8px;right:-10px;background:var(--gold);color:#231d10;font-family:'Jost';
  font-size:10px;font-weight:600;width:16px;height:16px;border-radius:50%;display:grid;place-items:center}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer}
.burger span{width:24px;height:2px;background:var(--ink)}

/* =========================================================
   BREADCRUMB + PAGE BANNER (sub pages)
   ========================================================= */
.breadcrumb{font-size:13px;color:var(--ink-soft);padding:18px 0;letter-spacing:.02em}
.breadcrumb a:hover{color:var(--gold)}
.breadcrumb i{font-size:9px;margin:0 9px;opacity:.6}
.page-banner{background:radial-gradient(70% 100% at 50% 0%,rgba(167,179,131,.2),transparent 60%),var(--cream-2);
  text-align:center;padding:54px 0 58px;border-bottom:1px solid var(--line)}
.page-banner .eyebrow{display:inline-block;margin-bottom:14px}
.page-banner h1{font-size:clamp(34px,4.6vw,54px);margin-bottom:12px}
.page-banner p{color:var(--ink-soft);max-width:540px;margin:0 auto;font-size:16px}
.page-banner .crumb{margin-top:16px;font-size:13px;color:var(--ink-soft)}
.page-banner .crumb a:hover{color:var(--gold)}
.page-banner .crumb i{font-size:9px;margin:0 8px;opacity:.6}

/* =========================================================
   CARD (generic surface)
   ========================================================= */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px}

/* =========================================================
   FOOTER
   ========================================================= */
footer{background:var(--forest);color:#CFCBBB;padding:72px 0 0}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.4fr;gap:40px;padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.1)}
.foot-brand .word{font-family:'Fraunces';font-size:30px;color:#F4F0E4;letter-spacing:.06em}
.foot-brand .sub{font-size:9.5px;letter-spacing:.42em;text-transform:uppercase;color:var(--gold-2);margin:4px 0 18px}
.foot-brand p{font-size:14px;max-width:280px;margin-bottom:18px}
.foot-contact{font-size:13.5px;line-height:2}
.foot-contact i{color:var(--gold-2);width:18px;text-align:center;margin-right:8px}
.foot-contact a:hover{color:var(--gold-2)}
.foot-col h4{font-family:'Jost';font-weight:600;font-size:13px;letter-spacing:.16em;text-transform:uppercase;
  color:#F4F0E4;margin-bottom:18px}
.foot-col a{display:block;font-size:14px;padding:6px 0;transition:.2s}
.foot-col a:hover{color:var(--gold-2);padding-left:4px}
.foot-news p{font-size:14px;margin-bottom:14px}
.foot-news .nf{display:flex;border:1px solid rgba(255,255,255,.2);border-radius:100px;overflow:hidden;margin-bottom:20px}
.foot-news .nf input{flex:1;background:none;border:none;padding:12px 18px;color:#F4F0E4;font-family:'Jost';font-size:14px}
.foot-news .nf input::placeholder{color:#9E9A88}
.foot-news .nf button{background:var(--gold);border:none;padding:0 20px;cursor:pointer;color:#231d10;font-size:15px}
.socials{display:flex;gap:12px}
.socials a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.2);display:grid;
  place-items:center;color:#F4F0E4;font-size:16px}
.socials a:hover{background:var(--gold);border-color:var(--gold);color:#231d10}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding:24px 0;font-size:12.5px;
  color:#9E9A88;flex-wrap:wrap;gap:14px}
.pay{display:flex;gap:8px}
.pay span{background:rgba(255,255,255,.1);padding:5px 10px;border-radius:6px;font-size:11px;letter-spacing:.05em}

/* =========================================================
   TRUST STRIP (shared)
   ========================================================= */
.trust{background:var(--forest);color:#EDE8D8;padding:24px 0}
.trust .container{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:12px;font-size:14.5px;letter-spacing:.03em}
.trust-item i{color:var(--gold-2);font-size:20px;flex:none;width:24px;text-align:center}

/* =========================================================
   SHOP BY CONCERN (shared)
   ========================================================= */
.concern-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.concern{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.35s;cursor:pointer}
.concern:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.concern .ph{border:none;border-radius:0;aspect-ratio:1/1}
.concern .c-body{padding:20px}
.concern h3{font-size:21px;margin-bottom:6px}
.concern p{font-size:13.5px;color:var(--ink-soft);margin-bottom:12px;min-height:38px}
.concern .lnk{font-size:13px;font-weight:600;color:var(--moss);letter-spacing:.04em;display:inline-flex;gap:6px;align-items:center}
.concern:hover .lnk{color:var(--gold)}

/* =========================================================
   PRODUCT DETAIL (shared: home section + product page)
   ========================================================= */
.pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.gallery{position:sticky;top:96px}
.gallery .main{aspect-ratio:4/4.6;margin-bottom:14px}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.thumbs .ph{aspect-ratio:1/1;cursor:pointer;border-style:solid;border-width:2px;border-color:transparent;outline:1.5px dashed var(--gold);outline-offset:-1.5px}
.thumbs .ph.active{border-color:var(--gold)}
.p-cat{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.p-info h1,.p-info h2{font-size:clamp(30px,3.6vw,44px);margin-bottom:14px}
.p-rate{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-soft);margin-bottom:22px}
.p-rate a{text-decoration:underline}
.p-price{display:flex;align-items:baseline;gap:14px;margin-bottom:8px}
.p-price .now{font-family:'Fraunces';font-size:38px;color:var(--forest)}
.p-price .was{font-size:20px;text-decoration:line-through;color:var(--ink-soft)}
.p-price .off{background:var(--moss);color:#F1EEDF;font-size:12px;font-weight:600;letter-spacing:.08em;padding:5px 12px;border-radius:100px}
.p-tax{font-size:13px;color:var(--ink-soft);margin-bottom:26px}
.p-desc{font-size:16px;color:var(--ink-soft);margin-bottom:26px;padding-bottom:26px;border-bottom:1px solid var(--line)}
.benefits{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;margin-bottom:30px}
.benefit{display:flex;gap:11px;align-items:flex-start;font-size:14.5px}
.benefit .chk{flex:none;width:22px;height:22px;border-radius:50%;background:var(--sand);color:var(--moss);display:grid;place-items:center;font-size:11px;margin-top:1px}
.buy-row{display:flex;gap:14px;align-items:center;margin-bottom:18px}
.buy-row .btn{flex:1;justify-content:center;padding:16px}
.p-sample-note{display:flex;gap:12px;align-items:center;background:var(--white);border:1px dashed var(--gold);border-radius:14px;padding:14px 18px;font-size:14px;margin-bottom:28px}
.p-sample-note .gift{font-size:20px;color:var(--gold);flex:none}
.p-sample-note a{color:var(--moss);font-weight:600;text-decoration:underline}
.p-trust{display:flex;gap:24px;margin-top:28px;flex-wrap:wrap}
.p-trust span{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft)}
.p-trust i{color:var(--moss);font-size:15px}

/* =========================================================
   REVIEWS (shared)
   ========================================================= */
.rev-top{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:48px;flex-wrap:wrap}
.rev-score{display:flex;align-items:center;gap:18px}
.rev-score .big{font-family:'Fraunces';font-size:60px;color:var(--forest);line-height:1}
.rev-score .meta .stars{font-size:18px}
.rev-score .meta p{font-size:13.5px;color:var(--ink-soft)}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rev-card{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:30px}
.rev-card .stars{font-size:15px;margin-bottom:14px}
.rev-card .quote{font-family:'Fraunces';font-size:18.5px;color:var(--ink);margin-bottom:20px;line-height:1.4}
.rev-card .who{display:flex;align-items:center;gap:12px}
.rev-card .av{width:42px;height:42px;border-radius:50%;background:var(--sand);display:grid;place-items:center;font-family:'Fraunces';color:var(--moss);font-size:17px}
.rev-card .who b{font-size:14px;display:block}
.rev-card .who small{font-size:12px;color:var(--ink-soft)}

@media(max-width:980px){
  .pd-grid{grid-template-columns:1fr;gap:36px}
  .gallery{position:static}
  .concern-grid{grid-template-columns:repeat(2,1fr)}
  .rev-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .concern-grid{grid-template-columns:1fr 1fr}
  .benefits{grid-template-columns:1fr}
  .trust .container{justify-content:flex-start;gap:14px 26px}
  .trust-item{font-size:13px}
}

/* =========================================================
   INGREDIENTS + RITUAL (shared across home/product/about)
   ========================================================= */
.ing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ing-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:30px;transition:.35s}
.ing-card:hover{box-shadow:var(--shadow);transform:translateY(-4px)}
.ing-card .ic{width:58px;height:58px;color:var(--moss);margin-bottom:18px}
.ing-card h3{font-size:23px;margin-bottom:4px}
.ing-card .tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;display:block}
.ing-card p{font-size:14.5px;color:var(--ink-soft)}
.ritual-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.step{text-align:center;position:relative}
.step .num{width:74px;height:74px;margin:0 auto 20px;border-radius:50%;border:1.5px solid var(--gold);display:grid;place-items:center;font-family:'Fraunces';font-size:28px;color:var(--forest);background:var(--white)}
.step h3{font-size:21px;margin-bottom:8px}
.step p{font-size:14px;color:var(--ink-soft);max-width:220px;margin:0 auto}
.ritual-grid .step:not(:last-child)::after{content:"";position:absolute;top:37px;right:-12px;width:24px;height:1px;background:var(--gold);opacity:.5}

/* Promo / CTA band (forest, reusable) */
.cta-band{background:radial-gradient(90% 120% at 100% 0%, rgba(184,146,75,.28), transparent 55%),var(--forest);
  color:#F1EDDF;overflow:hidden}
.cta-band .container{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;min-height:420px}
.cta-band .copy{padding:64px 0}
.cta-band .eyebrow{color:var(--gold-2);margin-bottom:18px;display:inline-block}
.cta-band h2{font-size:clamp(30px,4vw,52px);margin-bottom:18px;color:#F6F2E6}
.cta-band h2 em{font-style:italic;color:var(--gold-2)}
.cta-band p{font-size:17px;color:#D7D2C0;max-width:440px;margin-bottom:28px}
.cta-band .mini{font-size:13px;color:#A9A795;margin-top:16px}
.cta-band .visual{position:relative;align-self:stretch;min-height:420px}
.cta-band .visual .ph{position:absolute;inset:40px 0}

@media(max-width:980px){
  .ing-grid{grid-template-columns:1fr 1fr}
  .ritual-grid{grid-template-columns:1fr 1fr;gap:40px 24px}
  .ritual-grid .step::after{display:none}
  .cta-band .container{grid-template-columns:1fr;gap:0}
  .cta-band .visual{min-height:300px}
}
@media(max-width:560px){.ing-grid{grid-template-columns:1fr}}

/* filled product thumbnails: clean ring instead of dashed outline */
.thumbs .ph.has-img{outline:none;border:2px solid transparent}
.thumbs .ph.has-img.active{border-color:var(--gold)}

/* =========================================================
   MOBILE MEGA MENU (built by main.js, used < 980px)
   ========================================================= */
.mega-overlay{position:fixed;inset:0;background:rgba(20,38,28,.45);backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;transition:.3s;z-index:90}
.mega-overlay.open{opacity:1;visibility:visible}
.mega{position:fixed;top:0;right:0;height:100dvh;width:min(430px,100%);background:var(--cream);z-index:100;
  transform:translateX(100%);transition:transform .38s cubic-bezier(.2,.7,.2,1);display:flex;flex-direction:column;
  box-shadow:-24px 0 70px -30px rgba(0,0,0,.55);overflow-y:auto;overscroll-behavior:contain}
.mega.open{transform:none}
.mega-top{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--cream);z-index:2}
.mega-top .logo .word{font-size:23px}
.mega-close{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--white);
  font-size:18px;color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:.2s}
.mega-close:hover{background:var(--forest);color:var(--cream);border-color:var(--forest)}
.mega-links{padding:10px 22px 4px;display:flex;flex-direction:column}
.mega-links a{font-family:'Fraunces';font-size:25px;color:var(--forest);padding:15px 0;border-bottom:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;transition:.2s}
.mega-links a:active,.mega-links a:hover{color:var(--gold);padding-left:6px}
.mega-links a i{font-size:13px;color:var(--gold);opacity:.7}
.mega-cta{margin:18px 22px 6px;justify-content:center}
.mega-quick{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 22px 4px}
.mega-quick a{display:flex;align-items:center;justify-content:center;gap:9px;padding:14px;border:1px solid var(--line);
  border-radius:12px;font-size:14px;font-weight:500;color:var(--ink);background:var(--white)}
.mega-quick a:active{background:var(--cream-2)}
.mega-quick i{color:var(--moss)}
.mega-foot{margin-top:auto;padding:22px;background:var(--cream-2);border-top:1px solid var(--line)}
.mega-contact{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.mega-contact a{display:flex;align-items:center;gap:11px;font-size:13.5px;color:var(--ink-soft)}
.mega-contact i{color:var(--gold);width:16px;text-align:center}
.mega-social{display:flex;gap:11px}
.mega-social a{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;
  color:var(--forest);font-size:15px;background:var(--white)}
.mega-social a:active{background:var(--gold);color:#231d10}
body.menu-open{overflow:hidden}

/* =========================================================
   MOBILE POLISH — compact spacing, bigger taps, 2-up cards
   ========================================================= */
@media(max-width:980px){
  .section-pad{padding:60px 0}
  .head{margin-bottom:38px}
  .breadcrumb{padding:14px 0;font-size:12.5px}
  .page-banner{padding:40px 0 42px}
  .pd-grid{gap:30px}
}
@media(max-width:600px){
  .container{padding:0 16px}
  .section-pad{padding:46px 0}
  .head{margin-bottom:30px}
  .head h2{font-size:27px}
  .head p{font-size:14.5px}
  .eyebrow{font-size:11px;letter-spacing:.24em}
  /* trust strip → tidy 2×2 */
  .trust .container{display:grid;grid-template-columns:1fr 1fr;gap:16px 14px}
  .trust-item{font-size:12.5px;gap:9px}
  .trust-item i{font-size:17px}
  /* square-card grids → 2 in a row */
  .concern-grid{grid-template-columns:1fr 1fr;gap:12px}
  .concern .c-body{padding:14px}
  .concern h3{font-size:17px}
  .concern p{font-size:12px;min-height:0;margin-bottom:8px}
  .concern .lnk{font-size:11.5px}
  .ing-grid{grid-template-columns:1fr 1fr;gap:12px}
  .ing-card{padding:18px}
  .ing-card .ic{width:42px;height:42px;margin-bottom:12px}
  .ing-card h3{font-size:18px}
  .ing-card .tag{font-size:10px;margin-bottom:8px}
  .ing-card p{font-size:12.5px}
  /* product detail */
  .p-info h1,.p-info h2{font-size:26px}
  .p-price .now{font-size:30px}
  .benefits{grid-template-columns:1fr;gap:10px}
  .buy-row{flex-wrap:wrap}
  .buy-row .btn{flex:1 1 100%}
  /* reviews stack, tighter */
  .rev-card{padding:22px}
  .rev-card .quote{font-size:16.5px}
  .rev-top{margin-bottom:28px}
  .rev-score .big{font-size:48px}
  /* ritual 2-up */
  .ritual-grid{grid-template-columns:1fr 1fr;gap:30px 16px}
  .step .num{width:60px;height:60px;font-size:23px;margin-bottom:14px}
  .step h3{font-size:18px}
  .step p{font-size:13px}
  /* cta band */
  .cta-band .container{min-height:0}
  .cta-band .copy{padding:46px 0 10px}
  .cta-band .visual{min-height:240px}
  .cta-band h2{font-size:32px}
  .cta-band p{font-size:15px}
  /* buttons easier to tap */
  .btn{padding:14px 24px;font-size:14.5px}
  /* footer */
  footer{padding:50px 0 0}
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px 20px}
  .foot-brand{grid-column:1/-1}
  .foot-news{grid-column:1/-1}
}
@media(max-width:380px){
  .concern-grid,.ing-grid{grid-template-columns:1fr 1fr;gap:10px}
  .foot-grid{grid-template-columns:1fr}
}

/* =========================================================
   REVEAL
   ========================================================= */
.reveal{opacity:0;transform:translateY(28px);transition:.8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* =========================================================
   RESPONSIVE (shared)
   ========================================================= */
@media(max-width:980px){
  .menu,.nav-ico .desk{display:none}
  .burger{display:flex}
  .row-2{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:560px){
  .container{padding:0 18px}
  .foot-grid{grid-template-columns:1fr}
  .section-pad{padding:70px 0}
}

/* ============================================================
   v2 — Buy Now, quantity stepper, floating buttons, motion
   ============================================================ */
.buy-now{width:100%;justify-content:center;padding:16px;margin-top:14px}

/* WooCommerce quantity → themed − / + stepper */
.tv-qty{display:inline-flex;align-items:center;border:1.5px solid var(--forest);border-radius:100px;overflow:hidden;background:var(--white);height:52px}
.tv-qty input.qty{width:46px;height:100%;border:none !important;background:transparent !important;text-align:center;font-family:'Jost';font-weight:600;font-size:15px;color:var(--ink);padding:0 !important;min-height:0 !important;box-shadow:none !important;-moz-appearance:textfield;appearance:textfield}
.tv-qty input.qty::-webkit-outer-spin-button,.tv-qty input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.tv-qty .tv-q{width:44px;height:100%;border:none;background:transparent;color:var(--forest);font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.2s}
.tv-qty .tv-q:hover{background:var(--cream-2);color:var(--gold)}

/* Floating WhatsApp + back-to-top */
.tv-float{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;flex-direction:column;gap:12px;align-items:center}
.tv-wa{width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;font-size:27px;box-shadow:0 10px 26px -8px rgba(37,211,102,.7);transition:.25s;animation:tvPulse 2.6s ease-in-out infinite}
.tv-wa:hover{transform:scale(1.08);color:#fff}
.tv-top{width:46px;height:46px;border-radius:50%;background:var(--forest);color:#F5F1E6;border:none;cursor:pointer;display:grid;place-items:center;font-size:16px;box-shadow:var(--shadow-sm);opacity:0;visibility:hidden;transform:translateY(10px);transition:.3s}
.tv-top.show{opacity:1;visibility:visible;transform:none}
.tv-top:hover{background:var(--forest-2)}
@keyframes tvPulse{0%,100%{box-shadow:0 10px 26px -8px rgba(37,211,102,.65)}50%{box-shadow:0 10px 30px -6px rgba(37,211,102,.95),0 0 0 10px rgba(37,211,102,.10)}}
@media(max-width:600px){.tv-float{right:12px;bottom:12px}.tv-wa{width:50px;height:50px;font-size:24px}}

/* Footer credit */
.foot-credit{color:#9E9A88}
.foot-credit a,.foot-credit strong{color:var(--gold-2);font-weight:600;text-decoration:none}
.foot-credit a:hover{color:#F4F0E4}

/* Gentle motion */
@keyframes tvBadgeFloat{0%,100%{transform:rotate(8deg) translateY(0)}50%{transform:rotate(8deg) translateY(-7px)}}
.free-badge{animation:tvBadgeFloat 3.4s ease-in-out infinite}
@keyframes tvTagFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.float-tag{animation:tvTagFloat 4s ease-in-out infinite}
.float-tag.ft-2{animation-delay:.6s}
.float-tag.ft-3{animation-delay:1.2s}
.ph img,.shot img,.gallery .main img{animation:tvFade .6s ease both}
@keyframes tvFade{from{opacity:0;transform:scale(1.02)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.free-badge,.float-tag,.tv-wa{animation:none}.ph img,.shot img{animation:none}}

/* ============================================================
   v2.1 — MOBILE FIXES (no horizontal scroll, cart, cut images)
   ============================================================ */
/* Hard stop horizontal scroll without breaking sticky header (clip ≠ scroll container) */
html{overflow-x:clip}
body{overflow-x:hidden}
img,iframe,video,svg{max-width:100%}
.editorial,.cta-band,.sample,.results,.trust,.reels,.gram{overflow:hidden}
.container{max-width:100%}

/* Risk-Free / CTA image: show FULL on mobile instead of being clipped by absolute inset */
@media(max-width:980px){
  .sample .container,.cta-band .container{min-height:0}
  .sample-visual,.cta-band .visual{min-height:0;align-self:auto}
  .sample-visual .ph,.cta-band .visual .ph{position:static;inset:auto;width:100%;aspect-ratio:1/1;margin:0 auto}
}
@media(max-width:600px){
  .sample-visual .ph,.cta-band .visual .ph{aspect-ratio:4/3}
}

/* Editorial "Made With Intention" — keep within viewport */
.editorial .ph{max-width:100%}
.editorial .overlay .box{max-width:min(480px,88%)}

/* Responsive WooCommerce cart — stack the table into cards on phones */
@media(max-width:768px){
  .woocommerce-cart .woocommerce{overflow-x:hidden}
  .woocommerce-cart table.cart,.woocommerce-cart table.cart tbody{display:block;width:100%}
  .woocommerce-cart table.cart thead{display:none}
  .woocommerce-cart table.cart tr.cart_item{display:grid;grid-template-columns:84px 1fr;gap:6px 14px;align-items:center;
    border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:14px;position:relative;background:var(--white)}
  .woocommerce-cart table.cart td{display:block;border:none !important;padding:2px 0;text-align:left;width:auto}
  .woocommerce-cart table.cart td.product-thumbnail{grid-row:1 / span 4;align-self:start}
  .woocommerce-cart table.cart td.product-thumbnail img{width:84px;border-radius:10px}
  .woocommerce-cart table.cart td.product-remove{position:absolute;top:10px;right:12px}
  .woocommerce-cart table.cart td::before{content:attr(data-title) ": ";font-weight:600;color:var(--ink-soft);font-size:12px}
  .woocommerce-cart table.cart td.product-thumbnail::before,.woocommerce-cart table.cart td.product-remove::before{display:none}
  .woocommerce-cart table.cart td.actions{grid-column:1 / -1;display:flex;flex-direction:column;gap:10px;margin-top:8px}
  .woocommerce-cart table.cart td.actions .coupon{display:flex;gap:8px}
  .woocommerce .cart-collaterals,.woocommerce-cart .cart-collaterals,.woocommerce-cart .cart-collaterals .cart_totals{width:100% !important;float:none}
  .woocommerce #content table.cart td.actions .input-text+.button,.woocommerce table.cart td.actions .button{width:100%}
}

/* ============================================================
   v2.2 — cart overlap, compact mega menu, risk-free gap, product actions
   ============================================================ */
/* CART: clean stacked label|value rows (fixes Subtotal overlapping Quantity) */
@media(max-width:768px){
  .woocommerce-cart table.cart tr.cart_item{display:block;grid-template-columns:none !important;padding:14px 16px}
  .woocommerce-cart table.cart tr.cart_item td{display:flex !important;align-items:center;justify-content:space-between;gap:14px;padding:9px 0 !important;text-align:right;width:auto !important}
  .woocommerce-cart table.cart tr.cart_item td+td{border-top:1px solid var(--line) !important}
  .woocommerce-cart table.cart td::before{content:attr(data-title);font-weight:600;color:var(--ink);font-size:13px;text-align:left;flex:0 0 auto}
  .woocommerce-cart table.cart td.product-thumbnail{grid-row:auto;justify-content:flex-start;border-top:none !important}
  .woocommerce-cart table.cart td.product-thumbnail::before{display:none}
  .woocommerce-cart table.cart td.product-thumbnail img{width:72px}
  .woocommerce-cart table.cart td.product-name{display:block !important;text-align:left}
  .woocommerce-cart table.cart td.product-name::before{display:none}
  .woocommerce-cart table.cart td.product-quantity .tv-qty{margin-left:auto}
  .woocommerce-cart table.cart td.actions{display:block !important;text-align:left;border-top:none !important}
  .woocommerce-cart table.cart td.actions::before{display:none}
}

/* MEGA MENU: smaller items so everything fits one screen (no scroll) */
.mega-top{padding:14px 22px}
.mega-links{padding:6px 22px 2px}
.mega-links a{font-size:18px;padding:10px 0}
.mega-cta{margin:12px 22px 4px;padding:13px 24px}
.mega-quick{padding:8px 22px 2px;gap:10px}
.mega-quick a{padding:11px;font-size:13.5px}
.mega-foot{padding:14px 22px}
.mega-contact{gap:6px;margin-bottom:10px}
.mega-contact a{font-size:12.5px}
.mega-social a{width:38px;height:38px;font-size:14px}
@media(max-height:710px){
  .mega-links a{font-size:16px;padding:7px 0}
  .mega-cta{margin:8px 22px 4px;padding:11px 24px}
  .mega-foot{padding:10px 22px}
  .mega-contact{margin-bottom:7px}
  .mega-top{padding:12px 22px}
}

/* RISK-FREE / CTA: kill the big gap + show the FULL image (no crop) */
@media(max-width:980px){
  .sample .container,.cta-band .container{gap:4px}
  .sample-copy{padding:42px 0 0}
  .cta-band .copy{padding:46px 0 0}
  .sample-visual,.cta-band .visual{padding-bottom:42px;min-height:0}
  .sample-visual .ph,.cta-band .visual .ph{position:static;inset:auto;width:100%;aspect-ratio:1/1;margin:0}
  .sample-visual .ph img,.cta-band .visual .ph img{object-fit:contain}
}

/* PRODUCT actions: qty + wishlist + add-to-cart in one row, no collision */
.pdp-cart form.cart{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:6px 0 14px}
.pdp-cart form.cart .quantity{flex:0 0 auto}
.pdp-cart form.cart .single_add_to_cart_button{flex:1 1 150px;margin:0 !important}
.tv-wl-inline{flex:0 0 auto;margin:0 !important}
.tv-wl-inline a,.tv-wl-inline .tinvwl_add_to_wishlist_button{display:inline-flex !important;align-items:center;gap:8px;height:52px;padding:0 18px !important;border:1.5px solid var(--line) !important;border-radius:100px !important;background:var(--white) !important;color:var(--forest) !important;font-family:'Jost' !important;font-size:14px !important;white-space:nowrap;box-shadow:none !important}
.tv-wl-inline .tinvwl-icon-heart,.tv-wl-inline i,.tv-wl-inline svg{color:var(--gold)}
@media(max-width:560px){
  .pdp-cart form.cart .quantity{order:1}
  .tv-wl-inline{order:2;flex:1 1 auto;justify-content:center}
  .tv-wl-inline a{justify-content:center;width:100%}
  .pdp-cart form.cart .single_add_to_cart_button{order:3;flex:1 1 100%}
}

/* ============================================================
   v2.3 — MEGA MENU fits one screen (no scroll), tighter everywhere
   ============================================================ */
.mega-top{padding:11px 20px}
.mega-top .logo .word{font-size:20px}
.mega-top .logo .sub{font-size:8.5px}
.mega-links{padding:4px 20px 0}
.mega-links a{font-size:16px;padding:8px 0}
.mega-links a i{font-size:11px}
.mega-cta{margin:10px 20px 2px;padding:11px 22px;font-size:14px}
.mega-quick{padding:8px 20px 0;gap:8px}
.mega-quick a{padding:9px;font-size:13px}
.mega-foot{padding:10px 20px 14px}
.mega-contact{gap:5px;margin-bottom:9px}
.mega-contact a{font-size:12px}
.mega-social{gap:9px}
.mega-social a{width:34px;height:34px;font-size:13px}
@media(max-height:760px){
  .mega-top{padding:9px 20px}
  .mega-links a{font-size:15px;padding:6px 0}
  .mega-cta{margin:7px 20px 2px;padding:10px 22px}
  .mega-quick{padding:6px 20px 0}
  .mega-quick a{padding:8px}
  .mega-foot{padding:8px 20px 12px}
  .mega-contact{margin-bottom:6px;gap:4px}
}
@media(max-height:640px){
  .mega-top{padding:7px 20px}
  .mega-links a{font-size:14px;padding:5px 0}
  .mega-cta{padding:9px 22px;margin:5px 20px 2px}
  .mega-quick a{padding:7px;font-size:12.5px}
  .mega-foot{padding:7px 20px 10px}
  .mega-contact a{font-size:11px}
  .mega-social a{width:32px;height:32px}
}

/* ============================================================
   v2.4 — buy-now spacing, policy padding, CTA image, chatbot
   ============================================================ */
.buy-row{margin-bottom:10px !important}
.pdp-cart form.cart{margin:6px 0 8px !important}
.buy-now{margin-top:8px !important;margin-bottom:24px !important}

@media(max-width:980px){
  .cta-band .visual .ph{position:static !important;inset:auto !important;width:100%;aspect-ratio:4/3;margin:0;border-radius:18px;overflow:hidden}
  .cta-band .visual .ph img{object-fit:cover;object-position:center}
  .cta-band .visual{padding:0 0 40px;min-height:0}
  .cta-band .copy{padding:46px 0 0}
  .cta-band .container{gap:6px}
}

/* Policy / generic pages — readable content (container keeps the side padding) */
.page-default .entry-content{font-size:15.5px;color:var(--ink-soft);line-height:1.85}
.page-default .entry-content h2{font-family:'Fraunces';color:var(--forest);font-size:23px;margin:28px 0 10px;font-weight:400}
.page-default .entry-content p{margin:0 0 14px}
.page-default .entry-content ul{margin:0 0 14px 20px}
.page-default .entry-content a{color:var(--moss);text-decoration:underline}
.tv-form-ok{background:#E7EFE0;border:1px solid #b9d3a8;color:#3F6B33;padding:14px 18px;border-radius:12px;margin-bottom:20px;font-size:14.5px}
.tv-form-err{background:#f6e3dd;border:1px solid #e3b3a3;color:#a3462f;padding:14px 18px;border-radius:12px;margin-bottom:20px;font-size:14.5px}

/* ---- Chatbot widget ---- */
.tv-chat-btn{width:60px;height:60px;border-radius:50%;background:var(--forest);color:#F5F1E6;border:none;cursor:pointer;display:grid;place-items:center;font-size:25px;box-shadow:0 12px 28px -8px rgba(30,58,43,.6);transition:.25s;position:relative}
.tv-chat-btn:hover{background:var(--forest-2);transform:scale(1.06);color:#F5F1E6}
.tv-chat-btn .tv-chat-dot{position:absolute;top:2px;right:2px;width:13px;height:13px;border-radius:50%;background:var(--gold);border:2px solid var(--cream)}
.tv-chat-panel{position:fixed;right:18px;bottom:88px;width:min(360px,calc(100vw - 28px));height:min(540px,calc(100vh - 120px));background:var(--cream);border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 70px -25px rgba(30,58,43,.6);display:flex;flex-direction:column;overflow:hidden;z-index:81;opacity:0;visibility:hidden;transform:translateY(16px) scale(.98);transition:.28s cubic-bezier(.2,.7,.2,1);transform-origin:bottom right}
.tv-chat-panel.open{opacity:1;visibility:visible;transform:none}
.tv-chat-head{background:var(--forest);color:#F5F1E6;padding:15px 18px;display:flex;align-items:center;gap:12px}
.tv-chat-head .ava{width:38px;height:38px;border-radius:50%;background:var(--gold);color:#231d10;display:grid;place-items:center;font-size:17px;flex:none}
.tv-chat-head b{font-family:'Fraunces';font-size:17px;display:block;line-height:1.1}
.tv-chat-head small{font-size:11.5px;color:#C9D3BE}
.tv-chat-head .x{margin-left:auto;background:none;border:none;color:#F5F1E6;font-size:22px;cursor:pointer;line-height:1}
.tv-chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.tv-msg{max-width:86%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.5}
.tv-msg.bot{background:var(--white);border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start;color:var(--ink)}
.tv-msg.user{background:var(--forest);color:#F5F1E6;border-bottom-right-radius:4px;align-self:flex-end}
.tv-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 10px}
.tv-chip{background:var(--white);border:1.5px solid var(--sage-soft);color:var(--forest);border-radius:100px;padding:8px 13px;font-size:12.5px;font-family:'Jost';cursor:pointer;transition:.2s}
.tv-chip:hover{background:var(--forest);color:#F5F1E6;border-color:var(--forest)}
.tv-chat-foot{padding:10px 14px;border-top:1px solid var(--line);background:var(--cream-2)}
.tv-chat-wa{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;background:#25D366;color:#fff;border-radius:100px;padding:11px;font-size:13.5px;font-weight:500;font-family:'Jost'}
.tv-chat-wa:hover{filter:brightness(1.05);color:#fff}
@media(max-width:600px){.tv-chat-panel{right:12px;bottom:78px}.tv-chat-btn{width:54px;height:54px;font-size:22px}}

/* ============================================================
   v2.5 — "A Refined Herbal Hair Ritual" + "The Blend" (vednoir-style)
   ============================================================ */
.herbal{position:relative;background:var(--cream);overflow:hidden;text-align:center}
.herbal .inner{position:relative;max-width:740px;margin:0 auto;z-index:2}
.herbal h2{font-size:clamp(30px,3.8vw,46px);margin:14px 0 16px}
.herbal h2 em{font-style:italic;color:var(--moss)}
.herbal p{color:var(--ink-soft);font-size:16.5px;line-height:1.85;margin-bottom:14px}
.herbal .hero-shot{position:relative;z-index:2;margin:36px auto 0;max-width:920px;aspect-ratio:21/9;border-radius:22px;overflow:hidden;background:var(--cream-2)}
.herbal .hero-shot img{width:100%;height:100%;object-fit:cover}
.leaf-bg{position:absolute;color:var(--forest);opacity:.06;pointer-events:none;z-index:1}
.leaf-bg.l1{top:-44px;left:-54px;width:260px;transform:rotate(-18deg)}
.leaf-bg.l2{bottom:-54px;right:-44px;width:300px;transform:rotate(150deg)}
.leaf-bg.l3{top:38%;right:5%;width:120px;transform:rotate(40deg);opacity:.05}

.the-blend{position:relative;background:var(--cream-2);overflow:hidden}
.blend-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:22px;position:relative;z-index:2}
.blend-item{text-align:center}
.blend-orb{position:relative;width:120px;height:120px;margin:0 auto 14px;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 34% 28%,#fff,#e6ecd6);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:.35s}
.blend-item:hover .blend-orb{transform:translateY(-4px);box-shadow:var(--shadow)}
.blend-orb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}
.blend-orb svg{position:absolute;inset:0;margin:auto;width:56px;height:56px;color:var(--moss);z-index:1}
.blend-item .tag{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:3px}
.blend-item h3{font-size:18px;margin-bottom:5px}
.blend-item p{font-size:12.5px;color:var(--ink-soft);max-width:155px;margin:0 auto;line-height:1.55}
@media(max-width:880px){.blend-grid{grid-template-columns:repeat(3,1fr);gap:28px 18px}}
@media(max-width:520px){.blend-grid{grid-template-columns:1fr 1fr;gap:24px 12px}.blend-orb{width:104px;height:104px}}

/* ============================================================
   v2.7 — Reel / Instagram video player (play-pause + sound)
   ============================================================ */
.ph.has-video{cursor:pointer}
.ph.has-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;background:#1b2a20}
.tv-vctrl{position:absolute;inset:0;z-index:3;pointer-events:none}
.tv-vplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:rgba(251,247,239,.92);color:var(--forest);border:none;display:grid;place-items:center;font-size:18px;cursor:pointer;pointer-events:auto;box-shadow:var(--shadow-sm);transition:opacity .25s,transform .2s}
.tv-vplay:hover{transform:translate(-50%,-50%) scale(1.08)}
.ph.has-video.playing .tv-vplay{opacity:0}
.ph.has-video:hover .tv-vplay,.ph.has-video:focus-within .tv-vplay{opacity:1}
.tv-vsound{position:absolute;right:10px;bottom:10px;width:38px;height:38px;border-radius:50%;background:rgba(30,58,43,.7);color:#F5F1E6;border:none;display:grid;place-items:center;font-size:13px;cursor:pointer;pointer-events:auto;backdrop-filter:blur(4px);transition:.2s}
.tv-vsound:hover{background:var(--forest)}
.reel .tv-vplay{width:50px;height:50px;font-size:16px}
.gram-grid .tv-vplay{width:42px;height:42px;font-size:13px}
.gram-grid .tv-vsound{width:32px;height:32px;font-size:11px;right:7px;bottom:7px}

/* ============================================================
   v2.8 — Slide-in cart drawer (mini-cart)
   ============================================================ */
.tv-cart-overlay{position:fixed;inset:0;background:rgba(30,58,43,.42);opacity:0;visibility:hidden;transition:opacity .3s ease;z-index:990}
.tv-cart-overlay.open{opacity:1;visibility:visible}
.tv-cart-drawer{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:390px;max-width:90vw;background:var(--cream);display:flex;flex-direction:column;
  transform:translateX(105%);transition:transform .38s cubic-bezier(.4,0,.2,1);z-index:991;box-shadow:-22px 0 60px -30px rgba(30,58,43,.55)}
.tv-cart-drawer.open{transform:none}
.tv-cart-head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid var(--line)}
.tv-cart-title{font-family:'Fraunces',serif;font-size:14px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--forest)}
.tv-cart-close{background:none;border:0;color:var(--ink);font-size:21px;line-height:1;cursor:pointer;padding:4px;transition:color .2s}
.tv-cart-close:hover{color:var(--gold)}
.tv-cart-drawer .widget_shopping_cart_content{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}
.tv-mini-list{flex:1 1 auto;overflow-y:auto;list-style:none;margin:0;padding:6px 26px}
.tv-mini-item{display:flex;align-items:flex-start;gap:15px;padding:20px 0;border-bottom:1px solid var(--line);position:relative}
.tv-mini-thumb{flex:none;width:66px;height:66px;border-radius:12px;overflow:hidden;background:var(--cream-2);display:block}
.tv-mini-thumb img{width:100%;height:100%;object-fit:cover}
.tv-mini-info{flex:1;padding-right:24px;min-width:0}
.tv-mini-name{font-family:'Fraunces',serif;font-size:17.5px;color:var(--ink);display:block;line-height:1.22;margin-bottom:3px}
.tv-mini-name:hover{color:var(--moss)}
.tv-mini-meta,.tv-mini-meta .quantity{color:var(--ink-soft);font-size:14.5px}
.tv-mini-remove{position:absolute;top:20px;right:0;color:#B23A2E;font-size:15px;line-height:1;opacity:.75;transition:opacity .2s,transform .2s}
.tv-mini-remove:hover{opacity:1;transform:scale(1.15)}
.tv-mini-foot{flex:none;padding:20px 26px;padding-bottom:calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--cream-2)}
.tv-mini-subtotal{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px}
.tv-mini-subtotal span{font-family:'Fraunces',serif;font-size:19px;color:var(--ink)}
.tv-mini-subtotal strong{font-family:'Fraunces',serif;font-size:21px;font-weight:600;color:var(--forest)}
.tv-mini-checkout,.tv-cart-continue{width:100%;justify-content:center;display:flex}
.tv-mini-checkout{margin-bottom:10px}
.tv-mini-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:50px 30px;text-align:center;color:var(--ink-soft)}
.tv-mini-empty-ic{font-size:38px;color:var(--sage)}
.tv-mini-empty .btn{margin-top:6px}
body.tv-cart-open{overflow:hidden}
@media(max-width:520px){.tv-cart-drawer{width:90vw}.tv-cart-head{padding:18px 20px}.tv-mini-list{padding:4px 20px}.tv-mini-foot{padding:18px 20px}}
