
/* ══════════════════════════════════════════════
   DESIGN TOKENS
══════════════════════════════════════════════ */
:root {
  --red:        #8C0015;
  --red-h:      #a8001a;
  --red-d:      #5a000e;
  --red-a:      rgba(140,0,21,0.08);
  --gold:       #c49a3c;
  --gold-l:     #dfc06a;

  --bg:         #faf8f4;
  --bg1:        #f3ede4;
  --bg2:        #ece4d8;
  --sur:        #ffffff;
  --sur2:       #f8f4ef;

  --t1:         #120a07;
  --t2:         #3c2820;
  --t3:         #7c6458;
  --t4:         #b09888;

  --bdr:        rgba(140,0,21,0.1);
  --bdr2:       rgba(140,0,21,0.05);
  --sh:         rgba(140,0,21,0.12);

  --nav-h:      68px;
  --ease:       cubic-bezier(.4,0,.2,1);
  --spring:     cubic-bezier(.34,1.56,.64,1);
  --out:        cubic-bezier(0,0,.2,1);
}

[data-theme="dark"] {
  --bg:  #0c0608; --bg1: #110810; --bg2: #180e14;
  --sur: #1c1015; --sur2: #231419;
  --t1:  #f2e8e0; --t2:  #c8b0a0; --t3:  #886860; --t4:  #5a4040;
  --bdr: rgba(140,0,21,.22); --bdr2: rgba(140,0,21,.1); --sh: rgba(140,0,21,.25);
}

/* ══════════════════════════════════════════════
   BASE
══════════════════════════════════════════════ */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0 }
html { scroll-behavior:smooth }
body {
  font-family:'Jost',sans-serif;
  background:var(--bg);
  color:var(--t1);
  overflow-x:hidden;
  transition:background .5s var(--ease), color .5s var(--ease);
  cursor:none;
}
::selection { background:var(--red); color:#fff }
::-webkit-scrollbar { width:3px }
::-webkit-scrollbar-track { background:var(--bg) }
::-webkit-scrollbar-thumb { background:var(--red); border-radius:2px }
img { display:block; max-width:100% }
a { text-decoration:none; color:inherit }
@media(hover:none) { body { cursor:auto } }

/* ══════════════════════════════════════════════
   CURSOR
══════════════════════════════════════════════ */
#cur, #cur-ring {
  position:fixed; top:0; left:0;
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  transform:translate(-50%,-50%);
}
#cur { width:8px; height:8px; background:var(--red); transition:width .3s var(--spring), height .3s var(--spring), background .3s }
#cur-ring { width:34px; height:34px; border:1px solid var(--red); opacity:.4; transition:width .35s var(--spring), height .35s var(--spring), opacity .3s }
#cur.big { width:18px; height:18px }
#cur-ring.big { width:54px; height:54px; opacity:.15 }
@media(hover:none) { #cur,#cur-ring { display:none } }

/* ══════════════════════════════════════════════
   TOP NAV
══════════════════════════════════════════════ */
#nav {
  position:fixed; inset:0 0 auto 0;
  height:var(--nav-h);
  z-index:500;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  padding:0 clamp(1.2rem,4vw,3rem);
  background:rgba(250,248,244,0.88);
  backdrop-filter:blur(22px) saturate(160%);
  -webkit-backdrop-filter:blur(22px) saturate(160%);
  border-bottom:1px solid var(--bdr2);
  transition:background .5s var(--ease), box-shadow .4s var(--ease);
}
[data-theme="dark"] #nav { background:rgba(12,6,8,0.88) }
#nav.shadow { box-shadow:0 4px 30px -4px var(--sh) }

.nav-logo {
  display:flex; align-items:center; gap:10px; flex-shrink:0;
}
.nav-logo-img {
  width:34px; height:34px; object-fit:contain;
  filter:invert(8%) sepia(90%) saturate(600%) hue-rotate(332deg) brightness(55%);
  transition:transform .6s var(--spring), filter .3s;
}
[data-theme="dark"] .nav-logo-img {
  filter:invert(20%) sepia(90%) saturate(700%) hue-rotate(325deg) brightness(80%);
}
.nav-logo:hover .nav-logo-img { transform:rotate(-12deg) scale(1.08) }
.nav-logo-name {
  font-family:'Cormorant',serif; font-size:1.05rem; font-weight:700;
  color:var(--red); letter-spacing:.02em; display:block; line-height:1.1;
}
.nav-logo-city {
  font-size:.54rem; font-weight:300; letter-spacing:.22em;
  text-transform:uppercase; color:var(--t4); display:block;
}

.nav-center {
  display:flex; align-items:center; justify-content:center; gap:2rem;
  list-style:none;
}
.nav-center a {
  font-size:.72rem; font-weight:400; letter-spacing:.16em;
  text-transform:uppercase; color:var(--t3);
  position:relative; padding:2px 0; transition:color .3s;
}
.nav-center a::after {
  content:''; position:absolute; bottom:-2px; left:0;
  width:0; height:1px; background:var(--red);
  transition:width .35s var(--out);
}
.nav-center a:hover { color:var(--red) }
.nav-center a:hover::after { width:100% }

.nav-right { display:flex; align-items:center; gap:.6rem; flex-shrink:0 }

.nav-theme {
  width:34px; height:34px; border-radius:50%;
  background:none; border:1px solid var(--bdr);
  color:var(--t3); cursor:none;
  display:grid; place-items:center; font-size:.9rem;
  transition:all .3s var(--spring);
}
.nav-theme:hover { background:var(--red); color:#fff; border-color:var(--red); transform:scale(1.1) rotate(18deg) }

.nav-cta {
  height:34px; padding:0 1.2rem;
  background:var(--red); color:#fff;
  border:none; border-radius:2px;
  font-family:'Jost',sans-serif; font-size:.7rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase;
  cursor:none; display:flex; align-items:center; gap:6px;
  transition:all .3s var(--ease); position:relative; overflow:hidden;
}
.nav-cta::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to right, transparent, rgba(255,255,255,.15), transparent);
  transform:translateX(-100%); transition:transform .5s var(--ease);
}
.nav-cta:hover { background:var(--red-h); box-shadow:0 4px 20px var(--sh); transform:translateY(-1px) }
.nav-cta:hover::before { transform:translateX(100%) }

.nav-burger { display:none; background:none; border:none; cursor:none; padding:4px; flex-direction:column; gap:5px }
.nav-burger span { display:block; width:20px; height:1.5px; background:var(--t1); border-radius:2px; transition:all .4s var(--ease) }

