/* =========================================================================
   LEGACY GÉNÉALOGIE — feuille de style unique
   Palette reprise de l'affiche : ivoire, parchemin, or, encre brune.
   ========================================================================= */

:root{
  --encre:#17100A;
  --brun:#3A2A1C;
  --doux:#6B5644;
  --or:#C9A84C;
  --or-p:#8A6B20;
  --or-c:#E3C97F;
  --creme:#FAF6EF;
  --parch:#F3EAD6;
  --lin:#E7D9BC;
  --tabac:#6B4F32;
  --tabac-f:#5A4129;
  --trait:rgba(58,42,28,.16);
  --serif:'Lora', Georgia, serif;
  --sans:'Poppins', system-ui, -apple-system, sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
body{font-family:var(--sans);font-weight:300;color:var(--brun);background:var(--creme);
     line-height:1.72;-webkit-font-smoothing:antialiased;overflow-x:clip}
h1,h2,h3{scroll-margin-top:100px;font-family:var(--serif);font-weight:500;line-height:1.16;
         color:var(--encre);letter-spacing:-.012em}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
button{font-family:inherit}
em.or{font-style:italic;color:var(--or-p)}

:focus-visible{outline:2px solid var(--or-p);outline-offset:3px}
.sombre :focus-visible,.hero :focus-visible,.bande :focus-visible,
footer :focus-visible,.barre :focus-visible{outline-color:var(--or-c)}
.evite{position:absolute;left:-9999px;top:0;background:var(--or);color:var(--encre);
       padding:12px 20px;z-index:200;font-size:.88rem}
.evite:focus{left:8px;top:8px}

.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:740px}

/* ---------- en-tête ---------- */
.topbar{background:var(--tabac-f);color:#F6EBD6;text-align:center;font-size:.75rem;
        letter-spacing:.03em;padding:9px 16px}
.topbar b{color:var(--or);font-weight:500}
header{position:sticky;top:0;z-index:90;background:rgba(250,246,239,.92);
       backdrop-filter:blur(14px);border-bottom:1px solid var(--trait);transition:box-shadow .4s}
header.scrolled{box-shadow:0 8px 30px rgba(23,16,10,.08)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:11px}
.brand img{width:36px;height:36px;object-fit:contain}
.bt{font-family:var(--serif);font-size:1.18rem;letter-spacing:.17em;color:var(--encre)}
.bt small{display:block;font-family:var(--sans);font-size:.48rem;letter-spacing:.4em;
          color:var(--or-p);margin-top:-3px}
.links{display:flex;align-items:center;gap:28px}
.links a{font-size:.87rem;position:relative;padding:5px 0}
.links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
                background:var(--or);transition:width .35s}
.links a:hover::after,.links a.on::after{width:100%}
.links a.on{color:var(--or-p)}
.links a.btn::after{display:none}
.burger{display:none;background:none;border:none;cursor:pointer;padding:8px}
.burger span{display:block;width:23px;height:1.5px;background:var(--encre);margin:5px 0}

/* ---------- boutons ---------- */
.btn{display:inline-block;font-size:.87rem;letter-spacing:.02em;padding:15px 30px;
     cursor:pointer;border:1px solid transparent;transition:all .35s cubic-bezier(.2,.8,.3,1)}
