@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Anton-400.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/InstrumentSans-400-700.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/JetBrainsMono-600.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/JetBrainsMono-700.woff2) format('woff2')}
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#f3eee1;
  --card:#fffdf7;
  --ink:#242e1c;
  --olive:#3a4a28;
  --olive-f:#2c3a20;
  --vert:#5c8a3c;
  --mint:#e9efdc;
  --amber:#c98a2d;
  --stamp:#cdd58a;
  --rouge:#b23d2b;
  --muted:#6e7561;
  --line:#e2dbc8;
  --r:22px;
  --sh:0 1px 3px rgba(36,46,28,.07),0 16px 36px -18px rgba(36,46,28,.24);
  --sh-h:0 2px 6px rgba(36,46,28,.08),0 26px 52px -20px rgba(36,46,28,.34);
}
html{scroll-behavior:smooth}
body{font-family:'Instrument Sans',sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;overflow-x:clip}
a{color:var(--olive);text-decoration:none}
::selection{background:var(--vert);color:#fff}
:focus-visible{outline:2px solid var(--vert);outline-offset:3px}
h1,h2,h3{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.015em}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}

/* ---- header ---- */
.top{background:rgba(243,238,225,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top .wrap{display:flex;justify-content:space-between;align-items:center;height:66px;gap:16px}
.ico{vertical-align:-2px;flex:none}
.logo{display:flex;align-items:center;gap:10px}
.logo-ic{width:38px;height:38px;background:linear-gradient(140deg,var(--vert),var(--olive-f));border-radius:12px;display:grid;place-items:center;color:#f3eee1;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),var(--sh)}
.logo-tx{font-family:'Anton',sans-serif;font-size:1.42rem;color:var(--ink);text-transform:uppercase;letter-spacing:.035em;line-height:1;display:flex;align-items:center}
.logo-tx b{color:var(--vert);font-weight:400;margin:0 5px}
.logo-cbd{color:var(--ink)}
.top nav{display:flex;align-items:center;gap:6px}
.top nav a{font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:9px 14px;border-radius:999px}
.top nav a:hover{color:var(--olive);background:var(--mint)}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--olive);color:#fff !important;border-radius:999px;padding:11px 22px;font-family:'Anton',sans-serif;font-weight:400;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),var(--sh);transition:box-shadow .15s,background .15s}
.top nav a.btn{color:#fff;margin-left:8px}
.top nav a.btn:hover{background:var(--olive-f);color:#fff}
.btn:hover{box-shadow:var(--sh-h);background:var(--olive-f)}

/* ---- hero ---- */
.hero{padding:60px 0 44px;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;top:-120px;right:-80px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(201,138,45,.14),transparent 65%);pointer-events:none}
.hero::after{content:'';position:absolute;bottom:-100px;left:-120px;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,rgba(92,138,60,.13),transparent 65%);pointer-events:none}
.hero .wrap{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 16px;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--olive);box-shadow:var(--sh);margin-bottom:20px}
.hero-art{position:relative}
.hero-art .hero-cut{display:block;width:100%;height:auto;filter:drop-shadow(0 22px 26px rgba(36,46,28,.28))}
.hero h1{font-size:clamp(2.3rem,5.8vw,3.9rem);line-height:1.02}
.hero h1 .g{color:var(--vert)}
.hero p{max-width:540px;margin-top:16px;font-size:1.06rem;color:var(--muted)}
.hero p b{color:var(--ink)}
.hero-cta{margin-top:24px}
.stamp-badge{position:absolute;top:6px;right:-6px;background:rgba(243,238,225,.6);width:112px;height:112px;border-radius:50%;border:2px solid var(--olive);display:grid;place-items:center;text-align:center;color:var(--olive);font-weight:700;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.5;transform:rotate(10deg);padding:12px}
.stamp-badge::after{content:'';position:absolute;inset:6px;border:1px dashed var(--olive);border-radius:50%;opacity:.5}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-top:34px}
.stat{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:18px 22px;display:flex;flex-direction:column;justify-content:center}
.stat b{display:block;font-family:'Anton',sans-serif;font-weight:400;font-size:1.9rem;line-height:1.15}
.stat span{color:var(--muted);font-size:.88rem}
.c1{color:var(--vert)}.c2{color:var(--amber)}.c3{color:var(--olive)}
.hero-b{padding:48px 0 36px}
.crumb{font-size:.82rem;color:var(--muted);margin-bottom:16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.crumb a{color:var(--vert)}
.hero-b .stats{display:flex;flex-wrap:wrap}
.hero-b .stat{min-width:150px}
.hero-b .hero-grid{grid-template-columns:1.15fr .85fr;align-items:center}
.hero-b .hero-solo{grid-template-columns:1fr}
.hero-star-label{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:.78rem;letter-spacing:.07em;text-transform:uppercase;color:var(--amber);margin-bottom:12px}
.codes-solo{grid-template-columns:1fr}
.hero-star .coupon{box-shadow:var(--sh-h)}

/* ---- sections ---- */
section.wrap{padding:46px 20px}
.sec-head{text-align:center;margin-bottom:30px}
.eyebrow{display:inline-flex;align-items:center;gap:7px;background:var(--mint);color:var(--olive);border-radius:999px;padding:6px 16px;font-weight:700;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}
.sec-head h2{font-size:clamp(1.5rem,3.5vw,2.1rem)}
.sec-head p{color:var(--muted);max-width:560px;margin:10px auto 0;font-size:.95rem}

/* ---- coupons ---- */
.codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.coupon{position:relative;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:22px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .18s}
.coupon:hover{box-shadow:var(--sh-h)}
.cp-shop{align-self:flex-start;background:var(--mint);color:var(--olive);border-radius:999px;padding:5px 14px;font-weight:700;font-size:.78rem}
a.cp-shop:hover{background:var(--vert);color:#fff}
.tag{position:absolute;top:-11px;right:18px;display:inline-flex;align-items:center;gap:5px;background:var(--stamp);color:var(--ink);border-radius:9px;padding:4px 12px;font-weight:800;font-size:.72rem;transform:rotate(-3deg);box-shadow:var(--sh)}
.cp-offre{font-family:'Anton',sans-serif;font-weight:400;font-size:1.5rem;line-height:1.12;letter-spacing:.01em}
.cp-cond{font-size:.85rem;color:var(--muted);margin-top:-4px}
.cp-code{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;font-family:'JetBrains Mono',monospace;font-weight:700;font-size:1.02rem;letter-spacing:.08em;background:var(--mint);border:2px dashed var(--vert);border-radius:14px;color:var(--olive);padding:13px 17px;cursor:pointer;transition:.15s;margin-top:auto}
.cp-code:hover{background:var(--vert);border-color:var(--vert);border-style:solid;color:#fff}
.cp-code.copied{background:var(--vert);border-style:solid;color:#fff}
.cp-deal{justify-content:center;letter-spacing:.02em;font-family:'Instrument Sans',sans-serif;cursor:pointer}
.cp-valid{font-size:.76rem;color:var(--muted);font-weight:600}
.cp-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:32px;flex-wrap:wrap}
.chip{border-radius:999px;padding:4px 12px;font-weight:700;font-size:.75rem}
.chip-ok{background:var(--mint);color:var(--vert)}
.chip-test{background:#fff4cf;color:#7a5a00}
.chip-exp{background:#f6e3df;color:var(--rouge)}
.chip-vote{background:#f3ecd8;color:var(--amber)}
.cp-vote{font-size:.8rem;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:8px}
.vote-btn{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:5px 11px;cursor:pointer;transition:.15s}
.vote-btn:hover{background:var(--mint);border-color:var(--vert);color:var(--olive)}
.cp-go{margin-left:auto;background:var(--olive);color:#fff;border-radius:999px;padding:8px 18px;font-weight:700;font-size:.84rem;transition:box-shadow .15s}
.cp-go::after{content:' →'}
.cp-go:hover{box-shadow:var(--sh)}
.coupon-exp{opacity:.55}
.coupon-exp:hover{transform:none;box-shadow:var(--sh)}
.coupon-exp .cp-code{cursor:default;pointer-events:none}
.coupon-exp .cp-code span{text-decoration:line-through}

/* ---- boutiques ---- */
.bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.bcard{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:16px 20px 20px;display:flex;flex-direction:column;gap:14px;color:var(--ink);transition:box-shadow .18s}
.bcard:hover{box-shadow:var(--sh-h)}
.blogo{flex:none;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #eae5d6;border-radius:14px;padding:8px}
.blogo img{max-width:100%;max-height:100%;object-fit:contain}
a.blogo{cursor:pointer}
.blogo-txt{font-family:'Anton',sans-serif;font-size:1.5rem;color:var(--olive);background:var(--mint);border-color:transparent}
.blogo-stat{width:auto;min-width:150px;max-width:210px;height:auto;align-self:stretch;background:var(--card);border:0;border-radius:var(--r);padding:14px 22px;box-shadow:var(--sh)}
.blogo-stat img{max-height:64px}
.blogo-stat.blogo-txt{font-size:2.4rem}
.bc-vis{position:relative;flex:none;width:100%}
.bc-vis .blogo,.bcard>.blogo{width:100%;height:92px;border-radius:14px;padding:16px}
.bc-vis .blogo img,.bcard>.blogo img{max-width:72%}
.bc-vis .rank{position:absolute;right:10px;bottom:10px;width:24px;height:24px;border-radius:8px;font-size:.76rem;box-shadow:0 1px 4px rgba(0,0,0,.22)}
.cp-head{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.cp-blogo{width:100%;height:76px;border-radius:12px;padding:12px;border-color:#eee9dc}
.cp-blogo img{max-width:62%}
.rank{flex:none;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-family:'Anton',sans-serif;font-size:1.05rem;color:#fff}
.r1{background:var(--olive)}.r2{background:var(--amber)}.r3{background:var(--vert)}.r0{background:var(--ink)}
.bc-nom{font-family:'Anton',sans-serif;font-size:1.05rem;letter-spacing:.02em;text-transform:uppercase;line-height:1.25}
.bc-best{font-size:.88rem;color:var(--vert);font-weight:700;margin-top:4px;min-height:2.6em}
.bc-nb{font-size:.78rem;color:var(--muted);font-weight:600;margin-top:6px}

/* ---- faq ---- */
.faq{max-width:760px;margin:0 auto}
.faq details{background:var(--card);border-radius:16px;box-shadow:var(--sh);padding:16px 22px;margin-bottom:12px}
.faq summary{font-weight:700;font-size:1rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';flex:none;width:26px;height:26px;border-radius:50%;background:var(--mint);color:var(--olive);display:grid;place-items:center;font-size:1.1rem;font-weight:700;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{margin-top:10px;color:var(--muted);font-size:.93rem}

/* ---- fiche boutique ---- */
.bloc{margin-top:36px;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:28px 32px}
.bloc h2{font-size:1.25rem;margin-bottom:14px}
.bloc p{color:var(--muted);margin-bottom:10px}
.bloc p b,.bloc li b{color:var(--ink)}
.bloc ul{margin:4px 0 0 20px;color:var(--muted)}
.bloc li{margin-bottom:9px}
.recap-table{width:100%;border-collapse:collapse;font-size:.95rem}
.recap-table td{padding:10px 12px;border-top:1px solid var(--line)}
.recap-table tr:first-child td{border-top:none}
.recap-table td:first-child{color:var(--muted);width:44%}
.recap-table b{color:var(--olive)}
.recap-table .editorial-em{color:var(--ink);font-weight:700}
.stars{display:inline-flex;gap:1px;vertical-align:-2px;margin-left:6px}
.s-on{color:var(--amber)}
.s-off{color:var(--line)}
.note-badge{display:inline-block;background:var(--mint);color:var(--olive);border-radius:999px;padding:2px 12px;font-size:.85rem;font-family:'Instrument Sans',sans-serif;font-weight:700;vertical-align:3px;margin-left:6px}
.soc-link{font-weight:700;color:var(--vert);margin-right:10px}

/* ---- divers ---- */
.empty{background:var(--card);border:2px dashed var(--line);border-radius:var(--r);padding:34px;text-align:center;color:var(--muted)}
.howto{margin-top:44px;background:var(--mint);border-radius:var(--r);padding:28px 32px}
.howto h2{font-size:1.15rem;margin-bottom:10px}
.howto ol{margin-left:20px;color:var(--muted)}
.back{margin-top:32px;font-weight:700}
.back a{color:var(--vert)}

/* ---- footer ---- */
footer{background:var(--olive-f);color:#cfd6bc;margin-top:56px;padding:40px 0;font-size:.88rem}
footer .fmark{font-family:'Anton',sans-serif;font-size:1.2rem;color:#fff;margin-bottom:10px;text-transform:uppercase;letter-spacing:.04em}
footer .fmark b{color:var(--stamp);font-weight:400}
footer .fine{opacity:.6;font-size:.77rem;margin-top:12px;max-width:760px}
footer a{color:#cfd6bc;text-decoration:underline}
footer p{margin-bottom:6px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:760px){
  .hero-grid,.hero-b .hero-grid{grid-template-columns:1fr}
  .hero-star{margin-top:6px}
  .hero{padding:40px 0 36px}
  .hero-b{padding:36px 0 30px}
}
@media (max-width:600px){
  .hero h1{font-size:1.9rem}
  .sec-head h2{font-size:1.35rem}
  .intro h2,.bloc h2{font-size:1.15rem}
  .bloc{padding:20px 18px}
  .howto{padding:20px 18px}
  .recap-table td{padding:9px 8px;font-size:.88rem}
  section.wrap{padding:34px 16px}
  .cp-offre{font-size:1.3rem}
  .wrap{padding-left:16px;padding-right:16px}
}
@media (max-width:600px){.stats{grid-template-columns:1fr 1fr}.top nav{gap:14px}}
.intro{margin-bottom:34px}
.intro h2{font-size:1.3rem;margin-bottom:12px}
.intro p{color:var(--muted);font-size:1.02rem;line-height:1.7}
.intro b,.intro strong,.bloc p b,.bloc p strong,.bloc li b,.bloc li strong{color:var(--ink);font-weight:700}
.sommaire{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.sommaire a{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-weight:700;font-size:.8rem;color:var(--olive);box-shadow:var(--sh)}
.sommaire a:hover{background:var(--mint);border-color:var(--vert)}
.bloc h3{font-size:1rem;margin:18px 0 6px;letter-spacing:.02em}
.bloc h3:first-of-type{margin-top:8px}
[id]{scroll-margin-top:86px}
.top nav a{display:inline-flex;align-items:center;gap:7px;color:#4a5240}
.top nav a.on{background:var(--mint);color:var(--olive)}
.bc-note{font-size:.78rem;color:var(--amber);font-weight:700;margin-top:3px}
.bc-note .s-off{color:var(--line)}
.logo-mark{flex:none}
.cform{display:flex;flex-direction:column;gap:16px;max-width:640px}
.cform label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:.85rem;color:var(--olive)}
.cform input,.cform select,.cform textarea{font:inherit;font-weight:400;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:11px 14px}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:2px solid var(--vert);outline-offset:1px}
.cform-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cform .btn{align-self:flex-start;border:none;cursor:pointer}
.form-err{background:#f6e3df;color:var(--rouge);border-radius:12px;padding:10px 16px;font-weight:600;margin-bottom:14px}
@media(max-width:600px){.cform-row{grid-template-columns:1fr}}
.burger{display:none;background:none;border:0;cursor:pointer;color:var(--ink);padding:8px;border-radius:10px}
.burger:hover{background:var(--mint)}
.burger .ic-x{display:none}
.top.nav-open .burger .ic-menu{display:none}
.top.nav-open .burger .ic-x{display:block}
@media(max-width:720px){
  .burger{display:block}
  .top nav{display:none;position:absolute;top:66px;left:0;right:0;background:var(--card);border-bottom:1px solid var(--line);box-shadow:var(--sh-h);flex-direction:column;align-items:stretch;padding:12px 16px 18px;gap:4px}
  .top.nav-open nav{display:flex}
  .top nav a{padding:13px 14px;border-radius:12px;font-size:.9rem}
  .top nav a.btn{margin:10px 0 0;justify-content:center}
}
.propose{margin-top:26px;background:var(--card);border:2px dashed var(--line);border-radius:var(--r);padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.propose p{color:var(--muted);margin:0}
.propose b{color:var(--ink)}

/* ---- recherche boutique header ---- */
.hsearch{position:relative;display:flex;align-items:center;flex:1;max-width:250px;min-width:0}
.hsearch svg{position:absolute;left:13px;color:var(--muted);pointer-events:none}
.hsearch input{width:100%;font:inherit;font-size:.85rem;color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:999px;padding:8px 14px 8px 36px;outline:none;transition:border-color .15s}
.hsearch input:focus{border-color:var(--olive)}
.hsearch input::placeholder{color:var(--muted);opacity:.8}
.hsearch-dd{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:300px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-h);overflow:hidden;z-index:30}
.hsearch-dd a,.top nav .hsearch-dd a{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:0;margin:0;font-weight:700;font-size:.85rem;text-transform:none;letter-spacing:0;color:var(--ink)}
.hs-logo{flex:none;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #eee9dc;border-radius:8px;padding:3px}
.hs-logo img{max-width:100%;max-height:100%;object-fit:contain}
.hs-ini{font-family:'Anton',sans-serif;color:var(--olive);background:var(--mint);border-color:transparent}
.hsearch-dd a:hover{background:var(--mint);color:var(--olive)}
.hsearch-empty{padding:10px 16px;font-size:.85rem;color:var(--muted)}
.top nav .hsearch{display:none}
@media (max-width:860px){
  .top .wrap>.hsearch{flex:none;width:165px}
  .top nav a{padding:9px 9px;font-size:.75rem}
  .top nav a.btn{display:none}
}
@media (max-width:720px){.top nav a.btn{display:inline-flex}}
@media (max-width:720px){
  .top .wrap>.hsearch{display:none}
  .top nav .hsearch{display:flex;max-width:none;margin-bottom:8px}
  .top nav .hsearch-dd{width:auto;left:0;right:0;max-width:none}
}

/* ---- maillage interne SEO ---- */
.seolinks{margin-top:44px}
.seolinks h2{font-size:1.05rem;margin-bottom:14px}
footer .fseo{margin-top:10px;font-size:.85rem}
footer .fseo a{color:inherit;text-decoration:underline;text-underline-offset:2px}