.drawer {
  position:fixed; inset:var(--nav-h) 0 0 0;
  background:var(--sur); z-index:490;
  display:flex; flex-direction:column; justify-content:center; align-items:center; gap:1.8rem;
  transform:translateX(100%); transition:transform .5s var(--ease);
}
.drawer.open { transform:translateX(0) }
.drawer a { font-family:'Cormorant',serif; font-size:2.2rem; font-style:italic; color:var(--t1); transition:color .3s }
.drawer a:hover { color:var(--red) }

/* ══════════════════════════════════════════════
   TICKER
══════════════════════════════════════════════ */
.ticker { background:var(--red); overflow:hidden; padding:9px 0; z-index:2; position:relative }
.ticker-track { display:inline-flex; white-space:nowrap; animation:tick 32s linear infinite }
.ticker-track:hover { animation-play-state:paused }
.ticker-item { font-size:.65rem; font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.85); padding:0 3rem }
.ticker-item::before { content:'♩ '; opacity:.45 }
@keyframes tick { to { transform:translateX(-50%) } }

/* ══════════════════════════════════════════════
   HERO
══════════════════════════════════════════════ */
#hero {
  min-height:100vh; padding-top:var(--nav-h);
  display:grid; grid-template-columns:1fr 1fr;
  position:relative; overflow:hidden;
}
#hero::before {
  content:''; position:absolute; inset:0;
  background:repeating-linear-gradient(0deg,transparent 0px,transparent 79px,var(--bdr2) 80px);
  pointer-events:none; z-index:0; opacity:.6;
}

.hero-left {
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(3rem,8vh,6rem) clamp(2rem,5vw,5rem);
  position:relative; z-index:2;
}

.h-eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:2rem; opacity:0; animation:fadeUp .8s .1s var(--out) forwards }
.h-eyebrow-dot { width:7px; height:7px; background:var(--red); border-radius:50%; animation:pulse 2.4s ease-in-out infinite }
@keyframes pulse { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.6);opacity:.5} }
.h-eyebrow-text { font-size:.65rem; font-weight:400; letter-spacing:.3em; text-transform:uppercase; color:var(--t3) }

.h-title {
  font-family:'Cormorant',serif;
  font-size:clamp(3.8rem,8vw,7.5rem);
  font-weight:700; line-height:.92; letter-spacing:-.03em;
  opacity:0; animation:fadeUp 1s .25s var(--out) forwards;
}
.h-title .t-normal { display:block; color:var(--t1) }
.h-title .t-italic { display:block; font-style:italic; color:var(--red); padding-left:.8rem }
.h-title .t-outline {
  display:block; -webkit-text-stroke:1.5px currentColor;
  color:transparent; font-size:85%; padding-left:2rem;
}
[data-theme="dark"] .h-title .t-outline { -webkit-text-stroke-color:var(--t1) }

.h-line { width:0; height:1px; background:linear-gradient(90deg,var(--red),var(--gold),transparent); margin:2rem 0; animation:growLine 1.2s .6s var(--out) forwards }
@keyframes growLine { to { width:min(380px,80%) } }

.h-desc {
  font-family:'Cormorant',serif; font-size:clamp(1.05rem,1.6vw,1.22rem);
  font-weight:300; font-style:italic; color:var(--t2); line-height:1.8; max-width:440px;
  opacity:0; animation:fadeUp 1s .45s var(--out) forwards;
}
.h-desc strong { font-style:normal; font-weight:700; color:var(--red) }

.h-btns { display:flex; gap:.8rem; flex-wrap:wrap; margin-top:2.2rem; opacity:0; animation:fadeUp 1s .6s var(--out) forwards }

.btn-fill {
  display:inline-flex; align-items:center; gap:8px;
  height:46px; padding:0 1.8rem;
  background:var(--red); color:#fff;
  border:none; border-radius:2px;
  font-family:'Jost',sans-serif; font-size:.78rem; font-weight:500;
  letter-spacing:.13em; text-transform:uppercase;
  cursor:none; transition:all .35s var(--ease); position:relative; overflow:hidden;
}
.btn-fill:hover { transform:translateY(-2px); box-shadow:0 10px 32px var(--sh); background:var(--red-h) }
.btn-fill .arr { width:22px; height:22px; border-radius:50%; background:rgba(255,255,255,.2); display:grid; place-items:center; font-size:.8rem; transition:transform .3s var(--spring) }
.btn-fill:hover .arr { transform:translateX(4px) }

.btn-line {
  display:inline-flex; align-items:center; gap:8px;
  height:46px; padding:0 1.8rem;
  background:transparent; color:var(--t1);
  border:1px solid var(--bdr); border-radius:2px;
  font-family:'Jost',sans-serif; font-size:.78rem; font-weight:400;
  letter-spacing:.13em; text-transform:uppercase;
  cursor:none; transition:all .35s var(--ease);
}
.btn-line:hover { border-color:var(--red); color:var(--red); background:var(--red-a) }

.h-stats { display:flex; gap:2rem; margin-top:3rem; padding-top:2rem; border-top:1px solid var(--bdr2); opacity:0; animation:fadeUp 1s .75s var(--out) forwards }
.h-stat-n { font-family:'Cormorant',serif; font-size:2.4rem; font-weight:700; color:var(--red); line-height:1; display:block }
.h-stat-l { font-size:.62rem; font-weight:300; letter-spacing:.18em; text-transform:uppercase; color:var(--t4); display:block; margin-top:3px }

.hero-right { position:relative; overflow:hidden }
.hero-img { position:absolute; inset:0 }
.hero-img img { width:100%; height:100%; object-fit:cover; animation:heroZoom 18s ease-in-out infinite alternate }
@keyframes heroZoom { from{transform:scale(1.04)} to{transform:scale(1.1)} }
.hero-img-over {
  position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(140,0,21,.6) 0%,rgba(90,0,14,.3) 45%,transparent 100%);
}
.hero-logo-wm {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:54%; opacity:.1; pointer-events:none;
  animation:float 7s ease-in-out infinite;
  filter:brightness(0) invert(1);
}
@keyframes float { 0%,100%{transform:translate(-50%,-50%) scale(1) rotate(-8deg)} 50%{transform:translate(-50%,-52%) scale(1.04) rotate(-8deg)} }

