/* Feuille commune aux pages PRODUIT de saywa.fr.
   ------------------------------------------------------------------------
   Les jetons ci-dessous sont RELEVES sur la page d'accueil, pas inventes :
   meme bleu d'action, meme couple Fraunces / Inter, memes rayons. Une page
   produit qui invente sa palette abime l'ensemble — chaque ecran reste
   defendable et le site cesse de tenir.

   Un seul fichier, partage : une copie par page derive des la premiere
   retouche, et c'est exactement ce que le releve du 10/08 a constate sur ce
   site (12 tailles de texte, 6 rayons, espacements en 5/7/9/13 px).

   L'accueil garde son CSS en ligne : il n'est pas touche ici. */

:root{
  --ink:#0A0E1A;--body:#222B3A;--muted:#586278;--faint:#6B768D;
  --line:#E7EAF1;--line2:#EFF1F7;--surface:#F6F8FC;--surface2:#FBFCFE;
  --accent:#1F4DFF;--accentHover:#173FDB;--accentDeep:#1430A4;--accentSoft:#ECF0FF;
  --gold:#C39A3F;--goldDeep:#866721;--goldSoft:#F7EFDA;
  --r:14px;--rl:20px;
  --shadow:0 1px 2px rgba(10,14,26,.04),0 10px 30px rgba(10,14,26,.07);
  --shadowL:0 26px 64px rgba(10,14,26,.14);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:#fff;color:var(--body);font-family:Inter,ui-sans-serif,system-ui,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;line-height:1.55;font-size:16px}
a{color:inherit;text-decoration:none}
img,video{max-width:100%;display:block}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
h1,h2,h3,.display{font-family:Fraunces,Georgia,serif;color:var(--ink);font-weight:500;letter-spacing:-.01em}
h1{font-size:clamp(38px,5.6vw,60px);line-height:1.05;letter-spacing:-.025em;font-weight:500;text-wrap:balance}
h2{font-size:clamp(28px,3.6vw,38px);line-height:1.1;text-wrap:balance}
h3{font-size:19px;line-height:1.25}
p{max-width:66ch}
.eyebrow{font-family:Inter;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accentDeep)}
.eyebrow.g{color:var(--goldDeep)}
.sub{color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:9px;border-radius:12px;background:var(--accent);color:#fff;padding:13px 22px;font-size:14.5px;font-weight:600;font-family:Inter;transition:transform .18s,background .2s,box-shadow .2s;box-shadow:0 8px 22px rgba(31,77,255,.28)}
.btn:hover{background:var(--accentHover);transform:translateY(-1px);box-shadow:0 12px 28px rgba(31,77,255,.36)}
.btn:active{transform:translateY(0)}
.ghost{display:inline-flex;align-items:center;gap:8px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:12px 20px;font-size:14.5px;font-weight:500;font-family:Inter;transition:.2s}
.ghost:hover{border-color:var(--accent);color:var(--accentDeep);background:var(--accentSoft)}
.badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;background:var(--accentSoft);color:var(--accentDeep);padding:6px 14px;font-size:12.5px;font-weight:600;font-family:Inter}
.badge.gold{background:var(--goldSoft);color:var(--goldDeep)}
.chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--line);background:#fff;padding:5px 12px;font-size:12.5px;font-weight:500;color:var(--muted)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accentSoft);display:inline-block}
.logo{display:flex;align-items:center;gap:11px;font-family:Inter;font-weight:700;font-size:19px;letter-spacing:-.02em;color:var(--ink)}
.logo .mk{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--accent);color:#fff;box-shadow:0 6px 14px rgba(31,77,255,.38)}
.mkico{width:20px;height:20px}

/* Le focus clavier doit se VOIR : sur l'accueil rien ne le marque, une page
   qu'on ne peut pas parcourir au clavier exclut une partie des lecteurs. */
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}

header{position:sticky;top:0;z-index:30;border-bottom:1px solid transparent;background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(14px);transition:border-color .3s,box-shadow .3s}
/* Meme correction que sur l'accueil : le bandeau d'installation se pose a
   10 px du haut, ce qui recouvre un en-tete collant. On decale chez l'HOTE. */
body .saywa-install{top:calc(91px + env(safe-area-inset-top))}
header.scrolled{border-color:var(--line);box-shadow:0 1px 0 rgba(10,14,26,.02)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 24px}
header nav{display:none;gap:28px;font-family:Inter;font-size:14.5px;color:var(--muted);font-weight:450}
header nav a:hover{color:var(--ink)}
@media(min-width:900px){header nav{display:flex}}

