/* ============================================================
   ACOUSMATE — Design system v3
   Clair · Art Déco contemporain · techy · animé
   ============================================================ */
@import url('https://api.fontshare.com/v2/css?f[]=sydney@400,500,700,400i&f[]=general-sans@400,500,600&display=swap');

:root{
  /* Couleurs */
  --green:#22514a; --green-deep:#143832; --green-ink:#0e2a25;
  --green-soft:#3a665d;
  --gold:#c9a961; --gold-deep:#a8893f; --gold-glow:#e3c986;
  --blue:#2b6e8f; --blue-soft:#4a8aa8; --blue-deep:#1d4f68;
  --orange:#d98a4e; --orange-soft:#e3a672; --orange-deep:#b86a30;
  --cream:#f5f0e6; --cream-2:#efe9db; --ivory:#fbf8f1; --warm:#ece4d3;
  --ink:#1c2b27;

  /* Typo */
  --serif:'Sydney',Georgia,serif;
  --sans:'General Sans','Inter',-apple-system,BlinkMacSystemFont,sans-serif;

  /* Layout */
  --maxw:1280px;
  --gut:clamp(22px,5vw,90px);     /* marge latérale généreuse */
  --radius:2px;

  /* Mouvement */
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
}

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

/* Grain + halo de fond global, très subtil */
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 18% 12%, rgba(201,169,97,.10), transparent 42%),
    radial-gradient(ellipse at 84% 78%, rgba(43,110,143,.07), transparent 46%);
}
/* Curseur lueur */
.glow{
  position:fixed;top:0;left:0;width:380px;height:380px;margin:-190px 0 0 -190px;
  border-radius:50%;pointer-events:none;z-index:1;mix-blend-mode:multiply;
  background:radial-gradient(circle,rgba(201,169,97,.16),transparent 62%);
  transition:opacity .4s;
}
@media (pointer:coarse){.glow{display:none}}

main,header,section,footer{position:relative;z-index:2}

/* ====== Conteneur ====== */
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}

/* ====== Typo utilitaires ====== */
.eyebrow{
  font-size:11px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold-deep);font-weight:600;display:inline-flex;align-items:center;gap:12px;
}
.eyebrow::before{content:'';width:26px;height:1px;background:var(--gold-deep);display:inline-block}
.eyebrow.center{justify-content:center}
.eyebrow.on-dark{color:var(--gold)}
.eyebrow.on-dark::before{background:var(--gold)}

h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;line-height:1.04}
.display{font-size:clamp(40px,7vw,88px)}
.h-xl{font-size:clamp(34px,5vw,60px)}
.h-l{font-size:clamp(28px,3.6vw,42px)}
.h-m{font-size:clamp(22px,2.4vw,28px)}
em,.it{font-style:italic;color:var(--gold-deep)}
.it-blue{font-style:italic;color:var(--blue)}
.thin{font-weight:300}

.lead{font-size:clamp(15px,1.5vw,17px);line-height:1.75;color:var(--green-soft)}
.muted{color:var(--green-soft)}

