
/* ============ POLICES DE LA CHARTE ============
   Herokid SemiBold .... titres principaux
   Adrianna Demibold ... structure (nav, sur-titres, boutons, labels)
   Montserrat Italic ... textes d'accent / citations (remplace The Seasons)
   Myriad Pro .......... textes courants
   Fichiers locaux dans /fonts — prêts pour un hébergement cPanel (public_html).
*/
@font-face{font-family:'Herokid';src:url(../fonts/herokid.otf) format('opentype');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Adrianna';src:url(../fonts/adrianna.ttf) format('truetype');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Myriad Pro';src:url(../fonts/myriad-pro-regular.otf) format('opentype');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Myriad Pro';src:url(../fonts/myriad-pro-bold.otf) format('opentype');font-weight:700;font-style:normal;font-display:swap;}
:root{
  --f-display:'Herokid','Adrianna',system-ui,sans-serif;
  --f-struct:'Adrianna','Herokid',system-ui,sans-serif;
  --f-accent:'Montserrat','Adrianna',system-ui,sans-serif;
  --f-body:'Myriad Pro','Adrianna',system-ui,sans-serif;
  --navy-950:#03091C;
  --navy-900:#061029;
  --navy-850:#081737;
  --navy-800:#0B1E45;
  --navy-700:#12305F;
  --navy-600:#1B4183;
  --gold:#C79447;
  --gold-mid:#D8AC5E;
  --gold-light:#EBCF93;
  --gold-pale:#F5E6C4;
  --cream:#F7F2E8;
  --cream-2:#FBF8F1;
  --ink:#0C1834;
  --ink-soft:#4A5878;
  --line-gold:rgba(199,148,71,.34);
  --line-light:rgba(12,24,52,.12);
  --line-dark:rgba(235,207,147,.16);
  --shadow-xl:0 40px 90px rgba(3,9,28,.45);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:96px;}
body{
  font-family:var(--f-body);
  background:var(--cream-2);color:var(--ink);
  line-height:1.7;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,.display{font-family:var(--f-display);line-height:1.12;font-weight:600;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
.wrap-narrow{max-width:920px;margin:0 auto;padding:0 32px;}

/* ---------- atomes ---------- */
.eyebrow{
  font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;
  font-weight:700;color:var(--gold);font-family:var(--f-struct);
}
.eyebrow.on-light{color:#A9803A;}
.rule{display:block;width:74px;height:1px;background:var(--gold);opacity:.65;margin:18px 0;}
.rule.center{margin:18px auto;}
.diamond-rule{display:flex;align-items:center;justify-content:center;gap:14px;margin:20px auto 0;max-width:320px;}
.diamond-rule::before,.diamond-rule::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.7;}
.diamond-rule i{width:7px;height:7px;background:var(--gold);transform:rotate(45deg);display:block;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:16px 34px;font-size:.72rem;letter-spacing:.19em;text-transform:uppercase;
  font-weight:700;font-family:var(--f-struct);border-radius:2px;
  transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s,background .25s,color .25s,border-color .25s;
  cursor:pointer;border:1px solid transparent;
}
.btn-gold{background:linear-gradient(135deg,var(--gold-mid),var(--gold) 55%,#B9813A);color:#12213F;box-shadow:0 14px 34px rgba(199,148,71,.32);}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 20px 44px rgba(199,148,71,.42);}
.btn-outline{border-color:rgba(235,207,147,.45);color:var(--gold-pale);}
.btn-outline:hover{border-color:var(--gold-light);background:rgba(199,148,71,.1);transform:translateY(-2px);}
.btn-outline-dark{border-color:rgba(12,24,52,.28);color:var(--ink);}
.btn-outline-dark:hover{border-color:var(--ink);background:rgba(12,24,52,.05);transform:translateY(-2px);}

.tag{
  display:inline-block;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;
  padding:6px 13px;border-radius:2px;font-family:var(--f-struct);
}
.tag-gold{background:linear-gradient(135deg,var(--gold-mid),var(--gold));color:#0E1B36;}
.tag-soft{background:rgba(199,148,71,.13);border:1px solid var(--line-gold);color:#A9803A;}
.tag-soft.on-dark{color:var(--gold-light);background:rgba(199,148,71,.16);}

section{position:relative;}
.sec{padding:118px 0;}
.sec-dark{background:var(--navy-900);color:#E7EDF9;}
.sec-navy{background:linear-gradient(170deg,var(--navy-850),var(--navy-950));color:#E7EDF9;}
.sec-cream{background:var(--cream);}
.sec-white{background:var(--cream-2);}
.sec-head{max-width:720px;margin:0 auto 68px;text-align:center;}
.sec-head h2{font-size:clamp(2rem,4.4vw,3.15rem);font-weight:700;margin-top:16px;letter-spacing:-.005em;}
.sec-head h2 em{font-style:italic;color:var(--gold);font-weight:600;}
.sec-head p{margin-top:22px;color:var(--ink-soft);font-size:1.02rem;}
.sec-dark .sec-head p,.sec-navy .sec-head p{color:#A9B6D2;}
.sec-dark .sec-head h2,.sec-navy .sec-head h2{color:#fff;}
#programme .sec-head{max-width:min(960px,100%);}
#programme .sec-head h2{
  white-space:nowrap;
  font-size:clamp(1.35rem,3.8vw,3.15rem);
}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:100;
  background:rgba(6,16,41,.86);backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(235,207,147,.14);
  transition:background .3s;
}
.nav-in{max-width:1300px;margin:0 auto;padding:15px 32px;display:flex;align-items:center;gap:28px;}
.brand{display:flex;align-items:center;gap:13px;flex-shrink:0;}
.brand-logo{height:52px;width:auto;display:block;}
.brand-flag{width:26px;height:34px;border-radius:2px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 12px rgba(0,0,0,.4);}
.brand-flag i{flex:1;display:block;}
.brand-flag i:first-child{background:linear-gradient(135deg,#1B4183,#0B1E45);}
.brand-flag i:last-child{background:linear-gradient(135deg,var(--gold-light),var(--gold));}
.brand-txt{font-family:var(--f-accent);font-size:.95rem;font-weight:600;color:#fff;line-height:1.25;letter-spacing:.005em;}
.nav-links{display:flex;flex-wrap:nowrap;gap:20px;flex:1;justify-content:center;}
.nav-links a{
  font-size:.645rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:#B8C4DF;font-family:var(--f-struct);
  padding:6px 0;border-bottom:1px solid transparent;transition:.2s;white-space:nowrap;
}
.nav-links a:hover,.nav-links a.active{color:var(--gold-light);border-color:var(--gold);}
.nav-cta{
  background:linear-gradient(135deg,var(--gold-mid),var(--gold));color:#0E1B36;
  font-size:.66rem;letter-spacing:.17em;text-transform:uppercase;font-weight:800;
  padding:13px 26px;border-radius:2px;flex-shrink:0;transition:.25s;font-family:var(--f-struct);
}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(199,148,71,.35);}
.nav-burger{display:none;background:none;border:1px solid rgba(235,207,147,.35);border-radius:2px;padding:9px 11px;cursor:pointer;}
.nav-burger span{display:block;width:18px;height:1.5px;background:var(--gold-light);margin:4px 0;transition:.25s;}

/* ---------- hero (scroll-scrub Apple-style) ---------- */
.hero{
  position:relative;color:#fff;
  background:
    radial-gradient(ellipse 900px 700px at 72% 22%, rgba(199,148,71,.20), transparent 62%),
    radial-gradient(ellipse 700px 520px at 8% 88%, rgba(27,65,131,.42), transparent 66%),
    linear-gradient(165deg,#061029 0%,#08183A 45%,#0A1E48 72%,#050D22 100%);
}
.hero-track{height:320vh;}
.hero-sticky{
  position:sticky;top:72px;height:calc(100svh - 72px);min-height:560px;
  overflow:hidden;display:flex;flex-direction:column;justify-content:center;
  padding:20px 0 40px;box-sizing:border-box;gap:28px;
}
.hero-sticky::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:80px;z-index:4;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(3,9,28,.55));
}
.hero-stars{position:absolute;inset:0;pointer-events:none;opacity:.75;}
.hero-stars i{position:absolute;background:#fff;border-radius:50%;animation:tw 4.5s ease-in-out infinite;}
@keyframes tw{0%,100%{opacity:.15;transform:scale(.8);}50%{opacity:.9;transform:scale(1.15);}}
.hero-in{
  max-width:1240px;margin:0 auto;padding:0 32px;width:100%;
  display:grid;grid-template-columns:1.02fr .98fr;gap:40px;align-items:center;position:relative;z-index:5;
  flex:0 1 auto;min-height:0;
  transition:max-width .45s ease,padding .45s ease;
}
.hero-in.is-armor{
  max-width:min(1360px,100%);
  grid-template-columns:1fr;
  height:100%;
  align-items:stretch;
}
.hero-in.is-armor .hero-copy{
  position:absolute;left:32px;top:18%;z-index:4;
  width:min(460px,40%);pointer-events:none;
}
.hero-copy{will-change:opacity,transform;transform:translateZ(0);}
.hero-copy h1{
  font-size:clamp(2.4rem,5.8vw,4.6rem);font-weight:800;text-transform:uppercase;
  letter-spacing:-.012em;line-height:.96;margin-top:14px;color:#fff;
  text-shadow:0 18px 50px rgba(0,0,0,.4);
}
.hero-copy h1 .gold{
  display:block;font-size:.66em;letter-spacing:.005em;margin-top:.12em;
  background:linear-gradient(96deg,var(--gold-light) 8%,var(--gold-mid) 45%,var(--gold-pale) 90%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.hero-year{
  font-family:var(--f-accent);font-style:italic;font-size:1.85rem;font-weight:500;
  color:var(--gold-light);display:flex;align-items:center;gap:18px;margin-top:14px;
}
.hero-year::before,.hero-year::after{content:"";height:1px;background:var(--gold);opacity:.55;flex:0 0 46px;}
.hero-year::after{flex:1;max-width:220px;}
.hero-theme{
  margin-top:18px;font-family:'Montserrat',var(--f-accent),system-ui,sans-serif;
  font-style:italic;font-weight:500;font-synthesis:none;
  font-size:1.08rem;color:#EEF3FF;letter-spacing:.01em;
}
.hero-theme b{font-style:italic;font-weight:600;color:var(--gold-light);}
.hero-verse{
  margin-top:12px;font-size:.86rem;color:#A8B7D6;max-width:470px;line-height:1.65;
  padding-left:16px;border-left:1px solid var(--line-gold);
}
.hero-verse b{color:var(--gold);font-style:normal;font-weight:700;letter-spacing:.02em;}
.hero-cta{display:flex;gap:14px;margin-top:26px;flex-wrap:wrap;}
.hero-info-banner{
  position:relative;z-index:2;
  max-width:980px;width:calc(100% - 64px);margin:0 auto;
  display:grid;grid-template-columns:1fr 1.05fr 1.15fr;
  background:#FBF7F0;border-radius:18px;
  box-shadow:0 18px 50px rgba(3,9,28,.28);
  overflow:hidden;
  will-change:opacity,transform;
  flex:0 0 auto;
}
.hib-item{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;padding:16px 14px;text-align:center;
  border-right:1px solid rgba(199,148,71,.38);
}
.hib-item:last-child{border-right:none;}
.hib-item svg{color:#C79447;margin-bottom:2px;}
.hib-main{
  font-family:var(--f-struct);font-size:clamp(.92rem,1.7vw,1.2rem);
  font-weight:800;letter-spacing:.03em;text-transform:uppercase;
  color:var(--navy-900);line-height:1.2;white-space:nowrap;
}
.hib-sub{
  font-family:var(--f-struct);font-size:.62rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:#C79447;line-height:1.35;
  white-space:nowrap;
}

.hero-visual{
  position:relative;display:flex;align-items:center;justify-content:center;
  min-height:0;height:100%;overflow:visible;isolation:isolate;
}
.hero-visual.is-focus{
  position:relative;left:auto;right:auto;top:auto;bottom:auto;z-index:6;
  width:100%;height:100%;margin:0;
}
.hero-in.is-armor .hero-chest,
.hero-visual.is-focus .hero-chest{
  width:min(460px,40%);height:46%;bottom:0;
}
.hero-globe{
  position:absolute;width:min(420px,70%);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 50% 42%, rgba(245,230,196,.46), rgba(199,148,71,.20) 46%, transparent 70%);
  box-shadow:0 0 170px rgba(199,148,71,.45), inset 0 0 110px rgba(235,207,147,.26);
  border:1px solid rgba(235,207,147,.38);
  top:72%;left:50%;transform:translate(-50%,-50%);
  pointer-events:none;z-index:0;
}
.hero-globe::after{
  content:"";position:absolute;inset:-1px;border-radius:50%;
  background:conic-gradient(from 328deg, transparent 0deg, rgba(245,230,196,1) 52deg, rgba(235,207,147,.4) 112deg, transparent 172deg);
  -webkit-mask:radial-gradient(circle, transparent 66%, #000 67%);
  mask:radial-gradient(circle, transparent 66%, #000 67%);
  opacity:1;filter:blur(1px);
}
.chest-stage{
  position:relative;z-index:2;width:100%;max-width:1320px;height:min(560px,64vh);
  display:flex;align-items:center;justify-content:center;
  overflow:visible;isolation:isolate;
}
.chest-theme{
  position:absolute;left:50%;top:8px;z-index:20;
  width:min(920px,96%);margin:0;padding:0 20px;box-sizing:border-box;
  text-align:center;pointer-events:none;
  -webkit-transform:translate(-50%,0);
  transform:translate(-50%,0);
  font-family:'Montserrat',var(--f-accent),system-ui,sans-serif;
  font-style:italic;font-weight:700;font-synthesis:none;
  font-size:clamp(1.7rem,4.6vw,3.05rem);letter-spacing:.012em;line-height:1.22;
  color:var(--gold-light);
  text-shadow:0 10px 36px rgba(0,0,0,.6),0 0 28px rgba(199,148,71,.4);
  opacity:0;visibility:hidden;
  clip-path:inset(50%);
  -webkit-clip-path:inset(50%);
}
.chest-theme.is-on{
  visibility:visible;
  clip-path:none;
  -webkit-clip-path:none;
}
.chest-theme span{
  display:block;
  color:#fff;
}
.chest-stage::after{
  content:"";position:absolute;left:12%;right:12%;bottom:6%;height:18%;
  background:radial-gradient(ellipse,rgba(0,0,0,.55),transparent 70%);
  filter:blur(10px);pointer-events:none;z-index:0;
}
.hero-chest{
  position:absolute;left:50%;right:auto;bottom:0;width:min(560px,84%);height:70%;
  margin-left:0;-webkit-transform:translateX(-50%);transform:translateX(-50%);
  object-fit:contain;object-position:bottom center;z-index:5;
  filter:drop-shadow(0 50px 70px rgba(0,0,0,.55));
  animation:float 7s ease-in-out infinite;
  pointer-events:none;
}
.chest-stage.is-locked .hero-chest{animation:none;transform:translateX(-50%);}
@keyframes float{0%,100%{transform:translate3d(-50%,0,0);}50%{transform:translate3d(-50%,-14px,0);}}
.hero-spark{position:absolute;z-index:6;color:var(--gold-light);opacity:.9;pointer-events:none;}

/* Ancien coffre CSS 3D : désactivé (trop flou vs photo d'origine) */
.c3d-wrap{display:none!important;}
.c3d i{font-style:normal;display:block;}
.c3d{
  --cw:300px;--ch:162px;--cd:176px;--lh:50px;--lid-rx:0deg;
  width:var(--cw);height:var(--ch);position:relative;
  transform-style:preserve-3d;
}
.c3d-box,.c3d-lid{position:absolute;left:0;transform-style:preserve-3d;}
.c3d-box{width:var(--cw);height:var(--ch);top:0;}
.c3d-lid{
  width:var(--cw);height:var(--lh);bottom:100%;
  transform-origin:50% 100% calc(var(--cd) / -2);
  transform:rotateX(var(--lid-rx));
  will-change:transform;
}
.c3d .f{
  position:absolute;box-sizing:border-box;
  background:
    linear-gradient(180deg,rgba(255,255,255,.08),transparent 40%),
    linear-gradient(145deg,#1B3C72 0%,#10264C 46%,#0A1734 100%);
  box-shadow:inset 0 0 0 2px rgba(214,171,96,.62);
}
.c3d .front,.c3d .back{width:var(--cw);height:var(--ch);}
.c3d-lid .front,.c3d-lid .back{height:var(--lh);}
.c3d-box .front{transform:translateZ(calc(var(--cd) / 2));}
.c3d-box .back{transform:rotateY(180deg) translateZ(calc(var(--cd) / 2));}
.c3d-lid .front{transform:translateZ(calc(var(--cd) / 2));}
.c3d-lid .back{transform:rotateY(180deg) translateZ(calc(var(--cd) / 2));}
.c3d .side{width:var(--cd);height:var(--ch);left:calc((var(--cw) - var(--cd)) / 2);}
.c3d-lid .side{height:var(--lh);}
.c3d-box .left{transform:rotateY(-90deg) translateZ(calc(var(--cw) / 2));}
.c3d-box .right{transform:rotateY(90deg) translateZ(calc(var(--cw) / 2));}
.c3d-lid .left{transform:rotateY(-90deg) translateZ(calc(var(--cw) / 2));}
.c3d-lid .right{transform:rotateY(90deg) translateZ(calc(var(--cw) / 2));}
.c3d .hz{width:var(--cw);height:var(--cd);top:calc((var(--ch) - var(--cd)) / 2);}
.c3d-lid .hz{top:calc((var(--lh) - var(--cd)) / 2);}
.c3d-box .top{transform:rotateX(90deg) translateZ(calc(var(--ch) / 2));}
.c3d-box .bottom{transform:rotateX(-90deg) translateZ(calc(var(--ch) / 2));}
.c3d-lid .top{transform:rotateX(90deg) translateZ(calc(var(--lh) / 2));}
.c3d-lid .bottom{transform:rotateX(-90deg) translateZ(calc(var(--lh) / 2));}
.c3d .inner{
  background:
    radial-gradient(ellipse at 50% 40%, rgba(255,214,120,.7), rgba(80,42,8,.2) 46%, #140C04 72%);
  box-shadow:inset 0 0 50px rgba(255,196,80,.45), inset 0 0 0 2px rgba(214,171,96,.35);
}
.c3d-box .bottom{
  background:linear-gradient(180deg,#071026,#040814);
  box-shadow:inset 0 0 0 2px rgba(214,171,96,.4);
}
.c3d-lid .top{
  background:
    linear-gradient(180deg,rgba(255,255,255,.1),transparent 40%),
    linear-gradient(145deg,#1E427C,#10264C);
  box-shadow:inset 0 0 0 2px rgba(214,171,96,.7);
}
.panels{
  display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr;
  gap:7px;height:100%;padding:12px 11px 14px;box-sizing:border-box;
}
.panel{
  border:1px solid rgba(232,199,122,.72);border-radius:3px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.38));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 0 0 1px rgba(0,0,0,.28);
}
.panel svg{width:62%;height:62%;stroke:#E8C77A;fill:none;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round;}
.latch{
  position:absolute;left:50%;bottom:-11px;width:30px;height:22px;margin-left:-15px;z-index:3;
  background:linear-gradient(180deg,#F3DC9A,#C79447 52%,#8A5A22);
  border-radius:3px;box-shadow:0 2px 6px rgba(0,0,0,.45);
}
.latch::after{
  content:"";position:absolute;left:50%;top:6px;width:8px;height:8px;margin-left:-4px;
  border-radius:50%;background:#2A1806;box-shadow:inset 0 1px 2px rgba(255,255,255,.25);
}
.chest-beam{
  position:absolute;left:50%;bottom:42%;width:120px;height:130px;margin-left:-60px;
  background:linear-gradient(180deg,rgba(255,236,180,0),rgba(255,214,120,.55) 45%,rgba(255,200,80,0));
  filter:blur(14px);opacity:0;pointer-events:none;z-index:3;mix-blend-mode:screen;
  transform-origin:50% 100%;
}
.chest-arc{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;pointer-events:none;z-index:6;
  overflow:visible;
  filter:drop-shadow(0 0 6px rgba(232,199,122,.55));
}
.chest-relics{position:absolute;inset:0;pointer-events:none;z-index:7;}
.relic{
  position:absolute;left:50%;top:36%;display:flex;flex-direction:column;align-items:center;gap:2px;
  color:#fff;opacity:0;will-change:transform,opacity;margin-left:-44px;width:88px;
}
.relic b{
  font-family:var(--f-struct);font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;font-weight:800;
  text-shadow:0 4px 16px rgba(0,0,0,.75);white-space:nowrap;color:#fff;
}
.relic em{
  font-family:'Montserrat',var(--f-accent),system-ui,sans-serif;
  font-style:italic;font-weight:500;font-synthesis:none;font-size:.64rem;
  color:var(--gold-light);line-height:1;margin-top:-2px;
  text-shadow:0 4px 14px rgba(0,0,0,.55);
}
.relic-ic{
  width:44px;height:44px;border-radius:50%;flex-shrink:0;
  border:1.5px solid rgba(235,207,147,.72);
  background:
    radial-gradient(circle at 50% 28%,rgba(255,220,140,.45),rgba(199,148,71,.16) 42%,rgba(8,20,50,.88) 72%);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 22px rgba(0,0,0,.4),0 0 18px rgba(199,148,71,.32),inset 0 0 10px rgba(255,220,140,.16);
}
.relic-ic svg{width:22px;height:22px;stroke:#F0D48A;fill:none;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round;}
.hero-scroll-hint{
  position:absolute;bottom:22px;left:50%;transform:translateX(-50%);
  z-index:5;margin:0;text-align:center;pointer-events:none;
  font-family:var(--f-struct);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-light);opacity:.78;
}
.hero-scroll-hint span{display:block;}
.hero-scroll-hint::after{
  content:"";display:block;width:1px;height:26px;margin:10px auto 0;
  background:linear-gradient(var(--gold),transparent);
  animation:hint-line 1.8s ease-in-out infinite;
}
@keyframes hint-line{0%,100%{opacity:.25;transform:scaleY(.7);}50%{opacity:1;transform:scaleY(1);}}

/* ---------- countdown ---------- */
.countdown{background:var(--navy-950);border-top:1px solid rgba(235,207,147,.14);border-bottom:1px solid rgba(235,207,147,.14);}
.cd-in{max-width:1180px;margin:0 auto;padding:34px 32px;display:flex;align-items:center;justify-content:center;gap:44px;flex-wrap:wrap;}
.cd-label{font-family:var(--f-struct);font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);font-weight:800;}
.cd-units{display:flex;gap:30px;}
.cd-unit{text-align:center;min-width:74px;}
.cd-unit b{display:block;font-family:var(--f-display);font-size:2.05rem;font-weight:700;color:#fff;line-height:1;}
.cd-unit span{font-family:var(--f-struct);display:block;margin-top:7px;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:#7F8FB5;font-weight:700;}
.cd-sep{width:1px;background:rgba(235,207,147,.2);align-self:stretch;}

/* ---------- piliers ---------- */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);}
.pillar{padding:56px 32px;text-align:center;border-right:1px solid var(--line-light);}
.pillar:last-child{border-right:none;}
.pillar-ic{width:52px;height:52px;margin:0 auto 22px;color:var(--gold);}
.pillar h3{font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;font-family:var(--f-struct);color:var(--ink);}
.pillar p{margin-top:14px;font-size:.87rem;color:var(--ink-soft);max-width:230px;margin-left:auto;margin-right:auto;}

/* ---------- mission (typewriter auto) ---------- */
.mission{
  --neon:#4EC7FF;
  --neon-soft:rgba(78,199,255,.55);
  color:#fff;
  background:
    radial-gradient(ellipse 700px 480px at 18% 20%, rgba(40,120,200,.18), transparent 62%),
    linear-gradient(165deg,#04122E 0%,#06183A 48%,#030B1C 100%);
}
.mission-track{height:auto;}
.mission-sticky{
  position:relative;top:auto;height:auto;min-height:0;
  display:flex;align-items:stretch;overflow:visible;
}
.mission-dots{
  position:absolute;inset:0;pointer-events:none;opacity:.35;
  background-image:radial-gradient(circle,rgba(120,190,255,.55) 1px,transparent 1.2px);
  background-size:28px 28px;
  -webkit-mask-image:linear-gradient(135deg,#000 0%,transparent 55%);
  mask-image:linear-gradient(135deg,#000 0%,transparent 55%);
}
.mission-in{
  max-width:1240px;margin:0 auto;padding:28px 32px 0;
  width:100%;height:auto;
  display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:end;
  position:relative;z-index:2;
}
.mission-photo{
  position:relative;display:block;line-height:0;
  align-self:end;justify-self:center;width:100%;
}
.mission-photo img{
  width:100%;max-width:460px;height:auto;
  max-height:min(calc(100svh - 110px),780px);
  object-fit:contain;object-position:top center;display:block;margin:0 auto;
  filter:drop-shadow(0 0 40px rgba(0,0,0,.45));
  position:relative;z-index:2;
}
.mission-photo::before{
  content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:78%;height:18%;border-radius:50%;
  background:radial-gradient(ellipse,rgba(78,199,255,.22),transparent 70%);
  filter:blur(8px);z-index:1;pointer-events:none;
}
.mission-panel{
  display:flex;justify-content:center;align-items:center;
  align-self:center;padding:24px 0 0;
}
.mission-frame{
  position:relative;width:min(560px,100%);
  padding:42px 40px 36px;
  background:linear-gradient(165deg,rgba(8,28,62,.72),rgba(4,14,34,.88));
  clip-path:polygon(28px 0, calc(100% - 28px) 0, 100% 28px, 100% calc(100% - 28px), calc(100% - 28px) 100%, 28px 100%, 0 calc(100% - 28px), 0 28px);
  box-shadow:
    0 0 0 1.5px var(--neon),
    0 0 28px rgba(78,199,255,.35),
    inset 0 0 40px rgba(78,199,255,.08);
}
.mission-frame::before{
  content:"";position:absolute;inset:10px;
  clip-path:polygon(22px 0, calc(100% - 22px) 0, 100% 22px, 100% calc(100% - 22px), calc(100% - 22px) 100%, 22px 100%, 0 calc(100% - 22px), 0 22px);
  border:1px solid rgba(78,199,255,.22);pointer-events:none;
}
.mission-title{
  font-family:var(--f-struct);font-size:clamp(2.4rem,5vw,3.4rem);font-weight:800;
  letter-spacing:.22em;text-transform:uppercase;text-align:center;
  color:transparent;-webkit-text-stroke:1.5px var(--neon);
  text-shadow:0 0 18px rgba(78,199,255,.45);
}
.mission-rule{
  display:flex;align-items:center;justify-content:center;gap:10px;margin:14px auto 22px;max-width:220px;
}
.mission-rule::before,.mission-rule::after{
  content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--neon),transparent);opacity:.7;
}
.mission-rule i{
  width:7px;height:7px;background:var(--neon);transform:rotate(45deg);
  box-shadow:0 0 10px rgba(78,199,255,.7);display:block;
}
.mission-lead{
  display:flex;align-items:flex-start;gap:12px;
  font-family:var(--f-struct);font-size:.95rem;color:var(--neon);margin-bottom:18px;
}
.mission-lead b{font-weight:800;color:#9BDEFF;}
.mission-quote{
  font-family:Georgia,serif;font-size:2.6rem;line-height:.8;color:var(--neon);
  text-shadow:0 0 14px rgba(78,199,255,.6);flex-shrink:0;
}
.mission-type{
  min-height:9.5em;font-size:.98rem;line-height:1.7;color:#E8EEF8;
  white-space:pre-wrap;position:relative;
}
.mission-type.is-typing::after{
  content:"";display:inline-block;width:2px;height:1.05em;margin-left:2px;
  background:var(--neon);vertical-align:-.15em;
  box-shadow:0 0 8px rgba(78,199,255,.8);
  animation:caret 1s steps(1) infinite;
}
@keyframes caret{0%,49%{opacity:1;}50%,100%{opacity:0;}}
.mission-sign{
  margin-top:26px;padding-top:18px;border-top:1px solid rgba(78,199,255,.35);
  opacity:0;transform:translateY(10px);transition:opacity .35s ease,transform .35s ease;
}
.mission-sign.is-on{opacity:1;transform:none;}
.mission-sign .n{
  font-family:var(--f-struct);font-size:.92rem;font-weight:800;color:var(--neon);
  text-shadow:0 0 12px rgba(78,199,255,.35);
}
.mission-sign .r{margin-top:4px;font-size:.78rem;color:#9BB0D0;}

/* ---------- présentation ---------- */
.video-frame{
  position:relative;width:100%;max-width:880px;margin:0 auto 56px;
  aspect-ratio:16 / 9;border-radius:6px;overflow:hidden;
  border:1px solid rgba(235,207,147,.28);
  box-shadow:0 28px 70px rgba(0,0,0,.45),0 0 40px rgba(199,148,71,.12);
  background:#040b1a;
}
.video-frame iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;display:block;
}
.video-play{
  position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;
  cursor:pointer;background:#040b1a;display:block;
}
.video-play img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .45s ease,opacity .35s ease;
}
.video-play:hover img,.video-play:focus-visible img{transform:scale(1.03);opacity:.92;}
.video-play-btn{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:72px;height:72px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--gold-mid),var(--gold) 55%,#B9813A);
  color:#12213F;box-shadow:0 16px 40px rgba(0,0,0,.45),0 0 28px rgba(199,148,71,.35);
  transition:transform .25s ease,box-shadow .25s ease;
}
.video-play:hover .video-play-btn,.video-play:focus-visible .video-play-btn{
  transform:translate(-50%,-50%) scale(1.06);
  box-shadow:0 20px 48px rgba(0,0,0,.5),0 0 34px rgba(199,148,71,.45);
}
.video-play-btn svg{margin-left:3px;}
.intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.intro-card{
  background:rgba(255,255,255,.04);border:1px solid var(--line-dark);border-radius:4px;
  padding:38px 30px;text-align:center;transition:.3s;position:relative;overflow:hidden;
}
.intro-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.5;}
.intro-card:hover{transform:translateY(-5px);border-color:var(--line-gold);background:rgba(255,255,255,.06);}
.intro-card .ic{width:46px;height:46px;margin:0 auto 20px;color:var(--gold);}
.intro-card h3{font-size:1.42rem;font-weight:700;color:#fff;}
.intro-card ul{list-style:none;margin-top:20px;display:flex;flex-direction:column;gap:12px;text-align:left;}
.intro-card li{position:relative;padding-left:22px;font-size:.88rem;color:#B4C1DC;}
.intro-card li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--gold);transform:rotate(45deg);}
.intro-card p{margin-top:18px;font-size:.9rem;color:#B4C1DC;}
.intro-card p b{color:var(--gold-light);font-weight:800;}
.intro-card .stat-inline{white-space:nowrap;display:inline;}
.intro-card .quote{
  font-family:'Montserrat',var(--f-accent),system-ui,sans-serif;
  font-style:italic;font-weight:500;font-synthesis:none;
  font-size:1.05rem;line-height:1.65;letter-spacing:.01em;color:#EAF0FB;
}
.intro-card .quote .quote-phrase{white-space:nowrap;}

.notice{
  margin-top:36px;display:flex;gap:24px;align-items:flex-start;
  border:1px solid var(--line-gold);border-radius:4px;padding:26px 30px;background:rgba(199,148,71,.07);
}
.notice-ic{flex-shrink:0;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-size:1.4rem;font-weight:700;}
.notice .lbl{font-family:var(--f-struct);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:800;margin-bottom:10px;}
.notice p{font-size:.9rem;color:#C2CDE6;}
.notice p+p{margin-top:7px;}

/* ---------- programme ---------- */
.prog-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:stretch;}
.prog-day{
  --prog-pad-x:32px;
  border:1px solid var(--line-dark);border-radius:4px;overflow:hidden;background:rgba(255,255,255,.03);
  display:flex;flex-direction:column;height:100%;
}
.prog-day-h{padding:28px 32px;border-bottom:1px solid var(--line-dark);display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.prog-day-h .d{font-family:var(--f-display);font-size:1.7rem;font-weight:700;color:#fff;}
.prog-day-h .n{font-family:var(--f-struct);font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:800;}
.prog-day-h .h{font-family:var(--f-struct);font-size:.86rem;color:var(--gold-light);font-weight:700;letter-spacing:.06em;}
.prog-day ul{list-style:none;padding:28px var(--prog-pad-x) 22px;flex:1;display:flex;flex-direction:column;gap:20px;}
.prog-day li{
  display:flex;align-items:baseline;gap:10px;
  font-size:.9rem;color:#B4C1DC;line-height:1.55;
}
.prog-day li svg{flex-shrink:0;color:var(--gold);margin-top:5px;width:16px;height:16px;}
.prog-day li .prog-time{
  flex-shrink:0;color:var(--gold-light);font-weight:700;white-space:nowrap;
}
.prog-day li .prog-desc{flex:1;min-width:0;}
.prog-dress{
  margin-top:auto;
  display:flex;align-items:baseline;gap:10px;
  padding:18px var(--prog-pad-x) 28px;padding-left:calc(var(--prog-pad-x) + 26px);
  border-top:1px solid var(--line-dark);
  font-size:.9rem;color:#B4C1DC;line-height:1.55;
}
.prog-dress strong{
  flex-shrink:0;
  font-family:var(--f-struct);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold);font-weight:800;
}
.prog-dress span{flex:1;min-width:0;}
.prog-note{margin-top:26px;text-align:center;font-size:.84rem;color:#8A9AC0;}

/* ---------- billetterie ---------- */
.ticket-title{text-align:center;margin-bottom:56px;}
.ticket-title .l1{font-family:var(--f-display);font-size:clamp(2.8rem,8vw,6rem);font-weight:800;text-transform:uppercase;color:var(--navy-900);line-height:.94;letter-spacing:-.01em;}
.ticket-title .l2{font-family:var(--f-display);font-size:clamp(2.4rem,7vw,5.2rem);font-weight:800;text-transform:uppercase;line-height:.94;
  background:linear-gradient(100deg,var(--gold-mid),var(--gold) 40%,#B9813A 90%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.ticket{
  display:grid;grid-template-columns:1.72fr .78fr;
  filter:drop-shadow(0 34px 70px rgba(12,24,52,.28));
}
.ticket-main{
  background:linear-gradient(155deg,var(--navy-800),var(--navy-950));color:#fff;
  border-radius:6px 0 0 6px;padding:46px 48px;position:relative;overflow:hidden;
  display:grid;grid-template-columns:.85fr 1.15fr;gap:36px;align-items:center;
}
.ticket-main::before{
  content:"";position:absolute;inset:14px;border:1px solid rgba(235,207,147,.22);border-radius:3px;pointer-events:none;
}
.ticket-chest{position:relative;z-index:2;}
.ticket-chest img{filter:drop-shadow(0 24px 34px rgba(0,0,0,.5));}
.ticket-body{position:relative;z-index:2;}
.ticket-body .k{font-family:var(--f-struct);font-size:.64rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:800;}
.script-lock{margin:14px 0 20px;}
.script-lock .cdf{font-family:var(--f-accent);font-style:italic;font-weight:600;color:#fff;line-height:1.02;display:block;}
.script-lock .eu{
  display:inline-block;margin-top:8px;background:linear-gradient(100deg,var(--gold-light),var(--gold-mid) 45%,#B9813A);
  transform:skewX(-11deg);padding:3px 20px;box-shadow:0 8px 20px rgba(199,148,71,.25);
}
.script-lock .eu span{display:inline-block;transform:skewX(11deg);font-family:var(--f-accent);font-style:italic;color:#fff;letter-spacing:.02em;}
.script-lock .eu i{display:inline-block;transform:skewX(11deg);margin-left:9px;color:#fff;font-style:normal;opacity:.9;}
.ticket-logo .cdf{font-size:2.35rem;}
.ticket-logo .eu span{font-size:1.35rem;}
.stub-logo .cdf{font-size:1.25rem;}
.stub-logo .eu{padding:2px 14px;}
.stub-logo .eu span{font-size:.85rem;}
.billet-mark{max-width:190px;margin:0 auto 26px;}
.ticket-body p{font-size:.9rem;color:#B4C1DC;}
.ticket-body p b{color:var(--gold-light);}
.ticket-quote{margin-top:22px;border:1px solid var(--line-gold);border-radius:3px;padding:20px 22px;}
.ticket-quote .q{font-family:var(--f-display);font-style:italic;font-size:1.02rem;color:var(--gold-light);}
.ticket-quote p{margin-top:10px;font-size:.84rem;}
.ticket-stub{
  background:linear-gradient(155deg,var(--navy-800),var(--navy-950));color:#fff;
  border-radius:0 6px 6px 0;padding:40px 30px;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  border-left:2px dashed rgba(235,207,147,.35);position:relative;
}
.stub-logo{text-align:center;}
.stub-dates{display:flex;flex-direction:column;gap:8px;width:100%;}
.stub-date{display:flex;align-items:baseline;justify-content:center;gap:12px;}
.stub-date .s{font-family:var(--f-struct);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#93A2C6;font-weight:700;text-align:right;width:56px;}
.stub-date .n{font-family:var(--f-display);font-size:2.5rem;font-weight:700;color:var(--gold-light);line-height:1;}
.stub-mon{font-family:var(--f-display);font-size:1.15rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;font-weight:700;}
.stub-year{font-family:var(--f-accent);font-style:italic;color:var(--gold);font-size:1rem;}
.stub-place{font-family:var(--f-struct);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;font-weight:700;line-height:1.6;}
.stub-code{margin-top:6px;font-family:ui-monospace,Menlo,monospace;font-size:.62rem;letter-spacing:.14em;color:#93A2C6;}
.stub-bars{display:flex;gap:2px;height:38px;align-items:flex-end;justify-content:center;}
.stub-bars i{display:block;background:#E7EDF9;width:2px;height:100%;}
.ticket-actions{margin-top:44px;display:flex;gap:16px;justify-content:center;align-items:center;flex-wrap:wrap;}
.price-list{max-width:820px;margin:48px auto 0;}
.price-list-title{
  font-family:var(--f-struct);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--gold-mid);font-weight:800;text-align:center;margin-bottom:18px;
}
.price-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-light);}
.price-rows li{
  display:flex;align-items:flex-start;justify-content:space-between;gap:24px;
  padding:20px 4px;border-bottom:1px solid var(--line-light);
}
.price-info{min-width:0;}
.price-info strong{
  display:block;font-family:var(--f-accent);font-size:1.08rem;font-weight:600;color:var(--ink);line-height:1.25;
}
.price-info span{display:block;margin-top:6px;font-size:.88rem;color:var(--ink-soft);line-height:1.45;}
.price-amount{
  flex-shrink:0;font-family:var(--f-display);font-size:1.35rem;font-weight:700;color:var(--navy-900);letter-spacing:.02em;
}
.price-note{margin-top:16px;text-align:center;font-size:.82rem;color:#8A9AC0;}

/* ---------- tenues ---------- */
.dress-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.dress{border-radius:6px;overflow:hidden;position:relative;display:grid;grid-template-columns:1.05fr .95fr;min-height:430px;}
.dress-navy{background:linear-gradient(150deg,var(--navy-800),var(--navy-950));color:#fff;}
.dress-beige{background:linear-gradient(150deg,#E6D3B0,#C9A96E);color:#2A2113;}
.dress-copy{padding:70px 30px 38px;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2;}
.dress-copy .day{font-family:var(--f-display);font-size:2.1rem;font-weight:700;line-height:1;}
.dress-copy .sub{font-family:var(--f-struct);margin-top:10px;font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;font-weight:800;}
.dress-navy .sub{color:var(--gold-light);}
.dress-beige .sub{color:#6B5326;}
.dress-copy .hr{width:52px;height:1px;margin:18px 0 22px;}
.dress-navy .hr{background:var(--gold);}
.dress-beige .hr{background:#6B5326;opacity:.5;}
.dress-items{display:flex;flex-direction:column;gap:14px;}
.dress-item{display:flex;gap:13px;align-items:flex-start;}
.dress-item .ic{flex-shrink:0;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.dress-navy .dress-item .ic{background:rgba(235,207,147,.14);color:var(--gold-light);}
.dress-beige .dress-item .ic{background:rgba(43,33,19,.1);color:#5C4720;}
.dress-item .k{font-family:var(--f-struct);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;font-weight:800;}
.dress-navy .dress-item .k{color:var(--gold-light);}
.dress-beige .dress-item .k{color:#6B5326;}
.dress-item .v{font-size:.85rem;margin-top:3px;}
.dress-navy .dress-item .v{color:#B4C1DC;}
.dress-beige .dress-item .v{color:#4A3A1E;}
.dress-photo{position:relative;overflow:hidden;}
.dress-photo img{width:100%;height:100%;object-fit:cover;object-position:center 12%;}
.dress-beige .dress-photo img{filter:sepia(.28) saturate(.95) brightness(1.04);}
.dress-navy .dress-photo img{filter:saturate(1.05) brightness(.96);}
.dress-photo::after{content:"";position:absolute;inset:0;pointer-events:none;}
.dress-navy .dress-photo::after{background:linear-gradient(90deg,rgba(8,23,55,.35) 0%,rgba(8,23,55,.12) 10%,transparent 22%);}
.dress-beige .dress-photo::after{background:linear-gradient(90deg,rgba(227,207,169,.4) 0%,rgba(227,207,169,.14) 10%,transparent 22%);}
.dress-badge{position:absolute;top:22px;left:30px;z-index:3;}
.dress-tip{
  margin-top:28px;border:1px dashed var(--line-gold);border-radius:4px;padding:22px 28px;
  display:flex;gap:16px;align-items:flex-start;background:rgba(199,148,71,.06);
}
.dress-tip svg{flex-shrink:0;color:var(--gold);margin-top:2px;}
.dress-tip p{font-size:.89rem;color:var(--ink-soft);}
.dress-tip b{color:#A9803A;}

/* ---------- packs / hébergement ---------- */
.pack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pack{background:var(--cream-2);border:1px solid var(--line-light);border-radius:4px;padding:34px 30px;transition:.3s;position:relative;}
.pack.feat{border-color:var(--gold);box-shadow:0 22px 50px rgba(199,148,71,.16);}
.pack:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(12,24,52,.09);}
.pack h3{font-size:1.5rem;font-weight:700;margin-top:12px;}
.pack ul{list-style:none;margin-top:20px;display:flex;flex-direction:column;gap:11px;}
.pack li{position:relative;padding-left:20px;font-size:.87rem;color:var(--ink-soft);}
.pack li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--gold);transform:rotate(45deg);}
.info-box{
  margin-top:30px;border:1px dashed var(--line-gold);border-radius:4px;padding:24px 30px;
  display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;background:rgba(199,148,71,.06);
}
.info-box p{font-size:.9rem;color:var(--ink-soft);max-width:620px;}

.hotel-list{
  border:1px solid var(--line-light);border-radius:6px;overflow:hidden;background:var(--cream-2);
  box-shadow:0 18px 48px rgba(12,24,52,.06);
}
.hotel-row{
  display:grid;grid-template-columns:minmax(0,2.2fr) .9fr 1fr .75fr;
  gap:16px;align-items:center;padding:18px 22px;
  border-bottom:1px solid var(--line-light);font-size:.9rem;color:var(--ink-soft);
}
.hotel-row:last-child{border-bottom:none;}
.hotel-row.head{
  background:rgba(12,24,52,.04);padding:14px 22px;
  font-family:var(--f-struct);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;
  font-weight:800;color:var(--navy-700);
}
.hotel-row .name{font-weight:700;color:var(--ink);font-size:.95rem;line-height:1.35;}
.hotel-row a{
  justify-self:start;font-family:var(--f-struct);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  font-weight:800;color:var(--gold);text-decoration:none;border-bottom:1px solid transparent;transition:.2s;
}
.hotel-row a:hover{border-bottom-color:var(--gold);color:var(--navy-800);}
.cat-tag{
  display:inline-block;padding:5px 10px;border-radius:3px;border:1px solid var(--line-gold);
  background:rgba(199,148,71,.08);color:#A9803A;
  font-family:var(--f-struct);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;
}
.notice.on-light{
  background:rgba(12,24,52,.04);border:1px solid var(--line-light);
  display:flex;gap:18px;align-items:flex-start;padding:22px 24px;border-radius:6px;
}
.notice.on-light .lbl{color:var(--gold-mid);}
.notice.on-light p{color:var(--ink-soft);}
.notice.on-light .notice-ic{border-color:var(--gold);color:var(--gold);}
/* ---------- restauration + accès ---------- */
.two-col{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:start;}
.acc-item{padding:24px 0;border-bottom:1px solid var(--line-dark);display:flex;gap:18px;}
.acc-item:last-child{border-bottom:none;}
.acc-item svg{flex-shrink:0;color:var(--gold);margin-top:3px;}
.acc-item h4{font-family:var(--f-struct);font-size:.73rem;letter-spacing:.17em;text-transform:uppercase;font-weight:800;color:#fff;}
.acc-item p{margin-top:8px;font-size:.89rem;color:#A9B6D2;}
.map-card{
  border:1px solid var(--line-gold);border-radius:6px;padding:52px 36px;text-align:center;
  background:radial-gradient(ellipse at 50% 30%,rgba(199,148,71,.14),transparent 68%),rgba(255,255,255,.03);
  position:relative;overflow:hidden;
}
.map-card::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(235,207,147,.16) 1px,transparent 1px);background-size:22px 22px;opacity:.5;}
.map-pin{position:relative;z-index:2;width:54px;height:54px;margin:0 auto 24px;color:var(--gold);}
.map-card .addr{position:relative;z-index:2;font-family:var(--f-display);font-size:1.55rem;font-weight:700;color:#fff;}
.map-card .sub{position:relative;z-index:2;margin-top:10px;font-size:.88rem;color:#A9B6D2;line-height:1.7;}
.map-card .btn{position:relative;z-index:2;margin-top:26px;}

.resto-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch;}
.resto-card{
  display:flex;flex-direction:column;border-radius:6px;overflow:hidden;
  box-shadow:0 22px 50px rgba(12,24,52,.1);background:var(--cream-2);
  border:1px solid var(--line-light);transition:transform .3s,box-shadow .3s;
}
.resto-card:hover{transform:translateY(-4px);box-shadow:0 28px 60px rgba(12,24,52,.14);}
.resto-visual{
  background:linear-gradient(150deg,var(--navy-800),var(--navy-950));color:#fff;
  padding:32px 28px 28px;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;
  position:relative;overflow:hidden;min-height:168px;
}
.resto-visual::before{
  content:"";position:absolute;right:-48px;bottom:-48px;width:160px;height:160px;
  border-radius:50%;border:1px dashed rgba(235,207,147,.28);
}
.resto-visual .tag{position:relative;z-index:1;align-self:flex-start;margin-bottom:auto;}
.resto-visual h3{
  position:relative;z-index:1;font-family:var(--f-accent);font-size:1.75rem;font-weight:700;
  font-style:italic;color:var(--gold-light);line-height:1.15;
}
.resto-visual p{position:relative;z-index:1;font-size:.84rem;color:#B4C1DC;line-height:1.45;}
.resto-body{padding:28px;display:flex;flex-direction:column;gap:14px;flex:1;}
.resto-body p{font-size:.9rem;color:var(--ink-soft);line-height:1.55;}
.resto-body .tag{align-self:flex-start;margin-top:auto;}
/* ---------- FAQ ---------- */
.faq{max-width:860px;margin:0 auto;}
.faq details{border-bottom:1px solid var(--line-light);}
.faq summary{
  cursor:pointer;list-style:none;padding:26px 44px 26px 0;position:relative;
  font-family:var(--f-accent);font-size:1.15rem;font-weight:600;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"";position:absolute;right:8px;top:50%;width:11px;height:11px;
  border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);
  transform:translateY(-70%) rotate(45deg);transition:transform .3s;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(225deg);}
.faq p{padding:0 44px 28px 0;font-size:.93rem;color:var(--ink-soft);}

/* ---------- CTA final ---------- */
.final{
  text-align:center;padding:120px 32px;color:#fff;position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse 800px 400px at 50% 100%, rgba(199,148,71,.22), transparent 66%),
    linear-gradient(160deg,var(--navy-850),var(--navy-950));
}
.final h2{font-family:var(--f-display);font-size:clamp(1.5rem,3.4vw,2.3rem);font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.final .it{font-family:var(--f-accent);font-style:italic;font-size:clamp(1.6rem,3.6vw,2.5rem);color:var(--gold-light);margin-top:12px;font-weight:500;}
.final .btn{margin-top:34px;}

/* ---------- footer ---------- */
footer{background:var(--navy-950);color:#8A9AC0;padding:64px 32px 34px;border-top:1px solid rgba(235,207,147,.14);}
.foot-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;gap:34px;align-items:center;}
.foot-brand{display:flex;align-items:center;gap:13px;}
.foot-logo{max-width:170px;filter:brightness(0) invert(1);opacity:.85;}
.foot-social{display:flex;gap:14px;justify-content:flex-end;align-items:center;}
.foot-social a{width:38px;height:38px;border:1px solid rgba(235,207,147,.24);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold-light);transition:.25s;}
.foot-social a:hover{background:rgba(199,148,71,.15);border-color:var(--gold);transform:translateY(-2px);}
.foot-bottom{max-width:1180px;margin:44px auto 0;padding-top:26px;border-top:1px solid rgba(235,207,147,.1);text-align:center;font-size:.78rem;line-height:2;}
.foot-bottom a{color:var(--gold-light);}

/* ---------- responsive ---------- */
@media(max-width:1080px){
  .nav-links{display:none;}
  .nav-burger{display:block;}
  .nav-in{justify-content:space-between;}
  .nav.open .nav-links{display:flex;position:absolute;top:100%;left:0;right:0;background:var(--navy-950);flex-direction:column;padding:22px 32px;gap:16px;border-bottom:1px solid var(--line-gold);}
  .hero-track{height:260vh;}
  .hero-sticky{
    top:64px;height:calc(100svh - 64px);min-height:0;
    padding:14px 0 18px;overflow:hidden;gap:14px;
    justify-content:center;
  }
  .hero-in{
    grid-template-columns:1fr;text-align:center;padding:0 22px;
    flex:0 1 auto;min-height:0;overflow:visible;
    align-content:center;justify-items:center;gap:12px;
    place-content:center;
  }
  .hero-in.is-armor .hero-copy{
    position:relative;left:auto;top:auto;width:100%;max-width:520px;
  }
  .hero-verse{margin-left:auto;margin-right:auto;text-align:left;font-size:.82rem;margin-top:10px;max-width:420px;}
  .hero-theme{margin-top:12px;font-size:1rem;}
  .hero-cta{justify-content:center;margin-top:14px;gap:10px;position:relative;z-index:2;}
  .hero-cta .btn-outline{display:none;}
  .hero-year{justify-content:center;margin-top:10px;font-size:1.5rem;}
  .hero-year::after{max-width:46px;flex:0 0 46px;}
  .hero-in.is-armor .hero-copy{
    position:relative;left:auto;top:auto;width:100%;max-width:520px;
  }
  .hero-visual{
    order:-1;margin:0 auto;height:auto;max-height:none;
    width:100%;min-height:0;gap:0;
    display:flex;align-items:center;justify-content:center;
    justify-self:center;
  }
  .hero-visual.is-focus{height:auto;min-height:min(460px,58vh);}
  .hero-globe{
    width:min(160px,40vw);top:82%;transform:translate(-50%,-50%);
  }
  .chest-theme{
    top:6px;font-size:clamp(1.22rem,6.4vw,1.7rem);padding:0 14px;
    width:min(94vw,440px);z-index:20;line-height:1.25;
  }
  .chest-stage{
    height:min(460px,58vh);width:100%;max-width:none;
    margin:0 auto;flex-shrink:0;
  }
  .hero-info-banner{
    width:calc(100% - 28px);margin:0 auto;border-radius:14px;flex-shrink:0;
    position:relative;z-index:1;
    grid-template-columns:1fr 1fr 1.2fr;
  }
  .hib-item{padding:12px 8px;gap:4px;}
  .hib-item svg{width:18px;height:18px;margin-bottom:0;}
  .hib-main{font-size:.68rem;letter-spacing:.02em;}
  .hib-sub{font-size:.48rem;letter-spacing:.08em;}
  .hero-chest{
    left:50%;right:auto;bottom:2%;width:88%;height:64%;
    margin-left:0;transform:translate3d(-50%,0,0);
    object-position:center bottom;
    animation:floatMobile 7s ease-in-out infinite;
  }
  .hero-in.is-armor .hero-chest,
  .hero-visual.is-focus .hero-chest{
    width:min(200px,46%);height:34%;bottom:1%;
  }
  .chest-stage.is-locked .hero-chest{animation:none;transform:translate3d(-50%,0,0);}
  @keyframes floatMobile{
    0%,100%{transform:translate3d(-50%,0,0);}
    50%{transform:translate3d(-50%,-10px,0);}
  }
  .relic{width:64px;margin-left:-32px;top:38%;gap:2px;}
  .relic-ic{width:36px;height:36px;}
  .relic-ic svg{width:17px;height:17px;}
  .relic b{font-size:.42rem;}
  .relic em{font-size:.56rem;}
  .c3d{transform:scale(.86);}
  .hero-copy{
    min-height:0;width:100%;max-width:520px;justify-self:center;
    transition:max-height .35s ease,opacity .35s ease,margin .35s ease;
  }
  .hero-copy.is-collapsed{
    max-height:0!important;margin:0!important;padding:0!important;
    overflow:hidden!important;pointer-events:none!important;
  }
  .hero-info-banner.is-collapsed{
    max-height:0!important;margin:0!important;padding:0!important;
    overflow:hidden!important;opacity:0!important;pointer-events:none!important;
    box-shadow:none!important;
  }
  .hero-copy h1{margin-top:6px;font-size:clamp(1.85rem,7.2vw,2.6rem);}
  .hero-copy .eyebrow{font-size:.6rem;}
  .pillars{grid-template-columns:1fr 1fr;}
  .pillar:nth-child(2){border-right:none;}
  .pillar:nth-child(-n+2){border-bottom:1px solid var(--line-light);}
  .mission-track{height:auto;}
  .mission-sticky{position:relative;top:auto;min-height:0;height:auto;overflow:visible;}
  .mission-in{grid-template-columns:1fr;gap:12px;padding:28px 22px 0;text-align:center;align-items:end;}
  .mission-panel{order:1;padding:0;align-self:end;width:100%;}
  .mission-photo{order:2;width:100%;}
  .mission-photo img{max-height:min(calc(100svh - 160px),420px);width:auto;max-width:min(280px,80vw);object-position:top center;}
  .mission-frame{padding:32px 24px 28px;text-align:left;margin:0 auto;}
  .mission-lead{justify-content:flex-start;}
  .mission-type{min-height:10em;font-size:.9rem;}
  .two-col{grid-template-columns:1fr;gap:36px;}
  .resto-grid{grid-template-columns:1fr 1fr;}
  .resto-grid .resto-card:last-child{grid-column:1 / -1;max-width:calc(50% - 12px);justify-self:center;}
}
@media(max-width:820px){
  .sec{padding:82px 0;}
  .wrap,.wrap-narrow{padding:0 22px;}
  .video-frame{margin-bottom:40px;border-radius:4px;}
  .intro-grid,.pack-grid,.prog-grid,.dress-grid{grid-template-columns:1fr;}
  .hotel-row.head{display:none;}
  .hotel-row{
    grid-template-columns:1fr;gap:10px;padding:20px 18px;
  }
  .hotel-row > div:not(.name)::before{
    content:attr(data-label);
    display:block;margin-bottom:4px;
    font-family:var(--f-struct);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;
    font-weight:800;color:var(--navy-700);opacity:.7;
  }
  .hotel-row a{margin-top:4px;}
  .ticket{grid-template-columns:1fr;}
  .ticket-main{border-radius:6px 6px 0 0;grid-template-columns:1fr;text-align:center;padding:36px 28px;}
  .ticket-chest{max-width:260px;margin:0 auto;}
  .ticket-stub{border-radius:0 0 6px 6px;border-left:none;border-top:2px dashed rgba(235,207,147,.35);}
  .price-rows li{flex-direction:column;gap:10px;}
  .price-amount{align-self:flex-end;}
  .dress{grid-template-columns:1fr;min-height:auto;}
  .dress-photo{height:340px;order:-1;}
  .dress-navy .dress-photo::after{background:linear-gradient(0deg,rgba(6,16,41,.55),transparent 42%);}
  .dress-beige .dress-photo::after{background:linear-gradient(0deg,rgba(220,199,159,.55),transparent 42%);}
  .dress-badge{top:16px;left:20px;}
  .resto-grid{grid-template-columns:1fr;}
  .resto-grid .resto-card:last-child{grid-column:auto;max-width:none;justify-self:stretch;}
  .cd-in{gap:22px;}
  .cd-units{gap:18px;}
  .cd-sep{display:none;}
  .foot-in{grid-template-columns:1fr;justify-items:center;text-align:center;}
  .foot-social{justify-content:center;}
}
@media(max-width:560px){
  .nav-in{gap:10px;padding:12px 16px;}
  .brand-logo{height:42px;}
  .brand-txt{font-size:.74rem;}
  .brand-flag{width:20px;height:26px;}
  .nav-cta{padding:10px 14px;font-size:.56rem;letter-spacing:.12em;}
  .nav-burger{padding:7px 9px;}
  .nav-burger span{width:15px;}
  .hero-sticky{padding:12px 0 16px;gap:12px;}
  .chest-stage{height:min(400px,56vh);width:100%;}
  .hero-globe{width:min(150px,44vw);}
  .relic{width:52px;margin-left:-26px;top:38%;}
  .hero-in.is-armor .hero-chest,
  .hero-visual.is-focus .hero-chest{
    width:min(168px,42%);height:32%;bottom:0;
  }
  .relic-ic{width:38px;height:38px;}
  .relic-ic svg{width:17px;height:17px;}
  .hero-theme{font-size:.92rem;}
  .hero-verse{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
  .hero-info-banner{width:calc(100% - 20px);grid-template-columns:1fr 1fr 1.25fr;}
  .hib-item{
    border-right:1px solid rgba(199,148,71,.38);border-bottom:none;
    padding:11px 5px;
  }
  .hib-item:last-child{border-right:none;border-bottom:none;}
  .hib-main{font-size:.58rem;letter-spacing:.01em;}
  .hib-sub{font-size:.42rem;letter-spacing:.06em;}
  .hib-item svg{width:15px;height:15px;}
  .intro-card .stat-inline{white-space:nowrap;}
  .pillars{grid-template-columns:1fr;}
  .pillar{border-right:none;border-bottom:1px solid var(--line-light);}
  .cd-unit{min-width:60px;}
  .cd-unit b{font-size:1.6rem;}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
  .hero-track{height:auto!important;}
  .hero-sticky{position:relative!important;height:auto!important;min-height:0;overflow:visible;}
  .hero-chest{opacity:1!important;filter:drop-shadow(0 50px 70px rgba(0,0,0,.55))!important;}
  .c3d-wrap,.chest-relics,.chest-beam,.chest-arc,.chest-theme,.hero-scroll-hint{display:none!important;}
  .hero-copy,.hero-visual,.hero-info-banner{opacity:1!important;transform:none!important;}
  .mission-track{height:auto!important;}
  .mission-sticky{position:relative!important;height:auto!important;min-height:0;}
  .mission-type.is-typing::after{display:none!important;}
  .mission-sign{opacity:1!important;transform:none!important;}
}

/* reveal */
.no-js .rv{opacity:1!important;transform:none!important;}
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1);}
.rv.in{opacity:1;transform:none;}