section{padding:80px 0}
.alt{background:linear-gradient(180deg,var(--surface2),var(--surface));border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

.hero{position:relative;overflow:hidden;padding:64px 0 56px}
.hero::before{content:"";position:absolute;inset:-25% -10% auto -15%;height:600px;z-index:0;
  background:radial-gradient(54% 60% at 16% 14%,rgba(31,77,255,.16),transparent 60%),radial-gradient(48% 52% at 94% 4%,rgba(195,154,63,.14),transparent 60%)}
.hero .wrap{position:relative;z-index:1;display:grid;gap:38px;align-items:center}
.hero p.lead{margin-top:22px;max-width:58ch;font-size:18.5px;color:var(--muted)}
.hcta{margin-top:32px;display:flex;flex-wrap:wrap;gap:13px}
/* L'image vient APRES le texte dans le document : sur un telephone, une image
   posee avant le titre repousse la promesse hors du premier ecran. En deux
   colonnes, `order` la ramene a droite sans toucher a l'ordre de lecture. */
.hfig{margin:0}
.hfig img{width:100%;height:auto;border-radius:20px;
  box-shadow:0 40px 80px -40px rgba(12,20,44,.45),0 2px 0 rgba(255,255,255,.6) inset}
.hfig figcaption{margin-top:10px;font-size:12.5px;color:var(--muted);max-width:44ch}
@media(min-width:980px){
  .hero .wrap{grid-template-columns:1.05fr .95fr}
  .hfig{order:2}
}

.sec-h{margin-bottom:40px}
.sec-h h2{margin:14px 0 12px}
.sec-h p{color:var(--muted);font-size:17px}

/* Grilles. Un seul motif, decline par le nombre de colonnes demande. */
.grid{display:grid;gap:18px}
.grid.c2{grid-template-columns:1fr}
.grid.c3{grid-template-columns:1fr}
@media(min-width:720px){.grid.c2{grid-template-columns:1fr 1fr}.grid.c3{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.grid.c3{grid-template-columns:repeat(3,1fr)}}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--rl);padding:26px;box-shadow:var(--shadow)}
.card h3{margin-bottom:8px}
.card p{color:var(--muted);font-size:14.5px}
.card .n{font-family:Fraunces,Georgia,serif;font-size:34px;color:var(--accent);line-height:1;margin-bottom:12px;display:block}

/* Deux colonnes « ce qui est fait / ce qui ne l'est pas ». La couleur n'est pas
   decorative : elle porte l'information que le texte porte aussi, jamais seule. */
.zones{display:grid;gap:18px}
@media(min-width:820px){.zones{grid-template-columns:1fr 1fr}}
.zone{border-radius:var(--rl);padding:26px;border:1px solid var(--line)}
.zone.oui{background:var(--accentSoft);border-color:rgba(31,77,255,.22)}
.zone.non{background:var(--goldSoft);border-color:rgba(195,154,63,.28)}
.zone h3{margin-bottom:14px}
.zone ul{list-style:none;display:grid;gap:10px}
.zone li{font-size:14.5px;padding-left:26px;position:relative;color:var(--ink)}
.zone li::before{position:absolute;left:0;top:0;font-weight:700}
.zone.oui li::before{content:"✓";color:var(--accentDeep)}
.zone.non li::before{content:"✕";color:var(--goldDeep)}

/* Tableaux : ils debordent sur telephone si on ne leur donne pas leur propre
   ascenseur — le corps de page, lui, ne doit jamais glisser lateralement. */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--rl);background:#fff}
table{border-collapse:collapse;width:100%;font-size:14.5px;min-width:520px}
th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line2);vertical-align:top}
th{font-family:Inter;font-weight:600;color:var(--ink);background:var(--surface2)}
tr:last-child td{border-bottom:none}
td.num{font-variant-numeric:tabular-nums;white-space:nowrap}

.note{border-left:3px solid var(--accent);background:var(--accentSoft);padding:20px 24px;border-radius:0 var(--r) var(--r) 0}
.note.g{border-left-color:var(--gold);background:var(--goldSoft)}
.note p{color:var(--ink);font-size:15px}
.note p + p{margin-top:10px}

.final{text-align:center}
.final h2{margin-bottom:14px}
.final p{margin:0 auto 26px;color:var(--muted);font-size:17px}
.final .hcta{justify-content:center}

footer{background:var(--ink);color:#fff;padding:44px 0}
footer .wrap{display:flex;flex-direction:column;gap:16px}
footer .logo{color:#fff}
footer .links{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px;color:#C4CBDA}
footer .links a:hover{color:#fff}
/* ⚠️ Ce pied de page est SOMBRE, contrairement à celui de l'accueil qui est
   clair. En assombrissant `--faint` pour le rendre lisible sur blanc (3,09
   -> 4,56:1), j'ai fait passer CE texte-ci de 6,24 à 4,22 : sous le seuil.
   Une surface sombre a besoin de sa propre valeur, claire. */
footer .muted{color:#8A93A6}
footer a{color:#C4CBDA}
@media(min-width:820px){footer .wrap{flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap}}