.hero-card {
  position:absolute; bottom:2.5rem; left:-12px; z-index:5;
  background:var(--sur); padding:1.3rem 1.6rem;
  border-left:3px solid var(--red); max-width:255px;
  box-shadow:0 16px 48px rgba(0,0,0,.22);
  animation:slideCard .9s 1.2s var(--spring) both;
}
@keyframes slideCard { from{opacity:0;transform:translateX(-28px)} to{opacity:1;transform:translateX(0)} }
.hc-tag { font-size:.58rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:5px; display:block }
.hc-name { font-family:'Cormorant',serif; font-size:1rem; font-weight:700; color:var(--t1); line-height:1.2; margin-bottom:3px }
.hc-date { font-size:.75rem; color:var(--t3) }

.hero-scroll {
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:6px;
  z-index:3; opacity:0; animation:fadeIn 1s 1.5s forwards;
}
.hero-scroll-text { font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; color:var(--t4); writing-mode:vertical-rl }
.hero-scroll-line { width:1px; height:48px; background:linear-gradient(to bottom,var(--red),transparent); animation:scrollLine 2s ease-in-out infinite }
@keyframes scrollLine { 0%,100%{opacity:1;transform:scaleY(1)} 50%{opacity:.3;transform:scaleY(.5)} }

/* ══════════════════════════════════════════════
   SHARED
══════════════════════════════════════════════ */
.sp { padding:clamp(5rem,10vh,8rem) clamp(1.5rem,6vw,5rem) }

.eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:.65rem; font-weight:500; letter-spacing:.3em; text-transform:uppercase; color:var(--red); margin-bottom:.9rem }
.eyebrow::before { content:''; width:18px; height:1px; background:var(--red) }

.stitle { font-family:'Cormorant',serif; font-size:clamp(2.4rem,4.5vw,4rem); font-weight:700; line-height:1.05; letter-spacing:-.02em; margin-bottom:1.2rem }
.stitle em { font-style:italic; color:var(--red) }
.stitle.white { color:#fff }
.stitle.white em { color:var(--gold-l) }

.sbody { font-size:.97rem; font-weight:300; color:var(--t2); line-height:1.85; max-width:520px }

.rv { opacity:0; transform:translateY(28px); transition:opacity .85s var(--out), transform .85s var(--out) }
.rv.in { opacity:1; transform:translateY(0) }
.rv.froml { transform:translateX(-24px) }
.rv.froml.in { transform:translateX(0) }
.d1{transition-delay:.1s} .d2{transition-delay:.2s} .d3{transition-delay:.3s}
.d4{transition-delay:.4s} .d5{transition-delay:.5s} .d6{transition-delay:.6s}

/* ══════════════════════════════════════════════
   ABOUT
══════════════════════════════════════════════ */
#about { background:var(--bg1); display:grid; grid-template-columns:1fr 1.15fr }

.about-photo { position:relative; min-height:580px; overflow:hidden }
.about-photo img { width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease) }
#about:hover .about-photo img { transform:scale(1.04) }
.about-photo::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to right,transparent 55%,var(--bg1));
}
[data-theme="dark"] .about-photo::after { background:linear-gradient(to right,rgba(0,0,0,.2) 0%,var(--bg1) 80%) }

.spin-badge { position:absolute; top:50%; right:0; transform:translate(50%,-50%); width:100px; height:100px; z-index:10 }
.spin-badge-ring {
  width:100%; height:100%; border-radius:50%;
  background:var(--red); display:flex; align-items:center; justify-content:center;
  animation:spinB 18s linear infinite; border:3px solid var(--bg1);
  box-shadow:0 6px 28px var(--sh);
}
@keyframes spinB { to{transform:rotate(360deg)} }
.spin-badge-inner { animation:spinBI 18s linear infinite; text-align:center; color:#fff }
@keyframes spinBI { to{transform:rotate(-360deg)} }
.sbi-n { font-family:'Cormorant',serif; font-size:1.9rem; font-weight:700; line-height:1; display:block }
.sbi-t { font-size:.46rem; letter-spacing:.16em; text-transform:uppercase; display:block; line-height:1.4 }

.about-content { padding:clamp(4rem,8vh,6rem) clamp(2rem,4vw,4rem); display:flex; flex-direction:column; justify-content:center }
.about-content .sbody { margin-bottom:2.5rem }

.pillars { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin-top:1.5rem }
.pillar { background:var(--sur); padding:1.2rem 1.4rem; border-radius:2px; position:relative; overflow:hidden; transition:all .4s var(--ease) }
.pillar::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--out) }
.pillar:hover::before { transform:scaleX(1) }
.pillar:hover { box-shadow:0 8px 28px var(--sh); transform:translateY(-3px) }
.p-icon { font-size:1.5rem; margin-bottom:.5rem; display:block }
.p-name { font-family:'Cormorant',serif; font-size:.95rem; font-weight:700; margin-bottom:3px }
.p-text { font-size:.76rem; color:var(--t3); line-height:1.55 }

/* ══════════════════════════════════════════════
   ACTIVITÉS bento
══════════════════════════════════════════════ */
#activities { background:var(--bg) }
.acts-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:3rem }

.bento { display:grid; grid-template-columns:repeat(12,1fr); grid-template-rows:280px 280px; gap:10px }
.b1{grid-column:1/6;grid-row:1/3} .b2{grid-column:6/9;grid-row:1/2} .b3{grid-column:9/13;grid-row:1/2}
.b4{grid-column:6/10;grid-row:2/3} .b5{grid-column:10/13;grid-row:2/3}

.bcard { background:var(--sur); border-radius:4px; padding:2rem; display:flex; flex-direction:column; position:relative; overflow:hidden; cursor:none; transition:transform .45s var(--spring),box-shadow .45s var(--ease); border:1px solid var(--bdr2) }
.bcard:hover { transform:translateY(-6px); box-shadow:0 20px 50px var(--sh); border-color:var(--bdr) }

