/* ═══════════════════════════════════════════
   TAVO ŠAMPŪNAS — Product Page Plugin CSS
   Based on v5. All classes prefixed ts- to
   avoid conflicts with Shoptimizer theme.
   ═══════════════════════════════════════════ */

/* AGGRESSIVE BACKGROUND OVERRIDE - Must be first */
/* NOTE: .col-full intentionally excluded — it appears in header & footer too */
html body.ts-custom-product,
body.ts-custom-product,
body.ts-custom-product .site,
body.ts-custom-product #page,
body.ts-custom-product #wrapper,
body.ts-custom-product #content,
body.ts-custom-product .site-content,
body.ts-custom-product .content-area,
body.ts-custom-product #ts-product-full-width,
body.ts-custom-product main,
body.ts-custom-product #primary,
body.ts-custom-product #main,
body.ts-custom-product article,
body.ts-custom-product .entry-content,
body.ts-custom-product .pdp-content-wrapper,
.ts-product-wrapper {
    background-color: #F5F2EC !important;
    background: #F5F2EC !important;
}

/* ─── RESET only inside our template ─── */
.ts-hero *, .ts-sec *, .ts-ticker *, .ts-sec-nav *,
.ts-mc *, .ts-breadcrumb *, .ts-prob *,
.ts-ugc *, .ts-rv *, .ts-sci *, .ts-fi *, .ts-rp *,
.ts-ht *, .ts-tl *, .ts-guar *, .ts-rq *, .ts-pp *,
.ts-rev *, .ts-rb *, .ts-faq *, .ts-mq * {
    box-sizing: border-box;
}

/* ─── SECTION REVEAL ANIMATIONS ─── */
/* Strategy: parent jumps instantly to opacity:1 (no transition),
   children animate themselves via ts-rise. Clean, no opacity multiplication. */
@keyframes ts-rise {
    from { opacity: 0; transform: translateY(28px) scale(0.982); }
    to   { opacity: 1; transform: translateY(0)    scale(1); }
}

.ts-sec { opacity: 0; }
.ts-sec.ts-loaded { opacity: 1; }   /* instant — children handle the animation */
.ts-hero { opacity: 1; }

/* ── Section headers — staggered, slower for premium feel ── */
.ts-sec.ts-loaded .ts-sec-label   { animation: ts-rise 1s   var(--ts-ease) .04s  both; }
.ts-sec.ts-loaded .ts-sec-h       { animation: ts-rise 1s   var(--ts-ease) .16s  both; }
.ts-sec.ts-loaded .ts-sec-sub     { animation: ts-rise .95s var(--ts-ease) .28s  both; }
.ts-sec.ts-loaded .ts-faq-h       { animation: ts-rise 1s   var(--ts-ease) .04s  both; }

/* ── Content blocks ── */
.ts-sec.ts-loaded .ts-rev-stats   { animation: ts-rise .9s  var(--ts-ease) .22s  both; }
.ts-sec.ts-loaded .ts-rev-grid    { animation: ts-rise .9s  var(--ts-ease) .32s  both; }
.ts-sec.ts-loaded .ts-rev-more    { animation: ts-rise .85s var(--ts-ease) .42s  both; }
.ts-sec.ts-loaded .ts-ugc-h       { animation: ts-rise .9s  var(--ts-ease) .3s   both; }
.ts-sec.ts-loaded .ts-ugc-row     { animation: ts-rise .9s  var(--ts-ease) .42s  both; }
.ts-sec.ts-loaded .ts-prob-grid   { animation: ts-rise .9s  var(--ts-ease) .26s  both; }
.ts-sec.ts-loaded .ts-sci-grid    { animation: ts-rise .9s  var(--ts-ease) .26s  both; }
.ts-sec.ts-loaded .ts-sci-inci    { animation: ts-rise .85s var(--ts-ease) .48s  both; }
.ts-sec.ts-loaded .ts-timeline    { animation: ts-rise .9s  var(--ts-ease) .26s  both; }
.ts-sec.ts-loaded .ts-rq          { animation: ts-rise .85s var(--ts-ease) .56s  both; }
.ts-sec.ts-loaded .ts-howto       { animation: ts-rise .9s  var(--ts-ease) .26s  both; }
.ts-sec.ts-loaded .ts-guar-box    { animation: ts-rise .9s  var(--ts-ease) .22s  both; }
.ts-sec.ts-loaded .ts-rel-scroll  { animation: ts-rise .9s  var(--ts-ease) .26s  both; }

/* ── Individual card stagger ── */
.ts-sec.ts-loaded .ts-sci:nth-child(1)   { animation: ts-rise .85s var(--ts-ease) .28s both; }
.ts-sec.ts-loaded .ts-sci:nth-child(2)   { animation: ts-rise .85s var(--ts-ease) .40s both; }
.ts-sec.ts-loaded .ts-sci:nth-child(3)   { animation: ts-rise .85s var(--ts-ease) .52s both; }
.ts-sec.ts-loaded .ts-sci:nth-child(4)   { animation: ts-rise .85s var(--ts-ease) .64s both; }
.ts-sec.ts-loaded .ts-sci:nth-child(n+5) { animation: ts-rise .85s var(--ts-ease) .76s both; }

