/* =========================================================
   WIRELESS ACTIVATION — DESIGN SYSTEM
   Tokens + composants globaux réutilisables, repris 1:1 de la
   maquette. Les styles propres à chaque section sont chargés
   séparément (assets/css/sections/*.css) au fil de l'intégration.
   Les couleurs et typographies sont AUSSI déclarées comme
   Variables Globales Elementor : ce fichier garde les tokens en
   CSS custom properties pour les composants .wa-* faits main.
   ========================================================= */

/* =========================================================
   REFONTE PREMIUM (DA v2) — palette « signal chaud ».
   Fond papier chaud, encre chaude, neutres teintés vers l'orange,
   orange DÉMOTÉ au rang de vrai signal (action principale + micro-accents).
   Les noms de tokens sont conservés : tout le site hérite du nouveau look.
   ========================================================= */
:root{
  /* Signal (marque) — usage rare et intentionnel */
  --wa-orange:#EC5A22; --wa-orange-dark:#B8420F; --wa-orange-soft:#FCEEE5;
  /* Encre + neutres chauds */
  --wa-ink:#1A1512; --wa-ink-2:#57514B; --wa-grey:#6C6359; --wa-grey-2:#7A7168;
  --wa-line:#EBE5DC; --wa-surface:#F4F0EA; --wa-white:#FFFFFF;
  --wa-paper:#FBF9F6;
  /* Disponibilité / succès (distinct du signal) */
  --wa-green:#4E7D2A; --wa-green-soft:#EEF4E6;

  /* Inter partout : plus léger que Poppins et aligné sur les références (Linear/Vercel/Stripe) */
  --font-display:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;

  --step--1:clamp(.75rem,.73rem + .1vw,.8rem);
  --step-0:clamp(1rem,.96rem + .18vw,1.0625rem);
  --step-1:clamp(1.1rem,1.02rem + .4vw,1.28rem);
  --step-2:clamp(1.4rem,1.2rem + .9vw,1.9rem);
  --step-3:clamp(1.75rem,1.3rem + 1.9vw,2.6rem);
  --step-4:clamp(2.4rem,1.55rem + 3.5vw,4rem);

  --radius:12px; --radius-lg:18px; --radius-sm:8px;
  --shell:1200px; --gutter:clamp(20px,4vw,44px); --section-y:clamp(56px,8vw,104px);
  /* Ombres discrètes : cartes filaires au repos, élévation au survol seulement */
  --shadow-1:0 1px 2px rgba(26,21,18,.04),0 2px 8px rgba(26,21,18,.04);
  --shadow-2:0 4px 12px rgba(26,21,18,.05),0 18px 48px rgba(26,21,18,.08);
  --ease:cubic-bezier(.22,.8,.3,1);
}

/* ---------- Réglages de base ---------- */
/* La maquette pose la police de texte sur <body> : sans cela, les paragraphes
   sans classe .wa-* retombent sur la pile système. */
/* overflow-x sur <html>, PAS sur <body> : mettre overflow-x:hidden sur body en
   fait un conteneur de défilement (window.scrollY figé à 0, plus d'événement
   scroll sur window → sticky header JS cassé). Sur html, la fenêtre reste le
   scroller racine tout en clippant le débordement horizontal. */
html{overflow-x:hidden}
body{font-family:var(--font-body);font-size:var(--step-0);line-height:1.6;color:var(--wa-ink-2);background:var(--wa-paper);-webkit-font-smoothing:antialiased;letter-spacing:-.006em}
[id]{scroll-margin-top:96px}
.wa-scope img{max-width:100%}

