/* ============================================================================
   Thème « Gastronomie » — repasgastronomique.fr
   Direction artistique : « Crème & Bordeaux, haute gastronomie chaleureuse »
   Titres serif éditorial (Playfair/Cormorant, repli Georgia), corps Inter.
   Aucune dépendance CSS externe : repli système garanti.
   ============================================================================ */

/* ── Variables ──────────────────────────────────────────────────────────── */
:root{
  --cream:#FBF6EE;
  --cream-2:#F3EADD;
  --surface:#FFFFFF;
  --surface-warm:#FFFDF9;
  --ink:#241C17;
  --muted:#7C6F63;
  --line:#E7DCCB;
  --bordeaux:#6E1423;
  --bordeaux-2:#8A1B2E;
  --bordeaux-deep:#4C0D18;
  --terracotta:#C0673F;
  --gold:#B08D57;
  --gold-soft:#D9C39B;

  --radius:14px;
  --radius-lg:18px;
  --radius-xl:24px;
  --pill:999px;

  --shadow-xs:0 2px 8px rgba(76,13,24,.06);
  --shadow:0 10px 30px rgba(76,13,24,.08);
  --shadow-lg:0 22px 60px rgba(76,13,24,.14);
  --shadow-gold:0 6px 18px rgba(176,141,87,.28);

  --font-title:'Playfair Display','Cormorant Garamond',Georgia,'Times New Roman',serif;
  --font-alt:'Cormorant Garamond','Playfair Display',Georgia,serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;

  --wrap:1200px;
  --measure:72ch;
  --header-h:78px;

  /* Mapping du partiel commentaires du cœur (évite le bleu par défaut) */
  --primary:#6E1423;
  --primary-dark:#4C0D18;
  --border:#E7DCCB;
  --text:#241C17;
  --card-bg:#FFFFFF;
}

/* ── Reset & base ───────────────────────────────────────────────────────── */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.nav-open{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--bordeaux);text-decoration:none;transition:color .16s ease}
a:hover{color:var(--bordeaux-2)}
::selection{background:var(--gold-soft);color:var(--bordeaux-deep)}

h1,h2,h3,h4{font-family:var(--font-title);color:var(--ink);line-height:1.14;font-weight:600;margin:0 0 .55em;letter-spacing:.002em}
h1{font-size:clamp(2.1rem,5vw,3.2rem)}
h2{font-size:clamp(1.6rem,3.4vw,2.35rem)}
h3{font-size:1.34rem}
h4{font-size:1.06rem}
p{margin:0 0 1.15em}

/* ── Utilitaires ────────────────────────────────────────────────────────── */
.container{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2.2rem)}
.section{padding:clamp(2.6rem,6vw,4.4rem) 0}
.section.alt{background:var(--cream-2)}
.eyebrow{
  display:inline-block;font-family:var(--font-body);text-transform:uppercase;
  letter-spacing:.14em;font-size:.72rem;font-weight:700;color:var(--bordeaux);
}
.eyebrow::before{content:"";display:inline-block;width:22px;height:1px;background:var(--gold);
  vertical-align:middle;margin-right:.6rem;transform:translateY(-2px)}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--bordeaux);color:#fff;
  padding:.7rem 1.1rem;border-radius:0 0 var(--radius) 0;z-index:4000;font-weight:600}
.skip-link:focus{left:0}
.empty-note{text-align:center;color:var(--muted);padding:2.4rem 0;font-family:var(--font-alt);font-size:1.2rem}

/* Filet or décoratif */
.hairline{height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);border:0}

/* ── Focus visible global ───────────────────────────────────────────────── */
a:focus-visible,button:focus-visible,input:focus-visible,
.ingredient-check:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--bordeaux);outline-offset:3px;border-radius:6px
}

/* ── Boutons ────────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-body);
  font-weight:600;font-size:.96rem;letter-spacing:.01em;line-height:1;
  border-radius:var(--pill);padding:.82rem 1.5rem;cursor:pointer;
  border:1.5px solid var(--bordeaux);background:var(--bordeaux);color:#fff;
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.btn svg{width:18px;height:18px;flex:0 0 auto}
.btn:hover{background:var(--bordeaux-2);border-color:var(--bordeaux-2);color:#fff;
  transform:translateY(-2px);box-shadow:var(--shadow)}
.btn:active{transform:translateY(0)}
.btn-outline{background:transparent;color:var(--bordeaux)}
.btn-outline:hover{background:var(--bordeaux);color:#fff}
.btn-cream{background:var(--cream);border-color:var(--cream);color:var(--bordeaux-deep)}
.btn-cream:hover{background:#fff;border-color:#fff;color:var(--bordeaux-deep);box-shadow:var(--shadow-gold)}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.6);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}

/* ── Header ─────────────────────────────────────────────────────────────── */
.site-header{
  position:sticky;top:0;z-index:1000;
  background:rgba(251,246,238,.82);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);
  backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent;
  background-image:linear-gradient(rgba(251,246,238,.82),rgba(251,246,238,.82)),
                   linear-gradient(90deg,transparent,var(--gold-soft),transparent);
  background-origin:border-box;background-clip:padding-box,border-box;
  box-shadow:0 1px 0 rgba(176,141,87,.28),0 8px 26px rgba(76,13,24,.05);
}
.header-inner{
  max-width:var(--wrap);margin-inline:auto;display:flex;align-items:center;gap:1.4rem;
  padding:.55rem clamp(1.1rem,4vw,2.2rem);min-height:var(--header-h);
}
.site-logo{display:flex;align-items:center;gap:.7rem;flex-shrink:0;color:var(--ink)}
.logo-wordmark{display:flex;flex-direction:column;line-height:1}
.logo-name{font-family:var(--font-title);font-weight:700;font-size:1.5rem;color:var(--bordeaux);letter-spacing:.01em}
.logo-tag{font-family:var(--font-body);font-weight:600;font-size:.6rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);margin-top:.32rem}

.site-nav-wrap{margin-left:auto}
.site-nav{list-style:none;display:flex;align-items:center;gap:.15rem;margin:0;padding:0}
.site-nav>li{position:relative}
.site-nav>li>a{
  position:relative;display:block;padding:.6rem .85rem;
  font-family:var(--font-body);font-weight:600;font-size:.74rem;
  text-transform:uppercase;letter-spacing:.12em;color:var(--ink);
}
.site-nav>li>a::after{
  content:"";position:absolute;left:.85rem;right:.85rem;bottom:.28rem;height:1.5px;
  background:var(--bordeaux);transform:scaleX(0);transform-origin:left;transition:transform .24s ease;
}
.site-nav>li>a:hover,.site-nav>li.active>a{color:var(--bordeaux)}
.site-nav>li>a:hover::after,.site-nav>li.active>a::after{transform:scaleX(1)}
.site-nav .sub-toggle{display:none}
.sub-menu{
  list-style:none;margin:0;padding:.5rem;position:absolute;top:calc(100% + 10px);left:0;
  min-width:238px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s;z-index:1200;
}
.sub-menu::before{content:"";position:absolute;top:-6px;left:24px;width:12px;height:12px;
  background:var(--surface);border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.site-nav>li:hover>.sub-menu,.sub-menu.js-open{opacity:1;visibility:visible;transform:translateY(0)}
.sub-menu li a{display:block;padding:.6rem .8rem;border-radius:10px;color:var(--ink);
  font-weight:500;font-size:.92rem}
.sub-menu li a:hover{background:var(--cream-2);color:var(--bordeaux)}

.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;
  border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;padding:0 12px}
.nav-toggle span{height:2px;background:var(--bordeaux);border-radius:2px;transition:.22s}
.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.nav-overlay{position:fixed;inset:0;background:rgba(36,28,23,.55);opacity:0;visibility:hidden;
  transition:.24s;z-index:900;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.nav-overlay.open{opacity:1;visibility:visible}

/* Recherche */
.nav-search{position:relative;display:flex;align-items:center;flex-shrink:0}
.nav-search-btn{background:var(--surface);border:1px solid var(--line);color:var(--bordeaux);cursor:pointer;
  width:46px;height:46px;display:grid;place-items:center;border-radius:50%;transition:.16s}
.nav-search-btn:hover{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux)}
.nav-search-btn svg{width:20px;height:20px}
.nav-search-form{position:absolute;top:calc(100% + 12px);right:0;display:none;align-items:center;gap:.4rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);
  padding:.5rem;z-index:1300}
.nav-search.open .nav-search-form{display:flex}
.nav-search-form input{border:1px solid var(--line);border-radius:var(--pill);padding:.6rem 1rem;font-size:.95rem;
  width:250px;max-width:60vw;color:var(--ink);font-family:inherit;background:var(--cream)}
.nav-search-form input:focus{outline:none;border-color:var(--bordeaux);box-shadow:0 0 0 3px rgba(110,20,35,.12)}
.nav-search-form button{background:var(--bordeaux);color:#fff;border:none;border-radius:50%;width:40px;height:40px;
  cursor:pointer;display:grid;place-items:center;flex-shrink:0}
.nav-search-form button:hover{background:var(--bordeaux-2)}
.nav-search-form button svg{width:18px;height:18px}

/* ── Breadcrumb ─────────────────────────────────────────────────────────── */
.breadcrumb-wrap{background:transparent;padding-top:1.3rem}
.breadcrumb{font-size:.82rem;color:var(--muted);letter-spacing:.02em}
.breadcrumb a{color:var(--muted)}
.breadcrumb a:hover{color:var(--bordeaux)}
.breadcrumb .sep{margin:0 .5rem;color:var(--gold)}
.breadcrumb .current{color:var(--ink);font-weight:600}

/* ── Titre de section ───────────────────────────────────────────────────── */
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.2rem;margin-bottom:2rem}
.section-head h2{margin:.35rem 0 0;position:relative}
.section-head .see-all{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.82rem;
  text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;color:var(--bordeaux)}
.section-head .see-all svg{width:16px;height:16px}
.section-head .see-all:hover{color:var(--bordeaux-2)}

/* ── Cartes recette ─────────────────────────────────────────────────────── */
.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(288px,1fr));gap:1.7rem}
.recipe-card{
  position:relative;background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-xs);border:1px solid var(--line);
  display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease;
}
.recipe-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.recipe-card .thumb{position:relative;aspect-ratio:4/3;overflow:hidden;display:block;
  background:linear-gradient(135deg,var(--cream-2),var(--cream))}
.recipe-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.recipe-card:hover .thumb img{transform:scale(1.06)}
.thumb-fallback{position:absolute;inset:0;display:grid;place-items:center;color:var(--gold-soft)}
.thumb-fallback svg{width:54px;height:54px}
.recipe-card .cat-badge{position:absolute;top:.8rem;left:.8rem;background:var(--bordeaux);color:#fff;
  font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;
  padding:.36rem .7rem;border-radius:var(--pill);box-shadow:0 4px 12px rgba(76,13,24,.28)}
.recipe-card .cat-badge.alt{background:var(--terracotta)}
.recipe-card .time-badge{position:absolute;bottom:.8rem;right:.8rem;
  background:rgba(251,246,238,.94);color:var(--bordeaux-deep);
  font-size:.72rem;font-weight:600;padding:.32rem .62rem;border-radius:var(--pill);
  display:inline-flex;align-items:center;gap:.3rem;box-shadow:var(--shadow-xs)}