.ts-sec.ts-loaded .ts-tl:nth-child(1) { animation: ts-rise .85s var(--ts-ease) .28s both; }
.ts-sec.ts-loaded .ts-tl:nth-child(2) { animation: ts-rise .85s var(--ts-ease) .44s both; }
.ts-sec.ts-loaded .ts-tl:nth-child(3) { animation: ts-rise .85s var(--ts-ease) .60s both; }

.ts-sec.ts-loaded .ts-ht:nth-child(1)   { animation: ts-rise .85s var(--ts-ease) .28s both; }
.ts-sec.ts-loaded .ts-ht:nth-child(2)   { animation: ts-rise .85s var(--ts-ease) .44s both; }
.ts-sec.ts-loaded .ts-ht:nth-child(n+3) { animation: ts-rise .85s var(--ts-ease) .60s both; }

.ts-sec.ts-loaded .ts-fi:nth-child(1)   { animation: ts-rise .8s var(--ts-ease) .06s both; }
.ts-sec.ts-loaded .ts-fi:nth-child(2)   { animation: ts-rise .8s var(--ts-ease) .18s both; }
.ts-sec.ts-loaded .ts-fi:nth-child(3)   { animation: ts-rise .8s var(--ts-ease) .30s both; }
.ts-sec.ts-loaded .ts-fi:nth-child(4)   { animation: ts-rise .8s var(--ts-ease) .42s both; }
.ts-sec.ts-loaded .ts-fi:nth-child(n+5) { animation: ts-rise .8s var(--ts-ease) .54s both; }

.ts-sec.ts-loaded .ts-pp:nth-child(1)   { animation: ts-rise .8s var(--ts-ease) .30s both; }
.ts-sec.ts-loaded .ts-pp:nth-child(2)   { animation: ts-rise .8s var(--ts-ease) .44s both; }
.ts-sec.ts-loaded .ts-pp:nth-child(n+3) { animation: ts-rise .8s var(--ts-ease) .58s both; }

.ts-sec.ts-loaded .ts-rp:nth-child(1)   { animation: ts-rise .85s var(--ts-ease) .28s both; }
.ts-sec.ts-loaded .ts-rp:nth-child(2)   { animation: ts-rise .85s var(--ts-ease) .40s both; }
.ts-sec.ts-loaded .ts-rp:nth-child(3)   { animation: ts-rise .85s var(--ts-ease) .52s both; }
.ts-sec.ts-loaded .ts-rp:nth-child(n+4) { animation: ts-rise .85s var(--ts-ease) .64s both; }

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
    .ts-sec, .ts-sec.ts-loaded * { opacity: 1 !important; animation: none !important; }
}

:root {
    --ts-bg:#F5F2EC;--ts-bg2:#EDEAE3;--ts-white:#FFF;
    --ts-bg-dark:#2C2620;--ts-bg-darker:#1C1916;
    --ts-ink:#1A1714;--ts-ink2:#52493F;--ts-ink3:#8A7E72;--ts-ink4:#B5AC9F;
    --ts-terra:#6B442A;--ts-gold:#96703E;--ts-green:#3D6B35;
    --ts-line:rgba(26,23,20,.07);--ts-line2:rgba(26,23,20,.04);
    --ts-dt1:rgba(245,242,236,.92);--ts-dt2:rgba(245,242,236,.7);--ts-dt3:rgba(245,242,236,.5);--ts-dt4:rgba(245,242,236,.3);--ts-dl:rgba(245,242,236,.08);
    --ts-serif:'Domine',Georgia,serif;--ts-sans:'Instrument Sans',sans-serif;
    --ts-ease:cubic-bezier(.16,1,.3,1);
    --ts-nv:56px;--ts-tk:30px;--ts-snv:42px;
}

/* NOTE: With template_include, Shoptimizer's default product elements
   (.summary, .woocommerce-product-gallery, .col-full wrapper, etc.) are
   never rendered — no hide rules needed. The old .col-full override was
   removed because it broke Shoptimizer's mobile nav (hamburger menu). */

body.ts-custom-product {
    color: #1A1714;
    color: var(--ts-ink);
    font-family: 'Instrument Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    font-weight: 300;
    -webkit-font-smoothing: antialiased;
}

/* ─── TICKER ─── */
.ts-ticker{position:fixed;top:0;left:0;right:0;z-index:600;background:var(--ts-bg-darker);height:var(--ts-tk);overflow:hidden;display:flex;align-items:center}
.ts-ticker .tk-t{display:flex;width:max-content;animation:ts-tk 55s linear infinite}
.ts-ticker .tk-c{display:inline-flex;align-items:center;flex-shrink:0}
.ts-ticker .tk-i{padding:0 28px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,241,235,.35);white-space:nowrap;font-weight:300;display:inline-flex;align-items:center;gap:6px}
.ts-ticker .tk-i svg{width:11px;height:11px;stroke:rgba(244,241,235,.25);fill:none;stroke-width:1.4}
.ts-ticker .tk-d{width:2px;height:2px;border-radius:50%;background:rgba(150,112,62,.35);flex-shrink:0}
@keyframes ts-tk{to{transform:translateX(-50%)}}

