/*!
 * Violette Duval Theme - Main Stylesheet
 * Version: 1.0.0
 * Author: Empower Studio
 *
 * Performance calme, premium éditorial.
 * Charte : aubergine, violet, framboise, sauge, crème.
 * Typo : Fraunces (serif), Manrope (sans), JetBrains Mono.
 */


/* ============================================
   RESET ÉTROIT (WP friendly)
   ============================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body{margin:0;padding:0}
img,svg,video{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;background:none;border:0;padding:0;color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.screen-reader-text:focus{display:block;position:fixed;top:5px;left:5px;width:auto;height:auto;padding:14px 18px;margin:0;clip:auto;white-space:normal;background:#fff;color:#312033;z-index:100000;border-radius:8px;text-decoration:underline}

body.admin-bar .nav-wrap{top:32px}
@media (max-width:782px){body.admin-bar .nav-wrap{top:46px}}

/* ============================================
   ALIGNEMENTS WP / GUTENBERG
   ============================================ */
.alignwide{max-width:1280px;margin-left:auto;margin-right:auto}
.alignfull{margin-left:calc(-1 * var(--gutter,28px));margin-right:calc(-1 * var(--gutter,28px));width:auto;max-width:none}
.aligncenter{margin-left:auto;margin-right:auto;display:block}
.alignleft{float:left;margin:0 24px 24px 0}
.alignright{float:right;margin:0 0 24px 24px}

/* ============================================
   FOOTER STICKY MOBILE
   ============================================ */
.mobile-sticky{display:none}
@media (max-width:768px){
  .mobile-sticky{
    display:inline-flex;align-items:center;gap:8px;
    position:fixed;bottom:18px;right:18px;
    padding:14px 22px;border-radius:999px;
    background:var(--aubergine);color:var(--cream);
    font-size:14px;font-weight:600;
    box-shadow:0 12px 28px rgba(49,32,51,.32);
    z-index:90;
  }
}

/* ============================================
   PAGINATION WP
   ============================================ */
.pagination{display:flex;justify-content:center;margin:60px 0;gap:8px;flex-wrap:wrap}
.pagination a, .pagination span.page-numbers{
  padding:10px 16px;border-radius:8px;
  font-size:14px;color:var(--aubergine);
  border:1px solid var(--line);background:var(--cream);
  transition:background .2s,border-color .2s;
}
.pagination a:hover{background:var(--cream-2);border-color:var(--violet)}
.pagination .current{background:var(--aubergine);color:var(--cream);border-color:var(--aubergine)}

/* ============================================
   FORMULAIRE COMMENTAIRE
   ============================================ */
.comment-list{margin-top:32px}
.comment-list li{padding:16px 0;border-bottom:1px solid var(--line)}
.comment-respond{margin-top:48px;padding:32px;background:var(--cream-2);border-radius:var(--radius-lg)}
.comment-respond input,.comment-respond textarea{
  width:100%;padding:12px 16px;border:1px solid var(--line);
  border-radius:8px;background:var(--cream);font-family:var(--sans);font-size:15px;
  margin-bottom:14px;
}

/* ============================================
   RGPD BANNER
   ============================================ */
.vd-cookie-banner{
  position:fixed;bottom:24px;left:24px;right:24px;
  max-width:560px;margin:0 auto;
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:24px 28px;
  box-shadow:0 30px 60px -20px rgba(49,32,51,.3);
  z-index:200;
}
.vd-cookie-content{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.vd-cookie-text strong{display:block;font-family:var(--serif);font-size:17px;color:var(--aubergine);margin-bottom:4px}
.vd-cookie-text span{font-size:13px;color:var(--ink-60);line-height:1.5}
.vd-cookie-actions{display:flex;gap:10px;flex-shrink:0}

/* ============================================
   DOCTOLIB IFRAME
   ============================================ */
.vd-doctolib-embed{
  margin:32px 0;border-radius:var(--radius-lg);
  overflow:hidden;background:var(--cream-2);
  box-shadow:var(--shadow-md);
}
.vd-doctolib-embed iframe{display:block;width:100%;border:0}

/* ============================================
   ARCHIVE SPÉCIALITÉS HERO
   ============================================ */
.archive-spec-hero{padding:60px 0 80px;text-align:center}
.archive-spec-hero-inner{max-width:780px;margin:0 auto;padding:0 28px}
.archive-spec-hero h1{font-size:clamp(44px,5.5vw,76px);line-height:1.05;margin-bottom:24px}
.archive-spec-hero h1 em{font-style:italic;color:var(--violet);background:linear-gradient(180deg,transparent 60%,rgba(217,108,142,.18) 60%)}
.archive-spec-hero .lede{margin:0 auto;max-width:580px;font-size:clamp(17px,1.4vw,20px);color:var(--aubergine);line-height:1.55}

/* ============================================
   SPÉCIALITÉ HERO (single)
   ============================================ */
.spec-hero{padding:48px 0 80px;position:relative;overflow:hidden}
.spec-hero-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:center}
.spec-hero-icon{width:60px;height:60px;border-radius:16px;background:var(--cream-2);border:1px solid var(--line);color:var(--violet);display:flex;align-items:center;justify-content:center;margin-bottom:24px}
.spec-hero-content h1{font-size:clamp(44px,5.5vw,76px);line-height:1.05;margin-bottom:24px}
.spec-hero-content .lede{font-size:clamp(17px,1.4vw,20px);color:var(--aubergine);max-width:580px;line-height:1.55;margin-bottom:32px}
.spec-hero-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.hero-stat{padding:24px;background:var(--cream-2);border:1px solid var(--line);border-radius:14px;text-align:center}
.hero-stat-num{font-family:var(--serif);font-size:36px;line-height:1;color:var(--violet);font-style:italic;margin-bottom:6px}
.hero-stat-label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-60)}
@media (max-width:980px){.spec-hero-grid{grid-template-columns:1fr;gap:40px}}

.spec-hero.theme-course{background:linear-gradient(180deg,rgba(123,75,143,.06),transparent)}
.spec-hero.theme-trail{background:linear-gradient(180deg,rgba(169,191,168,.1),transparent)}
.spec-hero.theme-tri{background:linear-gradient(180deg,rgba(217,108,142,.06),transparent)}

/* ============================================
   PAGE HERO FALLBACK
   ============================================ */