.recipe-card .time-badge svg{width:14px;height:14px;color:var(--gold)}
.recipe-card .body{padding:1.15rem 1.25rem 1.35rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.recipe-card h3{font-size:1.22rem;margin:0;line-height:1.28}
.recipe-card h3 a{color:var(--ink)}
.recipe-card:hover h3 a{color:var(--bordeaux)}
.recipe-card .excerpt{font-size:.92rem;color:var(--muted);margin:0;line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.recipe-card .card-cta{margin-top:auto;display:inline-flex;align-items:center;gap:.4rem;
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--bordeaux);padding-top:.3rem}
.recipe-card .card-cta svg{width:16px;height:16px;transition:transform .2s ease}
.recipe-card:hover .card-cta svg{transform:translateX(4px)}

/* Carte vedette */
.recipe-card-feature{flex-direction:column}
.recipe-card-feature .thumb{aspect-ratio:16/11}
.recipe-card-feature h3{font-size:1.7rem;font-family:var(--font-title)}
.recipe-card-feature .body{padding:1.6rem 1.7rem 1.8rem;gap:.7rem}
.recipe-card-feature .excerpt{font-size:1rem;-webkit-line-clamp:3}

/* ══════════════════════════════════════════════════════════════════════════
   PAGE D'ACCUEIL
   ════════════════════════════════════════════════════════════════════════ */

/* Héros plein écran */
.hero{position:relative;min-height:clamp(560px,92vh,860px);display:flex;align-items:center;
  overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:-8% 0 0 0;z-index:-2;background-size:cover;background-position:center;
  background-color:var(--bordeaux-deep);
  background-image:linear-gradient(135deg,var(--bordeaux) 0%,var(--bordeaux-deep) 60%,#33070f 100%);
  will-change:transform;transform:scale(1.06)}
.hero-veil{position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(1200px 600px at 15% 12%,rgba(251,246,238,.16),transparent 60%),
    linear-gradient(180deg,rgba(76,13,24,.05) 0%,rgba(76,13,24,.35) 55%,rgba(36,7,15,.72) 100%)}
.hero-inner{position:relative;color:#fff;max-width:960px;padding-top:clamp(3rem,9vh,6rem);
  padding-bottom:clamp(3rem,9vh,6rem)}
.hero-eyebrow{color:var(--gold-soft);font-weight:700}
.hero-eyebrow::before{background:var(--gold-soft)}
.hero-title{color:#fff;font-size:clamp(2.7rem,7vw,5.2rem);line-height:1.02;margin:.5rem 0 .3em;
  font-weight:600;letter-spacing:-.005em;text-shadow:0 2px 30px rgba(0,0,0,.28);max-width:16ch}
.hero-sub{color:rgba(255,255,255,.9);font-size:clamp(1.05rem,2vw,1.32rem);line-height:1.65;
  max-width:56ch;font-weight:400}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.9rem}
.hero-scroll{position:absolute;left:50%;bottom:1.7rem;transform:translateX(-50%);z-index:2;
  width:26px;height:44px;border:1.5px solid rgba(255,255,255,.55);border-radius:14px;
  display:grid;justify-items:center;padding-top:8px}
.hero-scroll-dot{width:4px;height:8px;border-radius:2px;background:#fff;animation:heroScroll 1.7s ease-in-out infinite}
@keyframes heroScroll{0%{opacity:0;transform:translateY(0)}30%{opacity:1}70%{opacity:1}100%{opacity:0;transform:translateY(12px)}}

/* Bandeau chiffres */
.stats-band{background:var(--surface-warm);border-bottom:1px solid var(--line)}
.stat-rule{display:flex;align-items:center;justify-content:center;color:var(--gold);margin-bottom:1.4rem}
.stat-rule svg{width:26px;height:26px}
.stat-rule::before,.stat-rule::after{content:"";height:1px;flex:0 1 160px;
  background:linear-gradient(90deg,transparent,var(--gold-soft));margin:0 1rem}
.stat-rule::after{background:linear-gradient(90deg,var(--gold-soft),transparent)}
.qc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.qc-stat{text-align:center;padding:1.2rem .8rem;position:relative}
.qc-stat:not(:last-child)::after{content:"";position:absolute;right:0;top:18%;bottom:18%;width:1px;
  background:linear-gradient(180deg,transparent,var(--line),transparent)}
.qc-stat-num{display:block;font-family:var(--font-title);font-size:clamp(2.4rem,5vw,3.4rem);
  font-weight:700;color:var(--bordeaux);line-height:1;overflow-wrap:anywhere}
.qc-stat-lbl{display:block;margin-top:.6rem;font-size:.82rem;color:var(--muted);
  text-transform:uppercase;letter-spacing:.08em;font-weight:600}

/* Recettes à la une */
.featured-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:1.7rem;align-items:start}
.featured-side{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}

/* Univers */
.universe-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.universe-card{position:relative;display:flex;flex-direction:column;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;color:var(--ink);
  box-shadow:var(--shadow-xs);transition:transform .2s ease,box-shadow .2s ease}
.universe-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);color:var(--ink)}
.universe-media{position:relative;aspect-ratio:3/4;overflow:hidden;
  background:linear-gradient(150deg,var(--bordeaux),var(--bordeaux-deep))}
.universe-media img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.universe-card:hover .universe-media img{transform:scale(1.07)}
.universe-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(36,7,15,.55),transparent 55%)}
.universe-fallback{position:absolute;inset:0;display:grid;place-items:center;color:rgba(217,195,155,.7)}
.universe-fallback svg{width:52px;height:52px}
.universe-body{position:relative;padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.universe-index{font-family:var(--font-title);font-size:.9rem;color:var(--gold);font-weight:700;letter-spacing:.1em}
.universe-name{font-family:var(--font-title);font-size:1.32rem;font-weight:600;color:var(--ink);line-height:1.2}
.universe-desc{font-size:.88rem;color:var(--muted);line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.universe-cta{margin-top:auto;display:inline-flex;align-items:center;gap:.4rem;
  font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--bordeaux);padding-top:.35rem}
.universe-cta svg{width:15px;height:15px;transition:transform .2s ease}
.universe-card:hover .universe-cta svg{transform:translateX(4px)}

/* Philosophie */
.philosophy{background:var(--cream-2)}
.philosophy-card{max-width:860px;margin-inline:auto;text-align:center;
  background:var(--surface-warm);border:1px solid var(--line);border-radius:var(--radius-xl);
  padding:clamp(2.2rem,5vw,3.6rem);position:relative;box-shadow:var(--shadow)}
.philosophy-card::before,.philosophy-card::after{content:"";position:absolute;left:2rem;right:2rem;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold-soft),transparent)}
.philosophy-card::before{top:1rem}.philosophy-card::after{bottom:1rem}
.philosophy-card h2{font-family:var(--font-alt);font-size:clamp(1.8rem,4vw,2.7rem);font-style:italic;
  font-weight:600;margin:.5rem auto .7em;max-width:20ch}
.philosophy-card p{color:var(--ink);font-size:1.08rem;line-height:1.8;max-width:60ch;margin-inline:auto}
.philosophy-sign{font-family:var(--font-alt);font-style:italic;color:var(--bordeaux);font-size:1.15rem;margin-bottom:0}

/* CTA newsletter */
.cta-band{background:var(--bordeaux-deep);color:var(--cream);position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:0;opacity:.5;
  background:
    radial-gradient(600px 300px at 85% 10%,rgba(176,141,87,.22),transparent 60%),
    radial-gradient(500px 260px at 10% 90%,rgba(138,27,46,.5),transparent 60%)}
.cta-band .footer-rule{display:none}
.cta-inner{position:relative;text-align:center;max-width:680px}
.cta-inner .eyebrow{color:var(--gold-soft)}
.cta-inner .eyebrow::before{background:var(--gold-soft)}
.cta-inner h2{color:#fff;font-size:clamp(1.7rem,4vw,2.6rem);margin:.4rem 0 .5em}
.cta-inner p{color:rgba(251,246,238,.82);font-size:1.05rem}
.cta-form{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center;margin:1.6rem 0 .9rem}
.cta-form input{flex:1 1 300px;max-width:380px;border:1px solid rgba(217,195,155,.4);
  background:rgba(255,255,255,.06);color:#fff;border-radius:var(--pill);padding:.85rem 1.3rem;font-size:1rem;font-family:inherit}
.cta-form input::placeholder{color:rgba(251,246,238,.6)}
.cta-form input:focus{outline:none;border-color:var(--gold);background:rgba(255,255,255,.1);
  box-shadow:0 0 0 3px rgba(176,141,87,.25)}
.cta-note{font-size:.82rem;color:rgba(251,246,238,.6);margin-bottom:0}

/* ══════════════════════════════════════════════════════════════════════════
   PAGE CATÉGORIE / BLOG
   ════════════════════════════════════════════════════════════════════════ */
.cat-hero-band{background:var(--cream-2);border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.cat-hero-band.has-img{background:var(--bordeaux-deep)}
.cat-hero-media{position:absolute;inset:0;z-index:0}
.cat-hero-media img{width:100%;height:100%;object-fit:cover;opacity:.42}
.cat-hero-band.has-img::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(76,13,24,.5),rgba(36,7,15,.78))}
.cat-header{position:relative;z-index:1;text-align:center;padding:clamp(2.4rem,6vw,4rem) 0 clamp(2rem,4vw,3rem)}
.cat-hero-band.has-img .cat-header{color:#fff}
.cat-hero-band.has-img .cat-header h1,
.cat-hero-band.has-img .cat-header .cat-desc{color:#fff}
.cat-hero-band.has-img .eyebrow,
.cat-hero-band.has-img .eyebrow::before{color:var(--gold-soft);background-color:transparent}
.cat-hero-band.has-img .eyebrow::before{background:var(--gold-soft)}
.cat-header h1{margin:.4rem 0 .35em}
.cat-header .cat-count{display:inline-block;font-size:.78rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;color:var(--bordeaux);background:var(--surface);border:1px solid var(--line);
  padding:.28rem .8rem;border-radius:var(--pill)}
.cat-hero-band.has-img .cat-count{color:var(--bordeaux-deep);background:var(--cream);border-color:transparent}
.cat-header .cat-desc{max-width:64ch;margin:1rem auto 0;color:var(--muted);font-size:1.08rem;line-height:1.7}

/* Éditorial (contenus riches) */
.editorial{max-width:var(--measure);margin:0 auto 2.2rem;color:var(--ink);font-size:1.06rem;line-height:1.8}
.editorial :is(h2,h3){margin-top:1.5em}
.editorial p{margin-bottom:1.1em}
.editorial-conclusion{border-top:1px solid var(--line);padding-top:2rem}

/* Pagination */
.pagination{display:flex;justify-content:center;gap:.45rem;flex-wrap:wrap;margin:3rem 0 1rem}
.pagination a,.pagination span{min-width:46px;height:46px;display:grid;place-items:center;padding:0 .8rem;
  border-radius:var(--pill);font-weight:600;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.pagination a:hover{border-color:var(--bordeaux);color:var(--bordeaux)}
.pagination .current{background:var(--bordeaux);border-color:var(--bordeaux);color:#fff}

/* ══════════════════════════════════════════════════════════════════════════
   ARTICLE / FICHE RECETTE
   ════════════════════════════════════════════════════════════════════════ */
.post-wrap{max-width:820px;margin-inline:auto;padding:clamp(1.6rem,4vw,2.6rem) clamp(1.1rem,4vw,2rem) 3.5rem}
.post-header{margin-bottom:1.6rem}
.post-header .eyebrow{margin-bottom:.6rem}
.post-header h1{margin-bottom:.5rem}
.post-header .post-meta{display:flex;gap:1.2rem;flex-wrap:wrap;align-items:center;
  color:var(--muted);font-size:.9rem;margin-top:.9rem}
.post-header .post-meta .author{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--ink)}
.post-header .post-meta svg{width:16px;height:16px;color:var(--gold)}
.post-hero{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);margin:0 0 2rem;
  aspect-ratio:16/10;background:var(--cream-2)}
.post-hero img{width:100%;height:100%;object-fit:cover}

.recipe-tag{display:inline-flex;align-items:center;gap:.35rem;background:var(--cream);color:var(--bordeaux);
  border:1px solid var(--gold-soft);font-weight:600;font-size:.78rem;padding:.24rem .66rem;border-radius:var(--pill)}
.recipe-tag svg{width:15px;height:15px}

.recipe-lede{font-family:var(--font-alt);font-style:italic;font-size:1.32rem;line-height:1.6;color:var(--bordeaux-deep);
  background:var(--cream);border-radius:var(--radius-lg);padding:1.3rem 1.5rem;margin:0 0 2rem;
  border-left:3px solid var(--gold);position:relative}
.recipe-lede::before{content:"\201C";position:absolute;left:.6rem;top:-.4rem;font-family:var(--font-title);
  font-size:3rem;color:var(--gold-soft);line-height:1}

/* Carte méta recette */
.recipe-meta-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow);padding:1.5rem;margin:0 0 2.2rem}
.recipe-meta-pills{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:1rem;text-align:center}
.meta-pill{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:1rem .5rem;
  transition:transform .16s ease}
.meta-pill:hover{transform:translateY(-3px)}
.meta-pill .ic{color:var(--gold);margin-bottom:.45rem;display:flex;justify-content:center}
.meta-pill .ic svg{width:24px;height:24px}
.meta-pill .val{font-family:var(--font-title);font-weight:700;font-size:1.14rem;display:block;color:var(--ink)}
.meta-pill .lbl{font-size:.66rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:700}

/* Blocs recette */
.recipe-block{margin:2.6rem 0}
.recipe-block>h2{display:flex;align-items:center;gap:.7rem;padding-bottom:.6rem;
  border-bottom:1px solid var(--line);position:relative}
.recipe-block>h2::after{content:"";position:absolute;left:0;bottom:-1px;width:64px;height:2px;background:var(--gold)}
.recipe-block>h2 .hic{color:var(--bordeaux);display:flex}
.recipe-block>h2 .hic svg{width:26px;height:26px}

/* Ingrédients — cases à cocher stylées */
.ingredients{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.6rem .9rem}
.ingredient-check{position:relative;display:flex;align-items:flex-start;gap:.7rem;
  padding:.7rem .8rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;
  cursor:pointer;font-size:.98rem;line-height:1.4;transition:.16s;user-select:none}
.ingredient-check:hover{border-color:var(--gold-soft);background:var(--surface-warm)}
.ingredient-check .tick{flex:0 0 auto;width:20px;height:20px;margin-top:1px;border:1.5px solid var(--bordeaux);
  border-radius:6px;position:relative;transition:.16s;background:#fff}
.ingredient-check .tick::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;
  border:solid var(--gold);border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);
  transform-origin:center;transition:transform .16s ease}