/* ─── PURCHASE DESCRIPTION TABS ─── */
.ts-purchase-tabs{margin-top:20px;border-top:1px solid var(--ts-line);padding-top:0}
.ts-pt-nav{display:flex;border-bottom:1px solid var(--ts-line)}
.ts-pt-btn{background:none;border:none;padding:10px 14px;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ts-ink4);cursor:pointer;font-family:var(--ts-sans);font-weight:400;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;white-space:nowrap}
.ts-pt-btn.act{color:var(--ts-ink);border-bottom-color:var(--ts-ink)}
.ts-pt-btn:hover:not(.act){color:var(--ts-ink2)}
.ts-pt-panel{display:none;padding:14px 0 4px;font-size:12.5px;line-height:1.75;color:var(--ts-ink2);max-height:200px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--ts-line) transparent}
.ts-pt-panel.act{display:block}
.ts-pt-panel ul{margin:0;padding:0;list-style:none}
.ts-pt-panel li{display:flex;align-items:flex-start;gap:8px;padding:3px 0;font-size:12.5px}
.ts-pt-panel li::before{content:"·";color:var(--ts-terra);font-size:14px;flex-shrink:0;line-height:1.4}
.ts-pt-panel h2,.ts-pt-panel h3{font-family:var(--ts-serif);font-size:13px;font-weight:500;margin:10px 0 4px;color:var(--ts-ink)}
.ts-pt-panel h2:first-child,.ts-pt-panel h3:first-child{margin-top:0}
.ts-pt-panel p{margin:0 0 8px}
.ts-pt-panel::-webkit-scrollbar{width:2px}
.ts-pt-panel::-webkit-scrollbar-thumb{background:var(--ts-line)}

/* ─── BREADCRUMB ─── */
.ts-page-top{height:calc(var(--ts-nv) + var(--ts-tk))}
.ts-breadcrumb{padding:12px 24px 0;max-width:1200px;margin:0 auto;font-size:10.5px;color:var(--ts-ink4);font-weight:300}
.ts-breadcrumb a{text-decoration:none;color:var(--ts-ink4)}
.ts-breadcrumb a:hover{color:var(--ts-ink2)}
.ts-breadcrumb span{margin:0 5px;opacity:.35}

/* ═══ STICKY SECTION NAV ═══ */
.ts-sec-nav{
    position:sticky;top:55px;z-index:90;
    background:rgba(245,242,236,.95);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid var(--ts-line);
    display:flex;align-items:center;justify-content:center;
    gap:0;height:var(--ts-snv);
    overflow-x:auto;scrollbar-width:none;
    margin-top:30px;
}

@media(max-width:768px){
    .ts-sec-nav{
        position:sticky;top:56px;
        margin-top:0;
        background:rgba(245,242,236,.98);
    }
}
.ts-sec-nav::-webkit-scrollbar{display:none}
.ts-sn{
    padding:0 16px;height:100%;display:flex;align-items:center;gap:5px;
    font-size:10px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--ts-ink3);font-weight:300;white-space:nowrap;
    cursor:pointer;position:relative;transition:color .3s;
    text-decoration:none;
}
.ts-sn svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.4}
.ts-sn::after{content:'';position:absolute;bottom:0;left:16px;right:16px;height:1.5px;background:var(--ts-ink);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ts-ease)}
.ts-sn:hover{color:var(--ts-ink)}
.ts-sn.act{color:var(--ts-ink);font-weight:400}
.ts-sn.act::after{transform:scaleX(1)}

/* ═══ HERO ═══ */
.ts-hero{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:1200px;margin:0 auto;padding:20px 24px 0;overflow-x:hidden}
.ts-gallery{position:relative;width:100%;max-width:100%;min-width:0;overflow:hidden}
.ts-gallery-main{aspect-ratio:4/5;background:var(--ts-bg2);overflow:hidden;margin-bottom:8px;max-width:100%}
.ts-gallery-main img{width:100%;height:100%;object-fit:cover;display:block}
.ts-gallery-thumbs{display:flex;gap:5px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;flex-wrap:nowrap;width:100%;max-width:100%}
.ts-gallery-thumbs::-webkit-scrollbar{display:none;height:0}
.ts-gallery-thumb{width:52px;height:52px;background:var(--ts-bg2);overflow:hidden;cursor:pointer;opacity:.4;transition:opacity .3s;border:1.5px solid transparent;flex-shrink:0}
.ts-gallery-thumb:hover,.ts-gallery-thumb.act{opacity:1;border-color:var(--ts-ink4)}
.ts-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ts-purchase{padding-top:4px}
.ts-purchase-inner{position:sticky;top:calc(var(--ts-nv) + var(--ts-tk) + var(--ts-snv) + 14px)}

.ts-p-valid{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:var(--ts-green);font-weight:300;margin-bottom:12px}
.ts-p-valid svg{width:14px;height:14px;stroke:var(--ts-green);fill:none;stroke-width:1.4}
.ts-p-title{font-family:var(--ts-serif)!important;font-size:clamp(22px,2.4vw,32px);font-weight:400;line-height:1.15;letter-spacing:-.02em;color:var(--ts-ink);margin:0 0 7px}
.ts-p-sub{ffont-size: 13px; color: var(--ts-ink3); font-weight: 300; line-height: 1.7; margin-bottom: 23px; font-family: 'Instrument Sans', sans-serif !important; margin-top: 16px;}
.ts-p-rating{display:flex;align-items:center;gap:8px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--ts-line)}
.ts-p-stars{display:flex;gap:1px;color:var(--ts-gold)}
.ts-p-stars svg{width:13px;height:13px;fill:currentColor}
.ts-p-rating-t{font-size:11px;color:var(--ts-ink3);font-weight:300}
.ts-p-rating-t a{color:var(--ts-terra);text-decoration:underline;text-underline-offset:2px}