.page-hero{padding:60px 0 40px;text-align:center}
.page-hero-inner{max-width:780px;margin:0 auto;padding:0 28px}
.page-hero h1{font-size:clamp(36px,5vw,64px);line-height:1.1;margin-bottom:20px}
.page-hero .lede{font-size:18px;color:var(--ink-60);line-height:1.55;max-width:580px;margin:0 auto}

  :root{
    --cream:#FAF7F2;
    --cream-2:#F2EDE4;
    --aubergine:#312033;
    --aubergine-soft:#4A2F4D;
    --violet:#7B4B8F;
    --violet-deep:#5E3670;
    --raspberry:#D96C8E;
    --sage:#A9BFA8;
    --sage-deep:#7E9C82;
    --ink:#1D1D1B;
    --ink-60:rgba(29,29,27,.62);
    --ink-30:rgba(29,29,27,.18);
    --ink-10:rgba(29,29,27,.08);
    --line:rgba(49,32,51,.14);
    --shadow-sm:0 1px 2px rgba(49,32,51,.06), 0 4px 12px rgba(49,32,51,.04);
    --shadow-md:0 8px 30px rgba(49,32,51,.10), 0 2px 6px rgba(49,32,51,.05);
    --shadow-lg:0 30px 60px -20px rgba(49,32,51,.25);
    --radius:14px;
    --radius-lg:22px;
    --serif:"Fraunces", Georgia, serif;
    --sans:"Manrope", -apple-system, system-ui, sans-serif;
    --mono:"JetBrains Mono", ui-monospace, monospace;
  }

  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:var(--sans);
    color:var(--ink);
    background:var(--cream);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}
  button{font:inherit;cursor:pointer;border:none;background:none}

  /* ======= TYPO ======= */
  .eyebrow{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--violet);
    font-weight:500;
  }
  h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;color:var(--aubergine);line-height:1.05}
  h1{font-size:clamp(42px,6vw,84px);font-variation-settings:"opsz" 144, "SOFT" 30}
  h2{font-size:clamp(32px,4vw,56px);font-variation-settings:"opsz" 144}
  h3{font-size:clamp(22px,2.2vw,30px);line-height:1.15}
  h4{font-size:18px;line-height:1.3}
  .italic{font-style:italic;color:var(--violet)}
  p{font-size:16px;color:var(--ink-60);max-width:62ch}
  .lede{font-size:clamp(17px,1.4vw,20px);line-height:1.55;color:var(--aubergine);font-weight:400}

  /* ======= LAYOUT ======= */
  .container{max-width:1280px;margin:0 auto;padding:0 28px}
  section{padding:120px 0;position:relative}
  @media (max-width:768px){section{padding:80px 0}}

  /* ======= NAV ======= */
  .nav-wrap{
    position:sticky;top:0;z-index:100;
    background:rgba(250,247,242,.85);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 28px;max-width:1280px;margin:0 auto;
  }
  .logo{
    font-family:var(--serif);font-size:22px;font-weight:500;
    color:var(--aubergine);letter-spacing:-.02em;
    display:flex;align-items:center;gap:10px;
  }
  .logo-mark{
    width:34px;height:34px;border-radius:50%;
    background:radial-gradient(circle at 35% 30%, var(--raspberry), var(--violet) 60%, var(--aubergine));
    position:relative;
  }
  .logo-mark::after{
    content:"";position:absolute;inset:6px;border-radius:50%;
    background:var(--cream);
  }
  .logo-mark::before{
    content:"";position:absolute;inset:11px;border-radius:50%;
    background:var(--violet);
  }
  .nav-links{display:flex;gap:32px;align-items:center}
  .nav-links > a, .nav-links > .has-dropdown > .dropdown-trigger{
    font-size:14px;color:var(--aubergine);font-weight:500;
    position:relative;padding:6px 0;transition:color .2s;
    background:none;border:none;cursor:pointer;
    display:inline-flex;align-items:center;gap:5px;
    font-family:var(--sans);
  }
  .nav-links > a:hover, .nav-links > .has-dropdown > .dropdown-trigger:hover{color:var(--violet)}
  .nav-links > a::after, .nav-links > .has-dropdown > .dropdown-trigger::after{
    content:"";position:absolute;bottom:0;left:0;right:0;height:1px;
    background:var(--violet);transform:scaleX(0);transform-origin:left;
    transition:transform .3s ease;
  }
  .nav-links > a:hover::after, .nav-links > .has-dropdown > .dropdown-trigger:hover::after{transform:scaleX(1)}

  /* DROPDOWN MENU */
  .has-dropdown{position:relative}
  .dropdown-trigger .chev{
    width:10px;height:10px;
    transition:transform .25s ease;
  }
  .has-dropdown:hover .dropdown-trigger .chev,
  .has-dropdown.open .dropdown-trigger .chev{
    transform:rotate(180deg);
  }
  .dropdown{
    position:absolute;
    top:calc(100% + 18px);
    left:50%;
    transform:translateX(-50%) translateY(8px);
    width:540px;
    max-width:calc(100vw - 40px);
    background:var(--cream);
    border:1px solid var(--line);
    border-radius:18px;
    padding:18px;
    box-shadow:0 30px 60px -20px rgba(49,32,51,.25), 0 8px 20px rgba(49,32,51,.08);
    opacity:0;
    pointer-events:none;
    visibility:hidden;
    transition:opacity .25s ease, transform .25s ease, visibility .25s;
    z-index:50;
  }
  .has-dropdown:hover .dropdown,
  .has-dropdown.open .dropdown{
    opacity:1;
    pointer-events:auto;
    visibility:visible;
    transform:translateX(-50%) translateY(0);
  }
  /* Pont invisible pour éviter que le hover se ferme entre trigger et menu */
  .has-dropdown::before{
    content:"";
    position:absolute;
    top:100%;left:0;right:0;height:24px;
    pointer-events:auto;
  }
  .dropdown-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4px;
  }
  .dropdown-item{
    display:flex;
    gap:14px;
    align-items:flex-start;
    padding:14px 16px;
    border-radius:12px;
    transition:background .2s ease;
    text-decoration:none;
  }
  .dropdown-item:hover{background:var(--cream-2)}
  .dropdown-item-icon{
    width:36px;height:36px;
    border-radius:10px;
    background:var(--cream-2);
    border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;
    color:var(--violet);
    flex-shrink:0;
  }
  .dropdown-item:hover .dropdown-item-icon{
    background:var(--violet);
    border-color:var(--violet);
    color:var(--cream);
  }
  .dropdown-item-text strong{
    display:block;
    font-family:var(--sans);
    font-size:14px;
    font-weight:600;
    color:var(--aubergine);
    margin-bottom:2px;
    letter-spacing:-.005em;
  }
  .dropdown-item-text span{
    font-size:12px;
    color:var(--ink-60);
    line-height:1.35;
  }
  .dropdown-footer{
    margin-top:6px;
    padding:14px 16px 4px;
    border-top:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
  }
  .dropdown-footer-text{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--ink-60);
  }
  .dropdown-footer a{
    font-size:13px;
    font-weight:600;
    color:var(--violet);
    display:inline-flex;align-items:center;gap:5px;
    border-bottom:1px solid transparent;
    padding-bottom:1px;
    transition:border-color .2s;
  }
  .dropdown-footer a:hover{border-color:var(--violet)}
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:13px 22px;border-radius:999px;
    font-size:14px;font-weight:600;letter-spacing:-.005em;
    transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
    white-space:nowrap;
  }
  .btn-primary{
    background:var(--aubergine);color:var(--cream);
    box-shadow:0 6px 18px rgba(49,32,51,.18);
  }
  .btn-primary:hover{transform:translateY(-1px);background:var(--violet-deep);box-shadow:0 10px 24px rgba(94,54,112,.32)}
  .btn-secondary{
    background:transparent;color:var(--aubergine);
    border:1px solid var(--ink-30);
  }
  .btn-secondary:hover{border-color:var(--aubergine);background:rgba(49,32,51,.04)}
  .btn-ghost{
    color:var(--aubergine);font-weight:600;font-size:14px;
    display:inline-flex;align-items:center;gap:6px;
    border-bottom:1px solid var(--ink-30);padding:2px 0;
    transition:border-color .2s, color .2s;
  }
  .btn-ghost:hover{color:var(--violet);border-color:var(--violet)}
  .nav-cta{padding:11px 18px;font-size:13px}
  .burger{display:none}

  @media (max-width:980px){
    .nav-links{display:none}
    .burger{display:flex;flex-direction:column;gap:5px;padding:8px}
    .burger span{width:22px;height:1.5px;background:var(--aubergine)}
  }

  /* ======= HERO ======= */
  .hero{
    padding:60px 0 100px;
    position:relative;
    overflow:hidden;
  }
  .hero-grid{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:64px;align-items:center;
  }
  .hero-eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    padding:6px 14px;border-radius:999px;
    background:rgba(123,75,143,.08);
    color:var(--violet);
    font-family:var(--mono);font-size:11px;
    letter-spacing:.16em;text-transform:uppercase;
    margin-bottom:28px;
  }
  .hero-eyebrow .dot{
    width:6px;height:6px;border-radius:50%;background:var(--raspberry);
    animation:pulse 2s ease-in-out infinite;
  }
  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
  .hero h1 .accent{
    font-style:italic;color:var(--violet);
    background:linear-gradient(180deg, transparent 60%, rgba(217,108,142,.18) 60%);
  }
  .hero p.lede{margin:32px 0 40px;max-width:520px}
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:48px}

  .hero-badges{
    display:flex;flex-wrap:wrap;gap:8px;
  }
  .badge{
    display:inline-flex;align-items:center;gap:8px;
    padding:8px 14px;border-radius:999px;
    background:var(--cream-2);
    border:1px solid var(--line);
    font-size:12px;font-weight:500;color:var(--aubergine);
  }
  .badge svg{width:13px;height:13px;color:var(--violet)}
  .badge .star{color:#E8B043}

  /* hero visual */
  .hero-visual{
    position:relative;aspect-ratio:4/5;
    border-radius:var(--radius-lg);
    overflow:visible;
  }
  .hero-portrait{
    position:relative;width:100%;height:100%;
    border-radius:var(--radius-lg);overflow:hidden;
    background:var(--aubergine);
    box-shadow:var(--shadow-lg);
  }
  .hero-img{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:cover;object-position:center 25%;
    filter:contrast(1.06) saturate(1.08) brightness(1.02);
  }
  .hero-img-overlay{
    position:absolute;inset:0;
    background:
      linear-gradient(180deg, transparent 60%, rgba(49,32,51,.35) 100%),
      radial-gradient(ellipse at 70% 80%, rgba(123,75,143,.18), transparent 70%);
    pointer-events:none;
  }
  /* floating cards */
  .float-card{
    position:absolute;
    background:var(--cream);
    border-radius:14px;
    padding:14px 16px;
    box-shadow:var(--shadow-md);
    border:1px solid var(--line);
    animation:float 6s ease-in-out infinite;
  }
  @keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
  .float-card.fc-1{
    top:8%;left:-8%;width:200px;
    animation-delay:0s;
  }
  .float-card.fc-2{
    bottom:18%;right:-10%;width:230px;
    animation-delay:1.2s;
  }
  .float-card.fc-3{
    bottom:-3%;left:15%;width:180px;
    animation-delay:2.4s;
  }
  .fc-label{
    font-family:var(--mono);font-size:10px;
    letter-spacing:.14em;text-transform:uppercase;
    color:var(--violet);margin-bottom:6px;
  }
  .fc-value{
    font-family:var(--serif);font-size:24px;
    color:var(--aubergine);font-weight:500;line-height:1;
    margin-bottom:4px;
  }
  .fc-sub{font-size:11px;color:var(--ink-60)}
  .fc-bar{
    height:4px;background:var(--cream-2);border-radius:2px;
    margin-top:8px;overflow:hidden;
  }
  .fc-bar-fill{height:100%;background:linear-gradient(90deg, var(--violet), var(--raspberry));border-radius:2px}

  /* hero decorative elements */
  .hero-deco-curve{
    position:absolute;top:50%;right:-200px;
    width:500px;height:500px;
    border:1px solid var(--ink-10);border-radius:50%;
    transform:translateY(-50%);pointer-events:none;
  }
  .hero-deco-curve::after{
    content:"";position:absolute;inset:60px;
    border:1px solid var(--ink-10);border-radius:50%;
  }

  @media (max-width:980px){
    .hero-grid{grid-template-columns:1fr;gap:48px}
    .hero-visual{max-width:420px;margin:0 auto}
    .float-card.fc-1{left:0}
    .float-card.fc-2{right:0}
  }

  /* ======= MARQUEE TICKER ======= */
  .ticker{
    background:var(--aubergine);
    color:var(--cream);
    padding:20px 0;
    overflow:hidden;
    border-top:1px solid var(--violet-deep);
    border-bottom:1px solid var(--violet-deep);
  }
  .ticker-track{
    display:flex;gap:60px;
    animation:scroll 38s linear infinite;
    width:max-content;
  }
  @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  .ticker-item{
    font-family:var(--serif);font-size:22px;font-style:italic;
    color:var(--cream);white-space:nowrap;
    display:flex;align-items:center;gap:60px;
  }
  .ticker-item::after{
    content:"";width:8px;height:8px;border-radius:50%;
    background:var(--raspberry);
  }

  /* ======= SECTION HEADER ======= */
  .section-head{
    display:grid;grid-template-columns:1fr 1.2fr;gap:80px;
    margin-bottom:64px;align-items:end;
  }
  .section-head h2{margin-top:14px}
  .section-head p{font-size:17px;line-height:1.6}
  @media (max-width:840px){
    .section-head{grid-template-columns:1fr;gap:24px}
  }

  /* ======= OBJECTIFS ======= */
  .objectifs{background:var(--cream)}
  .obj-grid{
    display:grid;
    grid-template-columns:repeat(12, 1fr);
    gap:18px;
  }
  .obj-card{
    grid-column:span 4;
    background:var(--cream-2);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    padding:32px 28px;
    position:relative;
    transition:transform .3s ease, box-shadow .3s ease, background .3s;
    overflow:hidden;
    min-height:240px;
    display:flex;flex-direction:column;justify-content:space-between;
  }
  .obj-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);background:var(--cream)}
  /* 3 cartes featured colorées (Course, Trail, Triathlon&cyclisme) en ligne 1 */
  .obj-card.featured{
    grid-column:span 4;
    color:var(--cream);
    border-color:transparent;
    position:relative;
    overflow:hidden;
  }
  .obj-card.featured h3,.obj-card.featured p{color:var(--cream);position:relative;z-index:1}
  .obj-card.featured p{color:rgba(250,247,242,.78)}
  .obj-card.featured .obj-cta{color:var(--cream);position:relative;z-index:1}
  .obj-card.featured .obj-icon{
    background:rgba(250,247,242,.1);
    border-color:rgba(250,247,242,.18);
    color:var(--cream);
    position:relative;z-index:1;
  }
  /* Variantes de couleur selon discipline */
  .obj-card.theme-course{
    background:linear-gradient(135deg, var(--aubergine), var(--violet-deep));
  }
  .obj-card.theme-trail{
    background:linear-gradient(135deg, var(--sage-deep) 0%, #5E7563 60%, var(--aubergine));
  }
  .obj-card.theme-trail::after{
    content:"";position:absolute;
    top:-30px;right:-30px;
    width:160px;height:160px;
    background:
      repeating-radial-gradient(circle at center, transparent 0, transparent 12px, rgba(250,247,242,.06) 12px, rgba(250,247,242,.06) 13px);
    border-radius:50%;
    pointer-events:none;
  }
  .obj-card.theme-tri{
    background:linear-gradient(135deg, var(--violet-deep) 0%, var(--raspberry) 90%);
  }
  .obj-card.theme-tri::after{
    content:"";position:absolute;
    bottom:-40px;right:-40px;
    width:180px;height:180px;
    background:
      conic-gradient(from 90deg at 50% 50%, transparent 0deg, rgba(250,247,242,.08) 90deg, transparent 180deg, rgba(250,247,242,.08) 270deg, transparent 360deg);
    border-radius:50%;
    pointer-events:none;
  }
  .card-badge-book{
    position:absolute;top:24px;right:24px;
    display:inline-flex;align-items:center;gap:6px;
    padding:5px 11px;border-radius:6px;
    background:var(--raspberry);
    color:var(--cream);
    font-family:var(--mono);
    font-size:10px;letter-spacing:.14em;
    text-transform:uppercase;font-weight:600;
    z-index:2;
  }
  @media (max-width:840px){
    .obj-card.featured{grid-column:span 12}
    .card-badge-book{top:16px;right:16px}
  }


  .obj-icon{
    width:44px;height:44px;border-radius:12px;
    background:var(--cream);
    display:flex;align-items:center;justify-content:center;
    border:1px solid var(--line);
    color:var(--violet);
    margin-bottom:24px;
  }
  .obj-card.featured .obj-icon{background:rgba(250,247,242,.1);border-color:rgba(250,247,242,.18);color:var(--raspberry)}
  .obj-card h3{font-size:24px;margin-bottom:10px}
  .obj-card p{font-size:14px;line-height:1.55;margin-bottom:20px}
  .obj-cta{
    display:inline-flex;align-items:center;gap:6px;
    font-size:13px;font-weight:600;color:var(--violet);
    margin-top:auto;
  }
  .obj-card.featured .obj-cta{color:var(--raspberry)}
  .obj-cta svg{transition:transform .3s}
  .obj-card:hover .obj-cta svg{transform:translateX(4px)}

  /* Layout : toutes les cards en span 4 sur 3 lignes pleines (3 featured + 6 standard) */
  .obj-grid .obj-card{grid-column:span 4}

  @media (max-width:840px){
    .obj-grid .obj-card,.obj-grid .obj-card.featured{grid-column:span 12;display:flex;flex-direction:column;align-items:flex-start}
  }

  /* ======= MÉTHODE ======= */
  .methode{
    background:var(--aubergine);
    color:var(--cream);
    overflow:hidden;
    position:relative;
  }
  .methode::before{
    content:"";position:absolute;top:-100px;right:-100px;
    width:400px;height:400px;border-radius:50%;
    background:radial-gradient(circle, rgba(123,75,143,.4), transparent 70%);
    pointer-events:none;
  }
  .methode h2,.methode .lede{color:var(--cream)}
  .methode .eyebrow{color:var(--raspberry)}
  .methode p{color:rgba(250,247,242,.7)}
  .methode-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
    margin-top:64px;
  }
  .step{
    border:1px solid rgba(250,247,242,.14);
    border-radius:var(--radius-lg);
    padding:36px 28px;
    background:rgba(250,247,242,.03);
    backdrop-filter:blur(10px);
    position:relative;
    transition:transform .3s, border-color .3s;
  }
  .step:hover{transform:translateY(-4px);border-color:var(--raspberry)}
  .step-num{
    font-family:var(--mono);
    font-size:12px;letter-spacing:.18em;
    color:var(--raspberry);
    margin-bottom:24px;
  }
  .step h3{
    color:var(--cream);
    font-size:32px;margin-bottom:12px;
  }
  .step h3 em{color:var(--raspberry);font-style:italic}
  .step p{font-size:14px;line-height:1.6}
  @media (max-width:840px){.methode-grid{grid-template-columns:1fr}}

  /* ======= JOUR J ======= */
  .jour-j{background:var(--cream-2)}
  .jj-head{
    display:grid;grid-template-columns:1fr 1fr;gap:60px;
    margin-bottom:64px;align-items:end;
  }
  .jj-head h2 .accent{
    color:var(--violet);font-style:italic;
  }
  .jj-grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:16px;
  }
  .jj-card{
    background:var(--cream);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    padding:28px;
    position:relative;
    overflow:hidden;
    transition:transform .3s ease;
  }
  .jj-card:hover{transform:translateY(-3px)}
  .jj-card.large{grid-column:span 4;min-height:380px;display:flex;flex-direction:column}
  .jj-card.med{grid-column:span 2;min-height:380px;display:flex;flex-direction:column}
  .jj-card.row{grid-column:span 3;min-height:200px;display:flex;flex-direction:column;justify-content:space-between}
  .jj-tag{
    display:inline-flex;align-items:center;gap:6px;
    padding:5px 10px;border-radius:6px;
    background:rgba(123,75,143,.1);
    color:var(--violet);
    font-family:var(--mono);font-size:10px;
    letter-spacing:.14em;text-transform:uppercase;
    font-weight:500;
    align-self:flex-start;
  }
  .jj-card h3{font-size:22px;margin:18px 0 8px}
  .jj-card p{font-size:14px;line-height:1.55;margin-bottom:16px}

  /* mini data viz */
  .ravito-table{
    margin-top:auto;
    background:var(--cream-2);
    border-radius:12px;
    padding:14px;
    font-family:var(--mono);font-size:12px;
  }
  .ravito-row{
    display:grid;grid-template-columns:auto 1fr auto;gap:12px;
    padding:8px 0;border-bottom:1px dashed var(--line);
    align-items:center;
  }
  .ravito-row:last-child{border-bottom:none}
  .ravito-time{color:var(--violet);font-weight:600}
  .ravito-what{color:var(--aubergine)}
  .ravito-amount{
    color:var(--ink-60);text-align:right;
    background:var(--cream);padding:3px 8px;border-radius:5px;
    font-size:11px;
  }

  .gauge{
    margin-top:auto;
    display:flex;flex-direction:column;gap:10px;
  }
  .gauge-row{display:flex;align-items:center;gap:10px;font-size:12px;font-family:var(--mono)}
  .gauge-label{width:54px;color:var(--ink-60)}
  .gauge-bar{
    flex:1;height:6px;background:var(--cream-2);border-radius:3px;overflow:hidden;
  }
  .gauge-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--violet),var(--raspberry))}
  .gauge-val{font-weight:600;color:var(--aubergine);min-width:46px;text-align:right}

  .protocol-vis{
    display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:auto;
  }
  .pv-step{
    background:var(--cream-2);border-radius:10px;padding:12px;
    text-align:center;
  }
  .pv-step .pv-num{
    font-family:var(--mono);font-size:10px;color:var(--violet);
    letter-spacing:.14em;text-transform:uppercase;
  }
  .pv-step .pv-val{
    font-family:var(--serif);font-size:22px;color:var(--aubergine);
    font-weight:500;line-height:1;margin:4px 0;
  }
  .pv-step .pv-unit{font-size:10px;color:var(--ink-60)}

  @media (max-width:980px){
    .jj-grid{grid-template-columns:1fr}
    .jj-card.large,.jj-card.med,.jj-card.row{grid-column:span 1}
    .jj-head{grid-template-columns:1fr;gap:24px}
  }

  /* ======= COMPORTEMENT ALIMENTAIRE ======= */
  .comportement{
    background:var(--cream);
    position:relative;
    overflow:hidden;
  }
  .comp-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;
  }
  .comp-text h2{margin:14px 0 28px}
  .comp-quote{
    border-left:3px solid var(--raspberry);
    padding:6px 0 6px 24px;
    margin:32px 0;
    font-family:var(--serif);
    font-style:italic;
    font-size:22px;
    color:var(--aubergine);
    line-height:1.45;
  }
  .comp-list{
    display:flex;flex-direction:column;gap:14px;margin-top:32px;
  }
  .comp-item{
    display:flex;gap:14px;align-items:flex-start;
    padding:14px 18px;
    background:var(--cream-2);
    border-radius:12px;
    border:1px solid var(--line);
  }
  .comp-item-icon{
    width:32px;height:32px;border-radius:8px;
    background:var(--cream);
    display:flex;align-items:center;justify-content:center;
    color:var(--violet);flex-shrink:0;
    border:1px solid var(--line);
  }
  .comp-item-text strong{
    display:block;color:var(--aubergine);font-weight:600;font-size:15px;margin-bottom:2px;
  }
  .comp-item-text span{font-size:13px;color:var(--ink-60)}

  /* organic visual */
  .comp-visual{
    position:relative;aspect-ratio:4/5;max-width:480px;margin-left:auto;
  }
  .comp-photo-wrap{
    position:relative;width:100%;height:100%;
  }
  .comp-photo{
    width:100%;height:100%;object-fit:cover;object-position:center;
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-lg);
    filter:contrast(1.03) saturate(1.04);
  }
  .comp-photo-deco{
    position:absolute;top:-18px;left:-18px;
    width:120px;height:120px;
    border:1px solid var(--violet);
    border-radius:var(--radius-lg);
    z-index:-1;
    opacity:.5;
  }
  .comp-photo-deco::after{
    content:"";position:absolute;
    bottom:-100%;right:-100%;
    width:120px;height:120px;
    border:1px solid var(--raspberry);
    border-radius:var(--radius-lg);
    opacity:.7;
  }
  .comp-photo-quote{
    position:absolute;
    bottom:-30px;left:-30px;
    background:var(--cream);
    padding:24px 28px;
    border-radius:14px;
    box-shadow:var(--shadow-md);
    border:1px solid var(--line);
    max-width:74%;
    font-family:var(--serif);
    font-size:clamp(20px,2vw,26px);
    color:var(--aubergine);
    line-height:1.2;
    font-style:italic;
  }
  .comp-photo-quote .hl{color:var(--raspberry);font-style:normal;font-weight:500}
  @media (max-width:840px){
    .comp-photo-quote{position:relative;bottom:auto;left:auto;margin-top:24px;max-width:none}
    .comp-photo-deco{display:none}
  }

  @media (max-width:840px){.comp-grid{grid-template-columns:1fr;gap:48px}.comp-visual{margin:0 auto}}

  /* ======= AVIS ======= */
  .avis{background:var(--cream-2)}
  .avis-tabs{
    display:flex;gap:8px;margin:32px 0 48px;flex-wrap:wrap;
  }
  .tab{
    padding:10px 18px;border-radius:999px;
    font-size:13px;font-weight:500;color:var(--aubergine);
    background:var(--cream);
    border:1px solid var(--line);
    cursor:pointer;transition:all .25s;
    font-family:var(--sans);
  }
  .tab.active{background:var(--aubergine);color:var(--cream);border-color:var(--aubergine)}
  .tab:hover:not(.active){border-color:var(--violet);color:var(--violet)}

  .avis-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  }
  .avis-card{
    background:var(--cream);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    padding:32px 28px;
    display:flex;flex-direction:column;
    transition:transform .3s, box-shadow .3s;
  }
  .avis-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
  .stars{color:#E8B043;font-size:16px;letter-spacing:2px;margin-bottom:16px}
  .avis-card blockquote{
    font-family:var(--serif);
    font-size:18px;line-height:1.45;
    color:var(--aubergine);
    margin-bottom:24px;flex:1;
  }
  .avis-author{
    display:flex;align-items:center;gap:12px;
    padding-top:20px;border-top:1px solid var(--line);
  }
  .avis-avatar{
    width:40px;height:40px;border-radius:50%;
    background:linear-gradient(135deg,var(--violet),var(--raspberry));
    display:flex;align-items:center;justify-content:center;
    color:var(--cream);font-weight:600;font-size:13px;
  }
  .avis-meta strong{display:block;font-size:14px;color:var(--aubergine)}
  .avis-meta span{font-size:12px;color:var(--ink-60)}

  @media (max-width:840px){.avis-grid{grid-template-columns:1fr}}

  /* ======= ARTICLES ======= */
  .articles{background:var(--cream)}
  .art-cats{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
  .art-cats .tag{
    padding:6px 12px;border-radius:6px;
    background:var(--cream-2);
    font-family:var(--mono);font-size:11px;
    letter-spacing:.12em;text-transform:uppercase;
    color:var(--aubergine);font-weight:500;
    border:1px solid var(--line);
  }
  .art-grid{
    display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:24px;
    margin-top:48px;
  }
  .art-card{
    background:var(--cream-2);
    border-radius:var(--radius-lg);overflow:hidden;
    border:1px solid var(--line);
    transition:transform .3s;
    display:flex;flex-direction:column;
  }
  .art-card:hover{transform:translateY(-4px)}
  .art-card.featured{grid-row:span 2}
  .art-img{
    aspect-ratio:16/10;
    background:linear-gradient(135deg,#7B4B8F 0%, #312033 100%);
    position:relative;overflow:hidden;
  }
  .art-card.featured .art-img{
    aspect-ratio:16/12;
    background:linear-gradient(135deg,#D96C8E,#7B4B8F 60%, #312033);
  }
  .art-img-2{background:linear-gradient(135deg,#A9BFA8,#7E9C82 70%, #4A2F4D)}
  .art-img-3{background:linear-gradient(135deg,#E8B043,#D96C8E 60%, #7B4B8F)}
  .art-img svg{
    position:absolute;inset:0;width:100%;height:100%;opacity:.4;
  }
  .art-content{padding:24px 24px 28px;display:flex;flex-direction:column;flex:1}
  .art-card.featured .art-content{padding:32px}
  .art-tag{
    font-family:var(--mono);font-size:10px;
    letter-spacing:.14em;text-transform:uppercase;
    color:var(--violet);font-weight:500;
    margin-bottom:12px;
  }
  .art-card h3{font-size:20px;margin-bottom:10px;line-height:1.2}
  .art-card.featured h3{font-size:32px;margin-bottom:14px}
  .art-card p{font-size:14px;margin-bottom:18px;flex:1}
  .art-meta{
    display:flex;align-items:center;gap:14px;
    font-size:12px;color:var(--ink-60);
    padding-top:16px;border-top:1px solid var(--line);
  }
  .art-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--ink-30)}

  @media (max-width:840px){
    .art-grid{grid-template-columns:1fr}
    .art-card.featured{grid-row:auto}
  }

  /* ======= FINAL CTA ======= */
  .final-cta{
    padding:140px 0;
    background:
      radial-gradient(ellipse at 20% 30%, rgba(123,75,143,.18), transparent 60%),
      radial-gradient(ellipse at 80% 70%, rgba(217,108,142,.14), transparent 60%),
      var(--aubergine);
    color:var(--cream);
    text-align:center;
    position:relative;overflow:hidden;
  }
  .final-cta::before{
    content:"";position:absolute;inset:0;
    background-image:
      radial-gradient(circle at 1px 1px, rgba(250,247,242,.06) 1px, transparent 0);
    background-size:24px 24px;
    pointer-events:none;
  }
  .final-cta-inner{position:relative;z-index:1;max-width:780px;margin:0 auto;padding:0 28px}
  .final-cta h2{
    color:var(--cream);font-size:clamp(36px,5vw,68px);
    margin-bottom:24px;
  }
  .final-cta h2 em{color:var(--raspberry);font-style:italic}
  .final-cta p{
    color:rgba(250,247,242,.78);font-size:18px;
    max-width:560px;margin:0 auto 40px;
  }
  .final-cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
  .btn-cream{background:var(--cream);color:var(--aubergine)}
  .btn-cream:hover{background:#fff;transform:translateY(-1px)}
  .btn-outline-cream{
    color:var(--cream);border:1px solid rgba(250,247,242,.3);
    background:transparent;
  }
  .btn-outline-cream:hover{border-color:var(--cream);background:rgba(250,247,242,.06)}

  /* ======= FOOTER ======= */
  footer{
    background:var(--cream-2);
    padding:80px 0 40px;
    border-top:1px solid var(--line);
  }
  .footer-grid{
    display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:60px;
    margin-bottom:64px;
  }
  .footer-brand p{font-size:14px;margin:18px 0 28px;max-width:300px}
  .footer-social{display:flex;gap:10px}
  .social-icon{
    width:38px;height:38px;border-radius:50%;
    background:var(--cream);
    border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;
    color:var(--aubergine);transition:all .25s;
  }
  .social-icon:hover{background:var(--aubergine);color:var(--cream);border-color:var(--aubergine)}
  .footer-col h4{
    font-family:var(--mono);font-size:11px;
    letter-spacing:.18em;text-transform:uppercase;
    color:var(--violet);font-weight:500;
    margin-bottom:18px;
  }
  .footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
  .footer-col a{font-size:14px;color:var(--aubergine);transition:color .2s}
  .footer-col a:hover{color:var(--violet)}
  .footer-bottom{
    padding-top:32px;border-top:1px solid var(--line);
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;
    font-size:12px;color:var(--ink-60);
  }
  .footer-bottom a{color:var(--ink-60)}
  .footer-bottom a:hover{color:var(--aubergine)}

  @media (max-width:840px){
    .footer-grid{grid-template-columns:1fr 1fr;gap:40px}
    .footer-brand{grid-column:span 2}
  }

  /* sticky mobile CTA */
  .mobile-sticky{
    display:none;
  }
  @media (max-width:768px){
    .mobile-sticky{
      display:flex;position:fixed;bottom:16px;left:16px;right:16px;
      background:var(--aubergine);color:var(--cream);
      padding:14px 22px;border-radius:999px;
      box-shadow:var(--shadow-lg);
      align-items:center;justify-content:center;gap:8px;
      font-weight:600;font-size:14px;z-index:90;
    }
  }

  /* ======= REVEAL ANIMATIONS ======= */
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease, transform .8s ease}
  .reveal.in{opacity:1;transform:translateY(0)}


  /* ======= ANNOUNCEMENT BAR ======= */
  .announce{
    background:var(--aubergine);
    color:var(--cream);
    overflow:hidden;
    border-bottom:1px solid rgba(250,247,242,.08);
  }
  .announce-track{
    display:flex;gap:60px;
    animation:scroll 32s linear infinite;
    width:max-content;
    padding:10px 0;
  }
  .announce-item{
    display:inline-flex;align-items:center;gap:14px;
    font-size:13px;font-weight:500;letter-spacing:-.005em;
    white-space:nowrap;
  }
  .announce-tag{
    background:var(--raspberry);
    color:var(--cream);
    padding:3px 10px;
    border-radius:4px;
    font-family:var(--mono);
    font-size:10px;letter-spacing:.16em;
    text-transform:uppercase;font-weight:600;
  }
  .announce-cta{
    color:var(--raspberry);font-weight:600;
    border-bottom:1px solid var(--raspberry);
    padding-bottom:1px;
    transition:color .2s, border-color .2s;
  }
  .announce-cta:hover{color:var(--cream);border-color:var(--cream)}

  /* ======= FOOD TRAIL BOOK SECTION ======= */
  .food-trail{
    padding:120px 0;
    background:
      radial-gradient(ellipse at 80% 20%, rgba(169,191,168,.18), transparent 60%),
      radial-gradient(ellipse at 20% 80%, rgba(123,75,143,.12), transparent 60%),
      var(--cream-2);
    position:relative;
    overflow:hidden;
  }
  .food-trail::before{
    content:"";position:absolute;
    top:-200px;right:-200px;
    width:500px;height:500px;
    background:
      repeating-radial-gradient(circle at center, transparent 0, transparent 20px, rgba(169,191,168,.18) 20px, rgba(169,191,168,.18) 21px);
    border-radius:50%;
    pointer-events:none;
    opacity:.6;
  }
  .ft-grid{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:80px;
    align-items:center;
    position:relative;
    z-index:1;
  }
  .ft-cover-wrap{
    position:relative;
    perspective:1500px;
  }
  .ft-cover{
    width:100%;max-width:420px;
    margin:0 auto;display:block;
    border-radius:6px;
    box-shadow:
      0 1px 1px rgba(49,32,51,.08),
      0 8px 16px rgba(49,32,51,.12),
      0 30px 60px -15px rgba(49,32,51,.35),
      0 50px 100px -30px rgba(49,32,51,.4);
    transform:rotate(-2deg) rotateY(-6deg);
    transition:transform .8s cubic-bezier(.2,.8,.2,1);
    position:relative;
    z-index:2;
  }
  .ft-cover:hover{transform:rotate(0deg) rotateY(-2deg) translateY(-6px)}
  .ft-cover-shelf{
    position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);
    width:380px;height:14px;
    background:radial-gradient(ellipse at center, rgba(49,32,51,.18), transparent 70%);
    filter:blur(8px);
    z-index:1;
  }
  .ft-deco-tag{
    position:absolute;top:20px;right:0;
    background:var(--raspberry);
    color:var(--cream);
    padding:8px 14px;
    border-radius:6px;
    font-family:var(--mono);
    font-size:11px;letter-spacing:.14em;
    text-transform:uppercase;font-weight:600;
    transform:rotate(8deg);
    box-shadow:var(--shadow-md);
    z-index:3;
  }
  .ft-deco-stamp{
    position:absolute;bottom:60px;left:-10px;
    width:90px;height:90px;
    border-radius:50%;
    background:var(--cream);
    border:1px dashed var(--violet);
    display:flex;align-items:center;justify-content:center;
    font-family:var(--serif);font-style:italic;
    color:var(--violet);
    font-size:13px;line-height:1.1;
    text-align:center;padding:10px;
    transform:rotate(-12deg);
    z-index:3;
  }

  .ft-content{position:relative}
  .ft-eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    padding:6px 14px;border-radius:999px;
    background:rgba(123,75,143,.1);
    color:var(--violet);
    font-family:var(--mono);font-size:11px;
    letter-spacing:.16em;text-transform:uppercase;
    margin-bottom:24px;
  }
  .ft-content h2{
    margin-bottom:20px;
    font-size:clamp(36px,4.5vw,60px);
  }
  .ft-content h2 em{color:var(--violet);font-style:italic}
  .ft-content .lede{
    margin-bottom:32px;
    max-width:540px;
  }
  .ft-meta{
    display:flex;flex-wrap:wrap;gap:8px;
    margin-bottom:36px;
  }
  .ft-meta-item{
    background:var(--cream);
    border:1px solid var(--line);
    padding:6px 14px;
    border-radius:999px;
    font-size:12px;font-weight:500;
    color:var(--aubergine);
    display:inline-flex;align-items:center;gap:8px;
  }
  .ft-meta-item svg{color:var(--violet)}
  .ft-bullets{
    display:grid;grid-template-columns:1fr 1fr;
    gap:14px;
    margin-bottom:40px;
  }
  .ft-bullet{
    display:flex;gap:12px;
    align-items:flex-start;
  }
  .ft-bullet-icon{
    width:32px;height:32px;border-radius:8px;
    background:var(--violet);
    color:var(--cream);
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
    font-family:var(--mono);font-size:11px;font-weight:600;
  }
  .ft-bullet-text{
    font-size:14px;color:var(--aubergine);
    line-height:1.45;font-weight:500;
  }
  .ft-cta-row{
    display:flex;gap:14px;flex-wrap:wrap;
    margin-bottom:24px;
  }
  .ft-retailers{
    display:flex;gap:18px;flex-wrap:wrap;
    align-items:center;
    font-size:12px;
    color:var(--ink-60);
  }
  .ft-retailers strong{color:var(--aubergine);font-weight:600}
  .ft-retailers a{
    color:var(--aubergine);
    border-bottom:1px solid var(--ink-30);
    padding-bottom:1px;
    transition:color .2s, border-color .2s;
  }
  .ft-retailers a:hover{color:var(--violet);border-color:var(--violet)}

  @media (max-width:980px){
    .ft-grid{grid-template-columns:1fr;gap:60px}
    .ft-cover-wrap{order:-1}
    .ft-cover{max-width:300px;transform:rotate(-2deg)}
    .ft-bullets{grid-template-columns:1fr}
  }


/* ============================================
   BLOG INDEX (home.php)
   ============================================ */
.blog-hero{padding:60px 0 40px;text-align:center}
.blog-hero-inner{max-width:780px;margin:0 auto;padding:0 28px}
.blog-hero h1{font-size:clamp(44px,5.5vw,76px);line-height:1.05;margin-bottom:24px}
.blog-hero h1 em{font-style:italic;color:var(--violet);background:linear-gradient(180deg,transparent 60%,rgba(217,108,142,.18) 60%)}
.blog-hero .lede{margin:0 auto;max-width:580px;font-size:clamp(17px,1.4vw,20px);color:var(--aubergine);line-height:1.55}

/* Article featured (home blog) */
.blog-featured{padding:48px 0 80px}
.blog-featured-card{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:48px;
  background:var(--cream-2);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:transform .3s, box-shadow .3s;
  align-items:stretch;
}
.blog-featured-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.blog-featured-img{
  position:relative;overflow:hidden;
  aspect-ratio:auto;
  min-height:380px;
}
.blog-featured-img img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}
.blog-featured-content{
  padding:48px 56px 48px 0;
  display:flex;flex-direction:column;justify-content:center;
}
.blog-featured-tag{
  display:inline-block;
  padding:6px 14px;border-radius:999px;
  background:var(--raspberry);color:var(--cream);
  font-family:var(--mono);font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;
  font-weight:500;
  align-self:flex-start;
  margin-bottom:18px;
}
.blog-featured-rubrique{
  display:inline-block;
  font-family:var(--mono);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--violet);font-weight:500;
  margin-bottom:14px;
}
.blog-featured-card h2{
  font-size:clamp(28px,3vw,40px);
  line-height:1.1;
  margin-bottom:18px;
  color:var(--aubergine);
}
.blog-featured-card p{
  font-size:16px;line-height:1.6;
  color:var(--ink-60);
  margin-bottom:24px;
}
.blog-featured-meta{
  display:flex;align-items:center;gap:14px;
  font-size:13px;color:var(--ink-60);
  padding-top:18px;border-top:1px solid var(--line);
  flex-wrap:wrap;
}
.blog-featured-meta .dot{
  width:3px;height:3px;border-radius:50%;background:var(--ink-30,rgba(29,29,27,.3));
}
.blog-featured-arrow{
  margin-left:auto;
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--sans);font-weight:600;
  color:var(--violet);font-size:14px;
}
@media (max-width:840px){
  .blog-featured-card{grid-template-columns:1fr;gap:0}
  .blog-featured-img{min-height:240px}
  .blog-featured-content{padding:32px 28px}
  .blog-featured-arrow{margin-left:0}
}

/* Filtres rubriques (pills) */
.blog-rubriques{padding:0 0 48px}
.blog-rubriques-bar{
  display:flex;align-items:center;
  gap:24px;flex-wrap:wrap;
  padding:24px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.blog-rubriques-label{
  font-family:var(--mono);font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-60);font-weight:500;
  flex-shrink:0;
}
.blog-rubriques-pills{
  display:flex;gap:8px;flex-wrap:wrap;
}
.rubrique-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;border-radius:999px;
  background:var(--cream-2);
  border:1px solid var(--line);
  font-size:13px;color:var(--aubergine);
  font-weight:500;
  transition:background .2s, border-color .2s, color .2s;
}
.rubrique-pill:hover{
  background:var(--cream);border-color:var(--violet);color:var(--violet);
}
.rubrique-pill.active{
  background:var(--aubergine);border-color:var(--aubergine);color:var(--cream);
}
.rubrique-pill span{
  font-family:var(--mono);font-size:11px;
  font-weight:600;
  opacity:.7;
}

