/* =========================================================================
   Idées de Génie — style.css (design system global)
   Chargé sur TOUTES les pages. Magazine lifestyle premium.
   Palette : encre + papier chaud + cobalt (idée) + ambre (étincelle).
   Typo : Fraunces (display serif) + Inter (corps/UI).
   ========================================================================= */

/* ---------- Polices auto-hébergées ---------- */
@font-face{font-family:'Fraunces';src:url('/assets/fonts/fraunces-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Fraunces';src:url('/assets/fonts/fraunces-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Fraunces';src:url('/assets/fonts/fraunces-900.woff2') format('woff2');font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:'Fraunces';src:url('/assets/fonts/fraunces-italic-400.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Inter';src:url('/assets/fonts/inter-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Inter';src:url('/assets/fonts/inter-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  --encre:#191A1E; --encre-2:#26272E;
  --papier:#F6F3EC; --papier-2:#EFEADE; --blanc:#FFFFFF;
  --cobalt:#1F33E0; --cobalt-d:#1526B8; --ambre:#F4B41A;
  --txt:#20222A; --txt-2:#5C5F6B; --txt-inv:#F6F3EC; --txt-inv-2:#B9B7B0;
  --ligne:#E5E0D4; --ligne-2:#D8D2C4;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --wrap:1220px; --r:16px; --r-sm:10px;
  --shadow:0 24px 60px -34px rgba(25,26,30,.5);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset léger ---------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--txt);background:var(--papier);
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:900;line-height:1.05;letter-spacing:-.01em;margin:0 0 .5em;overflow-wrap:break-word}
p{margin:0 0 1.1em}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2.2rem)}
.section{padding-block:clamp(3rem,7vw,5.5rem)}
.section--tight{padding-block:clamp(2rem,4vw,3rem)}

/* ---------- Kicker / eyebrow ---------- */
.kicker{font-family:var(--sans);font-weight:600;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cobalt);display:inline-flex;align-items:center;gap:.5rem}
.kicker::before{content:"";width:22px;height:1.5px;background:var(--cobalt)}
.kicker--plain::before{display:none}

/* ---------- Titres de section ---------- */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:2rem}
.sec-head h2{font-size:clamp(1.7rem,3.8vw,2.6rem);margin:.4rem 0 0}
.sec-head .link-more{font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--txt);
  border-bottom:2px solid var(--cobalt);padding-bottom:2px;white-space:nowrap;transition:color .2s}
.sec-head .link-more:hover{color:var(--cobalt)}

/* ---------- Boutons ---------- */
.btn-ig{--bg:var(--encre);--fg:var(--papier);display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--sans);font-weight:600;font-size:.92rem;line-height:1;padding:.9rem 1.4rem;
  background:var(--bg);color:var(--fg);border:1.5px solid var(--bg);border-radius:999px;cursor:pointer;
  transition:transform .18s var(--ease),background .2s,color .2s,border-color .2s}
.btn-ig:hover{transform:translateY(-2px)}
.btn-ig svg{width:16px;height:16px}
.btn-ig--cobalt{--bg:var(--cobalt);--fg:#fff}
.btn-ig--cobalt:hover{--bg:var(--cobalt-d)}
.btn-ig--ghost{--bg:transparent;--fg:var(--txt);border-color:var(--ligne-2)}
.btn-ig--ghost:hover{--fg:var(--cobalt);border-color:var(--cobalt)}

/* ---------- Header / masthead ---------- */
.top-strip{background:var(--encre);color:var(--txt-inv-2);font-size:.74rem;letter-spacing:.06em}
.top-strip .wrap{display:flex;justify-content:space-between;align-items:center;height:36px}
.top-strip .tagline{text-transform:uppercase;letter-spacing:.16em}
.top-strip a{color:var(--txt-inv-2)}
.top-strip a:hover{color:#fff}

/* Fond papier SOLIDE (pas de backdrop-filter : il ferait du masthead le bloc contenant
   du panneau nav en position:fixed, cassant son plein écran sur mobile). */
.masthead{position:sticky;top:0;z-index:1000;background:var(--papier);
  border-bottom:1px solid var(--ligne);transition:box-shadow .3s}
.masthead.is-stuck{box-shadow:0 10px 30px -24px rgba(25,26,30,.6)}
.masthead .wrap{display:flex;align-items:center;gap:1.5rem;height:76px}
.brand{display:inline-flex;align-items:center;gap:.6rem;flex:0 0 auto}
.brand__mark{width:34px;height:34px;flex:0 0 auto}
.brand__name{font-family:var(--serif);font-weight:900;font-size:1.5rem;letter-spacing:-.02em;color:var(--encre);line-height:1}
.brand__name em{font-style:italic;font-weight:400}
.ig-nav{display:flex;align-items:center;gap:1.6rem;margin-left:auto}
.ig-nav a{font-family:var(--sans);font-weight:600;font-size:.9rem;color:var(--txt);position:relative;padding:.2rem 0}
.ig-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--cobalt);transition:right .25s var(--ease)}
.ig-nav a:hover::after,.ig-nav a[aria-current="page"]::after{right:0}
.ig-nav__cta{margin-left:.4rem}

/* ---------- Méga-menu « Rubriques » (desktop) ---------- */
.has-mega{position:static;display:flex;align-items:center}
.mega__btn{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--sans);font-weight:600;font-size:.9rem;
  color:var(--txt);background:none;border:0;cursor:pointer;padding:.2rem 0}