.ingredient-check.done .tick{background:var(--bordeaux);border-color:var(--bordeaux)}
.ingredient-check.done .tick::after{transform:rotate(45deg) scale(1);border-color:var(--gold-soft)}
.ingredient-check.done .ing-text{color:var(--muted);text-decoration:line-through}

/* Étapes — pastilles numérotées bordeaux */
.steps{list-style:none;margin:1.5rem 0 0;padding:0;counter-reset:step}
.steps li{position:relative;padding:.15rem 0 1.7rem 3.6rem;counter-increment:step;line-height:1.8}
.steps li::before{content:counter(step);position:absolute;left:0;top:-.1rem;width:2.5rem;height:2.5rem;
  background:var(--bordeaux);color:#fff;border-radius:50%;display:grid;place-items:center;
  font-family:var(--font-title);font-weight:700;font-size:1.1rem;box-shadow:var(--shadow-gold)}
.steps li:not(:last-child)::after{content:"";position:absolute;left:1.24rem;top:2.7rem;bottom:.3rem;width:1.5px;
  background:linear-gradient(180deg,var(--gold-soft),var(--line))}

/* Actions */
.recipe-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.2rem;justify-content:center}
.recipe-actions .btn{font-size:.88rem;padding:.62rem 1.2rem}
.post-actions{margin:2.6rem 0 1.8rem}
.recipe-actions .btn.copied{background:var(--bordeaux);border-color:var(--bordeaux);color:#fff}

/* Corps rédactionnel */
.post-content{font-size:1.06rem;line-height:1.8;max-width:var(--measure);margin-inline:auto}
.page-content{margin-top:0}
.post-content>h2{margin-top:1.9em}
.post-content>h3{margin-top:1.5em}
.post-content>p:first-of-type::first-letter{font-family:var(--font-title);font-size:3.4rem;line-height:.8;
  float:left;color:var(--bordeaux);font-weight:700;padding:.35rem .55rem 0 0}
.post-content img{border-radius:var(--radius-lg);margin:1.6rem auto;box-shadow:var(--shadow)}
.post-content ul,.post-content ol{padding-left:1.4em;margin:0 0 1.3em}
.post-content li{margin-bottom:.5em}
.post-content ul li::marker{color:var(--gold)}
.post-content a{text-decoration:underline;text-decoration-color:var(--gold-soft);text-underline-offset:3px;
  text-decoration-thickness:1.5px;transition:text-decoration-color .18s ease}
.post-content a:hover{text-decoration-color:var(--bordeaux)}
.post-content blockquote{font-family:var(--font-alt);font-style:italic;font-size:1.28rem;line-height:1.6;
  border-left:3px solid var(--gold);background:var(--cream);margin:1.8rem 0;padding:1.1rem 1.4rem;
  border-radius:0 var(--radius) var(--radius) 0;color:var(--bordeaux-deep)}
.post-content table,.editorial table,.home-editorial table{width:100%;border-collapse:separate;border-spacing:0;margin:1.9rem 0;font-size:.95rem;
  border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 8px 26px rgba(76,13,24,.07)}
.post-content th,.editorial th,.home-editorial th{background:linear-gradient(180deg,var(--bordeaux),var(--bordeaux-deep));color:#fff;
  font-family:var(--font-body);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.74rem;
  text-align:left;padding:.85rem 1.05rem;border:none;white-space:nowrap}
.post-content td,.editorial td,.home-editorial td{padding:.82rem 1.05rem;text-align:left;vertical-align:top;border:none;border-top:1px solid var(--line)}
.post-content tbody tr:nth-child(odd),.editorial tbody tr:nth-child(odd),.home-editorial tbody tr:nth-child(odd){background:var(--cream)}
.post-content tbody tr:nth-child(even),.editorial tbody tr:nth-child(even),.home-editorial tbody tr:nth-child(even){background:var(--surface)}
.post-content tbody tr:first-child td,.editorial tbody tr:first-child td,.home-editorial tbody tr:first-child td{border-top:none}
.post-content tbody td:first-child,.editorial tbody td:first-child,.home-editorial tbody td:first-child{font-weight:600;color:var(--bordeaux-deep)}
.post-content tbody tr:hover,.editorial tbody tr:hover,.home-editorial tbody tr:hover{background:var(--cream-2,#F3EADD)}
@media(max-width:640px){.post-content table,.editorial table,.home-editorial table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.88rem}
  .post-content th,.post-content td,.editorial th,.editorial td,.home-editorial th,.home-editorial td{padding:.6rem .7rem}}
.post-content hr{border:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);margin:2.4rem 0}

/* Encadré astuce (si présent dans le contenu) */
.tip-box{background:var(--cream);border-left:3px solid var(--gold);border-radius:var(--radius);
  padding:1.2rem 1.4rem;margin:1.9rem 0}
.tip-box .tip-title{font-family:var(--font-title);font-weight:700;color:var(--bordeaux);
  display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}

/* Auteur */
.author-box{display:flex;gap:1.1rem;align-items:center;background:var(--surface-warm);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:1.3rem;margin:2.6rem 0}
.author-box .avatar{width:58px;height:58px;border-radius:50%;background:var(--bordeaux);color:#fff;
  display:grid;place-items:center;font-family:var(--font-title);font-weight:700;font-size:1.5rem;flex-shrink:0;
  box-shadow:var(--shadow-gold)}
.author-box .who{font-weight:700;color:var(--ink)}
.author-box .who span{display:block;font-weight:500;color:var(--muted);font-size:.85rem}

/* Suggestions */
.related{margin-top:3.4rem}
.related .section-head{justify-content:center;text-align:center;flex-direction:column;gap:.3rem}

/* ── Page 404 ───────────────────────────────────────────────────────────── */
.notfound{padding:clamp(3rem,8vw,6rem) 0;text-align:center}
.nf-code{display:block;font-family:var(--font-title);font-weight:700;font-size:clamp(5rem,18vw,11rem);
  line-height:.9;color:var(--cream-2);letter-spacing:-.02em;margin-bottom:.4rem}
.notfound h1{margin:.5rem 0 .4em}
.notfound>.container>p{max-width:52ch;margin:0 auto;color:var(--muted);font-size:1.08rem}
.nf-actions{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin:1.8rem 0 0}
.nf-suggest{margin-top:3.6rem;text-align:left}
.nf-suggest .section-head{justify-content:center;text-align:center;flex-direction:column;gap:.3rem}

/* ── Footer ─────────────────────────────────────────────────────────────── */
.site-footer{background:var(--bordeaux-deep);color:var(--cream);margin-top:0;position:relative}
.footer-rule{height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.footer-top{display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:2.4rem;padding:3.2rem clamp(1.1rem,4vw,2.2rem) 2.4rem}
.footer-brand .footer-wordmark .logo-name{color:#fff;font-size:1.7rem}
.footer-logo-badge{height:64px;width:64px;object-fit:contain;background:#fff;border-radius:50%;padding:9px;
  box-sizing:border-box;box-shadow:0 4px 16px rgba(0,0,0,.3)}
.footer-brand p{color:rgba(251,246,238,.72);font-size:.94rem;max-width:44ch;margin-top:1rem;line-height:1.7}
.footer-social{display:inline-flex;align-items:center;gap:.55rem;margin-top:1rem;color:#fff;font-weight:600;font-size:.9rem}
.footer-social svg{width:26px;height:26px;color:var(--gold-soft)}
.footer-social:hover{color:var(--gold-soft)}
.footer-col h4{color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:1.1rem;
  font-family:var(--font-body);font-weight:700;position:relative;padding-bottom:.6rem}
.footer-col h4::after{content:"";position:absolute;left:0;bottom:0;width:28px;height:2px;background:var(--gold)}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col li{margin-bottom:.6rem}
.footer-col a{color:rgba(251,246,238,.78);font-size:.94rem}
.footer-col a:hover{color:var(--gold-soft)}
.footer-widgets :is(h1,h2,h3,h4){color:#fff}
.footer-bottom{border-top:1px solid rgba(217,195,155,.16);padding:1.3rem 0;font-size:.84rem;
  color:rgba(251,246,238,.6);text-align:center}

/* ── Éléments flottants ─────────────────────────────────────────────────── */
.reading-progress{position:fixed;top:0;left:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--gold),var(--bordeaux));z-index:2000;transition:width .1s}
.back-to-top{position:fixed;right:1.2rem;bottom:1.2rem;width:48px;height:48px;border-radius:50%;border:none;
  background:var(--bordeaux);color:#fff;cursor:pointer;display:grid;place-items:center;
  opacity:0;visibility:hidden;transform:translateY(12px);transition:.22s;z-index:1500;box-shadow:var(--shadow-lg)} /* bas-droite, < 2147482000 : sous la banniere/bouton cookies */
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:var(--bordeaux-2)}
.back-to-top svg{width:22px;height:22px}

/* ── Animations de révélation ───────────────────────────────────────────── */
.reveal{opacity:1}
@media (prefers-reduced-motion:no-preference){
  .reveal{animation:revealIn .7s both}
  .hero-title.reveal{animation-delay:.08s}
  .hero-sub.reveal{animation-delay:.16s}
  .hero-cta.reveal{animation-delay:.24s}
  .universe-card.reveal{animation-delay:calc(var(--i,0) * .08s)}
}
@keyframes revealIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════════════════ */
@media(max-width:1080px){
  .universe-grid{grid-template-columns:repeat(2,1fr)}
  .footer-top{grid-template-columns:1.5fr 1fr 1fr}
}
@media(max-width:960px){
  .featured-grid{grid-template-columns:1fr}
  .featured-side{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  :root{--header-h:70px}
  .site-logo{order:1;margin-right:auto}
  .nav-search{order:2}
  .nav-toggle{display:flex;order:3;margin-left:.2rem}
  .site-nav-wrap{order:4}
  .header-inner{gap:.7rem}
  .site-nav{position:fixed;top:0;right:0;bottom:0;width:min(86vw,380px);background:var(--surface);
    flex-direction:column;align-items:stretch;gap:0;padding:5.2rem 1.3rem 2rem;transform:translateX(100%);
    transition:transform .28s cubic-bezier(.22,1,.36,1);z-index:1100;box-shadow:var(--shadow-lg);overflow-y:auto;
    border-left:1px solid var(--line)}
  .site-nav.open{transform:translateX(0)}
  .site-nav>li{border-bottom:1px solid var(--line)}
  .site-nav>li>a{padding:.95rem .6rem;font-size:.82rem;letter-spacing:.1em}
  .site-nav>li>a::after{display:none}
  .site-nav .has-children{display:flex;flex-wrap:wrap;align-items:center}
  .site-nav .has-children>a{flex:1}
  .site-nav .sub-toggle{display:grid;place-items:center;width:40px;height:40px;background:var(--cream);
    border:1px solid var(--line);border-radius:10px;color:var(--bordeaux);cursor:pointer;font-size:1rem}
  .site-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;
    background:transparent;padding:.2rem 0 .6rem .6rem;margin:0;flex-basis:100%;display:none}
  .site-nav .sub-menu::before{display:none}
  .site-nav .sub-menu.open{display:block}
  .footer-top{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1 / -1}
}
@media(max-width:760px){
  .qc-stats{grid-template-columns:repeat(2,1fr);gap:.6rem}
  .qc-stat:nth-child(2)::after{display:none}
  .universe-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  body{font-size:16px}
  .ingredients{grid-template-columns:1fr}
  .featured-side{grid-template-columns:1fr}
  .universe-grid{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr;gap:1.8rem}
  .section-head{flex-direction:column;align-items:flex-start;gap:.5rem}
  .hero-scroll{display:none}
  .cta-form input{flex-basis:100%}
  .recipe-card-feature h3{font-size:1.4rem}
}

/* ── prefers-reduced-motion ─────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;animation:none!important}
  .hero-bg{transform:none!important}
  .hero-scroll-dot{animation:none}
  *{scroll-behavior:auto!important}
  .recipe-card,.universe-card,.meta-pill{transition:none}
}

/* ── Impression ─────────────────────────────────────────────────────────── */
@media print{
  .site-header,.site-footer,.breadcrumb-wrap,.back-to-top,.reading-progress,
  .recipe-actions,.related,.author-box,.nav-overlay,.hero-scroll,.cta-band{display:none!important}
  body{background:#fff;font-size:12pt;color:#000}
  .post-wrap{max-width:100%;padding:0}
  .post-hero{box-shadow:none;aspect-ratio:auto;max-height:8cm}
  .recipe-meta-card,.recipe-card{box-shadow:none;border:1px solid #ccc}
  .steps li::before{box-shadow:none;background:#000}
  .ingredient-check .tick{border-color:#000}
  a{color:#000;text-decoration:none}
}

/* ══════════════════════════════════════════════════════════════════════════
   SECTION AVIS / COMMENTAIRES (partiel du cœur) — charte bordeaux
   Le partiel utilise --primary/--border/--text/--card-bg (mappés plus haut).
   ════════════════════════════════════════════════════════════════════════ */
#comments{margin-top:3.4rem;max-width:var(--measure);margin-inline:auto}
#comments h2,#comments h3{font-family:var(--font-title);letter-spacing:-.005em}
#comments>div{box-shadow:var(--shadow)!important;border-radius:var(--radius-lg)!important;border-color:var(--line)!important}
#comments input:not([type=checkbox]):not([type=radio]),
#comments textarea{border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;background:var(--cream);
  font-family:inherit;font-size:.95rem;color:var(--ink);transition:border-color .15s,box-shadow .15s;margin-top:.2rem}
#comments input:not([type=checkbox]):not([type=radio]):focus,
#comments textarea:focus{outline:none;border-color:var(--bordeaux);box-shadow:0 0 0 3px rgba(110,20,35,.12);background:#fff}
#comments .btn,#comments .btn-primary{background:var(--bordeaux)!important;border:none!important;color:#fff!important;
  border-radius:var(--pill)!important;padding:.82rem 1.7rem!important;font-weight:600;letter-spacing:.01em;
  box-shadow:var(--shadow-gold);transition:transform .15s,box-shadow .15s,background .15s}
#comments .btn:hover,#comments .btn-primary:hover{background:var(--bordeaux-2)!important;transform:translateY(-2px)}
#comments [role=tab]{font-family:var(--font-body);font-weight:700!important;border-radius:10px 10px 0 0;transition:.15s}
#comments [role=tab][aria-selected=true]{background:var(--cream)}
.qc-rate-input label{font-size:2.1rem}
.qc-rate-input label:hover,.qc-rate-input label:hover ~ label,
.qc-rate-input input:checked ~ label{color:var(--gold)}

/* ── Fin de la feuille de style ─────────────────────────────────────────── */

/* ══════════════════════════════════════════════════════════════════════════
   COMPLÉMENTS — typographie de contenu, ornements, formulaires, états
   ════════════════════════════════════════════════════════════════════════ */

/* Accessibilité : masquage visuel conservant le lecteur d'écran */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Figures et légendes dans le corps rédactionnel */
.post-content figure{margin:1.8rem 0}
.post-content figure img{margin:0}
.post-content figcaption{margin-top:.6rem;text-align:center;font-family:var(--font-alt);font-style:italic;
  font-size:.95rem;color:var(--muted);line-height:1.5}
.post-content figure.align-wide{margin-inline:calc(50% - 50vw);max-width:100vw}
@media(min-width:1000px){
  .post-content figure.align-left{float:left;max-width:46%;margin:.4rem 1.6rem 1.2rem 0}
  .post-content figure.align-right{float:right;max-width:46%;margin:.4rem 0 1.2rem 1.6rem}
}

/* Listes de définition (fiches, glossaires) */
.post-content dl{margin:1.4rem 0;display:grid;grid-template-columns:auto 1fr;gap:.6rem 1.2rem}
.post-content dt{font-weight:700;color:var(--bordeaux-deep);font-family:var(--font-body)}
.post-content dd{margin:0;color:var(--ink)}

/* Code et raccourcis (rare mais possible dans un billet) */
.post-content code{font-family:'SFMono-Regular',Menlo,Consolas,monospace;font-size:.9em;
  background:var(--cream-2);border:1px solid var(--line);border-radius:6px;padding:.1em .4em;color:var(--bordeaux-deep)}
.post-content kbd{font-family:inherit;font-size:.82em;background:var(--ink);color:var(--cream);
  border-radius:6px;padding:.15em .5em;box-shadow:0 2px 0 rgba(0,0,0,.3)}
.post-content pre{background:var(--ink);color:var(--cream);padding:1.1rem 1.3rem;border-radius:var(--radius);
  overflow:auto;margin:1.6rem 0}
.post-content pre code{background:transparent;border:none;color:inherit;padding:0}

/* Citation avec attribution */
.post-content blockquote cite{display:block;margin-top:.6rem;font-style:normal;font-size:.85rem;
  font-family:var(--font-body);color:var(--muted);letter-spacing:.04em}
.post-content blockquote cite::before{content:"\2014 \00a0"}

/* Ornement séparateur (utilisable en éditorial : <div class="qc-divider">) */
.qc-divider{display:flex;align-items:center;gap:1rem;color:var(--gold);margin:2.4rem auto;max-width:380px}
.qc-divider::before,.qc-divider::after{content:"";height:1px;flex:1;
  background:linear-gradient(90deg,transparent,var(--gold-soft))}
.qc-divider::after{background:linear-gradient(90deg,var(--gold-soft),transparent)}
.qc-divider .qc-divider-mark{width:8px;height:8px;border-radius:50%;background:var(--gold);flex:0 0 auto;
  box-shadow:0 0 0 4px rgba(176,141,87,.2)}

/* Étiquettes / tags */
.tag-list{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.4rem 0}
.tag-list a,.tag-list span{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;
  color:var(--bordeaux);background:var(--cream);border:1px solid var(--gold-soft);border-radius:var(--pill);
  padding:.3rem .8rem;transition:.16s}
.tag-list a:hover{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux)}

/* Affichage d'une note en étoiles (statique) */
.star-rating{display:inline-flex;align-items:center;gap:.15rem;color:var(--gold)}
.star-rating svg{width:18px;height:18px;fill:currentColor;stroke:none}
.star-rating .empty{color:var(--gold-soft)}
.star-rating .rating-count{margin-left:.5rem;font-size:.82rem;color:var(--muted);font-weight:600}

/* Formulaires génériques (pages de contact, etc.) */
.form-field{margin-bottom:1.1rem}
.form-field label{display:block;font-weight:600;font-size:.88rem;color:var(--ink);margin-bottom:.4rem}
.form-field input,.form-field textarea,.form-field select{width:100%;border:1px solid var(--line);
  border-radius:12px;padding:.8rem 1rem;font-family:inherit;font-size:1rem;color:var(--ink);background:var(--cream)}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;
  border-color:var(--bordeaux);box-shadow:0 0 0 3px rgba(110,20,35,.12);background:#fff}
.form-note{font-size:.82rem;color:var(--muted)}

/* Encadrés d'appel colorés (utilisables dans le contenu) */
.callout{border:1px solid var(--line);border-left:3px solid var(--bordeaux);border-radius:var(--radius);
  padding:1.1rem 1.3rem;margin:1.8rem 0;background:var(--surface-warm)}
.callout.callout-gold{border-left-color:var(--gold);background:var(--cream)}
.callout.callout-terracotta{border-left-color:var(--terracotta)}
.callout .callout-title{font-family:var(--font-title);font-weight:700;color:var(--bordeaux-deep);margin-bottom:.3rem}

/* Grille de valeurs nutritionnelles (optionnelle sur une fiche) */
.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.8rem;margin:1.6rem 0}
.nutrition-item{text-align:center;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem .5rem}
.nutrition-item .nv{font-family:var(--font-title);font-weight:700;font-size:1.2rem;color:var(--bordeaux);display:block}
.nutrition-item .nl{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}

/* Bandeau accord mets & vins (motif propre à la gastronomie) */
.pairing{display:flex;align-items:center;gap:1rem;background:var(--bordeaux-deep);color:var(--cream);
  border-radius:var(--radius-lg);padding:1.2rem 1.4rem;margin:2rem 0}
.pairing .pairing-ic{flex:0 0 auto;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;
  background:rgba(217,195,155,.16);color:var(--gold-soft)}
.pairing .pairing-ic svg{width:24px;height:24px}
.pairing .pairing-body strong{display:block;font-family:var(--font-title);font-size:1.05rem;color:#fff}
.pairing .pairing-body span{font-size:.9rem;color:rgba(251,246,238,.82)}

/* Liens « voir plus » centrés */
.more-row{text-align:center;margin-top:2rem}

/* Raffinement : premières lettres seulement sur les articles, pas les pages courtes */
.page-content>p:first-of-type::first-letter{font-size:inherit;float:none;color:inherit;font-weight:inherit;padding:0}

/* Survol des cartes : liseré or subtil */
.recipe-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 0 var(--gold-soft);transition:box-shadow .2s ease}
.recipe-card:hover::after{box-shadow:inset 0 0 0 1.5px var(--gold-soft)}

/* Détails / accordéons (CSP-friendly : pas de JS requis) */
.post-content details{border:1px solid var(--line);border-radius:var(--radius);padding:.2rem 1.1rem;margin:1.2rem 0;
  background:var(--surface-warm)}
.post-content details[open]{box-shadow:var(--shadow-xs)}
.post-content summary{cursor:pointer;font-weight:600;padding:.9rem 0;color:var(--bordeaux-deep);
  list-style:none;display:flex;align-items:center;gap:.6rem}
.post-content summary::-webkit-details-marker{display:none}
.post-content summary::before{content:"+";font-family:var(--font-title);font-size:1.2rem;color:var(--gold);
  width:1.2rem;text-align:center;transition:transform .2s ease}
.post-content details[open] summary::before{content:"\2013"}

/* Section titre centré variante */
.section-head.centered{justify-content:center;text-align:center;flex-direction:column;gap:.35rem}
.section-head.centered h2::after{left:50%;transform:translateX(-50%)}

/* Léger halo derrière le titre de héros pour lisibilité maximale */
.hero-title::selection{background:rgba(217,195,155,.35)}

/* Ajustements fins mobiles pour la typographie */
@media(max-width:640px){
  .post-content>p:first-of-type::first-letter{font-size:2.8rem}
  .recipe-lede{font-size:1.16rem}
  .philosophy-card{padding:1.8rem 1.3rem}
  .cta-form{flex-direction:column}
  .cta-form input,.cta-form .btn{width:100%;justify-content:center}
  .nf-actions .btn{width:100%;justify-content:center}
}

/* Très grands écrans : on aère un peu plus */
@media(min-width:1440px){
  :root{--wrap:1240px}
  .hero-inner{max-width:1040px}
}

/* Impression complémentaire : masquer les ornements décoratifs */
@media print{
  .footer-rule,.stat-rule,.qc-divider,.eyebrow::before{display:none!important}
  .post-content details{border:1px solid #ccc}
  .post-content>p:first-of-type::first-letter{color:#000}
}
/* ── Fin des compléments ────────────────────────────────────────────────── */

/* ══════════════════════════════════════════════════════════════════════════
   UTILITAIRES DE MISE EN PAGE & COMPATIBILITÉ CONTENU
   ════════════════════════════════════════════════════════════════════════ */

/* Espacements verticaux réutilisables */
.mt-0{margin-top:0}.mt-1{margin-top:.6rem}.mt-2{margin-top:1.2rem}.mt-3{margin-top:2rem}.mt-4{margin-top:3rem}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:.6rem}.mb-2{margin-bottom:1.2rem}.mb-3{margin-bottom:2rem}.mb-4{margin-bottom:3rem}
.text-center{text-align:center}
.text-muted{color:var(--muted)}
.text-bordeaux{color:var(--bordeaux)}
.serif{font-family:var(--font-title)}
.lead{font-size:1.15rem;line-height:1.75;color:var(--ink)}

/* Grilles génériques d'appoint */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
@media(max-width:820px){.grid-2,.grid-3{grid-template-columns:1fr}}

/* Chips / puces d'information (temps, difficulté, saison) */
.chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:var(--bordeaux-deep);
  background:var(--cream);border:1px solid var(--line);border-radius:var(--pill);padding:.35rem .8rem}
.chip svg{width:15px;height:15px;color:var(--gold)}
.chip.chip-solid{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux)}
.chip.chip-solid svg{color:var(--gold-soft)}

/* Alignements de blocs façon éditeur (compat contenu HTML riche) */
.post-content .aligncenter{margin-inline:auto;text-align:center}
.post-content .alignright{margin-left:auto}
.post-content .alignleft{margin-right:auto}
.post-content .wp-caption{max-width:100%}
.post-content .wp-caption-text{font-family:var(--font-alt);font-style:italic;color:var(--muted);
  font-size:.92rem;text-align:center;margin-top:.5rem}

/* Bouton texte discret avec flèche */
.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--bordeaux)}
.link-arrow svg{width:16px;height:16px;transition:transform .2s ease}
.link-arrow:hover svg{transform:translateX(4px)}