/* Size list */
.ts-sz-label{margin-top:25px;font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--ts-ink3);font-weight:300;margin-bottom:10px}
.ts-sz-list{display:flex;flex-direction:column;gap:14px;margin-bottom:6px}
.ts-sz{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--ts-line);background:var(--ts-bg);cursor:pointer;transition:all .3s var(--ts-ease);position:relative}
.ts-sz:hover{border-color:var(--ts-ink4)}
.ts-sz.act{border-color:#3d6b35d6;background:#ffffff8a}
.ts-sz-r{width:16px;height:16px;border-radius:50%;border:0.5px solid var(--ts-ink4);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ts-sz.act .ts-sz-r{border-color:var(--ts-ink)}
.ts-sz-rd{width:7px;height:7px;border-radius:50%;background:var(--ts-ink);transform:scale(0);transition:transform .3s var(--ts-ease)}
.ts-sz.act .ts-sz-rd{transform:scale(1)}
.ts-sz-info{flex:1;min-width:0}
.ts-sz-n{font-family:var(--ts-serif);font-size:13px;font-weight:400;color:var(--ts-ink);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ts-sz-badge{font-size:7px;letter-spacing:.1em;text-transform:uppercase;background:var(--ts-terra);color:var(--ts-white);padding:2px 7px;font-weight:300}
.ts-sz-badge.sv{background:var(--ts-green)}
.ts-sz-desc{font-size:10.5px;color:var(--ts-ink3);font-weight:300;margin-top:2px}
.ts-sz-p{text-align:right;flex-shrink:0}
.ts-sz-old{font-size:10.5px;color:var(--ts-ink4);text-decoration:line-through;font-weight:300}
.ts-sz-price{font-family:var(--ts-serif);font-size:16px;font-weight:400;color:var(--ts-ink)}
.ts-sz-save{font-size:9.5px;color:var(--ts-green);font-weight:300;margin-top:1px}

.ts-pr-row{display:flex;align-items:baseline;gap:15px;margin:21px 0;justify-content:center}
.ts-pr-current{font-family:var(--ts-serif);font-size:26px;font-weight:400;color:var(--ts-ink)}
.ts-pr-old{font-size:14px;color:var(--ts-ink4);text-decoration:line-through;font-weight:300}
.ts-pr-sv{font-size:9.5px;color:var(--ts-green);font-weight:300;background:rgba(61,107,53,.08);padding:2px 8px}
.ts-p-atc{width:100%;padding:16px;background:var(--ts-ink);color:var(--ts-bg);font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:400;font-family:var(--ts-sans);transition:all .4s var(--ts-ease);display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:12px;border:none;cursor:pointer}
.ts-p-atc:hover{background:var(--ts-terra);transform:translateY(-1px);box-shadow:0 8px 28px rgba(26,23,20,.08)}
.ts-p-atc:disabled{opacity:.6;cursor:wait}
.ts-del{justify-content:center;padding-bottom:35px;display:flex;align-items:center;gap:7px;padding:12px 0;border-bottom:1px solid var(--ts-line);font-size:11.5px;color:var(--ts-ink2);font-weight:300}
.ts-del svg{width:15px;height:15px;stroke:var(--ts-ink3);fill:none;stroke-width:1.3;flex-shrink:0}
.ts-del strong{font-weight:400;color:var(--ts-ink)}
.ts-p-trust{display:flex;flex-wrap:wrap;gap:115px;padding:12px 0;border-bottom:1px solid var(--ts-line);margin-bottom:16px}
.ts-pt{display:flex;align-items:center;gap:4px;font-size:9.5px;color:var(--ts-ink3);font-weight:300}
.ts-pt svg{width:12px;height:12px;stroke:var(--ts-ink3);fill:none;stroke-width:1.4}
.ts-mq{border:1px solid rgba(107,68,42,.12);padding:16px;display:flex;gap:12px;align-items:center;background:var(--ts-white)}
.ts-mq-ic{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--ts-bg2)}
.ts-mq-ic svg{width:16px;height:16px;stroke:var(--ts-terra);fill:none;stroke-width:1.4}
.ts-mq-txt{flex:1}
.ts-mq-h{font-family:var(--ts-serif);font-size:12.5px;font-weight:400;color:var(--ts-ink);margin-bottom:1px}
.ts-mq-d{font-size:10.5px;color:var(--ts-ink3);font-weight:300}
.ts-mq-btn{font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ts-terra);font-weight:300;white-space:nowrap;flex-shrink:0;text-decoration:none}

/* ═══ SECTIONS ═══ */
.ts-sec{padding:72px 24px;scroll-margin-top:calc(var(--ts-nv) + var(--ts-tk) + var(--ts-snv) + 8px)}
.ts-sec-inner{max-width:1100px;margin:0 auto}
.ts-sec.ts-alt{background:var(--ts-bg2)}
.ts-sec.ts-dark{background:var(--ts-bg-dark)}
.ts-sec-label{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ts-ink3);font-weight:300;margin-bottom:10px}
.ts-dark .ts-sec-label{color:var(--ts-dt4)}
.ts-sec-h{font-family:var(--ts-serif)!important;font-size:clamp(22px,2.6vw,32px);font-weight:400;line-height:1.15;color:var(--ts-ink);margin:0 0 8px}
.ts-dark .ts-sec-h{color:var(--ts-dt1)}
.ts-sec-sub{font-size:12.5px;color:var(--ts-ink3);font-weight:300;line-height:1.7;max-width:540px;margin-bottom:40px;font-family: 'Instrument Sans', sans-serif !important;}
.ts-dark .ts-sec-sub{color:var(--ts-dt3)}

