/* ==========================================================================
   NAFAS — mobile first. Almost every customer opens this on a phone.
   Palette: warm Saharan sand + deep teal + gold.
   ========================================================================== */
:root{
  --ink:#101f1d;
  --ink-2:#3f5a56;
  --muted:#7b918c;
  --line:#e6e0d6;
  --line-2:#f0ebe3;
  --paper:#faf7f2;
  --paper-2:#f4efe7;
  --white:#fff;

  --teal:#0d6e63;
  --teal-d:#084f47;
  --teal-l:#e4f1ef;
  --teal-bright:#16a094;

  --gold:#b8862b;
  --gold-l:#fbf1dd;
  --violet:#6b4a9e;
  --violet-l:#f1ebfa;
  --wa:#25d366;
  --red:#c0392b;

  --r:22px;
  --r-sm:14px;
  --sh-xs:0 2px 8px rgba(16,31,29,.05);
  --sh-sm:0 6px 20px rgba(16,31,29,.07);
  --sh:0 18px 46px rgba(16,31,29,.11);
  --sh-lg:0 30px 70px rgba(16,31,29,.17);
  --pad:clamp(18px,5.5vw,72px);
  --font:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-ar:"Noto Kufi Arabic",Inter,system-ui,sans-serif;
  --ease:cubic-bezier(.22,.9,.3,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font);font-size:16.5px;line-height:1.62;
  overflow-x:clip;-webkit-font-smoothing:antialiased;
  padding-block-end:74px;              /* room for the sticky buy bar */
}
html[dir=rtl] body{font-family:var(--font-ar);line-height:1.85}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;line-height:1.08;letter-spacing:-.03em}
html[dir=rtl] h1,html[dir=rtl] h2,html[dir=rtl] h3{line-height:1.38;letter-spacing:0}
p{margin:0}
svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* solid glyphs (WhatsApp mark) must keep their fill and have no stroke */
.fab svg,.btn-wa svg,svg.solid{fill:currentColor!important;stroke:none!important}
[hidden]{display:none!important}
::selection{background:var(--teal);color:#fff}

/* page fade-in */
body{opacity:0;transition:opacity .4s var(--ease)}
body.ready{opacity:1}

/* ---------- reveal on scroll ----------
   Content is VISIBLE by default. Only once JS has confirmed it can run does
   it add .js-reveal to <html> and start hiding/animating. If the observer,
   the JS, or anything else fails, the customer still sees the whole page.
   No blur filter: it softens Arabic text and is slow on cheap phones.      */
.reveal{transition:opacity .6s var(--ease-out) var(--d,0ms),
                   transform .6s var(--ease-out) var(--d,0ms)}
html.js-reveal .reveal:not(.in){opacity:0;transform:translateY(20px)}
.reveal.in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  html.js-reveal .reveal:not(.in){opacity:1;transform:none}
  .reveal{transition:none}
  html{scroll-behavior:auto}
  body{opacity:1;transition:none}
  *{animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* ---------- scroll progress ---------- */
.scrollbar-progress{
  position:fixed;inset-block-start:0;inset-inline-start:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--teal),var(--teal-bright),var(--gold));
  z-index:200;transition:width .1s linear;border-end-end-radius:3px;
}

/* ---------- buttons ---------- */
.btn{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  border:1.5px solid transparent;border-radius:999px;cursor:pointer;
  font:inherit;font-weight:700;font-size:15.5px;
  padding:15px 26px;min-height:54px;
  transition:transform .2s var(--ease),box-shadow .25s var(--ease),background .2s;
  white-space:nowrap;-webkit-tap-highlight-color:transparent;
}
.btn::after{                       /* sheen on hover */
  content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);
  transform:translateX(-120%);transition:transform .7s var(--ease);
}
.btn:hover::after{transform:translateX(120%)}
.btn:active{transform:scale(.965)}
.btn-primary{background:var(--teal);color:#fff;box-shadow:0 10px 26px rgba(13,110,99,.32)}
.btn-primary:hover{background:var(--teal-d);box-shadow:0 16px 36px rgba(13,110,99,.4);transform:translateY(-2px)}
.btn-ghost{background:var(--white);color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal);transform:translateY(-2px)}
.btn-ghost-light{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.45)}
.btn-ghost-light:hover{background:rgba(255,255,255,.24)}
.btn-wa{background:var(--wa);color:#04301c;box-shadow:0 10px 26px rgba(37,211,102,.34)}
.btn-wa:hover{background:#1fbe5b;transform:translateY(-2px)}
.btn-lg{padding:18px 32px;min-height:60px;font-size:17px}
.full{width:100%}

/* ---------- countdown ---------- */
.cdbar{
  display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  background:linear-gradient(100deg,#a9761f,#d3a544 55%,#b8862b);
  color:#2e1d00;padding:11px 14px;font-weight:800;font-size:13.5px;text-align:center;
  position:relative;z-index:60;
}
.cdbar::before{
  content:"";position:absolute;inset:0;opacity:.5;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
  animation:shine 4.5s linear infinite;
}
@keyframes shine{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.cdbar.ended{background:var(--line);color:var(--ink-2)}
.cdbar.ended::before{display:none}
.cd-label,.cd-clock{position:relative;z-index:1}
.cd-clock{display:inline-flex;align-items:center;gap:6px}
.cd-clock b{
  background:rgba(255,255,255,.97);border-radius:9px;padding:4px 9px;
  font-size:16px;font-weight:800;min-width:38px;text-align:center;
  font-variant-numeric:tabular-nums;box-shadow:0 2px 7px rgba(0,0,0,.14);
}
.cd-clock i{font-style:normal;font-size:11px;font-weight:700;opacity:.75}

/* ---------- header ---------- */
.topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;gap:14px;justify-content:space-between;
  padding:12px var(--pad);
  background:rgba(250,247,242,.82);backdrop-filter:blur(22px) saturate(1.6);
  border-block-end:1px solid rgba(230,224,214,.9);
  transition:box-shadow .3s,background .3s;
}
.topbar.stuck{box-shadow:0 6px 26px rgba(16,31,29,.08)}
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:900;font-size:18px;letter-spacing:.01em}
/* the real logo mark - a transparent PNG, so no background or ring behind it */
.brand-mark{width:38px;height:38px;flex:none;object-fit:contain;display:block}
.brand-mark.small{width:22px;height:22px}
.nav{display:none;gap:26px;font-size:14.5px;font-weight:600;color:var(--ink-2)}
.nav a{position:relative;padding-block:5px}
.nav a::after{
  content:"";position:absolute;inset-inline:0;bottom:0;height:2px;border-radius:2px;
  background:var(--teal);transform:scaleX(0);transform-origin:center;
  transition:transform .3s var(--ease);
}
.nav a:hover{color:var(--teal)}
.nav a:hover::after{transform:scaleX(1)}
.lang{display:flex;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:3px;flex:none;box-shadow:var(--sh-xs)}
.lang button{
  border:0;background:transparent;cursor:pointer;font:inherit;font-weight:700;font-size:13px;
  color:var(--muted);padding:7px 12px;border-radius:999px;min-width:40px;
  transition:background .25s var(--ease),color .25s;
}
.lang button.active{background:var(--teal);color:#fff;box-shadow:0 3px 10px rgba(13,110,99,.3)}
@media(min-width:1040px){.nav{display:flex}}

.topbar-product{justify-content:space-between}
.backlink{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14.5px;color:var(--ink-2)}
.backlink:hover{color:var(--teal)}
html[dir=rtl] .backlink svg{transform:scaleX(-1)}

/* ---------- hero ---------- */
.hero{
  position:relative;display:grid;gap:32px;
  padding:clamp(30px,7vw,66px) var(--pad) clamp(34px,7vw,74px);
  overflow:hidden;
}
@media(min-width:960px){
  .hero{grid-template-columns:1.02fr .98fr;gap:60px;align-items:center;padding-block:72px 88px}
}
.hero-glow{position:absolute;inset:0;pointer-events:none;z-index:0}
.hero-glow span{
  position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;
  animation:drift 17s ease-in-out infinite;
}
.hero-glow span:nth-child(1){
  width:min(58vw,440px);aspect-ratio:1;background:rgba(22,160,148,.3);
  inset-block-start:-12%;inset-inline-end:-12%;
}
.hero-glow span:nth-child(2){
  width:min(48vw,360px);aspect-ratio:1;background:rgba(184,134,43,.24);
  inset-block-end:-14%;inset-inline-start:-10%;animation-delay:-8s;
}
@keyframes drift{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(4%,7%) scale(1.14)}
}
.hero-copy,.hero-media{position:relative;z-index:1}

.eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--teal);margin-block-end:16px;
  background:var(--teal-l);padding:7px 15px;border-radius:999px;
}
html[dir=rtl] .eyebrow{letter-spacing:0;text-transform:none;font-size:13.5px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none;animation:pulse 2.2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}

