/* Réduc Valide — styles communs à toutes les pages */

/* Polices hébergées sur le site (SIL Open Font License 1.1, voir fonts/LICENCE.txt) : aucune connexion à Google */
@font-face{font-family:'Figtree';font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/figtree-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Figtree';font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/figtree-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:700 900;font-display:swap;src:url(fonts/fraunces-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:700 900;font-display:swap;src:url(fonts/fraunces-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600 700;font-display:swap;src:url(fonts/jetbrains-mono-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600 700;font-display:swap;src:url(fonts/jetbrains-mono-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}


:root{
  --bg:#FFF0F4; --soft:#FFE6EE; --line:#F7D6E1; --line-2:#FCE7EE; --tag:#FDE8EF; --panel:#FFF7F9;
  --text:#6B5560; --muted:#7B606C;
  --brand:#8A1E48; --brand-2:#B3285A; --brand-3:#6D1339; --fold:#7A1A40;
  --ok:#156B48; --ok-bg:#E3F4EA; --live:#5FD08A; --warn:#8A5A23; --err:#A4262C;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --gutter:80px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.5}
a{color:var(--brand)}
a:hover{color:var(--brand-2)}
img{max-width:100%;height:auto;display:block}
button,input{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3,p{margin:0}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--brand-2);outline-offset:2px}
.wrap{max-width:1440px;margin:0 auto;padding-inline:var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;z-index:100;padding:10px 16px;border-radius:10px;background:var(--brand);color:#fff;font-weight:700;text-decoration:none}
.skip:focus{top:12px;color:#fff}
.hero h1,.store-card h1,.page-head h1,.h2-serif,.home-text h2,.guide-card h2,.guide-card h3,.art-main h3,.art-row h3{text-wrap:balance}

/* ---------- Bandeau du haut ---------- */
.topbar{display:flex;align-items:center;justify-content:center;gap:10px;min-height:36px;padding:6px 16px;background:var(--brand-3);color:var(--soft);font-size:13px;text-align:center}
.topbar strong{color:#fff}
.live-dot{display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--live);flex-shrink:0}

/* ---------- En-tête et navigation ---------- */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.site-header.is-scrolled{box-shadow:0 8px 20px -18px rgba(109,19,57,.6)}
.header-in{display:flex;align-items:center;gap:36px;min-height:72px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.logo span{font-family:var(--serif);font-weight:900;font-size:22px;color:var(--brand)}
.logo em{font-style:normal;color:var(--brand-2)}
.menu{display:contents}
.nav{display:flex;gap:26px;font-size:15px;font-weight:700}
.nav a{padding:6px 0;border-bottom:2px solid transparent;text-decoration:none}
.nav a:hover{color:var(--brand-2)}
.nav a[aria-current="page"]{color:var(--brand-2);border-bottom-color:var(--brand-2)}
.search{position:relative;margin-left:auto;width:320px}
.search-box{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;background:var(--bg);border:1px solid var(--line);border-radius:999px}
.search-box:focus-within{background:#fff;border-color:var(--brand-2)}
.search input{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:15px}
.search input::placeholder{color:var(--muted)}
.suggest{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:5;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 32px -20px rgba(138,30,72,.5)}
.suggest a{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;border-radius:10px;font-size:15px;font-weight:600;color:var(--brand-3);text-decoration:none}
.suggest small{font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}
.suggest a:hover,.suggest a.is-active{background:var(--bg)}
.menu-btn{display:none;margin-left:auto;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--brand);align-items:center;justify-content:center}
.menu-btn .i-close{display:none}
.menu-btn[aria-expanded="true"] .i-open{display:none}
.menu-btn[aria-expanded="true"] .i-close{display:block}

/* ---------- Éléments communs ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border:0;border-radius:12px;background:var(--brand-2);color:#fff;font-size:16px;font-weight:800;text-decoration:none}
.btn:hover{background:var(--brand);color:#fff}
.btn-ghost{display:flex;align-items:center;width:max-content;min-height:48px;margin:0 auto;padding:0 24px;border:1.5px solid var(--brand);border-radius:12px;font-weight:700;text-decoration:none}
.btn-ghost:hover{background:var(--brand);color:#fff}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{display:flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--brand);font-size:14px;font-weight:700;white-space:nowrap}
.chip:hover{border-color:var(--brand-2)}
.chip[aria-pressed="true"]{border-color:var(--brand);background:var(--brand);color:#fff}
.eyebrow{font-size:15px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-3)}
.kicker{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-2)}
.tested{font-size:13px;font-weight:600;color:var(--ok)}
.crumbs{display:flex;flex-wrap:wrap;gap:6px;padding:20px 0 18px;font-size:13px;color:var(--muted)}

/* Bouton « Voir le code » (languette pliée) */
.reveal{position:relative;display:block;width:100%;height:54px;padding:0;border:2px dashed var(--brand-2);border-radius:12px;background:var(--bg);overflow:hidden;text-decoration:none}
.reveal .peek{position:absolute;top:0;right:12px;bottom:0;display:flex;align-items:center;font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:.08em;color:var(--brand)}
.reveal .face{position:absolute;top:-2px;left:-2px;bottom:-2px;right:58px;display:flex;align-items:center;justify-content:center;border-radius:12px 0 0 12px;background:var(--brand-2);color:#fff;font-size:16px;font-weight:800}
.reveal .corner{position:absolute;top:-2px;right:58px;width:22px;height:22px;border-radius:0 0 0 6px;background:linear-gradient(225deg,var(--bg) 50%,var(--fold) 50%)}
.reveal:hover .face{background:var(--brand)}
.reveal.is-deal .face{right:-2px;border-radius:12px;background:var(--brand)}
.reveal.is-deal:hover .face{background:var(--brand-3)}
/* Une offre sans code n'a rien à dévoiler : bordure pleine, les pointillés restent le signe « code ». */
.reveal.is-deal{border-style:solid;border-color:var(--brand)}
.reveal.is-deal:hover{border-color:var(--brand-3)}
.reveal.is-sm.is-deal .face{right:-2px;border-radius:10px}
.reveal.is-sm{width:180px;height:48px;border-radius:10px}
.reveal.is-sm .peek{right:10px;font-size:13px;letter-spacing:.06em}
.reveal.is-sm .face{right:48px;border-radius:10px 0 0 10px;font-size:14px}
.reveal.is-sm .corner{right:48px;width:18px;height:18px;border-radius:0 0 0 5px}

/* ---------- Accueil : hero ---------- */
.hero{padding:48px 0 40px}
.hero-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:32px}
.hero-copy{grid-column:span 5;display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding-top:8px}
.pill-ok{display:inline-flex;padding:6px 12px;border-radius:999px;background:var(--ok-bg);color:var(--ok);font-size:13px;font-weight:700}
.hero h1{font-family:var(--serif);font-size:48px;font-weight:800;line-height:1.04;letter-spacing:-.025em;color:var(--brand)}
.lead{font-size:18px;line-height:1.55}
.top-codes{grid-column:7 / span 6;display:flex;flex-direction:column;gap:10px}
.top-codes-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.top-codes-head a{font-size:14px;font-weight:700;white-space:nowrap}
.code{display:flex;align-items:stretch;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:14px}
.code.is-top{border:2px solid var(--brand-2)}
.code-val{width:120px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px;background:var(--soft);border-right:2px dashed var(--line);text-align:center}
.code-val b{font-family:var(--serif);font-size:28px;font-weight:800;line-height:1;color:var(--brand)}
.code-val span{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-3)}
.code-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:12px 16px}
.code-body h3{font-size:16px;font-weight:700;color:var(--brand-3)}
.code-cta{display:flex;align-items:center;padding-right:16px}

/* ---------- Cartes boutiques ---------- */
.stores{padding:0 0 56px}
.stores .eyebrow{margin-bottom:16px}
.store-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.store{display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:16px;color:var(--text);text-decoration:none}
.store:hover{border-color:var(--brand-2);color:var(--text)}
.store-ico{width:48px;height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:12px;color:#fff;font-size:18px;font-weight:800}
.store-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.store-txt b{font-size:17px;font-weight:800;line-height:1.25;color:var(--brand-3)}
.store-txt span{font-size:13px}
.store-txt strong{color:var(--brand-2)}

/* ---------- Articles ---------- */
.articles{padding:64px 0;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.articles-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:22px}
.articles-head p{margin-top:6px;font-size:16px}
.h2-serif{font-family:var(--serif);font-size:40px;font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--brand)}
.art-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:22px}
.art{color:var(--text);text-decoration:none}
.art:hover{color:var(--text)}
.art:hover h3{text-decoration:underline;text-underline-offset:3px}
.art-main{display:flex;flex-direction:column;gap:12px}
.ph{display:flex;align-items:center;justify-content:center;border-radius:18px;background:var(--soft);color:var(--muted);font-size:14px;text-align:center}
.art-main .ph{aspect-ratio:16/9}
.cat{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-2)}
.art-main h3{font-family:var(--serif);font-size:30px;font-weight:800;line-height:1.15;color:var(--brand)}
.art-main p{font-size:16px;line-height:1.55}
.meta{font-size:13px;color:var(--muted)}
.art-side{display:flex;flex-direction:column;gap:18px}
.art-row{display:flex;gap:18px}
.art-row .ph{width:180px;height:116px;flex-shrink:0;border-radius:14px;font-size:12px}
.art-row > div:last-child{display:flex;flex-direction:column;gap:6px}
.art-row h3{font-family:var(--serif);font-size:20px;font-weight:700;line-height:1.25;color:var(--brand)}