/* ═══ PROBLEM SECTION ═══ */
.ts-prob-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.ts-prob-img{aspect-ratio:4/3;background:var(--ts-bg2);overflow:hidden}
.ts-prob-img img{width:100%;height:100%;object-fit:cover}
.ts-prob-points{display:flex;flex-direction:column;gap:0}
.ts-pp{padding:18px 0;border-bottom:1px solid var(--ts-line);display:flex;gap:14px;align-items:flex-start}
.ts-pp:last-child{border-bottom:none}
.ts-pp-n{width:28px;height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--ts-bg);font-family:var(--ts-serif);font-size:12px;font-weight:400;color:var(--ts-ink)}
.ts-pp-h{font-size:13px;font-weight:400;color:var(--ts-ink);margin-bottom:2px}
.ts-pp-d{font-size:11.5px;color:var(--ts-ink3);line-height:1.7;font-weight:300}

/* ═══ REVIEWS ═══ */
.ts-rev-stats{display:grid;grid-template-columns:auto 1fr auto;gap:32px;align-items:center;margin-bottom:36px;padding-bottom:32px;border-bottom:1px solid var(--ts-dl)}
.ts-rev-big{text-align:center;min-width:72px}
.ts-rev-big-n{font-family:var(--ts-serif);font-size:clamp(40px,5vw,52px);font-weight:400;color:var(--ts-dt1);line-height:1}
.ts-rev-big-sub{font-size:9.5px;color:var(--ts-dt4);margin-top:4px}
.ts-rev-big-stars{display:flex;gap:2px;justify-content:center;margin-top:6px;color:var(--ts-gold)}
.ts-rev-big-stars svg{width:12px;height:12px;fill:currentColor}
.ts-rev-bars{display:flex;flex-direction:column;gap:6px}
.ts-rb{display:flex;align-items:center;gap:10px;font-size:10px;color:var(--ts-dt3);font-weight:300}
.ts-rb-l{min-width:96px}
.ts-rb-tr{flex:1;height:3px;background:var(--ts-dl);border-radius:2px;overflow:hidden}
.ts-rb-f{height:100%;background:var(--ts-gold);border-radius:2px}
.ts-rb-v{min-width:24px;text-align:right;font-size:9.5px;color:var(--ts-dt4)}
.ts-rev-wr{text-align:right}
.ts-rev-wr-btn{display:inline-flex;align-items:center;gap:6px;background:rgba(245,242,236,.06);border:1px solid var(--ts-dl);color:var(--ts-dt3);font-size:9px;letter-spacing:.12em;text-transform:uppercase;font-weight:300;padding:10px 18px;transition:all .3s;font-family:var(--ts-sans);cursor:pointer;text-decoration:none}
.ts-rev-wr-btn:hover{color:var(--ts-dt1);background:rgba(245,242,236,.1)}
.ts-rev-wr-btn svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:1.4}

/* Review cards with photo */
.ts-rev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.ts-rv{background:rgba(245,242,236,.04);border:1px solid var(--ts-dl);padding:20px 18px;transition:border-color .3s}
.ts-rv:hover{border-color:rgba(245,242,236,.14)}
.ts-rv-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.ts-rv-stars{display:flex;gap:1px;color:var(--ts-gold)}
.ts-rv-stars svg{width:10px;height:10px;fill:currentColor}
.ts-rv-date{font-size:9px;color:var(--ts-dt4)}
.ts-rv-text{font-size:13px;color:var(--ts-dt2);line-height:1.9;font-weight:300;margin-bottom:10px;font-style:italic;font-family:var(--ts-serif)}
.ts-rv-photo{width:100%;aspect-ratio:1;background:var(--ts-bg2);overflow:hidden;margin-bottom:12px;border-radius:0}
.ts-rv-photo img{width:100%;height:100%;object-fit:cover}
.ts-rv-bottom{display:flex;align-items:center;justify-content:space-between}
.ts-rv-author{font-size:10px;color:var(--ts-dt3);font-weight:300}
.ts-rv-ver{font-size:8px;color:var(--ts-dt4);letter-spacing:.08em;text-transform:uppercase}

/* UGC Video section */
.ts-ugc-h{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ts-dt4);font-weight:300;margin:40px 0 16px}
.ts-ugc-row{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;padding-bottom:8px}
.ts-ugc-row::-webkit-scrollbar{display:none}
.ts-ugc-v{flex-shrink:0;width:180px;aspect-ratio:9/16;background:rgba(245,242,236,.04);border:1px solid var(--ts-dl);overflow:hidden;position:relative;cursor:pointer}
.ts-ugc-v img{width:100%;height:100%;object-fit:cover}
.ts-ugc-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;background:rgba(0,0,0,.35);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;border-radius:50%}
.ts-ugc-play svg{width:16px;height:16px;fill:var(--ts-white);margin-left:2px}
.ts-ugc-name{position:absolute;bottom:0;left:0;right:0;padding:8px 10px;background:linear-gradient(transparent,rgba(0,0,0,.5));font-size:9.5px;color:rgba(255,255,255,.85);font-weight:300}

