  :root{
    --ink:#121d2a;        /* bleu nuit — uniforme, encre du dépôt de la guerre */
    --ink-2:#1b2a3b;
    --ink-3:#243349;
    --parchment:#f4eee2;  /* pierre des Invalides, toile écrue */
    --parchment-2:#ebe2cf;
    --gold:#b0863f;       /* or des honneurs, dôme des Invalides */
    --gold-soft:#c6a05a;
    --oxblood:#7a2230;    /* vermillon retenu, tricolore */
    --char:#221f18;       /* encre du texte */
    --muted:#6f685a;
    --line:rgba(34,31,24,.16);
    --line-gold:rgba(176,134,63,.45);
    --maxw:1180px;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
  body{
    margin:0;background:var(--parchment);color:var(--char);
    font-family:"Spectral",Georgia,serif;font-weight:400;font-size:18px;line-height:1.65;
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  }
  h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;margin:0;line-height:1.1}
  a{color:inherit}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
  .eyebrow{
    font-family:"Archivo",sans-serif;font-size:12px;font-weight:600;
    letter-spacing:.28em;text-transform:uppercase;color:var(--gold);
  }
  .sans{font-family:"Archivo",sans-serif}

  /* ---------- Header ---------- */
  header{position:sticky;top:0;z-index:50;background:rgba(244,238,226,.86);
    backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:70px}
  .brand{display:flex;align-items:center;gap:13px;text-decoration:none;letter-spacing:.01em}
  .crest{width:34px;height:34px;flex:none;object-fit:contain}
  .brand b{font-family:"Cormorant Garamond";font-weight:500;font-size:18px;letter-spacing:.02em}
  .brand span{display:block;font-family:"Archivo";font-size:9.5px;font-weight:600;
    letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:1px}
  .menu{display:flex;align-items:center;gap:30px;list-style:none;margin:0;padding:0}
  .menu a{font-family:"Archivo",sans-serif;font-size:13.5px;font-weight:500;text-decoration:none;
    letter-spacing:.04em;color:var(--char);position:relative;padding:6px 0;transition:color .2s}
  .menu a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
    background:var(--gold);transition:width .28s ease}
  .menu a:hover{color:var(--gold)}.menu a:hover::after{width:100%}
  .menu .cta{border:1px solid var(--gold);color:var(--gold);padding:8px 16px;border-radius:1px}
  .menu .cta::after{display:none}
  .menu .cta:hover{background:var(--gold);color:var(--parchment)}
  .burger{display:none;background:none;border:1px solid var(--line);border-radius:2px;
    width:42px;height:38px;cursor:pointer;align-items:center;justify-content:center}
  .burger span{display:block;width:18px;height:1.5px;background:var(--char);position:relative}
  .burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:var(--char)}
  .burger span::before{top:-6px}.burger span::after{top:6px}

  /* ---------- Hero ---------- */
  .hero{position:relative;background:var(--ink);color:var(--parchment);overflow:hidden}
  .hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:96px 28px 84px;text-align:center}
  .dome{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;opacity:.12}
  .dome svg,.dome img{width:min(540px,82vw);height:auto}
  .frame-line{position:absolute;z-index:2;border:1px solid var(--line-gold);
    top:24px;left:24px;right:24px;bottom:24px;pointer-events:none}
  .hero .eyebrow{color:var(--gold-soft)}
  .hero h1{font-size:clamp(42px,7.4vw,86px);font-weight:600;letter-spacing:.005em;margin:18px 0 0}
  .hero h1 em{font-style:italic;font-weight:600}
  .motto{display:inline-flex;align-items:center;gap:18px;margin:30px 0 24px;
    font-family:"Archivo";font-weight:600;letter-spacing:.55em;font-size:15px;
    text-transform:uppercase;color:var(--gold-soft);text-indent:.55em}
  .motto::before,.motto::after{content:"";width:46px;height:1px;background:var(--line-gold)}
  .hero p.lede{max-width:600px;margin:0 auto;font-size:19px;line-height:1.7;color:#d9cfbb}
  .hero-actions{margin-top:38px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
  .btn{font-family:"Archivo";font-size:13.5px;font-weight:600;letter-spacing:.06em;
    text-decoration:none;padding:13px 26px;border-radius:1px;transition:all .22s;display:inline-block}
  .btn-gold{background:var(--gold);color:var(--ink)}
  .btn-gold:hover{background:var(--gold-soft)}
  .btn-ghost{border:1px solid rgba(244,238,226,.4);color:var(--parchment)}
  .btn-ghost:hover{border-color:var(--gold-soft);color:var(--gold-soft)}

  /* ---------- Salon strip ---------- */
  .salon{background:var(--ink-2);color:var(--parchment);border-top:1px solid var(--line-gold)}
  .salon-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr auto;gap:0;align-items:center}
  .salon-cell{padding:26px 30px;border-left:1px solid rgba(244,238,226,.12)}
  .salon-cell:first-child{border-left:none}
  .salon-cell .k{font-family:"Archivo";font-size:10.5px;font-weight:600;letter-spacing:.22em;
    text-transform:uppercase;color:var(--gold-soft);margin-bottom:7px}
  .salon-cell .v{font-family:"Cormorant Garamond";font-size:21px;font-weight:400;line-height:1.2}
  .salon-cell .v small{display:block;font-family:"Spectral";font-size:14px;color:#c9bfac;margin-top:3px}
  .salon-cell.cta-cell{text-align:center}

  /* ---------- Sections ---------- */
  section{padding:96px 0}
  .sec-head{max-width:720px;margin-bottom:54px}
  .sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
  .sec-head h2{font-size:clamp(32px,4.6vw,50px);font-weight:600;margin-top:12px}
  .sec-head h2 em{font-style:italic}
  .sec-head p{color:var(--muted);font-size:18px;margin:18px 0 0}

  /* Historique */
  #historique{background:var(--parchment-2)}
  .hist{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
  .hist .lead{font-size:21px;line-height:1.7}
  .hist .lead .drop{float:left;font-family:"Cormorant Garamond";font-weight:500;font-size:74px;
    line-height:.78;padding:6px 12px 0 0;color:var(--oxblood)}
  .pull{border-left:2px solid var(--gold);padding:6px 0 6px 26px;margin:0;
    font-family:"Cormorant Garamond";font-style:italic;font-size:23px;line-height:1.45;color:var(--ink)}
  .pull cite{display:block;font-family:"Archivo";font-style:normal;font-size:12px;font-weight:600;
    letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:16px}
  .timeline{list-style:none;margin:34px 0 0;padding:0}
  .timeline li{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:16px 0;border-top:1px solid var(--line)}
  .timeline .yr{font-family:"Cormorant Garamond";font-size:22px;color:var(--gold)}
  .timeline .tx{font-size:16px;line-height:1.5;color:var(--char)}

  /* Galerie */
  .filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:38px}
  .filters button{font-family:"Archivo";font-size:13px;font-weight:500;letter-spacing:.04em;
    background:none;border:1px solid var(--line);color:var(--char);padding:9px 18px;
    border-radius:40px;cursor:pointer;transition:all .2s}
  .filters button[aria-pressed="true"]{background:var(--ink);color:var(--parchment);border-color:var(--ink)}
  .gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
  .work{transition:transform .3s ease,opacity .3s ease}
  .work.hide{display:none}
  .canvas{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:3px;
    background:var(--parchment-2);border:1px solid var(--line);
    box-shadow:0 1px 2px rgba(18,29,42,.04);transition:box-shadow .35s ease}
  .work:hover .canvas{box-shadow:0 16px 32px -20px rgba(18,29,42,.5)}
  .frame{position:absolute;inset:0;padding:0;background:none;box-shadow:none}
  .art{position:absolute;inset:0;overflow:hidden}
  .art img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
  .work:hover .art img{transform:scale(1.05)}
  .work figcaption{padding:16px 2px 0}
  .work .disc{font-family:"Archivo";font-size:10.5px;font-weight:600;letter-spacing:.2em;
    text-transform:uppercase;color:var(--gold)}
  .work .ttl{font-family:"Cormorant Garamond";font-style:italic;font-size:19px;margin:5px 0 2px}
  .work .by{font-size:14px;color:var(--muted)}
  .gal-note{margin-top:40px;font-size:14px;color:var(--muted);text-align:center;font-style:italic}
  .gal-empty{text-align:center;color:var(--muted);font-style:italic;padding:54px 0;font-size:17px}
  /* Événements d'accueil */
  .event{display:flex;flex-direction:column;background:var(--parchment);border:1px solid var(--line);
    border-radius:4px;overflow:hidden;transition:border-color .2s,transform .2s}
  .event:hover{border-color:var(--line-gold);transform:translateY(-2px)}
  .event-img{aspect-ratio:16/9;background:var(--parchment-2) center/cover no-repeat}
  .event-body{padding:22px 24px}
  .event-date{font-family:"Archivo";font-size:11px;font-weight:600;letter-spacing:.14em;
    text-transform:uppercase;color:var(--oxblood)}
  .event-body h3{font-family:"Cormorant Garamond";font-size:24px;font-weight:500;margin:8px 0 8px;line-height:1.15}
  .event-body p{font-size:15px;color:var(--muted);margin:0;line-height:1.55}
  .event-link{display:inline-block;margin-top:14px;font-family:"Archivo";font-size:12.5px;font-weight:600;
    letter-spacing:.04em;color:var(--gold);text-decoration:none}
  .event-link:hover{color:var(--gold-soft)}

  /* Peintres */
  #peintres{background:var(--ink);color:var(--parchment)}
  #peintres .sec-head p{color:#c2b9a6}
  #peintres .eyebrow{color:var(--gold-soft)}
  .roster{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
  .person{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;border-radius:4px;
    text-decoration:none;color:var(--parchment);background:linear-gradient(160deg,#1b2a3b,#0e1722)}
  .person .pcover{position:absolute;inset:0;background-size:cover;background-position:center;
    transition:transform .6s cubic-bezier(.2,.7,.2,1)}
  .person:hover .pcover{transform:scale(1.05)}
  .person .pscrim{position:absolute;inset:0;
    background:linear-gradient(to top,rgba(12,20,32,.92),rgba(12,20,32,.4) 42%,rgba(12,20,32,0) 72%)}
  .person.no-cover .pscrim{background:linear-gradient(to top,rgba(12,20,32,.55),rgba(12,20,32,.08))}
  .person .pmono{position:absolute;left:0;right:0;top:0;bottom:30%;display:flex;align-items:center;
    justify-content:center;font-family:"Cormorant Garamond";font-weight:500;font-size:48px;
    letter-spacing:.04em;color:rgba(198,160,90,.55)}
  .person .pinfo{position:absolute;left:18px;right:14px;bottom:16px;z-index:2}
  .person .nm{font-family:"Cormorant Garamond";font-size:21px;font-weight:500;line-height:1.12;color:var(--parchment)}
  .person .ds{font-family:"Archivo";font-size:10.5px;font-weight:600;letter-spacing:.16em;
    text-transform:uppercase;color:var(--gold-soft);margin-top:6px}
  .person::after{content:"→";position:absolute;top:13px;right:15px;z-index:2;font-family:"Archivo";
    color:var(--gold-soft);opacity:0;transform:translateX(-5px);transition:opacity .25s,transform .25s}
  .person:hover::after{opacity:1;transform:none}
  .person.hide{display:none}
  #painterFilters{justify-content:center;margin-bottom:36px}
  #painterFilters button{background:none;border:1px solid rgba(244,238,226,.25);color:var(--parchment)}
  #painterFilters button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--ink)}

  /* Missions */
  #missions{background:var(--parchment-2)}
  .missions{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:6px}
  .mission{background:var(--parchment);padding:34px 30px;border-top:2px solid var(--gold)}
  .mission .no{font-family:"Cormorant Garamond";font-size:15px;color:var(--gold);letter-spacing:.1em}
  .mission h3{font-size:25px;font-weight:400;margin:14px 0 12px}
  .mission p{font-size:16px;line-height:1.6;color:var(--char);margin:0}

  /* Actualités */
  .actus{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;align-items:start}
  .actu{display:grid;grid-template-columns:96px 1fr;gap:24px;padding:26px;
    border:1px solid var(--line);background:var(--parchment);transition:border-color .2s,transform .2s}
  .actu:hover{border-color:var(--line-gold);transform:translateY(-2px)}
  .actu .date{font-family:"Cormorant Garamond";text-align:center;border-right:1px solid var(--line);padding-right:20px}
  .actu .date .d{font-size:34px;line-height:1;color:var(--oxblood)}
  .actu .date .m{font-family:"Archivo";font-size:11px;font-weight:600;letter-spacing:.14em;
    text-transform:uppercase;color:var(--muted);margin-top:6px}
  .actu .date .y{font-size:14px;color:var(--muted);margin-top:3px}
  .actu h3{font-size:21px;font-weight:400;margin:0 0 7px}
  .actu p{font-size:15px;color:var(--muted);margin:0;line-height:1.55}

  /* Hommages */
  #hommages{background:var(--ink);color:var(--parchment);text-align:center}
  #hommages .eyebrow{color:var(--gold-soft)}
  #hommages h2{font-size:clamp(30px,4vw,46px);font-weight:600;margin:14px 0 10px}
  #hommages .cross{font-size:22px;color:var(--gold-soft)}
  .memoriam{display:flex;gap:42px;justify-content:center;flex-wrap:wrap;margin-top:44px}
  .mem{min-width:170px}
  .mem .nm{font-family:"Cormorant Garamond";font-style:italic;font-size:22px}
  .mem .yr{font-family:"Archivo";font-size:12px;letter-spacing:.16em;color:#a99e8c;margin-top:6px}

  /* Contact */
  #contact{background:var(--parchment-2)}
  .contact{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
  .field{margin-bottom:18px}
  .field label{display:block;font-family:"Archivo";font-size:11px;font-weight:600;
    letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
  .field input,.field textarea{width:100%;font-family:"Spectral";font-size:16px;
    padding:12px 14px;border:1px solid var(--line);background:var(--parchment);color:var(--char)}
  .field input:focus,.field textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:transparent}
  .info-row{display:flex;gap:14px;padding:18px 0;border-top:1px solid var(--line)}
  .info-row .ic{color:var(--gold);font-size:18px;flex:none;width:24px}
  .info-row .k{font-family:"Archivo";font-size:11px;font-weight:600;letter-spacing:.14em;
    text-transform:uppercase;color:var(--muted)}
  .info-row .v{font-size:16px;margin-top:3px}
  .socials{display:flex;gap:12px;margin-top:24px}
  .socials a{width:42px;height:42px;border:1px solid var(--line);display:flex;align-items:center;
    justify-content:center;border-radius:50%;text-decoration:none;color:var(--ink);transition:all .2s;
    font-family:"Archivo";font-size:13px;font-weight:600}
  .socials a:hover{background:var(--ink);color:var(--parchment);border-color:var(--ink)}

  /* Footer */
  footer{background:var(--ink);color:#b3aa98;padding:60px 0 30px}
  .foot{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;padding-bottom:38px;
    border-bottom:1px solid rgba(244,238,226,.12)}
  .foot .brand b{color:var(--parchment)}
  .foot p{font-size:15px;line-height:1.6;max-width:320px}
  .foot h4{font-family:"Archivo";font-size:11px;font-weight:600;letter-spacing:.18em;
    text-transform:uppercase;color:var(--gold-soft);margin:0 0 16px}
  .foot ul{list-style:none;margin:0;padding:0}
  .foot li{margin-bottom:10px}
  .foot a{font-size:15px;text-decoration:none;color:#b3aa98;transition:color .2s}
  .foot a:hover{color:var(--gold-soft)}
  .foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
    padding-top:24px;font-family:"Archivo";font-size:12px;letter-spacing:.04em;color:#8a8170}

  /* Reveal */
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
  .reveal.in{opacity:1;transform:none}
  @media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
  :focus-visible{outline:2px solid var(--gold);outline-offset:3px}

  /* ---------- Responsive ---------- */
  @media(max-width:980px){
    .salon-grid{grid-template-columns:1fr 1fr}
    .salon-cell:nth-child(3){border-left:none}
    .roster{grid-template-columns:repeat(2,1fr)}
    .gallery{grid-template-columns:repeat(2,1fr)}
  }
  @media(max-width:760px){
    body{font-size:17px}
    .menu{position:fixed;inset:70px 0 auto 0;flex-direction:column;gap:0;background:var(--parchment);
      border-bottom:1px solid var(--line);padding:8px 28px 22px;display:none}
    .menu.open{display:flex}
    .menu li{width:100%;border-top:1px solid var(--line)}
    .menu a{display:block;padding:14px 0;font-size:15px}
    .menu .cta{text-align:center;margin-top:12px}
    .burger{display:flex}
    section{padding:64px 0}
    .hist,.contact{grid-template-columns:1fr;gap:38px}
    .salon-grid{grid-template-columns:1fr}
    .salon-cell{border-left:none;border-top:1px solid rgba(244,238,226,.12)}
    .salon-cell:first-child{border-top:none}
    .missions{grid-template-columns:1fr}
    .actus{grid-template-columns:1fr}
    .gallery{grid-template-columns:1fr 1fr;gap:20px}
    .roster{grid-template-columns:1fr 1fr}
    .foot{grid-template-columns:1fr;gap:30px}
  }
  @media(max-width:460px){.gallery{grid-template-columns:1fr}}

  /* ---------- Pages intérieures ---------- */
  .menu a[aria-current="page"]{color:var(--gold)}
  .menu a[aria-current="page"]::after{width:100%}
  .page-hero{background:var(--ink);color:var(--parchment);position:relative;overflow:hidden;
    border-bottom:1px solid var(--line-gold)}
  .page-hero .frame-line{top:18px;left:18px;right:18px;bottom:18px}
  .page-hero-in{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;
    padding:70px 28px 58px;text-align:center}
  .page-hero .eyebrow{color:var(--gold-soft)}
  .page-hero h1{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;
    font-size:clamp(38px,6vw,62px);margin:14px 0 0;line-height:1.06}
  .page-hero h1 em{font-style:italic}
  .page-hero p.intro{max-width:620px;margin:18px auto 0;color:#d4cab6;font-size:18px}
  .page-dome{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;opacity:.10}
  .page-dome svg,.page-dome img{width:min(300px,60vw)}
  section:first-of-type{padding-top:80px}
  .breadcrumb{font-family:"Archivo";font-size:12px;letter-spacing:.04em;color:var(--muted);
    padding:18px 0 0}
  .breadcrumb a{color:var(--muted);text-decoration:none}
  .breadcrumb a:hover{color:var(--gold)}
  .cta-band{background:var(--parchment-2);text-align:center;padding:64px 0}
  .cta-band h2{font-family:"Cormorant Garamond";font-weight:600;font-size:clamp(28px,4vw,40px)}
  .cta-band p{color:var(--muted);max-width:540px;margin:14px auto 26px}