/* Grille articles blog */
.blog-grid-section{padding:0 0 100px}
.blog-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
@media (max-width:980px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:680px){.blog-grid{grid-template-columns:1fr}}

/* ============================================
   PRESSE (archive-vd_presse.php)
   ============================================ */
.presse-hero{padding:60px 0 80px;text-align:center}
.presse-hero-inner{max-width:780px;margin:0 auto;padding:0 28px}
.presse-hero h1{font-size:clamp(44px,5.5vw,76px);line-height:1.05;margin-bottom:24px}
.presse-hero h1 em{font-style:italic;color:var(--violet);background:linear-gradient(180deg,transparent 60%,rgba(217,108,142,.18) 60%)}
.presse-hero .lede{margin:0 auto 32px;max-width:580px;font-size:clamp(17px,1.4vw,20px);color:var(--aubergine);line-height:1.55}
.presse-hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

.presse-list-section{padding:0 0 100px}
.presse-list{
  max-width:880px;margin:0 auto;
  display:flex;flex-direction:column;
  gap:0;
  border-top:1px solid var(--line);
}
.presse-item{
  display:grid;
  grid-template-columns:160px 1fr auto;
  gap:32px;align-items:center;
  padding:28px 0;
  border-bottom:1px solid var(--line);
  transition:background .2s;
}
.presse-item:hover{background:var(--cream-2);margin:0 -28px;padding:28px}
.presse-item-meta{
  display:flex;flex-direction:column;gap:6px;
}
.presse-item-meta time{
  font-family:var(--mono);font-size:13px;
  color:var(--violet);font-weight:600;
  letter-spacing:.04em;
}
.presse-type{
  font-family:var(--mono);font-size:10px;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-60);font-weight:500;
}
.presse-media{
  font-family:var(--mono);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--raspberry);font-weight:600;
  margin-bottom:8px;
}
.presse-title{
  font-family:var(--serif);
  font-size:22px;
  line-height:1.25;font-weight:500;
  color:var(--aubergine);
  margin:0 0 6px;
}
.presse-title a{color:inherit;transition:color .2s}
.presse-title a:hover{color:var(--violet)}
.presse-excerpt{
  font-size:14px;color:var(--ink-60);
  line-height:1.5;margin:0;
}
.presse-arrow{
  width:44px;height:44px;border-radius:50%;
  background:var(--cream-2);
  border:1px solid var(--line);
  color:var(--violet);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all .25s;
}
.presse-arrow:hover{
  background:var(--violet);color:var(--cream);border-color:var(--violet);
  transform:translate(2px,-2px);
}
@media (max-width:760px){
  .presse-item{
    grid-template-columns:1fr auto;
    gap:14px 14px;
  }
  .presse-item-meta{
    grid-column:1 / -1;
    flex-direction:row;align-items:center;gap:14px;
  }
  .presse-item:hover{margin:0;padding:28px 0}
}