/* ═══ INGREDIENTS ═══ */
.ts-sci-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.ts-sci{background:var(--ts-white);border:1px solid var(--ts-line);overflow:hidden;transition:all .4s var(--ts-ease)}
.ts-sci:hover{border-color:var(--ts-ink4);transform:translateY(-2px);box-shadow:0 6px 24px rgba(26,23,20,.04)}
.ts-sci-img{background:var(--ts-bg2);overflow:hidden;display:flex;align-items:center;justify-content:center;padding:20px 16px;min-height:80px}
.ts-sci-img img{max-width:80%;max-height:90px;width:auto;height:auto;object-fit:contain}
.ts-sci-body{padding:18px 16px}
.ts-sci-name{font-family:var(--ts-serif);font-size:14px;font-weight:400;color:var(--ts-ink);margin-bottom:2px}
.ts-sci-lat{font-size:9px;color:var(--ts-ink4);font-style:italic;display:block;margin-bottom:8px}
.ts-sci-desc{font-size:11.5px;color:var(--ts-ink3);line-height:1.7;font-weight:300}
.ts-sci-tag{display:inline-block;margin-top:10px;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ts-terra);border:1px solid rgba(107,68,42,.12);padding:2px 7px}
.ts-sci-inci{margin-top:24px;padding-top:18px;border-top:1px solid var(--ts-line)}
.ts-sci-inci-l{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ts-ink3);font-weight:300;margin-bottom:6px}
.ts-sci-inci-t{font-size:10.5px;color:var(--ts-ink4);line-height:2;font-weight:300}

/* ═══ RESULTS TIMELINE ═══ */
.ts-timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--ts-dl)}
.ts-tl{padding:32px 24px;text-align:center;border-right:1px solid var(--ts-dl)}
.ts-tl:last-child{border-right:none}
.ts-tl-period{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ts-dt4);font-weight:300;margin-bottom:12px}
.ts-tl-stat{font-family:var(--ts-serif);font-size:clamp(28px,3.5vw,38px);font-weight:400;color:var(--ts-dt1);margin-bottom:6px}
.ts-tl-desc{font-size:11.5px;color:var(--ts-dt3);font-weight:300;line-height:1.7}
.ts-rq{margin-top:40px;text-align:center;max-width:500px;margin-left:auto;margin-right:auto}
.ts-rq-text{font-family:var(--ts-serif);font-size:15px;font-style:italic;color:var(--ts-dt2);line-height:1.9;margin-bottom:10px}
.ts-rq-author{font-size:10px;color:var(--ts-dt4);font-weight:300}

/* ═══ HOW TO USE ═══ */
.ts-howto{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ts-ht{text-align:center}
.ts-ht-img{aspect-ratio:1/1;background:var(--ts-bg);overflow:hidden;margin-bottom:14px}
.ts-ht-img img{width:100%;height:100%;object-fit:cover;display:block}
.ts-ht-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:var(--ts-bg);border:1px solid var(--ts-line);font-family:var(--ts-serif);font-size:12px;color:var(--ts-ink);margin-bottom:10px}
.ts-ht-h{font-family:var(--ts-serif);font-size:13px;font-weight:400;color:var(--ts-ink);margin-bottom:4px}
.ts-ht-d{font-size:11px;color:var(--ts-ink3);line-height:1.7;font-weight:300;max-width:200px;margin:0 auto}

/* ═══ GUARANTEE ═══ */
.ts-guar-box{display:flex;gap:32px;align-items:center;max-width:800px;margin:0 auto}
.ts-guar-icon{width:80px;height:80px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--ts-white);border:1px solid var(--ts-line)}
.ts-guar-icon svg{width:36px;height:36px;stroke:var(--ts-terra);fill:none;stroke-width:1.2}
.ts-guar-h{font-family:var(--ts-serif);font-size:clamp(18px,2vw,24px);font-weight:400;color:var(--ts-ink);margin-bottom:6px}
.ts-guar-d{font-size:13px;color:var(--ts-ink3);line-height:1.9;font-weight:300}
.ts-guar-pts{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.ts-guar-pt{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--ts-ink2);font-weight:300;padding:6px 12px;border:1px solid var(--ts-line);background:var(--ts-white)}
.ts-guar-pt svg{width:12px;height:12px;stroke:var(--ts-green);fill:none;stroke-width:1.5}

/* ═══ FAQ ═══ */
.ts-faq-inner{max-width:800px;margin:0 auto}
.ts-faq-h{font-family:var(--ts-serif)!important;font-size:clamp(20px,2.2vw,26px);font-weight:400;color:var(--ts-ink);margin:0 0 32px}
.ts-fi{border-bottom:1px solid var(--ts-line)}
.ts-fq{display:flex;align-items:center;justify-content:space-between;padding:18px 0;cursor:pointer;gap:14px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ts-ink);font-weight:300;transition:color .3s}
.ts-fq:hover{color:var(--ts-terra)}
.ts-fq-ic{font-size:15px;color:var(--ts-ink3);transition:transform .4s var(--ts-ease);flex-shrink:0}
.ts-fi.open .ts-fq-ic{transform:rotate(45deg)}
.ts-fa{max-height:0;overflow:hidden;transition:max-height .5s var(--ts-ease)}
.ts-fi.open .ts-fa{max-height:300px;padding-bottom:16px}
.ts-fa-t{font-size:13px;color:var(--ts-ink2);line-height:1.9;font-weight:300;max-width:560px}

