  :root{
    --bg:#ffffff;          /* blanc pur */
    --bg-2:#f7f6f3;        /* gris-blanc à peine tiédi pour alternance */
    --bg-3:#ecebe7;        /* gris clair neutre pour contraste */
    --ink:#1a1814;         /* presque noir, légèrement chaud */
    --ink-soft:#4d4a44;    /* gris foncé */
    --ink-muted:#8b8780;   /* gris moyen */
    --gold:#b8923d;        /* doré net */
    --gold-soft:#8a6e2e;
    --gold-light:#6b5419;  /* doré antique pour les emphases */
    --line:rgba(184,146,61,.28);
    --line-soft:rgba(184,146,61,.13);
    --serif:'Cormorant Garamond', 'Playfair Display', Georgia, serif;
    --sans:'Inter', -apple-system, system-ui, sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:var(--sans);
    background:var(--bg);
    color:var(--ink);
    line-height:1.6;
    font-weight:300;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  ::selection{background:var(--gold);color:var(--bg)}
  a{color:inherit;text-decoration:none;transition:color .25s ease}
  img{max-width:100%;display:block}

  /* ——— Texture grain ——— */
  body::before{
    content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.04;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* ——— Container ——— */
  .wrap{max-width:1240px;margin:0 auto;padding:0 32px}
  @media(max-width:640px){.wrap{padding:0 20px}}

  /* ——— Typography ——— */
  .serif{font-family:var(--serif);font-weight:400}
  .eyebrow{
    font-family:var(--sans);
    font-size:11px;letter-spacing:.32em;text-transform:uppercase;
    color:var(--gold);font-weight:500;
    display:inline-flex;align-items:center;gap:14px;
  }
  .eyebrow::before,.eyebrow::after{
    content:"";width:28px;height:1px;background:var(--gold-soft);
  }
  .eyebrow.left::before{display:none}
  .eyebrow.left::after{display:none}
  h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;line-height:1.08}
  h1{font-size:clamp(48px,8vw,108px)}
  h2{font-size:clamp(36px,5.5vw,68px)}
  h3{font-size:clamp(22px,2.4vw,32px)}
  .lead{font-size:18px;color:var(--ink-soft);max-width:60ch;font-weight:300}
  em.gold{color:var(--gold-light);font-style:italic;font-family:var(--serif);font-weight:400}

  /* ——— Nav ——— */
  nav.top{
    position:fixed;top:0;left:0;right:0;z-index:50;
    padding:22px 32px;
    display:flex;align-items:center;justify-content:space-between;
    /* Fond quasi-plein pour ne pas laisser percer la vidéo derrière */
    background:rgba(255,255,255,.98);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line-soft);
    transition:padding .3s ease,background .3s ease;
  }
  nav.top.scrolled{padding:14px 32px;background:#fff;border-bottom:1px solid var(--line-soft)}
  .brand{display:flex;align-items:center;gap:12px}
  .brand-mark{
    width:36px;height:36px;border:1px solid var(--gold);border-radius:50%;
    display:grid;place-items:center;
    color:var(--gold);font-family:var(--serif);font-size:18px;font-style:italic;
  }
  .brand-name{font-family:var(--serif);font-size:20px;letter-spacing:.04em;color:var(--ink)}
  .brand-name span{color:var(--gold)}
  .nav-links{display:flex;gap:38px;align-items:center}
  .nav-links a{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);font-weight:400}
  .nav-links a:hover{color:var(--gold-light)}
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:13px 26px;
    font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;
    border:1px solid var(--gold);color:var(--gold);background:transparent;
    cursor:pointer;transition:all .3s ease;
    border-radius:0;
  }
  .btn:hover{background:var(--gold);color:var(--bg)}
  .btn.solid{background:var(--gold);color:var(--bg)}
  .btn.solid:hover{background:var(--gold-light);border-color:var(--gold-light)}
  .btn .arr{transition:transform .3s ease}
  .btn:hover .arr{transform:translateX(4px)}
  @media(max-width:860px){
    .nav-links{display:none}
    nav.top{padding:16px 20px}
  }

  /* ——— Hero ——— */
  .hero{
    min-height:100vh;
    position:relative;
    display:grid;
    place-items:center;
    padding:140px 0 80px;
    overflow:hidden;
    background:
      radial-gradient(ellipse at 70% 30%, rgba(201,169,97,.10), transparent 55%),
      radial-gradient(ellipse at 20% 80%, rgba(201,169,97,.06), transparent 60%),
      var(--bg);
  }
  /* Vidéo de fond hero — sous tout le décor (polaroids, frame, contenu).
     object-fit:cover évite la déformation quel que soit le ratio.
     L'overlay sombre garantit le contraste du h1/sub par-dessus. */
  .hero-video{
    position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;z-index:0;
    opacity:.55;             /* le bg ivoire transparaît, ambiance lounge */
    pointer-events:none;
  }
  .hero-video-overlay{
    position:absolute;inset:0;z-index:1;pointer-events:none;
    background:
      linear-gradient(180deg, rgba(20,16,12,.35) 0%, rgba(20,16,12,.18) 45%, rgba(20,16,12,.6) 100%),
      radial-gradient(ellipse at center, transparent 30%, rgba(247,244,238,.35) 100%);
  }
  /* Accessibilité : si l'utilisateur a demandé moins de mouvement, on coupe la vidéo */
  @media (prefers-reduced-motion: reduce){
    .hero-video{display:none}
  }
  /* Voile ivoire fondu en dégradé radial — l'opacité est forte au centre (texte
     lisible) et se dissipe vers les bords (intégration douce dans la vidéo).
     Pas de bordure ni de coins durs : le voile s'évanouit naturellement. */
  .hero-inner{
    position:relative;z-index:2;text-align:center;
    padding:72px 96px;
    max-width:820px;margin:0 auto;
    background:
      radial-gradient(ellipse at center,
        rgba(247,246,243,.92) 0%,
        rgba(247,246,243,.82) 38%,
        rgba(247,246,243,.55) 65%,
        rgba(247,246,243,.18) 85%,
        rgba(247,246,243,0)   100%);
  }
  @media(max-width:640px){.hero-inner{padding:54px 32px;margin:0 12px}}

  /* Hero photo (pages event-type) — image en fond + voile sombre léger appliqué
     inline ; le voile ivoire fondu du .hero-inner (radial-gradient hérité de la
     home) garantit la lisibilité du texte sans bord visible. */
  .ev-hero-img{
    background-size:cover;background-position:center;background-repeat:no-repeat;
  }
  .hero h1{margin:28px 0 32px}
  .hero h1 em{font-style:italic;color:var(--gold-light);font-weight:300}
  .hero .sub{color:var(--ink-soft);font-size:17px;max-width:540px;margin:0 auto 44px;font-weight:300}
  .hero .cta-row{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
  .hero-meta{
    position:absolute;bottom:36px;left:0;right:0;z-index:2;
    display:flex;justify-content:space-between;align-items:center;
    padding:0 48px;
    font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-muted);
  }
  .hero-meta .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:10px;vertical-align:middle}
  @media(max-width:640px){.hero-meta{display:none}}

  /* Decorative frame */
  .frame-deco{
    position:absolute;inset:80px 48px 80px;
    border:1px solid var(--line-soft);
    pointer-events:none;z-index:1;
  }
  .frame-deco::before,.frame-deco::after,.corner{
    content:"";position:absolute;width:24px;height:24px;
    border:1px solid var(--gold);
  }
  .frame-deco::before{top:-1px;left:-1px;border-right:none;border-bottom:none}
  .frame-deco::after{top:-1px;right:-1px;border-left:none;border-bottom:none}
  .corner.bl{bottom:-1px;left:-1px;border-right:none;border-top:none;position:absolute}
  .corner.br{bottom:-1px;right:-1px;border-left:none;border-top:none;position:absolute}
  @media(max-width:860px){.frame-deco{inset:120px 16px 60px}}

  /* Floating polaroid */
  .polaroids{position:absolute;inset:0;z-index:1;pointer-events:none}
  .polaroid{
    position:absolute;
    width:140px;height:170px;
    background:#ffffff;
    padding:10px 10px 30px;
    box-shadow:0 24px 50px -18px rgba(60,45,20,.22),0 0 0 1px rgba(184,146,61,.18);
    border-radius:2px;
  }
  .polaroid .img{width:100%;height:100%;background:linear-gradient(135deg,#e9dcc0,#b8923d);position:relative;overflow:hidden}
  .polaroid .img::after{
    content:"";position:absolute;inset:0;
    background:radial-gradient(circle at 50% 40%,rgba(255,250,235,.55),transparent 65%);
  }
  .polaroid.p1{top:18%;left:6%;transform:rotate(-8deg)}
  .polaroid.p2{top:22%;right:7%;transform:rotate(6deg)}
  .polaroid.p3{bottom:18%;left:10%;transform:rotate(4deg);width:120px;height:150px}
  .polaroid.p4{bottom:14%;right:9%;transform:rotate(-5deg);width:130px;height:160px}
  @media(max-width:980px){.polaroids{display:none}}

  /* ——— Section base ——— */
  section{position:relative;z-index:2;padding:140px 0}
  .section-head{margin-bottom:80px;text-align:center}
  .section-head h2{margin:24px 0 20px}
  .section-head .lead{margin:0 auto}
  @media(max-width:640px){section{padding:90px 0}.section-head{margin-bottom:50px}}

  /* ——— Univers ——— */
  .univers{background:var(--bg-2)}
  .univers-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center}
  .univers-text h2{margin-bottom:32px}
  .univers-text p{color:var(--ink-soft);margin-bottom:20px;font-size:16px}
  .univers-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:50px;padding-top:40px;border-top:1px solid var(--line-soft)}
  .stat .num{font-family:var(--serif);font-size:42px;color:var(--gold);line-height:1}
  .stat .lbl{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-muted);margin-top:8px}
  .univers-visual{
    aspect-ratio:4/5;
    position:relative;
    background:linear-gradient(135deg,#f0e6cd,#d4b876);
    border:1px solid var(--line);
  }
  .univers-visual::before{
    content:"";position:absolute;inset:24px;border:1px solid var(--gold-soft);
  }
  .univers-visual .label{
    position:absolute;bottom:-1px;left:50%;transform:translateX(-50%) translateY(50%);
    background:var(--bg-2);padding:0 24px;color:var(--gold);font-family:var(--serif);font-style:italic;font-size:20px;
  }
  .univers-visual .booth{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:55%;height:70%;
    background:linear-gradient(180deg,#2a1f12 0%,#3d2e1c 100%);
    border:1px solid var(--gold);
    border-radius:4px 4px 0 0;
    display:flex;flex-direction:column;align-items:center;padding:18px;
    box-shadow:0 20px 40px -15px rgba(60,45,20,.35);
  }
  .univers-visual .booth .screen{width:100%;flex:1;background:radial-gradient(circle at 50% 50%,rgba(232,205,140,.85),rgba(45,32,18,.95));border:1px solid var(--gold-soft)}
  .univers-visual .booth .logo{margin-top:14px;color:var(--gold);font-family:var(--serif);font-style:italic;font-size:13px}
  @media(max-width:860px){.univers-grid{grid-template-columns:1fr;gap:60px}}

  /* ——— Formules ——— */
  .formules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);}
  .formule{
    padding:48px 36px;
    border-right:1px solid var(--line);
    position:relative;
    transition:background .35s ease;
  }
  .formule:last-child{border-right:none}
  .formule:hover{background:rgba(201,169,97,.04)}
  .formule.featured{background:linear-gradient(180deg,rgba(201,169,97,.07),transparent);position:relative}
  .formule.featured::before{
    content:"Le plus choisi";
    position:absolute;top:-12px;left:50%;transform:translateX(-50%);
    background:var(--gold);color:var(--bg);
    padding:4px 16px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;
  }
  .formule .name{font-family:var(--serif);font-size:28px;color:var(--ink);margin-bottom:6px}
  .formule .tag{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:30px}
  .formule .price{display:flex;align-items:baseline;gap:6px;margin-bottom:8px}
  .formule .price .amount{font-family:var(--serif);font-size:56px;color:var(--gold-light);line-height:1}
  .formule .price .curr{color:var(--gold);font-size:24px}
  .formule .price-note{font-size:12px;color:var(--ink-muted);margin-bottom:32px;letter-spacing:.05em}
  .formule ul{list-style:none;margin-bottom:36px}
  .formule li{
    font-size:14px;color:var(--ink-soft);padding:10px 0;border-bottom:1px solid var(--line-soft);
    display:flex;align-items:flex-start;gap:12px;
  }
  .formule li::before{content:"◆";color:var(--gold);font-size:8px;margin-top:6px}
  .formule li:last-child{border-bottom:none}
  .formule .btn{width:100%;justify-content:center}
  @media(max-width:860px){.formules-grid{grid-template-columns:1fr}.formule{border-right:none;border-bottom:1px solid var(--line)}}

  /* ——— Process ——— */
  .process{background:var(--bg-2)}
  .process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}
  .process-grid::before{
    content:"";position:absolute;top:30px;left:8%;right:8%;height:1px;
    background:linear-gradient(90deg,transparent,var(--gold-soft) 20%,var(--gold-soft) 80%,transparent);
    z-index:0;
  }
  .step{position:relative;text-align:center;padding:0 16px}
  .step .num{
    width:60px;height:60px;border-radius:50%;
    background:var(--bg);border:1px solid var(--gold);
    display:grid;place-items:center;margin:0 auto 26px;
    font-family:var(--serif);font-size:22px;color:var(--gold);
    position:relative;z-index:1;
  }
  .step h3{font-size:20px;margin-bottom:12px}
  .step p{font-size:14px;color:var(--ink-soft)}
  @media(max-width:860px){.process-grid{grid-template-columns:1fr 1fr;gap:50px 20px}.process-grid::before{display:none}}
  @media(max-width:480px){.process-grid{grid-template-columns:1fr}}

  /* ——— Galerie ——— */
  .gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:160px;gap:14px}
  .gal{
    position:relative;overflow:hidden;
    background:#e9dcc0 center/cover no-repeat;  /* override par background-image inline */
    border:1px solid var(--line-soft);cursor:pointer;
    transition:transform .5s ease;
    display:block;text-decoration:none;color:inherit;  /* car c'est désormais un <a> */
  }
  .gal::after{
    content:"";position:absolute;inset:0;
    background:radial-gradient(circle at var(--mx,50%) var(--my,40%),rgba(255,248,228,.55),transparent 65%);
    opacity:.7;transition:opacity .4s ease;
  }
  .gal:hover{transform:scale(1.02)}
  .gal:hover::after{opacity:1}
  .gal .tag{
    position:absolute;bottom:14px;left:16px;z-index:2;
    color:#fff;font-family:var(--serif);font-style:italic;font-size:18px;
    text-shadow:0 1px 8px rgba(60,45,20,.55);
  }
  .gal.a{grid-column:span 5;grid-row:span 2}
  .gal.b{grid-column:span 4;grid-row:span 1}
  .gal.c{grid-column:span 3;grid-row:span 1}
  .gal.d{grid-column:span 4;grid-row:span 1}
  .gal.e{grid-column:span 3;grid-row:span 1}
  .gal.f{grid-column:span 4;grid-row:span 2}
  .gal.g{grid-column:span 4;grid-row:span 1}
  .gal.h{grid-column:span 4;grid-row:span 1}
  @media(max-width:860px){
    .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}
    .gal{grid-column:span 1 !important;grid-row:span 1 !important}
    .gal.a,.gal.f{grid-column:span 2 !important}
  }

  /* ——— Lieux ——— */
  .lieux{background:var(--bg-2)}
  .lieux-marquee{
    margin-top:20px;
    overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
  }
  .lieux-track{
    display:flex;gap:80px;
    animation:scroll 40s linear infinite;
    width:max-content;
  }
  .lieux-track span{
    font-family:var(--serif);font-style:italic;font-size:28px;color:var(--ink-soft);
    white-space:nowrap;display:flex;align-items:center;gap:80px;
  }
  .lieux-track span::after{content:"◆";color:var(--gold);font-size:10px;font-style:normal}
  @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* ——— Témoignages ——— */
  .testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
  .testi{
    padding:40px 32px;
    border:1px solid var(--line);
    background:var(--bg-2);
    position:relative;
  }
  .testi .stars{color:var(--gold);letter-spacing:4px;font-size:14px;margin-bottom:20px}
  .testi p{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--ink);line-height:1.55;margin-bottom:28px}
  .testi .who{display:flex;align-items:center;gap:14px;padding-top:22px;border-top:1px solid var(--line-soft)}
  .testi .avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-soft));display:grid;place-items:center;color:var(--bg);font-family:var(--serif);font-size:18px}
  .testi .meta{font-size:13px}
  .testi .meta .name{color:var(--ink);font-weight:500}
  .testi .meta .ev{color:var(--ink-muted);font-size:12px;margin-top:2px;letter-spacing:.04em}
  @media(max-width:860px){.testi-grid{grid-template-columns:1fr}}

  /* ——— Contact ——— */
  .contact{
    background:
      radial-gradient(ellipse at 50% 0%,rgba(201,169,97,.10),transparent 60%),
      var(--bg-2);
  }
  .contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start}
  .contact-info h2{margin-bottom:24px}
  .contact-info .lead{margin-bottom:50px}
  .contact-detail{display:flex;gap:16px;margin-bottom:28px;padding-bottom:28px;border-bottom:1px solid var(--line-soft)}
  .contact-detail:last-child{border-bottom:none}
  .contact-detail .icon{
    width:42px;height:42px;border:1px solid var(--gold);border-radius:50%;
    display:grid;place-items:center;color:var(--gold);flex-shrink:0;
    font-family:var(--serif);font-size:16px;
  }
  .contact-detail .lbl{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:4px}
  .contact-detail .val{color:var(--ink);font-size:16px}
  form{display:grid;gap:22px}
  .row2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
  .field{display:flex;flex-direction:column;gap:8px}
  .field label{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-muted)}
  .field input,.field select,.field textarea{
    background:transparent;border:none;border-bottom:1px solid var(--line);
    padding:12px 0;color:var(--ink);font-family:var(--sans);font-size:15px;font-weight:300;
    outline:none;transition:border-color .25s ease;
  }
  .field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--gold)}
  .field textarea{resize:vertical;min-height:90px}
  .field select{cursor:pointer;color:var(--ink-soft)}
  .field select option{background:var(--bg-2);color:var(--ink)}
  form .btn{justify-self:start;margin-top:10px}
  @media(max-width:860px){.contact-grid{grid-template-columns:1fr;gap:60px}.row2{grid-template-columns:1fr}}

  /* ——— Footer ——— */
  footer{padding:80px 0 30px;border-top:1px solid var(--line-soft)}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:60px;margin-bottom:60px}
  .foot-col h4{font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:22px;font-weight:600}
  .foot-col ul{list-style:none}
  .foot-col li{margin-bottom:12px}
  .foot-col a{color:var(--ink-soft);font-size:14px}
  .foot-col a:hover{color:var(--gold-light)}
  .foot-brand p{color:var(--ink-muted);font-size:14px;margin-top:20px;max-width:32ch}
  .foot-bottom{
    border-top:1px solid var(--line-soft);padding-top:30px;
    display:flex;justify-content:space-between;align-items:center;
    font-size:12px;color:var(--ink-muted);letter-spacing:.04em;
  }
  .foot-bottom a:hover{color:var(--gold)}
  @media(max-width:860px){.foot-grid{grid-template-columns:1fr 1fr;gap:40px}.foot-bottom{flex-direction:column;gap:16px;text-align:center}}

  /* ——— Calendrier ——— */
  .dispos{background:var(--bg)}
  .cal-wrap{
    max-width:940px;margin:0 auto;
    border:1px solid var(--line);
    background:var(--bg);
    box-shadow:0 30px 60px -30px rgba(60,45,20,.18);
  }
  .cal-head{
    display:flex;align-items:center;justify-content:space-between;
    padding:22px 28px;border-bottom:1px solid var(--line-soft);
  }
  .cal-head button{
    width:42px;height:42px;border:1px solid var(--line);background:transparent;color:var(--gold);
    cursor:pointer;font-family:var(--serif);font-size:22px;line-height:1;
    transition:all .25s ease;
  }
  .cal-head button:hover:not(:disabled){background:var(--gold);color:var(--bg);border-color:var(--gold)}
  .cal-head button:disabled{opacity:.25;cursor:not-allowed}
  .cal-month{
    font-family:var(--serif);font-size:28px;color:var(--ink);
    min-width:260px;text-align:center;text-transform:capitalize;letter-spacing:.02em;
  }
  .cal-legend{
    display:flex;gap:28px;padding:16px 28px;
    border-bottom:1px solid var(--line-soft);
    font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-muted);
    flex-wrap:wrap;
  }
  .cal-legend span{display:inline-flex;align-items:center;gap:10px}
  .cal-legend i{width:10px;height:10px;display:inline-block;border-radius:2px}
  .cal-legend i.l-free{background:transparent;border:1px solid var(--gold-soft)}
  .cal-legend i.l-option{background:rgba(201,169,97,.35);border:1px solid var(--gold)}
  .cal-legend i.l-booked{background:var(--gold)}
  .cal-legend i.l-past{background:transparent;border:1px solid var(--line);opacity:.5}
  .cal-weekdays{
    display:grid;grid-template-columns:repeat(7,1fr);
    padding:14px 24px 0;gap:6px;
  }
  .cal-weekdays div{
    font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-muted);
    text-align:center;padding:6px 0;
  }
  .cal-grid{
    display:grid;grid-template-columns:repeat(7,1fr);
    padding:0 24px 24px;gap:6px;
  }
  .cal-day{
    aspect-ratio:1;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    border:1px solid transparent;
    font-size:16px;color:var(--ink);
    position:relative;
    cursor:pointer;transition:all .22s ease;
    font-family:var(--serif);
  }
  .cal-day .lbl{
    font-size:8px;font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;
    position:absolute;bottom:6px;left:0;right:0;text-align:center;color:var(--ink-muted);
  }
  .cal-day.empty{cursor:default;pointer-events:none}
  .cal-day.past{color:var(--ink-muted);opacity:.35;cursor:not-allowed;border-color:var(--line-soft)}
  .cal-day.past .lbl{display:none}
  .cal-day.free{border-color:var(--line)}
  .cal-day.free:hover{border-color:var(--gold);background:rgba(201,169,97,.08);color:var(--gold-light)}
  .cal-day.free:hover .lbl{color:var(--gold)}
  .cal-day.option{border-color:var(--gold-soft);background:rgba(201,169,97,.13);color:var(--gold-light)}
  .cal-day.option .lbl{color:var(--gold-light);opacity:.85}
  .cal-day.option:hover{background:rgba(201,169,97,.22)}
  .cal-day.booked{background:var(--gold);color:var(--bg);cursor:not-allowed;border-color:var(--gold)}
  .cal-day.booked .lbl{color:var(--bg);opacity:.65}
  .cal-day.today{box-shadow:inset 0 0 0 1px var(--gold-light)}
  .cal-day.today::before{
    content:"";position:absolute;top:5px;right:5px;
    width:5px;height:5px;border-radius:50%;background:var(--gold-light);
  }
  .cal-foot{
    padding:18px 28px;border-top:1px solid var(--line-soft);
    display:flex;justify-content:space-between;align-items:center;
    font-size:12px;color:var(--ink-muted);letter-spacing:.04em;flex-wrap:wrap;gap:12px;
  }
  .cal-foot a{color:var(--gold);font-size:12px;letter-spacing:.18em;text-transform:uppercase}
  .cal-foot a:hover{color:var(--gold-light)}

  @media(max-width:640px){
    .cal-head{padding:16px}
    .cal-month{font-size:20px;min-width:auto}
    .cal-legend{padding:12px 16px;gap:14px;font-size:9px}
    .cal-grid{padding:0 12px 14px;gap:4px}
    .cal-weekdays{padding:12px 12px 0;gap:4px}
    .cal-day{font-size:13px}
    .cal-day .lbl{display:none}
    .cal-foot{padding:14px 16px;font-size:11px}
  }

  /* ——— Modal de réservation ——— */
  .modal{
    position:fixed;inset:0;z-index:100;
    background:rgba(40,32,20,.45);backdrop-filter:blur(6px);
    display:none;align-items:center;justify-content:center;
    padding:24px;
  }
  .modal.open{display:flex;animation:fadeIn .3s ease}
  @keyframes fadeIn{from{opacity:0}to{opacity:1}}
  .modal-card{
    max-width:560px;width:100%;max-height:92vh;overflow-y:auto;
    background:var(--bg-2);border:1px solid var(--line);
    position:relative;
    animation:slideUp .4s ease;
  }
  @keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}
  .modal-card::before{
    content:"";position:absolute;top:0;left:0;right:0;height:2px;
    background:linear-gradient(90deg,transparent,var(--gold-light),transparent);
  }
  .modal-close{
    position:absolute;top:16px;right:16px;
    width:34px;height:34px;border:1px solid var(--line);background:transparent;color:var(--ink-soft);
    cursor:pointer;font-size:18px;line-height:1;transition:all .25s ease;
    z-index:2;
  }
  .modal-close:hover{border-color:var(--gold);color:var(--gold)}
  .modal-body{padding:48px 38px 36px}
  .modal-body .eyebrow.left{margin-bottom:14px}
  .modal-body h3{font-size:30px;margin-bottom:6px}
  .modal-body .selected-date{
    color:var(--gold-light);font-family:var(--serif);font-style:italic;font-size:19px;
    margin-bottom:28px;text-transform:capitalize;
  }
  .modal-section-label{
    font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-muted);
    margin-bottom:12px;
  }
  .modal-formules{display:grid;gap:8px;margin-bottom:28px}
  .modal-formule{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 18px;border:1px solid var(--line);cursor:pointer;
    transition:all .22s ease;
  }
  .modal-formule:hover{border-color:var(--gold-soft);background:rgba(201,169,97,.04)}
  .modal-formule.sel{border-color:var(--gold);background:rgba(201,169,97,.08)}
  .modal-formule .l{display:flex;flex-direction:column}
  .modal-formule .nm{color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.2}
  .modal-formule .ds{font-size:12px;color:var(--ink-muted);letter-spacing:.04em;margin-top:3px}
  .modal-formule .pr{color:var(--gold-light);font-family:var(--serif);font-size:22px;white-space:nowrap}
  .modal-actions{display:grid;gap:10px}
  .modal-actions .btn{justify-content:center;width:100%}
  .modal-or{
    text-align:center;font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-muted);
    position:relative;margin:4px 0;padding:6px 0;
  }
  .modal-or::before,.modal-or::after{
    content:"";position:absolute;top:50%;width:42%;height:1px;background:var(--line-soft);
  }
  .modal-or::before{left:0}.modal-or::after{right:0}
  .modal-note{
    font-size:12px;color:var(--ink-muted);text-align:center;margin-top:18px;line-height:1.6;
  }
  .modal-success{text-align:center;padding:10px 6px}
  .modal-success .check{
    width:64px;height:64px;border:1px solid var(--gold);border-radius:50%;
    display:grid;place-items:center;margin:0 auto 24px;
    color:var(--gold);font-size:28px;
  }
  .modal-success h3{margin-bottom:14px}
  .modal-success p{color:var(--ink-soft);margin-bottom:14px;font-size:15px}
  .modal-success p strong{color:var(--gold-light);font-weight:500}
  .modal-success .recap{
    border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
    padding:18px 0;margin:24px 0;
    font-family:var(--serif);font-style:italic;font-size:18px;color:var(--gold-light);
    text-transform:capitalize;
  }
  .modal-option-warn{
    background:rgba(201,169,97,.08);border-left:2px solid var(--gold);
    padding:14px 18px;margin:-12px 0 26px;
    color:var(--ink-soft);font-size:13.5px;line-height:1.55;
  }

  /* ——— Reveal anim ——— */
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}
  .reveal.in{opacity:1;transform:none}

  /* ——— Events hub (accueil) ——— */
  .events-hub{background:var(--bg)}
  .events-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:0;
    border:1px solid var(--line);
  }
  .event-card{
    padding:46px 34px 38px;
    border-right:1px solid var(--line);border-bottom:1px solid var(--line);
    position:relative;display:flex;flex-direction:column;
    transition:background .3s ease;
    text-decoration:none;color:inherit;
  }
  .event-card:nth-child(3n){border-right:none}
  .event-card:nth-last-child(-n+3){border-bottom:none}
  .event-card:hover{background:var(--bg-2)}
  .event-card:hover .event-cta{color:var(--gold-light)}
  .event-card:hover .event-cta::after{transform:translateX(6px)}
  .event-roman{
    font-family:var(--serif);font-style:italic;font-size:22px;color:var(--gold);
    margin-bottom:18px;display:inline-block;
  }
  .event-title{font-family:var(--serif);font-weight:400;font-size:30px;color:var(--ink);margin-bottom:14px;line-height:1.1}
  .event-desc{color:var(--ink-soft);font-size:14.5px;margin-bottom:30px;flex:1;line-height:1.6}
  .event-cta{
    font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);
    font-weight:500;
  }
  .event-cta::after{content:" →";transition:transform .3s ease;display:inline-block;margin-left:4px}
  @media(max-width:900px){
    .events-grid{grid-template-columns:repeat(2,1fr)}
    .event-card{border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important}
    .event-card:nth-child(2n){border-right:none!important}
    .event-card:nth-last-child(-n+2){border-bottom:none!important}
  }
  @media(max-width:560px){
    .events-grid{grid-template-columns:1fr}
    .event-card{border-right:none!important}
    .event-card:last-child{border-bottom:none!important}
  }

  /* ——— Dropdown nav ——— */
  .has-dropdown{position:relative}
  .has-dropdown > a{display:inline-flex;align-items:center;gap:5px}
  .has-dropdown > a::after{content:"▾";font-size:9px;color:var(--gold);margin-top:2px}
  /* Pont invisible : maintient :hover quand la souris traverse l'espace
     vide entre le trigger et le dropdown. Sans ça, le menu se referme dès
     qu'on quitte le lien. */
  .has-dropdown::before{
    content:"";
    position:absolute;top:100%;left:-20px;right:-20px;height:18px;
    pointer-events:none;
  }
  .has-dropdown:hover::before,.has-dropdown:focus-within::before{
    pointer-events:auto;
  }
  .dropdown{
    position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(-6px);
    background:var(--bg);border:1px solid var(--line);
    min-width:260px;
    opacity:0;pointer-events:none;
    transition:all .25s ease;
    padding:14px 0;
    box-shadow:0 20px 40px -15px rgba(60,45,20,.18);
    z-index:60;
  }
  .has-dropdown:hover .dropdown,.has-dropdown:focus-within .dropdown{
    opacity:1;pointer-events:auto;transform:translateX(-50%);
  }
  .dropdown a{
    display:block;padding:10px 24px;
    font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--ink-soft);font-weight:400;
    transition:color .2s ease,background .2s ease;
  }
  .dropdown a:hover{color:var(--gold);background:var(--bg-2)}

  /* ——— Pages événements ——— */
  .ev-hero{
    min-height:62vh;
    display:grid;place-items:center;
    padding:160px 0 100px;
    text-align:center;
    background:
      radial-gradient(ellipse at 70% 30%, rgba(184,146,61,.10), transparent 55%),
      radial-gradient(ellipse at 20% 80%, rgba(184,146,61,.06), transparent 60%),
      var(--bg);
    position:relative;
  }
  .ev-hero h1{font-size:clamp(40px,6.5vw,80px);margin:24px 0 24px}
  .ev-hero .sub{color:var(--ink-soft);max-width:600px;margin:0 auto 36px;font-size:17px}
  .ev-crumb{
    font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-muted);
    margin-bottom:6px;
  }
  .ev-crumb a{color:var(--gold)}
  .ev-crumb a:hover{color:var(--gold-light)}

  .ev-why{padding:120px 0;background:var(--bg-2)}
  .ev-why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px}
  .ev-why-item .num{
    font-family:var(--serif);font-style:italic;font-size:30px;color:var(--gold);margin-bottom:14px;display:block;
  }
  .ev-why-item h3{font-size:21px;margin-bottom:10px}
  .ev-why-item p{color:var(--ink-soft);font-size:14.5px}
  @media(max-width:860px){.ev-why-grid{grid-template-columns:repeat(2,1fr);gap:30px}}

  .ev-local{padding:120px 0}
  .ev-local-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:start}
  .ev-local h2{margin-bottom:24px}
  .ev-local p{color:var(--ink-soft);margin-bottom:18px;font-size:16px}
  .ev-venues{border-left:1px solid var(--line);padding-left:32px}
  .ev-venues .lbl{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;font-weight:500}
  .ev-venues ul{list-style:none}
  .ev-venues li{padding:12px 0;border-bottom:1px solid var(--line-soft);font-family:var(--serif);font-style:italic;font-size:18px;color:var(--ink)}
  .ev-venues li:last-child{border-bottom:none}
  @media(max-width:860px){.ev-local-grid{grid-template-columns:1fr;gap:50px}.ev-venues{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:36px}}

  .ev-faq{padding:120px 0;background:var(--bg-2)}
  .ev-faq-list{max-width:760px;margin:0 auto}
  .ev-faq-item{
    border-bottom:1px solid var(--line);
    padding:24px 0;cursor:pointer;
  }
  .ev-faq-item summary{
    list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;
    font-family:var(--serif);font-size:21px;color:var(--ink);cursor:pointer;
  }
  .ev-faq-item summary::-webkit-details-marker{display:none}
  .ev-faq-item summary::after{
    content:"+";color:var(--gold);font-size:22px;line-height:1;transition:transform .3s ease;
  }
  .ev-faq-item[open] summary::after{transform:rotate(45deg)}
  .ev-faq-item p{color:var(--ink-soft);font-size:15px;margin-top:14px;line-height:1.7;max-width:680px}

  .ev-cities{padding:100px 0;background:var(--bg)}
  .ev-cities-grid{
    display:grid;grid-template-columns:repeat(5,1fr);gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .ev-cities-grid a{
    background:var(--bg);padding:18px 14px;text-align:center;
    font-family:var(--serif);font-size:17px;color:var(--ink-soft);
    transition:all .25s ease;
  }
  .ev-cities-grid a:hover{background:var(--bg-2);color:var(--gold-light)}
  @media(max-width:860px){.ev-cities-grid{grid-template-columns:repeat(3,1fr)}}
  @media(max-width:520px){.ev-cities-grid{grid-template-columns:repeat(2,1fr)}}

  .ev-cta-band{
    padding:90px 0;background:var(--bg-2);text-align:center;
    border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
  }
  .ev-cta-band h2{margin-bottom:18px;font-size:clamp(32px,4vw,52px)}
  .ev-cta-band p{color:var(--ink-soft);margin-bottom:34px;max-width:520px;margin-left:auto;margin-right:auto}