.btn-or{background:var(--or);color:var(--encre)}
.btn-or:hover{background:#dbbd66;transform:translateY(-2px)}
.btn-plein{background:var(--tabac-f);color:var(--creme)}
.btn-plein:hover{background:var(--or-p);transform:translateY(-2px)}
.btn-ligne{border-color:var(--or);color:var(--brun)}
.btn-ligne:hover{background:rgba(201,168,76,.14)}
.btn-clair{border-color:rgba(227,201,127,.65);color:#F6EBD6}
.btn-clair:hover{background:rgba(201,168,76,.14)}

/* ---------- sections ---------- */
section.bloc{padding:100px 0;scroll-margin-top:90px}
.parch{background:var(--parch)}
.sombre{background:var(--tabac);color:#F6EBD6}
.sombre h1,.sombre h2,.sombre h3{color:#FBF3E2}
h2.titre{font-size:clamp(1.9rem,3.8vw,2.75rem)}
.chapo{margin-top:18px;color:var(--doux);font-size:1.04rem;max-width:42em}
.sombre .chapo{color:rgba(246,235,214,.84)}
.kicker{font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--or-p);
        display:block;margin-bottom:16px}
.sombre .kicker{color:var(--or-c)}

/* ---------- hero ---------- */
.hero{background:var(--tabac);color:#F6EBD6;position:relative;overflow:hidden;padding:82px 0 92px}
.hero::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(250,246,239,.07) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(250,246,239,.07) 1px,transparent 1px);
  background-size:52px 52px}
.hero::after{content:"";position:absolute;width:700px;height:700px;right:-240px;top:-280px;
  border-radius:50%;background:radial-gradient(circle,rgba(227,201,127,.18),transparent 62%)}
.hero .wrap{position:relative;z-index:2}
.hg{display:grid;grid-template-columns:1.02fr .98fr;gap:62px;align-items:center}
.hero h1{font-size:clamp(2rem,4.3vw,3.15rem);color:#FBF3E2;line-height:1.1}
.compteur{font-family:var(--serif);font-size:clamp(3.4rem,8vw,5.6rem);color:var(--or-c);
          line-height:.94;display:block;margin:4px 0 10px}
.hero p.sous{margin-top:22px;font-size:1.05rem;color:rgba(246,235,214,.85);max-width:32em}
.hero .cta{display:flex;gap:13px;margin-top:32px;flex-wrap:wrap}
.rassure{margin-top:20px;font-size:.8rem;color:rgba(246,235,214,.78)}

/* ---------- échelle des générations ---------- */
.echelle{background:rgba(243,234,214,.05);border:1px solid rgba(201,168,76,.28);padding:20px 20px}
.ech-tete{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;
          padding-bottom:14px;border-bottom:1px solid rgba(201,168,76,.22);margin-bottom:6px}
.ech-tete p{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--or-c)}
.ech-tete input{background:transparent;border:none;border-bottom:1px solid rgba(201,168,76,.5);
  color:#FBF3E2;font-family:var(--serif);font-size:1.15rem;padding:3px 0;width:160px;
  text-align:right;letter-spacing:.08em}
.ech-tete input:focus{outline:none;border-bottom-color:var(--or)}
.ech-tete input::placeholder{color:rgba(246,235,214,.62);letter-spacing:normal;font-size:.95rem}
.rang{display:grid;grid-template-columns:1fr auto;gap:3px 14px;align-items:baseline;padding:8px 0;
      border-bottom:1px dotted rgba(201,168,76,.18);font-size:.84rem}
.rang:last-child{border-bottom:none}
.rang .gen{font-size:.82rem;color:#F6EBD6;line-height:1.35}
.rang .gen em{font-style:normal;display:block;font-size:.68rem;color:rgba(246,235,214,.72);margin-top:1px}
.rang .nb{justify-self:end;text-align:right}
.rang .noms{grid-column:1 / -1;margin-top:3px}
.rang .noms{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.rang .noms i{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.rang.su .noms i{background:var(--or-c)}
.vide{height:9px;border:1px dashed rgba(246,235,214,.42);border-radius:5px;
      transition:width 1.1s cubic-bezier(.2,.8,.3,1)}
.rang .nb{font-size:.74rem;color:rgba(246,235,214,.78);white-space:nowrap}
.rang .nb b{font-family:var(--serif);font-weight:500;font-size:1.05rem;color:var(--or-c)}
.rang.su .nb{color:rgba(246,235,214,.72)}
.ech-pied{margin-top:12px;padding-top:12px;border-top:1px solid rgba(201,168,76,.22);
          display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.ech-pied span{font-size:.78rem;color:rgba(246,235,214,.8)}
.ech-pied b{font-family:var(--serif);font-size:1.5rem;color:var(--or-c);font-weight:500}

/* ---------- bandeau presse ---------- */
.presse{background:var(--lin);padding:24px 0}
.presse .in{display:flex;align-items:center;justify-content:center;gap:34px;flex-wrap:wrap}
.presse i{font-style:normal;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--or-p)}
.presse b{font-family:var(--serif);font-weight:500;font-size:1rem;color:var(--doux);
  border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.presse a:hover b{color:var(--or-p);border-bottom-color:var(--or)}

/* ---------- fiche archive ---------- */
.fiche{background:var(--parch);color:var(--brun);border:1px solid rgba(201,168,76,.45);
       position:relative;box-shadow:0 26px 64px rgba(0,0,0,.18)}
.f-tete{background:var(--lin);padding:11px 18px;display:flex;justify-content:space-between;
        font-size:.63rem;letter-spacing:.17em;text-transform:uppercase;color:var(--or-p);
        border-bottom:1px solid rgba(201,168,76,.35)}
.f-corps{padding:24px 22px}
.fiche h3{font-size:1.55rem}
.fiche .met{font-size:.84rem;color:var(--doux);margin-bottom:16px}
.f-img{border:1px solid var(--trait);overflow:hidden;aspect-ratio:16/10;margin-bottom:16px}
.f-img img{width:100%;height:100%;object-fit:cover;object-position:center 20%;filter:sepia(.2)}
.f-lig{display:grid;gap:10px;font-size:.85rem}
.f-lig div{display:flex;justify-content:space-between;gap:12px;padding-bottom:8px;
           border-bottom:1px dotted rgba(58,42,28,.2)}
.f-lig s{text-decoration:none;font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;
         color:var(--doux);white-space:nowrap}
.f-lig span{text-align:right;color:var(--encre)}
.sceau{position:absolute;right:-15px;top:-15px;width:74px;height:74px;border-radius:50%;
  background:var(--or);color:var(--encre);display:grid;place-items:center;text-align:center;
  font-family:var(--serif);font-size:.6rem;line-height:1.25;letter-spacing:.05em;
  box-shadow:0 10px 24px rgba(0,0,0,.28);transform:rotate(-10deg)}

/* ---------- listes à filets ---------- */
.filets{border-top:1px solid var(--trait);margin-top:44px}
.filet{display:grid;grid-template-columns:auto 1fr;gap:34px;padding:30px 0;
       border-bottom:1px solid var(--trait);align-items:start}
.filet h3{font-size:1.22rem;max-width:11em}
.filet p{font-size:.95rem;color:var(--doux);max-width:46em}
.filet .idx{font-family:var(--serif);font-size:.9rem;color:var(--or);padding-top:4px}
.filet-2{display:grid;grid-template-columns:1fr 1.5fr;gap:34px}

/* ---------- frise des siècles ---------- */
.siecles{margin-top:52px;position:relative;padding-left:26px}
.siecles::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;
                 background:linear-gradient(var(--or),rgba(201,168,76,.15))}
.siecle{position:relative;padding:0 0 34px 20px}
.siecle::before{content:"";position:absolute;left:-26px;top:9px;width:11px;height:11px;
                border-radius:50%;background:var(--creme);border:1.5px solid var(--or)}
.parch .siecle::before{background:var(--parch)}
.siecle b{font-family:var(--serif);font-size:1.15rem;color:var(--encre);display:block}
.siecle p{font-size:.93rem;color:var(--doux);max-width:44em;margin-top:4px}
.siecle .qui{display:inline-block;margin-top:8px;font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--or-p);border:1px solid rgba(201,168,76,.5);padding:3px 10px}

/* ---------- formules ---------- */
.packs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch;margin-top:46px}
.pack{background:var(--creme);border:1px solid var(--trait);padding:32px 26px;position:relative;
      display:flex;flex-direction:column;transition:transform .4s,box-shadow .4s,border-color .4s}
.pack:hover{transform:translateY(-5px);box-shadow:0 20px 46px rgba(23,16,10,.09);
            border-color:rgba(201,168,76,.5)}
.pack.ved{border:1.5px solid var(--or);box-shadow:0 18px 42px rgba(201,168,76,.15)}
.ruban{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--or);
  color:var(--encre);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  padding:6px 16px;white-space:nowrap}
.pack h3{font-size:1.38rem}
.pack .ep{font-family:var(--serif);font-style:italic;color:var(--or-p);font-size:1rem;margin-top:8px}
.jauge{display:flex;gap:3px;margin:14px 0}
.jauge i{flex:1;height:5px;background:var(--lin)}
.jauge i.f{background:var(--or)}
.anc{background:var(--parch);border-left:2px solid var(--or);padding:11px 14px;margin:6px 0 16px}
.anc b{font-family:var(--serif);font-size:1.5rem;color:var(--encre);display:block;line-height:1.2}
.anc span{font-size:.76rem;color:var(--doux)}
.prix{font-family:var(--serif);font-size:2rem;color:var(--encre)}
.prix small{display:block;font-family:var(--sans);font-size:.76rem;color:var(--doux);
            font-weight:300;margin-top:2px}
.pack ul{list-style:none;margin:20px 0 24px;display:grid;gap:9px}
.pack li{font-size:.88rem;color:var(--doux);padding-left:21px;position:relative}
.pack li::before{content:"";position:absolute;left:0;top:9px;width:10px;height:6px;
  border-left:1.5px solid var(--or);border-bottom:1.5px solid var(--or);transform:rotate(-45deg)}
.pack .btn{margin-top:auto;text-align:center}

/* ---------- recherches sur mesure ---------- */
.panneau{background:var(--creme);border:1px solid var(--trait);padding:30px 26px;height:100%}
.panneau>.ch{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--or-p);
             display:block;margin-bottom:7px}
.panneau h3{font-size:1.3rem;margin-bottom:7px}
.panneau>p{font-size:.92rem;color:var(--doux)}
.lst{list-style:none;display:grid;gap:16px;margin-top:22px;padding-top:21px;border-top:1px solid var(--trait)}
.lst li{font-size:.89rem;color:var(--doux);padding-left:23px;position:relative;line-height:1.6}
.lst li::before{content:"";position:absolute;left:0;top:10px;width:10px;height:6px;
  border-left:1.5px solid var(--or);border-bottom:1.5px solid var(--or);transform:rotate(-45deg)}
.lst b{display:block;font-family:var(--sans);font-weight:500;color:var(--encre);
       font-size:.95rem;margin-bottom:1px}

/* ---------- tableau comparatif ---------- */
.tbl-box{overflow-x:auto;margin-top:44px;border:1px solid var(--trait);background:var(--creme)}
table{width:100%;border-collapse:collapse;min-width:600px;font-size:.89rem}
th,td{padding:14px 16px;text-align:center;border-bottom:1px solid var(--trait)}
thead th{font-family:var(--serif);font-weight:500;font-size:1rem;color:var(--encre);background:var(--parch)}
tbody th{background:transparent;font-family:var(--sans);font-weight:300;font-size:.89rem;
         text-align:left;color:var(--doux)}
tbody tr:hover{background:rgba(201,168,76,.06)}
td.ok{color:var(--or-p)}
td.no{color:rgba(58,42,28,.28)}

/* ---------- avis ---------- */
.avis-g{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:42px}
.avis{border-left:2px solid var(--or);padding:24px 22px;background:var(--creme)}
.avis .et{color:var(--or);letter-spacing:.22em;font-size:.8rem}
.avis blockquote{font-family:var(--serif);font-style:italic;font-size:1rem;line-height:1.72;margin:12px 0 14px}
.avis cite{font-style:normal;font-size:.8rem;color:var(--doux)}
.avis cite b{display:block;font-family:var(--sans);font-weight:500;color:var(--encre)}

.chiffres{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:44px}
.chiffre{text-align:center;padding:26px 14px;border:1px solid rgba(201,168,76,.28)}
.chiffre b{font-family:var(--serif);font-size:1.6rem;color:var(--or-c);display:block}
.chiffre strong{display:block;font-weight:500;font-size:.9rem;margin:6px 0 4px;color:#FBF3E2}
.chiffre span{font-size:.78rem;color:rgba(246,235,214,.78)}

/* ---------- blocs images ---------- */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cadre{border:1px solid var(--trait);background:var(--creme);padding:13px;overflow:hidden}
.cadre img{transition:transform 1.1s cubic-bezier(.2,.8,.3,1)}
.cadre:hover img{transform:scale(1.04)}
.cadre figcaption{font-size:.77rem;color:var(--doux);padding-top:11px;text-align:center}
.carte{background:var(--creme);border:1px solid var(--trait);padding:28px 24px}
.carte h3{font-size:1.14rem;margin-bottom:9px}
.carte p{font-size:.91rem;color:var(--doux)}

.fond{text-align:center}
.fond img{width:146px;height:146px;border-radius:50%;object-fit:cover;margin:0 auto 16px;
          border:1px solid var(--or);padding:5px;background:var(--creme)}
.fond .role{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--or-p)}
.fond h3{font-size:1.26rem;margin:6px 0 12px}
.fond p{font-size:.91rem;color:var(--doux);max-width:33em;margin:0 auto}

/* ---------- formulaire ---------- */
.form{background:var(--creme);border:1px solid var(--trait);padding:32px 28px}
.champ{margin-bottom:17px}
.champ label{display:block;font-size:.78rem;letter-spacing:.05em;color:var(--doux);margin-bottom:6px}
.champ input,.champ select,.champ textarea{width:100%;padding:13px 14px;border:1px solid var(--trait);
  background:#fff;font-family:var(--sans);font-size:.92rem;font-weight:300;color:var(--brun);
  transition:border-color .3s,box-shadow .3s}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--or);
  box-shadow:0 0 0 3px rgba(201,168,76,.16)}