/* ═══ UPSELLS / RELATED PRODUCTS ═══ */
.ts-sec-upsells { padding: 64px 24px; max-width: 1200px; margin: 0 auto; }

/* Scrollable row */
.ts-rel-scroll {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding-bottom: 6px;
}
.ts-rel-scroll::-webkit-scrollbar { display: none; }

/* Product card */
.ts-rp {
    flex: 0 0 230px;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: rgba(255,255,255,.62);
    border: 1px solid rgba(26,23,20,.08);
    border-radius: 6px;
    overflow: hidden;
    scroll-snap-align: start;
    transition: transform .35s var(--ts-ease), box-shadow .35s var(--ts-ease), border-color .35s var(--ts-ease);
}
.ts-rp:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 28px rgba(26,23,20,.10);
    border-color: rgba(26,23,20,.14);
}

/* Image */
.ts-rp-img-wrap {
    display: block;
    aspect-ratio: 4/5;
    overflow: hidden;
    background: #ede9e1;
}
.ts-rp-img-wrap img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform .6s var(--ts-ease);
}
.ts-rp:hover .ts-rp-img-wrap img { transform: scale(1.04); }

/* Text body */
.ts-rp-body { padding: 12px 14px 8px; flex: 1; display: flex; flex-direction: column; gap: 4px; }
.ts-rp-cat {
    font-size: 8.5px; letter-spacing: .12em; text-transform: uppercase;
    color: var(--ts-ink4); font-weight: 300; display: block;
}
.ts-rp-name {
    font-family: var(--ts-serif); font-size: 13px; font-weight: 400;
    color: var(--ts-ink); line-height: 1.3; text-decoration: none;
    display: block;
}
.ts-rp-name:hover { color: var(--ts-terra); }
.ts-rp-price { font-size: 13px; color: var(--ts-ink); font-weight: 500; margin-top: 4px; }
.ts-rp-price del { color: var(--ts-ink4); font-weight: 300; margin-right: 4px; }
.ts-rp-price ins { text-decoration: none; }

/* ATC button */
.ts-rp-atc {
    display: block; width: 100%; margin: 0;
    padding: 11px 14px;
    background: var(--ts-ink); color: #fff;
    border: none; border-radius: 0 0 5px 5px;
    font-size: 11px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase;
    cursor: pointer; text-align: center; text-decoration: none;
    transition: background .25s, opacity .25s;
}
.ts-rp-atc:hover { background: #2e2723; }
.ts-rp-atc.ts-rp-view { background: transparent; color: var(--ts-ink); border-top: 1px solid rgba(26,23,20,.08); }
.ts-rp-atc.ts-rp-view:hover { background: rgba(26,23,20,.04); }
.ts-rp-atc.ts-adding { opacity: .6; pointer-events: none; }
.ts-rp-atc.ts-added  { background: var(--ts-green); }

/* ═══ REVIEWS LOAD MORE ═══ */
.ts-rev-more{text-align:center;margin-top:32px}
.ts-rev-more-btn{display:inline-block;padding:12px 24px;background:transparent;border:1px solid var(--ts-dl);color:var(--ts-dt3);font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:300;cursor:pointer;transition:all .3s}
.ts-rev-more-btn:hover{color:var(--ts-dt1);border-color:var(--ts-dt4);background:rgba(245,242,236,.04)}

/* Hidden reviews for load more */
.ts-rv-hidden{display:none}

/* Admin reviews - shown at top */
.ts-rv-admin{border:1px solid var(--ts-gold);background:rgba(150,112,62,.05)}
.ts-rv-admin .ts-rv-ver{color:var(--ts-gold)}

/* ═══ REVIEW LIGHTBOX ═══ */
.ts-rev-lb{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;align-items:center;justify-content:center;padding:20px}
.ts-rev-lb.active{display:flex}
.ts-rev-lb-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(26,23,20,.85);backdrop-filter:blur(8px)}
.ts-rev-lb-content{position:relative;background:var(--ts-bg);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;padding:32px;z-index:1001}
.ts-rev-lb-close{position:absolute;top:16px;right:16px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:24px;color:var(--ts-ink3);cursor:pointer}
.ts-rev-lb-close:hover{color:var(--ts-ink)}
.ts-rev-lb-h{font-family:var(--ts-serif);font-size:24px;font-weight:400;color:var(--ts-ink);margin:0 0 24px}

.ts-rev-form{display:flex;flex-direction:column;gap:20px}
.ts-rev-f-field{display:flex;flex-direction:column;gap:6px}
.ts-rev-f-field label{font-size:12px;color:var(--ts-ink3);font-weight:300}
.ts-rev-f-field input,.ts-rev-f-field textarea{padding:12px;border:1px solid var(--ts-line);background:var(--ts-white);font-family:var(--ts-sans);font-size:14px;color:var(--ts-ink)}
.ts-rev-f-field input:focus,.ts-rev-f-field textarea:focus{border-color:var(--ts-ink4);outline:none}