/* ---------- Mise en page (toutes pages de contenu) ---------- */
.wa-scope .wa-section{padding-block:var(--section-y)}
.wa-scope .wa-section--tint{background:var(--wa-surface)}
.wa-scope .wa-grid{display:grid;gap:clamp(16px,2vw,24px)}
.wa-scope .wa-grid--2{grid-template-columns:repeat(2,1fr)}
.wa-scope .wa-grid--3{grid-template-columns:repeat(3,1fr)}
.wa-scope .wa-grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:940px){
  .wa-scope .wa-grid--4,.wa-scope .wa-grid--3{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .wa-scope .wa-grid--2,.wa-scope .wa-grid--3,.wa-scope .wa-grid--4{grid-template-columns:1fr}
}

/* Neutralise le conteneur Elementor pour un plein cadrage maquette */
.wa-home .elementor-widget-html .elementor-widget-container{margin:0}

/* ---------- Utilitaires ---------- */
/* Eyebrow : gris discret + point signal (l'orange redevient rare) */
.wa-eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-size:var(--step--1);font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--wa-grey);margin-bottom:1rem}
.wa-eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--wa-orange);box-shadow:0 0 0 4px var(--wa-orange-soft);flex:none}
.wa-eyebrow--center{justify-content:center}
.wa-lead{font-size:var(--step-1);color:var(--wa-ink-2);max-width:60ch;line-height:1.55}
.wa-head{max-width:54ch;margin-bottom:clamp(28px,4vw,52px)}
.wa-head--center{margin-inline:auto;text-align:center}
.wa-muted{color:var(--wa-grey)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wa-skip{position:absolute;left:-999px;top:0;z-index:2000;background:var(--wa-ink);color:#fff;padding:.7rem 1.1rem;border-radius:0 0 8px 0}
.wa-skip:focus{left:0}
:focus-visible{outline:2.5px solid var(--wa-orange);outline-offset:3px;border-radius:4px}

/* ---------- Boutons ---------- */
.wa-btn{--bg:var(--wa-orange);--fg:#fff;--bd:transparent;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-display);font-weight:600;font-size:.98rem;letter-spacing:-.01em;padding:.8rem 1.4rem;border-radius:100px;background:var(--bg);color:var(--fg);border:1px solid var(--bd);cursor:pointer;transition:transform .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease);white-space:nowrap;text-decoration:none;box-shadow:0 1px 2px rgba(184,66,15,.22),0 8px 20px -10px rgba(236,90,34,.5)}
.wa-btn:hover{transform:translateY(-1.5px);box-shadow:0 2px 4px rgba(184,66,15,.22),0 14px 28px -12px rgba(236,90,34,.6);color:var(--fg)}
.wa-btn:active{transform:translateY(0)}
.wa-btn--ghost{--bg:transparent;--fg:var(--wa-ink);--bd:var(--wa-line);box-shadow:none}
.wa-btn--ghost:hover{--bd:var(--wa-ink);background:var(--wa-white);box-shadow:none}
.wa-btn--dark{--bg:var(--wa-ink);--fg:#fff;box-shadow:0 1px 2px rgba(26,21,18,.2),0 10px 24px -12px rgba(26,21,18,.5)}
.wa-btn--dark:hover{box-shadow:0 2px 4px rgba(26,21,18,.2),0 16px 30px -14px rgba(26,21,18,.6)}
.wa-btn--wa{--bg:#25D366;--fg:#08331A;box-shadow:0 1px 2px rgba(8,51,26,.15),0 10px 22px -12px rgba(37,211,102,.5)}
.wa-btn--wa:hover{box-shadow:0 2px 4px rgba(8,51,26,.15),0 16px 28px -14px rgba(37,211,102,.6)}
.wa-btn--lg{padding:1.05rem 1.9rem;font-size:var(--step-1)}
.wa-btn--block{width:100%}
.wa-btn svg{width:18px;height:18px;flex:none}

/* ---------- Motif signal (signature animée) ---------- */
.wa-signal{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.wa-signal svg{position:absolute;width:min(160%,1500px);aspect-ratio:1}
.wa-signal circle{fill:none;stroke:var(--wa-orange);stroke-width:1.2;opacity:0;transform-origin:center;animation:wa-pulse 5.5s var(--ease) infinite}
.wa-signal--hero svg{right:-28%;top:50%;transform:translateY(-50%)}
@keyframes wa-pulse{0%{opacity:0;transform:scale(.86)}35%{opacity:.34}100%{opacity:0;transform:scale(1.06)}}
.wa-signal circle:nth-child(1){animation-delay:0s}
.wa-signal circle:nth-child(2){animation-delay:.55s}
.wa-signal circle:nth-child(3){animation-delay:1.1s}
.wa-signal circle:nth-child(4){animation-delay:1.65s}
.wa-signal circle:nth-child(5){animation-delay:2.2s}

/* ---------- Reveal au scroll ---------- */
.wa-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.wa-reveal.is-in{opacity:1;transform:none}

/* ---------- WhatsApp flottant + toast ---------- */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:800;display:inline-flex;align-items:center;gap:.6rem;background:#25D366;color:#08331A;border-radius:100px;padding:.85rem 1.25rem;font-family:var(--font-display);font-weight:600;font-size:.94rem;box-shadow:0 12px 30px rgba(37,211,102,.35);transition:transform .25s var(--ease);text-decoration:none}
.wa-float:hover{transform:translateY(-3px);color:#08331A}
.wa-float svg{width:22px;height:22px}
.wa-toast{position:fixed;left:50%;bottom:88px;transform:translate(-50%,20px);max-width:calc(100vw - 32px);text-align:center;z-index:1500;background:var(--wa-ink);color:#fff;padding:.85rem 1.4rem;border-radius:100px;font-family:var(--font-display);font-weight:600;font-size:.92rem;box-shadow:var(--shadow-2);opacity:0;visibility:hidden;transition:all .3s var(--ease)}
.wa-toast.is-open{opacity:1;visibility:visible;transform:translate(-50%,0)}

/* ---------- Revenir en haut ---------- */
.wa-totop{position:fixed;right:18px;bottom:80px;z-index:799;width:46px;height:46px;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:var(--wa-ink);color:var(--wa-paper);cursor:pointer;box-shadow:0 10px 26px rgba(26,21,18,.28);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s}
.wa-totop.is-visible{opacity:1;visibility:visible;transform:none}
.wa-totop:hover{background:var(--wa-orange);color:#fff}
.wa-totop svg{width:22px;height:22px}

@media (max-width:640px){
  .wa-float span{display:none}
  .wa-float{padding:.9rem}
  .wa-totop{bottom:74px}
}
@media (prefers-reduced-motion:reduce){
  .wa-signal circle{animation:none}
  .wa-reveal{opacity:1;transform:none;transition:none}
}
