/* ==========================================================================
   Growtech — styles de marque "critiques"
   Tout ce qui touche au loader, au compte à rebours, au glassmorphism, au
   reveal et aux états d'offre est ICI (et non dans Tailwind) : la page reste
   correcte et lisible même si le CDN Tailwind est indisponible.
   ========================================================================== */

:root{
  --brand:#1f6fff;          /* bleu Growtech */
  --brand-2:#0b2a5b;        /* bleu profond   */
  --gold:#e6b64c;           /* accent urgence */
  --ink:#05070f;            /* fond           */
  --glass:rgba(255,255,255,.045);
  --line:rgba(255,255,255,.10);
  --txt:#e8eefb;
  --muted:#9fb0cc;
  --radius:20px;
}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--txt);
  font-family:"Tajawal","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  line-height:1.85;font-size:clamp(15px,.4vw + 14px,17px);
  overflow-x:hidden;
}
/* filet de sécurité si le CDN Tailwind échoue (aperçu hors-ligne, CSP stricte…) */
.no-tw .container{max-width:1120px;margin-inline:auto;padding-inline:20px}
.no-tw section{padding-block:64px}
.no-tw h1{font-size:clamp(2rem,6vw,3.2rem);line-height:1.25}
.no-tw h2{font-size:clamp(1.6rem,4.4vw,2.4rem)}
.no-tw a{color:var(--txt)}
.no-tw img{max-width:100%;height:auto}

h1,h2,h3,h4{font-weight:800;letter-spacing:-.01em;line-height:1.3;margin:0}
p{margin:0}
section[id]{scroll-margin-top:118px}   /* ancres sous la navbar sticky */
::selection{background:var(--brand);color:#fff}

:where(a,button,input,select,textarea):focus-visible{
  outline:3px solid color-mix(in srgb,var(--gold) 70%,#fff);
  outline-offset:3px;border-radius:10px;
}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;inset-block-start:-100px;inset-inline-start:16px;z-index:200;
  background:var(--gold);color:#12182a;padding:10px 16px;border-radius:10px;font-weight:700;transition:inset-block-start .2s}
.skip:focus{inset-block-start:14px}

/* ---------- fond : gradient mesh + grain ---------- */
.mesh{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.mesh i{position:absolute;display:block;border-radius:50%;filter:blur(60px);opacity:.55}
.mesh i:nth-child(1){width:46vw;height:46vw;inset-block-start:-12vw;inset-inline-start:-8vw;
  background:radial-gradient(circle at 50% 50%,rgba(31,111,255,.85),transparent 66%)}
.mesh i:nth-child(2){width:38vw;height:38vw;inset-block-start:18vw;inset-inline-end:-12vw;
  background:radial-gradient(circle at 50% 50%,rgba(11,42,91,.95),transparent 62%)}
.mesh i:nth-child(3){width:26vw;height:26vw;inset-block-end:-6vw;inset-inline-start:34vw;
  background:radial-gradient(circle at 50% 50%,rgba(230,182,76,.32),transparent 60%)}
.grid-lines{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.35;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),
                   linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:76px 76px;
  mask-image:radial-gradient(ellipse 70% 60% at 50% 0%,#000 30%,transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 0%,#000 30%,transparent 78%)}

/* ---------- glassmorphism ---------- */
.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);
  backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%)}
.glass-strong{background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);
  backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}
.hair{border-inline-start:2px solid color-mix(in srgb,var(--brand) 60%,transparent)}

/* ---------- navbar ---------- */
.nav{position:sticky;inset-block-start:0;z-index:60;transition:background .3s,box-shadow .3s,border-color .3s;
  border-bottom:1px solid transparent}
.nav.is-glass{background:rgba(5,7,15,.78);border-bottom-color:var(--line);
  box-shadow:0 18px 40px -28px rgba(0,0,0,.9);
  backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%)}