.mega__btn svg{width:15px;height:15px;transition:transform .25s var(--ease)}
.has-mega:hover .mega__btn svg,.has-mega:focus-within .mega__btn svg{transform:rotate(180deg)}
.mega__panel{position:absolute;left:0;right:0;top:100%;background:var(--papier);
  border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne);box-shadow:0 30px 50px -30px rgba(25,26,30,.45);
  padding:1.8rem 0 2rem;opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;z-index:1001}
.has-mega:hover .mega__panel,.has-mega:focus-within .mega__panel{opacity:1;visibility:visible;transform:none}
.mega__inner{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2.2rem)}
.mega__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.1rem}
.mega__head h3{font-family:var(--serif);font-weight:900;font-size:1.15rem;margin:0}
.mega__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem 1.2rem}
.mega__link{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:10px;transition:background .15s}
.mega__link:hover{background:var(--papier-2)}
.mega__thumb{width:46px;height:46px;border-radius:8px;overflow:hidden;flex:0 0 auto;background:var(--papier-2)}
.mega__thumb img{width:100%;height:100%;object-fit:cover}
.mega__name{font-family:var(--serif);font-weight:600;font-size:.96rem;line-height:1.1;color:var(--encre)}
.mega__link:hover .mega__name{color:var(--cobalt)}

/* Grain premium (superposition subtile, décorative) */
.grain::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}

.burger{display:none;margin-left:auto;background:none;border:0;padding:.4rem;cursor:pointer}
.burger span{display:block;width:24px;height:2px;background:var(--encre);margin:5px 0;transition:.25s}

/* ---------- Cartes article (réutilisées partout) ---------- */
.card-art{display:flex;flex-direction:column;gap:.85rem;group:card}
.card-art__media{position:relative;overflow:hidden;border-radius:var(--r-sm);aspect-ratio:3/2;background:var(--papier-2)}
.card-art__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.card-art:hover .card-art__media img{transform:scale(1.05)}
.card-art__cat{font-family:var(--sans);font-weight:600;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cobalt)}
.card-art__title{font-family:var(--serif);font-weight:600;font-size:1.22rem;line-height:1.2;color:var(--encre);margin:.15rem 0 0}
.card-art:hover .card-art__title{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
.card-art__meta{font-family:var(--sans);font-size:.8rem;color:var(--txt-2)}
.card-art__excerpt{font-size:.95rem;color:var(--txt-2);margin:0}

/* ---------- Newsletter ---------- */
.news{background:var(--encre);color:var(--txt-inv);border-radius:var(--r);overflow:hidden}
.news__inner{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center;padding:clamp(2rem,4vw,3.2rem)}
.news h2{color:#fff;font-size:clamp(1.6rem,3vw,2.3rem)}
.news p{color:var(--txt-inv-2);margin-bottom:0}
.news form{display:flex;gap:.6rem;flex-wrap:wrap}
.news input{flex:1 1 220px;font-family:var(--sans);font-size:.95rem;padding:.9rem 1.1rem;border-radius:999px;border:1.5px solid var(--encre-2);background:#fff;color:var(--txt)}
.news input:focus{outline:none;border-color:var(--ambre)}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin-inline:auto}
.faq details{border-bottom:1px solid var(--ligne-2);padding:1.2rem 0}
.faq summary{font-family:var(--serif);font-weight:600;font-size:1.15rem;color:var(--encre);cursor:pointer;
  list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-weight:400;font-size:1.5rem;color:var(--cobalt);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:.9rem 0 0;color:var(--txt-2)}

/* ---------- Fil d'Ariane ---------- */
.crumb{font-family:var(--sans);font-size:.8rem;color:var(--txt-2);display:flex;gap:.5rem;flex-wrap:wrap}
.crumb a:hover{color:var(--cobalt)}
.crumb span[aria-current]{color:var(--txt)}

/* ---------- Footer ---------- */
.foot{background:var(--encre);color:var(--txt-inv-2);padding-block:clamp(3rem,6vw,4.5rem) 2rem}
.foot__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.foot__grid h4{font-family:var(--sans);font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:1rem}
.foot__grid a{display:block;padding:.28rem 0;color:var(--txt-inv-2);font-size:.92rem}
.foot__grid a:hover{color:#fff}
.foot__brand .brand__name{color:#fff}
.foot__desc{font-size:.92rem;max-width:32ch;margin-top:1rem}
.foot__bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--encre-2);font-size:.82rem}

/* ---------- Reveal au défilement (JS ajoute .is-in) ---------- */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}.card-art__media img{transition:none}}

/* ---------- Accessibilité ---------- */
:focus-visible{outline:3px solid rgba(31,51,224,.5);outline-offset:2px}
.skip{position:absolute;left:-999px}
.skip:focus{position:fixed;left:12px;top:12px;z-index:2000;background:var(--cobalt);color:#fff;padding:.6rem 1rem;border-radius:8px}

/* ---------- Variantes / utilitaires (séparation stricte HTML/CSS) ---------- */
.kicker--ambre{color:var(--ambre)}
.kicker--ambre::before{background:var(--ambre)}
.news__msg{flex:1 1 100%;margin:.2rem 0 0;font-size:.82rem;color:var(--txt-inv-2)}