/* Accent chromatique par position pour les univers (subtil filet supérieur) */
.universe-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:2;
  background:linear-gradient(90deg,var(--gold),var(--terracotta));opacity:0;transition:opacity .2s ease}
.universe-card:hover::before{opacity:1}

/* Skeleton de chargement (si une image tarde) */
.skeleton{position:relative;overflow:hidden;background:var(--cream-2)}
.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:sk 1.4s infinite}
@keyframes sk{100%{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.skeleton::after{animation:none}}

/* Encart « à la une » textuel (bandeau sobre) */
.notice{display:flex;align-items:center;gap:.7rem;background:var(--cream);border:1px solid var(--gold-soft);
  border-radius:var(--radius);padding:.9rem 1.2rem;color:var(--bordeaux-deep);font-size:.95rem}
.notice svg{width:20px;height:20px;color:var(--gold);flex:0 0 auto}

/* Sommaire d'article (table of contents) */
.toc{background:var(--surface-warm);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:1.2rem 1.4rem;margin:0 0 2rem}
.toc-title{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;
  font-weight:700;color:var(--bordeaux);margin-bottom:.7rem}
.toc ol{margin:0;padding-left:1.2rem}
.toc li{margin-bottom:.4rem}
.toc a{color:var(--ink);text-decoration:none}
.toc a:hover{color:var(--bordeaux)}

/* Galerie d'images simple */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem;margin:1.8rem 0}
.gallery img{border-radius:var(--radius);width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;box-shadow:var(--shadow-xs)}

