/* ===== LUMA · clean natural skincare store ===== */
@import url('https://fonts.googleapis.com/css2?family=Heebo:wght@300;400;500;600;700&family=Bellefair&family=Assistant:wght@300;400;500;600&display=swap');

:root{
  --bg:#faf7f2; --bg2:#f1ebe0; --tile:#f4efe6; --prodbg:#ede6d4; --ink:#3a332a; --ink-soft:#776e60; --muted:#9c9387;
  --line:#e9e1d4; --card:#fffdf9;
  --sage:#7e8c6a; --sage-d:#5b6650; --blush:#d8a7a0; --blush-d:#c98b86;
  --disp:'Heebo',sans-serif;
  --radius:18px; --radius-lg:24px;
  --shadow:0 12px 30px rgba(94,102,80,.12); --shadow-s:0 10px 26px rgba(94,102,80,.1);
  --maxw:1320px; --hh:74px;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{overflow-x:clip;max-width:100%}
body{font-family:'Heebo',system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:26px;width:100%}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.26em;color:var(--sage)}
h1,h2,h3{font-family:var(--disp);font-weight:500;color:var(--ink);line-height:1.12}
em{font-style:normal;color:var(--sage)}
.sec{padding:64px 0}
.head{text-align:center;margin-bottom:38px}
.head h2{font-size:clamp(28px,4vw,42px);margin-top:10px}
.head .sub{color:var(--ink-soft);max-width:56ch;margin:14px auto 0}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:15px;padding:13px 28px;border-radius:999px;cursor:pointer;border:1.5px solid transparent;transition:.22s ease;white-space:nowrap;font-family:inherit}
.btn-fill{background:var(--sage);color:#fff}
.btn-fill:hover{background:var(--sage-d);transform:translateY(-2px);box-shadow:0 14px 26px -14px rgba(95,106,78,.7)}
.btn-line{background:transparent;border-color:#cdc4b4;color:var(--ink)}
.btn-line:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}

/* header */
header{position:sticky;top:0;z-index:60;background:rgba(250,247,242,.84);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:18px;height:var(--hh)}
.logo{display:flex;align-items:center;gap:10px}
.logo .mark{width:30px;height:30px;flex:0 0 auto;display:grid;place-items:center}
.logo .mark img{width:100%;height:100%;object-fit:contain}
.logo .word{font-family:var(--disp);font-weight:500;font-size:24px;letter-spacing:.16em;color:var(--ink);line-height:1}
.logo .word small{display:block;font-family:'Heebo',sans-serif;font-weight:500;font-size:8.5px;letter-spacing:.42em;color:var(--muted);margin-top:3px}
nav{margin-inline:auto}
nav ul{display:flex;gap:28px;list-style:none}
nav ul a{font-size:15px;color:var(--ink-soft);position:relative;padding-block:6px}
nav ul a:hover{color:var(--ink)}
nav ul a::after{content:"";position:absolute;bottom:0;right:0;width:0;height:1.5px;background:var(--sage);transition:.25s}
nav ul a:hover::after{width:100%}
.nav-r{display:flex;align-items:center;gap:6px}
.icon-btn{width:42px;height:42px;border:none;background:transparent;border-radius:50%;color:var(--ink);cursor:pointer;display:grid;place-items:center;position:relative;transition:.2s}
.icon-btn:hover{background:var(--bg2)}.icon-btn svg{width:24px;height:24px;stroke-width:1.8}
.cart-badge{position:absolute;top:0;left:0;min-width:17px;height:17px;padding:0 4px;background:var(--blush-d);color:#fff;border:2px solid var(--bg);border-radius:999px;font-size:10px;font-weight:700;line-height:1;display:grid;place-items:center;transform:scale(0);transition:transform .25s;box-sizing:border-box}
.cart-badge.show{transform:scale(1)}
.burger{display:none;flex-direction:column;gap:5px;width:42px;height:42px;border:none;background:transparent;cursor:pointer;align-items:center;justify-content:center}
.burger span{width:20px;height:2px;background:var(--ink);border-radius:2px;transition:.25s}
.burger.on span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.on span:nth-child(2){opacity:0}
.burger.on span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* hero */
.hero{padding:48px 0 30px}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}
.hero .eyebrow{margin-bottom:18px}
.hero h1{font-family:var(--disp);font-weight:500;font-size:clamp(40px,5.6vw,68px);line-height:1.05;letter-spacing:.01em}
.hero p{margin-top:20px;font-size:clamp(16px,1.6vw,18px);color:var(--ink-soft);max-width:44ch}
.hero .cta{display:flex;gap:13px;margin-top:30px;flex-wrap:wrap}
.hero-pic{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}
.hero-pic img{width:100%;height:520px;object-fit:cover}

/* trust bar */
.trust{background:var(--bg2);border-block:1px solid var(--line)}
.trust-row{display:flex;justify-content:space-between;gap:18px;padding:16px 26px;flex-wrap:wrap}
.trust span{display:inline-flex;align-items:center;gap:9px;font-size:14px;color:var(--ink-soft);font-weight:500}
.trust svg{width:22px;height:22px;color:var(--sage);flex:0 0 auto}

/* categories */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.cat{display:block;text-align:center}
.cat-img{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-s);aspect-ratio:1;background:var(--bg2)}
.cat-img img{width:100%;height:100%;object-fit:cover;transition:.4s}
.cat:hover .cat-img img{transform:scale(1.05)}
.cat span{display:block;margin-top:12px;font-family:var(--disp);font-size:19px;color:var(--ink)}

/* product grid */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-s)}
.card-img{position:relative;aspect-ratio:4/5;background:var(--bg2);overflow:hidden}
.card-img>img{width:100%;height:100%;object-fit:cover}
.card-tag{position:absolute;top:10px;right:10px;background:var(--sage);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;letter-spacing:.04em}
.card-tag.new{background:var(--blush-d)}
.swatch{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:14px;background:linear-gradient(180deg,transparent 50%,rgba(255,253,249,.86));opacity:0;transition:.3s}
.swatch img{width:78%;height:42%;object-fit:contain;mix-blend-mode:multiply}
.swatch b{position:absolute;bottom:14px;font-size:12px;color:var(--ink-soft);letter-spacing:.08em}
.card:hover .swatch,.card.swatch-on .swatch{opacity:1}
.card-body{padding:15px 16px 17px;display:flex;flex-direction:column;gap:4px;flex:1}
.card-name{font-family:var(--disp);font-size:18px;color:var(--ink)}
.card-desc{font-size:13px;color:var(--muted)}
.card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:12px}
.card-price{font-weight:700;font-size:17px;color:var(--ink)}
.add{border:1.5px solid var(--sage);color:var(--sage);background:transparent;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:.2s;font-family:inherit}
.add:hover{background:var(--sage);color:#fff}

/* ⭐ ritual builder */
.ritual{background:linear-gradient(180deg,var(--bg),var(--bg2));padding-top:72px;padding-bottom:72px}
.ritual .head em{color:var(--sage)}
.ritual-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}
.ritual-steps{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line)}
.rstep{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 8px;background:transparent;border:none;border-left:1px solid var(--line);cursor:pointer;transition:.2s;font-family:inherit}
.rstep:last-child{border-left:none}
.rstep .rs-no{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--bg2);color:var(--ink-soft);font-weight:700;font-size:14px;transition:.25s}
.rstep .rs-name{font-size:13.5px;color:var(--ink-soft);font-weight:500}
.rstep:hover{background:var(--bg)}
.rstep.active .rs-no{background:var(--sage);color:#fff}
.rstep.active .rs-name{color:var(--ink)}
.rstep.done .rs-no{background:var(--sage);color:#fff;opacity:.55}
.ritual-stage{display:grid;grid-template-columns:190px 1fr 170px;gap:26px;align-items:center;padding:26px 30px}
.ritual-prod{display:flex;justify-content:center}
.ritual-prod-img{width:200px;height:250px;border-radius:var(--radius);background:var(--bg2);overflow:hidden;position:relative}
.ritual-prod-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:translateY(10px);transition:.5s}
.ritual-prod-img img.on{opacity:1;transform:none}
.ritual-info{text-align:right}.ritual-info h3{font-size:26px;margin:4px 0 6px}
.ritual-step-no{font-size:12px;letter-spacing:.2em;color:var(--sage);font-weight:700}
.ritual-info p{color:var(--ink-soft);max-width:42ch}
.ritual-price{display:flex;align-items:center;justify-content:flex-start;gap:12px;margin-top:16px;font-size:15px;color:var(--ink-soft)}
.ritual-price b{color:var(--ink);font-size:17px}
.glow-wrap{display:flex;flex-direction:column;align-items:center;gap:10px}
.glow-ring{--pct:20%;width:140px;height:140px;border-radius:50%;position:relative;background:conic-gradient(var(--blush) var(--pct),var(--bg2) 0);transition:--pct .6s ease;padding:7px}
.glow-core{position:absolute;inset:7px;border-radius:50%;overflow:hidden;background:var(--bg2);box-shadow:0 0 var(--g,8px) rgba(216,167,160,.55)}
.glow-core img{width:100%;height:100%;object-fit:cover;transition:filter .6s ease;filter:brightness(.85) saturate(.9)}
.glow-label{font-size:12px;letter-spacing:.14em;color:var(--muted);font-weight:600;margin-top:4px}
.glow-label b{color:var(--sage-d)}
.ritual-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 30px;background:var(--bg2);border-top:1px solid var(--line);flex-wrap:wrap}
.ritual-bundle{text-align:right}
.bundle-label{display:block;font-family:var(--disp);font-size:18px;color:var(--ink)}
.bundle-prices{display:inline-flex;align-items:center;gap:10px;margin-top:4px;justify-content:flex-end}
.bundle-prices b{font-size:20px;color:var(--ink)}
.bundle-prices s{color:var(--muted);font-size:15px}
.bundle-save{background:var(--blush);color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;font-style:normal}

/* @keyframes-ish glow via JS sets --pct; fallback */
@property --pct{syntax:'<percentage>';inherits:false;initial-value:20%}