.hero h1{font-size:clamp(44px,12.5vw,78px);font-weight:900;margin-block-end:16px}
html[dir=rtl] .hero h1{font-weight:800;font-size:clamp(40px,11.5vw,72px)}
.lede{color:var(--ink-2);font-size:clamp(16px,4.2vw,19px);max-width:50ch}

.hero-price{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:20px 22px;margin-block:24px;box-shadow:var(--sh-sm);max-width:430px;
  position:relative;overflow:hidden;
}
.hero-price::before{
  content:"";position:absolute;inset-block-start:0;inset-inline-start:0;width:4px;height:100%;
  background:linear-gradient(180deg,var(--teal),var(--gold));
}
.hp-line{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap}
.hp-label{font-size:13px;color:var(--muted);font-weight:600}
.hp-now{font-size:clamp(32px,9vw,42px);font-weight:900;color:var(--teal);letter-spacing:-.035em}
.hp-now i{font-size:15px;font-weight:600;font-style:normal;color:var(--ink-2)}
.hp-code{
  margin-block-start:11px;padding-block-start:11px;border-block-start:1px dashed var(--line);
  font-size:14px;color:var(--ink-2);
}
.hp-code b{color:var(--gold);font-size:19px;font-weight:800}
.hp-code i{font-style:normal;font-size:13px}
.hero-actions{display:flex;gap:11px;flex-wrap:wrap}
.hero-actions .btn{flex:1 1 auto;min-width:150px}
.hero-badge{margin-block-start:20px;font-size:14.5px;font-weight:700;color:var(--teal)}

.hero-media img{
  border-radius:28px;box-shadow:var(--sh-lg);width:100%;
  aspect-ratio:4/3;object-fit:cover;object-position:center 42%;
}
@media(min-width:960px){.hero-media img{aspect-ratio:4/5}}

/* ---------- moving ticker ---------- */
.ticker{
  position:relative;height:46px;overflow:hidden;
  background:var(--ink);color:#dfeae7;border-block:1px solid var(--ink);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.ticker-track{
  position:absolute;top:0;inset-inline-start:0;height:100%;
  display:flex;align-items:center;gap:0;width:max-content;
  animation:roll 34s linear infinite;will-change:transform;
}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes roll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
html[dir=rtl] .ticker-track{animation-name:rollRtl}
@keyframes rollRtl{from{transform:translateX(0)}to{transform:translateX(50%)}}
.tick{
  display:inline-flex;align-items:center;gap:10px;
  padding-inline:26px;font-size:14px;font-weight:700;white-space:nowrap;
}
.tick::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);opacity:.8}

/* ---------- trust ---------- */
.trust{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);border-block-end:1px solid var(--line);
}
@media(min-width:860px){.trust{grid-template-columns:repeat(4,1fr)}}
.trust-item{
  background:var(--white);padding:24px 18px;display:flex;flex-direction:column;
  gap:4px;align-items:center;text-align:center;transition:background .3s;
}
.trust-item:hover{background:var(--teal-l)}
.trust-item svg{width:26px;height:26px;color:var(--teal);margin-block-end:6px;transition:transform .35s var(--ease)}
.trust-item:hover svg{transform:translateY(-3px) scale(1.1)}
.trust-item strong{font-size:14.5px}
.trust-item span{font-size:12.5px;color:var(--muted)}

/* ---------- sections ---------- */
.section{padding:clamp(52px,9vw,100px) var(--pad)}
.heading{max-width:660px;margin-block-end:38px}
.heading.center{margin-inline:auto;text-align:center}
.heading h2{font-size:clamp(30px,7.5vw,46px);font-weight:900;margin-block-end:13px}
html[dir=rtl] .heading h2{font-weight:800;font-size:clamp(27px,7vw,42px)}
.heading .sub{color:var(--ink-2);font-size:16.5px}

/* ---------- product cards ---------- */
.products{display:grid;gap:22px}
@media(min-width:900px){.products{grid-template-columns:repeat(3,1fr);align-items:stretch}}
.pcard{
  display:flex;flex-direction:column;
  background:var(--white);border:1px solid var(--line);border-radius:26px;
  box-shadow:var(--sh-sm);overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s;
}
.pcard:hover{transform:translateY(-8px);box-shadow:var(--sh-lg);border-color:var(--teal)}
.pcard.featured{border-color:var(--teal);box-shadow:0 20px 52px rgba(13,110,99,.16)}
.pcard-media{
  position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--paper-2);
}
.pcard-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.pcard:hover .pcard-media img{transform:scale(1.07)}
.pcard-media img[src$=".svg"]{object-fit:contain;padding:34px;opacity:.55}
.tag{
  position:absolute;inset-block-start:14px;inset-inline-start:14px;z-index:2;
  font-size:11.5px;font-weight:800;padding:7px 14px;border-radius:999px;
  backdrop-filter:blur(8px);box-shadow:var(--sh-xs);
}
.tag-best{background:rgba(228,241,239,.94);color:var(--teal-d)}
.tag-style{background:rgba(251,241,221,.94);color:var(--gold)}
.tag-top{background:rgba(241,235,250,.94);color:var(--violet)}
.ph-badge{
  position:absolute;inset-block-end:12px;inset-inline-start:12px;z-index:2;
  background:rgba(16,31,29,.82);color:#fff;font-size:11.5px;font-weight:700;
  padding:6px 12px;border-radius:999px;backdrop-filter:blur(6px);
}
.pcard-body{padding:22px;display:flex;flex-direction:column;gap:9px;flex:1}
.pcard h3{font-size:26px;font-weight:800}
.pcard-short{font-size:14.5px;color:var(--muted);font-weight:600}
.pcard-price{display:flex;align-items:baseline;gap:11px;margin-block-start:auto;padding-block-start:12px}
.pcard-price s{color:var(--muted);font-size:15.5px;font-weight:600}
.pcard-price .now{font-size:29px;font-weight:900;color:var(--ink);letter-spacing:-.03em}
.pcard-price .now i{font-size:13.5px;font-weight:600;font-style:normal;color:var(--ink-2)}
/* the whole card is a link, so the CTA is a styled span, not a <button> */
.pcard-cta{
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin-block-start:16px;padding:15px 22px;min-height:52px;
  border-radius:999px;background:var(--teal);color:#fff;
  font-weight:800;font-size:15.5px;
  box-shadow:0 8px 22px rgba(13,110,99,.28);
  transition:background .25s var(--ease),box-shadow .25s var(--ease),gap .25s var(--ease);
}
.pcard-cta::after{content:"\2190";font-size:17px;line-height:1;transition:transform .3s var(--ease)}
html[dir=ltr] .pcard-cta::after{content:"\2192"}
.pcard:hover .pcard-cta{background:var(--teal-d);box-shadow:0 14px 32px rgba(13,110,99,.4);gap:12px}
.pcard:hover .pcard-cta::after{transform:translateX(-3px)}
html[dir=ltr] .pcard:hover .pcard-cta::after{transform:translateX(3px)}

