/* ============ Cullects Toolkit — shared tokens + widgets ============ */
:root{--lime:#C8F51D;--lime-dark:#A9D40E;--ink:#151517;--ink2:#212123;
  --grey:#5c5c60;--line:rgba(21,21,23,.12);--cream:#fdfdfd;
  --font-d:'Space Grotesk',sans-serif;--font-b:'Inter',-apple-system,'Helvetica Neue',sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);}
/* ---------- scroll reveal (add .rev to any Elementor section/widget) ---------- */
.rev{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rev.in{opacity:1;transform:none}
.rev-d1{transition-delay:.1s}
.rev-d2{transition-delay:.2s}
.rev-d3{transition-delay:.3s}

@media(prefers-reduced-motion:reduce){.rev{opacity:1;transform:none;transition:none}}
/* ---------- announcement ticker ---------- */
.ctk-ticker{--ctk-accent:#C8F51D;position:relative;text-align:center;font-family:var(--font-b);font-size:13px;font-weight:600;letter-spacing:.02em;padding:11px 16px;min-height:40px;overflow:hidden}
.ctk-ticker-item{position:absolute;left:0;right:0;top:50%;translate:0 -50%;opacity:0;transform:translateY(8px);transition:opacity .45s var(--ease),transform .45s var(--ease);padding:0 16px}
.ctk-ticker-item.on{opacity:1;transform:none}
.ctk-ticker-item b,.ctk-ticker-item strong{color:var(--ctk-accent)}
/* ---------- marquee ---------- */
.ctk-marquee{overflow:hidden;padding:17px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.ctk-marquee-track{display:inline-flex;white-space:nowrap;animation:ctkMarquee 22s linear infinite;will-change:transform}
.ctk-marquee-track span{font-family:var(--font-d);font-weight:600;font-size:15px;letter-spacing:.04em;text-transform:uppercase;padding:0 26px;position:relative}
.ctk-marquee-track span::after{content:"✦";position:absolute;right:-8px;opacity:.55}
.ctk-marquee:hover .ctk-marquee-track{animation-play-state:paused}

@keyframes ctkMarquee{to{transform:translateX(-50%)}}

@media(prefers-reduced-motion:reduce){.ctk-marquee-track{animation:none}}
/* ---------- FAQ accordion ---------- */
.ctk-faq{max-width:860px;margin:0 auto}
.ctk-faq-search{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 16px;margin-bottom:18px;color:var(--grey);transition:border-color .25s,box-shadow .25s}
.ctk-faq-search:focus-within{border-color:var(--lime-dark);box-shadow:0 8px 24px -16px rgba(169,212,14,.8)}
.ctk-faq-search svg{width:18px;height:18px;flex:none}
.ctk-faq-search input{flex:1;border:0;outline:0;background:none;font:inherit;font-size:15px;color:var(--ink)}
.ctk-faq-item{background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:10px;overflow:hidden;transition:border-color .25s,box-shadow .25s}
.ctk-faq-item:hover{border-color:rgba(21,21,23,.3)}
.ctk-faq-item.open{border-color:var(--lime-dark);box-shadow:0 14px 34px -24px rgba(21,21,23,.4)}
.ctk-faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:left;background:none;border:0;cursor:pointer;font-family:var(--font-d);font-weight:600;font-size:16px;color:var(--ink);padding:18px 20px}
.ctk-faq-pl{width:26px;height:26px;flex:none;border-radius:50%;background:var(--ink);color:var(--lime);display:flex;align-items:center;justify-content:center;font-size:16px;transition:transform .35s var(--ease),background .25s}
.ctk-faq-item.open .ctk-faq-pl{transform:rotate(45deg);background:var(--lime);color:var(--ink)}
.ctk-faq-a{max-height:0;overflow:hidden;transition:max-height .45s var(--ease)}
.ctk-faq-a p{margin:0;padding:0 20px 18px;color:var(--grey);font-size:15px;line-height:1.65}
.ctk-faq-none{text-align:center;color:var(--grey);padding:18px}
/* ---------- WhatsApp coupon ticket ---------- */
.ctk-ticket{display:grid;grid-template-columns:.85fr 1.5fr;background:var(--lime);color:var(--ink);border-radius:26px;overflow:hidden;max-width:900px;margin:0 auto;box-shadow:0 30px 70px -25px rgba(21,21,23,.35);transition:transform .35s var(--ease)}
.ctk-ticket:hover{transform:translateY(-4px)}
.ctk-ticket-stub{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:38px 24px;border-right:2px dashed rgba(21,21,23,.35)}
.ctk-ticket-pc{font-family:var(--font-d);font-weight:700;font-size:64px;line-height:1}
.ctk-ticket-sub{font-family:var(--font-d);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-align:center}
.ctk-ticket-bar{width:120px;height:26px;background:repeating-linear-gradient(90deg,var(--ink) 0 3px,transparent 3px 7px);margin-top:10px;opacity:.85}
.ctk-ticket-main{padding:34px 34px 30px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.ctk-ticket-main h3{font-family:var(--font-d);font-weight:700;font-size:clamp(22px,3vw,30px);letter-spacing:-.01em;margin:0}
.ctk-ticket-main p{margin:0;font-size:15px;line-height:1.6;color:rgba(21,21,23,.8)}
.ctk-ticket-btn{display:inline-flex;align-items:center;gap:9px;background:#25D366;color:#fff;font-weight:700;font-size:15px;padding:14px 22px;border-radius:12px;text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s}
.ctk-ticket-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(37,211,102,.6);color:#fff}
.ctk-ticket-btn svg{width:19px;height:19px}
.ctk-ticket-code{background:rgba(255,255,255,.55);border:1px dashed rgba(21,21,23,.4);border-radius:10px;padding:9px 14px;font:inherit;font-size:13.5px;cursor:pointer;display:inline-flex;gap:8px;align-items:center}
.ctk-ticket-code .ctk-copy{font-family:var(--font-d);font-weight:700;font-size:10.5px;letter-spacing:.08em;background:var(--ink);color:var(--lime);padding:3px 8px;border-radius:6px}
.ctk-ticket-main small{font-size:12px;color:rgba(21,21,23,.6)}

@media(max-width:700px){.ctk-ticket{grid-template-columns:1fr}
.ctk-ticket-stub{border-right:0;border-bottom:2px dashed rgba(21,21,23,.35);padding:28px 20px}}
/* ---------- stats counter ---------- */
.ctk-stats{--ctk-accent:#C8F51D;background:#151517;border-radius:24px;padding:38px 30px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;box-shadow:0 30px 70px -30px rgba(21,21,23,.55)}
.ctk-stat{text-align:center;border-left:1px solid rgba(255,255,255,.12)}
.ctk-stat:first-child{border-left:none}
.ctk-stat-num{font-family:var(--font-d);font-weight:700;font-size:clamp(28px,2.6vw,42px);letter-spacing:-.02em;color:var(--ctk-accent);line-height:1;display:flex;align-items:baseline;justify-content:center;gap:3px}
.ctk-stat-num i{font-style:normal;font-size:.55em}
.ctk-stat-lbl{color:#b9b7b0;font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;margin-top:9px}

@media(max-width:760px){.ctk-stats{grid-template-columns:repeat(2,1fr);gap:26px 10px;padding:30px 24px}
.ctk-stat:nth-child(odd){border-left:none}}
/* ---------- steps timeline ---------- */
.ctk-steps{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:14px}
.ctk-steps-line{position:absolute;top:27px;left:9%;right:9%;height:2px;background:repeating-linear-gradient(90deg,rgba(21,21,23,.28) 0 8px,transparent 8px 16px);overflow:visible}
.ctk-steps-fill{position:absolute;left:0;top:0;height:100%;width:100%;background:var(--lime);transform:scaleX(0);transform-origin:left}
.ctk-steps.play .ctk-steps-fill{animation:ctkFill 1.5s var(--ease) forwards}

@keyframes ctkFill{to{transform:scaleX(1)}}
.ctk-steps-dot{position:absolute;top:50%;left:0;width:13px;height:13px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 6px rgba(200,245,29,.3),0 0 14px 2px rgba(200,245,29,.8);translate:-50% -50%;opacity:0}
.ctk-steps.play .ctk-steps-dot{animation:ctkDot 1.6s var(--ease) forwards}

@keyframes ctkDot{0%{left:0;opacity:1}
88%{opacity:1}
100%{left:100%;opacity:0}}
.ctk-step{position:relative}
.ctk-step-node{width:54px;height:54px;border-radius:50%;background:var(--lime);color:var(--ink);font-family:var(--font-d);font-weight:700;font-size:17px;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;box-shadow:0 0 0 8px #fff,0 10px 24px -10px rgba(200,245,29,.7);transition:transform .3s var(--ease)}
.ctk-step:hover .ctk-step-node{transform:translateY(-4px) scale(1.07)}
.ctk-steps.play .ctk-step:nth-child(3) .ctk-step-node{animation:ctkPop .55s var(--ease) .15s both}
.ctk-steps.play .ctk-step:nth-child(4) .ctk-step-node{animation:ctkPop .55s var(--ease) .7s both}
.ctk-steps.play .ctk-step:nth-child(5) .ctk-step-node{animation:ctkPop .55s var(--ease) 1.25s both}

@keyframes ctkPop{0%{transform:scale(1)}
42%{transform:scale(1.24)}
100%{transform:scale(1)}}
.ctk-step h3{font-family:var(--font-d);font-weight:600;font-size:20px;margin:20px 0 8px;color:var(--ink)}
.ctk-step p{color:var(--grey);font-size:15.5px;max-width:32ch;margin:0}

@media(max-width:820px){.ctk-steps{grid-template-columns:1fr;gap:28px}
.ctk-steps-line{display:none}
.ctk-step-node{box-shadow:0 10px 24px -10px rgba(200,245,29,.7)}}

@media(prefers-reduced-motion:reduce){.ctk-steps-fill{transform:scaleX(1);animation:none}
.ctk-steps-dot{display:none}}
/* ---------- WhatsApp phone mockup ---------- */
.ctk-chat{width:100%;max-width:340px;margin:0 auto;position:relative;background:#0a0a0c;border-radius:54px;padding:9px;border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 22px 40px -24px rgba(11,20,26,.4),0 8px 18px -10px rgba(11,20,26,.25)}
.ctk-chat::before{content:"";position:absolute;left:-3px;top:130px;width:3px;height:34px;border-radius:3px 0 0 3px;background:rgba(255,255,255,.18);box-shadow:0 46px 0 rgba(255,255,255,.18)}
.ctk-chat::after{content:"";position:absolute;right:-3px;top:160px;width:3px;height:74px;border-radius:0 3px 3px 0;background:rgba(255,255,255,.18)}
.ctk-chat-in{border-radius:45px;overflow:hidden;background:#0b141a}
.ctk-chat-sb{position:relative;background:#1f2c34;display:flex;align-items:center;justify-content:space-between;padding:15px 26px 8px;color:#e9edef}
.ctk-chat-sb .sbt{font-size:12.5px;font-weight:700;font-family:var(--font-d);min-width:34px}
.ctk-island{position:absolute;left:50%;top:12px;translate:-50% 0;width:100px;height:27px;border-radius:15px;background:#0a0a0c}
.ctk-chat-sb .sbi{display:flex;gap:5px;align-items:center}
.ctk-chat-head{background:#1f2c34;display:flex;align-items:center;gap:12px;padding:10px 16px 14px}
.ctk-chat-av{width:42px;height:42px;border-radius:50%;background:var(--lime);color:var(--ink);display:flex;align-items:center;justify-content:center;font-family:var(--font-d);font-weight:700;font-size:18px}
.ctk-chat-nm{color:#fff;font-weight:600;font-size:15px;line-height:1.2}
.ctk-chat-st{font-size:12px;color:#8fd3a0;display:flex;align-items:center;gap:5px}
.ctk-chat-st::before{content:"";width:7px;height:7px;border-radius:50%;background:#25D366;box-shadow:0 0 6px #25D366}
.ctk-chat-body{padding:18px 14px;height:420px;display:flex;flex-direction:column;gap:9px;overflow:hidden;background-color:#0b141a;background-image:radial-gradient(rgba(255,255,255,.03) 1px,transparent 1px);background-size:22px 22px}
.ctk-bub{max-width:80%;padding:9px 13px;border-radius:14px;font-size:14px;line-height:1.42;color:#e9edef;opacity:0;transform:translateY(12px) scale(.96);animation:ctkBub .38s var(--ease) forwards;box-shadow:0 1px 1px rgba(0,0,0,.2)}

@keyframes ctkBub{to{opacity:1;transform:none}}
.ctk-bub.in{background:#202c33;align-self:flex-start;border-bottom-left-radius:4px}
.ctk-bub.out{background:#005c4b;align-self:flex-end;border-bottom-right-radius:4px}
.ctk-typing{display:inline-flex;gap:4px;padding:12px 14px}
.ctk-typing i{width:6px;height:6px;border-radius:50%;background:#8696a0;animation:ctkTy 1s ease-in-out infinite}
.ctk-typing i:nth-child(2){animation-delay:.15s}
.ctk-typing i:nth-child(3){animation-delay:.3s}

@keyframes ctkTy{0%,100%{opacity:.35;transform:translateY(0)}
50%{opacity:1;transform:translateY(-3px)}}
.ctk-chat-foot{background:#1f2c34;padding:10px 12px;display:flex;gap:10px;align-items:center}
.ctk-chat-inp{flex:1;background:#2a3942;border-radius:99px;padding:10px 15px;color:#8696a0;font-size:13px}
.ctk-chat-snd{width:40px;height:40px;flex:none;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center}
.ctk-chat-snd svg{width:19px;height:19px}
.ctk-chat-hm{background:#1f2c34;padding:6px 0 9px;display:flex;justify-content:center}
.ctk-chat-hm i{width:110px;height:4px;border-radius:3px;background:rgba(255,255,255,.35)}

@media(max-width:900px){.ctk-chat{max-width:320px}
.ctk-chat-body{height:380px}}
/* ---------- product cards grid ---------- */
.ctk-pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.ctk-pcard{background:#fff;border-radius:20px;border:1px solid var(--line);overflow:hidden;position:relative;display:flex;flex-direction:column;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s}
.ctk-pcard:hover{transform:translateY(-5px);border-color:rgba(21,21,23,.25);box-shadow:0 26px 52px -30px rgba(21,21,23,.5)}
.ctk-pimg{position:relative;display:block;aspect-ratio:1/1;background:#f4f4ef;overflow:hidden}
.ctk-pimg img{width:100%;height:100%;object-fit:contain;padding:26px;mix-blend-mode:multiply;transition:transform .6s var(--ease)}
.ctk-pcard:hover .ctk-pimg img{transform:scale(1.06)}
.ctk-pbadge{position:absolute;top:14px;left:14px;background:var(--ink);color:var(--lime);font-family:var(--font-d);font-size:11.5px;font-weight:700;letter-spacing:.05em;padding:6px 12px;border-radius:99px;z-index:2}
.ctk-pbadge.hot{background:var(--lime);color:var(--ink)}
.ctk-wish{position:absolute;top:12px;right:12px;z-index:2;width:42px;height:42px;border-radius:50%;border:1px solid rgba(21,21,23,.08);background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(9px) saturate(1.25);backdrop-filter:blur(9px) saturate(1.25);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px -10px rgba(21,21,23,.55);transition:transform .32s var(--ease),background .3s,border-color .3s,box-shadow .3s}
.ctk-wish .ctk-heart{width:20px;height:20px;fill:none;stroke:rgba(21,21,23,.42);stroke-width:1.7;stroke-linejoin:round;transform-origin:center;transition:fill .3s var(--ease),stroke .3s var(--ease),transform .3s var(--ease)}
/* hover: lift + lime ring + heartbeat */
.ctk-wish:hover{transform:translateY(-2px) scale(1.07);background:rgba(255,255,255,.96);border-color:rgba(169,212,14,.75);box-shadow:0 12px 26px -12px rgba(169,212,14,.9)}
.ctk-wish:hover .ctk-heart{stroke:var(--ink);animation:ctkBeat 1s var(--ease) infinite}
.ctk-wish:active{transform:scale(.93)}
/* faved: solid lime + spring-fill + radiating ring */
.ctk-wish.faved{background:var(--lime);border-color:var(--lime);box-shadow:0 10px 26px -10px rgba(169,212,14,.95)}
.ctk-wish.faved .ctk-heart{fill:var(--ink);stroke:var(--ink);animation:ctkHeartPop .5s var(--ease)}
.ctk-wish.faved:hover .ctk-heart{animation:ctkHeartPop .5s var(--ease)}
.ctk-wish-spark{position:absolute;inset:0;border-radius:50%;pointer-events:none}
.ctk-wish.faved .ctk-wish-spark{animation:ctkWishRing .6s var(--ease)}

@keyframes ctkBeat{0%,100%{transform:scale(1)}
18%{transform:scale(1.2)}
34%{transform:scale(.95)}
52%{transform:scale(1.12)}
70%{transform:scale(1)}}

@keyframes ctkHeartPop{0%{transform:scale(.5)}
45%{transform:scale(1.32)}
70%{transform:scale(.9)}
100%{transform:scale(1)}}

@keyframes ctkWishRing{0%{box-shadow:0 0 0 0 rgba(169,212,14,.55)}
100%{box-shadow:0 0 0 17px rgba(169,212,14,0)}}

@media(prefers-reduced-motion:reduce){.ctk-wish .ctk-heart,.ctk-wish.faved .ctk-heart,.ctk-wish.faved .ctk-wish-spark{animation:none}}
.ctk-pbody{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.ctk-prating{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--grey)}
.ctk-prating .s{color:#f5a623;letter-spacing:1px}
.ctk-prating .cul-verified{margin-left:auto}
.ctk-pbody h3{margin:8px 0 4px;font-family:var(--font-d);font-weight:600;font-size:16px;line-height:1.35}
.ctk-pbody h3 a{color:var(--ink);text-decoration:none}
.ctk-pbody h3 a:hover{color:var(--lime-dark)}
.ctk-pben{color:var(--grey);font-size:13.5px;line-height:1.5;margin:0 0 10px}
.ctk-pstock{margin-top:auto;display:flex;align-items:center;gap:7px;font-size:12px;color:var(--grey)}
.ctk-pstock.low{color:#c96a10}
.ctk-pstock .dot{width:7px;height:7px;border-radius:50%;background:#e8890c;animation:ctkBlink 1.4s ease-in-out infinite}
.ctk-pstock .dot.ok{background:#35a745;animation:none}

@keyframes ctkBlink{0%,100%{opacity:1}
50%{opacity:.35}}
.ctk-pbar{height:4px;border-radius:3px;background:rgba(21,21,23,.08);margin-top:6px;overflow:hidden}
.ctk-pbar i{display:block;height:100%;width:var(--w,60%);border-radius:3px;background:linear-gradient(90deg,#e8890c,#f5b40c)}
.ctk-pprice{display:flex;align-items:center;gap:9px;padding-top:9px}
.ctk-pprice .pr{font-family:var(--font-d);font-weight:700;font-size:20px;white-space:nowrap}
.ctk-pprice .was{color:var(--grey);text-decoration:line-through;font-size:13.5px;white-space:nowrap}
.ctk-pprice .save{background:var(--lime);color:var(--ink);font-size:10.5px;font-weight:800;letter-spacing:.02em;padding:4px 8px;border-radius:8px;white-space:nowrap;margin-left:auto}
.ctk-padd{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:9px;background:var(--ink);color:#fdfdfd;font-weight:600;font-size:14px;padding:13px;border-radius:13px;text-decoration:none;transition:all .3s var(--ease)}
.ctk-padd:hover{background:var(--lime);color:var(--ink);letter-spacing:.02em}
.ctk-padd svg{width:17px;height:17px}

@media(max-width:1024px){.ctk-pgrid{grid-template-columns:repeat(2,1fr)}}

@media(max-width:560px){.ctk-pgrid{grid-template-columns:1fr}}

@media(max-width:900px){}

@media(max-width:560px){}
/* ---------- comparison / benefits (dark vs section) ---------- */
.ctk-cmp{background:var(--ink);color:var(--cream);width:100vw;margin-left:calc(50% - 50vw)}
.ctk-cmp-in{max-width:1280px;margin:0 auto;padding:88px 24px}
.ctk-cmp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:44px;flex-wrap:wrap}
.ctk-cmp-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)!important;background:var(--lime);padding:6px 14px;border-radius:99px;margin-bottom:16px}
.ctk-cmp .ctk-cmp-title{font-family:var(--font-d);font-weight:700;font-size:clamp(30px,3.6vw,48px);line-height:1.08;letter-spacing:-.02em;margin:0;color:var(--cream)}
.ctk-cmp .ctk-cmp-sub{color:#b9b7b0;font-size:16px;max-width:460px;margin:0}
.ctk-cmp-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:16px;align-items:stretch}
.ctk-vs{background:#202024;border:1px solid var(--line-light);border-radius:22px;padding:28px;transition:border-color .35s var(--ease)}
.ctk-vs:hover{border-color:rgba(200,245,29,.4)}
.ctk-vs-row{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:12px;align-items:center;padding:15px 4px;border-top:1px solid rgba(255,255,255,.08);font-size:13.5px}
.ctk-vs-row.head{border-top:none;padding-top:0;padding-bottom:18px}
.ctk-cmp .ctk-vs-lbl{color:#b9b7b0;display:flex;align-items:center;gap:9px}
.ctk-cmp .ctk-vs-lbl svg{width:15px!important;height:15px!important;color:#8f8e88;flex:none}
.ctk-vs-pill{font-family:var(--font-d);font-weight:700;font-size:12px;letter-spacing:.03em;padding:7px 12px;border-radius:99px;text-align:center;white-space:nowrap}
.ctk-vs-pill.me{background:var(--lime);color:var(--ink)}
.ctk-vs-pill.them{background:rgba(255,255,255,.08);color:#8f8e88}
.ctk-cmp .ctk-vs-yes{color:var(--lime);font-weight:700}
.ctk-vs-yes::before{content:"\2713 ";font-weight:800}
.ctk-cmp .ctk-vs-no{color:#8f8e88}
.ctk-vs-no::before{content:"\2717 ";color:#c0392b;font-weight:800}
.ctk-vs-note{margin-top:16px;font-size:12px;color:#8f8e88}
.ctk-cmp-rows{display:flex;flex-direction:column;gap:14px}
.ctk-cmp-row{flex:1;display:flex;gap:22px;align-items:center;background:#202024;border:1px solid var(--line-light);border-radius:20px;padding:22px 26px;transition:transform .35s var(--ease),border-color .35s var(--ease)}
.ctk-cmp-row:hover{transform:translateX(6px);border-color:rgba(200,245,29,.45)}
.ctk-cmp-ic{width:58px;height:58px;border-radius:50%;background:rgba(200,245,29,.13);border:1px solid rgba(200,245,29,.38);display:flex;align-items:center;justify-content:center;flex:none;color:var(--lime);transition:all .3s var(--ease)}
.ctk-cmp .ctk-cmp-ic svg{width:25px!important;height:25px!important}
.ctk-cmp-row:hover .ctk-cmp-ic{background:var(--lime);color:var(--ink);transform:rotate(-8deg) scale(1.06)}
.ctk-cmp .ctk-cmp-row h3{font-family:var(--font-d);font-weight:700;font-size:17.5px;letter-spacing:-.01em;margin:0 0 5px;color:var(--cream)}
.ctk-cmp .ctk-cmp-row p{font-size:13px;color:#b9b7b0;line-height:1.6;margin:0}
@media(max-width:920px){.ctk-cmp-grid{grid-template-columns:1fr}}
@media(max-width:480px){.ctk-vs-row{grid-template-columns:1.1fr 1fr 1fr;font-size:12px;gap:8px}.ctk-vs-pill{font-size:10.5px;padding:6px 8px}.ctk-cmp-row{padding:18px 20px;gap:16px}.ctk-cmp-in{padding:64px 20px}}
/* ---------- reviews grid ---------- */
.ctk-rev{max-width:1280px;margin:0 auto;padding:64px 24px}
.ctk-rev-head{margin-bottom:44px}
.ctk-rev-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)!important;background:var(--lime);padding:6px 14px;border-radius:99px;margin-bottom:16px}
.ctk-rev .ctk-rev-title{font-family:var(--font-d);font-weight:700;font-size:clamp(30px,3.6vw,48px);line-height:1.08;letter-spacing:-.02em;margin:0;color:var(--ink)}
.ctk-rev .ctk-rev-sub{color:var(--grey);font-size:16px;max-width:460px;margin:14px 0 0}
.ctk-rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ctk-rev-sum{background:var(--ink);color:var(--cream);border-radius:18px;padding:28px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px}
.ctk-rev-sum .big{font-family:var(--font-d);font-weight:700;font-size:56px;line-height:1;color:var(--lime);letter-spacing:-.03em}
.ctk-rev-sum .s{color:#f5a623;letter-spacing:3px;font-size:16px}
.ctk-rev-sum .cnt{font-size:13.5px;color:#b9b7b0}
.ctk-rev-sum .rl{margin-top:14px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--lime);display:flex;align-items:center;gap:7px}
.ctk-rev .ctk-rev-sum .rl svg{width:14px!important;height:14px!important}
.ctk-rev-card{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:24px;transition:all .3s var(--ease);position:relative}
.ctk-rev-card::before{content:"\201C";position:absolute;top:8px;right:20px;font-family:Georgia,serif;font-size:64px;line-height:1;color:rgba(200,245,29,.55)}
.ctk-rev-card:hover{transform:translateY(-5px);box-shadow:0 22px 44px -28px rgba(21,21,23,.45);border-color:rgba(21,21,23,.25)}
.ctk-rev-card .top{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.ctk-rev-card .av{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-d);font-weight:700;font-size:14px;flex:none;overflow:hidden}
.ctk-rev-card .av.a1{background:var(--lime);color:var(--ink)}
.ctk-rev-card .av.a2{background:var(--ink);color:var(--lime)}
.ctk-rev-card .av.img img{width:100%;height:100%;object-fit:cover}
.ctk-rev-card .top b{font-size:14px;display:block;color:var(--ink)}
.ctk-rev-card .top .s{color:#f5a623;letter-spacing:1.5px;font-size:12.5px;display:block}
.ctk-rev .ctk-rev-card p{font-size:14px;color:#3c3c3e;margin:0 0 16px;line-height:1.65}
.ctk-rev-card .meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ctk-rev-card .ver{position:relative;overflow:hidden;font-family:var(--font-d);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:linear-gradient(135deg,rgba(200,245,29,.38),rgba(200,245,29,.12) 55%,rgba(255,255,255,.7));border:1px solid rgba(169,212,14,.55);padding:6px 12px 6px 8px;border-radius:99px;display:inline-flex;gap:6px;align-items:center;box-shadow:0 4px 12px -7px rgba(169,212,14,.8),inset 0 1px 0 rgba(255,255,255,.7)}
.ctk-rev-card .ver::after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);transform:skewX(-18deg)}
.ctk-rev-card:hover .ver::after{animation:ctkVerShine .9s var(--ease)}
@keyframes ctkVerShine{to{left:130%}}
.ctk-rev .ctk-rev-card .ver svg{width:15px!important;height:15px!important;flex:none}
.ctk-rev-card .city{font-family:var(--font-d);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);background:#fff;border:1px solid var(--line);padding:6px 11px 6px 8px;border-radius:99px;display:inline-flex;gap:5px;align-items:center}
.ctk-rev .ctk-rev-card .city svg{width:12px!important;height:12px!important;flex:none;color:var(--lime-dark)}
@media(prefers-reduced-motion:reduce){.ctk-rev-card:hover .ver::after{animation:none}}
.ctk-rev-pages{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:28px;flex-wrap:wrap}
.ctk-rev-pages button{min-width:40px;height:40px;padding:0 12px;border:1.5px solid var(--line);border-radius:12px;font-family:var(--font-d);font-weight:600;font-size:13.5px;transition:all .25s var(--ease);display:flex;align-items:center;justify-content:center;background:var(--white);cursor:pointer}
.ctk-rev-pages button:hover:not(:disabled):not(.on){border-color:var(--ink);transform:translateY(-2px)}
.ctk-rev-pages button.on{background:var(--ink);color:var(--lime);border-color:var(--ink)}
.ctk-rev-pages button:disabled{opacity:.35;cursor:default}
.ctk-rev-pages .dots{color:var(--grey);padding:0 2px}
@media(max-width:860px){.ctk-rev-grid{grid-template-columns:1fr}}
/* ---------- deal countdown pill ---------- */
.ctk-cd{display:inline-flex;align-items:center;gap:9px;background:var(--ink);color:#fdfdfd;font-family:var(--font-d);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:11px 20px;border-radius:99px}
.ctk-cd-dot{width:8px;height:8px;border-radius:50%;background:var(--lime);animation:ctkBlink 1.4s ease-in-out infinite}
.ctk-cd-time{color:var(--lime);font-variant-numeric:tabular-nums}
/* ---------- product filter tabs ---------- */
.ctk-ptabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.ctk-ptabs button{font-family:var(--font-d);font-weight:600;font-size:13.5px;padding:10px 18px;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:all .25s var(--ease)}
.ctk-ptabs button:hover{border-color:var(--ink)}
.ctk-ptabs button.on{background:var(--ink);color:var(--lime);border-color:var(--ink)}
.ctk-pcard.hide{display:none}
/* ---------- review avatar photos ---------- */
.ctk-rev-card .av.img{overflow:hidden;padding:0}
.ctk-rev-card .av.img img{width:100%;height:100%;object-fit:cover;border-radius:50%}
/* ---------- video reels ---------- */
.ctk-reels{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ctk-reel{position:relative;border-radius:22px;overflow:hidden;background:var(--ink);aspect-ratio:9/13;transition:transform .4s var(--ease),box-shadow .4s}
.ctk-reel:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(21,21,23,.6)}
.ctk-reel-media{position:absolute;inset:0}
.ctk-reel-media video,.ctk-reel-media img{width:100%;height:100%;object-fit:cover}
.ctk-reel-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:44px;color:rgba(255,255,255,.35)}
.ctk-reel-chip{position:absolute;top:14px;left:14px;background:rgba(21,21,23,.75);backdrop-filter:blur(6px);color:#fff;font-family:var(--font-d);font-weight:700;font-size:12px;padding:6px 12px;border-radius:99px;z-index:2}
.ctk-reel-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:38px 16px 16px;background:linear-gradient(transparent,rgba(11,11,13,.88) 55%);z-index:2}
.ctk-reel-bar b{display:block;color:#fff;font-family:var(--font-d);font-size:15px;line-height:1.25}
.ctk-reel-bar .pr{color:rgba(255,255,255,.75);font-size:13px;font-weight:600}
.ctk-reel-bar a{flex:none;background:var(--lime);color:var(--ink);font-family:var(--font-d);font-weight:700;font-size:12.5px;padding:9px 15px;border-radius:99px;text-decoration:none;transition:transform .25s}
.ctk-reel-bar a:hover{transform:scale(1.06);color:var(--ink)}

@media(max-width:820px){.ctk-reels{grid-template-columns:1fr;max-width:420px;margin:0 auto}}
/* ================================================================
   THEME/KIT HARDENING — WordPress themes and the Elementor Kit
   style h1–h6, button, a, input globally and load AFTER this file.
   These higher-specificity re-declarations keep widgets pixel-true.
   ================================================================ */
.ctk-faq .ctk-faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:left;background:transparent;border:none;box-shadow:none;outline:none;cursor:pointer;font-family:var(--font-d);font-weight:600;font-size:16px;line-height:1.4;color:var(--ink);padding:18px 20px;border-radius:0;margin:0;text-transform:none;letter-spacing:0}
.ctk-faq .ctk-faq-q:hover,.ctk-faq .ctk-faq-q:focus{background:transparent;color:var(--ink);border:none;box-shadow:none}
.ctk-faq .ctk-faq-q .ctk-faq-pl{width:26px;height:26px;flex:none;border-radius:50%;background:var(--ink);color:var(--lime);display:flex;align-items:center;justify-content:center;font-size:16px;padding:0}
.ctk-faq .ctk-faq-item.open .ctk-faq-pl{background:var(--lime);color:var(--ink)}
.ctk-faq .ctk-faq-search input,.ctk-faq .ctk-faq-search input:focus{border:none;outline:none;background:transparent;box-shadow:none;color:var(--ink);font-size:15px;padding:0;margin:0;min-height:0;font-family:var(--font-b)}
.ctk-faq .ctk-faq-a p{color:var(--grey);font-size:15px;line-height:1.65}
div.ctk-ptabs button{font-family:var(--font-d);font-weight:600;font-size:13.5px;padding:10px 18px;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:none;text-transform:none;letter-spacing:0;min-height:0;line-height:1.4}
div.ctk-ptabs button:hover{background:#fff;color:var(--ink);border-color:var(--ink)}
div.ctk-ptabs button.on,div.ctk-ptabs button.on:hover{background:var(--ink);color:var(--lime);border-color:var(--ink)}
.ctk-rev .ctk-rev-pages button{min-width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink);font-family:var(--font-d);font-weight:700;font-size:14px;padding:0;box-shadow:none;min-height:0}
.ctk-rev .ctk-rev-pages button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.ctk-pgrid .ctk-wish{padding:0;min-height:0}
.ctk-ticket .ctk-ticket-code{background:rgba(255,255,255,.55);border:1px dashed rgba(21,21,23,.4);border-radius:10px;padding:9px 14px;color:var(--ink);font-size:13.5px;box-shadow:none;min-height:0;text-transform:none;letter-spacing:0}
.ctk-steps .ctk-step h3{font-family:var(--font-d);font-weight:600;font-size:20px;color:var(--ink);margin:20px 0 8px}
.ctk-ticket .ctk-ticket-main h3{font-family:var(--font-d);font-weight:700;font-size:clamp(22px,3vw,30px);letter-spacing:-.01em;color:var(--ink);margin:0}
.ctk-pgrid .ctk-pbody h3{font-family:var(--font-d);font-weight:600;font-size:16px;line-height:1.35;margin:8px 0 4px}
/* links inside widgets */
.ctk-pgrid .ctk-pbody h3 a,.ctk-pgrid .ctk-pbody h3 a:visited{color:var(--ink);text-decoration:none}
.ctk-pgrid .ctk-pbody h3 a:hover{color:var(--lime-dark)}
.ctk-pgrid a.ctk-pimg,.ctk-pgrid a.ctk-padd{text-decoration:none}
.ctk-pgrid a.ctk-padd,.ctk-pgrid a.ctk-padd:visited{background:var(--ink);color:#fdfdfd}
.ctk-pgrid a.ctk-padd:hover{background:var(--lime);color:var(--ink)}
.ctk-reels .ctk-reel-bar a,.ctk-reels .ctk-reel-bar a:visited{background:var(--lime);color:var(--ink);text-decoration:none}
.ctk-ticket a.ctk-ticket-btn,.ctk-ticket a.ctk-ticket-btn:visited{background:#25D366;color:#fff;text-decoration:none;border:none}
/* widget typography base (beats theme body font) */
.ctk-faq,.ctk-ticket,.ctk-stats,.ctk-steps,.ctk-chat,.ctk-pgrid,.ctk-ptabs,.ctk-bb,.ctk-cmp,.ctk-rev,.ctk-reels,.ctk-cd,.ctk-ticker,.ctk-marquee{font-family:var(--font-b)}
/* ================================================================
   v2.5 — JS ANIMATION ENGINES (letter-hop, rotate word, spotlight, magnetic)
   ================================================================ */
/* letter hop: add class cul-hop to any word/span — JS splits letters */
.cul-hop{display:inline-block}
.cul-hop .cul-hop-l{display:inline-block;animation:culHop 1.9s var(--ease) infinite;animation-delay:calc(var(--i,0)*.13s);will-change:transform}
.cul-hop:hover .cul-hop-l{animation-duration:.9s}

@keyframes culHop{0%,60%,100%{transform:translateY(0) rotate(0)}
70%{transform:translateY(-.22em) rotate(-8deg)}
80%{transform:translateY(0) rotate(5deg)}
88%{transform:translateY(-.07em) rotate(-2deg)}
94%{transform:translateY(0)}}
/* rotating word: <span class="cul-rotate" data-words="kitchen,car,desk">kitchen</span> */
.cul-rotate{display:inline-block;position:relative}
.cul-rotate .cul-rot-w{display:inline-block}
.cul-rotate .cul-rot-w.out{animation:culRotOut .35s var(--ease) forwards}
.cul-rotate .cul-rot-w.in{animation:culRotIn .35s var(--ease)}

@keyframes culRotOut{to{opacity:0;transform:translateY(-10px)}}

@keyframes culRotIn{from{opacity:0;transform:translateY(12px)}
to{opacity:1;transform:none}}
/* magnetic buttons: add cul-mag */
.cul-mag{transition:transform .25s var(--ease)}

@media(prefers-reduced-motion:reduce){.cul-hop .cul-hop-l{animation:none}
.cul-rotate .cul-rot-w{animation:none!important}
.cul-mag{transform:none!important}}
/* ---- v2.7 product card fixes ---- */

.ctk-pgrid .ctk-pbody h3,.ctk-pgrid .ctk-pbody h3 a{color:var(--ink);font-family:var(--font-d);margin:0}
.ctk-pgrid .ctk-pbody h3{margin:8px 0 4px}
.ctk-pgrid .ctk-pbody p{margin:0 0 10px;font-family:var(--font-b)}
.ctk-pgrid .ctk-pbody h3 a:hover{color:var(--lime-dark)}
.ctk-pgrid .ctk-prating{margin:0}
.ctk-pcard{transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s,opacity .3s var(--ease)}
.ctk-pcard.fading{opacity:0;transform:scale(.94)}
.ctk-pcard.hide{display:none}
/* ================= v2.9 floating cart + side drawer ================= */
.cul-cart-dock{position:fixed;left:50%;bottom:18px;translate:-50% 0;z-index:940;display:flex;align-items:center;gap:6px;background:rgba(21,21,23,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:99px;padding:8px 8px 8px 18px;box-shadow:0 20px 50px -18px rgba(0,0,0,.5);transition:transform .4s var(--ease),opacity .3s}
.cul-cart-dock--hidden{transform:translate(-50%,160%);opacity:0;pointer-events:none}
.cul-dock-btn{display:flex;align-items:center;gap:9px;background:none;border:none;color:#f5f4ef;font-family:var(--font-d);font-weight:700;font-size:14.5px;cursor:pointer;padding:0}
.cul-dock-btn svg{width:20px;height:20px}
.cul-dock-n{background:var(--lime);color:var(--ink);font-size:10.5px;font-weight:800;min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.cul-dock-total{color:#b9b7b0;font-size:13px;font-weight:600;padding:0 4px;white-space:nowrap}
.cul-dock-go{background:var(--lime);color:var(--ink);font-family:var(--font-d);font-weight:700;font-size:13.5px;padding:10px 20px;border-radius:99px;white-space:nowrap;text-decoration:none;transition:transform .2s var(--ease)}
.cul-dock-go:hover{transform:translateY(-2px);color:var(--ink)}

@media(max-width:560px){.cul-dock-total{display:none}
.cul-dock-go{padding:10px 14px}}
.cul-cart-bg{position:fixed;inset:0;background:rgba(21,21,23,.55);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .35s;z-index:950}
.cul-cart-bg.open{opacity:1;pointer-events:auto}
.cul-cart-drawer{position:fixed;top:0;right:0;height:100%;width:min(420px,100vw);background:#fff;z-index:960;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .4s var(--ease);box-shadow:-30px 0 80px -40px rgba(21,21,23,.5)}
.cul-cart-drawer.open{transform:none}
.cul-cart-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line)}
.cul-cart-head b{font-family:var(--font-d);font-size:19px}
.cul-cart-x{background:none;border:none;font-size:18px;cursor:pointer;color:var(--grey);width:34px;height:34px;border-radius:50%;transition:background .2s}
.cul-cart-x:hover{background:rgba(21,21,23,.06)}
.cul-cart-body{flex:1;overflow-y:auto;padding:18px 24px}
.cul-cart-empty{text-align:center;color:var(--grey);padding:60px 20px;font-size:15px}
.cul-cart-body .woocommerce-mini-cart{list-style:none;margin:0;padding:0}
.cul-cart-body .woocommerce-mini-cart-item{display:flex;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);position:relative;font-size:14px}
.cul-cart-body .woocommerce-mini-cart-item img{width:56px;height:56px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.cul-cart-body .woocommerce-mini-cart-item a:not(.remove){color:var(--ink);font-weight:600;text-decoration:none;font-family:var(--font-d)}
.cul-cart-body a.remove{position:absolute;right:0;top:14px;color:var(--grey)!important;font-size:18px;line-height:1}
.cul-cart-body .quantity{color:var(--grey);font-size:13px}
.cul-cart-foot{border-top:1px solid var(--line);padding:20px 24px;display:flex;flex-direction:column;gap:12px}
.cul-cart-sub{display:flex;justify-content:space-between;align-items:baseline;font-size:14px}
.cul-cart-sub b{font-family:var(--font-d);font-size:20px}
.cul-cart-checkout{background:var(--ink);color:var(--lime);text-align:center;font-family:var(--font-d);font-weight:700;font-size:15.5px;padding:16px;border-radius:14px;text-decoration:none;transition:all .3s var(--ease)}
.cul-cart-checkout:hover{background:#26262a;color:var(--lime);transform:translateY(-2px)}
.cul-cart-foot small{color:var(--grey);font-size:11.5px;text-align:center}
/* interactive dot-grid canvas (always available) */
.cul-dots{position:relative}
.cul-dots>canvas.cul-dots-cv{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.cul-dots>.elementor-container{position:relative;z-index:2}
/* ---------- testimonials double-row marquee (HTML .t-rows) ---------- */
.t-rows{display:flex;flex-direction:column;gap:4px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.t-track{display:flex;gap:22px;width:max-content;animation:culScrollx 55s linear infinite;padding:10px 0}
.t-track.trev{animation-direction:reverse;animation-duration:64s}
.t-rows:hover .t-track{animation-play-state:paused}

@keyframes culScrollx{to{transform:translateX(-50%)}}
.t-card{width:min(390px,84vw);background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;flex:none;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.t-card:hover{transform:translateY(-6px);box-shadow:0 26px 52px -30px rgba(21,21,23,.5)}
.t-card .s{color:#f5a623;letter-spacing:2px;font-size:15px}
.t-card p{font-size:15px;margin:14px 0 20px;color:#3c3c3e;line-height:1.65;font-family:var(--font-b)}
.t-who{display:flex;align-items:center;gap:12px}
.t-who img{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none}
.t-who b{font-size:14.5px;display:block;font-family:var(--font-d)}
.t-who>div>span{font-size:12.5px;color:var(--grey)}
.t-ver{margin-left:auto;position:relative;overflow:hidden;font-family:var(--font-d);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:linear-gradient(135deg,rgba(200,245,29,.38),rgba(200,245,29,.12) 55%,rgba(255,255,255,.7));border:1px solid rgba(169,212,14,.55);padding:6px 12px 6px 8px;border-radius:99px;display:flex;gap:6px;align-items:center;flex:none;box-shadow:0 4px 12px -7px rgba(169,212,14,.8),inset 0 1px 0 rgba(255,255,255,.7)}
.t-ver svg{width:15px;height:15px;flex:none}
.t-ver::after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);transform:skewX(-18deg)}
.t-card:hover .t-ver::after{animation:tverShine .9s var(--ease)}

@keyframes tverShine{to{left:130%}}

@media(prefers-reduced-motion:reduce){.t-track{animation:none}}

@media(max-width:560px){.t-card p{font-size:14px}}
/* ---------- policy pages: TOC + numbered sections (cullects_policy) ---------- */
/* Hardened against Elementor Kit CSS: literal colors + high specificity + targeted
   !important on link/accent colors the Kit tends to override. */
.ctk-policy{max-width:1160px;margin:0 auto;padding:0;display:grid;grid-template-columns:262px 1fr;gap:56px;align-items:start}
.ctk-policy .ctk-pol-toc{position:sticky;top:88px;align-self:start}
.ctk-policy .ctk-pol-tl{font-family:var(--font-d);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#6a6a70;margin-bottom:14px}
.ctk-policy .ctk-pol-toc a{display:block;padding:8px 14px;border-left:2px solid rgba(21,21,23,.12);color:#6a6a70!important;font-family:var(--font-b);font-size:13.5px;line-height:1.4;text-decoration:none;transition:color .2s,border-color .2s,background .2s}
.ctk-policy .ctk-pol-toc a:hover,.ctk-policy .ctk-pol-toc a.active{color:#0d0d0f!important;border-color:#A9D40E}
.ctk-policy .ctk-pol-toc a.active{font-weight:600;border-color:#C8F51D;background:rgba(200,245,29,.14)}
.ctk-policy .ctk-pol-help{margin-top:18px;padding:14px 16px;background:#f6f5f1;border:1px solid rgba(21,21,23,.12);border-radius:12px;font-family:var(--font-b);font-size:13px;color:#6a6a70;line-height:1.5}
.ctk-policy .ctk-pol-help a{display:inline;padding:0;border:none;color:#A9D40E!important;font-weight:600;text-decoration:none}
.ctk-policy .ctk-pol-content{max-width:760px;min-width:0}
.ctk-policy .ctk-pol-tldr{background:rgba(200,245,29,.12);border:1px solid rgba(169,212,14,.45);border-radius:18px;padding:22px 24px;margin-bottom:36px}
.ctk-policy .ctk-pol-tldr-t{display:inline-block;font-family:var(--font-d);font-weight:700;font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;color:#A9D40E!important;margin-bottom:13px}
.ctk-policy .ctk-pol-tldr-body ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ctk-policy .ctk-pol-tldr-body li{position:relative;padding-left:28px;color:#242428;font-family:var(--font-b);font-size:15px;line-height:1.5}
.ctk-policy .ctk-pol-tldr-body li::before{content:"\2713";position:absolute;left:0;top:1px;color:#151517;background:#C8F51D;width:19px;height:19px;border-radius:50%;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
.ctk-policy .ctk-pol-tldr-note{display:block;margin-top:15px;font-family:var(--font-b);font-size:12.5px;color:#6a6a70}
.ctk-policy .ctk-pol-sec{scroll-margin-top:88px;padding-bottom:10px}
.ctk-policy .ctk-pol-sec+.ctk-pol-sec{border-top:1px solid rgba(21,21,23,.12);margin-top:34px;padding-top:34px}
.ctk-policy .ctk-pol-sec h2{font-family:var(--font-d);font-weight:700;font-size:23px;letter-spacing:-.01em;margin:0 0 12px;display:flex;gap:12px;align-items:center;color:#0d0d0f}
.ctk-policy .ctk-pol-hn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:#151517;color:#C8F51D!important;font-family:var(--font-d);font-weight:700;font-size:12.5px;flex:none}
.ctk-policy .ctk-pol-body h3{font-family:var(--font-d);font-weight:600;font-size:17px;margin:20px 0 6px;color:#0d0d0f}
.ctk-policy .ctk-pol-body p{font-family:var(--font-b);margin:0 0 13px;color:#2c2c30;line-height:1.75}
.ctk-policy .ctk-pol-body ul{margin:0 0 14px 4px;list-style:none;padding:0}
.ctk-policy .ctk-pol-body li{position:relative;padding-left:22px;margin-bottom:8px;color:#2c2c30;font-family:var(--font-b);line-height:1.75}
.ctk-policy .ctk-pol-body li::before{content:"";position:absolute;left:2px;top:11px;width:7px;height:7px;border-radius:2px;background:#C8F51D;transform:rotate(45deg)}
.ctk-policy .ctk-pol-body b,.ctk-policy .ctk-pol-body strong{font-weight:700}
.ctk-policy .ctk-pol-body a{color:#0d0d0f!important;text-decoration:underline;text-underline-offset:3px}
.ctk-policy .ctk-pol-body .callout{background:#f6f5f1;border:1px solid rgba(21,21,23,.12);border-left:3px solid #C8F51D;border-radius:16px;padding:20px 22px;margin-top:8px}
.ctk-policy .ctk-pol-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;background:#0d0d0f;color:#fff;border-radius:22px;padding:30px 32px;margin-top:44px}
.ctk-policy .ctk-pol-cta h3{font-family:var(--font-d);font-weight:700;font-size:22px;margin:0 0 5px;color:#fff}
.ctk-policy .ctk-pol-cta p{font-family:var(--font-b);color:#b9b7b0;font-size:14.5px;margin:0}
.ctk-policy .ctk-pol-cta-btns{display:flex;gap:10px;flex-wrap:wrap}
.ctk-policy .ctk-pol-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;font-family:var(--font-b);font-weight:600;font-size:15.5px;padding:17px 32px;border-radius:99px;text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s,color .3s,border-color .3s}
.ctk-policy .ctk-pol-btn:active{transform:translateY(-1px) scale(.97)}
.ctk-policy .ctk-pol-btn--lime{background:linear-gradient(180deg,#202024,#151517);color:#C8F51D!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 10px 22px -12px rgba(21,21,23,.35)}
.ctk-policy .ctk-pol-btn--lime::before{content:"";position:absolute;top:0;left:-70%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.13),transparent);transform:skewX(-18deg);pointer-events:none}
.ctk-policy .ctk-pol-btn--lime:hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 18px 38px -12px rgba(21,21,23,.5),0 8px 26px -10px rgba(200,245,29,.45)}
.ctk-policy .ctk-pol-btn--lime:hover::before{animation:ctkBtnShine .85s var(--ease)}

@keyframes ctkBtnShine{to{left:135%}}
.ctk-policy .ctk-pol-btn--ghost{border:1.5px solid rgba(255,255,255,.3);color:#fff!important;background:rgba(255,255,255,.07)}
.ctk-policy .ctk-pol-btn--ghost:hover{border-color:#C8F51D;background:rgba(200,245,29,.15);color:#fff!important;transform:translateY(-3px);box-shadow:0 14px 30px -14px rgba(21,21,23,.3)}
.ctk-policy .ctk-pol-more{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:26px;padding-top:22px;border-top:1px solid rgba(21,21,23,.12);font-family:var(--font-b);font-size:14px}
.ctk-policy .ctk-pol-more span{font-family:var(--font-d);font-weight:600;color:#6a6a70}
.ctk-policy .ctk-pol-more a{color:#0d0d0f!important;text-decoration:underline;text-underline-offset:3px;transition:color .2s}
.ctk-policy .ctk-pol-more a:hover{color:#A9D40E!important}
.ctk-policy .ctk-pol-backtop{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-family:var(--font-b);font-size:13px;color:#6a6a70}
.ctk-policy .ctk-pol-backtop a{color:#6a6a70!important;text-decoration:underline}

@media(max-width:900px){.ctk-policy{grid-template-columns:1fr;gap:24px}
.ctk-policy .ctk-pol-toc{position:relative;top:0;border:1px solid rgba(21,21,23,.12);border-radius:14px;padding:16px}
.ctk-policy .ctk-pol-toc a{border-left:none;padding:6px 4px}
.ctk-policy .ctk-pol-toc a.active{background:none}}
/* ---------- floating cart + account dock + drawer (cullects_floatcart) ---------- */
.ctk-dock{position:fixed;left:50%;bottom:18px;translate:-50% 160%;z-index:940;display:flex;align-items:center;gap:6px;background:rgba(21,21,23,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(200,245,29,.28);border-radius:99px;padding:7px;box-shadow:0 20px 55px rgba(0,0,0,.45);transition:translate .5s var(--ease)}
.ctk-dock.on{translate:-50% 0}
.ctk-dk-btn{display:flex;align-items:center;gap:9px;color:var(--cream);font-family:var(--font-b);font-size:13.5px;font-weight:600;padding:10px 16px;border-radius:99px;transition:background .25s;white-space:nowrap;background:none;border:none;cursor:pointer}
.ctk-dk-btn:hover{background:rgba(255,255,255,.12)}
.ctk-dk-btn svg{width:16px;height:16px}
.ctk-dk-n{background:var(--lime);color:var(--ink);font-size:10.5px;font-weight:800;min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.ctk-dk-ico{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;color:var(--cream)!important;transition:background .25s,color .25s}
.ctk-dk-ico:hover{background:rgba(255,255,255,.12);color:var(--lime)!important}
.ctk-dk-ico svg{width:17px;height:17px}
.ctk-dk-sep{width:1px;height:22px;background:rgba(255,255,255,.16)}
.ctk-dk-total{color:#b9b7b0;font-family:var(--font-b);font-size:13px;padding:0 6px;font-weight:600;white-space:nowrap}
.ctk-dk-total b{color:var(--cream)}
.ctk-dk-go{background:var(--lime);color:var(--ink);font-family:var(--font-b);font-weight:700;font-size:13.5px;padding:10px 20px;border-radius:99px;transition:transform .25s var(--ease);white-space:nowrap;text-decoration:none}
.ctk-dk-go:hover{transform:scale(1.04)}

@media(max-width:640px){.ctk-dock{left:10px;right:10px;bottom:10px;translate:0 160%;gap:2px;padding:6px;justify-content:space-between;border-radius:20px}
.ctk-dock.on{translate:0 0}
.ctk-dk-total,.ctk-dk-sep{display:none}
.ctk-dk-btn{padding:10px 12px;font-size:13px}
.ctk-dk-ico{width:38px;height:38px}
.ctk-dk-go{padding:11px 16px;font-size:13px}}
@media(max-width:380px){.ctk-dk-ico[aria-label='Search']{display:none}
.ctk-dk-go{padding:11px 14px}}
/* drawer */
.ctk-fd-bg{position:fixed;inset:0;background:rgba(21,21,23,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .35s;z-index:950}
.ctk-fd-bg.on{opacity:1;pointer-events:auto}
.ctk-fd{position:fixed;top:0;right:0;bottom:0;width:min(430px,92vw);background:var(--cream);z-index:960;transform:translateX(105%);transition:transform .5s var(--ease);display:flex;flex-direction:column;box-shadow:-30px 0 80px rgba(0,0,0,.25);border-radius:22px 0 0 22px}
.ctk-fd.on{transform:translateX(0)}
.ctk-fd-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line);font-family:var(--font-d);font-weight:700;font-size:19px;color:var(--ink)}
.ctk-fd-count{color:var(--lime-dark);font-family:var(--font-d)}
.ctk-fd-close{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--line);font-size:17px;background:none;cursor:pointer;color:var(--ink);transition:all .25s;display:flex;align-items:center;justify-content:center}
.ctk-fd-close:hover{background:var(--ink);color:var(--lime);border-color:var(--ink)}
.ctk-fd-items{flex:1;overflow-y:auto;padding:18px 24px;display:flex;flex-direction:column;gap:16px}
.ctk-fd-empty{text-align:center;color:var(--grey);margin-top:60px;font-family:var(--font-b);font-size:14.5px;line-height:1.6}
.ctk-fd-item{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}
.ctk-fd-item img{width:60px;height:60px;object-fit:contain;background:#f4f2ec;border-radius:10px;padding:6px;flex:none}
.ctk-fd-item-main{flex:1;min-width:0}
.ctk-fd-nm{font-family:var(--font-b);font-size:13.5px;font-weight:600;line-height:1.3;color:var(--ink)}
.ctk-fd-pr{font-family:var(--font-b);font-size:13px;color:var(--grey);margin-top:3px}
.ctk-fd-qty{display:flex;align-items:center;gap:10px;margin-top:8px}
.ctk-fd-qty button{width:26px;height:26px;border:1.5px solid var(--line);border-radius:9px;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .2s;background:none;cursor:pointer;color:var(--ink)}
.ctk-fd-qty button:hover{background:var(--ink);color:var(--lime);border-color:var(--ink)}
.ctk-fd-qty b{font-family:var(--font-b);font-weight:700;min-width:14px;text-align:center;color:var(--ink)}
.ctk-fd-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;align-self:stretch;padding:2px 0}
.ctk-fd-side b{font-size:13.5px;font-family:var(--font-d);color:var(--ink)}
.ctk-fd-x{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-size:15px;color:var(--grey);line-height:1;background:none;border:none;cursor:pointer;transition:color .2s,background .2s}
.ctk-fd-x:hover{color:var(--ink);background:rgba(21,21,23,.08)}
.ctk-fd-foot{padding:20px 24px;border-top:1px solid var(--line)}
.ctk-fd-ship{font-family:var(--font-b);font-size:12.5px;text-align:center;margin-bottom:12px;color:var(--grey)}
.ctk-fd-ship b{color:var(--ink);font-weight:700}
.ctk-fd-shipbar{height:5px;background:#eee9df;border-radius:5px;overflow:hidden;margin-top:8px;margin-bottom:16px}
.ctk-fd-shipbar-i{display:block;height:100%;background:var(--lime);width:0;transition:width .5s var(--ease)}
.ctk-fd-total{display:flex;justify-content:space-between;font-family:var(--font-d);font-weight:700;font-size:18px;margin-bottom:14px;color:var(--ink)}
.ctk-fd-checkout{display:block;width:100%;text-align:center;background:var(--ink);color:var(--lime);font-family:var(--font-b);font-weight:700;padding:16px;border-radius:14px;font-size:15px;text-decoration:none;transition:all .3s var(--ease)}
.ctk-fd-checkout:hover{background:var(--lime);color:var(--ink)}
.ctk-fd-note{text-align:center;font-family:var(--font-b);font-size:11.5px;color:var(--grey);margin-top:10px}
.ctk-fd-pays{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:7px;margin-top:14px}
.ctk-fd-pays .ctk-secure{display:inline-flex;align-items:center;gap:5px;width:100%;justify-content:center;margin-bottom:4px;font-family:var(--font-b);font-size:11.5px;font-weight:600;color:var(--grey)}
.ctk-fd-pays .ctk-secure svg{width:13px;height:13px}
.ctk-pay{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:26px;padding:0 8px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 1px 2px rgba(21,21,23,.05);font-family:Arial,Helvetica,sans-serif;font-weight:800;font-size:11px;line-height:1;color:var(--ink)}
.ctk-pay.ctk-pay-ico{padding:0 6px}
.ctk-pay svg{display:block;height:16px;width:auto}
.ctk-pay-cod svg{height:15px}
.ctk-visa{color:#1A1F71;font-style:italic;font-weight:800;letter-spacing:.02em}
.ctk-unionpay{background:linear-gradient(90deg,#e21836 33%,#00447c 33% 66%,#007b84 66%);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.ctk-paypak{color:#0a7d2c;font-weight:800}
/* dock/drawer link color hardening (beat Elementor Kit link color) */
.ctk-dock a,.ctk-fd a{text-decoration:none}
.ctk-dk-btn{color:var(--cream)!important}
.ctk-dk-go{color:var(--ink)!important}
.ctk-fd-checkout{color:var(--lime)!important}
.ctk-fd-checkout:hover{color:var(--ink)!important}
.ctk-padd,.ctk-padd:hover,.ctk-padd:focus{color:#fdfdfd!important;text-decoration:none}
.ctk-padd.loading{opacity:.7;pointer-events:none}
.ctk-padd svg{width:18px!important;height:18px!important;flex:none}
.ctk-bb-pays .ctk-pay svg,.ctk-fd-pays .ctk-pay svg{height:16px!important;width:auto!important}
.ctk-bb-pays .ctk-pay-cod svg,.ctk-fd-pays .ctk-pay-cod svg{height:15px!important}

/* ===== Cullects Buy Box — ported 1:1 from source ===== */
.ctk-bb{display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:start;font-family:var(--font-b);color:var(--ink)}
.ctk-bb-gal{position:sticky;top:96px}
.ctk-bb-stage{position:relative;aspect-ratio:1/1;background:linear-gradient(160deg,#fafaf8,#eeede7);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.ctk-bb-stage .ctk-bb-mainimg{width:100%;height:100%;object-fit:contain;padding:34px;mix-blend-mode:multiply;transition:transform .5s var(--ease)}
.ctk-bb-badge{position:absolute;top:16px;left:16px;background:var(--lime);color:var(--ink);font-family:var(--font-b);font-size:12px;font-weight:800;letter-spacing:.04em;padding:7px 14px;border-radius:99px;z-index:2}
.ctk-bb-seal{position:absolute;right:14px;bottom:14px;width:76px;height:76px;border-radius:50%;border:2px dashed var(--ink);color:var(--ink);background:rgba(200,245,29,.94);display:flex;align-items:center;justify-content:center;z-index:2;animation:ctkSpin 18s linear infinite}
.ctk-bb-seal span{animation:ctkSpinRev 18s linear infinite;text-align:center;font-family:var(--font-d);font-weight:700;font-size:9.5px;line-height:1.2;letter-spacing:.04em}
@keyframes ctkSpin{to{rotate:360deg}}
@keyframes ctkSpinRev{to{rotate:-360deg}}
@media(prefers-reduced-motion:reduce){.ctk-bb-seal,.ctk-bb-seal span{animation:none}}
.ctk-bb-thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:12px}
.ctk-bb-thumbs button{aspect-ratio:1/1;background:linear-gradient(160deg,#fafaf8,#eeede7);border:1.5px solid transparent;border-radius:14px;overflow:hidden;padding:6px;cursor:pointer;transition:all .25s var(--ease);opacity:.7}
.ctk-bb-thumbs button.on{border-color:var(--ink);opacity:1}
.ctk-bb-thumbs button:hover{opacity:1}
.ctk-bb-thumbs img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.ctk-bb-rating{display:flex;align-items:center;gap:8px;font-family:var(--font-b);font-size:13.5px;color:var(--grey);font-weight:500;flex-wrap:wrap}
.ctk-bb-rating .s{color:#f5a623;letter-spacing:1.5px}
.ctk-bb-rating a{color:var(--ink)!important;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ctk-bb-title{font-family:var(--font-d);font-weight:700;font-size:clamp(28px,3vw,40px);line-height:1.12;letter-spacing:-.02em;margin:12px 0 10px;color:var(--ink)}
.ctk-bb-lede{font-family:var(--font-b);font-size:16px;color:#55554f;max-width:480px;margin:0}
.ctk-bb-list{margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;font-family:var(--font-b);font-size:14px;color:#3c3c3e;list-style:none}
.ctk-bb-list li{display:flex;gap:9px;align-items:flex-start}
.ctk-bb-list svg{width:16px!important;height:16px!important;color:var(--lime-dark);flex:none;margin-top:3px}
.ctk-bb-price{display:flex;align-items:center;gap:12px;margin:22px 0 6px;flex-wrap:wrap}
.ctk-bb-price .now{font-family:var(--font-d);font-weight:700;font-size:34px;letter-spacing:-.02em;color:var(--ink)}
.ctk-bb-price .was{color:var(--grey);text-decoration:line-through;font-size:17px}
.ctk-bb-price .save{background:var(--lime);color:var(--ink);font-family:var(--font-b);font-size:12px;font-weight:800;letter-spacing:.02em;padding:5px 11px;border-radius:9px}
.ctk-bb-tax{font-family:var(--font-b);font-size:12.5px;color:var(--grey);margin:0}
.ctk-bb-stock{display:flex;align-items:center;gap:8px;font-family:var(--font-b);font-size:13.5px;font-weight:600;color:#2e7d32;margin:16px 0 4px}
.ctk-bb-stock .dot{width:8px;height:8px;border-radius:50%;background:#3d9b35;box-shadow:0 0 0 3px rgba(61,155,53,.18);flex:none}
.ctk-bb-stock small{color:var(--grey);font-weight:500}
.ctk-bb-buy{display:flex;gap:12px;margin-top:16px}
.ctk-bb-qty{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:99px;overflow:hidden;flex:none}
.ctk-bb-qty button{width:44px;height:54px;font-size:18px;font-weight:700;background:none;border:none;cursor:pointer;color:var(--ink);transition:all .2s}
.ctk-bb-qty button:hover{background:var(--ink)!important;color:var(--lime)!important}
.ctk-bb-qty b{min-width:34px;text-align:center;font-size:15px;font-family:var(--font-d);color:var(--ink)}
.ctk-bb-add{flex:1;background:var(--ink);color:var(--cream)!important;font-family:var(--font-b);font-weight:700;font-size:15.5px;padding:16px 24px;border-radius:99px;display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;transition:all .3s var(--ease)}
.ctk-bb-add svg{width:17px!important;height:17px!important;flex:none}
.ctk-bb-add:hover{background:var(--lime)!important;color:var(--ink)!important;transform:none}
.ctk-bb-add.loading{opacity:.7;pointer-events:none}
.ctk-bb-buynow{display:block;text-align:center;margin-top:12px;background:var(--lime);color:var(--ink)!important;font-family:var(--font-b);font-weight:700;font-size:15.5px;padding:16px 24px;border-radius:99px;text-decoration:none;transition:all .3s var(--ease)}
.ctk-bb-buynow:hover{transform:translateY(-2px);box-shadow:0 14px 34px -10px rgba(163,204,10,.7)}
.ctk-bb-cod{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:12px;font-family:var(--font-b);font-size:12px;color:var(--grey)}
.ctk-bb-cod svg{width:13px!important;height:13px!important;flex:none}
.ctk-bb-cod b{color:var(--ink);font-weight:700}
.ctk-bb-wa{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;border:1px solid rgba(37,211,102,.35);background:rgba(37,211,102,.07);border-radius:14px}
.ctk-bb-wa .ic{flex:none;width:34px;height:34px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center}
.ctk-bb-wa .ic svg{width:20px!important;height:20px!important}
.ctk-bb-wa .tx{flex:1;line-height:1.3}
.ctk-bb-wa .tx b{display:block;font-family:var(--font-b);font-size:14px;color:#151517}
.ctk-bb-wa .tx>span{font-size:12px;color:#7a7a7a}
.ctk-bb-wa a{flex:none;background:#25D366;color:#fff!important;font-family:var(--font-b);font-weight:700;font-size:13px;padding:9px 15px;border-radius:99px;text-decoration:none;white-space:nowrap;transition:transform .2s}
.ctk-bb-wa a:hover{transform:translateY(-1px)}
.ctk-bb-eta{display:flex;align-items:center;gap:9px;margin-top:14px;font-family:var(--font-b);font-size:13px;color:#3c3c3e;background:#f6faea;border:1px solid rgba(163,204,10,.4);border-radius:12px;padding:11px 14px}
.ctk-bb-eta svg{width:16px!important;height:16px!important;color:var(--lime-dark);flex:none}
.ctk-bb-eta b{color:var(--ink);font-weight:700}
.ctk-bb-chips{display:flex;gap:18px;margin-top:22px;flex-wrap:wrap;font-family:var(--font-b);font-size:13px;font-weight:500;color:#454540}
.ctk-bb-chips span{display:flex;align-items:center;gap:8px}
.ctk-bb-chips svg{width:16px!important;height:16px!important;color:var(--lime-dark);flex:none}
.ctk-bb-steps{display:grid;grid-template-columns:.85fr auto 1.05fr auto 1.1fr;align-items:center;gap:6px 12px;margin-top:16px;background:#f7f8f2;border:1px solid var(--line);border-radius:16px;padding:15px 18px}
.ctk-bb-steps>div{display:flex;flex-direction:column;gap:2px}
.ctk-bb-steps b{font-family:var(--font-d);font-weight:700;font-size:12.5px;letter-spacing:.01em;line-height:1.25;white-space:nowrap;color:var(--ink)}
.ctk-bb-steps>div span{font-size:11px;color:var(--grey);line-height:1.45}
.ctk-bb-steps i{color:var(--lime-dark);font-style:normal;font-size:16px;text-align:center}
.ctk-bb-pays{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:16px}
.ctk-bb-accs{margin-top:26px;display:flex;flex-direction:column;gap:10px}
.ctk-bb-accs details{border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.ctk-bb-accs details:hover{border-color:rgba(21,21,23,.35)}
.ctk-bb-accs details[open]{border-color:var(--ink);box-shadow:0 20px 60px -20px rgba(21,21,23,.25)}
.ctk-bb-accs summary{list-style:none;display:flex;align-items:center;gap:13px;padding:14px 18px;font-family:var(--font-d);font-weight:600;font-size:14.5px;cursor:pointer;color:var(--ink)!important}
.ctk-bb-accs summary::-webkit-details-marker{display:none}
.ctk-bb-accs .ai{width:36px;height:36px;border-radius:50%;background:rgba(200,245,29,.35);border:1px solid rgba(21,21,23,.1);display:flex;align-items:center;justify-content:center;flex:none;color:var(--ink);transition:all .3s var(--ease)}
.ctk-bb-accs .ai svg{width:16px!important;height:16px!important}
.ctk-bb-accs details[open] .ai{background:var(--ink);color:var(--lime)}
.ctk-bb-accs summary .st{flex:1}
.ctk-bb-accs summary::after{content:"+";font-size:18px;color:var(--grey);transition:rotate .3s var(--ease);flex:none}
.ctk-bb-accs details[open] summary::after{rotate:45deg;color:var(--lime-dark)}
.ctk-bb-accs .ac-body{padding:0 18px 18px 67px;font-family:var(--font-b);font-size:13.5px;color:#4b4b4d;line-height:1.6}
@media(max-width:900px){.ctk-bb{grid-template-columns:1fr;gap:34px}.ctk-bb-gal{position:static}.ctk-bb-buy{flex-wrap:wrap}.ctk-bb-add{min-width:100%}.ctk-bb-accs .ac-body{padding:0 18px 18px 18px}}
/* breadcrumb (ported from .crumbs) */
.ctk-crumbs{font-family:var(--font-b);font-size:13px;color:var(--grey);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ctk-crumbs a{color:var(--grey)!important;text-decoration:none;transition:color .2s}
.ctk-crumbs a:hover{color:var(--ink)!important;text-decoration:underline}
.ctk-crumbs b{color:var(--ink);font-weight:600}
.ctk-pm{display:inline-block;vertical-align:middle;flex:none}
.ctk-bb-pays .ctk-pm,.ctk-fd-pays .ctk-pm{height:24px!important;width:auto!important;max-width:64px!important}
.ctk-bb-pays,.ctk-fd-pays{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px}
.ctk-fd-pays .ctk-secure{width:100%;justify-content:center;margin-bottom:2px}
@media(max-width:560px){.ctk-bb-steps{grid-template-columns:1fr;gap:12px}.ctk-bb-steps i{display:none}}
/* buybox info spacing reset (beat Elementor Kit default margins) */
.ctk-bb-info h1,.ctk-bb-info p,.ctk-bb-info ul,.ctk-bb-info ol{margin:0}
.ctk-bb-info .ctk-bb-rating{margin:0}
.ctk-bb-info .ctk-bb-title{margin:12px 0 10px}
.ctk-bb-info .ctk-bb-lede{margin:0}
.ctk-bb-info .ctk-bb-list{margin:16px 0 0}
.ctk-bb-info .ctk-bb-price{margin:22px 0 6px}
.ctk-bb-info .ctk-bb-tax{margin:0}
.ctk-bb-info .ctk-bb-stock{margin:16px 0 4px}
/* wider hero to match source 1280 + roomier gallery */
.ctk-bb{max-width:1280px;margin:0 auto}
/* ---------- demo video (light section) ---------- */
.ctk-vid{background:#fbfaf7;border-top:1px solid var(--line);border-bottom:1px solid var(--line);width:100vw;margin-left:calc(50% - 50vw)}
.ctk-vid-in{max-width:1280px;margin:0 auto;padding:72px 24px}
.ctk-vid-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:34px;flex-wrap:wrap}
.ctk-vid-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)!important;background:var(--lime);padding:6px 14px;border-radius:99px;margin-bottom:16px}
.ctk-vid .ctk-vid-title{font-family:var(--font-d);font-weight:700;font-size:clamp(30px,3.6vw,48px);line-height:1.08;letter-spacing:-.02em;margin:0;color:var(--ink)}
.ctk-vid .ctk-vid-sub{color:var(--grey);font-size:16px;max-width:460px;margin:0}
.ctk-vid-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:24px;align-items:center}
.ctk-vid-tile{position:relative;aspect-ratio:16/9;border-radius:22px;overflow:hidden;background:linear-gradient(160deg,#fafaf8,#eeede7);border:1px solid var(--line)}
.ctk-vid-tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ctk-vid .ctk-vid-poster{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:contain;padding:40px;mix-blend-mode:multiply}
.ctk-vid-play{position:absolute;left:50%;top:50%;translate:-50% -50%;width:74px;height:74px;border-radius:50%;background:var(--lime);border:1px solid rgba(21,21,23,.2);display:flex;align-items:center;justify-content:center;box-shadow:0 16px 40px -10px rgba(0,0,0,.35);z-index:2;font-size:23px;padding-left:5px;color:var(--ink);transition:transform .3s var(--ease)}
.ctk-vid-tile:hover .ctk-vid-play{transform:scale(1.12)}
.ctk-vid-pts{display:flex;flex-direction:column;gap:12px}
.ctk-vp-row{display:flex;gap:14px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:16px 18px;transition:all .3s var(--ease)}
.ctk-vp-row:hover{transform:translateX(5px);border-color:rgba(21,21,23,.3)}
.ctk-vp-row .ctk-vp-ic{width:40px;height:40px;border-radius:50%;background:rgba(200,245,29,.35);border:1px solid rgba(21,21,23,.1);display:flex;align-items:center;justify-content:center;flex:none;color:var(--ink)}
.ctk-vid .ctk-vp-ic svg{width:18px!important;height:18px!important}
.ctk-vp-row b{font-family:var(--font-d);font-size:14.5px;display:block;color:var(--ink)}
.ctk-vp-row span{font-size:12.5px;color:var(--grey)}
@media(max-width:920px){.ctk-vid-grid{grid-template-columns:1fr}}
/* ---------- how it works (numbered steps) ---------- */
.ctk-how-in{max-width:1280px;margin:0 auto;padding:88px 24px}
.ctk-how-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:44px;flex-wrap:wrap}
.ctk-how-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)!important;background:var(--lime);padding:6px 14px;border-radius:99px;margin-bottom:16px}
.ctk-how .ctk-how-title{font-family:var(--font-d);font-weight:700;font-size:clamp(30px,3.6vw,48px);line-height:1.08;letter-spacing:-.02em;margin:0;color:var(--ink)}
.ctk-how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;position:relative}
.ctk-hstep{text-align:center;padding:0 18px;position:relative}
.ctk-hstep .ctk-hnum{width:58px;height:58px;border-radius:50%;background:var(--lime);border:1px solid rgba(21,21,23,.18);font-family:var(--font-d);font-weight:700;font-size:21px;color:var(--ink);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;box-shadow:0 10px 26px -10px rgba(163,204,10,.8);transition:all .3s var(--ease);position:relative;z-index:1}
.ctk-hstep:hover .ctk-hnum{background:var(--ink);color:var(--lime);transform:scale(1.1)}
.ctk-hstep::before{content:"";position:absolute;top:28px;left:calc(50% + 46px);width:calc(100% - 92px);height:2px;background:repeating-linear-gradient(90deg,rgba(21,21,23,.25) 0 8px,transparent 8px 16px)}
.ctk-hstep:last-child::before{display:none}
.ctk-how .ctk-hstep h3{font-family:var(--font-d);font-weight:700;font-size:19px;margin:0 0 8px;letter-spacing:-.01em;color:var(--ink)}
.ctk-how .ctk-hstep p{font-size:14px;color:#55554f;max-width:300px;margin:0 auto}
@media(max-width:860px){
 .ctk-how-grid{grid-template-columns:1fr;gap:34px}
 .ctk-hstep{display:grid;grid-template-columns:58px 1fr;gap:18px;text-align:left;padding:0}
 .ctk-hstep .ctk-hnum{margin:0}
 .ctk-how .ctk-hstep h3,.ctk-how .ctk-hstep p{grid-column:2;margin:0}
 .ctk-how .ctk-hstep h3{margin-bottom:6px}
 .ctk-hstep::before{left:28px;top:66px;width:2px;height:calc(100% - 24px);background:repeating-linear-gradient(180deg,rgba(21,21,23,.25) 0 8px,transparent 8px 16px)}
}
/* ---------- reviews: imported/AJAX extras ---------- */
.ctk-rev-card .top .s .off,.ctk-rev-sum .s .off{color:rgba(255,255,255,.22)}
.ctk-rev-card .top .s .off{color:#d9d8d2}
.ctk-rev-empty{grid-column:1/-1;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--grey);font-size:14px;padding:34px 24px;border:1px dashed var(--line);border-radius:18px;background:#fff}
.ctk-rev-empty code{background:rgba(21,21,23,.06);padding:2px 7px;border-radius:6px;margin:0 3px}
.ctk-rev-loading{opacity:.5;transition:opacity .2s}
.ctk-rev-loading .ctk-rev-pages{pointer-events:none}
/* ---------- faq head (product mode) ---------- */
.ctk-faq-head{text-align:center;margin-bottom:36px}
.ctk-faq-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)!important;background:var(--lime);padding:6px 14px;border-radius:99px;margin-bottom:14px}
.ctk-faq-head .ctk-faq-title{font-family:var(--font-d);font-weight:700;font-size:clamp(28px,4.6vw,50px);line-height:1.08;letter-spacing:-.02em;margin:10px 0 0;color:var(--ink)}
/* ---------- woocommerce breadcrumb (single-product template) ---------- */
.ctk-crumbs-wc .woocommerce-breadcrumb{font-family:var(--font-b);font-size:13px;color:var(--grey);margin:0 0 4px}
.ctk-crumbs-wc .woocommerce-breadcrumb a{color:var(--grey);text-decoration:none;transition:color .2s}
.ctk-crumbs-wc .woocommerce-breadcrumb a:hover{color:var(--ink)}

/* WooCommerce injects a.added_to_cart after AJAX add; Hello theme reset.css a{color:#c36} makes it pink. */
body a.added_to_cart,body a.added_to_cart:visited{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin:9px 0 0;padding:11px 16px;border:1.5px solid var(--lime);border-radius:99px;background:rgba(200,245,29,.18);color:var(--ink);font-family:var(--font-b);font-size:13.5px;font-weight:700;letter-spacing:.01em;text-decoration:none;opacity:1;transition:background .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
body a.added_to_cart::before{content:'';width:15px;height:15px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6'/%3E%3C/svg%3E") center/contain no-repeat}
body a.added_to_cart:hover,body a.added_to_cart:focus{background:var(--lime);border-color:var(--lime);color:var(--ink);transform:translateY(-1px)}

/* Saved (wishlist) count in the floating dock + heart feedback. */
.ctk-dk-fav{position:relative;display:inline-flex;align-items:center;color:var(--cream);opacity:.9}
.ctk-dk-fav svg{width:17px;height:17px}
.ctk-dk-saved{position:absolute;top:-6px;right:-9px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--lime);color:var(--ink);font-family:var(--font-b);font-size:10.5px;font-weight:700;line-height:16px;text-align:center}
.ctk-dk-saved[hidden]{display:none}
.ctk-wish{cursor:pointer}
.ctk-wish.pulse{animation:ctkWishPulse .32s var(--ease)}
@keyframes ctkWishPulse{0%{transform:scale(1)}45%{transform:scale(1.22)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.ctk-wish.pulse{animation:none}}


/* ==========================================================================
   Checkout - Shopify-style. Single source of truth: extend this block only.
   Markup comes from child-theme templates woocommerce/checkout/*.php
   ========================================================================== */
body.woocommerce-checkout .elementor-location-header,
body.woocommerce-checkout .elementor-location-footer,
body.woocommerce-checkout .ctk-floatcart,
body.woocommerce-checkout .woocommerce-breadcrumb{display:none!important}
body.woocommerce-checkout{background:#fff}
body.woocommerce-checkout .elementor-element.e-con.e-parent{padding:0!important;margin:0!important}
body.woocommerce-checkout .e-con-inner{max-width:none!important;padding:0!important}
body.woocommerce-checkout .page-content,
body.woocommerce-checkout .site-main{padding:0!important;margin:0!important;max-width:none}

.ck{font-family:var(--font-b);color:#2b2b2e;-webkit-font-smoothing:antialiased}
.ck *{box-sizing:border-box}

/* ---- minimal header ---- */
.ck-bar{border-bottom:1px solid #e3e3df}
.ck-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;
  max-width:1200px;margin:0 auto;padding:20px 24px}
.ck-logo{display:inline-flex;align-items:center;font-family:var(--font-d);font-weight:700;
  font-size:19px;letter-spacing:-.01em;color:var(--ink);text-decoration:none}
.ck-logo img{display:block;height:30px;width:auto;max-width:190px;object-fit:contain}
.ck-bag{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
  border:1px solid #dcdcd7;border-radius:9px;color:var(--ink);background:#fff;transition:.18s var(--ease)}
.ck-bag svg{width:19px;height:19px}
.ck-bag:hover{background:var(--lime);border-color:var(--lime)}
.ck-notices{max-width:1200px;margin:0 auto;padding:0 24px}
.ck-notices:empty{display:none}

/* ---- two columns: white form left, tinted rail bleeding right ---- */
.ck-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.ck-main{width:100%;max-width:604px;margin-left:auto;padding:38px 44px 110px 24px}
.ck-side{background:#f6f6f3;border-left:1px solid #e6e6e1;padding:38px 24px 110px 44px}
.ck-side-inner{width:100%;max-width:512px;position:sticky;top:26px}

/* ---- sections ---- */
.ck-sec{margin:0 0 30px}
.ck-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin:0 0 13px}
.ck-sec-head h2{font-family:var(--font-d);font-size:19px;line-height:1.25;font-weight:600;
  letter-spacing:-.01em;color:var(--ink);margin:0}
.ck-login{font-size:14px;color:#5b5f63;text-decoration:underline;text-underline-offset:3px}
.ck-login:hover{color:var(--ink)}
.ck-note{font-size:13px;color:#6b7075;margin:-6px 0 13px}

/* ---- fields ---- */
.ck-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ck-fields .form-row,
.ck-fields p.form-row{grid-column:1/-1;position:relative;margin:0;padding:0;width:auto;float:none}
.ck-fields #billing_city_field,
.ck-fields #billing_state_field,
.ck-fields #billing_postcode_field,
.ck-fields #shipping_city_field,
.ck-fields #shipping_state_field,
.ck-fields #shipping_postcode_field{grid-column:span 1}
.ck-fields .woocommerce-input-wrapper{display:block;width:100%}
.ck-fields label{position:absolute;left:13px;top:15px;z-index:2;margin:0;padding:0;
  font-size:15px;line-height:1;color:#77797d;pointer-events:none;
  transition:top .14s var(--ease),font-size .14s var(--ease);max-width:calc(100% - 30px);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ck-fields label .required,.ck-fields label abbr{display:none}
.ck-fields input[type=text],.ck-fields input[type=email],.ck-fields input[type=tel],
.ck-fields input[type=number],.ck-fields input[type=password],.ck-fields textarea,
.ck-fields select,.ck-fields .select2-container .select2-selection--single{
  width:100%;height:53px;border:1px solid #cfd0d1;border-radius:7px;background:#fff;
  padding:22px 13px 7px;font-family:var(--font-b);font-size:15px;color:#1f2023;
  box-shadow:none;outline:none;appearance:none;transition:border-color .14s,box-shadow .14s}
.ck-fields textarea{height:96px;padding-top:24px;resize:vertical}
.ck-fields select{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:38px}
.ck-fields input:focus,.ck-fields select:focus,.ck-fields textarea:focus{
  border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.ck-fields .form-row:focus-within label,
.ck-fields .form-row:has(input:not(:placeholder-shown)) label,
.ck-fields .form-row:has(textarea:not(:placeholder-shown)) label,
.ck-fields .form-row:has(select) label{top:8px;font-size:11.5px;color:#6c6e72}
.ck-fields .form-row.woocommerce-invalid input,
.ck-fields .form-row.woocommerce-invalid select{border-color:#d02b2b;box-shadow:0 0 0 1px #d02b2b}
.ck-fields .form-row.woocommerce-validated input{border-color:#cfd0d1;box-shadow:none}
.ck-fields ::placeholder{color:transparent}
.ck-fields .select2-container{width:100%!important}
.ck-fields .select2-container .select2-selection--single{display:flex;align-items:flex-end;padding-bottom:9px}
.ck-fields .select2-container .select2-selection__rendered{padding:0;line-height:1.2;color:#1f2023}
.ck-fields .select2-container .select2-selection__arrow{top:16px;right:8px}
.ck-fields .form-row.create-account,
.ck-fields .form-row label.checkbox{position:static}
.ck-fields .form-row:has(input[type=checkbox]) label{position:static;font-size:14px;color:#3b3d40;pointer-events:auto}
.ck-fields input[type=checkbox]{width:17px;height:17px;height:auto;accent-color:var(--ink);margin-right:8px}

/* ---- ship to a different address ---- */
.ck-shipaddr #ship-to-different-address{margin:0 0 12px}
.ck-shipaddr #ship-to-different-address label,
.ck-shipaddr #ship-to-different-address span{font-family:var(--font-d);font-size:19px;font-weight:600;
  color:var(--ink);display:inline-flex;align-items:center;gap:9px;cursor:pointer}
.ck-shipaddr .shipping_address{margin-top:12px}
.ck-shipaddr .woocommerce-shipping-fields__field-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* ---- shipping methods ---- */
.ck-shiptable,.ck-shiptable tbody,.ck-shiptable tr,.ck-shiptable th,.ck-shiptable td{
  display:block;width:100%;border:0;padding:0;margin:0;background:none}
.ck-shiptable{border:1px solid #cfd0d1;border-radius:7px;overflow:hidden}
.ck-shiptable th{display:none}
.ck-shiptable ul#shipping_method,.ck-shiptable ul.woocommerce-shipping-methods{list-style:none;margin:0;padding:0}
.ck-shiptable ul li{margin:0;padding:0;border-top:1px solid #e3e3e0}
.ck-shiptable ul li:first-child{border-top:0}
.ck-shiptable ul li label{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:15px 15px 15px 42px;font-size:14.5px;color:#26282b;cursor:pointer;position:relative;margin:0}
.ck-shiptable ul li input[type=radio]{position:absolute;left:15px;top:50%;transform:translateY(-50%);
  width:17px;height:17px;accent-color:var(--ink);margin:0}
.ck-shiptable ul li:has(input:checked){background:#fbfde9;box-shadow:inset 0 0 0 1.5px var(--ink)}
.ck-shiptable .woocommerce-shipping-destination,
.ck-shiptable p{padding:13px 15px;font-size:13.5px;color:#6b7075;margin:0}
.ck-shiptable .shipping__inner{display:block}

/* ---- payment ---- */
.ck-paysec #payment,.ck-paysec .woocommerce-checkout-payment{background:none;border-radius:0;padding:0}
.ck-paysec ul.wc_payment_methods{list-style:none;margin:0 0 18px;padding:0;
  border:1px solid #cfd0d1;border-radius:7px;overflow:hidden}
.ck-paysec ul.wc_payment_methods li.wc_payment_method{margin:0;padding:0;border-top:1px solid #e3e3e0;position:relative}
.ck-paysec ul.wc_payment_methods li.wc_payment_method:first-child{border-top:0}
.ck-paysec ul.wc_payment_methods li input[type=radio]{position:absolute;left:15px;top:22px;
  width:17px;height:17px;accent-color:var(--ink);margin:0}
.ck-paysec ul.wc_payment_methods li label{display:flex;align-items:center;gap:10px;
  padding:16px 15px 16px 42px;margin:0;font-size:14.5px;font-weight:500;color:#26282b;cursor:pointer}
.ck-paysec ul.wc_payment_methods li label img{max-height:24px;width:auto;margin:0}
.ck-paysec ul.wc_payment_methods li:has(input:checked){background:#fbfde9;box-shadow:inset 0 0 0 1.5px var(--ink)}
.ck-paysec .payment_box{background:#fff;border-top:1px solid #e3e3e0;margin:0;padding:14px 15px 16px 42px;
  font-size:13.5px;line-height:1.55;color:#5c6065;border-radius:0}
.ck-paysec .payment_box::before{display:none}
.ck-paysec .payment_box p:last-child{margin-bottom:0}
.ck-paysec .woocommerce-privacy-policy-text{font-size:12.5px;color:#75797e;margin:0 0 14px}
.ck-paysec .woocommerce-terms-and-conditions-wrapper{margin:0 0 16px;font-size:13px}
.ck-paysec .form-row.place-order{margin:0;padding:0}
.ck-paysec #place_order{width:100%;min-height:56px;border:0;border-radius:9px;cursor:pointer;
  background:var(--ink);color:#fff;font-family:var(--font-d);font-size:16px;font-weight:600;
  letter-spacing:.01em;transition:background .18s var(--ease),transform .18s var(--ease)}
.ck-paysec #place_order:hover{background:#000;transform:translateY(-1px)}
.ck-paysec #place_order:active{transform:none}

/* ---- order summary ---- */
.ck-sum{width:100%}
.ck-items{list-style:none;margin:0 0 20px;padding:0}
.ck-item{display:flex;align-items:center;gap:14px;padding:9px 0}
.ck-item-thumb{position:relative;flex:0 0 66px;width:66px;height:66px;border:1px solid #dededa;
  border-radius:9px;background:#fff;overflow:visible}
.ck-item-thumb img{width:100%;height:100%;object-fit:cover;border-radius:8px;display:block}
.ck-item-qty{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;padding:0 6px;
  display:flex;align-items:center;justify-content:center;border-radius:11px;background:#63676c;
  color:#fff;font-size:12px;font-weight:600;line-height:1}
.ck-item-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.ck-item-name{font-size:14.5px;font-weight:600;color:#1f2023;line-height:1.35}
.ck-item-info dl,.ck-item-info .variation{margin:0;font-size:12.5px;color:#6e7277}
.ck-item-info dt,.ck-item-info dd{display:inline;margin:0;font-weight:400}
.ck-item-info dd::after{content:"";display:block}
.ck-item-price{flex:0 0 auto;font-size:14.5px;font-weight:600;color:#1f2023;white-space:nowrap}

.ck-coupon{display:flex;gap:9px;margin:0 0 20px;padding:20px 0 0;border-top:1px solid #e2e2dd}
.ck-coupon .ck-coupon-input{flex:1 1 auto;min-width:0;height:47px;border:1px solid #cfd0d1;
  border-radius:7px;background:#fff;padding:0 13px;font-family:var(--font-b);font-size:14.5px;color:#1f2023}
.ck-coupon .ck-coupon-input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.ck-coupon .ck-coupon-btn{flex:0 0 auto;height:47px;padding:0 20px;border:0;border-radius:7px;
  background:#e6e6e1;color:#3a3d40;font-family:var(--font-b);font-size:14.5px;font-weight:600;cursor:pointer;
  transition:.18s var(--ease)}
.ck-coupon .ck-coupon-btn:hover{background:var(--lime);color:var(--ink)}
.ck-coupon .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.ck-totals{border-top:1px solid #e2e2dd;padding-top:17px}
.ck-trow{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  font-size:14.5px;color:#4c5054;padding:5px 0}
.ck-trow span:last-child{color:#1f2023;font-weight:500;white-space:nowrap}
.ck-trow-disc span:last-child{color:#3f7d18}
.ck-trow-total{margin-top:11px;padding-top:15px;border-top:1px solid #e2e2dd;
  font-family:var(--font-d);font-size:16px;color:var(--ink)}
.ck-trow-total span:last-child{font-size:23px;font-weight:700;letter-spacing:-.01em}
.ck-side .ck-toggle{display:none}

/* ---- notices ---- */
.ck .woocommerce-error,.ck .woocommerce-message,.ck .woocommerce-info,
.ck-notices .woocommerce-error,.ck-notices .woocommerce-message,.ck-notices .woocommerce-info{
  list-style:none;margin:18px 0 0;padding:13px 16px;border:1px solid #e0e0da;border-left:3px solid var(--ink);
  border-radius:7px;background:#fbfbf8;font-size:14px;color:#2b2b2e}
.ck .woocommerce-error{border-left-color:#d02b2b;background:#fdf4f4}
.ck .woocommerce-error li{margin:0;padding:0;list-style:none}
.ck .woocommerce-form-login,.ck-notices .woocommerce-form-login{margin:18px 0 0;padding:18px;
  border:1px solid #e0e0da;border-radius:9px;background:#fbfbf8}
.ck .blockUI.blockOverlay{background:#fff!important}

/* ---- tablet / mobile ---- */
@media(max-width:1024px){
  .ck-main{max-width:none;margin:0;padding:28px 22px 40px}
  .ck-side{border-left:0;border-bottom:1px solid #e6e6e1;padding:22px}
  .ck-side-inner{max-width:none;position:static}
  .ck-grid{grid-template-columns:1fr}
  .ck-side{order:-1}
  .ck-bar{padding:16px 22px}
}
@media(max-width:640px){
  .ck-bar{padding:14px 18px}
  .ck-logo img{height:26px}
  .ck-main{padding:24px 18px 44px}
  .ck-side{padding:0 18px 20px}
  .ck-sec{margin-bottom:24px}
  .ck-sec-head h2{font-size:17.5px}
  .ck-fields{gap:10px}
  .ck-fields .form-row{grid-column:1/-1}
  .ck-shipaddr .woocommerce-shipping-fields__field-wrapper{grid-template-columns:1fr}
  .ck-item-thumb{flex-basis:56px;width:56px;height:56px}
  /* collapsible summary */
  .ck-side .ck-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;
    width:calc(100% + 36px);margin:0 -18px;padding:15px 18px;border:0;border-bottom:1px solid #e6e6e1;
    background:none;font-family:var(--font-b);font-size:14.5px;color:#2b2b2e;cursor:pointer}
  .ck-side .ck-toggle b{font-family:var(--font-d);font-size:17px;color:var(--ink)}
  .ck-side .ck-toggle .ck-tg-l{display:inline-flex;align-items:center;gap:7px;color:#3f5f14;font-weight:600}
  .ck-side .ck-toggle svg{width:15px;height:15px;transition:transform .2s var(--ease)}
  .ck-side.is-open .ck-toggle svg{transform:rotate(180deg)}
  .ck-side .ck-side-inner{display:none;padding-top:18px}
  .ck-side.is-open .ck-side-inner{display:block}
}

/* ---- checkout: beat page-level .woocommerce overrides ---- */
body.woocommerce-checkout .site-header,
body.woocommerce-checkout .site-footer,
body.woocommerce-checkout .ctk-floatcart{display:none!important}
.ck .ck-sec-head h2{font-size:19px;line-height:1.25;font-weight:600;margin:0}
.ck .ck-side-title{font-size:17px;margin:0 0 14px}
.woocommerce .ck h1,.woocommerce .ck h2,.woocommerce .ck h3{font-family:var(--font-d);color:var(--ink)}
@media(max-width:640px){.ck .ck-sec-head h2{font-size:17.5px}}

/* ---- checkout overrides: beat woocommerce.css + theme reset ---- */
.ck-logo img{filter:brightness(0)}
.ck .form-row .input-text,
.ck .form-row input[type=text],.ck .form-row input[type=email],
.ck .form-row input[type=tel],.ck .form-row input[type=number],
.ck .form-row input[type=password],.ck .form-row textarea,
.ck .form-row select{
  width:100%!important;height:53px!important;min-height:53px!important;
  padding:22px 13px 7px!important;margin:0!important;
  border:1px solid #cfd0d1!important;border-radius:7px!important;background-color:#fff!important;
  font-family:var(--font-b)!important;font-size:15px!important;line-height:1.2!important;
  color:#1f2023!important;box-shadow:none!important;outline:none}
.ck .form-row textarea{height:96px!important;min-height:96px!important;padding-top:24px!important}
.ck .form-row input:focus,.ck .form-row select:focus,.ck .form-row textarea:focus{
  border-color:var(--ink)!important;box-shadow:0 0 0 1px var(--ink)!important}
.ck .form-row.woocommerce-invalid .input-text,
.ck .form-row.woocommerce-invalid select{border-color:#d02b2b!important;box-shadow:0 0 0 1px #d02b2b!important}
.ck .form-row{position:relative;margin:0!important;padding:0!important;float:none!important;width:auto!important}
.ck .form-row>label{position:absolute;left:13px;top:15px;z-index:2;margin:0!important;padding:0!important;
  font-size:15px;line-height:1;font-weight:400;color:#77797d;pointer-events:none;
  transition:top .14s var(--ease),font-size .14s var(--ease);
  max-width:calc(100% - 30px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ck .form-row>label .required,.ck .form-row>label abbr{display:none!important}
.ck .form-row:focus-within>label,
.ck .form-row:has(.input-text:not(:placeholder-shown))>label,
.ck .form-row:has(textarea:not(:placeholder-shown))>label,
.ck .form-row:has(select)>label{top:8px!important;font-size:11.5px!important;color:#6c6e72}
.ck .form-row ::placeholder{color:transparent}
.ck .form-row:has(input[type=checkbox])>label,
.ck .form-row.create-account>label,
.ck label.checkbox{position:static!important;font-size:14px!important;color:#3b3d40;pointer-events:auto}
.ck .form-row input[type=checkbox]{width:17px!important;height:17px!important;min-height:0!important;
  padding:0!important;margin:0 8px 0 0!important;accent-color:var(--ink);border-radius:4px!important}
.ck .woocommerce-shipping-fields__field-wrapper,
.ck .woocommerce-account-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ck .woocommerce-shipping-fields__field-wrapper>.form-row,
.ck .woocommerce-account-fields>.form-row{grid-column:1/-1}
.ck .ck-coupon{border:0!important;border-top:1px solid #e2e2dd!important;background:none!important;border-radius:0!important}
.ck .ck-coupon .ck-coupon-input{height:47px!important;min-height:47px!important;padding:0 13px!important}
/* select2 */
.ck .select2-container{width:100%!important}
.ck .select2-container--default .select2-selection--single{
  height:53px!important;border:1px solid #cfd0d1!important;border-radius:7px!important;background:#fff!important}
.ck .select2-container--default .select2-selection--single .select2-selection__rendered{
  padding:24px 30px 0 13px!important;line-height:1.2!important;font-size:15px!important;color:#1f2023!important}
.ck .select2-container--default .select2-selection--single .select2-selection__arrow{height:51px!important;right:6px!important}
.ck .select2-container--default.select2-container--focus .select2-selection--single,
.ck .select2-container--default.select2-container--open .select2-selection--single{
  border-color:var(--ink)!important;box-shadow:0 0 0 1px var(--ink)!important}

.ck .payment_box,.woocommerce-checkout .ck #payment div.payment_box{background:#fff!important;color:#5c6065!important;border-radius:0!important;margin:0!important;padding:14px 15px 16px 42px!important}
.woocommerce-checkout .ck #payment div.payment_box::before{display:none!important}
.ck-paysec ul.wc_payment_methods li input[type=radio][style*='none']+label{padding-left:15px}
.ck-paysec ul.wc_payment_methods li:has(input[type=radio][style*='none']) .payment_box{padding-left:15px!important}
.woocommerce-checkout .ck #payment{background:transparent!important;border-radius:0!important}
.woocommerce-checkout .ck #payment ul.payment_methods{border-bottom:0!important;padding:0!important}

.ck .ck-shiptable ul li label,.woocommerce .ck .ck-shiptable ul li label{display:flex!important;align-items:center;justify-content:space-between;gap:12px;margin:0!important;padding:15px 15px 15px 42px!important;font-size:14.5px!important;color:#26282b!important;background:#fff!important;cursor:pointer;position:relative}
.ck .ck-shiptable li:has(input[type=hidden])>label{padding-left:15px!important}
.ck .ck-shiptable ul li label .amount,.ck .ck-shiptable ul li label>span{font-weight:600;white-space:nowrap}
.ck .ck-shiptable ul li{background:#fff}

.ck .woocommerce-terms-and-conditions-wrapper a,.ck .woocommerce-privacy-policy-text a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.ck .woocommerce-terms-and-conditions-wrapper .form-row{margin:0!important}
.ck .validate-required.woocommerce-invalid label{color:#d02b2b}

/* ---- order received (thank you) ---- */
.ck-thanks .ck-bar{justify-content:flex-start}
.ck-thanks-inner{max-width:660px;margin:0 auto;padding:52px 24px 110px}
.ck-thanks-head{text-align:center;margin:0 0 30px}
.ck-thanks-tick{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;
  border-radius:50%;background:var(--lime);color:var(--ink);margin:0 0 20px}
.ck-thanks-tick svg{width:27px;height:27px}
.ck-thanks-eyebrow{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:#6b7075;margin:0 0 9px}
.ck .ck-thanks-title{font-family:var(--font-d);font-size:29px;line-height:1.2;font-weight:700;
  letter-spacing:-.015em;color:var(--ink);margin:0 0 12px}
.ck-thanks-lead{font-size:15px;line-height:1.6;color:#4c5054;margin:0}
.ck-thanks-lead strong{color:var(--ink);font-weight:600}
.ck-thanks-facts{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:0 0 30px;
  padding:0;border:1px solid #e0e0da;border-radius:10px;overflow:hidden;background:#e0e0da}
.ck-thanks-facts li{display:flex;flex-direction:column;gap:5px;padding:16px 15px;background:#fbfbf8}
.ck-thanks-facts span{font-size:12px;letter-spacing:.02em;color:#6b7075}
.ck-thanks-facts strong{font-family:var(--font-d);font-size:15px;font-weight:600;color:var(--ink)}
.ck-thanks-actions{margin:32px 0 0;text-align:center}
.ck-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;
  border:0;border-radius:9px;background:var(--ink);color:#fff;font-family:var(--font-d);font-size:15px;
  font-weight:600;text-decoration:none;transition:background .18s var(--ease),transform .18s var(--ease)}
.ck-btn:hover{background:#000;color:#fff;transform:translateY(-1px)}
.ck-btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px #cfd0d1;margin-left:9px}
.ck-btn-ghost:hover{background:var(--lime);color:var(--ink);box-shadow:inset 0 0 0 1px var(--lime)}
.ck-thanks .woocommerce-order-overview,
.ck-thanks .woocommerce-thankyou-order-details{display:none}
.ck-thanks .woocommerce-order-details,
.ck-thanks .woocommerce-customer-details{margin:30px 0 0}
.ck .ck-thanks-inner h2,.ck .ck-thanks-inner h3{font-family:var(--font-d);font-size:17px;font-weight:600;
  color:var(--ink);margin:0 0 13px}
.ck-thanks table.shop_table{width:100%;border:1px solid #e0e0da;border-radius:10px;border-collapse:separate;
  border-spacing:0;overflow:hidden;font-size:14.5px}
.ck-thanks table.shop_table th,.ck-thanks table.shop_table td{padding:12px 15px;text-align:left;
  border:0;border-bottom:1px solid #ecece7;color:#3b3d40}
.ck-thanks table.shop_table thead th{background:#fbfbf8;font-weight:600;color:var(--ink)}
.ck-thanks table.shop_table tfoot th,.ck-thanks table.shop_table tfoot td{background:#fbfbf8;font-weight:600}
.ck-thanks table.shop_table tr:last-child th,.ck-thanks table.shop_table tr:last-child td{border-bottom:0}
.ck-thanks table.shop_table td:last-child,.ck-thanks table.shop_table th:last-child{text-align:right}
.ck-thanks .woocommerce-customer-details address{font-style:normal;font-size:14.5px;line-height:1.65;
  color:#3b3d40;padding:15px;border:1px solid #e0e0da;border-radius:10px;background:#fbfbf8}
.ck-thanks .woocommerce-notice,.ck-thanks p{font-size:15px;line-height:1.6;color:#4c5054}
@media(max-width:640px){
  .ck-thanks-inner{padding:34px 18px 60px}
  .ck .ck-thanks-title{font-size:24px}
  .ck-thanks-facts{grid-template-columns:1fr}
  .ck-btn{width:100%}
  .ck-btn-ghost{margin:9px 0 0}
}

/* ---- checkout: kill grid blowout + wrapping checkbox labels (mobile overflow) ---- */
.ck-grid>.ck-main,.ck-grid>.ck-side{min-width:0}
.ck .ck-shiptable{table-layout:fixed;width:100%}
.ck .form-row:has(input[type=checkbox])>label,
.ck label.checkbox,
.ck .woocommerce-form__label-for-checkbox{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;display:flex!important;align-items:flex-start;gap:8px;max-width:100%!important;line-height:1.5;position:static!important;font-size:14px!important;color:#3b3d40;pointer-events:auto}
.ck .form-row:has(input[type=checkbox])>label input[type=checkbox],
.ck label.checkbox input[type=checkbox]{flex:0 0 auto;margin-top:2px!important}
@media(max-width:1024px){.ck-grid{grid-template-columns:minmax(0,1fr)}}

/* ---- checkout: strip the empty notices wrapper + tighten the mobile summary bar ---- */
body.woocommerce-checkout .woocommerce>.woocommerce-notices-wrapper:empty{display:none!important}
.ck .woocommerce-info,.ck .woocommerce-message,.ck-notices .woocommerce-info,.ck-notices .woocommerce-message{border:1px solid #e0e0da!important;border-left:3px solid var(--ink)!important;background:#fbfbf8!important;border-radius:7px!important;color:#2b2b2e!important}
.ck .woocommerce-error{border:1px solid #f0d6d6!important;border-left:3px solid #d02b2b!important;background:#fdf4f4!important;border-radius:7px!important}
.ck .woocommerce-info a,.ck .woocommerce-message a,.ck .woocommerce-error a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
@media(max-width:640px){
  .ck-side{padding-bottom:0}
  .ck-side.is-open{padding-bottom:22px}
}

body.woocommerce-checkout .woocommerce-notices-wrapper:empty{display:none!important}
.ck .ck-notices:not(:has(.woocommerce-error,.woocommerce-message,.woocommerce-info,form)){display:none!important}

/* ---- Hello Elementor reset.css paints ANY bare <button> pink (#c36) on :hover AND :focus.
   Our hover rules beat it, but focus sticks after a click - hence the pink cart pill. ---- */
.ctk-dock .ctk-dk-btn:hover,.ctk-dock .ctk-dk-btn:focus,.ctk-dock .ctk-dk-btn:active{background:rgba(255,255,255,.12)!important;color:var(--cream)!important}
.ctk-dock .ctk-dk-ico:hover,.ctk-dock .ctk-dk-ico:focus,.ctk-dock .ctk-dk-ico:active{background:rgba(255,255,255,.12)!important;color:var(--lime)!important}
.ctk-dock .ctk-dk-go:hover,.ctk-dock .ctk-dk-go:focus,.ctk-dock .ctk-dk-go:active{background:var(--lime)!important;color:var(--ink)!important}
.ctk-fd-head .ctk-fd-close:hover,.ctk-fd-head .ctk-fd-close:focus,
.ctk-fd-side .ctk-fd-x:hover,.ctk-fd-side .ctk-fd-x:focus,
.ctk-fd-qty button:hover,.ctk-fd-qty button:focus{background:transparent!important;color:var(--ink)!important}
.ctk-fd-qty button:hover{background:rgba(21,21,23,.06)!important}

/* ---- checkout: secure-checkout footer under Place order ---- */
.ck-secure{margin:26px 0 0;padding:20px 0 0;border-top:1px solid #e6e6e1;text-align:center}
.ck-secure-top{display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--ink);font-family:var(--font-d);font-size:14.5px;font-weight:600}
.ck-secure-top svg{width:16px;height:16px;color:#3f7d18}
.ck-secure p{margin:6px 0 0;font-size:13px;line-height:1.55;color:#6b7075}
.ck-secure .ctk-fd-pays{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:14px 0 0}
.ck-secure .ctk-pm,.ck-secure .ctk-fd-pays img,.ck-secure .ctk-fd-pays svg{height:24px;width:auto}
@media(max-width:640px){.ck-secure{margin-top:22px;padding-top:18px}.ck-secure .ctk-fd-pays{gap:7px}}


/* ==========================================================================
   RESTORED 2026-08-25: footer columns, mobile menu overlay and hero centring.
   These were lost when the file was truncated during the checkout rebuild -
   the truncation point was assumed to be checkout-only but was not.
   ========================================================================== */
/* Footer link columns must never collapse into Elementor's mobile dropdown/accordion. */
.elementor-location-footer .elementor-nav-menu--main{display:block!important}
.elementor-location-footer .elementor-nav-menu--main .elementor-nav-menu{display:block!important}
.elementor-location-footer .elementor-nav-menu--dropdown,
.elementor-location-footer .elementor-menu-toggle{display:none!important}

/* ---------- mobile menu overlay (header) ----------
   Only the OPEN state is repositioned, so if Elementor changes its markup the menu
   still opens as a normal dropdown rather than breaking. */
@media(max-width:767px){
.elementor-location-header .elementor-menu-toggle{width:44px;height:44px;border-radius:50%;background:var(--ink)!important;color:#fff!important;display:flex;align-items:center;justify-content:center;z-index:10000;position:relative;transition:background .2s}
.elementor-location-header .elementor-menu-toggle.elementor-active{background:var(--lime)!important;color:var(--ink)!important}
.elementor-location-header .elementor-menu-toggle svg{width:22px;height:22px;fill:currentColor}
.elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;margin:0!important;background:var(--ink);padding:104px 26px 40px;overflow-y:auto;z-index:9999;border:none;box-shadow:none;animation:cultkMenuIn .26s ease-out both}
@keyframes cultkMenuIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
}
@media(max-width:767px){
.elementor-location-header .elementor-nav-menu--dropdown ul{display:flex;flex-direction:column;gap:0}
.elementor-location-header .elementor-nav-menu--dropdown li{border-bottom:1px solid rgba(255,255,255,.09)}
.elementor-location-header .elementor-nav-menu--dropdown li:last-child{border-bottom:none}
.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item{font-family:var(--font-d)!important;font-size:26px!important;font-weight:600!important;letter-spacing:-.015em;color:#fff!important;background:transparent!important;padding:19px 2px!important;display:flex;align-items:center;justify-content:space-between;transition:color .18s}
.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item::after{content:'→';font-size:19px;opacity:.28;transition:opacity .18s,transform .18s}
.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item:hover,
.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active{color:var(--lime)!important}
.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item:hover::after{opacity:1;transform:translateX(4px)}
.elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown li{opacity:0;animation:cultkMenuItem .34s ease-out forwards}
.elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown li:nth-child(1){animation-delay:.04s}
.elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown li:nth-child(2){animation-delay:.09s}
.elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown li:nth-child(3){animation-delay:.14s}
.elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown li:nth-child(4){animation-delay:.19s}
.elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown li:nth-child(5){animation-delay:.24s}
@keyframes cultkMenuItem{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.elementor-location-header .elementor-nav-menu--dropdown li{animation:none!important;opacity:1!important}}
}
@media(max-width:767px){
/* backdrop-filter on the sticky pill creates a containing block for fixed
   descendants, which trapped the menu overlay inside the header. Drop it while open. */
.elementor-location-header .elementor-container:has(.elementor-menu-toggle.elementor-active),
.elementor-location-header .elementor-widget-nav-menu:has(.elementor-menu-toggle.elementor-active),
.elementor-location-header .elementor-widget-container:has(.elementor-menu-toggle.elementor-active){backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important;transform:none!important}
}
@media(max-width:767px){
/* Closed dropdown sat 102px off-screen and gave the whole site a horizontal
   scrollbar on mobile. Take it out of layout entirely when closed. */
.elementor-location-header .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu--dropdown{display:none!important}
}

/* The horizontal slider track is ~40,000px wide. Its ancestors were flex items
   sizing to max-content, so .hcs-slider{overflow:hidden} never clipped and the whole
   document scrolled sideways. Classic flex min-width:auto trap — same as the hero grid. */
.hcs-slider{width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important;contain:layout inline-size}
.hcs-track{min-width:0}
.e-con:has(>.elementor-widget-shortcode .hcs-slider),
.elementor-widget-shortcode:has(.hcs-slider){min-width:0!important;max-width:100%!important;overflow:hidden!important}
.elementor-widget-shortcode:has(.hcs-slider),
.elementor-widget-shortcode:has(.hcs-slider) .elementor-widget-container,
.elementor-shortcode:has(.hcs-slider){max-width:100%!important;min-width:0!important;overflow:hidden!important}

/* Full-bleed sections use width:100vw + margin-left:calc(50% - 50vw).
   100vw includes the scrollbar while the usable width does not, so each one bleeds
   ~8px past both edges and the page scrolls sideways. Clip at the wrapper on mobile
   rather than dropping the full-bleed design. */
@media(max-width:1024px){
.site-main,.page-content,.elementor-location-single,.elementor-location-archive{overflow-x:clip}
}

/* footer: two columns on mobile, and never an accordion.
   Earlier rules were only verified at desktop width; Elementor still swapped to its
   dropdown at the mobile breakpoint, so these use html body for specificity. */
@media(max-width:767px){
html body .elementor-location-footer .elementor-nav-menu--main{display:block!important;max-height:none!important;overflow:visible!important}
html body .elementor-location-footer .elementor-nav-menu--main .elementor-nav-menu{display:block!important;max-height:none!important}
html body .elementor-location-footer .elementor-nav-menu--main .elementor-nav-menu li{display:block!important}
html body .elementor-location-footer .elementor-nav-menu--dropdown,
html body .elementor-location-footer .elementor-menu-toggle,
html body .elementor-location-footer .elementor-nav-menu__container.elementor-nav-menu--dropdown{display:none!important}
/* the link groups sit two-across */

html body .elementor-location-footer .e-con:has(> .e-con > .elementor-widget-nav-menu){display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:18px!important;width:100%!important;max-width:100%!important;flex:1 1 100%!important}

}

/* Footer accordion, actual mechanism (finally diagnosed):
   the collapse is max-height:0 on the WIDGET wrapper (.elementor-widget-nav-menu),
   not display:none on .elementor-nav-menu — and the '+' is a ::after on the heading
   widget, not an Elementor menu toggle. Earlier fixes missed both. */
@media(max-width:767px){
html body .elementor-location-footer .elementor-widget-nav-menu,
html body .elementor-location-footer .elementor-widget-social-icons,
html body .elementor-location-footer .elementor-widget-icon-list,
html body .elementor-location-footer .elementor-widget-text-editor{max-height:none!important;height:auto!important;overflow:visible!important}
html body .elementor-location-footer .elementor-widget-nav-menu .elementor-widget-container{max-height:none!important;overflow:visible!important}
html body .elementor-location-footer .elementor-widget-heading::after,
html body .elementor-location-footer .elementor-widget-heading .elementor-heading-title::after{content:none!important;display:none!important}
}
@media(max-width:767px){
/* social row on one line: that column also contains an empty nav-menu, so the 50%
   rule above matched it. It sits alone on its row, so give it the full width. */
html body .elementor-location-footer .e-con:has(> .elementor-widget-social-icons){flex:0 0 100%!important;width:100%!important;max-width:100%!important}
html body .elementor-location-footer .elementor-social-icons-wrapper{display:flex!important;flex-wrap:nowrap!important;justify-content:center!important;gap:10px!important}
html body .elementor-location-footer .elementor-social-icons-wrapper .elementor-grid-item{margin:0!important}
}
@media(max-width:767px){
/* even gutter: columns carry 10px inline padding, so an 18px gap made the visual
   gutter 38px while the left inset was only 20px. Zero the column gap so the gutter
   is 10+10=20px and matches the inset; keep vertical breathing room via row-gap. */
html body .elementor-location-footer .e-con:has(> .e-con > .elementor-widget-nav-menu){column-gap:0!important;row-gap:26px!important}

html body .elementor-location-footer .e-con:has(> .elementor-widget-social-icons){flex:0 0 100%!important;width:100%!important;max-width:100%!important}
}
@media(max-width:767px){
/* align columns with the brand text: the 10px inline padding on each column pushed
   headings to x=20 while the brand blurb sits at x=10. Zero it and use a real gap. */
html body .elementor-location-footer .e-con:has(> .elementor-widget-nav-menu),
html body .elementor-location-footer .e-con:has(> .elementor-widget-social-icons){padding-inline:10px!important}
html body .elementor-location-footer .e-con:has(> .e-con > .elementor-widget-nav-menu){column-gap:20px!important;row-gap:26px!important}

}

/* mobile header: centre the pill row.
   Logo centre sat at y=107 while the toggle centre was y=112 and its bottom (133)
   overflowed the header (122). The row was not vertically centring, which also made
   the content bottom-heavy and looked like extra space on top. */
@media(max-width:767px){
html body .elementor-location-header .elementor-container{align-items:center!important}
html body .elementor-location-header .elementor-column,
html body .elementor-location-header .elementor-widget-wrap{align-content:center!important;align-items:center!important}
html body .elementor-location-header .elementor-widget-nav-menu .elementor-widget-container{display:flex!important;align-items:center!important;justify-content:flex-end!important}
html body .elementor-location-header .elementor-menu-toggle{margin:0 0 0 auto!important;flex:0 0 auto}
html body .elementor-location-header .elementor-widget-image,
html body .elementor-location-header .elementor-widget-nav-menu{margin-top:0!important;margin-bottom:0!important}
}
@media(max-width:767px){
/* Elementor columns are flex-direction:column, so vertical centring is
   justify-content, not align-items. The toggle's 42px wrap was sitting at the bottom
   of its 52px column (91-133) while the logo centred at 107. */
html body .elementor-location-header .elementor-column,
html body .elementor-location-header .elementor-widget-wrap{justify-content:center!important}
}
@media(max-width:767px){
/* hamburger-hpos: the nav widget is flex-direction:column, so the toggle's
   horizontal placement comes from align-items, NOT align-self/justify-content. */
html body .elementor-location-header .elementor-widget-nav-menu{align-items:flex-end!important}
}
@media(max-width:767px){
/* fgrid2: brand col has built-in 10px inline padding; the other three had 0. */



.elementor-location-footer .elementor-social-icons-wrapper{justify-content:center!important}
.elementor-location-footer .elementor-widget-social-icons{padding-bottom:24px!important}
}
@media(max-width:767px){
/* fgrid3: authoritative footer column geometry. The :has(nav-menu) selector also
   matches the social column, so cd43079 is re-widened after it. Do not add more
   footer width rules elsewhere - edit this block. */


}
@media(max-width:767px){
/* fgrid4: gap stays 20px (column-gap could not be overridden), so each menu
   column carries padding only on its outer side. Net: 20px inset both sides,
   20px gutter between. */


}
@media(max-width:767px){
/* fgrid5 */
html body .elementor-location-footer .elementor-widget-social-icons{width:100%!important}
html body .elementor-location-footer .elementor-widget-social-icons .elementor-grid{width:100%!important;justify-content:center!important}
html body .elementor-location-footer .elementor-social-icons-wrapper{width:100%!important;justify-content:center!important}
}
@media(max-width:767px){
/* cultk-mm: mobile menu overlay - logo top, centred items w/ dividers, actions, socials bottom */
.elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown{display:flex!important;flex-direction:column!important;padding:92px 26px 34px!important}
.cultk-mm-head{display:flex;justify-content:center;margin:0 0 30px;flex:0 0 auto}
.cultk-mm-logo{width:130px;height:auto;display:block}
.elementor-location-header .elementor-nav-menu--dropdown ul.elementor-nav-menu{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;width:100%}
.elementor-location-header .elementor-nav-menu--dropdown ul.elementor-nav-menu li.menu-item{border-bottom:1px solid rgba(255,255,255,.10)}
.elementor-location-header .elementor-nav-menu--dropdown ul.elementor-nav-menu li.menu-item:first-child{border-top:1px solid rgba(255,255,255,.10)}
.elementor-location-header .elementor-nav-menu--dropdown ul.elementor-nav-menu a.elementor-item{justify-content:center!important;text-align:center!important;padding:17px 0!important;font-size:19px!important;letter-spacing:-.01em}
.cultk-mm-act{display:flex;gap:10px;margin:28px 0 20px;flex:0 0 auto}
.cultk-mm-btn{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;height:46px;border-radius:99px;font-family:var(--font-d);font-weight:600;font-size:14px;text-decoration:none;transition:opacity .15s}
.cultk-mm-btn.cultk-mm-cart{background:var(--lime);color:var(--ink)}
.cultk-mm-btn.cultk-mm-alt{border:1px solid rgba(255,255,255,.22);color:#fff}
.cultk-mm-soc{display:flex;justify-content:center;flex:0 0 auto;padding-top:4px}
.cultk-mm-soc .elementor-social-icons-wrapper{display:flex!important;grid-template-columns:none!important;width:auto!important;justify-content:center!important;gap:12px!important;flex-wrap:nowrap!important}
.cultk-mm-soc .elementor-grid-item{margin:0!important}
}
@media(max-width:767px){
/* cultk-mm2: logo left-aligned so it clears the fixed X; real dividers on every li */
.cultk-mm-head{justify-content:flex-start!important;margin:0 0 26px!important}
.cultk-mm-logo{width:116px!important}
.elementor-location-header .elementor-nav-menu--dropdown ul.elementor-nav-menu li{border-bottom:1px solid rgba(255,255,255,.12)}
.elementor-location-header .elementor-nav-menu--dropdown ul.elementor-nav-menu li:first-child{border-top:1px solid rgba(255,255,255,.12)}
.cultk-mm-btn.cultk-mm-alt{color:#fff!important}
.cultk-mm-btn.cultk-mm-cart{color:var(--ink)!important}
}
@media(max-width:767px){
/* cultk-mm3: the cloned icons lose the footer-scoped styling, so restate it here */
.cultk-mm-soc .elementor-social-icon{background-color:#fff!important;color:#151517!important;width:38px!important;height:38px!important;border-radius:50%!important;display:flex!important;align-items:center;justify-content:center;padding:0!important}
.cultk-mm-soc .elementor-social-icon svg{width:16px!important;height:16px!important;fill:#151517!important}
.cultk-mm-soc .elementor-social-icon i{font-size:16px!important;color:#151517!important}
}
@media(max-width:767px){
/* cultk-mm4: Elementor's dropdown divider is rgba(21,21,23,.1) - dark ink on a
   dark overlay, so it was invisible. Restate it in white. */
html body .elementor-location-header .elementor-nav-menu--dropdown ul.elementor-nav-menu li{border-bottom:1px solid rgba(255,255,255,.13)!important;border-top:0!important}
html body .elementor-location-header .elementor-nav-menu--dropdown ul.elementor-nav-menu li:first-child{border-top:1px solid rgba(255,255,255,.13)!important}
}
@media(max-width:767px){
/* cultk-mm5: larger menu type; single full-width action button */
html body .elementor-location-header .elementor-nav-menu--dropdown ul.elementor-nav-menu a.elementor-item{font-size:24px!important;padding:20px 0!important;font-weight:600!important}
.cultk-mm-act{margin:30px 0 22px!important}
.cultk-mm-btn{height:52px!important;font-size:15px!important}
}
/* ctk-padd-hover: '.ctk-padd,.ctk-padd:hover,.ctk-padd:focus{color:#fdfdfd!important}'
   was overriding the lime hover state, giving white text on lime. The cart SVG uses
   stroke=currentColor, so this fixes the icon too. */
.ctk-padd:hover,.ctk-padd:focus,.ctk-pgrid a.ctk-padd:hover,.ctk-pgrid a.ctk-padd:focus{color:var(--ink)!important}
/* mm-arrow-off: the '->' after each item was designed for the old left-aligned menu.
   With centred items it is absolutely positioned on top of the text. */
html body .elementor-location-header .elementor-nav-menu--dropdown a.elementor-item::after{content:none!important;display:none!important}
/* cul-legal: the header is static + transparent, so it reserved a band of page
   background above the dark legal hero. Pull the hero up by the header height and
   push its inner container back down by the same amount, so the dark background
   runs to the top while the content still clears the pill. --cul-hh is measured
   in toolkit.js so this holds at any width. */
body.cul-legal .elementor-location-header{position:relative;z-index:20}
body.cul-legal .site-main .elementor-top-section:first-child{margin-top:calc(var(--cul-hh,112px) * -1)!important}
body.cul-legal .site-main .elementor-top-section:first-child > .elementor-container{padding-top:var(--cul-hv,141px)!important}
@media(min-width:768px){
/* soc-oneline: widget renders 40px boxes + 10px gaps = 240px in a ~237px column,
   so the 5th icon wrapped. Force one row and trim to 34px/8px = 202px. */
html body .elementor-location-footer .elementor-social-icons-wrapper{display:flex!important;grid-template-columns:none!important;flex-wrap:nowrap!important;gap:8px!important}
html body .elementor-location-footer .elementor-social-icons-wrapper .elementor-grid-item{margin:0!important;flex:0 0 auto}
html body .elementor-location-footer .elementor-social-icon{width:34px!important;height:34px!important}
html body .elementor-location-footer .elementor-social-icon svg{width:15px!important;height:15px!important}
}
/* dock-hover: reset.css sets a:active,a:hover{color:#333366}. The dock's heart,
   search and account icons are <a> tags, so they inherited that blue-purple. */
html body .ctk-dock a.ctk-dk-fav:hover,html body .ctk-dock a.ctk-dk-fav:focus,
html body .ctk-dock a.ctk-dk-ico:hover,html body .ctk-dock a.ctk-dk-ico:focus{color:var(--lime)!important}
html body .ctk-dock a.ctk-dk-go:hover,html body .ctk-dock a.ctk-dk-go:focus{color:var(--ink)!important}
/* cue-chev: the emoji in ::after is a text glyph with no line-height set, so its
   line box (31.35px for a 19px glyph) carried ascent/descent slack and the ink sat
   low in the 46px circle. line-height:1 collapses the slack so the flex centring
   on .cue-chev actually centres the glyph. */
/* The rocket was a text glyph, so its ink sat off-centre inside its advance width
   and no amount of line-height/width tweaking centres it portably. Use the emoji's
   SVG (square 150x150 viewBox) as a background instead - centres deterministically
   on every platform. WP already serves emoji SVGs from this host. */
html body .cul-cue .cue-chev::after{content:''!important;width:20px!important;height:20px!important;line-height:0!important;font-size:0!important;background:url('https://s.w.org/images/core/emoji/17.0.2/svg/1f680.svg') center center / contain no-repeat!important}
/* vs-gap: the tick/cross used content:"\2713 " - a trailing space inside a CSS
   content string is collapsed, so the glyph sat flush against the text. Use a
   real inline-block margin instead. */
.ctk-cmp .ctk-vs-yes::before,.ctk-cmp .ctk-vs-no::before{display:inline-block!important;margin-right:7px!important}
@media(max-width:767px){
/* NOTE: .ctk-bb-buynow refuses to take any 'order' value (verified: stylesheet
   rule, tag selector and even an inline style all compute to 0; no rival rule
   exists; not a transition). It is pinned at 0, so the sequence below is built
   AROUND that pivot with negative orders. This is also self-correcting - if the
   element ever starts honouring order, 0 still sits between buy (-1) and cod (1). */
/* bb-mobile-order: 516px of copy (lede + bullets) sat between the title and the
   price, pushing Add to Cart past the fold. Reorder so decision-makers can buy
   immediately and the detail sits below, where people scroll to find it.
   Presentation-only: DOM order (and so reading/SEO order) is unchanged. */
.ctk-bb-info{display:flex!important;flex-direction:column!important}
.ctk-bb-info > .ctk-bb-rating{order:-6}
.ctk-bb-info > .ctk-bb-title{order:-5}
.ctk-bb-info > .ctk-bb-price{order:-4}
.ctk-bb-info > .ctk-bb-tax{order:-3}
.ctk-bb-info > .ctk-bb-stock{order:-2}
.ctk-bb-info > .ctk-bb-buy{order:-1}
.ctk-bb-info > .ctk-bb-buynow{order:0}
.ctk-bb-info > .ctk-bb-cod{order:1}
.ctk-bb-info > .ctk-bb-eta{order:2}
.ctk-bb-info > .ctk-bb-chips{order:3}
.ctk-bb-info > .ctk-bb-lede{order:4}
.ctk-bb-info > .ctk-bb-list{order:5}
.ctk-bb-info > .ctk-bb-wa{order:6}
.ctk-bb-info > .ctk-bb-steps{order:7}
.ctk-bb-info > .ctk-bb-pays{order:8}
.ctk-bb-info > .ctk-bb-accs{order:9}
}
/* hero-rating-gap: the rating strip moved from the top of the hero to just under
   the CTA buttons. All hero widgets have 0 margins (spacing is internal padding),
   so it sat ~8px under the buttons while the badges below had ~50px. */
.elementor-element-4eab770a{margin-top:16px!important}
/* hero-tidy: rating + trust chips were wider than a phone column so both wrapped.
   Shrink to fit one line each, and tighten the vertical rhythm. */
@media(max-width:767px){
.hero-top{flex-wrap:nowrap!important;gap:8px!important;margin-bottom:0!important}
.hero-avs img{width:26px!important;height:26px!important;margin-left:-9px!important}
.hero-avs img:nth-child(n+4){display:none!important}
.hero-rt{font-size:12px!important}
.hero-rt .stars{font-size:12px!important;letter-spacing:1px!important}
.hero-chips{flex-wrap:nowrap!important;gap:6px!important;margin-top:16px!important;font-size:9.8px!important}
.hero-chips>span{gap:4px!important;white-space:nowrap!important}
.hero-chips>br{display:none!important}
.hero-chips .ci{width:13px!important;height:13px!important;flex:none!important;border-width:0!important}
.hero-chips .ci svg{width:9px!important;height:9px!important}
.hero-chips .ch-opt{display:none!important}
}
@media(min-width:768px){
.hero-top{margin-bottom:0!important}
.hero-chips{margin-top:20px!important}
}
@media(max-width:767px){
.hero-rt .rt-long{display:none!important}
.hero-rt .rt-short{display:inline!important}
}
@media(min-width:768px){
.hero-rt .rt-short{display:none!important}
}
@media(max-width:767px){
/* mm-logo-fix: the footer logo asset is dark on cullects.com (light on ctest), so the
   cloned menu logo vanished on the dark overlay. brightness(0) invert(1) forces a pure
   white silhouette whatever the source asset is. */
.cultk-mm-logo{filter:brightness(0) invert(1)!important}
/* Open-state close button: ink X on lime, not white on lime (same low-contrast
   pairing that was wrong on the Add to Cart button). */
html body .elementor-location-header .elementor-menu-toggle.elementor-active{background:var(--lime)!important;color:var(--ink)!important}
html body .elementor-location-header .elementor-menu-toggle.elementor-active svg{fill:var(--ink)!important;stroke:var(--ink)!important}
}
/* mm-logo-white: unconditional - .cultk-mm-logo only exists inside the mobile menu
   overlay, so it needs no breakpoint, and this removes any media-query dependency. */
html body .cultk-mm-logo{filter:brightness(0) invert(1)!important}
@media(max-width:767px){
/* mm-logo-v3: the injected logo never rendered (0x0). What showed was the HEADER's
   own logo - a white asset the header inverts to dark for the light pill. So while the
   menu is open, lift that logo above the overlay and drop the inversion. */
html body .elementor-location-header:has(.elementor-menu-toggle.elementor-active) .cul-hlogo{position:relative!important;z-index:9998!important}
html body .elementor-location-header:has(.elementor-menu-toggle.elementor-active) .cul-hlogo img{filter:none!important}
.cultk-mm-logo{display:none!important}
}
@media(max-width:767px){
/* chips-fluid: centre the trust row and let it grow on roomier phones. The vw factor
   is tuned so a 330px viewport still lands on the 9.8px floor (9.8/330 = 2.97vw), which
   is the width that only just fits; wider phones scale up to the 12.5px desktop size. */
html body .hero-chips{justify-content:center!important;font-size:clamp(9.8px,2.9vw,12.5px)!important;gap:clamp(6px,2.1vw,14px)!important}
html body .hero-chips .ci{width:clamp(13px,3.4vw,18px)!important;height:clamp(13px,3.4vw,18px)!important}
html body .hero-chips .ci svg{width:clamp(9px,2.4vw,12px)!important;height:clamp(9px,2.4vw,12px)!important}
}
@media(max-width:767px){
/* rating-centre: match the trust row below it. */
html body .hero-top{justify-content:center!important}
}
@media(max-width:767px){
/* pay-oneline: label + 5 card SVGs are ~349px at desktop sizing, vs a 282px phone
   column, so the row wrapped. Drop the <br>, centre it, and scale label + cards
   fluidly so a 330px phone fits with room and larger phones grow back to full size. */
html body .hero-pay{display:flex!important;flex-wrap:nowrap!important;justify-content:center!important;align-items:center!important;gap:clamp(5px,1.8vw,9px)!important}
html body .hero-pay br{display:none!important}
html body .hero-pay .hp-lbl{font-size:clamp(9px,2.8vw,12px)!important;white-space:nowrap!important;flex:none!important}
html body .hero-pay svg{height:clamp(15px,4.6vw,26px)!important;width:auto!important;flex:none!important}
}
@media(max-width:767px){
/* ptabs-fade: strip bleeds to screen edges; a soft mask on whichever side still has
   content is the scroll affordance, replacing the old visible lime scrollbar. Classes
   are toggled from toolkit.js on scroll and resize. */
html body .ctk-ptabs.ptabs-scrollable:not(.ptabs-at-end){-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 40px),transparent 100%);mask-image:linear-gradient(to right,#000 calc(100% - 40px),transparent 100%)}
html body .ctk-ptabs.ptabs-scrollable.ptabs-at-end:not(.ptabs-at-start){-webkit-mask-image:linear-gradient(to right,transparent 0,#000 32px);mask-image:linear-gradient(to right,transparent 0,#000 32px)}
html body .ctk-ptabs.ptabs-scrollable:not(.ptabs-at-start):not(.ptabs-at-end){-webkit-mask-image:linear-gradient(to right,transparent 0,#000 32px,#000 calc(100% - 40px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 32px,#000 calc(100% - 40px),transparent 100%)}
}
/* vid-orient: the demo video can be landscape (16:9) or vertical (9:16). Both columns
   are stretched to the same row height: the tile fills its column (video is object-fit
   cover so it never distorts) and the proof points divide the height into equal rows,
   so the right column lines up with the video whatever the orientation. */
.ctk-vid-grid{align-items:stretch!important}
/* width must stay definite: with height:100% the aspect-ratio computed the WIDTH
   from the row height and blew past the column (815px col -> 1045px tile). */
.ctk-vid-grid .ctk-vid-tile{width:100%;height:auto;min-height:100%}
.ctk-vid-grid .ctk-vid-pts{display:grid!important;grid-auto-rows:1fr;align-content:stretch}
.ctk-vid-grid.is-portrait{grid-template-columns:.78fr 1.22fr}
.ctk-vid-grid.is-portrait .ctk-vid-tile{aspect-ratio:9/16}
@media(max-width:920px){
.ctk-vid-grid.is-portrait{grid-template-columns:1fr}
.ctk-vid-grid.is-portrait .ctk-vid-tile{aspect-ratio:9/16;max-height:70vh;margin-inline:auto;width:100%}
.ctk-vid-grid .ctk-vid-pts{grid-auto-rows:auto}
}
/* dock-states: the dock had hover only, which does nothing on touch. Adds a press
   state, a keyboard focus ring, a persistent current-page highlight, and a lit cart
   button while the drawer is open. */
html body .ctk-dock .ctk-dk-btn,html body .ctk-dock .ctk-dk-ico,html body .ctk-dock .ctk-dk-fav,html body .ctk-dock .ctk-dk-go{-webkit-tap-highlight-color:transparent;transition:background .2s,color .2s,transform .12s ease-out}
html body .ctk-dock .ctk-dk-btn:active,html body .ctk-dock .ctk-dk-ico:active,html body .ctk-dock .ctk-dk-fav:active{transform:scale(.9);background:rgba(200,245,29,.25);color:var(--lime)!important}
html body .ctk-dock .ctk-dk-go:active{transform:scale(.95)}
html body .ctk-dock a:focus-visible,html body .ctk-dock button:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
html body .ctk-dock .is-current{background:var(--lime)!important;color:var(--ink)!important}
html body .ctk-dock .is-current svg{stroke:var(--ink)!important}
html body .ctk-dock .ctk-dk-fav.is-current .ctk-dk-n,html body .ctk-dock .is-current .ctk-dk-n{background:var(--ink)!important;color:var(--lime)!important}
/* cart pill lights up while the side drawer is open (.ctk-fd.on) */
html body:has(.ctk-fd.on) .ctk-dock .ctk-dk-btn{background:var(--lime)!important;color:var(--ink)!important}
html body:has(.ctk-fd.on) .ctk-dock .ctk-dk-btn svg{stroke:var(--ink)!important}
html body:has(.ctk-fd.on) .ctk-dock .ctk-dk-btn .ctk-dk-n{background:var(--ink)!important;color:var(--lime)!important}
/* dock-tidy: search icon removed (duplicated Browse finds). The heart had no box, so it
   collapsed to its 17px glyph next to a 40px account circle - now they match, and the bar
   gets a little more air with one item fewer. */
html body .ctk-dock{gap:8px}
html body .ctk-dock .ctk-dk-fav{width:40px;height:40px;justify-content:center;border-radius:50%;opacity:1;flex:none}
html body .ctk-dock .ctk-dk-fav:hover{background:rgba(255,255,255,.12);color:var(--lime)!important}
@media(max-width:640px){
html body .ctk-dock{gap:6px}
html body .ctk-dock .ctk-dk-fav{width:38px;height:38px}
}
/* dock-fit: icons must not shrink, and on the narrowest phones the word 'Cart' is
   dropped (icon + count still reads fine) so the bar fits without squashing. */
html body .ctk-dock .ctk-dk-ico,html body .ctk-dock .ctk-dk-fav,html body .ctk-dock .ctk-dk-btn,html body .ctk-dock .ctk-dk-go{flex:none}
@media(max-width:640px){
html body .ctk-dock{gap:5px}
html body .ctk-dock .ctk-dk-go{padding:11px 13px}
}
@media(max-width:400px){
html body .ctk-dock .ctk-dk-lbl{display:none}
html body .ctk-dock .ctk-dk-btn{padding:10px 11px;gap:7px}
}
@media(max-width:640px){
/* dock-hug: the bar was pinned left:10/right:10, so space-between spread ~140px of
   slack into the gaps on a 440px phone. Hug the content and centre the pill instead -
   Browse still sits at the left edge of the pill and Cart at the right. */
html body .ctk-dock{left:50%!important;right:auto!important;width:auto!important;max-width:calc(100vw - 20px)!important;justify-content:center!important;gap:7px!important;translate:-50% 160%}
html body .ctk-dock.on{translate:-50% 0}
}
/* fcontact: fills the dead space under the brand blurb (column was 859x197 against a
   326px Quick-links column) and gives the footer contact details it had none of. */
.cul-fcontact{display:flex;flex-direction:column;gap:8px;margin-top:20px}
.cul-fcontact a{color:#c9c7c0;font-family:var(--font-b);font-size:14px;text-decoration:none;width:fit-content;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.cul-fcontact a:hover,.cul-fcontact a:focus{color:var(--lime);border-bottom-color:var(--lime)}
@media(max-width:767px){.cul-fcontact{margin-top:14px;gap:6px}.cul-fcontact a{font-size:13px}}
/* fquick-2col: Quick links (8 items, 326px) was far taller than the brand column (197px),
   which is what left the big void beside it. Two columns brings it to ~198px so all four
   columns are about the same height and the space closes without adding filler. */
@media(min-width:768px){
}
.cul-fmail a{color:#c9c7c0;text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.cul-fmail a:hover,.cul-fmail a:focus{color:var(--lime);border-bottom-color:var(--lime)}
@media(max-width:767px){
/* fpad-even: give the 20px inset to the WRAPPER and zero every column, so each column
   has identical padding on both sides and the rhythm is a clean 20 / 20 gutter / 20.
   (Supersedes the fgrid4 directional padding, which was only a workaround for not being
   able to zero the flex column-gap.) */
html body .elementor-location-footer .elementor-element-747ef652{padding-inline:20px!important}
html body .elementor-location-footer .elementor-element-747ef652 > .e-con{padding-left:0!important;padding-right:0!important}
/* content-sized + space-evenly: equal space left of Quick links, between the two lists,
   and right of Support. 50/50 columns made Support's half look empty on the right. */
html body .elementor-location-footer .elementor-element-747ef652 > .e-con:has(> .elementor-widget-nav-menu){width:auto!important;max-width:none!important;flex:1 1 auto!important;min-width:0!important}
html body .elementor-location-footer .elementor-element-747ef652 > .e-con.elementor-element-cd43079{width:100%!important;max-width:100%!important;flex:0 0 100%!important}
/* Follow us on: centre the heading over the icons */
html body .elementor-location-footer .elementor-element-cd43079 .elementor-widget-heading,
html body .elementor-location-footer .elementor-element-cd43079 .elementor-heading-title{text-align:center!important}
}
@media(max-width:767px){
/* fcol-hug: 50/50 columns left a big trailing gap beside Support, whose text is much
   shorter than half the width. Size both columns to their content and push them to the
   outer edges instead. */
html body .elementor-location-footer .elementor-element-747ef652{justify-content:flex-start!important;column-gap:20px!important;row-gap:26px!important}
/* even 50/50 columns: content-sized columns with space-between left a huge middle
   gutter, which read as two disconnected lists. */
/* content-sized + space-evenly: equal space left of Quick links, between the two lists,
   and right of Support. 50/50 columns made Support's half look empty on the right. */
html body .elementor-location-footer .elementor-element-747ef652 > .e-con:has(> .elementor-widget-nav-menu){width:auto!important;max-width:none!important;flex:1 1 auto!important;min-width:0!important}
html body .elementor-location-footer .elementor-element-747ef652 > .e-con.elementor-element-cd43079{width:100%!important;max-width:100%!important;flex:0 0 100%!important}
/* Follow us on: centre heading AND icons, with breathing room before the credits line */
html body .elementor-location-footer .elementor-element-cd43079{text-align:center!important;margin-top:6px!important;padding-bottom:20px!important}
html body .elementor-location-footer .elementor-element-cd43079 .elementor-widget-heading,html body .elementor-location-footer .elementor-element-cd43079 .elementor-heading-title{text-align:center!important}
html body .elementor-location-footer .elementor-element-cd43079 .elementor-social-icons-wrapper{justify-content:center!important}
}
/* fpay-align: payment row moved into the brand column; zero its inherited inline padding
   so the cards line up with the logo and blurb. */
html body .elementor-location-footer .elementor-element-c77e1b0{padding-left:0!important;padding-right:0!important}
@media(max-width:767px){
html body .elementor-location-footer .elementor-element-c77e1b0{justify-content:flex-start!important;flex-wrap:wrap!important;gap:6px!important}
}
/* fsocial-centre: text-align alone never worked because the heading widget is only as
   wide as its text inside a flex column, so there is nothing to centre within. Centre the
   flex children AND stretch the heading to full width, so it works either way. */
@media(max-width:767px){
html body .elementor-location-footer .elementor-element-cd43079{align-items:center!important}
html body .elementor-location-footer .elementor-element-cd43079 > .elementor-widget{width:100%!important;max-width:100%!important;align-self:stretch!important}
html body .elementor-location-footer .elementor-element-cd43079 .elementor-element-70d8321e,html body .elementor-location-footer .elementor-element-cd43079 .elementor-element-70d8321e .elementor-heading-title{text-align:center!important;width:100%!important}
}
/* fdock-clear: the fixed dock (57px tall, 10px from the bottom) was covering the credits
   line. Reserve its footprint at the end of the footer on every breakpoint. */
/* NB: the <footer> wrapper is TRANSPARENT - the dark background lives on the inner
   section 124be959. Padding on the wrapper rendered as a white strip below the footer. */
html body .elementor-location-footer .elementor-element-124be959{padding-bottom:92px!important}
@media(max-width:767px){
/* ffont: footer links were 10px on mobile vs 12px on desktop - too small. Columns also
   grow (flex:1 1 auto) so the pair fills the row from the 20px left inset with a single
   20px gutter and no trailing dead space. */
html body .elementor-location-footer .elementor-nav-menu a.elementor-item{font-size:13px!important;padding:5px 0!important}
html body .elementor-location-footer .footer-menu-heading .elementor-heading-title,html body .elementor-location-footer .elementor-element-554731e1 .elementor-heading-title,html body .elementor-location-footer .elementor-element-71177916 .elementor-heading-title{font-size:17px!important}
}
/* ck-contrast: lime (#C8F51D) on the white checkout measured 1.25:1 — WCAG AA needs 4.5:1.
   Lime stays for FILLS (buttons, the active step chip) where text sits on it in ink; any lime
   TEXT on white becomes ink. --lime-deep is for the rare case a green accent is wanted. */
:root{--lime-deep:#4d6b00}
body.woocommerce-checkout .checkout-breadcrumb .current{color:var(--ink)!important;font-weight:700}
body.woocommerce-checkout .checkout-breadcrumb a{color:#6f6f6a!important}
body.woocommerce-checkout .checkout-breadcrumb a:hover{color:var(--ink)!important}
body.woocommerce-checkout .checkout-secure-badge{color:var(--ink)!important}
body.woocommerce-checkout .checkout-secure-badge svg{stroke:var(--lime-deep)!important}
body.woocommerce-checkout .woocommerce-Price-currencySymbol{color:inherit!important}
body.woocommerce-checkout .wc-block-components-checkout-policies a,body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a,body.woocommerce-checkout .wc-block-checkout__terms a{color:var(--ink)!important;text-decoration:underline}
/* ck-stepper: was generic blue-grey (16,21,34 / 89,101,121 / 243,244,246) and every step
   title was full-strength ink, so upcoming steps competed with the active one. Brand palette,
   and only the current step carries weight. */
body.woocommerce-checkout .checkout-progress{background:#fff!important;border:1px solid var(--line)!important;border-radius:18px!important;padding:18px 22px!important}
body.woocommerce-checkout .progress-step .step-number{background:#f1f0ec!important;color:#77776f!important;border:1px solid #e6e5e0!important;font-family:var(--font-d)!important;font-weight:700!important}
body.woocommerce-checkout .progress-step .step-title{color:#6b6b65!important;font-family:var(--font-d)!important;font-weight:600!important;font-size:14.5px!important}
body.woocommerce-checkout .progress-step .step-caption{color:#77776f!important;font-size:11.5px!important}
body.woocommerce-checkout .progress-step.active .step-number{background:var(--lime)!important;color:var(--ink)!important;border-color:var(--lime)!important}
body.woocommerce-checkout .progress-step.active .step-title{color:var(--ink)!important}
body.woocommerce-checkout .progress-step.active .step-caption{color:#6f6f6a!important}
body.woocommerce-checkout .progress-step.done .step-number,body.woocommerce-checkout .progress-step.completed .step-number{background:var(--ink)!important;color:var(--lime)!important;border-color:var(--ink)!important}
@media(max-width:767px){
body.woocommerce-checkout .checkout-progress{padding:14px!important}
body.woocommerce-checkout .progress-step .step-caption{display:none!important}
body.woocommerce-checkout .progress-step .step-title{font-size:13px!important}
}
/* ck-notice-gap: with the add-to-cart banner suppressed the wrapper still reserved ~40px.
   Collapse it unless it actually holds a notice (errors/info must still show). */
body.woocommerce-checkout .woocommerce-notices-wrapper:not(:has(.woocommerce-message)):not(:has(.woocommerce-error)):not(:has(.woocommerce-info)){display:none!important}
/* ck-brandbar: Shopify-style enclosed checkout — centred logo only, no site nav, no site
   breadcrumb (Home/Cart were exit links at the highest-intent moment; the 4-step progress bar
   already communicates position). The logo asset is WHITE (the site header inverts it), so on
   this light page it must be inverted too or it renders invisible. */
body.woocommerce-checkout .checkout-brandbar{position:relative;display:flex;align-items:center;justify-content:center;padding:22px 0 18px;border-bottom:1px solid var(--line);margin-bottom:26px}
body.woocommerce-checkout .checkout-logo{display:inline-flex}
body.woocommerce-checkout .checkout-logo img{height:34px!important;width:auto!important;display:block;filter:invert(1)}
body.woocommerce-checkout .checkout-brandbar .checkout-secure-badge{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink)}
body.woocommerce-checkout .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* no floating dock on checkout - it is another exit and duplicates the order summary.
   (Now that the dock is permanent whenever the cart has items, this must be explicit.) */
body.woocommerce-checkout .ctk-dock,body.woocommerce-checkout .ctk-floatcart{display:none!important}

/* chat mockup: coupon chip inside a bubble + never let a long code overflow */
.ctk-bub{overflow-wrap:anywhere;word-break:normal}
.ctk-bub .code{display:inline-block;margin:2px 1px;padding:2px 8px;border-radius:6px;background:var(--lime);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;font-weight:700;letter-spacing:.03em;line-height:1.5}

/* about: the gauntlet timeline sat 126px above the next section - trim both paddings */
body.page-id-543 .elementor-element-2c75cbca{padding-bottom:10px!important}
body.page-id-543 .elementor-element-42ea9b65{padding-top:14px!important}

/* ---------- product gallery: zoom affordance + lightbox ---------- */
.ctk-bb-zoomable{position:relative;cursor:zoom-in}
.ctk-bb-openlb{position:absolute;inset:0;z-index:3;border:0;padding:0;margin:0;background:transparent;cursor:zoom-in;-webkit-appearance:none;appearance:none}
.ctk-bb-openlb:focus-visible{outline:2px solid var(--ink);outline-offset:-4px;border-radius:14px}
.ctk-bb-expand{position:absolute;top:12px;right:12px;z-index:4;display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;background:rgba(21,21,23,.72);color:#fff;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transform:scale(.9);
  transition:opacity .2s var(--ease),transform .2s var(--ease);pointer-events:none}
.ctk-bb-expand svg{width:15px;height:15px}
.ctk-bb-zoomable:hover .ctk-bb-expand,.ctk-bb-openlb:focus-visible+.ctk-bb-expand{opacity:1;transform:scale(1)}
@media(hover:none){.ctk-bb-expand{opacity:1;transform:scale(1)}}

.ctk-lb{position:fixed;inset:0;z-index:100000;display:none;background:rgba(12,12,13,.985);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  grid-template-rows:1fr auto;font-family:var(--font-b)}
.ctk-lb.on{display:grid}
.ctk-lb-stage{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;
  padding:64px 18px 10px;touch-action:none}
.ctk-lb-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;
  transform-origin:center center;will-change:transform;user-select:none;-webkit-user-drag:none;cursor:zoom-in}
.ctk-lb.is-zoomed .ctk-lb-img{cursor:grab}
.ctk-lb.is-zoomed .ctk-lb-img:active{cursor:grabbing}
.ctk-lb-close{position:absolute;top:16px;right:16px;z-index:6;width:42px;height:42px;display:flex;
  align-items:center;justify-content:center;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.1);color:#fff;transition:background .18s var(--ease),transform .18s var(--ease)}
.ctk-lb-close svg{width:19px;height:19px}
.ctk-lb-close:hover,.ctk-lb-close:focus-visible{background:var(--lime)!important;color:var(--ink)!important;transform:scale(1.05)}
.ctk-lb-count{position:absolute;top:26px;left:50%;translate:-50% 0;z-index:6;font-size:13px;font-weight:600;
  letter-spacing:.03em;color:rgba(255,255,255,.72)}
.ctk-lb-nav{position:absolute;top:50%;translate:0 -50%;z-index:6;width:46px;height:46px;display:flex;
  align-items:center;justify-content:center;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.1);color:#fff;transition:background .18s var(--ease),transform .18s var(--ease)}
.ctk-lb-nav svg{width:21px;height:21px}
.ctk-lb-nav:hover,.ctk-lb-nav:focus-visible{background:var(--lime)!important;color:var(--ink)!important}
.ctk-lb-prev{left:18px}
.ctk-lb-next{right:18px}
.ctk-lb-nav[hidden],.ctk-lb-count[hidden],.ctk-lb-rail[hidden]{display:none}
.ctk-lb-rail{display:flex;gap:9px;justify-content:center;flex-wrap:nowrap;overflow-x:auto;
  padding:14px 18px 20px;scrollbar-width:none}
.ctk-lb-rail::-webkit-scrollbar{display:none}
.ctk-lb-rail button{flex:0 0 auto;width:62px;height:62px;padding:0;border:2px solid transparent;border-radius:11px;
  overflow:hidden;cursor:pointer;background:rgba(255,255,255,.08);opacity:.6;
  transition:opacity .18s var(--ease),border-color .18s var(--ease)}
.ctk-lb-rail button img{width:100%;height:100%;object-fit:cover;display:block}
.ctk-lb-rail button:hover{opacity:1}
.ctk-lb-rail button.on{opacity:1;border-color:var(--lime)}
.ctk-lb-rail button:hover,.ctk-lb-rail button:focus-visible{background:rgba(255,255,255,.08)!important}
@media(max-width:640px){
  .ctk-lb-stage{padding:58px 10px 6px}
  .ctk-lb-nav{width:40px;height:40px}
  .ctk-lb-prev{left:8px}
  .ctk-lb-next{right:8px}
  .ctk-lb-rail button{width:50px;height:50px}
  .ctk-lb-rail{justify-content:flex-start;padding:12px 12px 16px}
}

/* the page's own zoom hint is bright white - stop it ghosting through the overlay */
body:has(.ctk-lb.on) .ctk-bb-expand{opacity:0!important}

/* ==========================================================================
   Hello Elementor reset.css: [type=button]:hover/:focus, button:hover/:focus
   { background-color:#c36 } - specificity 0-1-1. ANY bare <button> of ours that
   does not declare its own :hover AND :focus background turns pink. This has now
   bitten three times (dock cart pill, product image, thumbs). When adding a new
   button, always declare :hover, :focus and :active.
   ========================================================================== */
.ctk-bb-openlb:hover,.ctk-bb-openlb:focus,.ctk-bb-openlb:active,
.ctk-bb-openlb:focus-visible{background:rgba(21,21,23,.06)!important;color:inherit!important}
.ctk-bb-thumbs button:hover,.ctk-bb-thumbs button:focus,.ctk-bb-thumbs button:active,
.ctk-bb-thumbs button.on:hover,.ctk-bb-thumbs button.on:focus{background:#fff!important;color:inherit!important}
.ctk-ptabs button:hover,.ctk-ptabs button:focus,.ctk-ptabs button:active{background:rgba(21,21,23,.06)!important;color:var(--ink)!important}
.ctk-ptabs button.on:hover,.ctk-ptabs button.on:focus,.ctk-ptabs button.on:active{background:var(--ink)!important;color:#fff!important}
.ctk-bb-qty button:hover,.ctk-bb-qty button:focus,.ctk-bb-qty button:active{background:rgba(21,21,23,.06)!important;color:var(--ink)!important}