.bcard.red { background:var(--red); border-color:transparent }
.bcard.red .bc-title,.bcard.red .bc-n { color:#fff }
.bcard.red .bc-desc { color:rgba(255,255,255,.78) }
.bcard.red .bc-n { color:rgba(255,255,255,.1) }
.bcard.red .tag { background:rgba(255,255,255,.12); color:rgba(255,255,255,.85); border-color:transparent }

.bc-n { font-family:'Cormorant',serif; font-size:5rem; font-weight:700; color:var(--bdr2); line-height:1; position:absolute; top:.8rem; right:1.2rem; letter-spacing:-.05em; pointer-events:none; transition:transform .4s var(--spring) }
.bcard:hover .bc-n { transform:scale(1.08) rotate(-3deg) }
.bc-icon { font-size:2rem; display:block; margin-bottom:auto; position:relative; z-index:1; transition:transform .4s var(--spring) }
.bcard:hover .bc-icon { transform:scale(1.2) rotate(-8deg) }
.bc-title { font-family:'Cormorant',serif; font-size:1.2rem; font-weight:700; margin-top:1rem; margin-bottom:.4rem; position:relative; z-index:1; line-height:1.2 }
.bcard.red .bc-title { font-size:1.8rem }
.bc-desc { font-size:.8rem; color:var(--t3); line-height:1.6; position:relative; z-index:1 }

.tags { display:flex; flex-wrap:wrap; gap:4px; margin-top:1rem; position:relative; z-index:1 }
.tag { font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; padding:2px 8px; border-radius:1px; border:1px solid var(--bdr); color:var(--red); background:var(--red-a) }

/* ══════════════════════════════════════════════
   COURS
══════════════════════════════════════════════ */
#courses { background:var(--bg1) }
.courses-layout { display:grid; grid-template-columns:1fr 2fr; gap:5rem; align-items:start }

.c-infobox { background:var(--red); color:#fff; padding:2rem; border-radius:2px; margin-top:2rem }
.c-infobox-item { display:flex; align-items:flex-start; gap:10px; padding:.65rem 0; border-bottom:1px solid rgba(255,255,255,.1); font-size:.84rem }
.c-infobox-item:last-child { border:none; padding-bottom:0 }
.ci-icon { font-size:.95rem; flex-shrink:0; margin-top:2px }
.ci-label { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.5); display:block }
.ci-val { font-weight:500 }

.courses-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px }
.ccard { background:var(--sur); padding:1.5rem 1.2rem; border-radius:2px; text-align:center; position:relative; overflow:hidden; cursor:none; transition:all .4s var(--spring); border:1px solid var(--bdr2) }
.ccard::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--red); transform:scaleX(0); transition:transform .4s var(--out) }
.ccard:hover::after { transform:scaleX(1) }
.ccard:hover { transform:translateY(-5px); box-shadow:0 12px 36px var(--sh); border-color:var(--bdr) }
.ccard:hover .cc-emoji { transform:scale(1.3) rotate(-10deg) }
.ccard:hover .cc-badge { background:var(--red); color:#fff }
.cc-emoji { font-size:2.2rem; display:block; margin-bottom:.8rem; transition:transform .4s var(--spring) }
.cc-name { font-family:'Cormorant',serif; font-size:.95rem; font-weight:700; margin-bottom:3px }
.cc-level { font-size:.62rem; letter-spacing:.15em; text-transform:uppercase; color:var(--t4) }
.cc-badge { display:inline-block; margin-top:8px; font-size:.58rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; padding:2px 8px; background:var(--red-a); color:var(--red); border-radius:1px; transition:all .3s }

/* ══════════════════════════════════════════════
   AGENDA (dark section)
══════════════════════════════════════════════ */
#agenda { background:var(--t1); color:#fff; position:relative; overflow:hidden }
[data-theme="dark"] #agenda { background:#050203 }
#agenda::before { content:'𝄞'; position:absolute; right:-3rem; top:-6rem; font-size:36rem; color:rgba(255,255,255,.025); pointer-events:none; user-select:none; line-height:1 }
#agenda .eyebrow { color:var(--gold-l) }
#agenda .eyebrow::before { background:var(--gold-l) }

.agenda-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:5rem; align-items:start; margin-top:3rem }