/* Bandeau de progression de lecture — variante épaisse sur desktop */
@media(min-width:1000px){.reading-progress{height:4px}}

/* Micro-interaction sur les boutons du héros (halo doux) */
.hero-cta .btn{box-shadow:0 8px 30px rgba(0,0,0,.18)}
.hero-cta .btn-cream:hover{box-shadow:0 10px 34px rgba(176,141,87,.4)}

/* Nav : indication d'univers actif via petit point or */
.site-nav>li.active>a::before{content:"";position:absolute;top:.5rem;left:.35rem;width:5px;height:5px;
  border-radius:50%;background:var(--gold)}
@media(max-width:900px){.site-nav>li.active>a::before{display:none}}

/* Barre de recherche mobile : reste a gauche du hamburger (hamburger colle a droite) */
@media(max-width:900px){
  .nav-search{margin-inline:0}
  .nav-search-form{right:0;left:auto;transform:none;width:min(90vw,360px)}
}

/* Cartes en pleine largeur sur très petit écran : image un peu moins haute */
@media(max-width:420px){
  .recipe-card .thumb{aspect-ratio:16/10}
  .hero-title{font-size:2.4rem}
}

/* Amélioration du rendu des puces d'ingrédients au clavier */
.ingredient-check:focus-visible{border-color:var(--bordeaux)}

/* Filet or de fin de section éditoriale */
.section .editorial:last-child{margin-bottom:0}

/* Cohérence des couleurs de sélection dans les zones sombres */
.cta-band ::selection,.site-footer ::selection,.hero ::selection{background:var(--gold-soft);color:var(--bordeaux-deep)}

/* Espace de respiration entre header collant et ancre (#chiffres, etc.) */
:target{scroll-margin-top:calc(var(--header-h) + 20px)}

/* Assure un contraste suffisant des liens dans l'éditorial sur fond crème */
.editorial a{color:var(--bordeaux);text-decoration:underline;text-decoration-color:var(--gold-soft);
  text-underline-offset:3px}
.editorial a:hover{text-decoration-color:var(--bordeaux)}

/* Fin */
/* ── Fin des utilitaires ────────────────────────────────────────────────── */

/* ══════════════════════════════════════════════════════════════════════════
   ACCUEIL v2 — 3 derniers articles, carrousel rubriques, section éditoriale
   ════════════════════════════════════════════════════════════════════════ */

/* ── Les 3 derniers articles (carte = UN SEUL lien) ─────────────────────── */
.latest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.7rem}
.latest-card{position:relative;display:flex;flex-direction:column;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;color:var(--ink);
  box-shadow:var(--shadow-xs);transition:transform .2s ease,box-shadow .2s ease}
.latest-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);color:var(--ink)}
.latest-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 0 var(--gold-soft);transition:box-shadow .2s ease}
.latest-card:hover::after{box-shadow:inset 0 0 0 1.5px var(--gold-soft)}
.latest-media{position:relative;aspect-ratio:4/3;overflow:hidden;display:block;
  background:linear-gradient(135deg,var(--cream-2),var(--cream))}
.latest-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.latest-card:hover .latest-media img{transform:scale(1.06)}
.latest-fallback{position:absolute;inset:0;display:grid;place-items:center;color:var(--gold-soft)}
.latest-fallback svg{width:52px;height:52px}
.latest-media .cat-badge{position:absolute;top:.8rem;left:.8rem;background:var(--bordeaux);color:#fff;
  font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;padding:.36rem .7rem;
  border-radius:var(--pill);box-shadow:0 4px 12px rgba(76,13,24,.28)}
.latest-media .cat-badge.alt{background:var(--terracotta)}
.latest-body{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.latest-date{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--muted);font-weight:600}
.latest-date svg{width:14px;height:14px;color:var(--gold)}
.latest-title{font-family:var(--font-title);font-size:1.32rem;font-weight:600;line-height:1.25;color:var(--ink)}
.latest-card:hover .latest-title{color:var(--bordeaux)}
.latest-excerpt{font-size:.92rem;color:var(--muted);line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.latest-cta{margin-top:auto;display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;color:var(--bordeaux);padding-top:.35rem}
.latest-cta svg{width:16px;height:16px;transition:transform .2s ease}
.latest-card:hover .latest-cta svg{transform:translateX(4px)}

/* ── Carrousel des rubriques ────────────────────────────────────────────── */
.carousel-nav{display:flex;gap:.5rem;flex-shrink:0}
.carousel-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);
  color:var(--bordeaux);cursor:pointer;display:grid;place-items:center;transition:.16s}
.carousel-btn:hover:not(:disabled){background:var(--bordeaux);color:#fff;border-color:var(--bordeaux)}
.carousel-btn:disabled{opacity:.35;cursor:default}
.carousel-btn svg{width:20px;height:20px}
.carousel{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--gold-soft) transparent;
  margin:0 -.4rem;padding:.4rem;cursor:grab}
.carousel.dragging{cursor:grabbing;scroll-snap-type:none}
.carousel.dragging a{pointer-events:none}
.carousel::-webkit-scrollbar{height:8px}
.carousel::-webkit-scrollbar-thumb{background:var(--gold-soft);border-radius:8px}
.carousel::-webkit-scrollbar-track{background:transparent}
.carousel:focus-visible{outline:2px solid var(--bordeaux);outline-offset:3px;border-radius:var(--radius)}
.carousel-track{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem}
.carousel-item{flex:0 0 clamp(240px,28vw,300px);scroll-snap-align:start}
.carousel-item .universe-card{width:100%;height:100%;user-select:none}
.carousel-item .universe-card img{pointer-events:none}