/* ---------- Texte SEO de l'accueil ---------- */
.home-text{padding:72px 0}
.home-text-in{max-width:843px;margin:0 auto;font-size:17px;line-height:1.75}
.home-text-in > * + *{margin-top:18px}
.home-text h2{font-family:var(--serif);font-size:34px;font-weight:800;line-height:1.2;color:var(--brand)}
.home-text h3{margin-top:32px;font-size:22px;font-weight:800;line-height:1.3;color:var(--brand-3)}
.home-text ul{padding-left:22px}
.home-text li + li{margin-top:6px}

/* ---------- Page boutique ---------- */
.store-layout{display:grid;grid-template-columns:minmax(0,296fr) minmax(0,952fr);grid-template-rows:auto 1fr auto;grid-template-areas:"card codes" "side codes" ". guide";column-gap:32px;padding-bottom:80px}
.store-card{grid-area:card;display:flex;flex-direction:column;gap:14px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:20px}
.store-logo{display:flex;align-items:center;justify-content:center;height:150px;padding:8px;border-radius:16px;color:#fff;font-size:18px;font-weight:800;text-align:center}
.store-card h1{font-family:var(--serif);font-size:28px;font-weight:800;line-height:1.12;letter-spacing:-.01em;color:var(--brand)}
.store-live{display:none;align-items:center;gap:6px;margin-top:3px;font-size:12px;font-weight:700;color:var(--ok)}
.store-intro{font-size:14px;line-height:1.55}
.tested-by{display:flex;align-items:center;gap:10px;padding-top:12px;border-top:1px solid var(--line-2);font-size:13px}
.avatar{width:34px;height:34px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--soft);color:var(--brand);font-size:12px;font-weight:800}
.store-side{grid-area:side;align-self:start;display:flex;flex-direction:column;gap:16px;margin-top:16px}
.box{padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:20px}
.box strong.box-title{display:block;margin-bottom:10px;font-size:15px;color:var(--brand-3)}
.box p{font-size:14px;line-height:1.55}
.stats{padding:8px 22px;font-size:14px}
.stats div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-2)}
.stats div:last-child{border-bottom:0}
.stats strong{color:var(--brand-3)}
.stats .is-best{color:var(--brand-2)}
.stats .is-ok{color:var(--ok)}
.alert-form{display:flex;flex-direction:column;gap:10px;padding:20px 22px;background:var(--soft);border-radius:20px}
.alert-form strong{font-size:15px;color:var(--brand-3)}
.alert-form label{font-size:13px}
.alert-form input{min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:15px}
.alert-form button{min-height:44px;border:0;border-radius:10px;background:var(--brand);color:#fff;font-size:14px;font-weight:700}
.alert-form button:hover{background:var(--brand-3)}

.codes-col{grid-area:codes;display:flex;flex-direction:column;gap:16px;min-width:0}
.codes-bar{display:flex;align-items:center;justify-content:space-between;gap:16px}
.codes-bar .sort{font-size:13px;color:var(--muted);white-space:nowrap}
.offers{display:flex;flex-direction:column;gap:16px}

/* Carte d'une offre */
.offer{display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:18px}
.offer.is-top{border:2px solid var(--brand);box-shadow:0 20px 40px -24px rgba(138,30,72,.55)}
.offer-band{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 22px;background:var(--brand);color:#fff;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.offer-band span + span{font-weight:600;letter-spacing:0;text-transform:none;color:var(--soft)}
.offer-row{display:flex;align-items:stretch}
.offer-val{width:170px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:20px;text-align:center}
.offer.is-top .offer-val{background:var(--soft)}
.offer-val b{font-family:var(--serif);font-size:40px;font-weight:900;line-height:1;letter-spacing:-.02em;color:var(--brand)}
.offer.is-top .offer-val b{font-size:48px}
.offer-val span{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-3)}
.offer-sep{width:0;margin:14px 0;border-left:2px dashed var(--line)}
.offer-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:20px 24px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{padding:3px 9px;border-radius:6px;background:var(--tag);color:var(--brand-2);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.tag.is-code{background:var(--brand);color:#fff}
.tag.is-deal{background:var(--ok-bg);color:var(--ok)}
.offer-body h2,.offer-body h3{font-size:20px;font-weight:800;line-height:1.3;color:var(--brand-3)}
.offer-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:13px}
.offer-meta .ok{display:inline-flex;align-items:center;gap:5px;font-weight:700;color:var(--ok)}
.offer-meta .exp{font-weight:600;color:var(--warn)}
.offer-cta{width:250px;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:20px 24px 20px 0}
.terms-btn{min-height:32px;border:0;background:transparent;color:var(--brand);font-size:13px;font-weight:700}
.terms{padding:14px 24px 18px;background:var(--panel);border-top:1px dashed var(--line);font-size:14px;line-height:1.55}
.report{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border:1px dashed var(--line);border-radius:14px;font-size:14px}
.report a{font-weight:700;white-space:nowrap}

/* Guide sous les codes */
.guide-card{grid-area:guide;display:flex;flex-direction:column;gap:28px;margin-top:64px;padding:48px 56px;background:#fff;border:1px solid var(--line);border-radius:22px;font-size:17px;line-height:1.7}
.guide-head{display:flex;flex-direction:column;gap:10px}
.guide-card h2{font-family:var(--serif);font-size:36px;font-weight:800;line-height:1.15;color:var(--brand)}
.byline{font-size:14px;color:var(--muted)}
.byline a{font-weight:700}
.guide-more{display:flex;flex-direction:column;gap:28px}
.toc{display:flex;flex-direction:column;gap:6px;padding:18px 22px;background:var(--bg);border-radius:14px;font-size:15px}
.toc strong{color:var(--brand-3)}
.guide-card section{display:flex;flex-direction:column;gap:12px}
.guide-card h3{font-family:var(--serif);font-size:26px;font-weight:800;line-height:1.25;color:var(--brand)}
.guide-card ul,.guide-card ol{margin:0;padding-left:22px}
.guide-card li + li{margin-top:6px}
.guide-card .ph{height:200px;border-radius:14px}
.note{font-size:14px;color:var(--muted)}
.table-wrap{overflow-x:auto}
.guide-card table{width:100%;border-collapse:collapse;font-size:15px}
.guide-card th{padding:12px 16px;background:var(--brand);color:#fff;text-align:left;white-space:nowrap}
.guide-card td{padding:12px 16px;border-bottom:1px solid var(--line-2)}
.guide-card tr:last-child td{border-bottom:0}
.guide-card td:first-child{font-weight:700;color:var(--brand-3)}
.faq details{padding:16px 0;border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;gap:16px;list-style:none;font-size:17px;font-weight:700;color:var(--brand-3);cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"▾";flex-shrink:0;color:var(--brand)}
.faq details[open] summary::after{content:"▴"}
.faq details p{margin-top:10px;font-size:16px;line-height:1.65}
.guide-toggle{display:none;align-self:flex-start;padding:0;border:0;background:none;color:var(--brand);font-weight:700;text-decoration:underline}

/* Page « Boutiques » */
.page-head{display:flex;flex-direction:column;gap:10px;padding-bottom:28px}
.page-head h1{font-family:var(--serif);font-size:44px;font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--brand)}
.page-head p{font-size:18px}

/* ---------- Pied de page ---------- */
.footer{padding:56px 0 40px;background:var(--brand-3);color:var(--soft);font-size:15px;line-height:1.7}
.footer-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:28px 32px}
.footer-brand{grid-column:span 4;display:flex;flex-direction:column;gap:8px}
.footer-brand b{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:24px;font-weight:900;color:#fff}
.footer-brand b svg{flex:none}
.footer-brand b em{font-style:normal;color:#FFC7DA}
.footer nav{grid-column:span 2;display:flex;flex-direction:column}
.footer nav:first-of-type{grid-column:6 / span 2}
.footer strong{color:#fff}
.footer a{color:var(--soft)}
.footer a:hover{color:#fff}
.footer .legal{grid-column:1 / -1;padding-top:20px;border-top:1px solid var(--brand);font-size:13px}

/* ---------- Fenêtre « code révélé » ---------- */
.modal{width:min(560px,calc(100% - 32px));max-height:calc(100% - 32px);padding:0;border:0;border-radius:24px;background:#fff;color:var(--text);box-shadow:0 40px 80px -30px rgba(77,12,40,.6)}
.modal::backdrop{background:rgba(77,12,40,.55)}
.modal-grip{display:none;justify-content:center;padding-top:10px}
.modal-grip span{width:44px;height:5px;border-radius:999px;background:var(--line)}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 0 24px}
.modal-store{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:700;color:var(--brand-3)}
.modal-logo{width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:10px;color:#fff;font-size:18px;font-weight:800}
.modal-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:999px;background:var(--bg);color:var(--brand)}
.modal-body{display:flex;flex-direction:column;align-items:center;gap:14px;padding:18px 36px 28px;text-align:center}
.m-big{font-family:var(--serif);font-size:56px;font-weight:900;line-height:1;color:var(--brand)}
.m-title{font-size:20px;font-weight:800;line-height:1.3;color:var(--brand-3)}
.copy-box{width:100%;display:flex;align-items:stretch;margin-top:6px;overflow:hidden;border:2px dashed var(--brand-2);border-radius:14px;background:var(--bg)}
.m-code{flex:1;display:flex;align-items:center;justify-content:center;min-height:64px;padding:0 12px;font-family:var(--mono);font-size:26px;font-weight:700;letter-spacing:.12em;color:var(--brand-3);word-break:break-all}
.m-copy{min-width:130px;border:0;background:var(--brand-2);color:#fff;font-size:16px;font-weight:800}
.m-copy.is-done{background:var(--ok)}
/* Réussite : annoncée aux lecteurs d'écran seulement (le bouton dit déjà « Copié ✓ »).
   Échec : visible, avec la marche à suivre. */
.m-copy-msg:not(.is-warn){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.m-copy-msg.is-warn{padding:10px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--line);font-size:14px;font-weight:600;line-height:1.45;color:var(--warn)}
.m-tested{font-size:14px;font-weight:700;color:var(--ok)}
.m-go{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;border-radius:14px;background:var(--brand);color:#fff;font-size:16px;font-weight:800;text-decoration:none}
.m-go:hover{background:var(--brand-3);color:#fff}
.m-hint{font-size:13px;color:var(--muted)}
.modal-foot{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 24px;background:var(--panel);border-top:1px solid var(--line-2);font-size:14px;font-weight:700;color:var(--brand-3)}
.vote{min-height:40px;padding:0 16px;border:1px solid;border-radius:999px;font-size:14px;font-weight:700}
.vote.yes{border-color:#BFE3CE;background:var(--ok-bg);color:var(--ok)}
.vote.no{border-color:#F3D9B8;background:#FFEEDA;color:var(--warn)}

/* ---------- Tablette ---------- */
@media (max-width:1200px){
  :root{--gutter:40px}
  .header-in{gap:24px}
  .search{width:250px}
  .hero-copy{grid-column:span 6}
  .top-codes{grid-column:span 6}
  .hero h1{font-size:42px}
  .store-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .offer-val{width:140px}
  .offer-cta{width:220px}
  .guide-card{padding:40px}
}

@media (max-width:980px){
  .menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:12px;max-height:calc(100vh - 100px);overflow:auto;padding:12px var(--gutter) 20px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 16px 32px -24px rgba(109,19,57,.6)}
  .site-header.is-open .menu{display:flex}
  .menu-btn{display:flex}
  .nav{flex-direction:column;gap:0}
  .nav a{display:flex;align-items:center;min-height:48px;padding:0;border-bottom:1px solid var(--line-2);font-size:17px}
  .nav a[aria-current="page"]{border-bottom-color:var(--line-2)}
  .search{order:-1;width:auto;margin:0}
  .suggest{position:static;margin-top:8px;box-shadow:none}
  .hero-copy,.top-codes{grid-column:1 / -1}
  .top-codes{margin-top:32px}
  .art-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .footer-brand{grid-column:1 / -1}
  .footer nav,.footer nav:first-of-type{grid-column:auto}

  .store-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"card" "codes" "side" "guide"}
  .store-card{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:8px 12px;padding:0 0 16px;background:none;border:0;border-radius:0}
  .store-logo{width:56px;height:56px;padding:4px;border-radius:14px;font-size:10px;line-height:1.2}
  .store-card h1{font-size:24px;line-height:1.15;letter-spacing:0}
  .store-live{display:flex}
  .store-intro,.tested-by{grid-column:1 / -1}
  .store-intro{font-size:15px}
  .tested-by{padding-top:4px;border-top:0}
  .store-side{margin-top:32px;display:grid;grid-template-columns:1fr 1fr}
  .store-side .alert-form{grid-column:1 / -1}
  .guide-card{margin-top:40px}
}

/* ---------- Mobile ---------- */
@media (max-width:760px){
  .codes-bar .sort{display:none}
  .codes-bar .chips{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter);scrollbar-width:none}
  .codes-bar .chips::-webkit-scrollbar{display:none}
  .codes-col,.offers{gap:12px}
  .offer{border-radius:16px}
  .offer.is-top{box-shadow:0 16px 32px -20px rgba(138,30,72,.5)}
  .offer-band{padding:7px 14px;font-size:11px}
  .offer-band span + span{display:none}
  .offer-row{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;column-gap:14px;padding:14px}
  .offer-sep{display:none}
  .offer-val,.offer.is-top .offer-val{width:auto;padding:0 12px 0 0;background:none;border-right:2px dashed var(--line)}
  .offer-val b,.offer.is-top .offer-val b{font-size:26px}
  .offer-val b.is-word,.offer.is-top .offer-val b.is-word{font-size:20px}
  .offer-val span{font-size:10px;letter-spacing:.06em}
  .offer-body{gap:4px;padding:0}
  .tag{padding:2px 7px;border-radius:5px;font-size:10px}
  .tag.is-code,.tag.is-deal{display:none}
  .offer-body h2,.offer-body h3{font-size:15px}
  .offer-meta{gap:2px 10px;font-size:12px}
  .offer-cta{grid-column:1 / -1;width:auto;gap:2px;padding:12px 0 0}
  .offer-cta .reveal{height:50px}
  .terms{padding:12px 14px 14px}
  .report{flex-direction:column;align-items:flex-start;gap:6px}
  .store-side{grid-template-columns:1fr}
  .store-layout{padding-bottom:0}
  .guide-card{gap:22px;margin:32px calc(-1 * var(--gutter)) 0;padding:24px var(--gutter) 40px;border-width:1px 0 0;border-radius:0;font-size:16px;line-height:1.65}
  .guide-card h2{font-size:26px;line-height:1.2}
  .guide-card h3{font-size:22px}
  .js .guide-card:not(.is-open) .guide-more{display:none}
  .js .guide-toggle{display:inline-flex}
  .guide-card th,.guide-card td{padding:10px 12px}
}

@media (max-width:620px){
  :root{--gutter:16px}
  .topbar{font-size:12px}
  .header-in{min-height:60px}
  .logo svg{width:28px;height:28px}
  .logo span{font-size:19px}
  .hero{padding:28px 0 32px}
  .hero h1{font-size:38px}
  .lead{font-size:17px}
  .hero-copy .btn{align-self:stretch}
  .code{flex-wrap:wrap}
  .code-val{width:104px;padding:12px 8px;border-right:0}
  .code-body{padding:12px 14px}
  .code-cta{flex-basis:100%;padding:0 14px 14px}
  .reveal.is-sm{width:100%;height:50px}
  .reveal.is-sm .face{font-size:16px}
  .store-grid{grid-template-columns:1fr}
  .articles{padding:48px 0}
  .h2-serif{font-size:30px}
  .art-main h3{font-size:24px}
  .art-row .ph{width:112px;height:88px}
  .art-row h3{font-size:17px}
  .home-text{padding:48px 0}
  .home-text-in{font-size:16px;line-height:1.7}
  .home-text h2{font-size:28px}
  .page-head h1{font-size:32px}
  .store-card h1{font-size:22px}
  .page-head p{font-size:16px}
  .footer-grid{grid-template-columns:1fr 1fr}

  .modal{width:100%;max-width:100%;max-height:92vh;margin:auto 0 0;border-radius:26px 26px 0 0}
  .modal-grip{display:flex}
  .modal-head{padding:8px 12px 0 20px}
  .modal-logo{width:38px;height:38px;border-radius:9px;font-size:16px}
  .modal-body{gap:12px;padding:12px 20px 22px}
  .m-big{font-size:52px}
  .m-title{font-size:18px}
  .m-code{min-height:60px;font-size:22px;letter-spacing:.1em}
  .m-copy{min-width:104px;font-size:15px}
  .modal-foot{gap:10px;padding:14px 20px 28px}
  .vote{min-height:44px;padding:0 18px}
}