.champ textarea{min-height:112px;resize:vertical}
.coche{display:flex;gap:10px;align-items:flex-start;font-size:.8rem;color:var(--doux);margin-bottom:18px}
.coche input{margin-top:4px;accent-color:var(--or);width:auto}
.form .btn{width:100%;border:none}
.form .btn[disabled]{opacity:.6;cursor:wait}
.pot{position:absolute;left:-9999px;opacity:0;height:0;width:0}

/* ---------- FAQ ---------- */
.qa{border-bottom:1px solid var(--trait)}
.qa button{width:100%;text-align:left;background:none;border:none;padding:21px 40px 21px 0;
  font-size:1rem;font-family:var(--serif);color:var(--encre);cursor:pointer;position:relative}
.qa button::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
  color:var(--or);font-size:1.3rem;transition:transform .35s}
.qa.open button::after{transform:translateY(-50%) rotate(45deg)}
.rep{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.4,0,.2,1)}
.rep p{padding-bottom:21px;font-size:.92rem;color:var(--doux)}

/* ---------- bandes et encadrés ---------- */
.bande{background:var(--tabac);color:#F6EBD6;text-align:center;padding:92px 0}
.bande h2{color:#FBF3E2;font-size:clamp(1.75rem,3.4vw,2.5rem)}
.bande p{margin:16px auto 30px;max-width:38em;color:rgba(246,235,214,.84)}
.encadre{background:var(--parch);border-left:2px solid var(--or);padding:20px 22px;margin:18px 0}
.encadre p{margin:0;color:var(--brun);font-size:.93rem}
.parch .encadre{background:var(--creme)}

/* ---------- pages juridiques ---------- */
.juri h1{font-size:1.85rem;margin-bottom:6px}
.juri h2{font-size:1.4rem;margin:38px 0 10px}
.juri h3{font-size:1.1rem;margin:32px 0 9px}
.juri p,.juri li{font-size:.91rem;color:var(--doux);margin-bottom:9px}
.juri ul,.juri ol{padding-left:20px;margin-bottom:14px}
.juri strong{color:var(--encre);font-weight:500}
.juri a{color:var(--or-p);border-bottom:1px solid rgba(201,168,76,.5)}
.maj{font-size:.79rem;color:var(--or-p);margin-bottom:24px}
.fil{font-size:.78rem;color:var(--doux);margin-bottom:26px}
.fil a{color:var(--or-p)}

/* ---------- pied de page ---------- */
footer{background:var(--tabac-f);color:rgba(246,235,214,.78);padding:64px 0 26px;font-size:.87rem}
.fg{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:46px}
footer h4{font-family:var(--sans);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
          color:var(--or-c);margin-bottom:15px;font-weight:500}
footer a:hover{color:var(--or-c)}
footer ul{list-style:none;display:grid;gap:8px}
.fb{border-top:1px solid rgba(201,168,76,.18);margin-top:40px;padding-top:21px;display:flex;
    justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.79rem;color:rgba(246,235,214,.72)}

/* ---------- barre d'action mobile ---------- */
.barre{position:fixed;left:0;right:0;bottom:0;z-index:95;background:var(--tabac-f);
  border-top:1px solid rgba(201,168,76,.3);padding:11px 16px;display:none;align-items:center;
  justify-content:space-between;gap:12px;transform:translateY(110%);transition:transform .4s}
.barre.vu{transform:none}
.barre p{font-size:.76rem;color:rgba(246,235,214,.78);line-height:1.4}
.barre .btn{padding:11px 18px;font-size:.8rem;white-space:nowrap}

/* ---------- animations (sûres par défaut) ----------
   Le contenu est VISIBLE tant que le script n'a pas posé .js sur <html>.
   Sans JavaScript, ou si l'observateur échoue, rien ne reste masqué.        */
.rev{transition:opacity .85s cubic-bezier(.2,.8,.3,1),transform .85s cubic-bezier(.2,.8,.3,1)}
.js .rev{opacity:0;transform:translateY(20px)}
.js .rev.vu{opacity:1;transform:none}
.lever>*{animation:lev .8s cubic-bezier(.2,.8,.3,1) both}
.js .lever>*{opacity:0;transform:translateY(14px)}
.lever>*:nth-child(1){animation-delay:.05s}.lever>*:nth-child(2){animation-delay:.13s}
.lever>*:nth-child(3){animation-delay:.21s}.lever>*:nth-child(4){animation-delay:.29s}
.lever>*:nth-child(5){animation-delay:.37s}.lever>*:nth-child(6){animation-delay:.45s}
@keyframes lev{to{opacity:1;transform:none}}
.tampon{animation:tmp .7s cubic-bezier(.3,1.6,.5,1) .8s both}
@keyframes tmp{0%{opacity:0;transform:rotate(-10deg) scale(1.55)}
               60%{opacity:1}100%{opacity:1;transform:rotate(-10deg) scale(1)}}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .rev,.js .rev,.lever>*,.js .lever>*{opacity:1!important;transform:none!important}
}

/* ---------- impression ---------- */
@media print{
  header,.topbar,.barre,.evite,.btn,.bande,footer .fg{display:none!important}
  body{background:#fff;color:#000;font-size:11pt;padding:0}
  .hero,.sombre,.bande{background:#fff!important;color:#000!important}
  .hero h1,.sombre h2,.sombre h3{color:#000!important}
  .rev,.lever>*{opacity:1!important;transform:none!important}
  section.bloc{padding:18pt 0;page-break-inside:avoid}
  .cadre,.pack,.panneau,.carte{break-inside:avoid}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#555}
}

/* ---------- petits écrans ---------- */
@media(max-width:900px){
  .topbar{font-size:.7rem;padding:8px 14px}
  .topbar .opt{display:none}
  .hero{padding:52px 0 64px}
  .hero h1{font-size:clamp(1.85rem,7.4vw,2.4rem)}
  .compteur{font-size:clamp(3rem,15vw,4.2rem)}
  .hg,.g2,.filet-2{grid-template-columns:1fr;gap:40px}
  .g3,.packs,.chiffres,.avis-g,.fg{grid-template-columns:1fr}
  .filet{grid-template-columns:1fr;gap:10px}
  .filet .idx{display:none}
  .burger{display:block}
  .links{position:absolute;top:74px;left:0;right:0;background:var(--creme);flex-direction:column;
    align-items:stretch;gap:0;padding:0 24px;max-height:0;overflow:hidden;transition:max-height .4s;
    border-bottom:1px solid transparent}
  .links.ouvert{max-height:600px;padding:12px 24px 22px;border-bottom-color:var(--trait)}
  .links a{padding:13px 0;border-bottom:1px solid var(--trait)}
  .links .btn{margin-top:13px;text-align:center}
  section.bloc{padding:72px 0}
  .barre{display:flex}
  body{padding-bottom:64px}
  .sceau{width:60px;height:60px;right:-8px;top:-12px}
  .ech-tete input{width:120px}
}