/* ── Section éditoriale de la home ──────────────────────────────────────── */
.home-editorial{max-width:var(--measure);margin-inline:auto;font-size:1.06rem;line-height:1.8;color:var(--ink)}
.home-editorial>*:first-child{margin-top:0}
.home-editorial>*:last-child{margin-bottom:0}
.home-editorial h2{font-size:clamp(1.6rem,3.2vw,2.2rem);margin:1.8em 0 .5em;position:relative;padding-bottom:.4rem}
.home-editorial h2::after{content:"";position:absolute;left:0;bottom:0;width:60px;height:2px;background:var(--gold)}
.home-editorial h3{font-size:1.32rem;margin:1.5em 0 .5em;color:var(--bordeaux-deep)}
.home-editorial p{margin:0 0 1.15em}
.home-editorial a{color:var(--bordeaux);text-decoration:underline;text-decoration-color:var(--gold-soft);
  text-underline-offset:3px;text-decoration-thickness:1.5px}
.home-editorial a:hover{text-decoration-color:var(--bordeaux)}
.home-editorial ul,.home-editorial ol{padding-left:1.4em;margin:0 0 1.3em}
.home-editorial li{margin-bottom:.5em}
.home-editorial ul li::marker{color:var(--gold)}
.home-editorial blockquote{font-family:var(--font-alt);font-style:italic;font-size:1.28rem;line-height:1.6;
  border-left:3px solid var(--gold);background:var(--cream);margin:1.8rem 0;padding:1.1rem 1.4rem;
  border-radius:0 var(--radius) var(--radius) 0;color:var(--bordeaux-deep)}
.home-editorial img{border-radius:var(--radius-lg);margin:1.6rem auto;box-shadow:var(--shadow)}

/* Tableaux : en-tête bordeaux, lignes zébrées crème */
/* tableaux .home-editorial : voir le style unifié plus haut */
.post-content tbody tr:first-child td,.editorial tbody tr:first-child td,.home-editorial tbody tr:first-child td{border-top:none}
.post-content tbody td:first-child,.editorial tbody td:first-child,.home-editorial tbody td:first-child{font-weight:600;color:var(--bordeaux-deep)}
.post-content tbody tr:hover,.editorial tbody tr:hover,.home-editorial tbody tr:hover{background:var(--cream-2,#F3EADD)}
@media(max-width:640px){.post-content table,.editorial table,.home-editorial table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:.88rem}
  .post-content th,.post-content td,.editorial th,.editorial td,.home-editorial th,.home-editorial td{padding:.6rem .7rem}}
.post-content hr{border:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);margin:2.4rem 0}

/* Encadré astuce (si présent dans le contenu) */
.tip-box{background:var(--cream);border-left:3px solid var(--gold);border-radius:var(--radius);
  padding:1.2rem 1.4rem;margin:1.9rem 0}
.tip-box .tip-title{font-family:var(--font-title);font-weight:700;color:var(--bordeaux);
  display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}

/* Auteur */
.author-box{display:flex;gap:1.1rem;align-items:center;background:var(--surface-warm);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:1.3rem;margin:2.6rem 0}
.author-box .avatar{width:58px;height:58px;border-radius:50%;background:var(--bordeaux);color:#fff;
  display:grid;place-items:center;font-family:var(--font-title);font-weight:700;font-size:1.5rem;flex-shrink:0;
  box-shadow:var(--shadow-gold)}
.author-box .who{font-weight:700;color:var(--ink)}
.author-box .who span{display:block;font-weight:500;color:var(--muted);font-size:.85rem}

/* Suggestions */
.related{margin-top:3.4rem}
.related .section-head{justify-content:center;text-align:center;flex-direction:column;gap:.3rem}

/* ── Page 404 ───────────────────────────────────────────────────────────── */
.notfound{padding:clamp(3rem,8vw,6rem) 0;text-align:center}
.nf-code{display:block;font-family:var(--font-title);font-weight:700;font-size:clamp(5rem,18vw,11rem);
  line-height:.9;color:var(--cream-2);letter-spacing:-.02em;margin-bottom:.4rem}
.notfound h1{margin:.5rem 0 .4em}
.notfound>.container>p{max-width:52ch;margin:0 auto;color:var(--muted);font-size:1.08rem}
.nf-actions{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin:1.8rem 0 0}
.nf-suggest{margin-top:3.6rem;text-align:left}
.nf-suggest .section-head{justify-content:center;text-align:center;flex-direction:column;gap:.3rem}

