:root{
    --nuit: #16213E;
    --nuit-2: #0F1830;
    --indigo: #24345E;
    --or: #C9A227;
    --or-clair: #E4C766;
    --rouille: #A6531C;
    --sable: #F0E6D2;
    --sable-2: #E8DAB9;
    --ivoire: #F7F2E7;
    --charbon: #211D18;
    --ligne: rgba(201,162,39,0.35);
    --gutter: clamp(16px, 4vw, 28px);
    --max: 1180px;
    --header-h: 68px;
    --safe-t: env(safe-area-inset-top, 0px);
    --safe-b: env(safe-area-inset-bottom, 0px);
    --safe-l: env(safe-area-inset-left, 0px);
    --safe-r: env(safe-area-inset-right, 0px);
  }
  *, *::before, *::after{ box-sizing:border-box; }
  html{
    scroll-behavior:smooth;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }
  html, body{
    margin:0;
    max-width:100%;
    overflow-x:clip;
  }
  body{
    background:var(--ivoire);
    color:var(--charbon);
    font-family:'Inter', system-ui, sans-serif;
    -webkit-font-smoothing:antialiased;
    line-height:1.5;
    min-height:100dvh;
    padding-left:var(--safe-l);
    padding-right:var(--safe-r);
  }
  h1,h2,h3,h4,.display{
    font-family:'Fraunces', Georgia, serif;
    font-weight:600;
    letter-spacing:-0.01em;
    margin:0;
    overflow-wrap:anywhere;
  }
  p, li, span, a, label{ overflow-wrap:anywhere; }
  a{ color:inherit; }
  img, svg{ max-width:100%; height:auto; display:block; }
  button, input, select, textarea{ font:inherit; max-width:100%; }
  :focus-visible{
    outline:2px solid var(--or);
    outline-offset:3px;
  }

  .motif-divider{
    height:14px;
    width:100%;
    max-width:100%;
    background-image: repeating-linear-gradient(45deg, var(--or) 0 2px, transparent 2px 16px),
                       repeating-linear-gradient(-45deg, var(--or) 0 2px, transparent 2px 16px);
    background-size:16px 14px;
    opacity:0.9;
  }

  /* ---------- topbar ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(22,33,62,0.96);
    backdrop-filter:saturate(1.2) blur(10px);
    -webkit-backdrop-filter:saturate(1.2) blur(10px);
    border-bottom:1px solid rgba(201,162,39,0.25);
    padding-top:var(--safe-t);
  }
  .nav-wrap{
    max-width:var(--max); margin:0 auto;
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:12px var(--gutter);
    min-height:var(--header-h);
  }
  .brand{
    display:flex; align-items:center; gap:10px;
    color:var(--ivoire); text-decoration:none;
    min-width:0; flex:1;
  }
  .brand-mark{ width:auto; height:42px; max-width:96px; flex:none; object-fit:contain; }
  .brand-name{
    font-family:'Fraunces', Georgia, serif; font-weight:600; font-size:1.1rem; color:var(--ivoire);
    line-height:1.1; min-width:0;
  }
  .brand-name small{
    display:block; font-family:'Space Mono', ui-monospace, monospace; font-size:0.58rem; letter-spacing:0.12em;
    color:var(--or-clair); text-transform:uppercase; margin-top:3px; font-weight:400;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%;
  }
  .nav-toggle{
    display:none;
    width:44px; height:44px; flex:none;
    border:1px solid rgba(201,162,39,0.35);
    background:transparent; color:var(--ivoire);
    border-radius:2px; cursor:pointer;
    align-items:center; justify-content:center; padding:0;
  }
  .nav-toggle svg{ width:20px; height:20px; }
  .nav-toggle .icone-fermer{ display:none; }
  body.menu-ouvert .nav-toggle .icone-ouvrir{ display:none; }
  body.menu-ouvert .nav-toggle .icone-fermer{ display:block; }

  .nav-principale ul{
    list-style:none; display:flex; gap:4px; margin:0; padding:0; flex-wrap:nowrap;
  }
  .nav-principale a{
    display:inline-flex; align-items:center; justify-content:center;
    min-height:40px; padding:8px 12px; border-radius:2px;
    color:var(--sable-2); text-decoration:none; font-size:0.9rem; font-weight:500;
    transition:color .2s, background .2s; white-space:nowrap;
  }
  .nav-principale a:hover{ color:var(--ivoire); }
  .nav-principale a.actif{ color:var(--nuit); background:var(--or-clair); }
  .nav-voile{
    display:none; position:fixed; inset:0; z-index:90;
    background:rgba(15,24,48,0.55); border:0; padding:0; cursor:pointer;
  }

  main{
    max-width:var(--max); margin:0 auto; padding:0 var(--gutter);
    width:100%;
  }
  .page{ display:block; animation:apparait .35s ease; min-width:0; }
  @keyframes apparait{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }

  .eyebrow{
    font-family:'Space Mono', ui-monospace, monospace; text-transform:uppercase; letter-spacing:0.14em;
    font-size:0.7rem; color:var(--rouille); font-weight:700;
    overflow-wrap:normal; word-break:normal;
  }

  /* ---------- HERO ---------- */
  .hero{
    background:var(--nuit);
    color:var(--ivoire);
    padding:clamp(40px, 8vw, 86px) var(--gutter) 0;
    margin:0;
    width:100%;
    position:relative;
    overflow:hidden;
  }
  .hero-inner{
    max-width:var(--max); margin:0 auto;
    display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:clamp(24px,5vw,56px); align-items:center;
    padding-bottom:clamp(36px,6vw,64px);
    width:100%;
  }
  .hero-copy, .hero-visuel{ min-width:0; }
  .hero h1{
    font-size:clamp(1.85rem, 5.2vw, 3.5rem); color:var(--ivoire); line-height:1.08; margin-top:14px;
  }
  .hero h1 em{ color:var(--or-clair); font-style:normal; }
  .hero p.lede{
    font-size:clamp(1rem, 2.4vw, 1.1rem); color:var(--sable-2); max-width:46ch; margin:20px 0 0; line-height:1.65;
  }
  .hero-cta{ display:flex; gap:12px; margin-top:28px; flex-wrap:wrap; }

  .btn{
    display:inline-flex; align-items:center; justify-content:center; text-align:center;
    min-height:46px; padding:12px 22px; border-radius:2px; text-decoration:none;
    font-weight:600; font-size:0.94rem; cursor:pointer; border:1px solid transparent;
    transition:transform .15s, background .2s, color .2s, border-color .2s;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }
  @media (hover:hover){
    .btn:hover{ transform:translateY(-1px); }
    .btn-or:hover{ background:var(--or-clair); }
    .btn-ligne:hover{ border-color:var(--or-clair); color:var(--or-clair); }
  }
  .btn:active{ transform:translateY(0); }
  .btn-or{ background:var(--or); color:var(--nuit-2); }
  .btn-ligne{ border-color:rgba(247,242,231,0.4); color:var(--ivoire); background:transparent; }

  .pont-svg{ width:100%; height:auto; max-height:260px; }
  .pont-label{ font-family:'Space Mono', ui-monospace, monospace; font-size:11px; letter-spacing:0.08em; fill:var(--sable-2); }
  .pont-label-top{ display:none; }
  @media (min-width:640px){ .pont-label-top{ display:block; } }

  section{ padding:clamp(40px, 7vw, 64px) 0; }
  .section-tete{ max-width:62ch; margin-bottom:clamp(24px,4vw,40px); }
  .section-tete h2{ font-size:clamp(1.45rem, 3.2vw, 2.2rem); margin-top:10px; }
  .section-tete p{ margin-top:14px; color:#4a453c; line-height:1.65; font-size:1.02rem; }

  .grille-4{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
  .grille-2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }

  .carte{
    background:var(--sable); border:1px solid var(--sable-2);
    padding:clamp(18px,3vw,26px) clamp(16px,3vw,24px); border-radius:2px;
    min-width:0;
  }
  .carte h3{ font-size:1.06rem; }
  .carte p{ margin-top:10px; font-size:0.93rem; color:#4a453c; line-height:1.55; }
  .carte .repere{
    font-family:'Space Mono', ui-monospace, monospace; font-size:0.7rem; color:var(--rouille); font-weight:700;
    letter-spacing:0.06em; margin-bottom:8px;
  }

  .domaine-bloc{
    display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.6fr); gap:clamp(16px,4vw,40px);
    padding:clamp(28px,5vw,46px) 0; border-top:1px solid var(--sable-2);
  }
  .domaine-bloc:last-of-type{ border-bottom:1px solid var(--sable-2); }
  .domaine-num{ font-family:'Space Mono', ui-monospace, monospace; color:var(--rouille); font-size:0.85rem; letter-spacing:0.1em; }
  .domaine-bloc h3{ font-size:clamp(1.25rem, 3vw, 1.5rem); margin-top:8px; }
  .domaine-bloc ul{ margin:18px 0 0; padding:0; list-style:none; display:grid; gap:10px; }
  .domaine-bloc li{
    padding-left:20px; position:relative; font-size:0.96rem; line-height:1.55; color:#332f27;
  }
  .domaine-bloc li::before{
    content:""; position:absolute; left:0; top:9px; width:9px; height:9px;
    background:var(--or); transform:rotate(45deg);
  }

  body.menu-ouvert{
    overflow:hidden;
  }
  body.menu-ouvert .nav-voile{ opacity:1; pointer-events:auto; }

  .promo{
    background:var(--nuit); color:var(--ivoire); border-radius:2px;
    padding:clamp(24px,4vw,44px) clamp(18px,4vw,40px);
    display:grid; grid-template-columns:1fr; gap:24px; align-items:center;
    position:relative; overflow:hidden; width:100%;
  }
  .promo:has(.promo-visuel){
    grid-template-columns:minmax(0,1.4fr) minmax(0,0.9fr);
  }
  .promo::before{
    content:""; position:absolute; inset:0; opacity:0.12; pointer-events:none;
    background-image: repeating-linear-gradient(45deg, var(--or) 0 2px, transparent 2px 20px);
  }
  .promo-contenu, .promo-visuel{ position:relative; min-width:0; z-index:1; }
  .promo .eyebrow{ color:var(--or-clair); }
  .promo h3{ color:var(--ivoire); font-size:clamp(1.2rem, 3vw, 1.5rem); margin-top:10px; }
  .promo p{ color:var(--sable-2); margin-top:12px; line-height:1.6; max-width:48ch; }
  .promo-actions{ position:relative; display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; }
  .promo-visuel svg{ width:min(100%,180px); margin-inline:auto; }

  .chiffres{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
  .chiffre{ text-align:left; border-left:2px solid var(--or); padding-left:14px; min-width:0; }
  .chiffre .val{ font-family:'Fraunces', Georgia, serif; font-size:clamp(1.7rem,4vw,2.1rem); color:var(--nuit); font-weight:600; }
  .chiffre .lab{ font-size:0.82rem; color:#5a5346; margin-top:4px; }

  .region-carte{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:10px; }
  .region{ border:1px solid var(--sable-2); padding:clamp(18px,3vw,26px); background:#fff; min-width:0; }
  .region h3{ font-size:1.1rem; display:flex; align-items:center; gap:10px; }
  .pastille{ width:10px; height:10px; border-radius:50%; display:inline-block; flex:none; }
  .pastille.afr{ background:var(--rouille); }
  .pastille.eur{ background:var(--indigo); }
  .region ul{ margin:14px 0 0; padding-left:18px; color:#4a453c; font-size:0.92rem; line-height:1.8; }

  .citation{ border-left:3px solid var(--or); padding-left:clamp(14px,3vw,24px); margin:clamp(20px,4vw,36px) 0; }
  .citation p{ font-family:'Fraunces', Georgia, serif; font-style:italic; font-size:clamp(1.05rem, 2.8vw, 1.25rem); color:var(--nuit); line-height:1.5; }
  .citation span{ display:block; margin-top:12px; font-size:0.8rem; color:#5a5346; font-family:'Space Mono', ui-monospace, monospace; letter-spacing:0.04em; }

  .about-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(28px,5vw,52px); align-items:start; }
  .valeurs{ display:grid; gap:20px; margin-top:8px; }
  .valeur{ display:flex; gap:14px; min-width:0; }
  .valeur .pt{ font-family:'Space Mono', ui-monospace, monospace; color:var(--or); font-weight:700; font-size:0.9rem; padding-top:3px; flex:none; }
  .valeur h4{ font-family:'Fraunces', Georgia, serif; font-size:1.05rem; font-weight:600; }
  .valeur p{ margin-top:4px; font-size:0.92rem; color:#4a453c; line-height:1.55; }

  .contact-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(24px,4vw,44px); }
  .form-champ{ margin-bottom:14px; display:grid; gap:6px; }
  .form-champ label{ font-size:0.85rem; font-weight:600; color:var(--nuit); }
  .form-champ input, .form-champ select, .form-champ textarea{
    width:100%; padding:12px 12px; border:1px solid var(--sable-2); background:#fff;
    font-family:'Inter', system-ui, sans-serif; font-size:16px; border-radius:2px;
    color:var(--charbon); appearance:none; -webkit-appearance:none;
  }
  .form-champ select{
    background-image:linear-gradient(45deg, transparent 50%, var(--nuit) 50%), linear-gradient(135deg, var(--nuit) 50%, transparent 50%);
    background-position:calc(100% - 18px) calc(50% - 3px), calc(100% - 12px) calc(50% - 3px);
    background-size:6px 6px, 6px 6px; background-repeat:no-repeat; padding-right:36px;
  }
  .form-champ textarea{ resize:vertical; min-height:110px; }
  .form-champ input:focus, .form-champ select:focus, .form-champ textarea:focus{
    outline:2px solid var(--or); outline-offset:1px; border-color:var(--or);
  }
  .btn-submit{ border:none; width:100%; }
  .btn-submit:disabled{ opacity:0.7; cursor:wait; transform:none; }
  .msg-confirm{
    display:none; margin-top:14px; font-size:0.88rem; color:var(--nuit);
    background:var(--sable); padding:12px 14px; border:1px solid var(--sable-2);
  }
  .msg-confirm.visible{ display:block; }
  .msg-confirm.erreur{
    color:#5c1f1f; background:#f7e8e4; border-color:#e2b8aa;
  }
  .honeypot{
    position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden;
  }
  .coord{ display:grid; gap:18px; margin-top:20px; }
  .coord-item{ display:flex; gap:14px; align-items:flex-start; min-width:0; }
  .coord-item .ic{ font-family:'Space Mono', ui-monospace, monospace; color:var(--or); font-weight:700; flex:none; }
  .coord-mail{ overflow-wrap:anywhere; word-break:break-all; }

  .carte-nuit{ background:var(--nuit); border:none; color:var(--ivoire); }
  .carte-nuit .repere{ color:var(--or-clair); }
  .carte-nuit a{ text-decoration:underline; text-underline-offset:2px; }

  footer{
    background:var(--nuit-2); color:var(--sable-2);
    padding:40px 0 calc(26px + var(--safe-b)); margin-top:clamp(48px,8vw,80px);
  }
  .footer-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); width:100%; }
  .footer-top{
    display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:28px 40px;
  }
  footer .brand-name{ color:var(--ivoire); display:block; }
  footer nav[aria-label="Pied de page"],
  footer nav.footer-nav{ min-width:0; flex:1 1 auto; }
  footer nav[aria-label="Pied de page"] ul,
  footer nav.footer-nav ul{
    list-style:none; margin:0; padding:0;
    display:grid;
    grid-template-rows:repeat(3, auto);
    grid-auto-flow:column;
    grid-auto-columns:minmax(8.5rem, 1fr);
    column-gap:clamp(16px, 3vw, 36px);
    row-gap:0;
    width:100%;
    max-width:36rem;
  }
  footer a{
    display:inline-flex; align-items:center; min-height:36px;
    text-decoration:none; color:var(--sable-2); font-size:0.9rem;
  }
  footer a:hover{ color:var(--or-clair); }
  .footer-bas{
    margin-top:28px; padding-top:18px; border-top:1px solid rgba(247,242,231,0.12);
    font-size:0.78rem; color:#8a8672; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 16px;
  }

  .page-intro{ padding-top:clamp(36px,6vw,56px); }
  .titre-page{ font-size:clamp(1.5rem, 3.5vw, 2.3rem); margin-top:12px; }
  .texte-doux{ margin-top:16px; line-height:1.7; color:#3a3527; }
  .texte-muted{ margin-top:14px; max-width:62ch; color:#4a453c; line-height:1.65; }
  .fil-ariane{ margin:0 0 14px; }
  .fil-ariane ol{
    list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px 10px;
    font-family:'Space Mono', ui-monospace, monospace; font-size:0.72rem; letter-spacing:0.04em;
    color:#8a8371; text-transform:uppercase;
  }
  .fil-ariane li{ display:inline-flex; align-items:center; gap:10px; }
  .fil-ariane li:not(:last-child)::after{ content:"/"; color:var(--ligne); }
  .fil-ariane a{ color:var(--rouille); text-decoration:none; }
  .fil-ariane a:hover{ text-decoration:underline; text-underline-offset:2px; }
  .fil-ariane [aria-current="page"]{ color:var(--nuit); font-weight:700; }

  /* ---------- pages légales ---------- */
  .legal{
    max-width:72ch;
  }
  .legal .meta{
    margin-top:10px; font-size:0.85rem; color:#5a5346;
    font-family:'Space Mono', ui-monospace, monospace;
  }
  .legal h2{
    font-size:clamp(1.15rem, 2.4vw, 1.35rem);
    margin:32px 0 12px; color:var(--nuit);
  }
  .legal p, .legal li{
    color:#3a3527; line-height:1.7; font-size:0.98rem;
  }
  .legal p{ margin:0 0 12px; }
  .legal ul{
    margin:0 0 14px; padding-left:1.2rem; display:grid; gap:8px;
  }
  .legal a{
    color:var(--rouille); text-decoration:underline; text-underline-offset:2px;
  }
  .footer-legal{
    display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center;
  }
  .footer-legal a{
    min-height:36px; font-size:0.82rem;
  }

  /* ---------- bandeau cookies ---------- */
  .cookies{
    position:fixed;
    left:var(--gutter);
    right:var(--gutter);
    bottom:calc(16px + var(--safe-b));
    z-index:120;
    max-width:560px;
    margin:0 auto;
    background:var(--nuit);
    color:var(--ivoire);
    border:1px solid rgba(201,162,39,0.35);
    border-radius:2px;
    padding:18px 18px 16px;
    box-shadow:0 12px 40px rgba(15,24,48,0.35);
    display:none;
  }
  .cookies.visible{ display:block; }
  body.cookies-ouverts{
    padding-bottom:calc(140px + var(--safe-b));
  }
  .cookies p{
    margin:0; font-size:0.9rem; line-height:1.55; color:var(--sable-2);
  }
  .cookies a{ color:var(--or-clair); text-decoration:underline; text-underline-offset:2px; }
  .cookies-actions{
    display:flex; flex-wrap:wrap; gap:10px; margin-top:14px;
  }
  .cookies .btn{ min-height:42px; padding:10px 16px; font-size:0.88rem; }
  .btn-sable{
    background:transparent; color:var(--sable-2);
    border-color:rgba(247,242,231,0.35);
  }
  @media (hover:hover){
    .btn-sable:hover{ color:var(--ivoire); border-color:var(--or-clair); }
  }

  @media (max-width:960px){
    .grille-4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  }

  @media (max-width:820px){
    .nav-toggle{ display:inline-flex; }
    .nav-voile{ display:block; opacity:0; pointer-events:none; transition:opacity .2s; }
    body.menu-ouvert .nav-voile{ opacity:1; pointer-events:auto; }
    .nav-principale{
      position:fixed;
      top:calc(var(--header-h) + var(--safe-t));
      left:0; right:0;
      z-index:95;
      background:var(--nuit-2);
      border-bottom:1px solid rgba(201,162,39,0.25);
      padding:12px var(--gutter) calc(16px + var(--safe-b));
      max-height:calc(100dvh - var(--header-h) - var(--safe-t));
      overflow-y:auto;
      transform:translateY(-8px);
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transition:opacity .2s, transform .2s, visibility .2s;
    }
    body.menu-ouvert .nav-principale{
      opacity:1; visibility:visible; pointer-events:auto; transform:none;
    }
    .nav-principale ul{ flex-direction:column; gap:4px; }
    .nav-principale a{
      width:100%; justify-content:flex-start; min-height:48px; padding:12px 14px; font-size:1rem;
    }
    .hero-inner, .about-grid, .contact-grid, .region-carte{ grid-template-columns:1fr; }
    .domaine-bloc{ grid-template-columns:1fr; gap:12px; }
    .promo{ grid-template-columns:1fr; }
    .promo-visuel{ display:none; }
    .chiffres{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .hero-cta .btn, .promo-actions .btn{ flex:1 1 auto; min-width:min(100%, 180px); }
  }

  @media (max-width:560px){
    .brand-name{ font-size:1rem; }
    footer nav[aria-label="Pied de page"] ul,
    footer nav.footer-nav ul{
      grid-auto-columns:minmax(6.5rem, 1fr);
      column-gap:12px;
    }
    footer a{ min-height:34px; font-size:0.86rem; }
    .grille-4, .chiffres{ grid-template-columns:1fr; }
    .hero-cta{ flex-direction:column; }
    .hero-cta .btn, .promo-actions .btn{ width:100%; min-width:0; }
    .promo-actions{ flex-direction:column; }
  }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    .page, .nav-principale, .nav-voile, .btn{ animation:none; transition:none; }
  }

  /* ---------- Actualités / Annonces / Photo ---------- */
  .maj-bandeau{
    display:flex; align-items:center; gap:10px; background:var(--sable); border:1px solid var(--sable-2);
    padding:12px 18px; font-size:0.85rem; color:#4a453c; margin-top:18px;
  }
  .maj-point{ width:8px; height:8px; border-radius:50%; background:var(--or); flex:none; }
  .maj-bandeau.direct{ background:var(--nuit); color:var(--sable-2); border-color:var(--nuit); }
  .maj-bandeau.direct .maj-point{ background:var(--or-clair); animation:pulse 2s infinite; }
  .maj-bandeau.direct strong{ color:var(--ivoire); }
  .actu-breves{
    margin:18px 0 10px; padding:12px 4px 0;
    border:0; background:transparent;
  }
  .actu-breves-tete{
    display:flex; align-items:center; gap:8px; margin-bottom:6px;
  }
  .actu-breves-tete .pt{
    width:8px; height:8px; border-radius:50%; background:var(--or); flex:none;
    animation:pulse 2s infinite;
  }
  .actu-breves-tete h2{
    margin:0; font-family:'Space Mono',ui-monospace,monospace; font-size:0.78rem;
    letter-spacing:0.1em; text-transform:uppercase; color:var(--rouille); font-weight:700;
  }
  .actu-breves-statut{
    margin:0 0 4px; font-size:0.82rem; color:#8a8367;
  }
  .badge-cat-direct{
    background:var(--nuit); color:var(--ivoire); border-color:var(--nuit);
  }
  .actu-zone-item--live{
    border-color:rgba(166,83,28,0.35);
    box-shadow:inset 3px 0 0 var(--or);
  }
  .actu-ext-link{
    display:inline-flex; align-items:center; min-height:40px; margin-top:8px;
    font-family:'Space Mono',ui-monospace,monospace; font-size:0.72rem; font-weight:700;
    letter-spacing:0.04em; color:var(--nuit); text-decoration:none;
    border-bottom:1px solid var(--or);
  }
  .actu-ext-link:hover{ color:var(--rouille); }

  .actu-pagination{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px 12px;
    margin:8px 0 28px; padding:16px 14px; border:1px solid var(--sable-2); background:var(--sable);
    border-radius:2px;
  }
  .actu-pagination[hidden]{ display:none !important; }
  .actu-page-btn{
    width:44px; height:44px; flex:none; border:1px solid var(--sable-2); background:#fff;
    color:var(--nuit); font-size:1.25rem; line-height:1; cursor:pointer; border-radius:2px;
  }
  .actu-page-btn:hover{ border-color:var(--or); color:var(--rouille); }
  .actu-page-btn:disabled{ opacity:.35; cursor:default; }
  .actu-page-nums{
    display:flex; flex-wrap:wrap; gap:8px; justify-content:center; max-width:100%;
  }
  .actu-page-num{
    min-width:44px; min-height:44px; padding:8px 12px; border:1px solid var(--sable-2); background:#fff;
    color:var(--nuit); font-family:'Space Mono',ui-monospace,monospace; font-size:0.78rem;
    cursor:pointer; border-radius:2px;
  }
  .actu-page-num:hover{ border-color:var(--or); }
  .actu-page-num.actif{ background:var(--nuit); color:var(--ivoire); border-color:var(--nuit); }
  .actu-page-info{
    width:100%; margin:4px 0 0; text-align:center; font-size:0.78rem; color:#5a5346;
    font-family:'Space Mono',ui-monospace,monospace; letter-spacing:0.03em;
  }

  /* Filtre catégorie */
  .actu-toolbar{
    position:sticky; top:calc(var(--header-h) + var(--safe-t, 0px)); z-index:20;
    margin:8px 0 18px; padding:14px 14px 12px;
    border:1px solid var(--sable-2); background:rgba(255,252,246,0.96);
    backdrop-filter:blur(8px); border-radius:2px;
    box-shadow:0 8px 24px rgba(22,33,62,0.06);
  }
  .actu-toolbar-row{
    display:flex; flex-direction:column; gap:8px;
  }
  .actu-filtre-label{
    font-family:'Space Mono',ui-monospace,monospace; font-size:0.7rem;
    letter-spacing:0.1em; text-transform:uppercase; color:var(--rouille); font-weight:700;
  }
  .actu-select-wrap{ position:relative; }
  .actu-select-wrap::after{
    content:""; position:absolute; right:14px; top:50%; width:8px; height:8px;
    border-right:2px solid var(--nuit); border-bottom:2px solid var(--nuit);
    transform:translateY(-70%) rotate(45deg); pointer-events:none;
  }
  .actu-select{
    width:100%; appearance:none; -webkit-appearance:none;
    min-height:48px; padding:12px 40px 12px 14px;
    border:1px solid var(--sable-2); background:#fff; color:var(--nuit);
    font-family:'Inter',system-ui,sans-serif; font-size:1rem; font-weight:500;
    border-radius:2px; cursor:pointer;
  }
  .actu-select:focus{
    outline:2px solid var(--or); outline-offset:2px; border-color:var(--or);
  }
  .actu-toolbar-info{
    margin:10px 0 0; font-size:0.78rem; color:#5a5346;
    font-family:'Space Mono',ui-monospace,monospace; letter-spacing:0.03em;
  }

  /* Flux mélangé */
  .actu-feed{
    display:grid; gap:14px; margin:0 0 28px;
    grid-template-columns:1fr;
  }
  .actu-zone-item{
    background:linear-gradient(165deg, #fff 0%, var(--sable) 140%);
    border:1px solid var(--sable-2); padding:18px 16px 16px; border-radius:2px;
    cursor:pointer; min-width:0;
    transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
    animation:actuIn .35s ease both;
  }
  .actu-zone-item[hidden]{ display:none !important; }
  .actu-zone-item:active{ transform:scale(0.995); }
  .actu-zone-item.ouvert{
    border-color:var(--or);
    box-shadow:0 10px 28px rgba(22,33,62,0.08);
  }
  @keyframes actuIn{
    from{ opacity:0; transform:translateY(8px); }
    to{ opacity:1; transform:translateY(0); }
  }
  .actu-zone-item h4{
    font-family:'Fraunces',Georgia,serif; font-size:1.05rem; font-weight:600;
    margin-top:10px; line-height:1.35;
  }
  .actu-zone-item > p{
    margin-top:8px; font-size:0.92rem; color:#4a453c; line-height:1.55;
    display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden;
  }
  .actu-zone-item.ouvert > p{
    display:block; -webkit-line-clamp:unset; overflow:visible;
  }
  .badge-cat,
  .badge-zone{
    display:inline-block; font-family:'Space Mono',ui-monospace,monospace; font-size:0.66rem; font-weight:700;
    letter-spacing:0.06em; text-transform:uppercase; padding:5px 9px; border-radius:2px; margin:0 6px 6px 0;
  }
  .badge-cat{ background:#fff; color:var(--nuit); border:1px solid var(--sable-2); }
  .badge-cat-fiscalite{ border-color:#c45a2a; color:#9a3f12; }
  .badge-cat-comptabilite{ border-color:#2f5d8c; color:#1e3f63; }
  .badge-cat-achats{ border-color:#6b5b2e; color:#4d421f; }
  .badge-cat-finance{ border-color:#3d6b4f; color:#244833; }
  .badge-zone{ color:var(--ivoire); }
  .badge-afr{ background:var(--rouille); }
  .badge-fr{ background:var(--or); color:var(--nuit-2); }
  .badge-us{ background:var(--indigo); }
  .actu-date{
    font-family:'Space Mono',ui-monospace,monospace; font-size:0.72rem; color:var(--rouille);
    font-weight:700; letter-spacing:0.06em; margin-top:4px;
  }
  .actu-source{
    font-family:'Space Mono',ui-monospace,monospace; font-size:0.72rem; color:#8a8367;
    margin-top:8px; display:block;
  }
  .actu-detail{
    display:none; margin-top:10px; padding-top:10px; border-top:1px dashed var(--sable-2);
    font-size:0.9rem; color:#3a3527; line-height:1.6;
  }
  .actu-zone-item.ouvert .actu-detail{ display:block; }
  .actu-toggle{
    display:inline-flex; align-items:center; min-height:40px; margin-top:8px; padding:6px 0;
    font-family:'Space Mono',ui-monospace,monospace; font-size:0.72rem;
    color:var(--rouille); font-weight:700; letter-spacing:0.04em;
  }
  @keyframes pulse{ 0%,100%{opacity:1;} 50%{opacity:0.35;} }

  @media (max-width:700px){
    #page-actualites .page-intro{ padding-top:28px; }
    #page-actualites .titre-page{ font-size:1.45rem; line-height:1.25; }
    #page-actualites .texte-muted{ font-size:0.95rem; }
    .actu-breves{ margin-top:10px; padding-top:8px; }
    .actu-toolbar{
      top:0; margin:4px -4px 14px; padding:12px;
      border-left:0; border-right:0; border-radius:0;
    }
    .actu-feed{ gap:12px; }
    .actu-zone-item{ padding:16px 14px 14px; }
    .actu-zone-item h4{ font-size:1.02rem; }
  }
  @media (min-width:701px){
    .actu-toolbar-row{
      flex-direction:row; align-items:center; justify-content:space-between; gap:16px;
    }
    .actu-filtre-label{ flex:none; }
    .actu-select-wrap{ flex:1; max-width:420px; }
    .actu-feed{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }
  }
  @media (min-width:1100px){
    .actu-feed{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; }
    .actu-zone-item{ padding:20px 18px 18px; }
    .actu-zone-item:hover{
      border-color:var(--or);
      box-shadow:0 12px 30px rgba(22,33,62,0.07);
      transform:translateY(-2px);
    }
  }
  .annonce-carousel{ margin-top:34px; }
  .annonce-track{
    display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory;
    scroll-behavior:smooth; -webkit-overflow-scrolling:touch;
    padding:4px 2px 12px; scrollbar-width:none;
  }
  .annonce-track::-webkit-scrollbar{ display:none; }
  .annonce-carte, .annonce-encart-pub{
    flex:0 0 min(300px, 82vw); scroll-snap-align:start; min-width:0;
  }
  @media (min-width:900px){
    .annonce-carte, .annonce-encart-pub{ flex-basis:calc((100% - 32px) / 3); }
  }
  .annonce-carte{
    background:#fff; border:1px solid var(--sable-2); border-radius:2px;
    padding:24px 22px; display:flex; flex-direction:column; gap:10px;
  }
  .annonce-carte.mise-en-avant{ background:var(--nuit); color:var(--ivoire); border-color:var(--nuit); }
  .annonce-carte.mise-en-avant p{ color:var(--sable-2); }
  .annonce-badge{
    display:inline-flex; align-self:flex-start; font-family:'Space Mono',ui-monospace,monospace;
    font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; font-weight:700;
    padding:4px 9px; border-radius:2px;
  }
  .annonce-badge.offre{ background:var(--or); color:var(--nuit-2); }
  .annonce-badge.annonce{ background:var(--indigo); color:var(--ivoire); }
  .annonce-badge.evenement{ background:var(--rouille); color:var(--ivoire); }
  .annonce-badge.pub{ background:#8a8371; color:var(--ivoire); }
  .annonce-carte h4,
  .annonce-carte h2.annonce-titre{
    font-family:'Fraunces',Georgia,serif; font-size:1.08rem; font-weight:600; margin-top:2px;
  }
  .annonce-carte p{ font-size:0.92rem; color:#4a453c; line-height:1.55; flex-grow:1; }
  .annonce-date{ font-family:'Space Mono',ui-monospace,monospace; font-size:0.72rem; color:var(--rouille); }
  .annonce-carte.mise-en-avant .annonce-date{ color:var(--or-clair); }
  .annonce-carte .btn{ align-self:flex-start; margin-top:6px; padding:9px 18px; font-size:0.85rem; min-height:40px; }
  .annonce-encart-pub{
    border:1px dashed var(--ligne); background:var(--sable); border-radius:2px;
    padding:26px 22px; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:8px; text-align:center; min-height:150px;
  }
  .annonce-encart-pub span{ font-family:'Space Mono',ui-monospace,monospace; font-size:0.7rem; letter-spacing:0.1em; color:#8a8371; text-transform:uppercase; }
  .annonce-nav{
    display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px;
  }
  .annonce-dots{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; flex:1; }
  .annonce-dot{
    width:9px; height:9px; border-radius:50%; border:0; padding:0; cursor:pointer;
    background:var(--sable-2); transition:background .2s, transform .2s;
  }
  .annonce-dot.actif{ background:var(--or); transform:scale(1.15); }
  .annonce-btn-nav{
    width:42px; height:42px; flex:none; border:1px solid var(--sable-2); background:#fff;
    color:var(--nuit); font-size:1.2rem; line-height:1; cursor:pointer; border-radius:2px;
  }
  .annonce-btn-nav:hover{ border-color:var(--or); color:var(--rouille); }
  .annonce-btn-nav:disabled{ opacity:.35; cursor:default; }
  .photo-carte{ margin:0; border:1px solid var(--sable-2); background:#fff; }
  .photo-carte img{ width:100%; height:320px; object-fit:cover; display:block; }
  .photo-carte figcaption{
    padding:12px 16px; font-family:'Space Mono',ui-monospace,monospace; font-size:0.75rem; color:#5a5346;
    border-top:1px solid var(--sable-2);
  }