.ts-rev-f-stars{display:flex;flex-direction:column;gap:8px}
.ts-rev-f-stars>label{font-size:12px;color:var(--ts-ink3)}
.ts-rev-f-stars-row{display:flex;gap:4px}
.ts-rev-f-star{width:32px;height:32px;cursor:pointer;color:var(--ts-ink4);transition:color .2s}
.ts-rev-f-star svg{width:100%;height:100%;fill:currentColor}
.ts-rev-f-star.active,.ts-rev-f-star:hover{color:var(--ts-gold)}

.ts-rev-f-cats{display:flex;flex-direction:column;gap:16px;padding:16px 0;border-top:1px solid var(--ts-line);border-bottom:1px solid var(--ts-line)}
.ts-rev-f-cat{display:flex;align-items:center;gap:12px}
.ts-rev-f-cat label{flex:1;font-size:13px;color:var(--ts-ink2)}
.ts-rev-f-cat-stars{display:flex;gap:2px}
.ts-rev-f-cat-star{width:20px;height:20px;cursor:pointer;color:var(--ts-ink4);transition:color .2s}
.ts-rev-f-cat-star svg{width:100%;height:100%;fill:currentColor}
.ts-rev-f-cat-star.active,.ts-rev-f-cat-star:hover{color:var(--ts-gold)}

.ts-rev-f-submit{width:100%;padding:16px;background:var(--ts-ink);color:var(--ts-bg);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:300;border:none;cursor:pointer;transition:background .3s}
.ts-rev-f-submit:hover{background:var(--ts-terra)}

@media(max-width:768px){
    .ts-rev-lb{padding:10px}
    .ts-rev-lb-content{padding:24px;max-height:95vh}
    .ts-rev-lb-h{font-size:20px}
}

/* Mobile sticky cart removed */

/* ═══ RESPONSIVE ═══ */
@media(max-width:768px){
    :root{--ts-tk:26px;--ts-snv:38px;--ts-nv:0px}
    
    /* Hide ticker and nav calculations on mobile */
    .ts-ticker{display:none}
    
    /* Force background on mobile */
    html, html body,
    body.ts-custom-product,
    body.ts-custom-product .site,
    body.ts-custom-product #page,
    body.ts-custom-product #content,
    body.ts-custom-product .content-area,
    body.ts-custom-product .site-content,
    body.ts-custom-product .col-full,
    body.ts-custom-product main,
    .ts-product-wrapper,
    #primary,
    #main {
        background: #F5F2EC !important;
        background-color: #F5F2EC !important;
    }
    
    .ts-hero{grid-template-columns:1fr;gap:20px;padding:12px 16px 0;overflow-x:hidden}
    .ts-gallery{min-width:0;overflow:hidden}
    .ts-purchase-inner{position:static!important}
    .ts-gallery-main{aspect-ratio:1/1;max-height:50vh}
    .ts-gallery-thumb{width:40px;height:40px}
    
    .ts-p-title{font-size:clamp(20px,6vw,28px)!important}
    .ts-pr-row{margin:16px 0}
    .ts-pr-current{font-size:22px}
    
    .ts-sz{padding:12px}
    .ts-sz-price{font-size:14px}
    
    .ts-prob-grid{grid-template-columns:1fr;gap:20px}
    .ts-howto{grid-template-columns:1fr;gap:16px}
    .ts-timeline{grid-template-columns:1fr;border:none}
    .ts-tl{border-right:none;border-bottom:1px solid var(--ts-dl);padding:24px 20px}
    .ts-tl:last-child{border-bottom:none}
    .ts-rev-stats{grid-template-columns:1fr;gap:18px;text-align:center}
    .ts-rev-wr{text-align:center}
    .ts-rev-grid{grid-template-columns:1fr}
    .ts-guar-box{flex-direction:column;text-align:center;gap:20px}
    .ts-sec{padding:48px 16px}
    .ts-sec-upsells{padding:40px 16px}
    .ts-sn{padding:0 12px;font-size:9px}
    .ts-ugc-v{width:240px;border-radius:16px;overflow:hidden}
    
    .ts-breadcrumb{font-size:10px;padding:10px 16px 0;white-space:nowrap;overflow-x:auto;scrollbar-width:none}
    .ts-breadcrumb::-webkit-scrollbar{display:none}
    
    /* Better spacing on mobile */
    .ts-mq{padding:12px;gap:10px}
    .ts-mq-h{font-size:11px}
    .ts-mq-d{font-size:10px}
    
    .ts-p-trust{gap:45px}
    .ts-pt{font-size:9px}
    
    .ts-del{padding:10px 0;font-size:11px}
}
@media(min-width:769px){
    .ts-breadcrumb{padding:12px 40px 0}
    .ts-hero{padding:20px 40px 0}
    .ts-sec{padding:72px 40px}
    .ts-sec-upsells{padding:56px 40px}
}
@media(max-width:480px){
    .ts-sci-grid{grid-template-columns:1fr}
    .ts-rp{flex:0 0 185px}
}
.below-content .widget p {
        font-size: 13px;
        font-family: 'Instrument Sans', sans-serif !important;
    }