/* ── Footer ─────────────────────────────────────────────────────────────── */
.site-footer{background:var(--bordeaux-deep);color:var(--cream);margin-top:0;position:relative}
.footer-rule{height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.footer-top{display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:2.4rem;padding:3.2rem clamp(1.1rem,4vw,2.2rem) 2.4rem}
.footer-brand .footer-wordmark .logo-name{color:#fff;font-size:1.7rem}
.footer-logo-badge{height:64px;width:64px;object-fit:contain;background:#fff;border-radius:50%;padding:9px;
  box-sizing:border-box;box-shadow:0 4px 16px rgba(0,0,0,.3)}
.footer-brand p{color:rgba(251,246,238,.72);font-size:.94rem;max-width:44ch;margin-top:1rem;line-height:1.7}
.footer-social{display:inline-flex;align-items:center;gap:.55rem;margin-top:1rem;color:#fff;font-weight:600;font-size:.9rem}
.footer-social svg{width:26px;height:26px;color:var(--gold-soft)}
.footer-social:hover{color:var(--gold-soft)}
.footer-col h4{color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:1.1rem;
  font-family:var(--font-body);font-weight:700;position:relative;padding-bottom:.6rem}
.footer-col h4::after{content:"";position:absolute;left:0;bottom:0;width:28px;height:2px;background:var(--gold)}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col li{margin-bottom:.6rem}
.footer-col a{color:rgba(251,246,238,.78);font-size:.94rem}
.footer-col a:hover{color:var(--gold-soft)}
.footer-widgets :is(h1,h2,h3,h4){color:#fff}
.footer-bottom{border-top:1px solid rgba(217,195,155,.16);padding:1.3rem 0;font-size:.84rem;
  color:rgba(251,246,238,.6);text-align:center}

/* ── Éléments flottants ─────────────────────────────────────────────────── */
.reading-progress{position:fixed;top:0;left:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--gold),var(--bordeaux));z-index:2000;transition:width .1s}
.back-to-top{position:fixed;right:1.2rem;bottom:1.2rem;width:48px;height:48px;border-radius:50%;border:none;
  background:var(--bordeaux);color:#fff;cursor:pointer;display:grid;place-items:center;
  opacity:0;visibility:hidden;transform:translateY(12px);transition:.22s;z-index:1500;box-shadow:var(--shadow-lg)} /* bas-droite, < 2147482000 : sous la banniere/bouton cookies */
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:var(--bordeaux-2)}
.back-to-top svg{width:22px;height:22px}

/* ── Animations de révélation ───────────────────────────────────────────── */
.reveal{opacity:1}
@media (prefers-reduced-motion:no-preference){
  .reveal{animation:revealIn .7s both}
  .hero-title.reveal{animation-delay:.08s}
  .hero-sub.reveal{animation-delay:.16s}
  .hero-cta.reveal{animation-delay:.24s}
  .universe-card.reveal{animation-delay:calc(var(--i,0) * .08s)}
}
@keyframes revealIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════════════════ */
@media(max-width:1080px){
  .universe-grid{grid-template-columns:repeat(2,1fr)}
  .footer-top{grid-template-columns:1.5fr 1fr 1fr}
}
@media(max-width:960px){
  .featured-grid{grid-template-columns:1fr}
  .featured-side{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  :root{--header-h:70px}
  .site-logo{order:1;margin-right:auto}
  .nav-search{order:2}
  .nav-toggle{display:flex;order:3;margin-left:.2rem}
  .site-nav-wrap{order:4}
  .header-inner{gap:.7rem}
  .site-nav{position:fixed;top:0;right:0;bottom:0;width:min(86vw,380px);background:var(--surface);
    flex-direction:column;align-items:stretch;gap:0;padding:5.2rem 1.3rem 2rem;transform:translateX(100%);
    transition:transform .28s cubic-bezier(.22,1,.36,1);z-index:1100;box-shadow:var(--shadow-lg);overflow-y:auto;
    border-left:1px solid var(--line)}
  .site-nav.open{transform:translateX(0)}
  .site-nav>li{border-bottom:1px solid var(--line)}
  .site-nav>li>a{padding:.95rem .6rem;font-size:.82rem;letter-spacing:.1em}
  .site-nav>li>a::after{display:none}
  .site-nav .has-children{display:flex;flex-wrap:wrap;align-items:center}
  .site-nav .has-children>a{flex:1}
  .site-nav .sub-toggle{display:grid;place-items:center;width:40px;height:40px;background:var(--cream);
    border:1px solid var(--line);border-radius:10px;color:var(--bordeaux);cursor:pointer;font-size:1rem}
  .site-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;
    background:transparent;padding:.2rem 0 .6rem .6rem;margin:0;flex-basis:100%;display:none}
  .site-nav .sub-menu::before{display:none}
  .site-nav .sub-menu.open{display:block}
  .footer-top{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1 / -1}
}
@media(max-width:760px){
  .qc-stats{grid-template-columns:repeat(2,1fr);gap:.6rem}
  .qc-stat:nth-child(2)::after{display:none}
  .universe-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  body{font-size:16px}
  .ingredients{grid-template-columns:1fr}
  .featured-side{grid-template-columns:1fr}
  .universe-grid{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr;gap:1.8rem}
  .section-head{flex-direction:column;align-items:flex-start;gap:.5rem}
  .hero-scroll{display:none}
  .cta-form input{flex-basis:100%}
  .recipe-card-feature h3{font-size:1.4rem}
}

/* ── prefers-reduced-motion ─────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;animation:none!important}
  .hero-bg{transform:none!important}
  .hero-scroll-dot{animation:none}
  *{scroll-behavior:auto!important}
  .recipe-card,.universe-card,.meta-pill{transition:none}
}

/* ── Impression ─────────────────────────────────────────────────────────── */
@media print{
  .site-header,.site-footer,.breadcrumb-wrap,.back-to-top,.reading-progress,
  .recipe-actions,.related,.author-box,.nav-overlay,.hero-scroll,.cta-band{display:none!important}
  body{background:#fff;font-size:12pt;color:#000}
  .post-wrap{max-width:100%;padding:0}
  .post-hero{box-shadow:none;aspect-ratio:auto;max-height:8cm}
  .recipe-meta-card,.recipe-card{box-shadow:none;border:1px solid #ccc}
  .steps li::before{box-shadow:none;background:#000}
  .ingredient-check .tick{border-color:#000}
  a{color:#000;text-decoration:none}
}

/* ══════════════════════════════════════════════════════════════════════════
   SECTION AVIS / COMMENTAIRES (partiel du cœur) — charte bordeaux
   Le partiel utilise --primary/--border/--text/--card-bg (mappés plus haut).
   ════════════════════════════════════════════════════════════════════════ */
#comments{margin-top:3.4rem;max-width:var(--measure);margin-inline:auto}
#comments h2,#comments h3{font-family:var(--font-title);letter-spacing:-.005em}
#comments>div{box-shadow:var(--shadow)!important;border-radius:var(--radius-lg)!important;border-color:var(--line)!important}
#comments input:not([type=checkbox]):not([type=radio]),
#comments textarea{border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;background:var(--cream);
  font-family:inherit;font-size:.95rem;color:var(--ink);transition:border-color .15s,box-shadow .15s;margin-top:.2rem}
#comments input:not([type=checkbox]):not([type=radio]):focus,
#comments textarea:focus{outline:none;border-color:var(--bordeaux);box-shadow:0 0 0 3px rgba(110,20,35,.12);background:#fff}
#comments .btn,#comments .btn-primary{background:var(--bordeaux)!important;border:none!important;color:#fff!important;
  border-radius:var(--pill)!important;padding:.82rem 1.7rem!important;font-weight:600;letter-spacing:.01em;
  box-shadow:var(--shadow-gold);transition:transform .15s,box-shadow .15s,background .15s}
#comments .btn:hover,#comments .btn-primary:hover{background:var(--bordeaux-2)!important;transform:translateY(-2px)}
#comments [role=tab]{font-family:var(--font-body);font-weight:700!important;border-radius:10px 10px 0 0;transition:.15s}
#comments [role=tab][aria-selected=true]{background:var(--cream)}
.qc-rate-input label{font-size:2.1rem}
.qc-rate-input label:hover,.qc-rate-input label:hover ~ label,
.qc-rate-input input:checked ~ label{color:var(--gold)}

/* ── Fin de la feuille de style ─────────────────────────────────────────── */

/* ══════════════════════════════════════════════════════════════════════════
   COMPLÉMENTS — typographie de contenu, ornements, formulaires, états
   ════════════════════════════════════════════════════════════════════════ */

/* Accessibilité : masquage visuel conservant le lecteur d'écran */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Figures et légendes dans le corps rédactionnel */
.post-content figure{margin:1.8rem 0}
.post-content figure img{margin:0}
.post-content figcaption{margin-top:.6rem;text-align:center;font-family:var(--font-alt);font-style:italic;
  font-size:.95rem;color:var(--muted);line-height:1.5}
.post-content figure.align-wide{margin-inline:calc(50% - 50vw);max-width:100vw}
@media(min-width:1000px){
  .post-content figure.align-left{float:left;max-width:46%;margin:.4rem 1.6rem 1.2rem 0}
  .post-content figure.align-right{float:right;max-width:46%;margin:.4rem 0 1.2rem 1.6rem}
}

/* Listes de définition (fiches, glossaires) */
.post-content dl{margin:1.4rem 0;display:grid;grid-template-columns:auto 1fr;gap:.6rem 1.2rem}
.post-content dt{font-weight:700;color:var(--bordeaux-deep);font-family:var(--font-body)}
.post-content dd{margin:0;color:var(--ink)}

/* Code et raccourcis (rare mais possible dans un billet) */
.post-content code{font-family:'SFMono-Regular',Menlo,Consolas,monospace;font-size:.9em;
  background:var(--cream-2);border:1px solid var(--line);border-radius:6px;padding:.1em .4em;color:var(--bordeaux-deep)}
.post-content kbd{font-family:inherit;font-size:.82em;background:var(--ink);color:var(--cream);
  border-radius:6px;padding:.15em .5em;box-shadow:0 2px 0 rgba(0,0,0,.3)}
.post-content pre{background:var(--ink);color:var(--cream);padding:1.1rem 1.3rem;border-radius:var(--radius);
  overflow:auto;margin:1.6rem 0}
.post-content pre code{background:transparent;border:none;color:inherit;padding:0}

/* Citation avec attribution */
.post-content blockquote cite{display:block;margin-top:.6rem;font-style:normal;font-size:.85rem;
  font-family:var(--font-body);color:var(--muted);letter-spacing:.04em}
.post-content blockquote cite::before{content:"\2014 \00a0"}

/* Ornement séparateur (utilisable en éditorial : <div class="qc-divider">) */
.qc-divider{display:flex;align-items:center;gap:1rem;color:var(--gold);margin:2.4rem auto;max-width:380px}
.qc-divider::before,.qc-divider::after{content:"";height:1px;flex:1;
  background:linear-gradient(90deg,transparent,var(--gold-soft))}
.qc-divider::after{background:linear-gradient(90deg,var(--gold-soft),transparent)}
.qc-divider .qc-divider-mark{width:8px;height:8px;border-radius:50%;background:var(--gold);flex:0 0 auto;
  box-shadow:0 0 0 4px rgba(176,141,87,.2)}

/* Étiquettes / tags */
.tag-list{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.4rem 0}
.tag-list a,.tag-list span{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;
  color:var(--bordeaux);background:var(--cream);border:1px solid var(--gold-soft);border-radius:var(--pill);
  padding:.3rem .8rem;transition:.16s}
.tag-list a:hover{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux)}

/* Affichage d'une note en étoiles (statique) */
.star-rating{display:inline-flex;align-items:center;gap:.15rem;color:var(--gold)}
.star-rating svg{width:18px;height:18px;fill:currentColor;stroke:none}
.star-rating .empty{color:var(--gold-soft)}
.star-rating .rating-count{margin-left:.5rem;font-size:.82rem;color:var(--muted);font-weight:600}

/* Formulaires génériques (pages de contact, etc.) */
.form-field{margin-bottom:1.1rem}
.form-field label{display:block;font-weight:600;font-size:.88rem;color:var(--ink);margin-bottom:.4rem}
.form-field input,.form-field textarea,.form-field select{width:100%;border:1px solid var(--line);
  border-radius:12px;padding:.8rem 1rem;font-family:inherit;font-size:1rem;color:var(--ink);background:var(--cream)}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;
  border-color:var(--bordeaux);box-shadow:0 0 0 3px rgba(110,20,35,.12);background:#fff}
.form-note{font-size:.82rem;color:var(--muted)}

/* Encadrés d'appel colorés (utilisables dans le contenu) */
.callout{border:1px solid var(--line);border-left:3px solid var(--bordeaux);border-radius:var(--radius);
  padding:1.1rem 1.3rem;margin:1.8rem 0;background:var(--surface-warm)}
.callout.callout-gold{border-left-color:var(--gold);background:var(--cream)}
.callout.callout-terracotta{border-left-color:var(--terracotta)}
.callout .callout-title{font-family:var(--font-title);font-weight:700;color:var(--bordeaux-deep);margin-bottom:.3rem}

/* Grille de valeurs nutritionnelles (optionnelle sur une fiche) */
.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.8rem;margin:1.6rem 0}
.nutrition-item{text-align:center;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem .5rem}
.nutrition-item .nv{font-family:var(--font-title);font-weight:700;font-size:1.2rem;color:var(--bordeaux);display:block}
.nutrition-item .nl{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}

/* Bandeau accord mets & vins (motif propre à la gastronomie) */
.pairing{display:flex;align-items:center;gap:1rem;background:var(--bordeaux-deep);color:var(--cream);
  border-radius:var(--radius-lg);padding:1.2rem 1.4rem;margin:2rem 0}
.pairing .pairing-ic{flex:0 0 auto;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;
  background:rgba(217,195,155,.16);color:var(--gold-soft)}
.pairing .pairing-ic svg{width:24px;height:24px}
.pairing .pairing-body strong{display:block;font-family:var(--font-title);font-size:1.05rem;color:#fff}
.pairing .pairing-body span{font-size:.9rem;color:rgba(251,246,238,.82)}

/* Liens « voir plus » centrés */
.more-row{text-align:center;margin-top:2rem}

/* Raffinement : premières lettres seulement sur les articles, pas les pages courtes */
.page-content>p:first-of-type::first-letter{font-size:inherit;float:none;color:inherit;font-weight:inherit;padding:0}

/* Survol des cartes : liseré or subtil */
.recipe-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 0 var(--gold-soft);transition:box-shadow .2s ease}
.recipe-card:hover::after{box-shadow:inset 0 0 0 1.5px var(--gold-soft)}

/* Détails / accordéons (CSP-friendly : pas de JS requis) */
.post-content details{border:1px solid var(--line);border-radius:var(--radius);padding:.2rem 1.1rem;margin:1.2rem 0;
  background:var(--surface-warm)}
.post-content details[open]{box-shadow:var(--shadow-xs)}
.post-content summary{cursor:pointer;font-weight:600;padding:.9rem 0;color:var(--bordeaux-deep);
  list-style:none;display:flex;align-items:center;gap:.6rem}
.post-content summary::-webkit-details-marker{display:none}
.post-content summary::before{content:"+";font-family:var(--font-title);font-size:1.2rem;color:var(--gold);
  width:1.2rem;text-align:center;transition:transform .2s ease}
.post-content details[open] summary::before{content:"\2013"}

/* Section titre centré variante */
.section-head.centered{justify-content:center;text-align:center;flex-direction:column;gap:.35rem}
.section-head.centered h2::after{left:50%;transform:translateX(-50%)}

/* Léger halo derrière le titre de héros pour lisibilité maximale */
.hero-title::selection{background:rgba(217,195,155,.35)}

/* Ajustements fins mobiles pour la typographie */
@media(max-width:640px){
  .post-content>p:first-of-type::first-letter{font-size:2.8rem}
  .recipe-lede{font-size:1.16rem}
  .philosophy-card{padding:1.8rem 1.3rem}
  .cta-form{flex-direction:column}
  .cta-form input,.cta-form .btn{width:100%;justify-content:center}
  .nf-actions .btn{width:100%;justify-content:center}
}

/* Très grands écrans : on aère un peu plus */
@media(min-width:1440px){
  :root{--wrap:1240px}
  .hero-inner{max-width:1040px}
}

/* Impression complémentaire : masquer les ornements décoratifs */
@media print{
  .footer-rule,.stat-rule,.qc-divider,.eyebrow::before{display:none!important}
  .post-content details{border:1px solid #ccc}
  .post-content>p:first-of-type::first-letter{color:#000}
}
/* ── Fin des compléments ────────────────────────────────────────────────── */

/* ══════════════════════════════════════════════════════════════════════════
   UTILITAIRES DE MISE EN PAGE & COMPATIBILITÉ CONTENU
   ════════════════════════════════════════════════════════════════════════ */

/* Espacements verticaux réutilisables */
.mt-0{margin-top:0}.mt-1{margin-top:.6rem}.mt-2{margin-top:1.2rem}.mt-3{margin-top:2rem}.mt-4{margin-top:3rem}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:.6rem}.mb-2{margin-bottom:1.2rem}.mb-3{margin-bottom:2rem}.mb-4{margin-bottom:3rem}
.text-center{text-align:center}
.text-muted{color:var(--muted)}
.text-bordeaux{color:var(--bordeaux)}
.serif{font-family:var(--font-title)}
.lead{font-size:1.15rem;line-height:1.75;color:var(--ink)}

/* Grilles génériques d'appoint */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
@media(max-width:820px){.grid-2,.grid-3{grid-template-columns:1fr}}

/* Chips / puces d'information (temps, difficulté, saison) */
.chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:var(--bordeaux-deep);
  background:var(--cream);border:1px solid var(--line);border-radius:var(--pill);padding:.35rem .8rem}
.chip svg{width:15px;height:15px;color:var(--gold)}
.chip.chip-solid{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux)}
.chip.chip-solid svg{color:var(--gold-soft)}

/* Alignements de blocs façon éditeur (compat contenu HTML riche) */
.post-content .aligncenter{margin-inline:auto;text-align:center}
.post-content .alignright{margin-left:auto}
.post-content .alignleft{margin-right:auto}
.post-content .wp-caption{max-width:100%}
.post-content .wp-caption-text{font-family:var(--font-alt);font-style:italic;color:var(--muted);
  font-size:.92rem;text-align:center;margin-top:.5rem}

/* Bouton texte discret avec flèche */
.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--bordeaux)}
.link-arrow svg{width:16px;height:16px;transition:transform .2s ease}
.link-arrow:hover svg{transform:translateX(4px)}