/* Diviseur Art Déco */
.divider{display:flex;align-items:center;justify-content:center;gap:14px;margin:30px 0}
.divider .l{width:90px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.divider .l.r{background:linear-gradient(90deg,var(--gold),transparent)}
.divider .d{color:var(--gold);font-size:9px}

/* ====== Boutons ====== */
.btn{
  display:inline-flex;align-items:center;gap:12px;cursor:pointer;border:none;
  font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;
  padding:16px 28px;transition:all .4s var(--ease);position:relative;overflow:hidden;
}
.btn .ic{transition:transform .4s var(--ease)}
.btn:hover .ic{transform:translateX(4px)}
.btn-primary{background:var(--green);color:var(--cream)}
.btn-primary:hover{background:var(--green-deep)}
.btn-primary .dot{color:var(--gold)}
.btn-accent{background:var(--blue);color:#fff}
.btn-accent:hover{background:var(--orange);color:var(--green-ink)}
.btn-ghost{background:transparent;color:var(--green);border:1px solid rgba(34,81,74,.35)}
.btn-ghost:hover{border-color:var(--gold-deep);color:var(--gold-deep)}
.btn-ghost.on-dark{color:var(--cream);border-color:rgba(245,240,230,.4)}
.btn-ghost.on-dark:hover{border-color:var(--gold);color:var(--gold)}

/* ====== Animations reveal ====== */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}
[data-reveal="left"]{transform:translateX(-34px)}
[data-reveal="right"]{transform:translateX(34px)}
[data-reveal="scale"]{transform:scale(.94)}
[data-reveal="left"].is-in,[data-reveal="right"].is-in,[data-reveal="scale"].is-in{transform:none}

/* ====== NAV ====== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px var(--gut);
  transition:padding .4s var(--ease),background .4s var(--ease),box-shadow .4s var(--ease);
}
.nav.is-scrolled{
  padding:13px var(--gut);
  background:rgba(251,248,241,.82);
  backdrop-filter:blur(18px) saturate(1.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
  box-shadow:0 1px 0 rgba(34,81,74,.08), 0 10px 40px -28px rgba(20,56,50,.5);
}
.nav-logo{width:172px;height:34px;display:block;transition:transform .4s var(--ease)}
.nav-logo:hover{transform:scale(1.02)}
.nav-links{display:flex;gap:6px}
.nav-links a{
  position:relative;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  color:var(--green);padding:10px 16px;transition:color .3s;
}
.nav-links a::after{
  content:'';position:absolute;left:16px;right:16px;bottom:5px;height:1px;
  background:var(--gold-deep);transform:scaleX(0);transform-origin:left;
  transition:transform .4s var(--ease);
}
.nav-links a:hover{color:var(--gold-deep)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-links a.active{color:var(--gold-deep)}
.nav-cta{
  display:inline-flex;align-items:center;gap:9px;
  padding:11px 20px;border:1px solid var(--green);
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--green);
  transition:all .4s var(--ease);
}
.nav-cta .d{color:var(--gold);font-size:8px;transition:transform .4s var(--ease)}
.nav-cta:hover{background:var(--green);color:var(--cream)}
.nav-cta:hover .d{color:var(--gold);transform:rotate(180deg)}

.burger{display:none;width:40px;height:40px;border:none;background:transparent;flex-direction:column;justify-content:center;gap:6px;cursor:pointer}
.burger span{display:block;width:24px;height:1.5px;background:var(--green);transition:.35s var(--ease);margin:0 auto}
.burger.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

@media (max-width:920px){
  .nav-links,.nav-cta{display:none}
  .burger{display:flex}
  .nav.menu-open{background:var(--cream);backdrop-filter:none}
  .nav.menu-open .nav-links{
    display:flex;flex-direction:column;gap:4px;
    position:fixed;inset:64px 0 0;background:var(--cream);
    padding:40px var(--gut);
  }
  .nav.menu-open .nav-links a{font-size:18px;padding:14px 0;border-bottom:1px solid rgba(34,81,74,.1)}
  .nav.menu-open .nav-cta{display:inline-flex;position:fixed;left:var(--gut);right:var(--gut);bottom:36px;justify-content:center}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--cream)}
.hero-carousel{position:absolute;inset:0;z-index:0}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.8s var(--ease-soft);transform:scale(1.06)}
.hero-slide.active{opacity:1;transform:scale(1)}
.hero-slide .bg{position:absolute;inset:0;background-size:cover;background-position:center}
/* Dégradés CLAIRS : halos subtils or/bleu/orange sur crème */
.slide-1 .bg{background:radial-gradient(ellipse at 64% 32%,rgba(201,169,97,.20),transparent 52%),radial-gradient(circle at 22% 74%,rgba(43,110,143,.12),transparent 50%),linear-gradient(135deg,#fbf8f1,#f5f0e6 55%,#ece4d3)}
.slide-2 .bg{background:radial-gradient(ellipse at 74% 46%,rgba(217,138,78,.16),transparent 52%),radial-gradient(circle at 16% 28%,rgba(43,110,143,.13),transparent 56%),linear-gradient(160deg,#ece4d3,#f5f0e6 60%,#fbf8f1)}
.slide-3 .bg{background:radial-gradient(ellipse at 38% 58%,rgba(201,169,97,.18),transparent 54%),radial-gradient(circle at 84% 38%,rgba(43,110,143,.12),transparent 52%),linear-gradient(110deg,#f5f0e6,#fbf8f1 70%,#ece4d3)}
.hero-grain{position:absolute;inset:0;opacity:.10;background-image:radial-gradient(circle,var(--green) .5px,transparent 1px);background-size:32px 32px}
.hero-veil{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,transparent,rgba(245,240,230,.4))}
.hero-waves{position:absolute;left:0;right:0;bottom:0;height:42%;width:100%;z-index:1;opacity:1}

.hero-inner{position:relative;z-index:3;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.hero-top{display:flex;gap:14px;align-items:center;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin-bottom:34px}
.hero-top::before{content:'';width:42px;height:1px;background:var(--gold-deep)}
.hero h1{color:var(--green);max-width:14ch}
.hero h1 .it{color:var(--gold-deep)}
.hero p.lead{color:var(--green-soft);max-width:46ch;margin:28px 0 38px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-foot{position:absolute;left:var(--gut);right:var(--gut);bottom:38px;z-index:3;display:flex;justify-content:space-between;align-items:flex-end}
.hero-caption{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--green-soft)}
.hero-caption .c{font-style:italic;color:var(--gold-deep);text-transform:none;letter-spacing:.04em;font-size:13px;margin-left:12px;transition:opacity .3s}
.hero-ctrl{display:flex;align-items:center;gap:18px}
.hero-ctrl .num{font-style:italic;font-family:var(--serif);font-size:14px;color:var(--gold-deep)}
.hero-ctrl .num .t{color:var(--green-soft);font-style:normal}
.hero-dots{display:flex;gap:10px}
.hero-dots button{width:32px;height:2px;background:rgba(34,81,74,.3);border:none;cursor:pointer;transition:.4s var(--ease);padding:0}
.hero-dots button.active{background:var(--gold-deep);width:46px}
.scroll-hint{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:3;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--green-soft);display:flex;flex-direction:column;align-items:center;gap:10px}
.scroll-hint .bar{width:1px;height:38px;background:linear-gradient(var(--gold-deep),transparent);animation:scrolldrop 2s var(--ease) infinite}
@keyframes scrolldrop{0%{transform:scaleY(0);transform-origin:top}40%{transform:scaleY(1);transform-origin:top}60%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (max-width:920px){.hero-foot,.scroll-hint{display:none}.hero-cta .btn{flex:1;justify-content:center}}

/* ============================================================
   STATS
   ============================================================ */
.stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--cream);border-bottom:1px solid rgba(34,81,74,.12)}
.stat{padding:44px 20px;text-align:center;border-right:1px solid rgba(34,81,74,.1);position:relative}
.stat:last-child{border-right:none}
.stat .n{font-family:var(--serif);font-size:clamp(34px,4vw,46px);color:var(--gold-deep);line-height:1;letter-spacing:-.02em}
.stat .n .u{font-size:.42em;color:var(--green-soft);margin-left:3px}
.stat .l{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--green-soft);margin-top:12px;font-weight:600}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:none}.stat:nth-child(-n+2){border-bottom:1px solid rgba(34,81,74,.1)}}

/* ============================================================
   SECTIONS génériques
   ============================================================ */
.section{padding:clamp(70px,11vw,140px) 0}
.section.dark{background:var(--green);color:var(--cream)}
.section.ink{background:var(--green-deep);color:var(--cream)}
.section.cream{background:var(--cream)}
.section.ivory{background:var(--ivory)}
.section.dark h2,.section.ink h2{color:var(--cream)}
.section.dark .it,.section.ink .it{color:var(--gold)}

.sec-head{margin-bottom:60px;max-width:680px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{margin-top:18px}

/* ====== Studio ====== */
.studio-grid{display:grid;grid-template-columns:.8fr 1fr;gap:clamp(40px,6vw,84px);align-items:center}
.studio-visual{position:relative;aspect-ratio:1;max-width:420px;width:100%;margin:0 auto}
.studio-visual .frame{position:absolute;inset:0;border:1px solid rgba(201,169,97,.4)}
.studio-visual .corner{position:absolute;width:20px;height:20px}
.studio-visual .corner.tl{top:-1px;left:-1px;border-top:1px solid var(--gold);border-left:1px solid var(--gold)}
.studio-visual .corner.tr{top:-1px;right:-1px;border-top:1px solid var(--gold);border-right:1px solid var(--gold)}
.studio-visual .corner.bl{bottom:-1px;left:-1px;border-bottom:1px solid var(--gold);border-left:1px solid var(--gold)}
.studio-visual .corner.br{bottom:-1px;right:-1px;border-bottom:1px solid var(--gold);border-right:1px solid var(--gold)}
.studio-visual svg{position:absolute;inset:0;width:100%;height:100%;padding:26px}
.studio-spin{transform-origin:center;animation:spin 60s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.feature{display:grid;grid-template-columns:42px 1fr;gap:18px;padding:20px 0;border-top:1px solid rgba(245,240,230,.16);align-items:start}
.feature:first-child{border-top:none}
.feature .num{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:14px}
.feature h4{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--cream);margin-bottom:5px;letter-spacing:0}
.feature p{font-size:12.5px;color:rgba(245,240,230,.6);line-height:1.6}
.studio-text > p{font-size:14px;line-height:1.85;color:rgba(245,240,230,.72);margin-bottom:16px}

/* ====== Services (cartes) ====== */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,24px)}
.card{
  background:var(--ivory);border:1px solid rgba(34,81,74,.14);
  padding:36px 32px;display:flex;flex-direction:column;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s;
  position:relative;overflow:hidden;
}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--gold),var(--blue));transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -40px rgba(20,56,50,.5);border-color:rgba(201,169,97,.5)}
.card:hover::before{transform:scaleX(1)}
.card .ord{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--gold-deep);margin-bottom:22px}
.card .ic-wrap{position:absolute;top:32px;right:32px;color:var(--gold-deep);opacity:.9}
.card h3{font-family:var(--serif);font-size:23px;color:var(--green);margin-bottom:12px;line-height:1.15}
.card p{font-size:13px;line-height:1.7;color:var(--green-soft);flex:1;margin-bottom:22px}
.card .price{font-family:var(--serif);font-size:24px;color:var(--blue);margin-bottom:18px}
.card .price .u{font-size:13px;color:var(--green-soft);font-style:italic}
.card .more{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid rgba(34,81,74,.16);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--green)}
.card .more .ar{color:var(--orange-deep);transition:transform .4s var(--ease)}
.card:hover .more .ar{transform:translateX(5px)}
@media (max-width:760px){.cards{grid-template-columns:1fr}.studio-grid{grid-template-columns:1fr;gap:44px}}