/* ============================================
   RECETTE (single + archive + shortcode)
   ============================================ */
/* ======= RECIPE HERO MAGAZINE ======= */
  .recipe-hero{
    padding:40px 0 0;
    position:relative;
  }
  .recipe-hero-meta{
    text-align:center;
    margin-bottom:28px;
    padding:0 28px;
  }
  .recipe-hero-cat{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--raspberry);
    font-weight:600;
    margin-bottom:18px;
  }
  .recipe-hero-cat::before{
    content:"";
    width:24px;height:1px;background:var(--raspberry);
  }
  .recipe-hero-cat::after{
    content:"";
    width:24px;height:1px;background:var(--raspberry);
  }
  .recipe-hero h1{
    font-size:clamp(40px,5.4vw,76px);
    line-height:1.04;
    margin:0 auto 24px;
    max-width:880px;
  }
  .recipe-hero h1 em{font-style:italic;color:var(--violet)}
  .recipe-hero-lede{
    max-width:680px;
    margin:0 auto 40px;
    font-size:clamp(17px,1.4vw,20px);
    line-height:1.55;
    color:var(--aubergine);
  }
  .recipe-hero-byline{
    display:flex;
    align-items:center;
    gap:14px;
    justify-content:center;
    font-size:13px;
    color:var(--ink-60);
    margin-bottom:48px;
    flex-wrap:wrap;
  }
  .recipe-hero-byline .author{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--aubergine);
    font-weight:500;
  }
  .recipe-hero-byline .author-avatar{
    width:32px;height:32px;border-radius:50%;
    background:radial-gradient(circle at 35% 30%,var(--raspberry),var(--violet) 60%,var(--aubergine));
    display:inline-block;
  }
  .recipe-hero-byline .dot{
    width:3px;height:3px;border-radius:50%;
    background:var(--ink-30);
  }

  /* Hero photo 16:9 */
  .recipe-hero-photo{
    position:relative;
    aspect-ratio:16/9;
    max-width:1280px;
    margin:0 auto;
    overflow:hidden;
    background:var(--cream-2);
  }
  .recipe-hero-photo img,
  .recipe-hero-photo svg{
    width:100%;height:100%;
    object-fit:cover;
    display:block;
  }
  .recipe-hero-photo::after{
    content:"";
    position:absolute;
    bottom:0;left:0;right:0;
    height:80px;
    background:linear-gradient(180deg,transparent,rgba(49,32,51,.12));
    pointer-events:none;
  }
  /* Sticker note premium */
  .recipe-hero-sticker{
    position:absolute;
    top:32px;right:32px;
    background:var(--cream);
    padding:18px 22px;
    border-radius:14px;
    box-shadow:var(--shadow-md);
    display:flex;
    align-items:center;
    gap:14px;
    z-index:3;
  }
  .recipe-hero-sticker .stars{
    color:var(--raspberry);
    font-size:14px;
    letter-spacing:1px;
  }
  .recipe-hero-sticker .rating-num{
    font-family:var(--serif);
    font-style:italic;
    font-size:24px;
    color:var(--aubergine);
    line-height:1;
    font-weight:500;
  }
  .recipe-hero-sticker .rating-info{
    display:flex;
    flex-direction:column;
    gap:2px;
  }
  .recipe-hero-sticker .rating-label{
    font-family:var(--mono);
    font-size:9px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--ink-60);
    font-weight:500;
  }
  @media (max-width:680px){
    .recipe-hero-sticker{top:14px;right:14px;padding:12px 16px}
    .recipe-hero-sticker .rating-num{font-size:18px}
  }

  /* ======= QUICK META BAR (sous la photo, sticky) ======= */
  .recipe-meta-bar{
    background:var(--cream);
    border-bottom:1px solid var(--line);
    border-top:1px solid var(--line);
    padding:0;
    position:sticky;
    top:73px;
    z-index:50;
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    background:rgba(250,247,242,.92);
  }
  .recipe-meta-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    max-width:1100px;
    margin:0 auto;
  }
  .recipe-meta-item{
    padding:24px 18px;
    text-align:center;
    border-right:1px solid var(--line);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
  }
  .recipe-meta-item:last-child{border-right:none}
  .recipe-meta-item .icon{
    color:var(--violet);
  }
  .recipe-meta-item .label{
    font-family:var(--mono);
    font-size:9px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--ink-60);
    font-weight:500;
  }
  .recipe-meta-item .value{
    font-family:var(--serif);
    font-size:18px;
    color:var(--aubergine);
    font-weight:500;
    line-height:1;
  }
  .recipe-meta-item .value em{font-style:italic;color:var(--violet)}
  @media (max-width:880px){
    .recipe-meta-grid{grid-template-columns:repeat(3,1fr)}
    .recipe-meta-item:nth-child(3){border-right:none}
    .recipe-meta-item:nth-child(n+4){border-top:1px solid var(--line)}
    .recipe-meta-item:nth-child(4){border-right:1px solid var(--line)}
  }
  @media (max-width:480px){
    .recipe-meta-grid{grid-template-columns:repeat(2,1fr)}
    .recipe-meta-item{border-right:none !important;border-top:1px solid var(--line)}
    .recipe-meta-item:nth-child(odd){border-right:1px solid var(--line) !important}
  }

  /* ======= MAIN GRID 2 COLONNES ======= */
  .recipe-main{padding:80px 0}
  .recipe-grid{
    display:grid;
    grid-template-columns:340px 1fr;
    gap:80px;
    align-items:start;
  }
  .recipe-aside{
    position:sticky;
    top:170px;
    display:flex;
    flex-direction:column;
    gap:32px;
  }

  /* Card ingrédients */
  .ingredients-card{
    background:var(--cream-2);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    padding:32px 28px;
  }
  .ingredients-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:6px;
  }
  .ingredients-head h2{
    font-size:22px;
    margin:0;
  }
  .ingredients-head .icon{
    width:36px;height:36px;border-radius:50%;
    background:var(--violet);color:var(--cream);
    display:flex;align-items:center;justify-content:center;
  }

  /* Slider portions */
  .portions-control{
    margin-top:20px;
    padding:14px 18px;
    background:var(--cream);
    border:1px solid var(--line);
    border-radius:var(--radius);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
  }
  .portions-control .label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--ink-60);
    font-weight:500;
  }
  .portions-stepper{
    display:flex;
    align-items:center;
    gap:10px;
  }
  .portions-stepper button{
    width:32px;height:32px;border-radius:50%;
    background:var(--cream-2);
    color:var(--aubergine);
    border:1px solid var(--line);
    font-size:18px;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:all .2s;
    font-weight:500;
  }
  .portions-stepper button:hover{
    background:var(--violet);color:var(--cream);border-color:var(--violet);
  }
  .portions-stepper .count{
    font-family:var(--serif);
    font-size:22px;
    font-style:italic;
    color:var(--violet);
    font-weight:500;
    min-width:30px;
    text-align:center;
  }

  .ingredients-list{
    list-style:none;
    padding:0;
    margin:24px 0 0;
  }
  .ingredient{
    display:grid;
    grid-template-columns:90px 1fr;
    gap:14px;
    padding:14px 0;
    border-top:1px solid var(--line);
    font-size:15px;
    align-items:start;
  }
  .ingredient:first-child{border-top:none;padding-top:0}
  .ingredient .qty{
    font-family:var(--mono);
    font-size:14px;
    font-weight:600;
    color:var(--violet);
    line-height:1.4;
  }
  .ingredient .qty .unit{
    font-size:12px;
    color:var(--ink-60);
    font-weight:500;
    margin-left:2px;
  }
  .ingredient .name{
    color:var(--aubergine);
    line-height:1.4;
  }
  .ingredient .name small{
    display:block;
    font-size:12px;
    color:var(--ink-60);
    margin-top:2px;
    font-style:italic;
  }
  .ingredient.section-header{
    padding-top:18px;
    margin-top:8px;
    grid-template-columns:1fr;
  }
  .ingredient.section-header .name{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--raspberry);
    font-weight:600;
  }

  /* Card nutrition */
  .nutrition-card{
    background:var(--aubergine);
    color:var(--cream);
    border-radius:var(--radius-lg);
    padding:28px 24px;
  }
  .nutrition-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:18px;
  }
  .nutrition-head h2{
    color:var(--cream);
    font-size:18px;
    margin:0;
  }
  .nutrition-head .per{
    font-family:var(--mono);
    font-size:9px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:rgba(250,247,242,.7);
    font-weight:500;
  }
  .nutrition-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:14px;
    margin-bottom:18px;
  }
  .nutrition-stat{
    background:rgba(250,247,242,.06);
    border:1px solid rgba(250,247,242,.12);
    border-radius:var(--radius);
    padding:14px 16px;
  }
  .nutrition-stat .num{
    font-family:var(--serif);
    font-size:24px;
    font-style:italic;
    color:var(--raspberry);
    line-height:1;
    display:block;
  }
  .nutrition-stat .label{
    font-family:var(--mono);
    font-size:9px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:rgba(250,247,242,.7);
    margin-top:6px;
    display:block;
  }
  .nutrition-ratio{
    margin-top:16px;
    padding-top:16px;
    border-top:1px solid rgba(250,247,242,.12);
    font-size:13px;
    color:rgba(250,247,242,.85);
    line-height:1.5;
  }
  .nutrition-ratio strong{color:var(--raspberry);font-weight:600}

  /* ======= ÉTAPES ======= */
  .recipe-steps h2{
    font-size:36px;
    margin-bottom:14px;
  }
  .recipe-steps h2 em{font-style:italic;color:var(--violet)}
  .recipe-steps-intro{
    margin-bottom:48px;
    font-size:17px;
    line-height:1.6;
    color:var(--ink-60);
  }
  .step{
    display:grid;
    grid-template-columns:80px 1fr;
    gap:32px;
    padding:32px 0;
    border-top:1px solid var(--line);
    align-items:start;
  }
  .step:first-of-type{border-top:none;padding-top:0}
  .step-num{
    font-family:var(--serif);
    font-size:48px;
    font-style:italic;
    color:var(--raspberry);
    line-height:1;
    font-weight:400;
  }
  .step-content h3{
    font-size:22px;
    line-height:1.25;
    margin-bottom:14px;
    color:var(--aubergine);
    font-weight:500;
  }
  .step-content p{
    font-size:16px;
    line-height:1.7;
    color:var(--aubergine);
    margin-bottom:14px;
    max-width:none;
  }
  .step-content p:last-child{margin-bottom:0}
  .step-tip{
    margin-top:18px;
    padding:16px 20px;
    background:rgba(123,75,143,.06);
    border-left:3px solid var(--violet);
    border-radius:0 var(--radius) var(--radius) 0;
  }
  .step-tip strong{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--violet);
    font-weight:600;
    display:block;
    margin-bottom:6px;
  }
  .step-tip p{
    font-size:14px !important;
    line-height:1.55 !important;
    color:var(--aubergine) !important;
    margin:0 !important;
  }
  .step-time{
    margin-top:14px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 12px;
    background:var(--cream-2);
    border-radius:999px;
    font-family:var(--mono);
    font-size:11px;
    color:var(--ink-60);
    font-weight:500;
    letter-spacing:.04em;
  }

  @media (max-width:880px){
    .recipe-grid{grid-template-columns:1fr;gap:48px}
    .recipe-aside{position:static}
    .step{grid-template-columns:1fr;gap:14px;padding:24px 0}
    .step-num{font-size:36px}
  }

  /* ======= POURQUOI / SCIENCE ======= */
  .science-section{
    padding:120px 0;
    background:var(--cream-2);
  }
  .science-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:64px;
    align-items:center;
    margin-top:48px;
  }
  .science-content h2{
    font-size:42px;
    margin-bottom:24px;
    line-height:1.1;
  }
  .science-content h2 em{font-style:italic;color:var(--violet)}
  .science-content p{
    font-size:16px;
    line-height:1.7;
    color:var(--aubergine);
    margin-bottom:18px;
  }
  .science-callout{
    background:var(--cream);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    padding:36px 32px;
  }
  .science-callout-title{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--raspberry);
    font-weight:600;
    margin-bottom:12px;
  }
  .science-callout h3{
    font-size:24px;
    line-height:1.25;
    margin-bottom:18px;
    color:var(--aubergine);
    font-weight:500;
  }
  .science-ratio-bar{
    display:flex;
    height:14px;
    border-radius:999px;
    overflow:hidden;
    margin:24px 0 12px;
    box-shadow:inset 0 1px 2px rgba(0,0,0,.08);
  }
  .science-ratio-bar .glucose{
    width:80%;
    background:linear-gradient(90deg,var(--violet),var(--violet-deep));
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--cream);
    font-family:var(--mono);
    font-size:10px;
    font-weight:600;
    letter-spacing:.1em;
  }
  .science-ratio-bar .fructose{
    width:20%;
    background:linear-gradient(90deg,var(--raspberry),#B85278);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--cream);
    font-family:var(--mono);
    font-size:10px;
    font-weight:600;
    letter-spacing:.1em;
  }
  .science-ratio-legend{
    display:flex;
    justify-content:space-between;
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--ink-60);
    margin-top:8px;
  }
  .science-callout .footnote{
    margin-top:20px;
    padding-top:20px;
    border-top:1px solid var(--line);
    font-size:12px;
    color:var(--ink-60);
    line-height:1.5;
    font-style:italic;
  }
  @media (max-width:880px){
    .science-grid{grid-template-columns:1fr;gap:48px}
  }

  /* ======= VARIATIONS ======= */
  .variations-section{padding:120px 0}
  .variations-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:20px;
    margin-top:64px;
  }
  .variation-card{
    background:var(--cream-2);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    padding:28px 24px;
    transition:transform .3s,box-shadow .3s;
  }
  .variation-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow-md);
  }
  .variation-card .tag{
    display:inline-block;
    padding:5px 12px;
    border-radius:999px;
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.14em;
    text-transform:uppercase;
    font-weight:600;
    margin-bottom:14px;
  }
  .variation-card.gluten .tag{background:rgba(126,156,130,.18);color:var(--sage-deep)}
  .variation-card.vegan .tag{background:rgba(123,75,143,.12);color:var(--violet)}
  .variation-card.intense .tag{background:rgba(217,108,142,.15);color:var(--raspberry)}
  .variation-card.long .tag{background:rgba(94,54,112,.12);color:var(--violet-deep)}
  .variation-card h3{
    font-size:19px;
    line-height:1.25;
    margin-bottom:12px;
    color:var(--aubergine);
  }
  .variation-card h3 em{font-style:italic;color:var(--violet)}
  .variation-card p{
    font-size:14px;
    line-height:1.6;
    color:var(--ink-60);
    margin:0;
  }

  /* ======= QUAND L'UTILISER ======= */
  .timing-section{
    padding:120px 0;
    background:var(--aubergine);
    color:var(--cream);
  }
  .timing-section h2{color:var(--cream)}
  .timing-section h2 em{color:var(--raspberry)}
  .timing-section .eyebrow{color:var(--raspberry)}
  .timing-section p{color:rgba(250,247,242,.85)}
  .timing-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    margin-top:64px;
  }
  .timing-card{
    background:rgba(250,247,242,.06);
    border:1px solid rgba(250,247,242,.12);
    border-radius:var(--radius-lg);
    padding:32px 28px;
  }
  .timing-card .when{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--raspberry);
    font-weight:600;
    margin-bottom:14px;
  }
  .timing-card h3{
    color:var(--cream);
    font-size:21px;
    margin-bottom:14px;
    line-height:1.25;
    font-weight:400;
  }
  .timing-card h3 em{font-style:italic;color:var(--raspberry)}
  .timing-card p{
    font-size:14px;
    line-height:1.6;
    margin:0;
  }
  @media (max-width:760px){
    .timing-grid{grid-template-columns:1fr;gap:16px}
  }

  /* ======= RECETTES LIÉES ======= */
  .related-recipes{padding:120px 0}
  .related-grid-recipes{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    margin-top:48px;
  }
  .related-recipe-card{
    background:var(--cream-2);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    overflow:hidden;
    transition:transform .3s,box-shadow .3s;
  }
  .related-recipe-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow-md);
  }
  .related-recipe-img{
    aspect-ratio:4/3;
    overflow:hidden;
    position:relative;
  }
  .related-recipe-img svg{width:100%;height:100%;display:block}
  .related-recipe-tag{
    position:absolute;
    top:14px;left:14px;
    padding:5px 12px;
    background:rgba(250,247,242,.92);
    backdrop-filter:blur(6px);
    border-radius:999px;
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--violet);
    font-weight:600;
  }
  .related-recipe-body{padding:24px 22px}
  .related-recipe-body h3{
    font-size:19px;
    line-height:1.25;
    margin-bottom:8px;
  }
  .related-recipe-body h3 em{font-style:italic;color:var(--violet)}
  .related-recipe-body .desc{
    font-size:13.5px;
    color:var(--ink-60);
    line-height:1.55;
    margin-bottom:14px;
  }
  .related-recipe-meta{
    font-family:var(--mono);
    font-size:11px;
    color:var(--ink-60);
  }
  @media (max-width:880px){
    .related-grid-recipes{grid-template-columns:1fr;gap:20px}
  }
  /* Hero archive recettes */
  .recettes-hero{padding:60px 0 40px;text-align:center}
  .recettes-hero-inner{max-width:780px;margin:0 auto;padding:0 28px}
  .recettes-hero h1{font-size:clamp(44px,5.5vw,76px);line-height:1.05;margin-bottom:24px}
  .recettes-hero h1 em{font-style:italic;color:var(--violet);background:linear-gradient(180deg,transparent 60%,rgba(217,108,142,.18) 60%)}
  .recettes-hero .lede{margin:0 auto;max-width:580px;font-size:clamp(17px,1.4vw,20px);color:var(--aubergine);line-height:1.55}

  .recettes-filters{padding:0 0 48px}
  .recettes-filters-bar{
    display:flex;align-items:center;
    gap:24px;flex-wrap:wrap;
    padding:24px 0;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .recettes-filters-label{
    font-family:var(--mono);font-size:11px;
    letter-spacing:.16em;text-transform:uppercase;
    color:var(--ink-60);font-weight:500;
    flex-shrink:0;
  }
  .recettes-filters-pills{
    display:flex;gap:8px;flex-wrap:wrap;
  }

  .recettes-grid-section{padding:0 0 100px}
  .recettes-archive-grid{
    grid-template-columns:repeat(3, 1fr) !important;
  }
  @media (max-width:980px){.recettes-archive-grid{grid-template-columns:repeat(2,1fr) !important}}
  @media (max-width:680px){.recettes-archive-grid{grid-template-columns:1fr !important}}

  .recettes-shortcode-section{padding:80px 0}

  /* Pour le contenu Gutenberg natif intégré dans la recette */
  .recipe-intro-content{
    margin-bottom:48px;
    padding-bottom:48px;
    border-bottom:1px solid var(--line);
  }
  .recipe-intro-content p{
    font-size:17px;
    line-height:1.7;
    color:var(--aubergine);
    margin-bottom:18px;
  }