/* Accent chromatique par position pour les univers (subtil filet supérieur) */
.universe-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:2;
  background:linear-gradient(90deg,var(--gold),var(--terracotta));opacity:0;transition:opacity .2s ease}
.universe-card:hover::before{opacity:1}

/* Skeleton de chargement (si une image tarde) */
.skeleton{position:relative;overflow:hidden;background:var(--cream-2)}
.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:sk 1.4s infinite}
@keyframes sk{100%{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.skeleton::after{animation:none}}

/* Encart « à la une » textuel (bandeau sobre) */
.notice{display:flex;align-items:center;gap:.7rem;background:var(--cream);border:1px solid var(--gold-soft);
  border-radius:var(--radius);padding:.9rem 1.2rem;color:var(--bordeaux-deep);font-size:.95rem}
.notice svg{width:20px;height:20px;color:var(--gold);flex:0 0 auto}

/* Sommaire d'article (table of contents) */
.toc{background:var(--surface-warm);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:1.2rem 1.4rem;margin:0 0 2rem}
.toc-title{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;
  font-weight:700;color:var(--bordeaux);margin-bottom:.7rem}
.toc ol{margin:0;padding-left:1.2rem}
.toc li{margin-bottom:.4rem}
.toc a{color:var(--ink);text-decoration:none}
.toc a:hover{color:var(--bordeaux)}

/* Galerie d'images simple */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem;margin:1.8rem 0}
.gallery img{border-radius:var(--radius);width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;box-shadow:var(--shadow-xs)}

/* Bandeau de progression de lecture — variante épaisse sur desktop */
@media(min-width:1000px){.reading-progress{height:4px}}

/* Micro-interaction sur les boutons du héros (halo doux) */
.hero-cta .btn{box-shadow:0 8px 30px rgba(0,0,0,.18)}
.hero-cta .btn-cream:hover{box-shadow:0 10px 34px rgba(176,141,87,.4)}

/* Nav : indication d'univers actif via petit point or */
.site-nav>li.active>a::before{content:"";position:absolute;top:.5rem;left:.35rem;width:5px;height:5px;
  border-radius:50%;background:var(--gold)}
@media(max-width:900px){.site-nav>li.active>a::before{display:none}}

/* Barre de recherche mobile : reste a gauche du hamburger (hamburger colle a droite) */
@media(max-width:900px){
  .nav-search{margin-inline:0}
  .nav-search-form{right:0;left:auto;transform:none;width:min(90vw,360px)}
}

/* Cartes en pleine largeur sur très petit écran : image un peu moins haute */
@media(max-width:420px){
  .recipe-card .thumb{aspect-ratio:16/10}
  .hero-title{font-size:2.4rem}
}

/* Amélioration du rendu des puces d'ingrédients au clavier */
.ingredient-check:focus-visible{border-color:var(--bordeaux)}

/* Filet or de fin de section éditoriale */
.section .editorial:last-child{margin-bottom:0}

/* Cohérence des couleurs de sélection dans les zones sombres */
.cta-band ::selection,.site-footer ::selection,.hero ::selection{background:var(--gold-soft);color:var(--bordeaux-deep)}

/* Espace de respiration entre header collant et ancre (#chiffres, etc.) */
:target{scroll-margin-top:calc(var(--header-h) + 20px)}

/* Assure un contraste suffisant des liens dans l'éditorial sur fond crème */
.editorial a{color:var(--bordeaux);text-decoration:underline;text-decoration-color:var(--gold-soft);
  text-underline-offset:3px}
.editorial a:hover{text-decoration-color:var(--bordeaux)}

/* Fin */
/* ── Fin des utilitaires ────────────────────────────────────────────────── */

/* ══════════════════════════════════════════════════════════════════════════
   ACCUEIL v2 — 3 derniers articles, carrousel rubriques, section éditoriale
   ════════════════════════════════════════════════════════════════════════ */

/* ── Les 3 derniers articles (carte = UN SEUL lien) ─────────────────────── */
.latest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.7rem}
.latest-card{position:relative;display:flex;flex-direction:column;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;color:var(--ink);
  box-shadow:var(--shadow-xs);transition:transform .2s ease,box-shadow .2s ease}
.latest-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);color:var(--ink)}
.latest-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 0 var(--gold-soft);transition:box-shadow .2s ease}
.latest-card:hover::after{box-shadow:inset 0 0 0 1.5px var(--gold-soft)}
.latest-media{position:relative;aspect-ratio:4/3;overflow:hidden;display:block;
  background:linear-gradient(135deg,var(--cream-2),var(--cream))}
.latest-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.latest-card:hover .latest-media img{transform:scale(1.06)}
.latest-fallback{position:absolute;inset:0;display:grid;place-items:center;color:var(--gold-soft)}
.latest-fallback svg{width:52px;height:52px}
.latest-media .cat-badge{position:absolute;top:.8rem;left:.8rem;background:var(--bordeaux);color:#fff;
  font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;padding:.36rem .7rem;
  border-radius:var(--pill);box-shadow:0 4px 12px rgba(76,13,24,.28)}
.latest-media .cat-badge.alt{background:var(--terracotta)}
.latest-body{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.latest-date{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--muted);font-weight:600}
.latest-date svg{width:14px;height:14px;color:var(--gold)}
.latest-title{font-family:var(--font-title);font-size:1.32rem;font-weight:600;line-height:1.25;color:var(--ink)}
.latest-card:hover .latest-title{color:var(--bordeaux)}
.latest-excerpt{font-size:.92rem;color:var(--muted);line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.latest-cta{margin-top:auto;display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;color:var(--bordeaux);padding-top:.35rem}
.latest-cta svg{width:16px;height:16px;transition:transform .2s ease}
.latest-card:hover .latest-cta svg{transform:translateX(4px)}

/* ── Carrousel des rubriques ────────────────────────────────────────────── */
.carousel-nav{display:flex;gap:.5rem;flex-shrink:0}
.carousel-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);
  color:var(--bordeaux);cursor:pointer;display:grid;place-items:center;transition:.16s}
.carousel-btn:hover:not(:disabled){background:var(--bordeaux);color:#fff;border-color:var(--bordeaux)}
.carousel-btn:disabled{opacity:.35;cursor:default}
.carousel-btn svg{width:20px;height:20px}
.carousel{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--gold-soft) transparent;
  margin:0 -.4rem;padding:.4rem;cursor:grab}
.carousel.dragging{cursor:grabbing;scroll-snap-type:none}
.carousel.dragging a{pointer-events:none}
.carousel::-webkit-scrollbar{height:8px}
.carousel::-webkit-scrollbar-thumb{background:var(--gold-soft);border-radius:8px}
.carousel::-webkit-scrollbar-track{background:transparent}
.carousel:focus-visible{outline:2px solid var(--bordeaux);outline-offset:3px;border-radius:var(--radius)}
.carousel-track{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem}
.carousel-item{flex:0 0 clamp(240px,28vw,300px);scroll-snap-align:start}
.carousel-item .universe-card{width:100%;height:100%;user-select:none}
.carousel-item .universe-card img{pointer-events:none}

/* ── Section éditoriale de la home ──────────────────────────────────────── */
.home-editorial{max-width:var(--measure);margin-inline:auto;font-size:1.06rem;line-height:1.8;color:var(--ink)}
.home-editorial>*:first-child{margin-top:0}
.home-editorial>*:last-child{margin-bottom:0}
.home-editorial h2{font-size:clamp(1.6rem,3.2vw,2.2rem);margin:1.8em 0 .5em;position:relative;padding-bottom:.4rem}
.home-editorial h2::after{content:"";position:absolute;left:0;bottom:0;width:60px;height:2px;background:var(--gold)}
.home-editorial h3{font-size:1.32rem;margin:1.5em 0 .5em;color:var(--bordeaux-deep)}
.home-editorial p{margin:0 0 1.15em}
.home-editorial a{color:var(--bordeaux);text-decoration:underline;text-decoration-color:var(--gold-soft);
  text-underline-offset:3px;text-decoration-thickness:1.5px}
.home-editorial a:hover{text-decoration-color:var(--bordeaux)}
.home-editorial ul,.home-editorial ol{padding-left:1.4em;margin:0 0 1.3em}
.home-editorial li{margin-bottom:.5em}
.home-editorial ul li::marker{color:var(--gold)}
.home-editorial blockquote{font-family:var(--font-alt);font-style:italic;font-size:1.28rem;line-height:1.6;
  border-left:3px solid var(--gold);background:var(--cream);margin:1.8rem 0;padding:1.1rem 1.4rem;
  border-radius:0 var(--radius) var(--radius) 0;color:var(--bordeaux-deep)}
.home-editorial img{border-radius:var(--radius-lg);margin:1.6rem auto;box-shadow:var(--shadow)}

/* Tableaux : en-tête bordeaux, lignes zébrées crème */
.home-editorial table{width:100%;border-collapse:collapse;margin:1.8rem 0;font-size:.96rem;
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-xs);border:1px solid var(--line)}
.home-editorial thead th,.home-editorial table th{background:var(--bordeaux);color:#fff;
  font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;
  text-align:left;padding:.8rem .95rem}
.home-editorial td{border-top:1px solid var(--line);padding:.75rem .95rem;text-align:left;vertical-align:top}
.home-editorial tbody tr:nth-child(odd){background:var(--cream)}
.home-editorial tbody tr:nth-child(even){background:var(--surface)}
.home-editorial .table-wrap{overflow-x:auto}

/* Accordéons <details> — filet or, chevron pivotant, transition douce (sans JS) */
.home-editorial details{background:var(--cream);border:1px solid var(--line);border-left:3px solid var(--gold);
  border-radius:var(--radius);margin:1rem 0;padding:0 1.3rem;box-shadow:var(--shadow-xs);
  transition:box-shadow .2s ease,border-color .2s ease}
.home-editorial details[open]{box-shadow:var(--shadow);border-color:var(--gold-soft)}
.home-editorial summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.8rem;
  padding:1.05rem 0;font-family:var(--font-title);font-weight:600;font-size:1.14rem;color:var(--bordeaux-deep)}
.home-editorial summary::-webkit-details-marker{display:none}
.home-editorial summary::after{content:"";flex:0 0 auto;margin-left:auto;width:11px;height:11px;
  border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(45deg);
  transition:transform .25s ease}
.home-editorial details[open] summary::after{transform:rotate(225deg)}
.home-editorial summary:hover{color:var(--bordeaux)}
.home-editorial summary:focus-visible{outline:2px solid var(--bordeaux);outline-offset:3px;border-radius:8px}
/* Contenu de l'accordéon : révélation douce à l'ouverture */
.home-editorial details>*:not(summary){margin-top:0}
.home-editorial details[open]>*:not(summary){animation:accOpen .28s ease}
.home-editorial details .acc-body,
.home-editorial details>p:last-child{padding-bottom:1.1rem}
.home-editorial details>*:not(summary):last-child{padding-bottom:1.1rem}
@keyframes accOpen{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ── Responsive accueil v2 ──────────────────────────────────────────────── */
@media(max-width:900px){
  .latest-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .latest-grid{grid-template-columns:1fr}
  .carousel-item{flex-basis:78vw}
  .home-editorial summary{font-size:1.05rem}
}
@media (prefers-reduced-motion:reduce){
  .carousel{scroll-behavior:auto}
  .home-editorial details[open]>*:not(summary){animation:none}
  .home-editorial summary::after{transition:none}
}
/* ── Fin accueil v2 ─────────────────────────────────────────────────────── */