/* featured */
.featured{background:var(--bg2)}
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}
.feat-pic{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}
.feat-pic img{width:100%;height:480px;object-fit:cover}
.feat-txt h2{font-size:clamp(28px,3.6vw,40px);margin:8px 0 14px}
.feat-txt p{color:var(--ink-soft)}
.feat-list{list-style:none;margin:18px 0;display:flex;flex-direction:column;gap:10px}
.feat-list li{position:relative;padding-right:28px;color:var(--ink-soft)}
.feat-list li::before{content:"";position:absolute;right:0;top:7px;width:16px;height:16px;border-radius:50%;background:var(--sage);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 12l4 4L19 7'/%3E%3C/svg%3E");background-size:11px;background-repeat:no-repeat;background-position:center}
.feat-buy{display:flex;align-items:center;gap:18px;margin-top:24px}
.feat-buy b{font-size:26px;font-family:var(--disp)}

/* reviews */
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rev{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.stars{color:var(--blush-d);letter-spacing:2px;margin-bottom:10px}
.rev blockquote{font-size:15px;color:var(--ink-soft);line-height:1.8}
.rev figcaption{display:flex;align-items:center;gap:10px;margin-top:16px;font-weight:600;font-size:14px}
.ava{width:36px;height:36px;border-radius:50%;background:var(--sage);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}

/* about / ig */
.ig-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.ig{aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--bg2)}
.ig img{width:100%;height:100%;object-fit:cover;transition:.35s}
.ig:hover img{transform:scale(1.07)}

/* newsletter */
.news{background:var(--sage)}
.news-box{text-align:center;color:#fff;max-width:620px}
.news-box h2{color:#fff;font-size:clamp(26px,3.4vw,36px)}
.news-box p{margin:12px 0 22px;color:rgba(255,255,255,.85)}
.news form{display:flex;gap:10px;max-width:460px;margin-inline:auto}
.news input{flex:1;padding:14px 18px;border:none;border-radius:999px;font-family:inherit;font-size:15px}
.news input:focus{outline:2px solid var(--blush)}
.news .btn-fill{background:var(--ink);color:#fff}
.news .btn-fill:hover{background:#1c1a16}
.news .formok{display:none;margin-top:16px;font-weight:600;color:#fff}
.news .formok.show{display:block}

/* footer */
footer{background:var(--ink);color:#eee7da;padding:58px 0 0}
.fgrid{max-width:var(--maxw);margin-inline:auto;padding-inline:26px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px;padding-bottom:40px}
.flogo{width:140px;filter:brightness(0) invert(.92)}
.fbrand p{margin-top:14px;color:rgba(255,255,255,.6);font-size:14px;max-width:34ch}
.fcol h4{font-family:var(--disp);font-size:17px;color:var(--blush);margin-bottom:14px;font-weight:500}
.fcol a{display:block;color:rgba(255,255,255,.75);font-size:14px;margin-bottom:9px}
.fcol a:hover{color:#fff}
.copy{border-top:1px solid rgba(255,255,255,.12);padding:20px 26px;max-width:var(--maxw);margin-inline:auto;display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;justify-content:space-between;font-size:13px;color:rgba(255,255,255,.6)}
.legal-links{display:flex;gap:16px;flex-wrap:wrap}.legal-links a:hover{color:#fff}
.credit{color:rgba(255,255,255,.45)}

/* cart drawer */
.cart-overlay{position:fixed;inset:0;background:rgba(43,40,35,.4);opacity:0;visibility:hidden;transition:.3s;z-index:80}
.cart-overlay.open{opacity:1;visibility:visible}
.cart{position:fixed;top:0;left:0;height:100%;width:380px;max-width:90vw;background:var(--bg);z-index:81;display:flex;flex-direction:column;transform:translateX(-100%);transition:transform .35s cubic-bezier(.4,0,.2,1);box-shadow:0 0 60px -10px rgba(0,0,0,.3)}
.cart.open{transform:none}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}
.cart-head h3{font-size:21px}
.cart-close{border:none;background:transparent;font-size:20px;cursor:pointer;color:var(--ink-soft);width:34px;height:34px;border-radius:50%}
.cart-close:hover{background:var(--bg2)}
.cart-items{flex:1;overflow-y:auto;padding:10px 22px}
.citem{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.cart-items .citem:last-child{border-bottom:none}
.citem img{width:66px;height:66px;object-fit:contain;padding:7px;border-radius:12px;background:var(--prodbg)}
.citem .ci-b{flex:1;display:flex;flex-direction:column}
.ci-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.ci-name{font-family:var(--disp);font-size:15px}
.ci-price{color:var(--ink);font-weight:600;font-size:15px;white-space:nowrap}
.ci-unit{color:var(--muted);font-size:12px;margin-top:2px}
.ci-qty{display:inline-flex;align-items:center;gap:10px;margin-top:auto;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px 6px;width:fit-content}
.ci-qty button{border:none;background:transparent;cursor:pointer;font-size:15px;width:22px;color:var(--ink-soft)}
.ci-qty span{font-size:14px;font-weight:600;min-width:16px;text-align:center}
.cart-empty{flex:1;display:none;align-items:center;justify-content:center;text-align:center;color:var(--muted);padding:0 40px}
.cart.empty .cart-items{display:none}.cart.empty .cart-empty{display:flex}.cart.empty .cart-foot{display:none}
.cart-foot{border-top:1px solid var(--line);padding:18px 22px;background:var(--card)}
.cart-total{display:flex;justify-content:space-between;align-items:center;font-size:15px}
.cart-total b{font-family:var(--disp);font-size:22px}
.cart-note{font-size:12px;color:var(--muted);margin:6px 0 14px}
.cart-checkout{width:100%}

/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* FABs + a11y (shared pattern) */
.fab{position:fixed;bottom:22px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;z-index:70;box-shadow:0 10px 26px -8px rgba(0,0,0,.4);cursor:pointer;border:none;transition:.25s}
.fab:hover{transform:translateY(-3px)}.fab svg{width:25px;height:25px;fill:#fff}
.wa{right:22px;background:#25d366}.acc{left:22px;background:var(--sage)}
.acc-panel{position:fixed;left:22px;bottom:84px;z-index:70;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:12px;width:210px;display:none;flex-direction:column;gap:4px}
.acc-panel.open{display:flex}
.acc-panel .t{font-weight:700;font-size:13px;padding:6px 8px}
.acc-panel button{text-align:right;background:transparent;border:none;padding:9px 10px;border-radius:9px;font-family:inherit;font-size:14px;color:var(--ink-soft);cursor:pointer}
.acc-panel button:hover{background:var(--bg2);color:var(--ink)}
body.acc-contrast header,body.acc-contrast main,body.acc-contrast footer,body.acc-contrast section:not(main section),body.acc-contrast .legal:not(main .legal){filter:contrast(1.3)}
body.acc-links a{text-decoration:underline!important}
body.acc-readable *{font-family:Arial,"Segoe UI",sans-serif!important}
body.acc-noanim *,body.acc-noanim *::before,body.acc-noanim *::after{animation:none!important;transition:none!important}
body.acc-noanim .reveal,body.acc-noanim .up,body.acc-noanim .bento>.tile,body.acc-noanim .hero-frame,body.acc-noanim .mask .ml i{opacity:1!important;transform:none!important}
body.acc-cursor,body.acc-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='38' height='38' viewBox='0 0 24 24'%3E%3Cpath fill='%237e8c6a' d='M4 2l16 8-7 2-2 7z'/%3E%3C/svg%3E") 4 4,auto!important}

/* legal pages */
.legal{max-width:820px;margin:0 auto;padding:50px 26px 80px}
.legal h1{font-size:clamp(30px,5vw,42px)}
.legal .upd{color:var(--muted);font-size:13px;margin-top:8px}
.legal h2{font-size:22px;margin:28px 0 8px;color:var(--sage);font-family:var(--disp);font-weight:500}
.legal p,.legal li{font-size:16px;color:var(--ink-soft);margin-bottom:10px;line-height:1.85}
.legal ul{padding-right:22px}.legal a{color:var(--sage);text-decoration:underline}

@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

/* ===== responsive ===== */
@media(max-width:1000px){
  .hero-grid,.feat-grid{grid-template-columns:1fr;gap:30px}
  .hero-pic{order:-1}.hero-pic img{height:380px}
  .feat-pic img{height:380px}
  .grid,.cat-grid{grid-template-columns:repeat(2,1fr)}
  .rev-grid{grid-template-columns:1fr}
  .ig-grid{grid-template-columns:repeat(3,1fr)}
  .ritual-stage{grid-template-columns:1fr;text-align:center;gap:22px}
  .ritual-prod,.glow-wrap{justify-self:center}
  .ritual-info p{margin-inline:auto}.ritual-price{justify-content:center}
  .fgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  nav{position:fixed;inset:var(--hh) 0 auto 0;background:var(--card);border-bottom:1px solid var(--line);transform:translateY(-130%);transition:transform .3s ease;z-index:40;margin:0}
  nav.open{transform:none}
  nav ul{flex-direction:column;gap:0;padding:8px 24px 18px}
  nav ul li{border-bottom:1px solid var(--line)}nav ul a{display:block;padding:14px 0}
  .burger{display:flex}
  .logo{margin-inline:auto}
  .nav-r{margin-inline-start:0}
  .trust-row{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}
  .trust span{white-space:nowrap}
  .sec{padding:48px 0}
  .news form{flex-direction:column}
  .fgrid{grid-template-columns:1fr 1fr;gap:24px}
  .copy{flex-direction:column;align-items:flex-start;gap:8px}
  .ritual-steps{grid-template-columns:repeat(5,1fr)}
  .rstep{padding:12px 2px}.rstep .rs-name{font-size:11px}
  .ritual-foot{flex-direction:column;align-items:stretch;text-align:center}
  .ritual-foot .btn{width:100%}
}
@media(max-width:430px){
  .grid{grid-template-columns:1fr 1fr;gap:12px}
  .ig-grid{grid-template-columns:repeat(3,1fr);gap:8px}
  .card-name{font-size:16px}
}

/* ===== logo image in header ===== */
.logo-img{height:52px;width:auto;display:block}

/* ===== product card rating + featured link ===== */
.card{text-decoration:none}
.card-rating{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ink-soft);margin-top:2px}
.card-rating .rs{color:var(--blush-d)}
.card-rating .rc{color:var(--muted)}
.feat-link{font-size:14px;color:var(--sage-d);font-weight:600;text-decoration:underline}

/* ritual product image square (whole product) */
.ritual-prod-img{width:170px!important;height:200px!important;background:var(--prodbg)}
.ritual-prod-img img{object-fit:contain!important;padding:16px;filter:drop-shadow(0 16px 20px rgba(94,102,80,.16))}

/* ===== PRODUCT PAGE (PDP) ===== */
.pdp{padding:34px 0 60px}
.crumb{font-size:13px;color:var(--muted);margin-bottom:22px}
.crumb a{color:var(--ink-soft)}.crumb a:hover{color:var(--sage)}
.pdp-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.pdp-media{position:sticky;top:96px}
.pdp-main{border-radius:var(--radius-lg);overflow:hidden;background:var(--bg2);aspect-ratio:1;display:grid;place-items:center}
.pdp-main img{width:auto;height:auto;max-width:80%;max-height:92%;object-fit:contain}
.pdp-swatch{display:flex;align-items:center;gap:12px;margin-top:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px}
.pdp-swatch img{width:54px;height:54px;border-radius:50%;object-fit:cover;mix-blend-mode:multiply;background:var(--bg2)}
.pdp-swatch b{font-family:var(--disp);font-size:16px}.pdp-swatch span{font-size:13px;color:var(--muted);display:block}
.pdp-info h1{font-size:clamp(28px,3.4vw,40px);margin:6px 0 10px}
.pdp-rate{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-soft);margin-bottom:14px}
.pdp-rate .stars{color:var(--blush-d);letter-spacing:1px}
.pdp-price{font-family:var(--disp);font-size:30px;color:var(--ink);margin:6px 0 16px}
.pdp-short{color:var(--ink-soft);font-size:16px;line-height:1.8}
.pdp-buy{display:flex;align-items:center;gap:12px;margin:22px 0}
.qty-pick{display:inline-flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px}
.qty-pick button{border:none;background:transparent;font-size:18px;cursor:pointer;color:var(--ink-soft);width:22px}
.qty-pick span{min-width:18px;text-align:center;font-weight:600}
.pdp-buy .btn-fill{flex:1}
.pdp-trust{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft);margin-top:6px}
.pdp-trust span{display:inline-flex;align-items:center;gap:6px}.pdp-trust svg{width:16px;height:16px;color:var(--sage)}
/* info tabs (fixed-height body, content swaps in place) */
.pdp-tabs{margin-top:24px;border-top:1px solid var(--line)}
.tab-row{display:flex;gap:0;border-bottom:1px solid var(--line)}
.tabq{background:none;border:none;padding:15px 2px;margin-left:24px;font-family:inherit;font-size:15px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s,border-color .2s}
.tabq:last-child{margin-left:0}
.tabq:hover{color:var(--ink)}
.tabq.active{color:var(--ink);border-bottom-color:var(--sage)}
.tab-body{min-height:104px;padding-top:16px}
.tabpane{display:none;color:var(--ink-soft);font-size:15px;line-height:1.65}
.tabpane.active{display:block;animation:tabIn .28s ease}
.tabpane p{margin:0}
@keyframes tabIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.tab-ing{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0}
.tab-ing li{background:var(--bg2);border-radius:999px;padding:6px 14px;font-size:13.5px;color:var(--ink)}

/* bundle: what's inside */
.bundle-incl{max-width:var(--maxw);margin:54px auto 0;padding:0 48px}
.bi-head{text-align:right;margin-bottom:22px}
.bi-head h2{font-size:clamp(24px,3vw,32px);margin-top:8px}
.bi-head p{color:var(--ink-soft);margin-top:8px}
.bi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}
.bi-card{display:flex;flex-direction:column;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 14px 18px;transition:border-color .2s,transform .2s,box-shadow .2s}
.bi-card:hover{border-color:var(--sage);transform:translateY(-4px);box-shadow:var(--shadow-s)}
.bi-img{width:100%;aspect-ratio:1;border-radius:14px;overflow:hidden;background:var(--prodbg);margin-bottom:12px}
.bi-img img{width:100%;height:100%;object-fit:contain;padding:10px}
.bi-cat{font-size:11px;letter-spacing:.12em;color:var(--sage-d);text-transform:uppercase}
.bi-name{font-family:var(--disp);font-size:17px;color:var(--ink);margin-top:3px;line-height:1.25;min-height:2.5em;display:flex;align-items:center;justify-content:center}
.bi-price{font-size:15px;font-weight:600;color:var(--ink);margin-top:auto;padding-top:7px}

/* PDP reviews */
.pdp-reviews{margin-top:50px;border-top:1px solid var(--line);padding-top:40px}
.rev-summary{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:28px}
.rev-big{font-family:var(--disp);font-size:54px;line-height:1;color:var(--ink)}
.rev-summary .stars{color:var(--blush-d);font-size:20px;letter-spacing:2px}
.rev-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.rev-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.rev-card .stars{color:var(--blush-d);letter-spacing:1px}
.rev-card h4{font-family:var(--disp);font-weight:500;font-size:16px;margin:8px 0 6px}
.rev-card p{font-size:14px;color:var(--ink-soft);line-height:1.7}
.rev-card .who{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:13px;font-weight:600}
.rev-card .who .verified{margin-inline-start:auto;font-size:11px;color:var(--sage);font-weight:500;display:inline-flex;align-items:center;gap:4px}
.related{margin-top:54px}
.related h2{font-size:26px;text-align:center;margin-bottom:24px}

/* ===== CATEGORY PAGE ===== */
.catpage{padding:0 0 60px}
.cat-banner{position:relative;height:300px;overflow:hidden;display:grid;place-items:center;text-align:center;color:#fff}
.cat-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cat-banner::after{content:"";position:absolute;inset:0;background:rgba(43,40,35,.4)}
.cat-banner-in{position:relative;z-index:2;padding:0 24px}
.cat-banner h1{color:#fff;font-size:clamp(32px,4.4vw,46px)}
.cat-banner p{color:rgba(255,255,255,.9);max-width:50ch;margin:12px auto 0}
.catpage .crumb{padding:18px 26px 0;max-width:var(--maxw);margin-inline:auto}
.cat-bar{display:flex;align-items:center;justify-content:space-between;margin:30px 0 18px;flex-wrap:wrap;gap:10px}
.cat-bar .count{color:var(--muted);font-size:14px}

/* ===== bento + pdp responsive ===== */
@media(max-width:1000px){
  .bento{grid-auto-rows:200px}
  .pdp-grid{grid-template-columns:1fr;gap:30px}
  .pdp-media{position:static}
  .rev-list{grid-template-columns:1fr}
}
@media(max-width:760px){
  .cat-banner{height:220px}
}

/* ===== wow: entrance + float animations ===== */
@keyframes tileIn{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}
.bento>.tile{opacity:0;animation:tileIn .7s cubic-bezier(.2,.7,.2,1) forwards}
.bento>.tile:nth-child(1){animation-delay:.04s}
.bento>.tile:nth-child(2){animation-delay:.12s}
.bento>.tile:nth-child(3){animation-delay:.20s}
.bento>.tile:nth-child(4){animation-delay:.28s}
.bento>.tile:nth-child(5){animation-delay:.36s}
.bento>.tile:nth-child(6){animation-delay:.44s}
.bento>.tile:nth-child(7){animation-delay:.52s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.pdp-main img{animation:floaty 5.5s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){
  .bento>.tile{opacity:1;animation:none}
  .pdp-main img,.leaf-accent img{animation:none}
}

/* ============================================================
   ===============  LUMA v2 — editorial wow  ==================
   ============================================================ */
.sec{padding:96px 0}
.wrap{max-width:var(--maxw);padding-inline:48px}
.band-head{margin-bottom:40px}
.band-head .eyebrow{font-size:12px;letter-spacing:.16em;text-transform:none}
.band-head h2{font-size:clamp(30px,3.4vw,44px);margin-top:10px;font-weight:500}
.band-head.center{text-align:center}
.band-head.center .sub{color:var(--ink-soft);max-width:54ch;margin:14px auto 0}
.band-head.row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.textlink{font-size:15px;color:var(--ink);position:relative;padding-bottom:3px}
.textlink::after{content:"";position:absolute;right:0;bottom:0;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.textlink:hover::after{transform:scaleX(1)}

/* ---------- HERO ---------- */
.hero{position:relative;padding:34px 0 34px;overflow:hidden}
.hero-leaf{position:absolute;top:-60px;left:-40px;width:min(34vw,420px);opacity:.16;pointer-events:none;z-index:0}
.hero-leaf img{width:100%;animation:breathe 9s ease-in-out infinite}
.hero-grid{position:relative;z-index:1;max-width:var(--maxw);margin-inline:auto;padding-inline:48px;display:grid;grid-template-columns:1.04fr .96fr;gap:54px;align-items:center;min-height:auto}
.hero-frame{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);opacity:0;animation:heroIn 1.1s var(--ease) .1s both}
.hero-frame img{width:100%;height:66vh;max-height:580px;object-fit:cover;animation:breathe 12s ease-in-out infinite}
.hero-copy .eyebrow{font-size:12px;letter-spacing:.22em;margin-bottom:20px}
.hero h1{font-family:var(--disp);font-weight:500;font-size:clamp(46px,6vw,80px);line-height:1.05;letter-spacing:.01em;color:var(--ink)}
.hero h1 em{color:var(--sage);font-style:normal}
.mask .ml{display:block;overflow:hidden}
.mask .ml i{display:block;font-style:normal;transform:translateY(110%);animation:maskUp .95s cubic-bezier(.16,1,.3,1) forwards}
.mask .ml:nth-child(1) i{animation-delay:.15s}.mask .ml:nth-child(2) i{animation-delay:.27s}
.hero-copy p{margin-top:22px;font-size:18px;line-height:1.65;color:var(--ink-soft);max-width:40ch}
.link-wipe{display:inline-flex;align-items:center;gap:8px;margin-top:26px;font-size:15px;font-weight:600;color:var(--ink);position:relative;padding-bottom:5px}
.link-wipe svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.link-wipe::after{content:"";position:absolute;right:0;bottom:0;width:100%;height:1.5px;background:var(--sage);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.link-wipe:hover::after{transform:scaleX(1)}
.link-wipe:hover svg{transform:translateX(-5px)}
.hero-rate{margin-top:30px;font-size:14px;color:var(--ink-soft)}
.hero-rate .stars{color:var(--blush-d);letter-spacing:1px}
.up{opacity:0;transform:translateY(16px);animation:up .8s var(--ease) forwards}
.hero-copy .eyebrow.up{animation-delay:.1s}.hero-copy p.up{animation-delay:.5s}.link-wipe.up{animation-delay:.62s}.hero-rate.up{animation-delay:.72s}

/* ---------- MARQUEE ---------- */
.marquee{overflow:hidden;border-block:1px solid var(--line);background:var(--bg2);padding:14px 0}
.marquee-in{display:flex;align-items:center;gap:26px;white-space:nowrap;width:max-content;animation:marq 34s linear infinite}
.marquee:hover .marquee-in{animation-play-state:paused}
.marquee span{font-size:13px;letter-spacing:.18em;color:var(--ink-soft);font-weight:500}
.marquee i{color:var(--sage);font-style:normal}

/* ---------- ETHOS ---------- */
.ethos{padding:72px 0;background:var(--sage);margin:0}
.ethos p{font-family:var(--disp);font-weight:400;font-size:clamp(26px,3vw,40px);line-height:1.4;text-align:center;color:#faf7f2;max-width:24ch;margin-inline:auto}

/* ---------- SHOP BY RITUAL (3 tiles) ---------- */
.rit-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rtile{position:relative;display:block;border-radius:var(--radius);overflow:hidden;aspect-ratio:1/1}
.rt-img{position:absolute;inset:0}
.rt-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.rtile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(29,28,24,.5))}
.rtile span{position:absolute;bottom:22px;right:24px;z-index:2;font-family:var(--disp);font-size:24px;color:#fff;transform:translateY(6px);opacity:.92;transition:.3s var(--ease)}
.rtile:hover .rt-img img{transform:scale(1.05)}
.rtile:hover span{transform:none;opacity:1}

/* ---------- BENTO ---------- */
.bento-sec{background:var(--bg)}
.bento{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(186px,1fr);gap:24px}
.tile{position:relative;border-radius:var(--radius);overflow:hidden;display:flex;text-decoration:none;color:inherit}
.tile .ov{position:absolute;inset:0;overflow:hidden}
.t-feature{grid-column:1/7;grid-row:1/3;background:var(--bg2)}
.t-feature::before{content:"";position:absolute;inset:0;background:var(--bg) var(--bg) center/cover;background-image:var(--bg)}
.t-feature{background-image:var(--bg);background-size:cover;background-position:center}
.t-feature::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(29,28,24,.5))}
.leaf-corner{position:absolute;top:-30px;left:-20px;width:200px;opacity:.5;z-index:2;pointer-events:none}
.leaf-corner img{width:100%}
.t-feature-in{position:relative;z-index:3;align-self:flex-end;padding:30px;color:#fff}
.t-feature-in .eyebrow.light{color:rgba(255,255,255,.85)}
.t-feature-in strong{display:block;font-family:var(--disp);font-weight:500;font-size:30px;margin:6px 0 16px}
.pill{display:inline-block;background:var(--sage);color:#fff;font-size:14px;font-weight:600;padding:11px 22px;border-radius:999px;transition:background .25s}
.t-feature:hover .pill{background:var(--sage-d)}
.t-block{grid-column:7/13;grid-row:1;background:var(--sage);color:#fff;flex-direction:column;justify-content:center;padding:30px;gap:8px}
.t-block span{font-family:var(--disp);font-size:30px}
.t-block i{font-style:normal;font-size:14px;opacity:.85}
.t-shop{grid-column:7/10;grid-row:2;background:var(--tile);flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.t-shop img{height:120px;width:auto;object-fit:contain;mix-blend-mode:multiply;transition:transform .6s var(--ease)}
.t-shop:hover img{transform:scale(1.05)}
.t-shop-foot{margin-top:10px}
.t-shop-foot span{display:block;font-family:var(--disp);font-size:16px}
.t-shop-foot b{font-size:14px;color:var(--sage)}
.t-life{grid-column:10/13;grid-row:2;background-image:var(--bg);background-size:cover;background-position:center}
.t-life::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(29,28,24,.4))}
.t-life-cap{position:absolute;bottom:16px;right:18px;z-index:2;color:#fff;font-size:12px;letter-spacing:.06em}
.t-feature::before,.t-life::before,.t-feature{will-change:transform}
.tile:hover{box-shadow:var(--shadow)}

/* ---------- PRODUCT CARD (Aesop modular) ---------- */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{background:var(--prodbg);border:none;border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card-img{position:relative;aspect-ratio:1/1;background:var(--prodbg);overflow:hidden}
.card-img .pk{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:14px;filter:drop-shadow(0 14px 18px rgba(94,102,80,.18));transition:opacity .45s cubic-bezier(.4,0,.2,1),transform .6s var(--ease)}
.card-img .tx{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;padding:14px;border-radius:22px;transition:opacity .45s cubic-bezier(.4,0,.2,1)}
.card.has-tx:hover .card-img .pk{opacity:0}.card.has-tx:hover .card-img .tx{opacity:1}
.card-tag{position:absolute;top:12px;right:12px;z-index:2;background:var(--sage);color:#fff;font-size:11px;font-weight:700;padding:4px 11px;border-radius:999px}
.card-tag.new{background:var(--blush-d)}
.card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:3px;flex:1;position:relative}
.card-name{font-family:'Heebo',sans-serif;font-weight:600;font-size:15px;color:var(--ink);position:relative;width:fit-content}
.card-name::after{content:"";position:absolute;right:0;bottom:-2px;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.card:hover .card-name::after{transform:scaleX(1)}
.card-desc{font-size:13px;color:var(--ink-soft)}
.card-rating{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-soft);margin-top:2px}
.card-rating .rs{color:var(--blush-d)}
.card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:14px}
.card-price{font-weight:600;font-size:15px;color:var(--sage)}
.add{border:1.5px solid var(--sage);color:var(--sage);background:transparent;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:.2s;font-family:inherit;opacity:0;transform:translateY(6px)}
.card:hover .add{opacity:1;transform:none}
.add:hover{background:var(--sage);color:#fff}

/* ---------- INGREDIENTS 50/50 ---------- */
.ingredients{background:var(--bg2)}
.ing-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.ing-pic{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;background:var(--tile)}
.ing-pic img{width:100%;height:100%;object-fit:cover}
.ing-txt h2{font-size:clamp(28px,3.2vw,42px);margin:10px 0 16px;font-weight:500}
.ing-txt p{color:var(--ink-soft);font-size:16px;line-height:1.7}
.ing-list{list-style:none;margin-top:24px;display:flex;flex-direction:column}
.ing-list li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;border-top:1px solid var(--line)}
.ing-list b{font-family:var(--disp);font-weight:500;font-size:19px;color:var(--ink)}
.ing-list span{font-size:14px;color:var(--ink-soft)}

/* ---------- PULL QUOTE ---------- */
.quote{position:relative;padding:120px 0;text-align:center;overflow:hidden}
.quote-leaf{position:absolute;top:20px;left:6%;width:200px;opacity:.13;pointer-events:none}
.quote-leaf img{width:100%}
.quote blockquote{font-family:var(--disp);font-weight:500;font-size:clamp(28px,4vw,52px);line-height:1.3;color:var(--ink);max-width:20ch;margin-inline:auto}
.quote cite{display:block;margin-top:24px;font-style:normal;font-size:14px;letter-spacing:.08em;color:var(--sage)}

/* ---------- GIFT BAND ---------- */
.giftband{position:relative;overflow:hidden}
.gift-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.giftband::after{content:"";position:absolute;inset:0;background:rgba(29,28,24,.42)}
.gift-in{position:relative;z-index:2;text-align:center;color:#fff;padding:120px 48px}
.gift-in .eyebrow.light{color:rgba(255,255,255,.85)}
.gift-in h2{color:#fff;font-size:clamp(30px,3.6vw,46px);margin:10px 0 12px;font-weight:500}
.gift-in p{color:rgba(255,255,255,.9);max-width:42ch;margin:0 auto 24px}
.btn-blush{background:var(--blush);color:var(--ink)}
.btn-blush:hover{background:var(--blush-d);color:#fff;transform:translateY(-2px)}

/* ---------- reveal / motion ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}

@keyframes maskUp{to{transform:translateY(0)}}
@keyframes up{to{opacity:1;transform:none}}
@keyframes heroIn{from{opacity:0;transform:translateY(14px) scale(1.015)}to{opacity:1;transform:none}}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
@keyframes marq{to{transform:translateX(50%)}}

/* ---------- responsive ---------- */
@media(max-width:1000px){
  .wrap{padding-inline:24px}.sec{padding:64px 0}
  .hero-grid{grid-template-columns:1fr;gap:30px;min-height:0;padding-inline:24px;padding-top:10px}
  .hero-frame{order:-1}.hero-frame img{height:54vh}
  .hero h1{font-size:clamp(40px,9vw,56px)}
  .ing-grid{grid-template-columns:1fr;gap:30px}
  .grid{grid-template-columns:repeat(3,1fr)}
  .rit-tiles{grid-template-columns:1fr 1fr}
  /* bento -> 6 col */
  .bento{grid-template-columns:repeat(6,1fr)}
  .t-feature{grid-column:1/7;grid-row:1/2;min-height:300px}
  .t-block{grid-column:1/4;grid-row:2}.t-shop{grid-column:4/7;grid-row:2}.t-life{grid-column:1/7;grid-row:3;min-height:200px}
}
@media(max-width:600px){
  .grid{grid-template-columns:1fr 1fr;gap:14px}
  .rit-tiles{grid-template-columns:1fr;gap:14px}
  .bento{grid-template-columns:1fr;gap:14px}
  .t-feature,.t-block,.t-shop,.t-life{grid-column:1;grid-row:auto;min-height:240px}
  .ethos,.quote{padding:56px 0}
  .gift-in{padding:80px 24px}
}

/* ---------- PDP gallery (v2 multi-frame) ---------- */
.pdp-stage{position:relative;aspect-ratio:1;border-radius:var(--radius-lg);overflow:hidden;background:var(--tile)}
.pframe{position:absolute;inset:0;opacity:0;transition:opacity .5s var(--ease)}
.pframe.on{opacity:1}
.pf-stage{background:radial-gradient(120% 90% at 50% 30%,#f6f0e3,var(--prodbg));display:grid;place-items:center}
.pf-stage .pf-prod{width:auto;height:auto;max-width:54%;max-height:72%;object-fit:contain;filter:drop-shadow(0 26px 26px rgba(94,102,80,.16))}
.pf-leaf{position:absolute;top:6%;left:4%;width:34%;opacity:.5;pointer-events:none}
.pf-leaf img{width:100%}
.pf-cover img{width:100%;height:100%;object-fit:cover}
.pdp-thumbs{display:flex;gap:12px;margin-top:14px}
.thumb{width:66px;height:66px;border-radius:12px;overflow:hidden;border:1.5px solid transparent;background:var(--tile);cursor:pointer;padding:0;transition:.2s}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb.active{border-color:var(--sage)}
.thumb:first-child img{object-fit:contain;padding:8px;mix-blend-mode:multiply}
/* PDP trust chips */
.pdp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px}
.pdp-chips span{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-soft);background:var(--tile);border-radius:999px;padding:6px 13px}
.pdp-chips svg{width:14px;height:14px;color:var(--sage)}

/* ---------- hero sun emblem ---------- */
.hero-frame{position:relative}
.hero-emblem{position:absolute;left:-9%;top:50%;transform:translateY(-50%);width:clamp(260px,30vw,440px);opacity:.7;pointer-events:none;z-index:2}
.hero-emblem img{width:100%;animation:spin 60s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.hero-emblem img{animation:none}}

/* ---------- ethos story link ---------- */
.ethos .wrap{text-align:center}
.ethos-link{display:inline-flex;align-items:center;gap:8px;margin-top:26px;font-size:15px;font-weight:600;color:#faf7f2;position:relative;padding-bottom:5px}
.ethos-link svg{width:17px;height:17px;transition:transform .3s var(--ease)}
.ethos-link::after{content:"";position:absolute;right:0;bottom:0;width:100%;height:1.5px;background:#faf7f2;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.ethos-link:hover::after{transform:scaleX(1)}
.ethos-link:hover svg{transform:translateX(-5px)}

/* ---------- ABOUT / story page ---------- */
.about-hero{position:relative;height:46vh;min-height:340px;overflow:hidden;display:grid;place-items:center;text-align:center;color:#fff}
.about-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about-hero::after{content:"";position:absolute;inset:0;background:rgba(29,28,24,.4)}
.about-hero-in{position:relative;z-index:2;padding:0 24px}
.about-hero h1{color:#fff;font-size:clamp(34px,5vw,56px)}
.about-hero p{color:rgba(255,255,255,.92);max-width:46ch;margin:14px auto 0;font-size:17px}
.story{max-width:760px;margin:0 auto;padding:80px 24px}
.story .eyebrow{text-align:center;display:block;margin-bottom:12px}
.story h2{text-align:center;font-size:clamp(26px,3.2vw,38px);margin-bottom:26px}
.story p{font-size:17px;line-height:1.85;color:var(--ink-soft);margin-bottom:20px;text-align:center}
.values{background:var(--bg2);padding:80px 0}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:var(--maxw);margin:0 auto;padding:0 48px}
.value{background:var(--card);border-radius:var(--radius);padding:32px 26px;text-align:center}
.value .vico{width:48px;height:48px;margin:0 auto 16px;border-radius:50%;background:var(--prodbg);display:grid;place-items:center}
.value .vico svg{width:24px;height:24px;color:var(--sage)}
.value h3{font-family:var(--disp);font-size:22px;margin-bottom:8px}
.value p{font-size:14.5px;color:var(--ink-soft);line-height:1.7}
.story-cta{text-align:center;padding:80px 24px}
.story-cta h2{font-size:clamp(26px,3vw,38px);margin-bottom:18px}
@media(max-width:760px){.values-grid{grid-template-columns:1fr;padding:0 24px}}

/* ---------- bestsellers carousel ---------- */
.caro-nav{display:flex;gap:10px}
.caro-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:.2s}
.caro-btn:hover{background:var(--sage);border-color:var(--sage);color:#fff}
.caro-btn svg{width:20px;height:20px}
.caro{display:flex;gap:24px;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;padding-bottom:4px}
.caro::-webkit-scrollbar{display:none}
.caro .card{flex:0 0 calc((100% - 72px)/4);scroll-snap-align:start}
@media(max-width:1000px){.caro .card{flex:0 0 calc((100% - 24px)/2)}}
@media(max-width:600px){.caro .card{flex:0 0 78%}}

/* gift cards show a lifestyle photo full-bleed, not a floating packshot */
.card-img .pk.photo{padding:0;object-fit:cover;filter:none;mix-blend-mode:normal}

/* ---------- ritual AM/PM toggle ---------- */
.ritual-toggle{display:inline-flex;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px;margin:0 auto 26px;justify-content:center}
.ritual{text-align:center}
.ritual .ritual-toggle{display:flex;width:fit-content}
.rt-tab{display:inline-flex;align-items:center;gap:8px;border:none;background:transparent;color:var(--ink-soft);font-family:inherit;font-size:14.5px;font-weight:600;padding:10px 22px;border-radius:999px;cursor:pointer;transition:.25s}
.rt-tab svg{width:17px;height:17px}
.rt-tab.active{background:var(--sage);color:#fff}

/* ---------- ritual AM/PM mood theming ---------- */
.rt-tab svg{width:18px;height:18px}
.ritual{transition:background .6s ease}
/* evening: dusk twilight mood */
.ritual.is-pm{background:linear-gradient(180deg,#3c3a46,#2d2b35)}
.ritual.is-pm .band-head .eyebrow{color:#cdbce0}
.ritual.is-pm .band-head h2{color:#f3eef7}
.ritual.is-pm .band-head h2 em{color:#c9a7d6}
.ritual.is-pm .band-head .sub{color:rgba(243,238,247,.78)}
.ritual.is-pm .ritual-toggle{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16)}
.ritual.is-pm .rt-tab{color:rgba(243,238,247,.7)}
.ritual.is-pm .rt-tab.active{background:#6b5b86;color:#fff}
.ritual.is-pm .glow-ring{--blush:#c9a7d6}

/* ===== product search overlay ===== */
.search-overlay{position:fixed;inset:0;background:rgba(40,36,30,.42);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:120;backdrop-filter:blur(2px)}
.search-overlay.open{opacity:1;visibility:visible}
.search-panel{position:fixed;top:0;left:0;right:0;background:var(--bg);z-index:121;transform:translateY(-100%);transition:transform .38s var(--ease);box-shadow:0 24px 60px -24px rgba(0,0,0,.35);max-height:82vh;display:flex;flex-direction:column}
.search-panel.open{transform:none}
.search-bar{display:flex;align-items:center;gap:14px;max-width:760px;margin:0 auto;width:100%;padding:26px 26px;border-bottom:1px solid var(--line)}
.search-bar svg{width:22px;height:22px;color:var(--muted);flex:none}
.search-bar input{flex:1;border:none;background:none;font-family:inherit;font-size:21px;color:var(--ink);outline:none}
.search-bar input::placeholder{color:var(--muted)}
.search-close{border:none;background:var(--bg2);width:36px;height:36px;border-radius:50%;cursor:pointer;color:var(--ink);font-size:15px;flex:none;transition:.2s}
.search-close:hover{background:var(--line)}
.search-results{max-width:760px;margin:0 auto;width:100%;padding:14px 26px 30px;overflow-y:auto}
.search-hint,.search-empty{color:var(--muted);font-size:12.5px;letter-spacing:.08em;padding:6px 6px 12px}
.search-empty{padding:34px 0;text-align:center;font-size:15px;letter-spacing:0}
.sr-item{display:flex;align-items:center;gap:16px;padding:10px;border-radius:14px;transition:background .2s}
.sr-item:hover{background:var(--bg2)}
.sr-img{width:54px;height:54px;flex:none;border-radius:10px;overflow:hidden;background:var(--tile)}
.sr-img img{width:100%;height:100%;object-fit:contain;padding:6px}
.sr-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.sr-name{font-size:16px;color:var(--ink)}
.sr-cat{font-size:12.5px;color:var(--ink-soft)}
.sr-price{font-weight:600;color:var(--ink);white-space:nowrap}

/* ============================================================
   MOBILE OVERHAUL — full responsive pass
   ============================================================ */
@media(max-width:760px){
  /* header icons a touch larger + comfortable tap targets */
  .icon-btn{width:46px;height:46px}
  .icon-btn svg{width:25px;height:25px}

  /* HERO: image on top, copy below, sun emblem small + tucked in corner */
  .hero{padding:16px 0 30px}
  .hero-grid{gap:20px;padding-inline:20px;padding-top:6px}
  .hero-frame{order:-1}
  .hero-frame img{height:auto;aspect-ratio:1/1;max-height:none;object-position:74% center}
  .hero-copy{text-align:right}
  .hero h1{font-size:clamp(34px,10vw,46px)}
  .hero-copy p{font-size:16px;margin-top:14px;max-width:none}
  .hero-rate{margin-top:18px}
  .hero-emblem{width:128px;left:auto;right:-18px;top:auto;bottom:-16px;transform:none;opacity:.5}

  /* BESTSELLERS: one card per view + snap centered */
  .band-head.row{flex-direction:row;align-items:center;justify-content:space-between;gap:10px}
  .caro{gap:14px}
  .caro .card{flex:0 0 86%!important;scroll-snap-align:center}

  /* RITUAL: clean single column, nothing oversized */
  .ritual{padding-top:46px;padding-bottom:46px}
  .rstep{padding:11px 2px}
  .rstep .rs-no{width:26px;height:26px;font-size:13px}
  .rstep .rs-name{font-size:10.5px}
  .ritual-stage{grid-template-columns:1fr;text-align:center;gap:16px;padding:22px 18px}
  .ritual-prod-img{width:148px!important;height:178px!important;margin-inline:auto}
  .ritual-info{text-align:center}
  .ritual-info h3{font-size:23px}
  .ritual-info p{margin-inline:auto;font-size:14.5px;max-width:34ch}
  .ritual-price{justify-content:center}
  .glow-wrap{margin-inline:auto}
  .glow-ring{width:118px;height:118px}
  .ritual-foot{flex-direction:column;align-items:stretch;text-align:center;gap:14px;padding:16px 18px}
  .ritual-bundle{text-align:center}
  .bundle-prices{justify-content:center}
  .ritual-foot .btn{width:100%}

  /* category tiles + section headings */
  .rit-tiles{grid-template-columns:1fr 1fr;gap:12px}
  .band-head h2{font-size:clamp(26px,7.5vw,34px)}
  .band-head.center .sub{font-size:15px}

  /* FABs: smaller + tucked, panel above them */
  .fab{width:48px;height:48px;bottom:16px}
  .fab.wa{right:16px}
  .fab.acc{left:16px}
  .fab svg{width:22px;height:22px}
  .acc-panel{bottom:72px;left:16px}

  /* PDP: comfortable spacing */
  .pdp-grid{gap:24px}
  .bundle-incl{padding:0 20px}
}
@media(max-width:430px){
  .grid{grid-template-columns:1fr 1fr;gap:12px}
  .caro .card{flex:0 0 88%!important}
  .hero-emblem{width:116px}
  .bi-grid{grid-template-columns:1fr 1fr}
}

/* shorter product cards on mobile (sit above floating buttons) */
@media(max-width:760px){ .card-img{aspect-ratio:1/1} }

/* hide browser native search clear (we have our own close) */
.search-bar input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}

/* ============================================================
   MOBILE pass 2 — compact tweaks
   ============================================================ */
/* category tiles: the lone "מארזים" tile spans both columns */
@media(max-width:1000px){
  .rit-tiles .rtile:nth-child(3){grid-column:1 / -1;aspect-ratio:16/10}
}
@media(max-width:760px){
  /* bestseller card: more compact so it sits well above the floating buttons */
  .caro .card{flex:0 0 74%!important}
  .card-body{padding:12px 14px 14px;gap:3px}
  .card-name{font-size:16px}
  .card-desc{font-size:12.5px;line-height:1.4}
  .card-rating{font-size:12px}
  .card-foot{padding-top:10px}
  .add{padding:7px 14px;font-size:12.5px}

  /* ritual: compact layout — product + glow meter side by side, info below */
  .ritual-stage{grid-template-columns:1fr 1fr;grid-template-areas:"prod glow" "info info"!important;gap:14px 16px;padding:20px 16px;align-items:center}
  .ritual-prod{grid-area:prod;justify-self:center}
  .ritual-prod-img{width:118px!important;height:144px!important}
  .glow-wrap{grid-area:glow;justify-self:center;gap:6px}
  .glow-ring{width:104px!important;height:104px!important}
  .glow-label{font-size:11px}
  .ritual-info{grid-area:info;text-align:center}
  .ritual-info h3{font-size:21px;margin:2px 0 4px}
  .ritual-info p{font-size:13.5px;max-width:42ch;margin-inline:auto}
  .ritual .band-head.center{margin-bottom:22px}
  .ritual-toggle{margin-bottom:18px}
}
@media(max-width:430px){
  .caro .card{flex:0 0 80%!important}
}

/* ============================================================
   MOBILE pass 3 — carousels, compact cards, footer, polish
   ============================================================ */
@media(max-width:760px){
  /* home reviews -> swipeable carousel */
  .rev-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}
  .rev-grid::-webkit-scrollbar{display:none}
  .rev-grid .rev{flex:0 0 84%;scroll-snap-align:center}

  /* product-page reviews -> swipeable carousel */
  .rev-list{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}
  .rev-list::-webkit-scrollbar{display:none}
  .rev-list .rev-card{flex:0 0 86%;scroll-snap-align:center}

  /* bundle "what's inside" -> swipeable carousel */
  .bi-grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}
  .bi-grid::-webkit-scrollbar{display:none}
  .bi-grid .bi-card{flex:0 0 46%;scroll-snap-align:start}

  /* compact product cards (drop the description line on mobile) */
  .card-desc{display:none}
  .card-body{padding:11px 13px 13px}

  /* footer: centered, with breathing room above floating buttons */
  .copy{flex-direction:column;align-items:center;text-align:center;gap:7px}
  .credit,.legal-links{justify-content:center}
  footer{padding-bottom:84px}
}

/* ============================================================
   MOBILE tap targets — meet 40px+ touch standard
   ============================================================ */
@media(max-width:760px){
  .add{padding:10px 16px;min-height:40px}
  .cart-close{width:40px;height:40px;font-size:17px}
  .search-close{width:40px;height:40px}
  .tabq{padding:17px 4px}
  .qty-pick button{min-width:42px;min-height:42px}
  .fcol a{padding:6px 0;margin-bottom:2px}
  .legal-links a,.copy a,.crumb a{display:inline-block;padding:4px 0}
  .caro-btn{width:46px;height:46px}
}

/* ============================================================
   carousels scroll horizontally only — vertical gestures pass to the page
   ============================================================ */
.caro{touch-action:pan-x;overscroll-behavior-x:contain}
@media(max-width:760px){
  .rev-grid,.rev-list,.bi-grid{overflow-y:hidden;touch-action:pan-x;overscroll-behavior-x:contain}
}

/* related products -> swipeable carousel on mobile */
@media(max-width:760px){
  .related .grid{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x;overscroll-behavior-x:contain;padding-bottom:6px}
  .related .grid::-webkit-scrollbar{display:none}
  .related .grid .card{flex:0 0 60%;scroll-snap-align:center}
}

/* ============================================================
   sensible carousel card sizing — ~2 compact cards per view
   ============================================================ */
@media(max-width:760px){
  .caro .card{flex:0 0 47%!important}
  .related .grid .card{flex:0 0 47%!important}
  .caro .card .card-name,.related .grid .card-name{font-size:15px}
}
@media(max-width:360px){
  .caro .card{flex:0 0 50%!important}
  .related .grid .card{flex:0 0 50%!important}
}

/* ============================================================
   stable sizing + list polish
   ============================================================ */
/* ritual: reserve the description height so the box never resizes between steps */
.ritual-info p{min-height:50px}
@media(max-width:760px){ .ritual-info p{min-height:62px} }
/* mobile menu: never a divider after the LAST item */
@media(max-width:760px){ nav ul li:last-child{border-bottom:none} }

/* ============================================================
   MOBILE header + dropdown menu rework
   ============================================================ */
.nav-backdrop{position:fixed;inset:0;background:rgba(40,36,30,.32);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:35}
.nav-backdrop.show{opacity:1;visibility:visible}
.nav-search-li{display:none}
.nav-search-li a{display:flex;align-items:center;justify-content:flex-end;color:var(--ink)!important}
@media(max-width:760px){
  /* burger on the right, logo perfectly centered, cart on the left */
  .nav{justify-content:space-between;position:relative;gap:0}
  .logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
  .nav-r{margin:0}
  .nav-r .icon-btn[aria-label="חיפוש"]{display:none}  /* search moves into the menu */
  /* dropdown opens just below the fixed header */
  nav{top:var(--hh)}
  nav.open{box-shadow:0 20px 34px -20px rgba(0,0,0,.28)}
  .nav-search-li{display:block}
}

/* ============================================================
   mobile polish: hero emblem on image, clean carousel cuts, compact ritual
   ============================================================ */
@media(max-width:760px){
  /* spinning sun emblem peeking over the hero image (like desktop) */
  .hero-emblem{width:138px;left:-34px;right:auto;top:30vw;bottom:auto;transform:none;opacity:.6;z-index:3}

  /* product carousels: snap to card start so auto-advance never cuts mid-card */
  .caro .card,.related .grid .card,.bi-grid .bi-card{scroll-snap-align:start}
  .caro .card{flex:0 0 49%!important}
  .related .grid .card{flex:0 0 49%!important}
  .caro .card .card-body,.related .grid .card-body{padding:10px 12px 12px;gap:2px}

  /* ritual: compact enough for the fold, keeps the glow meter */
  .ritual{padding-top:34px;padding-bottom:34px}
  .ritual .band-head.center{margin-bottom:14px}
  .ritual .band-head.center .sub{display:none}
  .ritual-toggle{margin-bottom:12px}
  .ritual-steps .rstep{padding:9px 2px}
  .ritual-stage{gap:8px 14px;padding:14px 16px}
  .ritual-prod-img{width:108px!important;height:128px!important}
  .glow-ring{width:94px!important;height:94px!important}
  .glow-label{font-size:10.5px}
  .ritual-info h3{font-size:20px;margin:0 0 3px}
  .ritual-info .ritual-step-no{font-size:12px}
  .ritual-info p{min-height:56px;font-size:13px}
  .ritual-foot{padding:12px 16px;gap:9px}
}

/* ============================================================
   menu polish + full-bleed hero + balanced ritual
   ============================================================ */
/* search item: align right like the other menu links, icon trailing */
.nav-search-li a{justify-content:flex-start!important;gap:8px}
/* header turns opaque while the menu is open so the dropdown emerges from behind it */
header.nav-solid{background:var(--bg);backdrop-filter:none}

@media(max-width:760px){
  /* hero image full-bleed, edge to edge, no frame */
  .hero{padding:0 0 28px}
  .hero-grid{padding-inline:0;gap:0}
  .hero-frame{order:-1;border-radius:0;box-shadow:none;margin-top:calc(-1 * var(--hh))}
  .hero-frame img{aspect-ratio:3/4;height:auto;max-height:none;object-position:70% 26%}
  .hero-copy{padding:22px 20px 0}
  /* header floats over the top of the image */
  header{background:rgba(250,247,242,.62)}
  .hero-emblem{width:190px;left:-46px;right:auto;top:16vw;bottom:auto;transform:none;opacity:.5;z-index:3}

  /* ritual info: balanced rhythm */
  .ritual-info .ritual-step-no{margin-top:7px}
  .ritual-info p{margin-bottom:2px}
  .ritual-price{margin-top:6px!important}
}

/* ============================================================
   infinite marquee structure + full-bleed carousels + hero tuning
   ============================================================ */
.mq{overflow:hidden!important}
.mq-track{display:flex;width:max-content;will-change:transform}
.caro-nav{display:none}                 /* continuous carousel: no manual arrows */

@media(max-width:760px){
  /* every mobile carousel bleeds to the full screen width */
  .mq{width:100vw;margin-inline:calc(50% - 50vw);padding-inline:16px}
  /* hero: show more of her, big sun like desktop */
  .hero-frame img{object-position:86% 22%}
  .hero-emblem{width:min(62vw,290px);left:-11vw;right:auto;top:13vw;bottom:auto;transform:none;opacity:.5;z-index:3}
}

/* carousel cards are already moving — kill the redundant entrance/hover animation */
.mq-track > *{opacity:1!important;transform:none!important;transition:none!important;animation:none!important;transition-delay:0s!important}

/* ============================================================
   ritual stage — clean centered single column (mobile)
   product → step details → glow meter (your progress)
   ============================================================ */
@media(max-width:760px){
  .ritual-stage{display:flex!important;flex-direction:column;align-items:center;text-align:center;gap:0;padding:24px 20px}
  .ritual-prod{order:0;justify-self:center}
  .ritual-prod-img{width:122px!important;height:146px!important;margin-bottom:10px}
  .ritual-info{order:0;text-align:center;width:100%}
  .ritual-info .ritual-step-no{margin-top:2px}
  .ritual-info h3{font-size:22px;margin:3px 0 6px}
  .ritual-info p{min-height:0;font-size:13.5px;line-height:1.6;max-width:36ch;margin:0 auto}
  .ritual-info .ritual-price{justify-content:center;margin-top:12px;font-size:15px}
  .glow-wrap{order:0;width:100%;margin-top:18px;padding-top:18px;border-top:1px solid rgba(120,110,95,.18);gap:8px}
  .glow-ring{width:104px!important;height:104px!important}
  .ritual.is-pm .glow-wrap{border-top-color:rgba(255,255,255,.14)}
}

/* hero mobile: shorter image, no jitter, half-sun bigger */
@media(max-width:760px){
  .hero-frame img{aspect-ratio:3/2;object-position:80% 28%;animation:none}
  .hero-emblem{width:82vw;left:-41vw;right:auto;top:-6vw;bottom:auto;transform:none;opacity:.5;z-index:3}
}

/* GPU keyframe marquee — seamless, no main-thread jank */
@keyframes cl-mq{ to{ transform:translate3d(calc(-1 * var(--mq)),0,0); } }

/* hero: show her eyes (more of the top) */
@media(max-width:760px){ .hero-frame img{object-position:80% 14%} }

/* ============================================================
   Swiper carousels (replaces the custom marquee)
   ============================================================ */
.caro.swiper,.rev-grid.swiper,.rev-list.swiper,.bi-grid.swiper,.related .grid.swiper{display:block;gap:0;padding:0;overflow:hidden}
.swiper-slide{height:auto;display:flex}
.swiper-slide > *{width:100%!important;flex:0 0 auto!important;max-width:none!important;margin:0!important;opacity:1!important;transform:none!important}
/* slide widths (desktop) */
.caro .swiper-slide{width:240px}
.related .grid .swiper-slide{width:230px}
.rev-grid .swiper-slide{width:360px}
.rev-list .swiper-slide{width:340px}
.bi-grid .swiper-slide{width:190px}
@media(max-width:760px){
  .caro.swiper,.rev-grid.swiper,.rev-list.swiper,.bi-grid.swiper,.related .grid.swiper{width:100vw;margin-inline:calc(50% - 50vw);padding:0}
  .caro .swiper-slide,.related .grid .swiper-slide{width:46vw}
  .rev-grid .swiper-slide,.rev-list .swiper-slide{width:80vw}
  .bi-grid .swiper-slide{width:42vw}
}

/* hero eyes: pull image only slightly behind header so eyes sit below it */
@media(max-width:760px){
  .hero-frame{margin-top:-36px}
  .hero-frame img{aspect-ratio:3/2;object-position:78% 20%}
  /* wider carousel cards so text isn't cramped */
  .caro .swiper-slide,.related .grid .swiper-slide{width:56vw}
  .bi-grid .swiper-slide{width:44vw}
}

/* wider carousel cards so product names/ratings fit on one line */
@media(max-width:760px){
  .caro .swiper-slide,.related .grid .swiper-slide{width:64vw}
  .caro .card-name,.related .card-name{font-size:15px}
  .caro .card-rating,.related .card-rating{font-size:11.5px;white-space:nowrap}
}

/* ritual: full-width product image band (like the hero), then details below */
@media(max-width:760px){
  .ritual-stage{display:block!important;padding:0}
  .ritual-prod{width:100%;margin:0;justify-self:stretch}
  .ritual-prod-img{width:100%!important;height:210px!important;border-radius:0!important;background:var(--prodbg)!important;margin:0!important}
  .ritual-prod-img img{padding:24px!important;object-fit:contain!important}
  .ritual.is-pm .ritual-prod-img{background:#3a3744!important}
  .ritual-info{text-align:center;padding:22px 20px 0}
  .glow-wrap{width:auto;margin:18px auto 0;padding-top:18px;border-top:1px solid rgba(120,110,95,.18)}
  .ritual.is-pm .glow-wrap{border-top-color:rgba(255,255,255,.14)}
}

/* carousel polish: shorter card image (so wide cards aren't absurdly tall), edge padding, manual arrows */
@media(max-width:760px){
  .caro .card-img,.related .card-img{aspect-ratio:auto!important;height:172px!important}
  .caro.swiper,.rev-grid.swiper,.rev-list.swiper,.bi-grid.swiper,.related .grid.swiper{padding-inline:16px}
}
.sw-nav{display:flex;gap:12px;justify-content:center;margin-top:18px}
.sw-arr{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:.2s}
.sw-arr:hover{background:var(--sage);border-color:var(--sage);color:#fff}
.sw-arr svg{width:20px;height:20px}
.sw-arr.swiper-button-disabled{opacity:.35;pointer-events:none}

/* ===== slide widths for slidesPerView:auto (authoritative, fixes loop+gaps) ===== */
.caro .swiper-slide{width:240px!important}
.related .grid .swiper-slide{width:232px!important}
.rev-grid .swiper-slide{width:340px!important}
.rev-list .swiper-slide{width:330px!important}
.bi-grid .swiper-slide{width:200px!important}
@media(max-width:900px){
  .caro .swiper-slide,.related .grid .swiper-slide{width:33%!important}
  .rev-grid .swiper-slide,.rev-list .swiper-slide{width:46%!important}
}
@media(max-width:760px){
  .caro .swiper-slide,.related .grid .swiper-slide{width:72%!important}
  .rev-grid .swiper-slide,.rev-list .swiper-slide{width:85%!important}
  .bi-grid .swiper-slide{width:47%!important}
}

/* ritual: details right-aligned, glow meter on the left straddling image/description */
@media(max-width:760px){
  .ritual-stage{position:relative;display:block!important;padding:0}
  .ritual-prod-img{width:100%!important;height:200px!important;border-radius:0!important;background:var(--prodbg)!important;margin:0!important}
  .ritual-info{text-align:right!important;padding:20px 22px 24px 120px!important}
  .ritual-info h3{margin:2px 0 6px}
  .ritual-info p{margin:0;max-width:none}
  .ritual-info .ritual-price{justify-content:flex-start!important;margin-top:12px}
  .glow-wrap{position:absolute!important;left:14px;top:200px;transform:translateY(-50%);margin:0!important;padding:0!important;border:none!important;width:auto;z-index:4}
  .glow-ring{width:104px!important;height:104px!important}
  .glow-label{white-space:nowrap}
}

/* ===== continuous seamless marquee (auto carousels) ===== */
.mqx{overflow:hidden!important;display:block!important}
.mq-track{display:flex;width:max-content;will-change:transform}
@keyframes mqscroll{ from{transform:translateX(0)} to{ transform:translateX(-50%); } }
.mq-item{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
@media(max-width:760px){
  .caro.mqx,.rev-grid.mqx,.rev-list.mqx,.bi-grid.mqx{width:100vw;margin-inline:calc(50% - 50vw);padding:0}
}

/* ============================================================
   UNIFIED compact carousel product card (no empty middle gap, near-square, tight)
   ============================================================ */
.caro .card-img,.related .card-img{aspect-ratio:auto!important;height:148px!important}
.caro .card-body,.related .card-body{padding:12px 14px 14px!important;gap:3px!important;justify-content:flex-start!important}
.caro .card-desc,.related .card-desc{display:none!important}
.caro .card-name,.related .card-name{min-height:2.5em;font-size:15px;line-height:1.25}
.caro .card-rating,.related .card-rating{white-space:nowrap;font-size:12px;margin-top:2px}
.caro .card-foot,.related .card-foot{margin-top:8px!important;padding-top:0!important}
/* related (Swiper) slide widths to match the marquee cards */
.related .grid .swiper-slide{width:200px!important}
@media(max-width:760px){ .related .grid .swiper-slide{width:46vw!important} }

/* ritual fine-tune: spacing around step title, description stretches left, tidier footer */
@media(max-width:760px){
  .ritual-info{padding:18px 22px 22px 22px!important}
  .ritual-info .ritual-step-no{padding-left:112px;margin-top:2px}
  .ritual-info h3{padding-left:112px;margin:10px 0 10px!important}
  .ritual-info p{padding-left:0;margin:0}
  .ritual-info .ritual-price{padding-left:0;margin-top:12px}
  .ritual-foot{padding:14px 18px!important;gap:10px!important}
  .bundle-label{font-size:15.5px}
  .bundle-prices b{font-size:18px}
}

/* ===== SERVICE PAGES (shipping / tracking / contact / faq) ===== */
.svc-hero{position:relative;background:var(--bg2);border-bottom:1px solid var(--line);padding:54px 0 48px;text-align:center}
.svc-hero .wrap{max-width:760px}
.svc-hero .crumb{justify-content:center;margin-bottom:14px}
.svc-hero .eyebrow{display:block;margin-bottom:12px}
.svc-hero h1{font-size:clamp(30px,5vw,46px);font-weight:500}
.svc-hero p{color:var(--ink-soft);max-width:52ch;margin:14px auto 0;font-size:16.5px}
.svc-wrap{max-width:920px;margin:0 auto;padding:56px 26px 80px}
.svc-narrow{max-width:680px}
.svc-block{margin-bottom:44px}
.svc-block:last-child{margin-bottom:0}
.svc-block h2{font-size:clamp(22px,2.6vw,28px);font-weight:500;margin-bottom:8px}
.svc-block>p{color:var(--ink-soft);font-size:16px;line-height:1.85;margin-bottom:14px}
.svc-block .svc-lead{color:var(--ink-soft);font-size:16px;margin-bottom:22px}
.svc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.svc-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px}
.svc-card .svc-ico{width:46px;height:46px;border-radius:50%;background:var(--prodbg);display:grid;place-items:center;margin-bottom:14px}
.svc-card .svc-ico svg{width:23px;height:23px;color:var(--sage)}
.svc-card h3{font-family:var(--disp);font-size:18px;font-weight:500;margin-bottom:6px}
.svc-card p{color:var(--ink-soft);font-size:14.5px;line-height:1.7;margin:0}
.svc-card .svc-tag{display:inline-block;margin-top:12px;font-weight:600;font-size:14px;color:var(--sage)}
.svc-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.svc-table th,.svc-table td{padding:15px 18px;text-align:right;font-size:15px;border-bottom:1px solid var(--line)}
.svc-table th{background:var(--bg2);font-family:var(--disp);font-weight:500;color:var(--ink)}
.svc-table tr:last-child td{border-bottom:none}
.svc-table td:last-child{color:var(--sage);font-weight:600;white-space:nowrap}
.svc-note{margin-top:16px;padding:14px 18px;background:var(--bg2);border-radius:14px;font-size:14.5px;color:var(--ink-soft)}
.svc-steps{counter-reset:svcstep;display:grid;gap:14px;margin-top:6px}
.svc-steps li{list-style:none;position:relative;padding:16px 56px 16px 18px;background:var(--card);border:1px solid var(--line);border-radius:14px;font-size:15px;color:var(--ink-soft)}
.svc-steps li::before{counter-increment:svcstep;content:counter(svcstep);position:absolute;right:16px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:var(--sage);color:#fff;font-weight:700;font-size:14px;display:grid;place-items:center}
.svc-steps li b{color:var(--ink);font-weight:600}

/* form (contact + tracking) */
.svc-form{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px}
.svc-field{margin-bottom:18px}
.svc-field label{display:block;font-weight:600;font-size:14.5px;margin-bottom:7px;color:var(--ink)}
.svc-field label .req{color:var(--blush-d)}
.svc-input{width:100%;padding:13px 16px;border:1.5px solid var(--line);border-radius:12px;font-family:inherit;font-size:15px;background:var(--bg);color:var(--ink);transition:.18s}
.svc-input:focus{outline:none;border-color:var(--sage);background:#fff}
textarea.svc-input{resize:vertical;min-height:120px;line-height:1.7}
.svc-form .btn-fill{width:100%}
.svc-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.svc-ok{display:none;margin-top:18px;padding:14px 18px;background:#eef3e6;border:1px solid #cfdcbb;border-radius:12px;color:var(--sage-d);font-weight:600;font-size:15px}
.svc-ok.show{display:block}

/* contact layout */
.svc-contact{display:grid;grid-template-columns:1.1fr .9fr;gap:32px;align-items:start}
.svc-info{background:var(--bg2);border-radius:var(--radius);padding:30px}
.svc-info h2{font-size:22px;font-weight:500;margin-bottom:18px}
.svc-info-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}
.svc-info-row:last-child{margin-bottom:0}
.svc-info-row .svc-ico{flex:none;width:42px;height:42px;border-radius:50%;background:var(--card);display:grid;place-items:center}
.svc-info-row .svc-ico svg{width:21px;height:21px;color:var(--sage)}
.svc-info-row .it{font-weight:600;font-size:14px;color:var(--ink);margin-bottom:2px}
.svc-info-row .iv{color:var(--ink-soft);font-size:14.5px}
.svc-info-row a.iv{color:var(--sage);font-weight:600}
.svc-info-row a.iv:hover{color:var(--sage-d)}

/* tracking timeline */
.svc-track-result{display:none;margin-top:36px}
.svc-track-result.show{display:block;animation:svcFade .4s ease}
@keyframes svcFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.svc-track-head{background:var(--bg2);border-radius:var(--radius);padding:20px 24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.svc-track-head .lab{font-size:13px;color:var(--muted)}
.svc-track-head .val{font-weight:600;color:var(--ink);font-size:15px}
.svc-timeline{display:flex;justify-content:space-between;position:relative;max-width:640px;margin:0 auto}
.svc-timeline::before{content:"";position:absolute;top:18px;right:8%;left:8%;height:3px;background:var(--line);z-index:0}
.svc-tstep{position:relative;z-index:1;text-align:center;flex:1}
.svc-tstep .dot{width:38px;height:38px;border-radius:50%;background:var(--bg);border:3px solid var(--line);display:grid;place-items:center;margin:0 auto 10px;color:var(--muted);transition:.2s}
.svc-tstep .dot svg{width:18px;height:18px}
.svc-tstep .lbl{font-size:13.5px;color:var(--muted);font-weight:600}
.svc-tstep.done .dot{background:var(--sage);border-color:var(--sage);color:#fff}
.svc-tstep.done .lbl{color:var(--ink)}
.svc-tstep.current .dot{background:var(--blush);border-color:var(--blush-d);color:#fff;box-shadow:0 0 0 5px rgba(216,167,160,.25)}
.svc-tstep.current .lbl{color:var(--blush-d)}
.svc-track-msg{text-align:center;margin-top:28px;color:var(--ink-soft);font-size:15.5px}

/* faq accordion */
.svc-faq{max-width:760px;margin:0 auto;display:grid;gap:12px}
.svc-acc{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.svc-acc-q{width:100%;text-align:right;background:none;border:none;cursor:pointer;font-family:inherit;font-size:16.5px;font-weight:600;color:var(--ink);padding:20px 22px;display:flex;justify-content:space-between;align-items:center;gap:14px}
.svc-acc-q .chev{flex:none;width:22px;height:22px;color:var(--sage);transition:transform .25s}
.svc-acc.open .svc-acc-q .chev{transform:rotate(180deg)}
.svc-acc-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.svc-acc-a p{padding:0 22px 20px;color:var(--ink-soft);font-size:15.5px;line-height:1.8;margin:0}
.svc-acc.open .svc-acc-a{max-height:340px}

@media(max-width:760px){
  .svc-cards{grid-template-columns:1fr}
  .svc-contact{grid-template-columns:1fr;gap:24px}
  .svc-wrap{padding:40px 22px 64px}
  .svc-row{grid-template-columns:1fr}
  .svc-table{font-size:14px}
  .svc-table th,.svc-table td{padding:12px 12px}
  .svc-timeline::before{right:6%;left:6%}
  .svc-tstep .lbl{font-size:11.5px}
  .svc-tstep .dot{width:34px;height:34px}
}

/* ============================================================
   Splide carousels — final
   ============================================================ */
.caro.splide,.rev-grid.splide,.rev-list.splide,.related .grid.splide{display:block;overflow:visible;gap:0;padding:0}
.splide__slide{height:auto;display:flex}
.splide__slide > *{width:100%}
/* compact product card with TIGHT internal spacing */
.caro .card-img,.related .card-img{aspect-ratio:auto!important;height:150px!important}
.caro .card-body,.related .card-body{padding:12px 15px 13px!important;gap:0!important;justify-content:flex-start!important}
.caro .card-desc,.related .card-desc{display:none!important}
.caro .card-name,.related .card-name{min-height:2.4em;font-size:15px;line-height:1.25;margin:0!important}
.caro .card-rating,.related .card-rating{white-space:nowrap;font-size:12px;margin:4px 0 0!important}
.caro .card-foot,.related .card-foot{margin-top:7px!important;padding-top:0!important}
@media(max-width:760px){
  .caro.splide,.rev-grid.splide,.rev-list.splide{width:100vw;margin-inline:calc(50% - 50vw);padding:0 14px}
}
/* related: manual arrows */
.related{position:relative}
.related .splide__arrow{background:var(--card);border:1.5px solid var(--line);width:40px;height:40px;opacity:1;box-shadow:none}
.related .splide__arrow svg{fill:var(--ink);width:16px;height:16px}
.related .splide__arrow:hover{background:var(--sage);border-color:var(--sage)}
.related .splide__arrow:hover svg{fill:#fff}
.related .splide__arrow:disabled{opacity:.3}
/* bundle "what's inside" = plain horizontal scroll, NOT a carousel */
.bi-grid{display:flex!important;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;grid-template-columns:none!important;scrollbar-width:thin}
.bi-grid .bi-card{flex:0 0 200px!important;scroll-snap-align:start}
@media(max-width:760px){ .bi-grid .bi-card{flex:0 0 46%!important} }

/* ===== FIX: let Splide own the structure (override the broken overrides above) ===== */
.caro.splide,.rev-grid.splide,.rev-list.splide,.related .grid.splide{display:block!important;overflow:hidden!important;gap:0!important;padding:0!important}
.splide__track{overflow:hidden}
.splide__list{display:flex}
.splide__slide{display:block!important;height:auto!important}
.splide .card,.splide .rev,.splide .rev-card{flex:none!important;width:auto!important;max-width:none!important;margin:0!important}
@media(max-width:760px){
  .caro.splide,.rev-grid.splide,.rev-list.splide{width:100vw!important;margin-inline:calc(50% - 50vw)!important;padding:0!important}
}

/* bestsellers section: no "רב מכר" badge (the whole section IS bestsellers) */
.caro .card-tag:not(.new){display:none!important}
/* reviews = plain horizontal scroll (no auto, no flicker); static grid on desktop */
.rev-grid,.rev-list{scroll-snap-type:x mandatory}
@media(max-width:760px){
  .rev-grid,.rev-list{display:flex!important;gap:14px;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin}
  .rev-grid .rev{flex:0 0 84%!important;scroll-snap-align:center}
  .rev-list .rev-card{flex:0 0 86%!important;scroll-snap-align:center}
}

/* carousel cards always visible (don't depend on scroll-reveal; Splide clones them) */
.splide .reveal,.splide .card,.splide .rev,.splide .rev-card{opacity:1!important;transform:none!important}

/* texture swatch on hover: a touch smaller (inset) */
/* texture swatch = same box + size as the product (contain, never a cropped band) */
.card-img .tx{inset:0!important;width:100%!important;height:100%!important;transform:none!important;border-radius:0!important;object-fit:contain!important;padding:15%!important}

/* ============================================================
   carousel polish round: tighter card, full-bleed desktop, reviews one-row
   ============================================================ */
/* tighter, more compact product card (less perceived line spacing) */
.caro .card-img,.related .card-img{height:108px!important}
.caro .card-img .pk,.related .card-img .pk{padding:8px!important}
.caro .card-body,.related .card-body{padding:11px 15px 12px!important}
.caro .card-name,.related .card-name{min-height:0!important;margin:0!important}
.caro .card-rating,.related .card-rating{margin:4px 0 0!important}
.caro .card-foot,.related .card-foot{margin-top:auto!important;padding-top:10px!important}
/* bestsellers carousel full-width across the page (desktop + mobile) */
.caro.splide{width:100vw!important;margin-inline:calc(50% - 50vw)!important;padding:0 18px!important}
/* PDP reviews: always ONE horizontal row with side-scroll (never a wrapping grid) */
.rev-list{display:flex!important;gap:16px;overflow-x:auto;grid-template-columns:none!important;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:thin}
.rev-list .rev-card{flex:0 0 360px!important;scroll-snap-align:start}
@media(max-width:760px){ .rev-list .rev-card{flex:0 0 86%!important} }

/* ============================================================
   no clipped hover-lift in carousels + full-bleed plain scrollers + hidden scrollbar
   ============================================================ */
.splide .card:hover,.bi-grid .bi-card:hover,.rev-list .rev-card:hover,.rev-grid .rev:hover{transform:none!important}
.bi-grid,.rev-list,.rev-grid{scrollbar-width:none!important;-ms-overflow-style:none}
.bi-grid::-webkit-scrollbar,.rev-list::-webkit-scrollbar,.rev-grid::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.bi-grid{width:100vw!important;margin-inline:calc(50% - 50vw)!important;padding:4px 18px 10px!important}
.rev-list{width:100vw!important;margin-inline:calc(50% - 50vw)!important;padding:4px 18px 10px!important}

/* ============================================================
   shadow off + 1-line bestseller names + ritual night footer + search field
   ============================================================ */
.caro .card-img .pk,.related .card-img .pk{filter:none!important}
.caro .card-name{min-height:0!important}
/* ritual NIGHT theme: bundle footer follows the dark colors */
.ritual.is-pm .ritual-foot{background:#2c2a35!important;border-top:1px solid rgba(255,255,255,.1)!important}
.ritual.is-pm .bundle-label{color:#f3eef7!important}
.ritual.is-pm .bundle-prices b{color:#fff!important}
.ritual.is-pm .bundle-prices s{color:rgba(243,238,247,.45)!important}
.ritual.is-pm .ritual-foot .btn-fill{background:#6b5b86!important;color:#fff!important}
/* mobile-menu search: looks like a SEARCH FIELD, icon before the word */
.nav-search-li{border-bottom:none!important;margin-bottom:6px}
.nav-search-li a{display:flex!important;align-items:center;justify-content:flex-start!important;gap:10px;border:1.5px solid var(--line)!important;background:var(--bg2);border-radius:999px;padding:12px 18px!important;color:var(--muted)!important}
.nav-search-li svg{color:var(--ink-soft);flex:none}
.nav-search-li span{font-size:15px}

/* search field: more breathing room above it in the menu */
.nav-search-li{margin-top:6px}
@media(max-width:760px){ #nav ul{padding-top:16px} }
/* DESKTOP: search is a compact dropdown anchored under the search icon (top-left in RTL) */
@media(min-width:761px){
  /* no page dimming for a small dropdown, overlay is just a click-catcher */
  .search-overlay{background:transparent;backdrop-filter:none}
  .search-panel{
    top:calc(var(--hh) - 4px);left:16px;right:auto;
    width:380px;max-height:min(66vh,540px);
    border-radius:18px;overflow:hidden;border:1px solid var(--line);
    transform-origin:top left;
    transform:translateY(-8px) scale(.97);opacity:0;visibility:hidden;
    transition:transform .24s var(--ease),opacity .2s var(--ease),visibility .24s;
    box-shadow:0 26px 60px -20px rgba(40,36,30,.34);
  }
  .search-panel.open{transform:none;opacity:1;visibility:visible}
  .search-bar{padding:15px 18px;max-width:none;margin:0;gap:11px}
  .search-bar input{font-size:16px}
  .search-bar svg{width:19px;height:19px}
  .search-close{width:30px;height:30px;font-size:13px}
  .search-results{max-width:none;margin:0;padding:9px 11px 15px}
  .search-hint{padding:5px 8px 9px}
  .sr-item{padding:8px 10px;gap:12px}
  .sr-img{width:46px;height:46px}
  .sr-name{font-size:14.5px}
  .sr-cat{font-size:12px}
  .sr-price{font-size:14px}
}

/* ============================================================
   FINAL LAYOUT FIXES (authoritative — last in cascade)
   ============================================================ */
/* reviews header: compact one-line rating row right under the heading (right-aligned, no big void) */
.rev-summary{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:12px}
.rev-summary .stars{font-size:15px}
.rev-summary .rev-score{font-size:19px;font-weight:600;color:var(--ink)}
.rev-summary .rev-count{color:var(--ink-soft);font-size:14px}
.rev-summary .rev-count::before{content:"· "}

/* carousel product cards: square image, product fills nicely (matches the approved bundle cards) */
.caro .card-img,.related .card-img{height:auto!important;aspect-ratio:1/1!important}
.caro .card-img .pk,.related .card-img .pk{padding:15%!important}

/* related "אולי יתאים גם": DESKTOP = exactly 4 full cards, no half-peeks, arrows outside the cards */
@media(min-width:761px){
  .related .grid.splide{overflow:visible!important;margin-inline:54px!important;padding:0!important;width:auto!important}
  .related .grid.splide .splide__track{overflow:hidden!important}
  .related .splide__arrow{top:50%;transform:translateY(-50%);width:42px;height:42px}
  .related .splide__arrow--prev{right:-50px;left:auto}
  .related .splide__arrow--next{left:-50px;right:auto}
}
/* related: MOBILE = full-bleed across the page, slightly wider boxes, swipe (no arrows) */
@media(max-width:760px){
  .related .grid.splide{width:100vw!important;margin-inline:calc(50% - 50vw)!important;padding:0 4px!important;overflow:hidden!important}
  .related .splide__arrow{display:none!important}
}

/* reviews carousels span the full page width (like the bestsellers row) */
.rev-grid.splide,.rev-list.splide{width:100vw!important;margin-inline:calc(50% - 50vw)!important;padding:0 18px!important;overflow:hidden!important}

/* reviews: FIXED equal-height cards (stretch to the tallest), author pinned to the bottom */
.rev-list .splide__slide,.rev-grid .splide__slide{height:auto!important}
.rev-list .rev-card,.rev-grid .rev{height:100%!important;display:flex!important;flex-direction:column}
.rev-list .rev-card p{flex:1 0 auto}
.rev-grid .rev blockquote{flex:1 0 auto}
.rev-list .rev-card .who{margin-top:14px}

/* bundle "5 מוצרים שעובדים ביחד": centered row on desktop, horizontal scroll on mobile */
.bi-grid{display:flex!important;justify-content:center!important;flex-wrap:wrap!important;gap:16px!important;width:auto!important;margin-inline:0!important;padding:4px 0 6px!important;overflow:visible!important;grid-template-columns:none!important}
.bi-grid .bi-card{flex:0 0 180px!important;scroll-snap-align:none!important}
@media(max-width:760px){
  .bi-grid{flex-wrap:nowrap!important;justify-content:flex-start!important;overflow-x:auto!important;scroll-snap-type:x mandatory;width:100vw!important;margin-inline:calc(50% - 50vw)!important;padding:4px 18px 10px!important}
  .bi-grid .bi-card{flex:0 0 46%!important;scroll-snap-align:start!important}
}

/* ============================================================
   gift/lifestyle photos ALWAYS full-bleed (fill to top + sides) in every
   context — overrides the carousel/related packshot padding overrides.
   Higher specificity (4 classes) beats ".caro .card-img .pk" (3 classes).
   ============================================================ */
.card-img .pk.photo,
.caro .card-img .pk.photo,
.related .card-img .pk.photo{
  inset:0!important;width:100%!important;height:100%!important;
  padding:0!important;object-fit:cover!important;filter:none!important;
  border-radius:0!important;transform:none!important;
}

/* אין מילה יתומה בכותרות */
h1,h2,h3,.h2,.hero h1,.sec-head h2{text-wrap:balance}