/* ============================================================
   CALENDRIER (compact)
   ============================================================ */
.cal-shell{max-width:960px;margin:0 auto}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid rgba(201,169,97,.4);margin-bottom:4px}
.tier{padding:20px 22px;border-right:1px solid rgba(201,169,97,.3);cursor:pointer;position:relative;transition:.4s var(--ease)}
.tier:last-child{border-right:none}
.tier.active{background:var(--cream);color:var(--green)}
.tier.active::before{content:'';position:absolute;top:-1px;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--gold),var(--blue))}
.tier .th{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.tier .tn{font-family:var(--serif);font-style:italic;font-size:12px;color:var(--gold)}
.tier.active .tn{color:var(--gold-deep)}
.tier .ti{width:20px;height:20px;color:var(--gold)}
.tier.active .ti{color:var(--gold-deep)}
.tier h4{font-family:var(--serif);font-size:16px;color:inherit;margin-bottom:4px}
.tier h4 .it{font-style:italic}
.tier.active h4 .it{color:var(--gold-deep)}
.tier p{font-size:11px;line-height:1.5;opacity:.7}
.tier .badge{position:absolute;top:15px;right:16px;font-size:7.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600}
.cal-body{display:grid;grid-template-columns:1.25fr 1fr;gap:4px}
.cal-main{background:var(--cream);color:var(--green);padding:24px}
.cal-mrow{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:16px;padding-bottom:13px;border-bottom:1px solid rgba(34,81,74,.18)}
.cal-month{font-family:var(--serif);font-size:20px;color:var(--green)}
.cal-month .y{color:var(--gold-deep);font-style:italic;margin-left:5px}
.cal-ctrl{display:flex}
.cal-ctrl button{width:30px;height:30px;border:1px solid var(--green);background:transparent;color:var(--green);cursor:pointer;border-right:none;font-size:12px}
.cal-ctrl button:last-child{border-right:1px solid var(--green)}
.cal-ctrl .today{background:var(--green);color:var(--cream);width:auto;padding:0 12px;font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.cal-dh{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}
.cal-dh span{text-align:center;font-family:var(--serif);font-style:italic;font-size:9px;color:var(--gold-deep);padding:5px 0}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;cursor:pointer;position:relative;background:rgba(34,81,74,.04);transition:.2s}
.cal-day:hover:not(.empty){background:rgba(34,81,74,.1);transform:scale(1.06)}
.cal-day .n{font-family:var(--serif);font-size:12px}
.cal-day .dots{display:flex;gap:1.5px;margin-top:1px}
.cal-day .dots i{width:2.5px;height:2.5px;background:currentColor;opacity:.7;border-radius:50%}
.cal-day.empty{visibility:hidden}
.cal-day.available{background:#e0e8d8;color:#3d5a1f}
.cal-day.partial{background:#f0e2c3;color:var(--gold-deep)}
.cal-day.booked{background:#e8d5d0;color:#6b1f15}
.cal-day.event{background:var(--orange);color:var(--green-ink)}
.cal-day.selected{background:var(--green);color:var(--cream);outline:2px solid var(--gold);outline-offset:-2px}
.cal-day.today::before{content:'◆';position:absolute;top:2px;right:3px;color:var(--gold);font-size:5px}
.cal-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(34,81,74,.15);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-soft);font-weight:600}
.cal-legend span{display:flex;align-items:center;gap:6px}
.cal-legend span::before{content:'';width:9px;height:9px}
.cal-legend .lf::before{background:#e0e8d8}.cal-legend .lp::before{background:#f0e2c3}.cal-legend .lb::before{background:#e8d5d0}.cal-legend .le::before{background:var(--orange)}
.cal-side{display:flex;flex-direction:column;gap:4px}
.cal-tinfo{background:var(--green);color:var(--cream);padding:16px 20px;font-size:11px;line-height:1.55;border-left:2px solid var(--orange)}
.cal-tinfo strong{color:var(--gold);font-weight:600;letter-spacing:.1em;font-size:9px;text-transform:uppercase;display:block;margin-bottom:6px}
.cal-detail{background:var(--cream);color:var(--green);padding:22px;flex:1}
.cal-dhead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}
.cal-dhead h4{font-family:var(--serif);font-size:17px;color:var(--green)}
.cal-dhead h4 .it{font-style:italic;color:var(--gold-deep)}
.cal-dhead .tag{font-family:var(--serif);font-style:italic;font-size:10px;color:var(--gold-deep)}
.cal-date{font-size:8.5px;color:var(--green-soft);letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px;font-weight:600}
.slot{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(34,81,74,.12)}
.slot:last-of-type{border-bottom:none}
.slot .time{font-family:var(--serif);font-size:12px;color:var(--green);font-weight:500}
.slot .who{font-size:10px;color:var(--green-soft);font-style:italic;margin-top:1px}
.slot .st{font-size:8px;letter-spacing:.18em;text-transform:uppercase;padding:4px 9px;border:1px solid currentColor;font-weight:600}
.slot .st.free{color:#3d5a1f}.slot .st.busy{color:#6b1f15}.slot .st.hold{color:var(--gold-deep)}
.cal-cta{background:var(--blue);color:#fff;border:none;padding:14px;width:100%;margin-top:16px;font-size:9px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:.4s var(--ease)}
.cal-cta:hover{background:var(--orange);color:var(--green-ink)}
.cal-cta .d{color:var(--gold)}
@media (max-width:760px){.tiers{grid-template-columns:1fr}.tier{border-right:none;border-bottom:1px solid rgba(201,169,97,.3)}.tier:last-child{border-bottom:none}.cal-body{grid-template-columns:1fr}}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,80px);align-items:start}
.info-row{display:grid;grid-template-columns:96px 1fr 24px;gap:16px;padding:18px 0;border-top:1px solid rgba(34,81,74,.18);align-items:baseline}
.info-row:last-child{border-bottom:1px solid rgba(34,81,74,.18)}
.info-row .k{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}
.info-row .v{font-family:var(--serif);font-size:16px;color:var(--green)}
.info-row .v .it{font-style:italic}
.info-row .ar{color:var(--gold-deep);text-align:right}
.form{background:var(--green);color:var(--cream);padding:42px 38px;position:relative}
.form .corner{position:absolute;width:24px;height:24px}
.form .corner.tl{top:12px;left:12px;border-top:1px solid var(--gold);border-left:1px solid var(--gold)}
.form .corner.tr{top:12px;right:12px;border-top:1px solid var(--gold);border-right:1px solid var(--gold)}
.form .corner.bl{bottom:12px;left:12px;border-bottom:1px solid var(--gold);border-left:1px solid var(--gold)}
.form .corner.br{bottom:12px;right:12px;border-bottom:1px solid var(--gold);border-right:1px solid var(--gold)}
.form h3{font-family:var(--serif);font-size:22px;margin-bottom:6px;color:var(--cream)}
.form h3 .it{color:var(--gold)}
.form .sub{font-size:11.5px;color:rgba(245,240,230,.6);margin-bottom:26px}
.field{margin-bottom:20px}
.field label{display:block;font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;font-weight:600}
.field input,.field select,.field textarea{width:100%;background:rgba(245,240,230,.06);border:1px solid rgba(245,240,230,.2);color:var(--cream);padding:11px 12px;font-size:14px;font-family:inherit;transition:border-color .3s}
.field input::placeholder,.field textarea::placeholder{color:rgba(245,240,230,.4)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold)}
.field select option{background:var(--green);color:var(--cream)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field textarea{resize:vertical;min-height:90px}
@media (max-width:760px){.contact-grid{grid-template-columns:1fr;gap:40px}.field-row{grid-template-columns:1fr}}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--green-deep);color:var(--cream);padding:70px var(--gut) 30px}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:50px;max-width:var(--maxw);margin:0 auto 44px;padding-bottom:44px;border-bottom:1px solid rgba(245,240,230,.1)}
.footer-brand svg{margin-bottom:18px}
.footer-brand p{font-size:12.5px;line-height:1.7;color:rgba(245,240,230,.5);max-width:280px}
.footer h5{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;font-weight:600;display:flex;align-items:center;gap:8px}
.footer h5::before{content:'◆';font-size:6px}
.footer a.fl{display:block;font-size:12.5px;color:rgba(245,240,230,.6);padding:5px 0;transition:color .3s,padding-left .3s}
.footer a.fl:hover{color:var(--gold);padding-left:5px}
.footer-bottom{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-size:9.5px;color:rgba(245,240,230,.35);letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.footer-bottom .partner{color:var(--gold)}
.footer-bottom .orn{color:var(--gold)}
@media (max-width:760px){.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-bottom{flex-direction:column;gap:12px;text-align:center}}

/* ============================================================
   PAGES INTÉRIEURES
   ============================================================ */
.page-hero{background:var(--green);color:var(--cream);padding:150px var(--gut) 80px;position:relative;overflow:hidden}
.page-hero .deco{position:absolute;top:50%;right:5%;transform:translateY(-50%);opacity:.3;pointer-events:none}
.page-hero .wrap{padding:0}
.crumb{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:22px;display:flex;gap:10px;align-items:center}
.crumb a{color:rgba(245,240,230,.6);transition:color .3s}
.crumb a:hover{color:var(--gold)}
.crumb .s{color:rgba(245,240,230,.3)}
.page-hero h1{color:var(--cream);max-width:16ch}
.page-hero .lead{color:rgba(245,240,230,.72);max-width:48ch;margin-top:20px}
.prose{max-width:680px}
.prose h2{color:var(--green);margin-bottom:18px}
.prose h3{font-family:var(--sans);font-size:16px;font-weight:600;color:var(--green);margin:34px 0 12px}
.prose p{font-size:14.5px;line-height:1.85;color:var(--green-soft);margin-bottom:18px}
.prose p .ac{color:var(--blue);font-style:italic}

/* Réservation */
.resa-wrap{max-width:740px;margin:0 auto}
.steps{display:flex;border:1px solid rgba(34,81,74,.2);margin-bottom:36px}
.step{flex:1;padding:16px 18px;border-right:1px solid rgba(34,81,74,.15)}
.step:last-child{border-right:none}
.step.active{background:var(--green);color:var(--cream)}
.step .n{font-family:var(--serif);font-style:italic;font-size:12px;color:var(--gold-deep)}
.step.active .n{color:var(--gold)}
.step .t{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;margin-top:6px}
.resa-card{background:var(--ivory);border:1px solid rgba(34,81,74,.18);padding:40px 38px}
.resa-card h2{color:var(--green);margin-bottom:6px}
.resa-card .sub{font-size:12.5px;color:var(--green-soft);margin-bottom:28px}
.resa-field{margin-bottom:22px}
.resa-field label{display:block;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:8px;font-weight:600}
.resa-field input,.resa-field select,.resa-field textarea{width:100%;background:var(--cream);border:1px solid rgba(34,81,74,.3);color:var(--green);padding:12px;font-size:14px;font-family:inherit;transition:border-color .3s}
.resa-field input:focus,.resa-field select:focus,.resa-field textarea:focus{outline:none;border-color:var(--blue)}
.resa-field textarea{resize:vertical;min-height:92px}
.resa-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.resa-submit{background:var(--blue);color:#fff;border:none;padding:16px;width:100%;font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;cursor:pointer;display:flex;justify-content:center;gap:14px;align-items:center;transition:.4s var(--ease)}
.resa-submit:hover{background:var(--orange);color:var(--green-ink)}
.resa-submit:disabled{opacity:.5;cursor:not-allowed}
.resa-note{font-size:11.5px;color:var(--green-soft);line-height:1.6;margin-top:18px;text-align:center}
.resa-msg{padding:16px 18px;font-size:13px;line-height:1.6;margin-bottom:24px;border-left:2px solid}
.resa-msg.ok{background:#e0e8d8;color:#2a4513;border-color:#3d5a1f}
.resa-msg.err{background:#e8d5d0;color:#6b1f15;border-color:#6b1f15}
@media (max-width:760px){.resa-row{grid-template-columns:1fr}.resa-card{padding:30px 22px}.step .t{font-size:9px}.page-hero{padding:120px var(--gut) 60px}}

/* Articles / journal */
.articles{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.article{cursor:pointer}
.article .img{aspect-ratio:3/2;overflow:hidden;margin-bottom:18px;position:relative}
.article .img .ph{position:absolute;inset:0;transition:transform .7s var(--ease)}
.article:hover .img .ph{transform:scale(1.06)}
.article .img .a{background:radial-gradient(ellipse at 60% 40%,rgba(201,169,97,.4),transparent 60%),linear-gradient(135deg,#143832,#22514a)}
.article .img .b{background:radial-gradient(ellipse at 40% 50%,rgba(43,110,143,.5),transparent 60%),linear-gradient(135deg,#1d4f68,#22514a)}
.article .img .c{background:radial-gradient(ellipse at 50% 60%,rgba(217,138,78,.45),transparent 60%),linear-gradient(135deg,#22514a,#143832)}
.article .meta{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:8px}
.article h3{font-family:var(--serif);font-size:20px;color:var(--green);margin-bottom:8px;line-height:1.2}
.article p{font-size:13px;line-height:1.65;color:var(--green-soft)}
@media (max-width:760px){.articles{grid-template-columns:1fr}}

/* Nav sur page-hero foncé : liens clairs tant que pas scrollé */
body.has-pagehero .nav:not(.is-scrolled) .nav-links a{color:rgba(245,240,230,.85)}
body.has-pagehero .nav:not(.is-scrolled) .nav-links a:hover,
body.has-pagehero .nav:not(.is-scrolled) .nav-links a.active{color:var(--gold)}
body.has-pagehero .nav:not(.is-scrolled) .nav-links a::after{background:var(--gold)}
body.has-pagehero .nav:not(.is-scrolled) .nav-cta{color:var(--cream);border-color:rgba(245,240,230,.4)}
body.has-pagehero .nav:not(.is-scrolled) .nav-cta:hover{background:var(--cream);color:var(--green)}
body.has-pagehero .nav:not(.is-scrolled) .nav-logo .lg-ink{fill:#f5f0e6;stroke:#f5f0e6}
body.has-pagehero .nav:not(.is-scrolled) .burger span{background:var(--cream)}
  .am5-intro {
    position: fixed;
    inset: 0;
    z-index: 999;
    overflow: hidden;
    background:
      radial-gradient(circle at 50% 46%, rgba(217,138,78,0.16), transparent 24%),
      radial-gradient(circle at 50% 50%, rgba(43,110,143,0.10), transparent 40%),
      radial-gradient(circle at 50% 48%, rgba(201,169,97,0.18), transparent 30%),
      linear-gradient(160deg, #faf7f0 0%, #f5f0e6 50%, #ece5d3 100%);
    display: grid;
    place-items: center;
    pointer-events: none;
    animation: am5IntroFade 7.85s cubic-bezier(.76,0,.24,1) forwards;
  }

  .am5-intro::before {
    content: '';
    position: absolute;
    inset: -18%;
    background-image:
      linear-gradient(rgba(34,81,74,0.16) 1px, transparent 1px),
      linear-gradient(90deg, rgba(34,81,74,0.16) 1px, transparent 1px);
    background-size: 64px 64px;
    transform: perspective(700px) rotateX(68deg) translateY(120px) scale(1.35);
    transform-origin: 50% 55%;
    opacity: 0;
    animation: am5GridTunnel 5.8s cubic-bezier(.18,.72,.17,1) .2s forwards;
  }

  .am5-intro::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
      radial-gradient(ellipse at center, transparent 0%, transparent 40%, rgba(236,229,211,0.7) 76%, #ece5d3 100%),
      radial-gradient(circle at center, transparent 0 34%, rgba(43,110,143,0.14) 34.2% 34.4%, transparent 34.6% 100%);
    opacity: 0;
    animation: am5IntroVignette 5.9s ease-out forwards;
  }


  .am5-intro-frame {
    position: absolute;
    inset: 34px;
    z-index: 2;
    pointer-events: none;
    opacity: 0;
    animation: am5DecoFrameIn 5.4s cubic-bezier(.16,1,.3,1) .55s forwards;
  }

  .am5-intro-frame::before,
  .am5-intro-frame::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: min(520px, 54vw);
    height: 28px;
    border-left: .75px solid rgba(201,169,97,.7);
    border-right: .75px solid rgba(201,169,97,.7);
    background:
      linear-gradient(90deg, transparent 0 8%, rgba(201,169,97,.46) 8% 8.25%, transparent 8.5% 18%, rgba(201,169,97,.46) 18% 18.25%, transparent 18.5% 81.5%, rgba(201,169,97,.46) 81.75% 82%, transparent 82.25% 91.5%, rgba(201,169,97,.46) 91.75% 92%, transparent 92.25% 100%),
      linear-gradient(rgba(201,169,97,.55), rgba(201,169,97,.55)) center/100% .75px no-repeat;
  }

  .am5-intro-frame::before { top: 0; }
  .am5-intro-frame::after { bottom: 0; transform: translateX(-50%) rotate(180deg); }

  .am5-intro-frame .corner {
    position: absolute;
    width: 92px;
    height: 92px;
    border-color: rgba(201,169,97,.78);
    opacity: .9;
  }
  .am5-intro-frame .c1 { left: 0; top: 0; border-top: .75px solid; border-left: .75px solid; }
  .am5-intro-frame .c2 { right: 0; top: 0; border-top: .75px solid; border-right: .75px solid; }
  .am5-intro-frame .c3 { right: 0; bottom: 0; border-right: .75px solid; border-bottom: .75px solid; }
  .am5-intro-frame .c4 { left: 0; bottom: 0; border-left: .75px solid; border-bottom: .75px solid; }

  .am5-intro-frame .corner::before,
  .am5-intro-frame .corner::after {
    content: '';
    position: absolute;
    background: rgba(201,169,97,.7);
  }
  .am5-intro-frame .c1::before, .am5-intro-frame .c2::before { top: 14px; width: 48px; height: .75px; }
  .am5-intro-frame .c1::after, .am5-intro-frame .c2::after { top: 0; width: .75px; height: 48px; }
  .am5-intro-frame .c1::before { left: 0; } .am5-intro-frame .c1::after { left: 14px; }
  .am5-intro-frame .c2::before { right: 0; } .am5-intro-frame .c2::after { right: 14px; }
  .am5-intro-frame .c3::before, .am5-intro-frame .c4::before { bottom: 14px; width: 48px; height: .75px; }
  .am5-intro-frame .c3::after, .am5-intro-frame .c4::after { bottom: 0; width: .75px; height: 48px; }
  .am5-intro-frame .c3::before { right: 0; } .am5-intro-frame .c3::after { right: 14px; }
  .am5-intro-frame .c4::before { left: 0; } .am5-intro-frame .c4::after { left: 14px; }

  .am5-intro-artdeco {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    opacity: 0;
    animation: am5ArtDecoHalo 6.6s cubic-bezier(.16,1,.3,1) .75s forwards;
  }
  .am5-intro-artdeco .sunray {
    stroke: rgba(201,169,97,.34);
    stroke-width: .55;
    vector-effect: non-scaling-stroke;
  }
  .am5-intro-artdeco .step {
    fill: none;
    stroke: rgba(201,169,97,.42);
    stroke-width: .7;
    vector-effect: non-scaling-stroke;
  }
  .am5-intro-artdeco .ivory-line {
    stroke: rgba(34,81,74,.30);
    stroke-width: .45;
    vector-effect: non-scaling-stroke;
  }

  .am5-intro-logo-wrap {
    isolation: isolate;
  }

  .am5-intro-logo-wrap::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: -46px -72px -34px;
    border: .75px solid rgba(201,169,97,.55);
    background:
      linear-gradient(90deg, transparent 0 44%, rgba(201,169,97,.16) 44% 56%, transparent 56% 100%),
      linear-gradient(180deg, rgba(34,81,74,.05), rgba(34,81,74,.012));
    clip-path: polygon(5% 0, 95% 0, 100% 18%, 100% 82%, 95% 100%, 5% 100%, 0 82%, 0 18%);
    opacity: 0;
    transform: scale(.94);
    animation: am5LogoCartoucheIn 1.7s cubic-bezier(.16,1,.3,1) 2.9s forwards;
  }

  .am5-intro-logo-wrap::after {
    content: '';
    position: absolute;
    z-index: -1;
    left: 50%;
    top: -66px;
    transform: translateX(-50%);
    width: 190px;
    height: 42px;
    opacity: 0;
    background:
      linear-gradient(90deg, transparent 0 12%, rgba(201,169,97,.52) 12% 12.5%, transparent 12.8% 24%, rgba(201,169,97,.52) 24% 24.5%, transparent 24.8% 37%, rgba(201,169,97,.52) 37% 37.5%, transparent 37.8% 62%, rgba(201,169,97,.52) 62.5% 63%, transparent 63.2% 75%, rgba(201,169,97,.52) 75.5% 76%, transparent 76.2% 87%, rgba(201,169,97,.52) 87.5% 88%, transparent 88.2% 100%),
      linear-gradient(rgba(201,169,97,.5), rgba(201,169,97,.5)) center bottom/100% .75px no-repeat;
    animation: am5LogoCrownIn 1.5s cubic-bezier(.16,1,.3,1) 3.25s forwards;
  }

  .am5-hero::after {
    content: '';
    position: absolute;
    z-index: 8;
    pointer-events: none;
    inset: 96px 44px 42px;
    border: .75px solid rgba(201,169,97,.22);
    background:
      linear-gradient(90deg, rgba(201,169,97,.28), rgba(201,169,97,0)) left top/180px .75px no-repeat,
      linear-gradient(90deg, rgba(201,169,97,0), rgba(201,169,97,.28)) right top/180px .75px no-repeat,
      linear-gradient(90deg, rgba(201,169,97,.28), rgba(201,169,97,0)) left bottom/180px .75px no-repeat,
      linear-gradient(90deg, rgba(201,169,97,0), rgba(201,169,97,.28)) right bottom/180px .75px no-repeat;
    opacity: .7;
  }


  .am5-intro-tunnel {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    animation: am5TunnelIn 5.9s cubic-bezier(.16,1,.3,1) .2s forwards;
  }

  .am5-intro-tunnel .ring {
    fill: none;
    stroke: rgba(201,169,97,0.5);
    stroke-width: .55;
    vector-effect: non-scaling-stroke;
    transform-box: fill-box;
    transform-origin: center;
    animation: am5RingPulse 3.8s cubic-bezier(.19,1,.22,1) infinite;
  }

  .am5-intro-tunnel .ring.r2 { animation-delay: .12s; opacity: .65; stroke: rgba(43,110,143,0.42); }
  .am5-intro-tunnel .ring.r3 { animation-delay: .24s; opacity: .5; }
  .am5-intro-tunnel .ring.r4 { animation-delay: .36s; opacity: .38; stroke: rgba(217,138,78,0.40); }
  .am5-intro-tunnel .axis { stroke: rgba(34,81,74,0.30); stroke-width: .4; vector-effect: non-scaling-stroke; }
  .am5-intro-tunnel .gold-axis { stroke: rgba(201,169,97,0.55); stroke-width: .5; vector-effect: non-scaling-stroke; }

  .am5-intro-logo-wrap {
    position: absolute;
    left: 50%;
    top: 50%;
    width: min(560px, 76vw);
    transform: translate(-50%, -50%) scale(.84);
    filter: drop-shadow(0 18px 44px rgba(34,81,74,.18));
    animation: am5IntroLogoDock 7.75s cubic-bezier(.76,0,.24,1) forwards;
    will-change: transform, opacity, filter;
  }

  .am5-intro-logo {
    width: 100%;
    height: auto;
    overflow: visible;
  }

  .am5-intro-logo .build-line {
    stroke-dasharray: 240;
    stroke-dashoffset: 240;
    animation: am5DrawLine 1.45s cubic-bezier(.65,0,.35,1) .75s forwards;
  }

  .am5-intro-logo .build-dot {
    opacity: 0;
    transform: scale(0);
    transform-origin: center;
    animation: am5DotPop .75s cubic-bezier(.34,1.56,.64,1) 1.52s forwards;
  }

  .am5-intro-logo .bar {
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center bottom;
    transform: scaleY(0);
    animation: am5BarRise .74s cubic-bezier(.16,1,.3,1) forwards;
  }

  .am5-intro-logo .bar:nth-of-type(1) { animation-delay: 1.90s; }
  .am5-intro-logo .bar:nth-of-type(2) { animation-delay: 2.02s; }
  .am5-intro-logo .bar:nth-of-type(3) { animation-delay: 2.14s; }
  .am5-intro-logo .bar:nth-of-type(4) { animation-delay: 2.26s; }
  .am5-intro-logo .bar:nth-of-type(5) { animation-delay: 2.38s; }
  .am5-intro-logo .bar:nth-of-type(6) { animation-delay: 2.50s; }
  .am5-intro-logo .bar:nth-of-type(7) { animation-delay: 2.62s; }
  .am5-intro-logo .bar:nth-of-type(8) { animation-delay: 2.74s; }
  .am5-intro-logo .bar:nth-of-type(9) { animation-delay: 2.86s; }
  .am5-intro-logo .bar:nth-of-type(10) { animation-delay: 2.98s; }
  .am5-intro-logo .bar:nth-of-type(11) { animation-delay: 3.10s; }
  .am5-intro-logo .bar:nth-of-type(12) { animation-delay: 3.22s; }
  .am5-intro-logo .bar:nth-of-type(13) { animation-delay: 3.34s; }
  .am5-intro-logo .bar:nth-of-type(14) { animation-delay: 3.46s; }
  .am5-intro-logo .bar:nth-of-type(15) { animation-delay: 3.58s; }

  .am5-intro-logo .orbital {
    opacity: 0;
    stroke-dasharray: 90;
    stroke-dashoffset: 90;
    transform-origin: 180px 12px;
    animation: am5OrbitDraw 1.05s cubic-bezier(.65,0,.35,1) 3.8s forwards;
  }

  .am5-intro-logo .wordmark {
    opacity: 0;
    letter-spacing: 8px;
    animation: am5WordReveal .95s cubic-bezier(.16,1,.3,1) 4.18s forwards;
  }

  .am5-intro-caption {
    position: absolute;
    left: 50%;
    top: calc(50% + min(150px, 22vw));
    transform: translateX(-50%);
    font-size: 10px;
    letter-spacing: .32em;
    text-transform: uppercase;
    color: rgba(34,81,74,.78);
    white-space: nowrap;
    opacity: 0;
    animation: am5CaptionInOut 6.7s cubic-bezier(.16,1,.3,1) 1.25s forwards;
  }

  .am5-intro-caption::before,
  .am5-intro-caption::after {
    content: '◆';
    color: var(--gold);
    font-size: 7px;
    margin: 0 16px;
  }

  .am5-nav {
    transform: translateY(-110%);
    opacity: 0;
    animation: am5NavSettle .9s cubic-bezier(.16,1,.3,1) 7.05s forwards;
  }

  .am5-nav .am5-logo-svg {
    opacity: 0;
    transform-origin: left center;
    animation: am5NavLogoWake .75s cubic-bezier(.16,1,.3,1) 7.22s forwards;
  }

  .am5-hero-content > *,
  .am5-carousel-caption,
  .am5-carousel-controls {
    opacity: 0;
    transform: translateY(18px);
    animation: am5HeroContentIn .85s cubic-bezier(.16,1,.3,1) forwards;
  }

  .am5-hero-top { animation-delay: 7.35s; }
  .am5-h1 { animation-delay: 7.5s; }
  .am5-hero-lead { animation-delay: 7.64s; }
  .am5-hero-cta-row { animation-delay: 7.78s; }
  .am5-carousel-caption { animation-delay: 7.92s; }
  .am5-carousel-controls { animation-delay: 8.02s; }

  @keyframes am5IntroFade {
    0%, 82% { opacity: 1; visibility: visible; }
    100% { opacity: 0; visibility: hidden; }
  }

  @keyframes am5GridTunnel {
    0% { opacity: 0; transform: perspective(700px) rotateX(70deg) translateY(190px) scale(1.7); }
    20% { opacity: .42; }
    100% { opacity: .12; transform: perspective(700px) rotateX(66deg) translateY(-80px) scale(1.05); }
  }

  @keyframes am5IntroVignette {
    0% { opacity: 0; }
    40%, 100% { opacity: 1; }
  }

  @keyframes am5TunnelIn {
    0% { opacity: 0; transform: scale(1.38); }
    20% { opacity: 1; }
    100% { opacity: .72; transform: scale(.86); }
  }

  @keyframes am5RingPulse {
    0% { transform: scale(.94); opacity: .25; }
    45% { opacity: .78; }
    100% { transform: scale(1.06); opacity: .2; }
  }

  @keyframes am5IntroLogoDock {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.64); filter: blur(8px) drop-shadow(0 18px 44px rgba(34,81,74,.18)); }
    16% { opacity: 1; transform: translate(-50%, -50%) scale(.84); filter: blur(0) drop-shadow(0 18px 44px rgba(34,81,74,.18)); }
    48% { opacity: 1; transform: translate(-50%, -50%) scale(1.02); }
    86% { opacity: 1; transform: translate(-50%, -50%) scale(1.02); }
    96% { opacity: 1; transform: translate(calc(-50vw + 132px), calc(-50vh + 39px)) scale(.34); }
    100% { opacity: 0; transform: translate(calc(-50vw + 132px), calc(-50vh + 39px)) scale(.34); }
  }

  @keyframes am5DrawLine { to { stroke-dashoffset: 0; } }

  @keyframes am5DotPop {
    to { opacity: 1; transform: scale(1); }
  }

  @keyframes am5BarRise {
    0% { opacity: 0; transform: scaleY(0); }
    100% { opacity: 1; transform: scaleY(1); }
  }

  @keyframes am5OrbitDraw {
    0% { opacity: 0; stroke-dashoffset: 90; transform: rotate(-18deg); }
    100% { opacity: 1; stroke-dashoffset: 0; transform: rotate(0deg); }
  }

  @keyframes am5WordReveal {
    0% { opacity: 0; letter-spacing: 10px; transform: translateY(8px); }
    100% { opacity: 1; letter-spacing: 5px; transform: translateY(0); }
  }

  @keyframes am5CaptionInOut {
    0% { opacity: 0; transform: translateX(-50%) translateY(10px); }
    16%, 76% { opacity: 1; transform: translateX(-50%) translateY(0); }
    100% { opacity: 0; transform: translateX(-50%) translateY(-8px); }
  }

  @keyframes am5NavSettle {
    0% { opacity: 0; transform: translateY(-110%); }
    100% { opacity: 1; transform: translateY(0); }
  }

  @keyframes am5NavLogoWake {
    0% { opacity: 0; transform: scale(.92); filter: blur(4px); }
    100% { opacity: 1; transform: scale(1); filter: blur(0); }
  }

  @keyframes am5HeroContentIn {
    100% { opacity: 1; transform: translateY(0); }
  }


  @keyframes am5DecoFrameIn {
    0% { opacity: 0; transform: scale(1.04); }
    18% { opacity: .88; }
    78% { opacity: .74; transform: scale(1); }
    100% { opacity: 0; transform: scale(.985); }
  }

  @keyframes am5ArtDecoHalo {
    0% { opacity: 0; transform: scale(1.08); }
    16% { opacity: .72; }
    72% { opacity: .58; transform: scale(1); }
    100% { opacity: 0; transform: scale(.96); }
  }

  @keyframes am5LogoCartoucheIn {
    0% { opacity: 0; transform: scale(.92); }
    100% { opacity: 1; transform: scale(1); }
  }

  @keyframes am5LogoCrownIn {
    0% { opacity: 0; transform: translateX(-50%) translateY(12px); }
    100% { opacity: .86; transform: translateX(-50%) translateY(0); }
  }


  @media (prefers-reduced-motion: reduce) {
    .am5-intro { display: none; }
    .am5-nav,
    .am5-nav .am5-logo-svg,
    .am5-hero-content > *,
    .am5-carousel-caption,
    .am5-carousel-controls {
      animation: none !important;
      transform: none !important;
      opacity: 1 !important;
    }
  }

  @media (max-width: 760px) {
    .am5-intro-logo-wrap { width: 86vw; }
    .am5-intro-caption { top: calc(50% + 120px); font-size: 8px; letter-spacing: .22em; }
    @keyframes am5IntroLogoDock {
      0% { opacity: 0; transform: translate(-50%, -50%) scale(.64); filter: blur(8px); }
      16% { opacity: 1; transform: translate(-50%, -50%) scale(.84); filter: blur(0); }
      48%, 86% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
      96% { opacity: 1; transform: translate(calc(-50vw + 108px), calc(-50vh + 34px)) scale(.3); }
      100% { opacity: 0; transform: translate(calc(-50vw + 108px), calc(-50vh + 34px)) scale(.3); }
    }
  }

/* ===== TUNNEL D'ENTRÉE (overlay) — intégration v3 ===== */
.am5-intro{z-index:9999}


/* ===== RÉDUCTION DU VERT : sections claires ===== */
/* Studio en clair : le plan reste lisible, le texte repasse en vert foncé sur crème */
.section.studio-light{background:var(--ivory);color:var(--ink)}
.section.studio-light .eyebrow.on-dark{color:var(--gold-deep)}
.section.studio-light .eyebrow.on-dark::before{background:var(--gold-deep)}
.section.studio-light h2{color:var(--green)}
.section.studio-light h2 .it{color:var(--gold-deep)}
.section.studio-light .studio-text>p{color:var(--green-soft)}
.section.studio-light .feature{border-top-color:rgba(34,81,74,.14)}
.section.studio-light .feature .num{color:var(--gold-deep)}
.section.studio-light .feature h4{color:var(--green)}
.section.studio-light .feature p{color:var(--green-soft)}
.section.studio-light .studio-visual{background:var(--cream);border-radius:2px}
.section.studio-light .studio-visual .frame{border-color:rgba(34,81,74,.25)}

/* Calendrier sur fond clair : bandeau de section crème, le calendrier garde ses contrastes internes */
.section.cal-light{background:var(--cream-2);color:var(--ink)}
.section.cal-light .eyebrow.on-dark{color:var(--gold-deep)}
.section.cal-light .eyebrow.on-dark::before{background:var(--gold-deep)}
.section.cal-light h2{color:var(--green)}
.section.cal-light h2 .it{color:var(--gold-deep)}
/* La carte calendrier reçoit une fine ombre pour se détacher du fond clair */
.cal-light .cal-shell{box-shadow:0 40px 80px -60px rgba(20,56,50,.45)}

/* Le hero garde le vert (nécessaire aux ondes). Footer garde le vert foncé (petite surface relative). */