/* ---------- quiz ---------- */
.quiz-section{background:var(--paper-2);border-block:1px solid var(--line)}
.quizbox{
  max-width:640px;margin-inline:auto;background:var(--white);
  border:1px solid var(--line);border-radius:26px;padding:clamp(24px,5vw,38px);
  box-shadow:var(--sh);
}
.qprog{display:flex;gap:7px;justify-content:center;margin-block-end:18px}
.qdot{width:38px;height:5px;border-radius:99px;background:var(--line);transition:background .4s var(--ease)}
.qdot.on{background:var(--teal)}
.qcount{text-align:center;font-size:12.5px;font-weight:700;color:var(--muted);margin-block-end:9px}
.quiz-step h3{text-align:center;font-size:clamp(20px,5vw,26px);font-weight:800;margin-block-end:22px}
.quiz-step,.quiz-result{animation:pop .45s var(--ease-out)}
@keyframes pop{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.qopts{display:grid;gap:11px}
.qopt{
  font:inherit;font-size:16.5px;font-weight:600;cursor:pointer;text-align:start;
  background:var(--paper);border:2px solid var(--line);border-radius:16px;
  padding:18px 22px;min-height:62px;transition:.22s var(--ease);color:var(--ink);
  -webkit-tap-highlight-color:transparent;
}
.qopt:hover{border-color:var(--teal);background:var(--teal-l);transform:translateY(-2px);box-shadow:var(--sh-sm)}
.qopt:active{transform:scale(.98)}
.qback{
  display:block;margin:18px auto 0;background:none;border:0;cursor:pointer;
  font:inherit;font-size:14px;font-weight:700;color:var(--muted);text-decoration:underline;
}
.quiz-result{text-align:center}
.qr-label{font-size:13px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
html[dir=rtl] .qr-label{text-transform:none;letter-spacing:0;font-size:14px}
.quiz-result img{
  width:200px;height:158px;object-fit:cover;border-radius:18px;
  margin:16px auto;border:1px solid var(--line);box-shadow:var(--sh-sm);
}
.quiz-result img[src$=".svg"]{object-fit:contain;padding:20px;background:var(--paper-2)}
.quiz-result h3{font-size:29px;font-weight:900}
.qr-price{font-size:23px;font-weight:800;color:var(--teal);margin-block:9px 22px}
.qr-actions{display:flex;gap:11px;justify-content:center;flex-wrap:wrap}

/* ---------- gallery ---------- */
.gallery-section{background:var(--white);border-block:1px solid var(--line)}
.stage{display:grid;gap:16px;max-width:900px;margin-inline:auto}
.stage-main{
  position:relative;                 /* definite box for the absolute image */
  background:var(--paper-2);border:1px solid var(--line);border-radius:26px;
  overflow:hidden;aspect-ratio:4/3;
}
.stage-main.zoomable{cursor:zoom-in}
/* contain, never cover — the whole product must always be visible */
/* Absolutely positioned so the box is definite. A percentage height does NOT
   resolve against an aspect-ratio parent, which is what cropped tall photos.
   object-fit:contain then letterboxes — the whole product is always visible. */
.stage-media{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;object-position:center;padding:8px;
  display:block;animation:fade .45s var(--ease-out);
}
@keyframes fade{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.stage-thumbs{
  display:flex;gap:10px;overflow-x:auto;padding-block-end:6px;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:var(--line) transparent;
}
.stage-thumbs::-webkit-scrollbar{height:5px}
.stage-thumbs::-webkit-scrollbar-thumb{background:var(--line);border-radius:9px}
.thumb{
  flex:none;width:82px;height:66px;border-radius:14px;overflow:hidden;cursor:pointer;
  border:2px solid var(--line);background:var(--white);padding:4px;scroll-snap-align:start;
  transition:border-color .25s,transform .25s var(--ease);
}
.thumb img{width:100%;height:100%;object-fit:contain}
.thumb.active{border-color:var(--teal);transform:translateY(-3px);box-shadow:var(--sh-sm)}
.thumb-video{display:grid;place-items:center;background:var(--ink)}
.thumb-video .play{color:#fff;font-size:19px}
.zoomhint{text-align:center;font-size:12.5px;color:var(--muted);margin-block-start:4px}

/* lightbox */
.lightbox{
  position:fixed;inset:0;z-index:210;background:rgba(8,18,17,.94);
  display:grid;place-items:center;padding:20px;animation:fade .25s ease;
  backdrop-filter:blur(4px);
}
.lightbox[hidden]{display:none!important}
.lightbox img{max-width:100%;max-height:92vh;border-radius:16px;object-fit:contain}
.lb-close{
  position:absolute;top:16px;inset-inline-end:18px;width:46px;height:46px;border-radius:50%;
  border:0;background:rgba(255,255,255,.18);color:#fff;font-size:28px;line-height:1;cursor:pointer;
  transition:background .2s;
}
.lb-close:hover{background:rgba(255,255,255,.3)}

/* ---------- reviews ---------- */
.reviews-section{background:var(--paper-2);border-block:1px solid var(--line)}
.rev-grid{display:grid;gap:16px}
@media(min-width:780px){.rev-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1120px){.rev-grid{grid-template-columns:repeat(3,1fr)}}
.rev{
  margin:0;background:var(--white);border:1px solid var(--line);
  border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:13px;
  box-shadow:var(--sh-xs);transition:transform .35s var(--ease),box-shadow .35s;
}
.rev:hover{transform:translateY(-4px);box-shadow:var(--sh-sm)}
.rev-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rev-face{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none}
.rev-initial{display:grid;place-items:center;background:var(--teal);color:#fff;font-weight:800;font-size:20px}
.rev-head b{display:block;font-size:15.5px;font-weight:800}
.rev-city{font-size:12.5px;color:var(--muted)}
.rev-badge{
  margin-inline-start:auto;font-size:11px;font-weight:800;color:var(--teal-d);
  background:var(--teal-l);padding:6px 11px;border-radius:999px;
}
.rev-stars{display:flex;gap:2px}
.star{color:var(--line);font-size:17px}
.star.on{color:#d9a441}
.rev blockquote{margin:0;font-size:15px;color:var(--ink-2);line-height:1.72}
.rev figcaption{font-size:12.5px;font-weight:700;color:var(--muted);margin-block-start:auto;padding-block-start:7px}

.rev-empty{
  max-width:620px;margin-inline:auto;text-align:center;
  background:var(--white);border:1px solid var(--line);border-radius:26px;
  padding:clamp(26px,5vw,40px);box-shadow:var(--sh-sm);
}
.rev-empty h3{font-size:clamp(21px,5.5vw,28px);font-weight:800;margin-block-end:13px}
.rev-empty-text{font-size:15px;color:var(--ink-2);margin-block-end:24px}
.rev-guarantee{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:11px;text-align:start}
.rev-guarantee li{
  position:relative;padding:15px 18px 15px 48px;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r-sm);font-size:14.5px;font-weight:600;
}
html[dir=rtl] .rev-guarantee li{padding:15px 48px 15px 18px}
.rev-guarantee li::before{
  content:"✓";position:absolute;inset-inline-start:18px;top:50%;transform:translateY(-50%);
  color:var(--teal);font-weight:900;font-size:17px;
}
.rev-soon{font-size:13px;color:var(--muted);margin-block-start:20px}

/* ---------- why us (dark section for contrast) ---------- */
.why{background:var(--ink);color:#e9f0ee}
.why .heading h2{color:#fff}
.why .heading .sub{color:#a7bdb8}
.why .eyebrow{background:rgba(22,160,148,.18);color:#5fd3c5}
.cmp{border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}
.cmp-head,.cmp-row{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:1px;background:rgba(255,255,255,.09)}
.cmp-head>div{background:#16302c;padding:15px 14px;font-weight:800;font-size:13px;text-align:center;color:#cfe0dc}
.cmp-head>div:nth-child(3){background:var(--teal);color:#fff}
.cmp-row>div{background:#152b28;padding:15px 14px;font-size:14px;display:flex;align-items:center;gap:9px;color:#d5e4e1}
.cmp-what{font-weight:700;background:#122421!important;color:#9db6b1}
.cmp-them{color:#93a8a4}
.cmp-us{background:#123f39!important;font-weight:600;color:#fff}
.cmp-them .x{color:#e07a6d;font-weight:800;flex:none}
.cmp-us .v{color:#5fd3c5;font-weight:800;flex:none}
@media(max-width:720px){
  .cmp-head{display:none}
  .cmp-row{grid-template-columns:1fr;gap:0;margin-block-end:10px;border-radius:16px;overflow:hidden}
  .cmp-what{font-size:15px;font-weight:800;color:#fff}
}
.why-foot{
  margin-block-start:24px;font-size:15.5px;font-weight:700;color:#bfe9e3;
  background:rgba(22,160,148,.13);border-radius:var(--r-sm);padding:17px 20px;
  border-inline-start:3px solid var(--teal-bright);
}

/* ---------- support ---------- */
.support{background:var(--white)}
.sup-grid{display:grid;gap:18px}
@media(min-width:780px){.sup-grid{grid-template-columns:repeat(4,1fr)}}
.sup{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:24px;
  transition:transform .35s var(--ease),box-shadow .35s;
}
.sup:hover{transform:translateY(-5px);box-shadow:var(--sh-sm)}
.sup-ico{font-size:30px;display:block;margin-block-end:12px}
.sup h3{font-size:17px;font-weight:800;margin-block-end:8px}
.sup p{font-size:14px;color:var(--ink-2)}

/* ---------- learn ---------- */
.learn{background:var(--paper-2);border-block:1px solid var(--line)}
.learn-grid{display:grid;gap:16px}
@media(min-width:720px){.learn-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.learn-grid{grid-template-columns:repeat(3,1fr)}}
.lcard{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:24px;box-shadow:var(--sh-xs);transition:transform .35s var(--ease),box-shadow .35s;
}
.lcard:hover{transform:translateY(-4px);box-shadow:var(--sh-sm)}
.lcard-top{display:flex;align-items:center;gap:13px;margin-block-end:12px}
.lcard-ico{
  width:46px;height:46px;border-radius:15px;background:var(--teal-l);color:var(--teal);
  display:grid;place-items:center;flex:none;transition:transform .4s var(--ease);
}
.lcard:hover .lcard-ico{transform:rotate(-8deg) scale(1.08)}
.lcard-ico svg{width:22px;height:22px}
.lcard h3{font-size:19px;font-weight:800}
.lcard>p{font-size:14.5px;color:var(--ink-2)}
.lcard details{margin-block-start:13px}
.lcard summary{
  cursor:pointer;list-style:none;font-size:13.5px;font-weight:700;color:var(--teal);
  display:inline-flex;align-items:center;gap:7px;
}
.lcard summary::-webkit-details-marker{display:none}
.lcard summary::after{content:"+";font-size:17px;line-height:1;transition:transform .3s}
.lcard details[open] summary::after{content:"–"}
.lcard details p{
  margin-block-start:11px;font-size:14px;color:var(--ink-2);
  background:var(--paper);border-radius:var(--r-sm);padding:14px 16px;
  animation:pop .3s var(--ease-out);
}

/* ---------- how ---------- */
.how{background:var(--white)}
.steps{display:grid;gap:20px;position:relative}
@media(min-width:800px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{position:relative;padding-block-start:8px}
.step-n{
  display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:var(--teal);color:#fff;font-weight:800;font-size:18px;margin-block-end:14px;
  box-shadow:0 8px 20px rgba(13,110,99,.28);
}
.step h3{font-size:17.5px;font-weight:800;margin-block-end:7px}
.step p{font-size:14px;color:var(--ink-2)}

/* ---------- faq ---------- */
.faq{background:var(--paper-2);border-block:1px solid var(--line)}
.faq-list{display:grid;gap:11px;max-width:840px}
.faq-item{background:var(--white);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;transition:box-shadow .3s}
.faq-item[open]{box-shadow:var(--sh-sm)}
.faq-item summary{
  cursor:pointer;list-style:none;padding:19px 22px;font-weight:700;font-size:15.5px;
  display:flex;justify-content:space-between;align-items:center;gap:14px;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:22px;color:var(--teal);flex:none;line-height:1;transition:transform .3s}
.faq-item[open] summary::after{content:"–"}
.faq-item[open] summary{border-block-end:1px solid var(--line)}
.faq-item p{padding:17px 22px 22px;font-size:14.5px;color:var(--ink-2);animation:pop .3s var(--ease-out)}

/* ---------- cta ---------- */
.cta{
  position:relative;background:linear-gradient(150deg,var(--teal-d),var(--teal));
  color:#fff;padding:clamp(56px,10vw,96px) var(--pad);text-align:center;overflow:hidden;
}
.cta.has-photo{background-size:cover;background-position:center}
.cta h2{font-size:clamp(30px,7.5vw,46px);font-weight:900;margin-block-end:12px}
html[dir=rtl] .cta h2{font-weight:800}
.cta p{opacity:.92;margin-block-end:28px;font-size:16.5px}
.cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
.footer{
  padding:38px var(--pad) 46px;text-align:center;display:grid;gap:10px;justify-items:center;
  background:var(--paper);
}
.footer>div{display:inline-flex;align-items:center;gap:9px;font-weight:800}
.footer p{font-size:14px;color:var(--ink-2)}
.footer small{font-size:12.5px;color:var(--muted)}

/* ---------- floating whatsapp + sticky buy bar ---------- */
.fab{
  position:fixed;inset-block-end:88px;inset-inline-end:16px;z-index:45;
  width:56px;height:56px;border-radius:50%;background:var(--wa);color:#fff;
  display:grid;place-items:center;box-shadow:0 12px 30px rgba(37,211,102,.45);
  transition:transform .3s var(--ease);
}
.fab::before{
  content:"";position:absolute;inset:0;border-radius:50%;background:var(--wa);
  animation:ring 2.6s ease-out infinite;z-index:-1;
}
@keyframes ring{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.7);opacity:0}}
.fab:hover{transform:scale(1.08)}
.fab svg{width:30px;height:30px;stroke:none}

.buybar{
  position:fixed;inset-inline:0;inset-block-end:0;z-index:46;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:11px 16px calc(11px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94);backdrop-filter:blur(20px);
  border-block-start:1px solid var(--line);
  transform:translateY(110%);transition:transform .45s var(--ease);
}
.buybar.show{transform:none}
/* Two tidy lines. The price and its currency live in ONE inline box so
   they can never be split onto separate lines, which read as jumbled
   fragments in Arabic. */
.buybar-info{display:flex;flex-direction:column;gap:1px;line-height:1.25;min-width:0}
.bb-label{font-size:12px;color:var(--muted);font-weight:600}
.bb-price{display:flex;align-items:baseline;gap:5px;white-space:nowrap}
.bb-price b{font-size:21px;font-weight:900;color:var(--teal);letter-spacing:-.02em}
.bb-price i{font-style:normal;font-size:12px;color:var(--ink-2);font-weight:600}
.buybar .btn{padding:13px 28px;min-height:48px}
@media(min-width:1040px){
  .buybar{display:none}
  body{padding-block-end:0}
  .fab{inset-block-end:24px}
}

/* ==========================================================================
   PRODUCT PAGE
   ========================================================================== */
.pwrap{padding-block-start:clamp(20px,4vw,36px)}
.phead{display:grid;gap:30px;padding:0 var(--pad) clamp(30px,6vw,50px)}
@media(min-width:940px){.phead{grid-template-columns:1fr 1fr;gap:52px;align-items:start}}
.pmedia .stage-main{aspect-ratio:1/1;border-radius:26px;background:var(--white);transition:aspect-ratio .3s var(--ease)}
.pmedia .stage-media{padding:10px}
.pinfo{display:flex;flex-direction:column;gap:12px}
.pinfo .tag{position:static;align-self:flex-start;backdrop-filter:none}
.pinfo h1{font-size:clamp(34px,9vw,50px);font-weight:900}
html[dir=rtl] .pinfo h1{font-weight:800}
.pshort{font-size:16.5px;color:var(--teal);font-weight:700}
.pdesc{font-size:15.5px;color:var(--ink-2)}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.checks li{position:relative;padding-inline-start:28px;font-size:15px}
.checks li::before{
  content:"";position:absolute;inset-inline-start:0;top:.42em;width:17px;height:17px;border-radius:50%;
  background:var(--teal-l) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d6e63' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5.5 5.5L20 6'/%3E%3C/svg%3E") center/11px no-repeat;
}
.pbuy{
  background:var(--white);border:1px solid var(--line);border-radius:24px;
  padding:24px;box-shadow:var(--sh);margin-block-start:10px;
}
.pbuy-price{display:flex;align-items:baseline;gap:12px;margin-block-end:16px}
.pbuy-price s{color:var(--muted);font-size:17px;font-weight:600}
.pbuy-price .now{font-size:clamp(32px,8vw,40px);font-weight:900;color:var(--teal);letter-spacing:-.035em}
.pbuy-price .now i{font-size:15px;font-weight:600;font-style:normal;color:var(--ink-2)}
.inc{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:9px}
.inc li{position:relative;padding-inline-start:26px;font-size:13.8px;color:var(--ink-2);font-weight:600}
.inc li::before{content:"✓";position:absolute;inset-inline-start:0;color:var(--teal);font-weight:900}

.pdiff-section{background:var(--paper-2);border-block:1px solid var(--line)}
.diff-grid{display:grid;gap:16px}
@media(min-width:800px){.diff-grid{grid-template-columns:repeat(3,1fr)}}
.diff{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:24px;
  transition:transform .35s var(--ease),box-shadow .35s;
}
.diff:hover{transform:translateY(-5px);box-shadow:var(--sh-sm)}
.diff-n{
  display:grid;place-items:center;width:38px;height:38px;border-radius:12px;
  background:var(--teal);color:#fff;font-weight:800;font-size:16px;margin-block-end:13px;
}
.diff p{font-size:15px;color:var(--ink-2)}

.pspec-section{background:var(--white)}
.spec-table{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;max-width:680px}
.spec-row{display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:16px 20px;font-size:15px;border-block-end:1px solid var(--line);background:var(--white)}
.spec-row:last-child{border-block-end:0}
.spec-row:nth-child(even){background:var(--paper)}
.spec-row span:first-child{color:var(--ink-2);font-weight:600}
.spec-row b{font-weight:800;text-align:end}

.porder{background:var(--paper-2);border-block:1px solid var(--line)}
.form-product{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  background:var(--teal-l);border-radius:var(--r-sm);padding:14px 18px;font-size:14px;
  color:var(--teal-d);font-weight:600;
}
.form-product b{font-size:16.5px;font-weight:800}

.other-section{background:var(--white)}
.other-grid{display:grid;gap:16px}
@media(min-width:700px){.other-grid{grid-template-columns:1fr 1fr}}
.ocard{
  display:flex;align-items:center;gap:16px;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r);padding:16px;
  transition:transform .3s var(--ease),box-shadow .3s,border-color .3s;
}
.ocard:hover{transform:translateY(-4px);box-shadow:var(--sh-sm);border-color:var(--teal)}
.ocard img{width:92px;height:78px;object-fit:cover;border-radius:var(--r-sm);flex:none;background:var(--white)}
.ocard img[src$=".svg"]{object-fit:contain;padding:12px}
.ocard b{display:block;font-size:17px;font-weight:800}
.ocard span{font-size:14px;color:var(--teal);font-weight:700}

/* ==========================================================================
   FORMS (both pages)
   ========================================================================== */
.form{
  background:var(--white);border:1px solid var(--line);border-radius:26px;
  padding:clamp(22px,4.5vw,32px);box-shadow:var(--sh);display:grid;gap:16px;max-width:640px;
}
.field{display:grid;gap:7px}
.field>span{font-size:13.5px;font-weight:700;color:var(--ink-2)}
.field input,.field textarea,.field select{
  font:inherit;font-size:16px;color:var(--ink);
  border:1.5px solid var(--line);border-radius:var(--r-sm);
  padding:15px 16px;background:var(--paper);width:100%;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.field select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237b918c' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-size:19px;background-position:right 15px center;padding-inline-end:44px}
html[dir=rtl] .field select{background-position:left 15px center;padding-inline-end:16px;padding-inline-start:44px}
.field textarea{resize:vertical;line-height:1.6}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:0;border-color:var(--teal);background:var(--white);box-shadow:0 0 0 4px rgba(13,110,99,.12);
}
.field input.bad,.field textarea.bad,.field select.bad{border-color:var(--red);background:#fdf2f1}
.row{display:grid;gap:16px;grid-template-columns:1fr 110px}
.gps{font-size:14.5px}
.hint{font-size:13px;font-weight:600;min-height:1px}
.hint.ok{color:var(--teal)}
.hint.bad{color:var(--red)}
.hint.warn{color:var(--gold)}

.summary{
  background:var(--paper);border:1px dashed var(--line);border-radius:var(--r-sm);
  padding:17px 19px;display:grid;gap:9px;
}
.summary>div{display:flex;justify-content:space-between;align-items:center;font-size:15px;color:var(--ink-2)}
.summary b{color:var(--ink);font-weight:700}
.summary .save,.summary .save b{color:var(--gold)}
.summary .total{
  border-block-start:1px solid var(--line);padding-block-start:11px;margin-block-start:3px;
  font-size:16.5px;font-weight:700;color:var(--ink);
}
.summary .total b{font-size:24px;color:var(--teal);font-weight:900}
.formmsg{font-size:14.5px;font-weight:700;text-align:center;min-height:1px}
.formmsg.ok{color:var(--teal)}
.formmsg.bad{color:var(--red)}
.paybox{background:var(--teal-l);border-radius:var(--r-sm);padding:18px 20px}
.paybox strong{display:block;font-size:14.5px;color:var(--teal-d);margin-block-end:7px}
.paybox p{font-size:14px;color:#255c56}


/* ==========================================================================
   PHONE POLISH — applied from the NAFAS Mobile Screens design canvas.
   Almost every customer is on a phone, aged 20-50. Bigger type, bigger
   targets, calmer rhythm, less clutter.
   ========================================================================== */
@media (max-width: 700px){

  /* --- a touch smaller so more fits on one screen --- */
  body{font-size:16px}
  .lede{font-size:15.5px}
  .heading h2{font-size:27px}
  .heading .sub{font-size:15px}
  .section{padding:38px var(--pad)}

  /* --- hero: the product photo comes FIRST, then the headline, then price --- */
  .hero{padding-top:16px;gap:16px}
  .hero-media{order:-1}
  .hero-media img{aspect-ratio:4/3;border-radius:18px}
  .hero h1{font-size:38px;line-height:1.26}
  .hero-price{margin-block:16px;padding:15px 17px}
  .hp-now{font-size:30px}
  .hero-actions{flex-direction:column;gap:9px}
  .hero-actions .btn{width:100%;min-height:54px;font-size:16px}
  .hero-badge{margin-block-start:14px;font-size:13.5px}

  /* --- tap targets stay big even though type is smaller --- */
  .btn{min-height:52px;font-size:16px}
  .btn-lg{min-height:56px;font-size:16.5px}
  .pcard-cta{min-height:52px;font-size:15.5px}
  .qopt{min-height:58px;font-size:16px;padding:16px 18px}
  .field input,.field textarea,.field select{min-height:52px;font-size:16px;padding:14px 15px}
  .lang button{min-width:46px;min-height:44px;padding:10px 13px}
  .faq-item summary{padding:17px 16px;font-size:15.5px}

  .tag,.ph-badge,.rev-badge,.honest-tag{font-size:12.5px}
  .trust-item span,.pcard-short,.stock,.weight{font-size:13px}

  .pcard-media{aspect-ratio:16/10}
  .pcard h3{font-size:23px}
  .pcard-price .now{font-size:27px}
  .pcard-body{padding:16px 16px 18px;gap:8px}

  .phead{gap:16px}
  .pmedia .stage-media{padding:8px}
  .pinfo h1{font-size:31px}
  .pbuy{padding:16px}
  .pbuy-price .now{font-size:30px}

  .trust-item{padding:14px 10px}
  .trust-item strong{font-size:13.5px}
  .sup,.qa,.lcard{padding:18px}
  .steps{gap:12px}

  .summary{padding:15px}
  .summary>div{font-size:14.5px}
  .summary .total b{font-size:22px}

  .buybar{padding:10px 16px calc(10px + env(safe-area-inset-bottom))}
  .buybar-price b{font-size:20px}
  .buybar .btn{padding:13px 24px;min-height:48px}

  .cdbar{font-size:12px;padding:8px 10px}
  .cd-clock b{font-size:14px;min-width:31px}
  .ticker{height:42px}
}

/* very small phones (<=360px) — nothing may overflow */
@media (max-width: 360px){
  .hero h1{font-size:40px}
  .heading h2{font-size:26px}
  .pcard-price .now{font-size:26px}
  .cd-clock i{display:none}
}

/* ==========================================================================
   MOTION
   Every hiding rule is guarded by html.js-reveal, exactly like .reveal:
   without JS, or if anything fails, all of this is simply visible.
   Only transform/opacity/stroke animate — cheap on a low-end phone.
   ========================================================================== */

/* ---------- entrance directions ---------- */
html.js-reveal .reveal-l:not(.in){opacity:0;transform:translateX(-26px)}
html.js-reveal .reveal-r:not(.in){opacity:0;transform:translateX(26px)}
html[dir=rtl].js-reveal .reveal-l:not(.in){transform:translateX(26px)}
html[dir=rtl].js-reveal .reveal-r:not(.in){transform:translateX(-26px)}
html.js-reveal .reveal-pop:not(.in){opacity:0;transform:scale(.92)}
.reveal-l,.reveal-r,.reveal-pop{
  transition:opacity .65s var(--ease-out) var(--d,0ms),
             transform .65s var(--ease-out) var(--d,0ms);
}
.reveal-l.in,.reveal-r.in,.reveal-pop.in{opacity:1;transform:none}

/* ---------- "Others sell the device. We sell the result." ----------
   Rows land one by one; the ✕ fades in first, then the ✓ pops.        */
.cmp-row{transition:background .3s var(--ease)}
html.js-reveal .cmp-row:not(.in) .cmp-what,
html.js-reveal .cmp-row:not(.in) .cmp-them,
html.js-reveal .cmp-row:not(.in) .cmp-us{opacity:0;transform:translateY(12px)}
.cmp-row .cmp-what,.cmp-row .cmp-them,.cmp-row .cmp-us{
  transition:opacity .5s var(--ease-out),transform .5s var(--ease-out);
}
.cmp-row.in .cmp-what{transition-delay:0ms}
.cmp-row.in .cmp-them{transition-delay:110ms}
.cmp-row.in .cmp-us{transition-delay:230ms}
html.js-reveal .cmp-row:not(.in) .x,
html.js-reveal .cmp-row:not(.in) .v{opacity:0;transform:scale(.4)}
.cmp-row .x,.cmp-row .v{transition:opacity .4s var(--ease-out),transform .5s var(--ease-out)}
.cmp-row.in .x{transition-delay:200ms}
.cmp-row.in .v{transition-delay:380ms;animation:tickPop .55s var(--ease-out) 380ms both}
@keyframes tickPop{0%{transform:scale(.4)}60%{transform:scale(1.25)}100%{transform:scale(1)}}

/* ---------- "We don't leave you alone." ----------
   Cards rise in sequence, icon lands after its card.                  */
html.js-reveal .sup:not(.in){opacity:0;transform:translateY(26px) scale(.97)}
.sup{transition:opacity .6s var(--ease-out) var(--d,0ms),
                transform .6s var(--ease-out) var(--d,0ms),
                box-shadow .3s var(--ease)}
.sup.in{opacity:1;transform:none}
.sup:hover{box-shadow:var(--sh-sm)}
html.js-reveal .sup:not(.in) .sup-ico{opacity:0;transform:scale(.5) rotate(-12deg)}
.sup .sup-ico{display:inline-block;transition:opacity .5s var(--ease-out),transform .6s var(--ease-out)}
.sup.in .sup-ico{opacity:1;transform:none;transition-delay:calc(var(--d,0ms) + 180ms)}

/* ---------- "What does the band measure?" — animated mini charts ---------- */
.lcard-ico{
  width:64px;height:44px;border-radius:12px;background:var(--teal-l);
  display:grid;place-items:center;flex:none;overflow:hidden;
}
.mini{width:52px;height:34px;overflow:visible}
.mini rect{fill:var(--teal);stroke:none}
.mini path,.mini circle{fill:none;stroke:var(--teal);stroke-width:2.4;
  stroke-linecap:round;stroke-linejoin:round}

/* sleep — bars grow from the baseline */
.mini-sleep rect{transform-origin:center bottom;transition:transform .7s var(--ease-out)}
html.js-reveal .lcard:not(.in) .mini-sleep rect{transform:scaleY(0)}
.lcard.in .mini-sleep rect{transform:scaleY(1)}
.lcard.in .mini-sleep rect:nth-child(1){transition-delay:120ms}
.lcard.in .mini-sleep rect:nth-child(2){transition-delay:200ms}
.lcard.in .mini-sleep rect:nth-child(3){transition-delay:280ms}
.lcard.in .mini-sleep rect:nth-child(4){transition-delay:360ms}
.lcard.in .mini-sleep rect:nth-child(5){transition-delay:440ms}

/* rem / hrv / vo2 — the line draws itself */
.mini-draw path{stroke-dasharray:200;stroke-dashoffset:0;
  transition:stroke-dashoffset 1.5s var(--ease-out) 150ms}
html.js-reveal .lcard:not(.in) .mini-draw path{stroke-dashoffset:200}
.mini-draw .tip{fill:var(--teal);stroke:none;transition:opacity .4s ease 1.2s}
html.js-reveal .lcard:not(.in) .mini-draw .tip{opacity:0}

/* recovery — the ring fills */
.mini-ring .track{stroke:var(--teal);opacity:.18}
.mini-ring .fill{stroke-dasharray:95;stroke-dashoffset:24;
  transform:rotate(-90deg);transform-origin:32px 20px;
  transition:stroke-dashoffset 1.4s var(--ease-out) 150ms}
html.js-reveal .lcard:not(.in) .mini-ring .fill{stroke-dashoffset:95}

/* stress — rings pulse outward, only while on screen */
.mini-pulse .r1,.mini-pulse .r2{transform-origin:32px 20px}
.lcard.in .mini-pulse .r1{animation:ripple 2.4s var(--ease-out) infinite}
.lcard.in .mini-pulse .r2{animation:ripple 2.4s var(--ease-out) .5s infinite}
@keyframes ripple{0%{transform:scale(.55);opacity:.9}100%{transform:scale(1.15);opacity:0}}

.lcard{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.lcard:hover{transform:translateY(-3px);box-shadow:var(--sh-sm)}

/* ---------- the three questions ---------- */
.quiz-step,.quiz-result{animation:qIn .5s var(--ease-out) both}
@keyframes qIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.qopt{animation:qOpt .5s var(--ease-out) both;transition:border-color .2s,background .2s,transform .18s var(--ease)}
.qopt:nth-of-type(1){animation-delay:.10s}
.qopt:nth-of-type(2){animation-delay:.19s}
.qopt:nth-of-type(3){animation-delay:.28s}
@keyframes qOpt{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.qopt:active{transform:scale(.97)}
.qdot{transition:background .45s var(--ease),transform .45s var(--ease)}
.qdot.on{transform:scaleX(1.04)}
.quiz-result img{animation:qImg .7s var(--ease-out) .1s both}
@keyframes qImg{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:none}}
.qr-price{animation:qIn .5s var(--ease-out) .25s both}
.qr-actions{animation:qIn .5s var(--ease-out) .35s both}

/* ---------- "See the product up close" ---------- */
.stage-media{animation:stageIn .5s var(--ease-out) both}
/* fade + drift, never a scale-up: scaling past 1 makes the photo
   spill out of its frame mid-animation, which is the cropping bug again */
@keyframes stageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.thumb{transition:border-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}
.thumb:hover{transform:translateY(-3px)}
.thumb.active{transform:translateY(-3px);box-shadow:var(--sh-sm)}
.thumb img{transition:transform .4s var(--ease)}
.thumb:hover img{transform:scale(1.08)}

/* ---------- "What our buyers say" ---------- */
html.js-reveal .rev-empty:not(.in) .rev-guarantee li{opacity:0;transform:translateY(14px)}
.rev-guarantee li{transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}
.rev-empty.in .rev-guarantee li:nth-child(1){transition-delay:120ms}
.rev-empty.in .rev-guarantee li:nth-child(2){transition-delay:220ms}
.rev-empty.in .rev-guarantee li:nth-child(3){transition-delay:320ms}
.rev-empty.in .rev-guarantee li:nth-child(4){transition-delay:420ms}
html.js-reveal .rev-empty:not(.in) .rev-guarantee li::before{opacity:0;transform:translateY(-50%) scale(.4)}
.rev-guarantee li::before{transition:opacity .4s var(--ease-out),transform .5s var(--ease-out)}
.rev-empty.in .rev-guarantee li:nth-child(1)::before{transition-delay:260ms}
.rev-empty.in .rev-guarantee li:nth-child(2)::before{transition-delay:360ms}
.rev-empty.in .rev-guarantee li:nth-child(3)::before{transition-delay:460ms}
.rev-empty.in .rev-guarantee li:nth-child(4)::before{transition-delay:560ms}
.rev{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.rev:hover{transform:translateY(-3px);box-shadow:var(--sh-sm)}

/* ---------- steps + trust get sequence too ---------- */
html.js-reveal .step:not(.in) .step-n{opacity:0;transform:scale(.5)}
.step .step-n{transition:opacity .45s var(--ease-out),transform .55s var(--ease-out)}
.step.in .step-n{opacity:1;transform:none;transition-delay:calc(var(--d,0ms) + 120ms)}
.trust-item svg{transition:transform .4s var(--ease)}
.trust-item:hover svg{transform:translateY(-3px) scale(1.08)}

/* ---------- honour the OS setting: kill all of it ---------- */
@media(prefers-reduced-motion:reduce){
  html.js-reveal .reveal-l:not(.in),
  html.js-reveal .reveal-r:not(.in),
  html.js-reveal .reveal-pop:not(.in),
  html.js-reveal .sup:not(.in),
  html.js-reveal .cmp-row:not(.in) .cmp-what,
  html.js-reveal .cmp-row:not(.in) .cmp-them,
  html.js-reveal .cmp-row:not(.in) .cmp-us,
  html.js-reveal .cmp-row:not(.in) .x,
  html.js-reveal .cmp-row:not(.in) .v,
  html.js-reveal .rev-empty:not(.in) .rev-guarantee li,
  html.js-reveal .step:not(.in) .step-n{opacity:1;transform:none}
  html.js-reveal .lcard:not(.in) .mini-sleep rect{transform:scaleY(1)}
  html.js-reveal .lcard:not(.in) .mini-draw path{stroke-dashoffset:0}
  html.js-reveal .lcard:not(.in) .mini-draw .tip{opacity:1}
  html.js-reveal .lcard:not(.in) .mini-ring .fill{stroke-dashoffset:24}
}

/* ==========================================================================
   PAYMENT
   ========================================================================== */
.paypick{border:0;padding:0;margin:0;display:grid;gap:10px}
.paypick legend{font-size:13.5px;font-weight:700;color:var(--ink-2);padding:0;margin-block-end:8px}
#payOptions{display:grid;gap:9px}
@media(min-width:520px){#payOptions{grid-template-columns:repeat(2,minmax(0,1fr))}}
.payopt input{position:absolute;opacity:0;pointer-events:none}
.payopt-box{
  display:flex;flex-direction:column;gap:3px;cursor:pointer;
  border:2px solid var(--line);border-radius:var(--r-sm);
  padding:15px 16px;background:var(--paper);transition:.18s var(--ease);min-height:58px;
  justify-content:center;
}
.payopt-name{font-size:15.5px;font-weight:700}
.payopt-tag{font-size:12px;font-weight:700;color:var(--teal)}
.payopt input:checked + .payopt-box{border-color:var(--teal);background:var(--teal-l)}
.payopt input:focus-visible + .payopt-box{outline:2px solid var(--teal);outline-offset:2px}

.paydetail{
  background:var(--paper);border:1px dashed var(--line);border-radius:var(--r-sm);
  padding:16px;display:grid;gap:12px;animation:qIn .35s var(--ease-out) both;
}
.paydetail.is-cash{background:var(--teal-l);border-style:solid;border-color:transparent}
.pd-lead{font-size:14.5px;color:var(--ink-2)}
.pd-perks{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pd-perks li{position:relative;padding-inline-start:26px;font-size:14.5px;font-weight:700;color:var(--teal-d)}
.pd-perks li::before{content:"✓";position:absolute;inset-inline-start:0;color:var(--teal);font-weight:900}
.pd-acct{background:var(--white);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}
.pd-row{
  display:flex;align-items:center;gap:10px;justify-content:space-between;
  padding:13px 15px;border-block-end:1px solid var(--line-2);font-size:14px;
  flex-wrap:wrap;                 /* the copy button must never be clipped */
}
.pd-row b{min-width:0;overflow-wrap:anywhere}
.pd-row:last-child{border-block-end:0}
.pd-row>span{color:var(--muted);font-weight:600;flex:none}
.pd-row b{font-weight:800;font-size:15.5px}
.pd-num{letter-spacing:.06em;font-variant-numeric:tabular-nums}
.pd-amount b{color:var(--teal);font-size:17px}
.pd-copy{
  border:1px solid var(--line);background:var(--paper);border-radius:999px;
  padding:8px 14px;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer;
  color:var(--teal-d);min-height:38px;transition:.15s var(--ease);flex:none;
}
.pd-copy:hover{background:var(--teal-l);border-color:var(--teal)}
.pd-copy:active{transform:scale(.95)}
.pd-missing{
  background:var(--gold-l);color:#6b4f14;border-radius:var(--r-sm);
  padding:13px 15px;font-size:13.5px;font-weight:600;
}
.pd-shot{display:grid;gap:8px}
.shotbtn{
  display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;
  border:2px dashed var(--line);border-radius:var(--r-sm);background:var(--white);
  padding:16px;min-height:58px;font-size:14.5px;font-weight:700;
  transition:.18s var(--ease);text-align:center;
}
.shotbtn:hover{border-color:var(--teal);color:var(--teal)}
.shotbtn.has-file{border-style:solid;border-color:var(--teal);background:var(--teal-l);color:var(--teal-d)}
.shotbtn svg{flex:none;color:var(--teal)}
.pd-why{font-size:12.5px;color:var(--muted);line-height:1.55}

/* support strip */
.paysupport{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:space-between;
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-sm);padding:15px 16px;
}
.paysupport b{display:block;font-size:14.5px}
.paysupport span{font-size:13px;color:var(--muted)}
.paysupport .btn{min-height:46px;padding:11px 20px;font-size:14.5px}

/* ==========================================================================
   ORDER RECEIVED
   ========================================================================== */
.done{
  position:fixed;inset:0;z-index:220;background:rgba(10,30,28,.55);
  backdrop-filter:blur(6px);display:grid;place-items:center;padding:18px;
  opacity:0;transition:opacity .3s var(--ease);overflow-y:auto;
}
.done.in{opacity:1}
.done[hidden]{display:none!important}
.done-card{
  background:var(--white);border-radius:26px;padding:clamp(24px,6vw,34px);
  max-width:440px;width:100%;box-shadow:var(--sh-lg);text-align:center;
  transform:translateY(18px) scale(.97);transition:transform .4s var(--ease-out);
  margin-block:auto;
}
.done.in .done-card{transform:none}
.done-tick{width:64px;height:64px;display:block;margin:0 auto 14px}
.done-tick svg{width:64px;height:64px;fill:none;stroke:var(--teal);stroke-width:3;
  stroke-linecap:round;stroke-linejoin:round}
.done-tick circle{stroke-dasharray:145;animation:tickRing .7s var(--ease-out) both}
.done-tick path{stroke-dasharray:40;animation:tickPath .5s var(--ease-out) .45s both}
@keyframes tickRing{from{stroke-dashoffset:145}to{stroke-dashoffset:0}}
@keyframes tickPath{from{stroke-dashoffset:40}to{stroke-dashoffset:0}}
.done-card h2{font-size:clamp(24px,6vw,30px);font-weight:800;margin-block-end:8px}
.done-sub{font-size:15px;color:var(--ink-2);margin-block-end:20px}
.done-steps{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:11px;counter-reset:ds;text-align:start}
.done-steps li{
  position:relative;padding:14px 16px 14px 52px;background:var(--paper);
  border-radius:var(--r-sm);counter-increment:ds;
}
html[dir=rtl] .done-steps li{padding:14px 52px 14px 16px}
.done-steps li::before{
  content:counter(ds);position:absolute;inset-inline-start:14px;top:14px;
  width:26px;height:26px;border-radius:50%;background:var(--teal);color:#fff;
  display:grid;place-items:center;font-size:13px;font-weight:800;
}
.done-steps b{display:block;font-size:15px;font-weight:800;margin-block-end:2px}
.done-steps span{font-size:13.5px;color:var(--ink-2)}
.done-eta{
  font-size:13.5px;font-weight:700;color:var(--teal-d);
  background:var(--teal-l);border-radius:var(--r-sm);padding:12px 14px;margin-block-end:16px;
}
.done-note{font-size:12.5px;color:var(--muted);margin-block-start:10px}
.done-back{
  display:block;margin:14px auto 0;background:none;border:0;cursor:pointer;
  font:inherit;font-size:14px;font-weight:700;color:var(--muted);text-decoration:underline;
  min-height:44px;
}
@media(prefers-reduced-motion:reduce){
  .done,.done-card{transition:none}
  .done-tick circle,.done-tick path{animation:none;stroke-dashoffset:0}
}

/* ==========================================================================
   PAYMENT + DELIVERY on the home page
   People want to know how they pay BEFORE they open a product.
   ========================================================================== */
.payhome{background:var(--white);border-block:1px solid var(--line)}
.payh-grid{display:grid;gap:16px;max-width:900px;margin-inline:auto}
@media(min-width:780px){.payh-grid{grid-template-columns:1fr 1fr}}
.payh-card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  padding:24px;display:flex;flex-direction:column;gap:11px;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.payh-card:hover{transform:translateY(-3px);box-shadow:var(--sh-sm)}
.payh-card.featured{border-color:var(--teal);background:var(--teal-l)}
.payh-ico{
  width:50px;height:50px;border-radius:15px;background:var(--white);
  display:grid;place-items:center;color:var(--teal);flex:none;
  box-shadow:var(--sh-xs);
}
.payh-ico svg{width:24px;height:24px}
.payh-card h3{font-size:20px;font-weight:800}
.payh-card p{font-size:14.5px;color:var(--ink-2)}
.payh-perks{display:flex;gap:8px;flex-wrap:wrap;margin-block-start:auto;padding-block-start:6px}
.payh-perks span{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--white);color:var(--teal-d);border-radius:999px;
  padding:9px 15px;font-size:13.5px;font-weight:800;
}
.payh-perks span::before{content:"✓";color:var(--teal);font-weight:900}
.payh-wallets{display:flex;gap:8px;flex-wrap:wrap;margin-block-start:auto;padding-block-start:6px}
.payh-wallets span{
  background:var(--white);border:1px solid var(--line);border-radius:999px;
  padding:9px 15px;font-size:13.5px;font-weight:800;color:var(--ink-2);
}
.payh-shot{font-size:12.5px;color:var(--muted)}
.payh-cta{text-align:center;margin-block-start:26px}
@media(max-width:700px){
  .payh-card{padding:20px}
  .payh-card h3{font-size:19px}
}

/* the screenshot is genuinely optional - the label must say so */
.shot-opt{
  font-style:normal;font-size:12px;font-weight:700;color:var(--muted);
  background:var(--paper);border-radius:999px;padding:4px 10px;
}
.shotbtn.has-file .shot-opt{display:none}
.gps.has-gps{border-color:var(--teal);background:var(--teal-l);color:var(--teal-d)}
.hint.warn{color:var(--gold)}
.paysupport-btns{display:flex;gap:8px;flex-wrap:wrap}
.paysupport-btns .btn{min-height:46px;padding:11px 18px;font-size:14px}