.nav__link{position:relative;padding-block:8px;font-weight:500;color:#c9d7ef;transition:color .2s}
.nav__link:hover{color:#fff}
.nav__link[aria-current="true"]{color:var(--gold)}
.nav__link[aria-current="true"]::after{content:"";position:absolute;inset-inline:8px;inset-block-end:0;
  height:2px;border-radius:2px;background:var(--gold)}

/* ---------- boutons + glow ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;
  font-weight:700;padding:15px 26px;transition:transform .25s cubic-bezier(.2,.8,.3,1),box-shadow .25s,filter .25s;
  text-align:center}
.btn svg{width:20px;height:20px;flex:none}
.btn-brand{background:linear-gradient(135deg,#3d86ff,var(--brand) 55%,#0a4bd0);color:#fff;
  box-shadow:0 16px 40px -14px rgba(31,111,255,.75),0 0 0 1px rgba(255,255,255,.10) inset}
.btn-brand:hover{transform:translateY(-3px);filter:brightness(1.07);
  box-shadow:0 24px 54px -14px rgba(31,111,255,.95)}
.btn-gold{background:linear-gradient(135deg,#f6d78f,var(--gold) 55%,#c8942a);color:#151c30;
  box-shadow:0 16px 40px -14px rgba(230,182,76,.7)}
.btn-gold:hover{transform:translateY(-3px);box-shadow:0 24px 54px -14px rgba(230,182,76,.95)}
.btn-wa{background:linear-gradient(135deg,#3ddc84,#1fa855);color:#04170c;
  box-shadow:0 16px 40px -14px rgba(37,211,102,.6)}
.btn-wa:hover{transform:translateY(-3px);box-shadow:0 24px 50px -14px rgba(37,211,102,.85)}
.btn-ghost{border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--txt)}
.btn-ghost:hover{border-color:rgba(255,255,255,.32);transform:translateY(-3px)}
.glow{position:relative;isolation:isolate}
.glow::after{content:"";position:absolute;inset:-38% 6% auto;z-index:-1;height:70%;border-radius:50%;
  background:radial-gradient(50% 50% at 50% 50%,rgba(31,111,255,.45),transparent 70%);filter:blur(18px)}

/* ---------- top bar / compte à rebours ---------- */
.topbar{background:linear-gradient(90deg,rgba(230,182,76,.16),rgba(31,111,255,.16));
  border-bottom:1px solid var(--line);font-size:.92rem}
.cd{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-weight:800}
.cd__seg{display:inline-flex;align-items:baseline;gap:4px;padding:3px 9px;border-radius:9px;
  background:rgba(0,0,0,.30);border:1px solid var(--line)}
.cd[data-ended="true"]{opacity:.75}

/* ---------- états de l'offre ---------- */
.offer-ended .is-offer{filter:saturate(.35);opacity:.6;position:relative}
.offer-ended .is-offer::after{content:"انتهى العرض";position:absolute;inset:0;display:grid;place-items:center;
  font-weight:800;font-size:1.15rem;color:#fff;background:rgba(5,7,15,.62);border-radius:inherit}
.offer-ended [data-ended-only]{display:inline-flex!important}
[data-ended-only]{display:none}
[data-live-only]{display:inline-flex}
.offer-ended [data-live-only]{display:none}

/* ---------- cartes / badges ---------- */
.card{border-radius:var(--radius);border:1px solid var(--line);background:var(--glass);
  transition:transform .3s cubic-bezier(.2,.8,.3,1),border-color .3s,background .3s}
.card:hover{transform:translateY(-5px);border-color:rgba(31,111,255,.45);
  background:linear-gradient(160deg,rgba(31,111,255,.12),rgba(255,255,255,.03))}
.chip{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;
  border:1px solid var(--line);background:rgba(255,255,255,.04);font-weight:600;font-size:.85rem}
.chip svg{width:16px;height:16px}
.ico{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;flex:none;
  background:linear-gradient(150deg,rgba(31,111,255,.28),rgba(255,255,255,.05));
  border:1px solid rgba(31,111,255,.38);color:#cfe0ff}
.ico svg{width:24px;height:24px}
.ico--gold{background:linear-gradient(150deg,rgba(230,182,76,.28),rgba(255,255,255,.04));
  border-color:rgba(230,182,76,.42);color:#f6dfae}
.num{font-variant-numeric:tabular-nums;font-weight:800;font-size:.8rem;letter-spacing:.14em;color:var(--gold)}
.price-old{position:relative;color:var(--muted);text-decoration:none;white-space:nowrap;display:inline-block}
.price-old::after{content:"";position:absolute;inset-inline:-6%;inset-block-start:52%;height:3px;
  background:linear-gradient(90deg,transparent,#ff6b6b 12%,#ff6b6b 88%,transparent);border-radius:3px;
  transform:rotate(-7deg)}
.stars svg{width:16px;height:16px;fill:var(--gold);color:var(--gold)}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(26px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.08s}
.reveal[data-delay="2"]{transition-delay:.16s}
.reveal[data-delay="3"]{transition-delay:.24s}
.reveal[data-delay="4"]{transition-delay:.32s}
.reveal[data-delay="5"]{transition-delay:.40s}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:#04060d;
  transition:opacity .45s ease,visibility .45s}
.loader[hidden]{display:none}
.loader.is-out{opacity:0;visibility:hidden;pointer-events:none}
.loader__ring{position:relative;display:grid;place-items:center;width:132px;height:132px;border-radius:50%;
  background:radial-gradient(circle at 50% 50%,rgba(31,111,255,.30),transparent 70%)}
.loader__ring::before{content:"";position:absolute;inset:0;border-radius:50%;
  border:2px solid rgba(255,255,255,.10);border-top-color:var(--brand);border-inline-start-color:var(--gold);
  animation:gt-spin 1s linear infinite}
.loader__ring img{width:74px;height:74px;border-radius:18px;animation:gt-pop .9s ease-out infinite alternate}
.loader__txt{margin-top:18px;font-weight:700;letter-spacing:.28em;font-size:.72rem;color:#8ea3c4;
  text-transform:uppercase;animation:gt-fade 1.4s ease-in-out infinite alternate}
@keyframes gt-spin{to{transform:rotate(360deg)}}
@keyframes gt-pop{from{transform:scale(.92)}to{transform:scale(1.04)}}
@keyframes gt-fade{from{opacity:.45}to{opacity:1}}

/* ---------- visibilité par palier (plus fiable que .hidden/.lg\:flex du CDN,
      dont la feuille de style est injectée après la nôtre : conflit de priorité) ---------- */
@media (max-width:1023px){.from-lg{display:none!important}}
@media (min-width:1024px){.until-lg{display:none!important}}
@media (max-width:639px){.from-sm{display:none!important}}

/* ---------- mobile menu ---------- */
.mmenu{display:grid;grid-template-rows:0fr;transition:grid-template-rows .34s cubic-bezier(.3,.8,.3,1)}
.mmenu.is-open{grid-template-rows:1fr}
.mmenu>div{overflow:hidden}
.burger span{display:block;width:20px;height:2px;background:currentColor;position:relative;transition:transform .3s}
.burger span::before,.burger span::after{content:"";position:absolute;inset-inline-start:0;width:20px;height:2px;
  background:currentColor;transition:transform .3s,inset-block-start .2s,opacity .2s}
.burger span::before{inset-block-start:-6px}.burger span::after{inset-block-start:6px}
.burger[aria-expanded="true"] span{transform:rotate(45deg)}
.burger[aria-expanded="true"] span::before{inset-block-start:0;transform:rotate(-90deg)}
.burger[aria-expanded="true"] span::after{opacity:0}

/* ---------- sticky whatsapp ---------- */
.fab{position:fixed;inset-block-end:20px;inset-inline-end:20px;z-index:70;display:flex;align-items:center;gap:10px;
  padding:13px 18px;border-radius:999px;background:linear-gradient(135deg,#3ddc84,#1fa855);color:#04170c;
  font-weight:800;box-shadow:0 18px 44px -14px rgba(37,211,102,.8);transition:transform .25s}
.fab:hover{transform:translateY(-4px) scale(1.02)}
.fab svg{width:24px;height:24px}
.fab::before{content:"";position:absolute;inset:-6px;border-radius:999px;border:2px solid rgba(61,220,132,.45);
  animation:gt-pulse 2.4s ease-out infinite}
@keyframes gt-pulse{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.18);opacity:0}}
.totop{position:fixed;inset-block-end:84px;inset-inline-end:20px;z-index:69;width:46px;height:46px;
  display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);color:var(--gold);
  background:rgba(5,7,15,.8);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .3s,transform .25s}
.totop.is-show{opacity:1;pointer-events:auto}
.totop:hover{transform:translateY(-3px)}

/* ---------- formulaire ---------- */
.field input,.field select,.field textarea{width:100%;border-radius:12px;padding:12px 14px;color:var(--txt);
  background:rgba(255,255,255,.045);border:1px solid var(--line);transition:border-color .2s,background .2s,box-shadow .2s}
.field textarea{min-height:104px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#7186a6}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);
  background:rgba(31,111,255,.08);box-shadow:0 0 0 3px rgba(31,111,255,.18)}
.field [aria-invalid="true"]{border-color:#ff7a6b;background:rgba(255,122,107,.09)}
.field__err{min-height:1.1em;font-size:.8rem;color:#ffa79c}
.field label{font-size:.78rem;font-weight:700;letter-spacing:.06em;color:#a8bcd9}

/* ---------- FAQ ---------- */
.faq__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .36s cubic-bezier(.3,.8,.3,1)}
.faq__item.is-open .faq__panel{grid-template-rows:1fr}
.faq__panel>div{overflow:hidden}
.faq__btn .plus{transition:transform .3s,color .3s,background .3s}
.faq__item.is-open .plus{transform:rotate(135deg);background:var(--gold);color:#151c30}

/* ---------- accessibilité mouvement ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .loader__ring::before,.loader__ring img,.loader__txt,.fab::before{animation:none}
  .btn,.card{transition:none}
}
@media (max-width:640px){
  .fab span{display:none}
  .fab{padding:14px}
}