.feat { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); border-radius:4px; padding:2.5rem; position:relative; overflow:hidden; transition:all .4s var(--ease) }
.feat:hover { background:rgba(255,255,255,.08); box-shadow:0 0 60px rgba(140,0,21,.3) }
.feat-ribbon { position:absolute; top:1.4rem; right:-2.6rem; background:var(--red); color:#fff; font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; padding:4px 3.5rem; transform:rotate(45deg); font-weight:600 }
.feat-date { display:flex; align-items:baseline; gap:10px; margin-bottom:1.2rem }
.feat-day { font-family:'Cormorant',serif; font-size:4.2rem; font-weight:700; color:var(--gold-l); line-height:1 }
.feat-month { font-family:'Cormorant',serif; font-size:1.3rem; font-style:italic; color:rgba(255,255,255,.55) }
.feat-title { font-family:'Cormorant',serif; font-size:1.6rem; font-weight:700; color:#fff; margin-bottom:.5rem; line-height:1.2 }
.feat-place { font-size:.78rem; color:rgba(255,255,255,.45); margin-bottom:1.2rem; display:flex; align-items:center; gap:5px }
.feat-desc { font-size:.88rem; color:rgba(255,255,255,.68); line-height:1.8; margin-bottom:2rem }

.btn-gold { display:inline-flex; align-items:center; gap:8px; height:44px; padding:0 1.6rem; background:var(--gold); color:#1a0808; border:none; border-radius:2px; font-family:'Jost',sans-serif; font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; cursor:none; transition:all .3s var(--spring) }
.btn-gold:hover { background:var(--gold-l); transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.3) }

.evlist { display:flex; flex-direction:column }
.evrow { display:grid; grid-template-columns:58px 1fr 44px auto; gap:.8rem; align-items:center; padding:1.2rem 1rem; border-bottom:1px solid rgba(255,255,255,.06); border-radius:2px; cursor:none; position:relative; overflow:hidden; transition:all .3s var(--ease) }
.evrow::before { content:''; position:absolute; left:0; top:0; bottom:0; width:0; background:rgba(255,255,255,.04); transition:width .4s var(--out) }
.evrow:hover::before { width:100% }
.evrow:hover { padding-left:1.6rem }
.evrow:hover .ev-title { color:var(--gold-l) }
.ev-date { background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1); border-radius:2px; padding:.5rem; text-align:center }
.ev-d { font-family:'Cormorant',serif; font-size:1.4rem; font-weight:700; color:var(--gold-l); line-height:1; display:block }
.ev-m { font-size:.53rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.35) }
.ev-title { font-family:'Cormorant',serif; font-size:1rem; font-weight:600; color:#fff; margin-bottom:2px; transition:color .3s; position:relative; z-index:1 }
.ev-place { font-size:.72rem; color:rgba(255,255,255,.38); position:relative; z-index:1 }
.chip { font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; padding:3px 10px; border-radius:20px; font-weight:600; white-space:nowrap; position:relative; z-index:1 }
.chip.concert { background:rgba(140,0,21,.7); color:#fff }
.chip.gratuit { background:rgba(196,154,60,.2); color:var(--gold-l) }
.chip.presta { background:rgba(255,255,255,.1); color:rgba(255,255,255,.65) }

/* ══════════════════════════════════════════════
   TESTIMONIALS
══════════════════════════════════════════════ */
#testimonials { background:var(--bg); overflow:hidden }
.test-track-wrap { margin:2.5rem calc(-1*clamp(1.5rem,6vw,5rem)) 0; overflow:hidden }
.test-track { display:inline-flex; gap:1.2rem; padding:0 clamp(1.5rem,6vw,5rem) 1.5rem; animation:slideT 28s linear infinite }
.test-track:hover { animation-play-state:paused }
@keyframes slideT { to{transform:translateX(-50%)} }
.tcard { background:var(--sur); min-width:320px; padding:2rem; border-radius:4px; border:1px solid var(--bdr2); flex-shrink:0; transition:all .4s var(--ease) }
.tcard:hover { border-color:var(--bdr); box-shadow:0 10px 36px var(--sh); transform:translateY(-4px) }
.t-stars { color:var(--gold); font-size:.8rem; letter-spacing:2px; margin-bottom:.9rem }
.t-quote { font-size:2.6rem; font-family:'Cormorant',serif; color:var(--red); opacity:.25; line-height:.8; margin-bottom:.7rem }
.t-text { font-family:'Cormorant',serif; font-style:italic; font-size:.98rem; color:var(--t2); line-height:1.8; margin-bottom:1.4rem }
.t-author { display:flex; align-items:center; gap:10px; border-top:1px solid var(--bdr2); padding-top:1.1rem }
.t-av { width:38px; height:38px; background:var(--red); border-radius:50%; display:grid; place-items:center; color:#fff; font-family:'Cormorant',serif; font-size:1rem; font-weight:700; flex-shrink:0 }
.t-name { font-weight:500; font-size:.85rem }
.t-role { font-size:.68rem; color:var(--t4); letter-spacing:.05em }

/* ══════════════════════════════════════════════
   CONTACT
══════════════════════════════════════════════ */
#contact { display:grid; grid-template-columns:1fr 1.2fr; background:var(--bg) }

.contact-l { background:var(--red); color:#fff; padding:clamp(4rem,8vh,6rem) clamp(2rem,5vw,4rem); display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden }
.contact-l::before { content:'𝄞'; position:absolute; bottom:-4rem; right:-2rem; font-size:22rem; color:rgba(255,255,255,.05); pointer-events:none; user-select:none; line-height:1 }
.contact-l .eyebrow { color:rgba(255,255,255,.6) }
.contact-l .eyebrow::before { background:rgba(255,255,255,.4) }
.contact-l .sbody { color:rgba(255,255,255,.72); max-width:360px }
.c-items { display:flex; flex-direction:column; gap:1rem; margin-top:2.2rem }
.c-item { display:flex; align-items:center; gap:12px; font-size:.88rem; color:rgba(255,255,255,.82) }
.c-icon { width:40px; height:40px; background:rgba(255,255,255,.12); border-radius:50%; display:grid; place-items:center; font-size:1rem; flex-shrink:0; transition:background .3s }
.c-item:hover .c-icon { background:rgba(255,255,255,.22) }
.c-lbl { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.45); display:block }
.c-val { font-weight:500 }
.socials { display:flex; gap:8px; margin-top:1.8rem }
.soc { width:38px; height:38px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15); border-radius:50%; display:grid; place-items:center; color:rgba(255,255,255,.65); font-size:.78rem; font-weight:600; transition:all .3s var(--spring) }
.soc:hover { background:rgba(255,255,255,.22); transform:translateY(-3px) scale(1.1); color:#fff }

.contact-r { padding:clamp(4rem,8vh,6rem) clamp(2rem,5vw,4rem); background:var(--sur); display:flex; flex-direction:column; justify-content:center }
.form-h { font-family:'Cormorant',serif; font-size:1.5rem; font-weight:700; margin-bottom:2rem; padding-bottom:1.2rem; border-bottom:1px solid var(--bdr2) }
.fg { margin-bottom:1.2rem }
.frow { display:grid; grid-template-columns:1fr 1fr; gap:1rem }
.fl { display:block; font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:var(--t4); font-weight:500; margin-bottom:5px }
.fi { width:100%; background:var(--bg); border:1px solid var(--bdr); color:var(--t1); padding:.8rem .95rem; border-radius:2px; outline:none; font-family:'Jost',sans-serif; font-size:.88rem; font-weight:300; transition:all .3s var(--ease) }
.fi:focus { border-color:var(--red); box-shadow:0 0 0 3px rgba(140,0,21,.07); background:var(--sur) }
.fi::placeholder { color:var(--t4) }
.fsel { width:100%; background:var(--bg); border:1px solid var(--bdr); color:var(--t1); padding:.8rem .95rem; border-radius:2px; outline:none; font-family:'Jost',sans-serif; font-size:.88rem; font-weight:300; cursor:none; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238C0015' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .9rem center; transition:all .3s var(--ease) }
.fsel:focus { border-color:var(--red); box-shadow:0 0 0 3px rgba(140,0,21,.07) }
.fsub { width:100%; background:var(--red); color:#fff; border:none; border-radius:2px; padding:1rem; margin-top:.4rem; font-family:'Jost',sans-serif; font-size:.78rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; cursor:none; transition:all .35s var(--ease); position:relative; overflow:hidden }
.fsub::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent); transform:translateX(-100%); transition:transform .6s var(--ease) }
.fsub:hover::after { transform:translateX(100%) }
.fsub:hover { background:var(--red-h); box-shadow:0 6px 24px var(--sh) }

/* ══════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════ */
footer { background:var(--t1); color:rgba(255,255,255,.55); padding:4rem clamp(1.5rem,6vw,5rem) 2rem }
[data-theme="dark"] footer { background:#030102 }
.ft-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:3rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.07); margin-bottom:2rem }
.ft-logo-row { display:flex; align-items:center; gap:10px; margin-bottom:1rem }
.ft-logo-img { width:30px; height:30px; object-fit:contain; filter:invert(18%) sepia(90%) saturate(700%) hue-rotate(325deg) brightness(85%) }
.ft-logo-name { font-family:'Cormorant',serif; font-size:1rem; color:#fff; font-weight:700 }
.ft-desc { font-size:.8rem; line-height:1.85; max-width:270px; margin-bottom:1.4rem }
.ft-col-h { font-family:'Cormorant',serif; font-size:.88rem; color:#fff; font-weight:700; margin-bottom:1rem }
.ft-links { list-style:none; display:flex; flex-direction:column; gap:.5rem }
.ft-links a { color:rgba(255,255,255,.4); font-size:.8rem; transition:color .3s }
.ft-links a:hover { color:var(--red) }
.ft-ci { display:flex; align-items:flex-start; gap:8px; margin-bottom:.6rem; font-size:.78rem; color:rgba(255,255,255,.4) }
.ft-bottom { display:flex; justify-content:space-between; align-items:center; font-size:.7rem; color:rgba(255,255,255,.22) }
.ft-bottom a { color:rgba(255,255,255,.3); transition:color .3s }
.ft-bottom a:hover { color:var(--red) }

.btt { position:fixed; bottom:2rem; right:2rem; width:42px; height:42px; border-radius:50%; background:var(--red); color:#fff; border:none; display:grid; place-items:center; font-size:1rem; cursor:none; box-shadow:0 4px 18px var(--sh); transform:translateY(70px); opacity:0; transition:all .4s var(--spring); z-index:200 }
.btt.show { transform:translateY(0); opacity:1 }
.btt:hover { transform:translateY(-4px) scale(1.1); box-shadow:0 8px 26px var(--sh) }

/* ══════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════ */
@media(max-width:1100px) {
  .bento { grid-template-columns:repeat(2,1fr); grid-template-rows:auto }
  .b1,.b2,.b3,.b4,.b5 { grid-column:auto; grid-row:auto }
  .b1 { grid-column:1/3 }
  .courses-layout { grid-template-columns:1fr; gap:3rem }
  .agenda-grid { grid-template-columns:1fr; gap:3rem }
}
@media(max-width:900px) {
  #hero { grid-template-columns:1fr }
  .hero-right { height:45vh }
  #about, #contact { grid-template-columns:1fr }
  .about-photo { min-height:320px }
  .spin-badge { top:2rem; right:2rem; transform:none }
  .about-photo::after { background:linear-gradient(to bottom,transparent 50%,var(--bg1)) }
  .ft-grid { grid-template-columns:1fr 1fr }
}
@media(max-width:680px) {
  .nav-center { display:none }
  .nav-cta.desktop { display:none }
  .nav-burger { display:flex }
  .h-title { font-size:clamp(2.8rem,11vw,4rem) }
  .bento { grid-template-columns:1fr }
  .b1 { grid-column:auto }
  .courses-grid { grid-template-columns:repeat(2,1fr) }
  .frow { grid-template-columns:1fr }
  .ft-grid { grid-template-columns:1fr }
  .ft-bottom { flex-direction:column; gap:.5rem; text-align:center }
  .acts-header { flex-direction:column; align-items:flex-start; gap:1rem }
}

@keyframes fadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn  { from{opacity:0} to{opacity:1} }

/* ══════════════════════════════════════════════
   HERO EVENT BANNER
══════════════════════════════════════════════ */
.hero-event-banner {
  background:linear-gradient(135deg, var(--red-d) 0%, var(--red) 60%, #a8001a 100%);
  position:relative; overflow:hidden; z-index:1;
}
.hero-event-banner::before {
  content:'𝄞';
  position:absolute; right:-1rem; top:-3rem;
  font-size:18rem; color:rgba(255,255,255,.04);
  pointer-events:none; line-height:1;
}
.heb-inner {
  display:flex; align-items:center; justify-content:space-between;
  padding:.9rem clamp(1.5rem,6vw,5rem); gap:2rem; flex-wrap:wrap;
}
.heb-left { display:flex; flex-direction:column; gap:.25rem }
.heb-eyebrow {
  font-size:.58rem; font-weight:600; letter-spacing:.25em;
  text-transform:uppercase; color:rgba(255,255,255,.55);
}
.heb-title {
  font-family:'Cormorant',serif; font-size:clamp(1.1rem,2.5vw,1.5rem);
  font-weight:700; color:#fff; line-height:1.1;
}
.heb-meta { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap }
.heb-date, .heb-place { font-size:.78rem; color:rgba(255,255,255,.75) }
.heb-sep { color:rgba(255,255,255,.3) }
.heb-right { display:flex; align-items:center; gap:1.2rem; flex-shrink:0 }
.heb-poster-wrap { position:relative; cursor:pointer }
.heb-poster-thumb {
  height:64px; width:auto; border-radius:4px;
  box-shadow:0 4px 16px rgba(0,0,0,.4);
  transition:transform .3s var(--spring), box-shadow .3s;
  border:2px solid rgba(255,255,255,.2);
  display:block;
}
.heb-poster-wrap:hover .heb-poster-thumb {
  transform:scale(1.05) rotate(-1deg);
  box-shadow:0 8px 28px rgba(0,0,0,.5);
}
.heb-poster-hint {
  position:absolute; inset:0; background:rgba(0,0,0,.55);
  color:#fff; font-size:.55rem; letter-spacing:.1em; text-transform:uppercase;
  display:flex; align-items:center; justify-content:center;
  border-radius:4px; opacity:0; transition:opacity .25s;
  text-align:center; padding:4px;
}
.heb-poster-wrap:hover .heb-poster-hint { opacity:1 }
.heb-cta {
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(255,255,255,.15); color:#fff;
  border:1px solid rgba(255,255,255,.3); border-radius:3px;
  padding:.55rem 1.2rem; font-family:'Jost',sans-serif;
  font-size:.72rem; font-weight:500; letter-spacing:.1em;
  text-transform:uppercase; transition:all .3s var(--spring);
  white-space:nowrap;
}
.heb-cta:hover { background:rgba(255,255,255,.25); border-color:rgba(255,255,255,.5); transform:translateY(-1px) }
@media(max-width:680px) {
  .heb-inner { flex-direction:column; align-items:flex-start; gap:.8rem }
  .heb-right { width:100%; justify-content:space-between }
}

/* ══════════════════════════════════════════════
   EVENT LIST — POSTER THUMBNAILS
══════════════════════════════════════════════ */
.evrow { grid-template-columns:58px 1fr auto auto }
.ev-thumb-wrap {
  width:44px; height:44px; border-radius:3px; overflow:hidden;
  flex-shrink:0; cursor:pointer; position:relative;
  border:1px solid rgba(255,255,255,.1);
  transition:transform .3s var(--spring);
}
.ev-thumb-wrap:hover { transform:scale(1.08) rotate(-1deg) }
.ev-thumb-wrap img { width:100%; height:100%; object-fit:cover }
.ev-thumb-wrap .ev-thumb-overlay {
  position:absolute; inset:0; background:rgba(0,0,0,.5);
  display:flex; align-items:center; justify-content:center;
  font-size:.8rem; opacity:0; transition:opacity .2s;
}
.ev-thumb-wrap:hover .ev-thumb-overlay { opacity:1 }

/* ══════════════════════════════════════════════
   FEAT CARD — POSTER SIDE BY SIDE
══════════════════════════════════════════════ */
.feat-has-poster {
  display:grid; grid-template-columns:1fr 160px; gap:1.5rem; align-items:start;
}
.feat-poster-side {
  border-radius:6px; overflow:hidden; cursor:pointer;
  box-shadow:0 8px 28px rgba(0,0,0,.4);
  transition:transform .4s var(--spring), box-shadow .4s;
  position:relative; align-self:stretch;
}
.feat-poster-side img { width:100%; height:100%; object-fit:cover; display:block }
.feat-poster-side::after {
  content:'🔍 Agrandir'; position:absolute; inset:0;
  background:rgba(0,0,0,.55); color:#fff;
  font-size:.65rem; letter-spacing:.1em; text-transform:uppercase;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .3s;
}
.feat-poster-side:hover::after { opacity:1 }
@media(max-width:680px) {
  .feat-has-poster { grid-template-columns:1fr }
  .feat-poster-side { height:160px }
}

/* ══════════════════════════════════════════════
   MISC IMPROVEMENTS
══════════════════════════════════════════════ */
/* Smoother image loading */
img { loading:lazy }

/* Better link underline on hover in footer */
.ft-links a:hover { color:var(--gold) !important; padding-left:4px }
.ft-links a { transition:color .25s, padding-left .25s }

/* Pillar cards — gold accent on hover */
.pillar:hover .p-icon { transform:scale(1.2) rotate(-5deg) }
.p-icon { transition:transform .4s var(--spring); display:inline-block }

/* Nav scroll shadow stronger */
#nav.shadow { box-shadow:0 4px 24px -2px var(--sh), 0 1px 0 var(--bdr) }

/* Ticker pause on hover with label */
.ticker:hover::after {
  content:'⏸'; position:absolute; right:1rem; top:50%;
  transform:translateY(-50%); color:rgba(255,255,255,.4); font-size:.8rem;
}

/* Better about section image hover */
.about-photo { cursor:zoom-in }

/* Countdown on banner — shows days remaining */
.heb-countdown {
  background:rgba(255,255,255,.12); color:#fff;
  border-radius:4px; padding:3px 10px;
  font-size:.68rem; font-weight:600; letter-spacing:.08em;
  border:1px solid rgba(255,255,255,.2);
  white-space:nowrap;
}
</style>
/* ══ HERO EVENT BANNER ══ */
#hero-event-banner{background:linear-gradient(135deg,var(--red-d) 0%,var(--red) 60%,#a8001a 100%);position:relative;overflow:hidden;z-index:1}
#hero-event-banner::before{content:'𝄞';position:absolute;right:-1rem;top:-3rem;font-size:18rem;color:rgba(255,255,255,.04);pointer-events:none;line-height:1}
.heb-inner{display:flex;align-items:center;justify-content:space-between;padding:.9rem clamp(1.5rem,6vw,5rem);gap:2rem;flex-wrap:wrap}
.heb-left{display:flex;flex-direction:column;gap:.25rem}
.heb-eyebrow{font-size:.58rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.heb-title{font-family:'Cormorant',serif;font-size:clamp(1.1rem,2.5vw,1.5rem);font-weight:700;color:#fff;line-height:1.1}
.heb-meta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.heb-date,.heb-place{font-size:.78rem;color:rgba(255,255,255,.75)}
.heb-sep{color:rgba(255,255,255,.3)}
.heb-right{display:flex;align-items:center;gap:1.2rem;flex-shrink:0}
.heb-poster-wrap{position:relative;cursor:pointer}
.heb-poster-thumb{height:64px;width:auto;border-radius:4px;box-shadow:0 4px 16px rgba(0,0,0,.4);transition:transform .3s var(--spring),box-shadow .3s;border:2px solid rgba(255,255,255,.2);display:block}
.heb-poster-wrap:hover .heb-poster-thumb{transform:scale(1.05) rotate(-1deg);box-shadow:0 8px 28px rgba(0,0,0,.5)}
.heb-poster-hint{position:absolute;inset:0;background:rgba(0,0,0,.55);color:#fff;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;border-radius:4px;opacity:0;transition:opacity .25s;text-align:center;padding:4px}
.heb-poster-wrap:hover .heb-poster-hint{opacity:1}
.heb-cta{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:3px;padding:.55rem 1.2rem;font-family:'Jost',sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;transition:all .3s var(--spring);white-space:nowrap}
.heb-cta:hover{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.5);transform:translateY(-1px)}
.heb-countdown{background:rgba(255,255,255,.12);color:#fff;border-radius:4px;padding:3px 10px;font-size:.68rem;font-weight:600;letter-spacing:.08em;border:1px solid rgba(255,255,255,.2);white-space:nowrap}
@media(max-width:680px){.heb-inner{flex-direction:column;align-items:flex-start;gap:.8rem}.heb-right{width:100%;justify-content:space-between}}

/* ══ AGENDA POSTER THUMBS ══ */
.ev-thumb-wrap{width:44px;height:44px;border-radius:3px;overflow:hidden;flex-shrink:0;cursor:pointer;position:relative;border:1px solid rgba(255,255,255,.1);transition:transform .3s var(--spring)}
.ev-thumb-wrap:hover{transform:scale(1.08) rotate(-1deg)}
.ev-thumb-wrap img{width:100%;height:100%;object-fit:cover}
.ev-thumb-overlay{position:absolute;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;font-size:.8rem;opacity:0;transition:opacity .2s}
.ev-thumb-wrap:hover .ev-thumb-overlay{opacity:1}
.feat-has-poster{display:grid;grid-template-columns:1fr 160px;gap:1.5rem;align-items:start}
.feat-poster-side{border-radius:6px;overflow:hidden;cursor:pointer;box-shadow:0 8px 28px rgba(0,0,0,.4);transition:transform .4s var(--spring),box-shadow .4s;position:relative;align-self:stretch}
.feat-poster-side img{width:100%;height:100%;object-fit:cover;display:block}
.feat-poster-side::after{content:'🔍 Agrandir';position:absolute;inset:0;background:rgba(0,0,0,.55);color:#fff;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
.feat-poster-side:hover::after{opacity:1}
@media(max-width:680px){.feat-has-poster{grid-template-columns:1fr}.feat-poster-side{height:160px}}

/* ══ CONTACT CARDS ══ */
.contact-alt-intro{color:var(--t3);font-size:.88rem;margin-bottom:2rem;line-height:1.6}
.contact-alt-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}
.contact-alt-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.4rem 1rem;border-radius:6px;background:var(--bg1);border:1px solid var(--bdr2);text-decoration:none;transition:all .35s var(--spring);position:relative;overflow:hidden}
.contact-alt-card::before{content:'';position:absolute;inset:0;background:var(--red-a);opacity:0;transition:opacity .3s}
.contact-alt-card:hover{transform:translateY(-4px);border-color:var(--red);box-shadow:0 8px 28px var(--sh)}
.contact-alt-card:hover::before{opacity:1}
.cac-icon{font-size:1.8rem;margin-bottom:.6rem}
.cac-label{font-size:.6rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--t4);margin-bottom:.3rem}
.cac-val{font-size:.82rem;font-weight:600;color:var(--t1);margin-bottom:.25rem;word-break:break-all}
.cac-hint{font-size:.68rem;color:var(--t4)}
.contact-alt-note{display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;border-radius:6px;background:var(--bg1);border:1px solid var(--bdr2)}
.can-icon{font-size:1.4rem;flex-shrink:0}
.can-title{font-size:.88rem;font-weight:600;color:var(--t1)}
.can-sub{font-size:.75rem;color:var(--t3);margin-top:2px}
@media(max-width:560px){.contact-alt-cards{grid-template-columns:1fr}}

/* ══ POSTER LIGHTBOX ══ */
#publicPosterModal{position:fixed;inset:0;z-index:90000;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center;cursor:zoom-out}
#publicPosterModal.open{display:flex}
#publicPosterModal img{max-width:90vw;max-height:88vh;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.8);animation:popIn .3s var(--spring)}
.ppm-close{position:fixed;top:1.2rem;right:1.5rem;background:rgba(255,255,255,.12);border:none;color:#fff;width:38px;height:38px;border-radius:50%;font-size:1.1rem;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}
.ppm-close:hover{background:rgba(255,255,255,.25)}
.ppm-caption{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.6);font-size:.8rem;text-align:center;pointer-events:none}

/* ══ MAINTENANCE PAGE ══ */
#maintenanceOverlay{position:fixed;inset:0;z-index:99997;display:none;align-items:center;justify-content:center;font-family:'Jost',sans-serif}
.mnt-bg{position:absolute;inset:0;background:radial-gradient(ellipse at center,#1a0810 0%,#0c0608 70%)}
.mnt-bg::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(140,0,21,.15) 0%,transparent 60%),radial-gradient(ellipse at 70% 50%,rgba(196,154,60,.06) 0%,transparent 60%)}
.mnt-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 2rem;max-width:480px;width:90%}
.mnt-logo-wrap{width:70px;height:70px;background:rgba(140,0,21,.15);border:1px solid rgba(140,0,21,.3);border-radius:50%;display:grid;place-items:center;margin-bottom:1.5rem;box-shadow:0 0 40px rgba(140,0,21,.2);animation:mntLogoPulse 3s ease-in-out infinite}
@keyframes mntLogoPulse{0%,100%{box-shadow:0 0 40px rgba(140,0,21,.2)}50%{box-shadow:0 0 60px rgba(140,0,21,.35)}}
.mnt-logo{width:38px;height:38px;object-fit:contain;opacity:.7}
.mnt-icon{font-size:2.5rem;margin-bottom:1rem;display:inline-block;animation:mntSpin 4s linear infinite}
@keyframes mntSpin{0%,90%,100%{transform:rotate(0deg)}45%{transform:rotate(25deg)}}
.mnt-title{font-family:'Cormorant',serif;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700;font-style:italic;color:#fff;margin:0 0 1rem;line-height:1.1}
.mnt-sub{color:rgba(255,255,255,.55);font-size:.9rem;line-height:1.7;margin:0 0 1.5rem}
.mnt-date-wrap{background:rgba(196,154,60,.1);border:1px solid rgba(196,154,60,.25);border-radius:6px;padding:.6rem 1.4rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:.7rem}
.mnt-date-label{font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(196,154,60,.7)}
.mnt-date-val{font-size:.9rem;font-weight:600;color:#c49a3c}
.mnt-notes{display:flex;gap:1.5rem;margin:1rem 0 1.5rem}
.mnt-note{font-size:1.4rem;color:rgba(140,0,21,.5);animation:mntNoteFloat 2.5s ease-in-out infinite}
.mnt-note:nth-child(1){animation-delay:0s}.mnt-note:nth-child(2){animation-delay:.3s}.mnt-note:nth-child(3){animation-delay:.6s}.mnt-note:nth-child(4){animation-delay:.9s}
@keyframes mntNoteFloat{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-8px);opacity:.9}}
.mnt-contact{display:flex;align-items:center;gap:1rem;color:rgba(255,255,255,.3);font-size:.8rem}
.mnt-email-btn{background:rgba(140,0,21,.3);color:rgba(255,255,255,.7);border:1px solid rgba(140,0,21,.4);border-radius:4px;padding:.45rem 1.1rem;font-size:.75rem;font-family:'Jost',sans-serif;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:all .3s}
.mnt-email-btn:hover{background:var(--red);color:#fff;border-color:var(--red)}
#mnt-admin-bypass{margin-top:1.8rem;background:rgba(255,255,255,.06);color:rgba(255,255,255,.3);border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:.4rem 1rem;font-size:.7rem;font-family:'Jost',sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .3s}
#mnt-admin-bypass:hover{background:rgba(255,255,255,.12);color:rgba(255,255,255,.6)}
.mnt-admin-tiny-btn{position:absolute;bottom:1.2rem;right:1.5rem;background:none;border:none;color:rgba(255,255,255,.1);font-size:.85rem;cursor:pointer;padding:4px 6px;border-radius:4px;transition:color .3s,background .3s}
.mnt-admin-tiny-btn:hover{color:rgba(255,255,255,.35);background:rgba(255,255,255,.06)}