/* ── RESET & BASE ─────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer}

:root{
  --r:#CC0000;
  --r2:#E00000;
  --n:#f5f5f5;
  --g:#ffffff;
  --g2:#eeeeee;
  --g3:#dddddd;
  --metal:#bbb;
  --a:#666;
  --b:#1a1a1a;
  --D:'Barlow Condensed',sans-serif;
  --B:'Barlow',sans-serif;
}

body{
  background:var(--n);
  color:var(--b);
  font-family:var(--B);
  font-weight:300;
  overflow-x:hidden;
  line-height:1.6;
}

/* ── NAV ──────────────────────────────────────────────────────────── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  background:rgba(245,245,245,0.97);
  border-bottom:1px solid rgba(204,0,0,0.25);
  padding:0 2rem;
  display:flex;align-items:center;justify-content:space-between;
  height:60px;
  backdrop-filter:blur(8px);
}

.nav-logo{
  font-family:var(--D);font-weight:900;font-size:1.4rem;
  letter-spacing:0.04em;line-height:1;
}
.nav-logo .r{color:var(--r)}
.nav-logo small{
  display:block;font-size:0.45rem;letter-spacing:0.45em;
  color:var(--a);font-weight:400;text-transform:uppercase;margin-top:1px;
}

.nav-links{
  display:flex;gap:0;list-style:none;
}
.nav-links a{
  font-family:var(--D);font-size:0.72rem;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--a);padding:0 1rem;
  height:60px;display:flex;align-items:center;
  border-bottom:2px solid transparent;
  transition:all 0.2s;
}
.nav-links a:hover,.nav-links a.active{color:var(--b);border-bottom-color:var(--r)}

.nav-socials{display:flex;gap:0.5rem;align-items:center}
.nav-soc{
  width:32px;height:32px;border:1px solid var(--g3);
  display:flex;align-items:center;justify-content:center;
  color:var(--a);font-size:14px;transition:all 0.2s;
}
.nav-soc:hover{border-color:var(--r);color:var(--r)}
.nav-soc.yt:hover{border-color:#f00;color:#f00}
.nav-soc.tt:hover{border-color:#69C9D0;color:#69C9D0}

.nav-cta{
  font-family:var(--D);font-size:0.68rem;letter-spacing:0.2em;
  text-transform:uppercase;padding:0.45rem 1.2rem;
  border:1px solid var(--r);color:var(--r);background:transparent;
  transition:all 0.2s;margin-left:0.8rem;
}
.nav-cta:hover{background:var(--r);color:#fff}

.nav-burger{display:none;background:none;border:none;color:var(--b);font-size:1.5rem}

/* ── HERO ─────────────────────────────────────────────────────────── */
.hero{
  min-height:100vh;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:5rem 2rem 4rem;
  position:relative;overflow:hidden;
  background:linear-gradient(160deg,#f0f0f0 0%,#ffffff 40%,#f5f5f5 100%);
}

.hero-bg{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse 55% 60% at 75% 40%,rgba(204,0,0,0.06) 0%,transparent 65%),
    radial-gradient(ellipse 30% 35% at 15% 75%,rgba(204,0,0,0.03) 0%,transparent 55%);
}

.hero-grid{
  position:absolute;inset:0;opacity:0.03;z-index:0;pointer-events:none;
  background-image:
    repeating-linear-gradient(0deg,transparent,transparent 59px,#ccc 59px,#ccc 60px),
    repeating-linear-gradient(90deg,transparent,transparent 59px,#ccc 59px,#ccc 60px);
}

/* Logo géométrique en fond */
.hero-logo-bg{
  position:absolute;right:-60px;top:50%;transform:translateY(-50%);
  opacity:0.18;pointer-events:none;z-index:1;
}

.hero-rubriques{
  position:absolute;right:2rem;top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;gap:0.45rem;z-index:50;
  pointer-events:all;
}
.rub{
  font-family:var(--D);font-size:0.6rem;letter-spacing:0.18em;
  text-transform:uppercase;padding:0.38rem 0.9rem;
  border:1px solid var(--g3);color:var(--a);
  transition:all 0.2s;cursor:pointer;white-space:nowrap;
  background:rgba(245,245,245,0.85);
}
.rub:hover,.rub.hl{border-color:var(--r);color:var(--b);background:rgba(204,0,0,0.08)}
.rub.sub{margin-left:0.8rem;font-size:0.56rem;opacity:0.75}

.hero-tag{
  font-family:var(--D);font-size:0.62rem;letter-spacing:0.38em;
  text-transform:uppercase;color:var(--r);margin-bottom:1rem;
  display:flex;align-items:center;gap:0.8rem;
  position:relative;z-index:2;
  animation:fadeUp 0.8s ease 0.1s both;
}
.hero-tag::before{content:'';width:22px;height:2px;background:var(--r)}

.hero-h1{
  font-family:var(--D);font-weight:900;
  font-size:clamp(3.5rem,9vw,8rem);
  line-height:0.86;text-transform:uppercase;letter-spacing:0.02em;
  position:relative;z-index:2;margin-bottom:0.8rem;
  animation:fadeUp 0.9s ease 0.25s both;
}
.hero-h1 .r{color:var(--r)}
.hero-h1 .out{
  color:transparent;
  -webkit-text-stroke:2px rgba(30,30,30,0.55);
}

.hero-desc{
  color:var(--a);font-size:0.92rem;line-height:1.78;
  max-width:440px;margin-bottom:2rem;
  position:relative;z-index:2;
  animation:fadeUp 0.9s ease 0.4s both;
}

.hero-btns{
  display:flex;gap:0.8rem;flex-wrap:wrap;
  position:relative;z-index:2;
  animation:fadeUp 0.9s ease 0.55s both;
}

.btn-r{
  font-family:var(--D);font-size:0.72rem;letter-spacing:0.18em;
  text-transform:uppercase;padding:0.85rem 2rem;
  background:var(--r);color:#fff;border:none;
  transition:background 0.2s;display:inline-flex;align-items:center;gap:6px;
}
.btn-r:hover{background:var(--r2)}
.btn-o{
  font-family:var(--D);font-size:0.72rem;letter-spacing:0.18em;
  text-transform:uppercase;padding:0.85rem 2rem;
  background:transparent;color:var(--a);border:1px solid var(--g3);
  transition:all 0.2s;display:inline-flex;align-items:center;gap:6px;
}
.btn-o:hover{border-color:var(--r);color:var(--b)}

.hero-scroll{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:0.5rem;
  z-index:2;animation:fadeUp 1s ease 0.8s both;
}
.hero-scroll span{font-size:0.58rem;letter-spacing:0.28em;text-transform:uppercase;color:var(--a)}
.hero-scroll-line{
  width:1px;height:40px;
  background:linear-gradient(to bottom,var(--r),transparent);
  animation:scrollpulse 2s ease-in-out infinite;
}
@keyframes scrollpulse{
  0%,100%{opacity:0.3;transform:scaleY(1)}
  50%{opacity:1;transform:scaleY(1.1)}
}

/* ── TICKER ────────────────────────────────────────────────────────── */
.ticker-wrap{background:var(--r);padding:0.55rem 0;overflow:hidden}
.ticker{display:flex;white-space:nowrap;animation:ticker 35s linear infinite}
.ticker-item{
  font-family:var(--D);font-size:0.68rem;letter-spacing:0.22em;
  text-transform:uppercase;color:#fff;padding:0 2.5rem;opacity:0.9;
}
.ticker-sep{color:rgba(255,255,255,0.3)}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── SECTIONS BASE ─────────────────────────────────────────────────── */
section{padding:5rem 2rem;position:relative;overflow:hidden}
.sec-bg-logo{pointer-events:none;
  position:absolute;pointer-events:none;z-index:0;opacity:0.1;
}
.sec-label{
  font-family:var(--D);font-size:0.6rem;letter-spacing:0.35em;
  text-transform:uppercase;color:var(--r);margin-bottom:1.8rem;
  display:flex;align-items:center;gap:0.8rem;position:relative;z-index:2;
}
.sec-label::after{content:'';flex:1;height:1px;background:var(--g3);max-width:150px}
.sec-title{
  font-family:var(--D);font-weight:900;
  font-size:clamp(2rem,4.5vw,3.2rem);
  text-transform:uppercase;line-height:0.9;margin-bottom:1.2rem;
  position:relative;z-index:2;
}
.sec-title .r{color:var(--r)}
.metal-sec{background:linear-gradient(145deg,#ffffff 0%,#f8f8f8 50%,#ffffff 100%)}
.dark-sec{background:#eeeeee}

/* ── PODCAST ───────────────────────────────────────────────────────── */
.pod-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:start;position:relative;z-index:2}
.pod-desc{color:var(--a);line-height:1.8;font-size:0.9rem;margin-bottom:1.5rem}
.plats{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:1.5rem}
.plat{
  font-family:var(--D);font-size:0.6rem;letter-spacing:0.15em;
  text-transform:uppercase;padding:0.35rem 1rem;
  border:1px solid var(--g3);color:var(--a);
  transition:all 0.2s;display:inline-block;
}
.plat:hover,.plat.on{border-color:var(--r);color:#fff;background:var(--r)}
.ep{
  background:rgba(0,0,0,0.04);border-left:3px solid var(--r);
  padding:1rem 1rem 1rem 1.2rem;margin-bottom:0.6rem;
  display:flex;align-items:center;justify-content:space-between;
  transition:background 0.2s;
}
.ep:hover{background:rgba(0,0,0,0.08)}
.ep-name{
  font-family:var(--D);font-size:0.92rem;font-weight:700;
  text-transform:uppercase;letter-spacing:0.04em;color:var(--b);
}
.ep-meta{font-size:0.68rem;color:var(--a);margin-top:0.2rem}
.ep-play{
  width:32px;height:32px;border:1px solid var(--r);
  display:flex;align-items:center;justify-content:center;
  color:var(--r);flex-shrink:0;font-size:12px;
  transition:all 0.2s;
}
.ep:hover .ep-play{background:var(--r);color:#fff}

/* ── IMMERSIONS ─────────────────────────────────────────────────────── */
.imm-intro{color:var(--a);font-size:0.9rem;line-height:1.8;max-width:580px;margin-bottom:2.5rem;position:relative;z-index:2}
.imm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--g3);margin-bottom:1px;position:relative;z-index:2}
.imm-grid-2{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--g3);position:relative;z-index:2}
.imm-card{
  background:linear-gradient(145deg,#fff 0%,#f5f5f5 100%);
  padding:2rem 1.5rem;position:relative;overflow:hidden;
  cursor:pointer;transition:background 0.25s;min-height:170px;
  display:flex;flex-direction:column;justify-content:flex-end;
  border:1px solid var(--g3);
}
.imm-card:hover{background:linear-gradient(145deg,#f5f5f5 0%,#ebebeb 100%)}
.imm-card-icon{
  position:absolute;top:1.2rem;right:1.2rem;
  font-size:3rem;color:rgba(204,0,0,0.07);
}
.imm-card-num{font-family:var(--D);font-size:0.58rem;letter-spacing:0.28em;text-transform:uppercase;color:var(--r);margin-bottom:0.4rem}
.imm-card-name{font-family:var(--D);font-weight:900;font-size:1.3rem;text-transform:uppercase;letter-spacing:0.04em;margin-bottom:0.3rem;color:var(--b)}
.imm-card-desc{font-size:0.75rem;color:var(--a);line-height:1.5}
.imm-bar{
  position:absolute;bottom:0;left:0;right:0;height:2px;
  background:var(--r);transform:scaleX(0);transform-origin:left;
  transition:transform 0.3s;
}
.imm-card:hover .imm-bar{transform:scaleX(1)}
.imm-cta-card{
  background:rgba(204,0,0,0.06);
  border:1px solid rgba(204,0,0,0.15);
  display:flex;flex-direction:column;justify-content:center;
  align-items:center;text-align:center;padding:2rem;
  cursor:pointer;transition:background 0.2s;
}
.imm-cta-card:hover{background:rgba(204,0,0,0.08)}
.imm-cta-label{font-family:var(--D);font-size:0.6rem;letter-spacing:0.28em;text-transform:uppercase;color:var(--r);margin-bottom:0.7rem}
.imm-cta-title{font-family:var(--D);font-size:1rem;font-weight:700;text-transform:uppercase;margin-bottom:1.2rem;color:var(--b)}
.imm-cta-btn{
  font-family:var(--D);font-size:0.62rem;letter-spacing:0.18em;
  text-transform:uppercase;padding:0.6rem 1.4rem;
  background:var(--r);color:#fff;transition:background 0.2s;display:inline-block;
}
.imm-cta-btn:hover{background:var(--r2)}

/* ── RÉSERVATION EN LIGNE ─────────────────────────────────────────── */
.book-desc{color:var(--a);font-size:0.9rem;line-height:1.8;max-width:580px;margin-bottom:2.2rem;position:relative;z-index:2}
.tier-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--g3);margin-bottom:2rem;position:relative;z-index:2}
.tier-card{
  background:linear-gradient(145deg,#fff 0%,#f5f5f5 100%);
  padding:1.6rem 1.3rem;position:relative;overflow:hidden;
  cursor:pointer;transition:background 0.25s;min-height:190px;
  display:flex;flex-direction:column;justify-content:flex-end;
}
.tier-card:hover{background:linear-gradient(145deg,#f5f5f5 0%,#ebebeb 100%)}
.tier-card-num{font-family:var(--D);font-size:0.56rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--r);margin-bottom:0.5rem}
.tier-card-name{font-family:var(--D);font-weight:900;font-size:1.15rem;text-transform:uppercase;letter-spacing:0.02em;margin-bottom:0.35rem;color:var(--b)}
.tier-card-duree{font-size:0.7rem;color:var(--a);margin-bottom:0.7rem;line-height:1.4}
.tier-card-price{font-family:var(--D);font-weight:800;font-size:1.25rem;color:var(--r)}
.tier-card-price small{font-size:0.6rem;color:var(--a);font-weight:400;letter-spacing:0.05em}
.tier-bar{position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--r);transform:scaleX(0);transform-origin:left;transition:transform 0.3s}
.tier-card:hover .tier-bar{transform:scaleX(1)}
.book-cta-row{display:flex;justify-content:center;position:relative;z-index:2}
@media(max-width:760px){ .tier-grid{grid-template-columns:1fr 1fr} }
@media(max-width:480px){ .tier-grid{grid-template-columns:1fr} }

.pkg-select-title,.opt-select-title{font-family:var(--D);font-size:0.58rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--a);margin-bottom:0.6rem}
.pkg-pills{display:grid;grid-template-columns:1fr 1fr;gap:0.6rem;margin-bottom:0.4rem}
.pkg-pill{border:1px solid var(--g3);background:#f8f8f8;padding:0.75rem 0.85rem;cursor:pointer;transition:all 0.2s;position:relative}
.pkg-pill:hover{border-color:var(--r)}
.pkg-pill.sel{border-color:var(--r);background:#fff5f5}
.pkg-pill-name{font-family:var(--D);font-weight:700;font-size:0.82rem;text-transform:uppercase;color:var(--b);margin-bottom:0.15rem}
.pkg-pill-duree{font-size:0.66rem;color:var(--a);margin-bottom:0.3rem}
.pkg-pill-price{font-family:var(--D);font-weight:800;font-size:0.9rem;color:var(--r)}
.pkg-pill-check{position:absolute;top:0.6rem;right:0.6rem;width:16px;height:16px;border:1px solid var(--g3);border-radius:50%;background:#fff}
.pkg-pill.sel .pkg-pill-check{background:var(--r);border-color:var(--r)}
.pkg-pill.sel .pkg-pill-check::after{content:'✓';color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;height:100%}
.opt-list{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:0.3rem}
.opt-row{display:flex;align-items:center;gap:0.7rem;border:1px solid var(--g3);background:#f8f8f8;padding:0.65rem 0.9rem;cursor:pointer;transition:all 0.2s}
.opt-row:hover{border-color:var(--r)}
.opt-row.sel{border-color:var(--r);background:#fff5f5}
.opt-row input{accent-color:var(--r);width:15px;height:15px;flex-shrink:0}
.opt-row-label{flex:1;font-size:0.82rem;color:var(--b)}
.opt-row-price{font-family:var(--D);font-weight:700;font-size:0.8rem;color:var(--r);white-space:nowrap}
.hors-idf-row{display:flex;align-items:center;gap:0.6rem;margin-top:0.5rem;font-size:0.76rem;color:var(--a)}
.hors-idf-row input{accent-color:var(--r);width:14px;height:14px}
.pay-box-res{margin-top:1rem;padding:1rem;background:#f0f7ff;border:1px solid #cce0ff}
.pay-box-res-label{font-family:var(--D);font-size:0.58rem;letter-spacing:0.22em;text-transform:uppercase;color:#666;margin-bottom:0.8rem;text-align:center}
.pay-box-res-note{font-size:0.62rem;color:#888;margin-top:0.6rem;text-align:center}
@media(max-width:560px){ .pkg-pills{grid-template-columns:1fr} }

/* ── ITW ──────────────────────────────────────────────────────────── */
.itw-layout{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;position:relative;z-index:2}
.itw-desc{color:var(--a);font-size:0.9rem;line-height:1.8;margin-bottom:1.8rem}
.itw-stat{
  display:flex;align-items:center;gap:1.5rem;
  padding:1.2rem 1.5rem;background:rgba(0,0,0,0.05);
  border-left:3px solid var(--r);margin-bottom:2rem;
}
.itw-num{font-family:var(--D);font-size:2.5rem;font-weight:900;color:var(--r);line-height:1}
.itw-stat-label{font-family:var(--D);font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--a)}
.itw-stat-title{font-family:var(--D);font-size:1rem;font-weight:700;text-transform:uppercase;color:var(--b)}
.itw-cta{
  display:inline-flex;align-items:center;gap:0.7rem;
  font-family:var(--D);font-size:0.75rem;letter-spacing:0.18em;
  text-transform:uppercase;padding:0.9rem 2rem;
  background:var(--r);color:#fff;transition:background 0.2s;
}
.itw-cta:hover{background:var(--r2)}
.itw-list{background:#fff;border:1px solid var(--g3);padding:1.5rem;display:flex;flex-direction:column;gap:0.5rem}
.itw-list-title{font-family:var(--D);font-size:0.58rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--r);margin-bottom:0.8rem;padding-bottom:0.8rem;border-bottom:1px solid var(--g3)}
.itw-row{
  display:flex;align-items:center;gap:0.8rem;
  padding:0.8rem 1rem;background:rgba(0,0,0,0.03);
  border-left:2px solid var(--g3);transition:all 0.2s;
}
.itw-row:hover{border-left-color:var(--r);background:rgba(0,0,0,0.06)}
.itw-row-num{font-family:var(--D);font-size:0.7rem;font-weight:700;color:var(--r);min-width:20px;opacity:0.7}
.itw-row-name{font-family:var(--D);font-size:0.85rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--b)}
.itw-row-arr{margin-left:auto;font-size:0.8rem;color:var(--g3);transition:color 0.2s;flex-shrink:0}
.itw-row:hover .itw-row-arr{color:var(--r)}

/* ── MICRO-TROTTOIR ────────────────────────────────────────────────── */
.micro-inner{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 0;position:relative;z-index:2}
.micro-desc{color:var(--a);font-size:0.9rem;line-height:1.8;max-width:460px;margin:0 auto 2.5rem}
.micro-cta{
  display:inline-flex;align-items:center;gap:0.8rem;
  font-family:var(--D);font-size:0.82rem;letter-spacing:0.2em;
  text-transform:uppercase;padding:1rem 2.5rem;
  background:rgba(0,0,0,0.04);border:1px solid var(--g3);color:var(--b);
  transition:all 0.3s;
}
.micro-cta:hover{border-color:#69C9D0;color:#69C9D0}
.micro-cta i{font-size:1.3rem;color:#69C9D0}

/* ── RÉSEAUX ───────────────────────────────────────────────────────── */
.rs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--g3);position:relative;z-index:2}
.rs-card{
  background:linear-gradient(145deg,#ffffff 0%,#f5f5f5 100%); border:1px solid var(--g3);
  padding:2rem 1.5rem;text-align:center;
  transition:background 0.2s;display:flex;flex-direction:column;align-items:center;gap:0.7rem;
}
.rs-card:hover{background:linear-gradient(145deg,#f0f0f0 0%,#e8e8e8 100%)}
.rs-icon{font-size:2rem;color:var(--a);transition:color 0.2s}
.rs-card:hover .rs-icon{color:var(--r)}
.rs-card.yt:hover .rs-icon{color:#f00}
.rs-card.tt:hover .rs-icon{color:#69C9D0}
.rs-name{font-family:var(--D);font-size:0.82rem;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:var(--b)}
.rs-handle{font-size:0.7rem;color:var(--a)}
.rs-desc{font-size:0.7rem;color:var(--a);line-height:1.5}

/* ── CONTACT ───────────────────────────────────────────────────────── */
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;position:relative;z-index:2}
.ct-desc{color:var(--a);font-size:0.9rem;line-height:1.8;margin-bottom:1.2rem}
.ct-mail{
  font-family:var(--D);font-size:0.9rem;letter-spacing:0.08em;
  color:var(--r);display:flex;align-items:center;gap:0.5rem;margin-bottom:1.5rem;
}
.ct-types{display:flex;flex-direction:column;gap:0.5rem}
.ct-type{
  display:flex;align-items:center;gap:0.8rem;font-size:0.8rem;color:var(--a);
  padding:0.7rem 1rem;background:rgba(0,0,0,0.04);border-left:2px solid var(--g3);
}
.ct-type i{color:var(--r);font-size:15px;flex-shrink:0}
.form-group{margin-bottom:0.9rem}
.form-label{
  display:block;font-family:var(--D);font-size:0.58rem;
  letter-spacing:0.25em;text-transform:uppercase;color:var(--a);margin-bottom:0.4rem;
}
.form-input{
  width:100%;background:#f8f8f8;border:1px solid var(--g3);
  color:var(--b);font-family:var(--B);font-size:0.88rem;
  padding:0.75rem 1rem;outline:none;transition:border-color 0.2s;
}
.form-input:focus{border-color:var(--r)}
.form-input::placeholder{color:rgba(0,0,0,0.25)}
textarea.form-input{resize:vertical;min-height:90px}
select.form-input{appearance:none;cursor:pointer}
select.form-input option{background:#fff;color:var(--b)}

/* ── FOOTER ────────────────────────────────────────────────────────── */
footer{
  background:#ffffff;border-top:1px solid var(--g3);
  padding:1.8rem 2rem;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;
}
.ft-copy{font-size:0.62rem;color:var(--a);letter-spacing:0.1em}
.ft-links{display:flex;gap:1.5rem;list-style:none}
.ft-links a{
  font-family:var(--D);font-size:0.6rem;letter-spacing:0.18em;
  text-transform:uppercase;color:var(--a);transition:color 0.2s;
}
.ft-links a:hover{color:var(--r)}
.ft-socs{display:flex;gap:0.5rem}
.ft-s{
  width:28px;height:28px;border:1px solid var(--g3);
  display:flex;align-items:center;justify-content:center;
  color:var(--a);font-size:12px;transition:all 0.2s;
}
.ft-s:hover{border-color:var(--r);color:var(--r)}

/* ── ANIMATIONS ────────────────────────────────────────────────────── */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 0.7s ease,transform 0.7s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.1s}
.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}







.ad-banner-full {
  width: 100%;
  min-height: 200px;
  background: repeating-linear-gradient(
    45deg, #fafafa, #fafafa 10px, #f3f3f3 10px, #f3f3f3 20px
  );
  border: 2px dashed var(--g3);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2.5rem 3rem;
  gap: 2rem;
  cursor: pointer;
  transition: all 0.25s;
  box-sizing: border-box;
}
.ad-banner-full:hover {
  background: #fff5f5;
  border-color: var(--r);
}
.ad-banner-full-icon {
  font-size: 4rem;
  color: var(--g3);
  flex-shrink: 0;
  transition: color 0.2s;
}
.ad-banner-full:hover .ad-banner-full-icon { color: var(--r); }
.ad-banner-full-center {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ad-banner-full-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--b);
  opacity: 0.3;
}
.ad-banner-full-sub {
  font-size: 0.8rem;
  color: var(--a);
  letter-spacing: 0.1em;
}
.ad-banner-full-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.3rem;
  flex-shrink: 0;
}
.ad-banner-full:hover .ad-slot-cta { border-color: var(--r); color: var(--r); }
@media(max-width:600px) {
  .ad-banner-full { flex-direction: column; text-align: center; padding: 1.5rem; }
  .ad-banner-full-right { align-items: center; }
}



/* ── RÉCAPITULATIF PRIX ─────────────────────────────────────────────── */
.prix-recap-box {
  border: 1px solid var(--g3);
  border-top: 3px solid var(--r);
  background: #fafafa;
}
.prix-recap-header {
  background: var(--b);
  padding: 0.7rem 1rem;
}
.prix-recap-label {
  font-family: var(--D);
  font-size: 0.62rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #fff;
}
.prix-recap-body {
  padding: 0.5rem 0;
}
.prix-recap-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 1rem;
  border-bottom: 1px solid var(--g3);
  font-size: 0.82rem;
}
.prix-recap-row:last-child { border-bottom: none; }
.prix-recap-key {
  color: var(--a);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-family: var(--D);
}
.prix-recap-val {
  color: var(--b);
  font-family: var(--D);
  font-size: 0.95rem;
  font-weight: 600;
}
.prix-recap-total {
  background: #fff0f0;
}
.prix-recap-total .prix-recap-key {
  color: var(--r);
  font-weight: 700;
}
.prix-recap-total .prix-recap-val {
  color: var(--r);
  font-size: 1.1rem;
  font-weight: 900;
}


/* ── MENTIONS LÉGALES MODAL ────────────────────────────────────────── */
.modal-ml {
  background: #fff;
  width: 100%;
  max-width: 750px;
  border-top: 4px solid var(--r);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
}
.ml-section {
  margin-bottom: 2rem;
}
.ml-section-title {
  font-family: var(--D);
  font-size: 0.7rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.8rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--g3);
}
.ml-row {
  display: flex;
  gap: 1rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid #f0f0f0;
  font-size: 0.85rem;
}
.ml-row:last-child { border-bottom: none; }
.ml-key {
  font-family: var(--D);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: var(--a);
  min-width: 160px;
  flex-shrink: 0;
}
.ml-val { color: #333; line-height: 1.6; }
.ml-body { padding: 2rem; }
.ml-intro {
  font-size: 0.82rem;
  color: var(--a);
  line-height: 1.8;
  margin-bottom: 2rem;
  padding: 1rem;
  background: #f8f8f8;
  border-left: 3px solid var(--r);
}


/* ── CGV MODAL ──────────────────────────────────────────────────────── */
.modal-cgv {
  background: #fff;
  width: 100%;
  max-width: 750px;
  border-top: 4px solid var(--r);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
}
.cgv-body { padding: 2rem; }
.cgv-section { margin-bottom: 1.8rem; }
.cgv-section-title {
  font-family: var(--D);
  font-size: 0.7rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.8rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--g3);
}
.cgv-text {
  font-size: 0.82rem;
  color: #444;
  line-height: 1.85;
}
.cgv-text b { color: var(--b); }

/* ── MODAL RÉSERVATION PUB ─────────────────────────────────────────── */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  z-index: 500;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  backdrop-filter: blur(4px);
}
.modal-overlay.open { display: flex; }

.modal {
  background: #fff;
  width: 100%;
  max-width: 560px;
  border-top: 4px solid var(--r);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
}

.modal-header {
  background: var(--b);
  padding: 1.5rem 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.modal-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #fff;
}
.modal-title span { color: var(--r); }
.modal-close {
  background: none;
  border: none;
  color: var(--a);
  font-size: 1.5rem;
  cursor: pointer;
  transition: color 0.2s;
  line-height: 1;
}
.modal-close:hover { color: var(--r); }

.modal-body { padding: 2rem; }

.modal-espace-selected {
  background: #fff8f8;
  border-left: 3px solid var(--r);
  padding: 0.8rem 1rem;
  margin-bottom: 1.5rem;
  font-family: var(--D);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--r);
}

.modal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.9rem;
}
.modal-grid .full { grid-column: 1 / -1; }

.modal-success {
  display: none;
  text-align: center;
  padding: 2rem;
}
.modal-success i { font-size: 3rem; color: var(--r); margin-bottom: 1rem; display: block; }
.modal-success-title {
  font-family: var(--D);
  font-size: 1.2rem;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--b);
  margin-bottom: 0.5rem;
}
.modal-success-sub { font-size: 0.85rem; color: var(--a); }



/* ── CARDS VIDÉO ────────────────────────────────────────────────────── */
.video-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  position: relative;
  z-index: 2;
  margin-top: 1.5rem;
}
.video-card {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  background: #111;
  cursor: pointer;
  transition: transform 0.2s;
}
.video-card:hover { transform: translateY(-3px); }
.video-card-thumb {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.6;
  transition: opacity 0.2s;
}
.video-card:hover .video-card-thumb { opacity: 0.45; }
.video-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.55) 45%, rgba(0,0,0,0.15) 100%);
}
.video-card-overlay-btm {
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent 25%, rgba(0,0,0,0.96) 100%);
}
.video-card-accent {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--r);
  z-index: 3;
}
.video-card-dm {
  position: absolute;
  right: 6%; top: 50%;
  transform: translateY(-50%);
  font-family: var(--D);
  font-weight: 900;
  font-size: 3rem;
  color: rgba(204,0,0,0.15);
  letter-spacing: -0.05em;
  z-index: 2;
  line-height: 1;
  pointer-events: none;
}
.video-card-duration {
  position: absolute;
  top: 0.5rem; right: 0.5rem;
  background: rgba(0,0,0,0.85);
  color: #fff;
  font-family: var(--D);
  font-size: 0.6rem;
  padding: 0.15rem 0.4rem;
  letter-spacing: 0.05em;
  z-index: 4;
}
.video-card-content {
  position: absolute;
  left: 0; bottom: 0; right: 0;
  padding: 0.7rem 0.9rem;
  z-index: 4;
}
.video-card-rubrique {
  font-family: var(--D);
  font-size: 0.5rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.2rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.video-card-rubrique::before {
  content: '';
  width: 14px; height: 1.5px;
  background: var(--r);
  flex-shrink: 0;
}
.video-card-name {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #fff;
  line-height: 1;
  margin-bottom: 0.2rem;
}
.video-card-quote {
  font-size: 0.52rem;
  color: rgba(255,255,255,0.55);
  line-height: 1.3;
  font-style: italic;
  max-width: 65%;
}
.video-card-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
  opacity: 0;
  transition: opacity 0.2s;
}
.video-card:hover .video-card-play { opacity: 1; }
.video-play-btn {
  width: 44px; height: 44px;
  border: 2px solid rgba(255,255,255,0.8);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 16px;
  background: rgba(204,0,0,0.7);
}

/* Card wide immersion */
.video-card-wide {
  aspect-ratio: 21/9;
  grid-column: 1 / -1;
}
.video-card-wide .video-card-dm { font-size: 5rem; }
.video-card-wide .video-card-name { font-size: 1.4rem; }
.video-card-wide .video-card-quote { max-width: 40%; font-size: 0.6rem; }

/* ── MODAL VIDÉO ────────────────────────────────────────────────────── */
.modal-video-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.92);
  z-index: 600;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
.modal-video-overlay.open { display: flex; }
.modal-video-container {
  width: 100%;
  max-width: 900px;
  position: relative;
}
.modal-video-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.8rem;
}
.modal-video-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  color: #fff;
  letter-spacing: 0.04em;
}
.modal-video-title span { color: var(--r); }
.modal-video-close {
  background: none;
  border: 1px solid rgba(255,255,255,0.3);
  color: rgba(255,255,255,0.7);
  width: 36px; height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 1.2rem;
  transition: all 0.2s;
}
.modal-video-close:hover { border-color: var(--r); color: var(--r); }
.modal-video-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  background: #000;
}
.modal-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.modal-video-yt-link {
  margin-top: 0.8rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.6rem;
}
.modal-video-yt-link a {
  font-family: var(--D);
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--a);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: color 0.2s;
}
.modal-video-yt-link a:hover { color: var(--r); }

@media(max-width:900px) {
  .video-grid { grid-template-columns: repeat(2,1fr); }
}
@media(max-width:600px) {
  .video-grid { grid-template-columns: 1fr; }
}


/* ── ARTICLES ────────────────────────────────────────────────────────── */
.articles-sec {
  background: #ffffff;
  padding: 5rem 2rem;
  position: relative;
  overflow: hidden;
}
.articles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  position: relative;
  z-index: 2;
  margin-top: 1.5rem;
}
.article-card {
  background: #f8f8f8;
  border: 1px solid var(--g3);
  border-top: 3px solid var(--r);
  display: flex;
  flex-direction: column;
  transition: all 0.2s;
  cursor: pointer;
  text-decoration: none;
  color: var(--b);
}
.article-card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}
.article-card-img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  background: var(--g2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.article-card-img-placeholder {
  width: 100%;
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--g2), var(--g3));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: var(--g3);
}
.article-card-body { padding: 1.2rem; flex: 1; display: flex; flex-direction: column; gap: 0.5rem; }
.article-card-cat {
  font-family: var(--D);
  font-size: 0.58rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--r);
}
.article-card-title {
  font-family: var(--D);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.2;
  color: var(--b);
}
.article-card-excerpt {
  font-size: 0.78rem;
  color: var(--a);
  line-height: 1.65;
  flex: 1;
}
.article-card-meta {
  font-size: 0.65rem;
  color: var(--a);
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.article-card-meta::before { content: ''; width: 20px; height: 1px; background: var(--r); }
.articles-coming-soon {
  grid-column: 1 / -1;
  text-align: center;
  padding: 4rem 2rem;
  background: #f8f8f8;
  border: 2px dashed var(--g3);
}
.articles-coming-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.5rem;
  text-transform: uppercase;
  color: var(--b);
  opacity: 0.3;
  margin-bottom: 0.8rem;
}
.articles-coming-sub {
  font-size: 0.82rem;
  color: var(--a);
  line-height: 1.8;
}
@media(max-width:900px) {
  .articles-grid { grid-template-columns: 1fr 1fr; }
}
@media(max-width:600px) {
  .articles-grid { grid-template-columns: 1fr; }
}

/* ── QUI SOMMES-NOUS ────────────────────────────────────────────────── */
.about-sec {
  background: #1a1a1a;
  padding: 5rem 2rem;
  position: relative;
  overflow: hidden;
  border-top: 4px solid var(--r);
  border-bottom: 4px solid var(--r);
}
.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
  position: relative;
  z-index: 2;
}
.about-intro {
  font-family: var(--D);
  font-weight: 900;
  font-size: clamp(2rem, 4vw, 3.2rem);
  text-transform: uppercase;
  line-height: 0.9;
  margin-bottom: 1.5rem;
  color: #fff;
}
.about-intro .r { color: var(--r); }
.about-tagline {
  font-size: 1rem;
  color: #bbb;
  line-height: 1.85;
  margin-bottom: 2rem;
  font-style: italic;
  border-left: 3px solid var(--r);
  padding-left: 1.2rem;
}
.about-body {
  font-size: 0.88rem;
  color: #aaa;
  line-height: 1.9;
}
.about-profiles {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.profile-card {
  background: #242424;
  border-left: 4px solid var(--r);
  padding: 1.8rem;
}
.profile-name {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #fff;
  margin-bottom: 0.3rem;
}
.profile-title {
  font-family: var(--D);
  font-size: 0.65rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 1rem;
}
.profile-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1rem;
}
.profile-tag {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.25rem 0.7rem;
  background: var(--b);
  color: #fff;
}
.profile-tag.r { background: var(--r); }
.profile-desc {
  font-size: 0.82rem;
  color: #999;
  line-height: 1.8;
}

/* ── PARTENAIRES ────────────────────────────────────────────────────── */
.partners-sec {
  background: #f5f5f5;
  padding: 4rem 2rem;
  border-top: 1px solid var(--g3);
}
.partners-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  position: relative;
  z-index: 2;
  margin-top: 1rem;
}
.partner-card {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: all 0.25s;
  text-decoration: none;
}
/* Studio — blanc gris noir */
.partner-card.studio {
  background: #ffffff;
  border: 1px solid #ddd;
  border-top: 4px solid #1a1a1a;
  color: #1a1a1a;
}
.partner-card.studio:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,0.12);
  transform: translateY(-2px);
}
.partner-card.studio .partner-type { color: #555; }
.partner-card.studio .partner-name { color: #1a1a1a; }
.partner-card.studio .partner-desc { color: #666; }
.partner-card.studio .partner-service {
  background: #f0f0f0;
  color: #555;
  border-color: #ddd;
}
.partner-card.studio .partner-cta {
  background: #1a1a1a;
  color: #fff;
}
.partner-card.studio .partner-cta:hover { background: #333; }
.partner-card.studio .partner-logo-text { color: #1a1a1a; }
.partner-card.studio .partner-logo-text .r { color: #555; }

/* VTC — fond noir, accent or */
.partner-card.vtc {
  background: #0d0d0d;
  border: 1px solid #2a2a2a;
  border-top: 4px solid #C9A84C;
  color: #f0ede6;
}
.partner-card.vtc:hover {
  box-shadow: 0 6px 24px rgba(201,168,76,0.2);
  transform: translateY(-2px);
}
.partner-card.vtc .partner-type { color: #C9A84C; }
.partner-card.vtc .partner-name { color: #f0ede6; }
.partner-card.vtc .partner-desc { color: #999; }
.partner-card.vtc .partner-service {
  background: rgba(201,168,76,0.1);
  color: #C9A84C;
  border-color: rgba(201,168,76,0.3);
}
.partner-card.vtc .partner-cta {
  background: #C9A84C;
  color: #0d0d0d;
}
.partner-card.vtc .partner-cta:hover { background: #e0bc5a; }
.partner-card.vtc .partner-logo-text { color: #f0ede6; }
.partner-card.vtc .partner-logo-text .r { color: #C9A84C; }
.partner-card.vtc .partner-logo-text small { color: #999; }
.partner-logo-area {
  height: 60px;
  display: flex;
  align-items: center;
}
.partner-logo-text {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.6rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--b);
  line-height: 1;
}
.partner-logo-text .r { color: var(--r); }
.partner-logo-text small {
  display: block;
  font-size: 0.45rem;
  letter-spacing: 0.4em;
  color: var(--a);
  font-weight: 400;
  margin-top: 2px;
}
.partner-type {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--r);
}
.partner-name {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.partner-desc {
  font-size: 0.82rem;
  color: var(--a);
  line-height: 1.75;
  flex: 1;
}
.partner-services {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.partner-service {
  font-family: var(--D);
  font-size: 0.58rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.25rem 0.7rem;
  background: #f0f0f0;
  color: var(--a);
  border: 1px solid var(--g3);
}
.partner-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--D);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.7rem 1.5rem;
  background: var(--r);
  color: #fff;
  transition: background 0.2s;
  align-self: flex-start;
}
.partner-cta:hover { background: var(--r2); }

@media(max-width:900px) {
  .about-grid { grid-template-columns: 1fr; }
  .partners-grid { grid-template-columns: 1fr; }
}



.partner-card.heman {
  background: linear-gradient(135deg, #6B21A8 0%, #9333EA 40%, #F59E0B 100%);
  border: none;
  border-top: 4px solid #22D3EE;
  color: #ffffff;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 2rem;
  transition: all 0.25s;
  position: relative;
  overflow: hidden;
}
.partner-card.heman::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(107,33,168,0.95) 0%, rgba(147,51,234,0.9) 40%, rgba(245,158,11,0.85) 100%);
  z-index: 0;
}
.partner-card.heman > * { position: relative; z-index: 1; }
.partner-card.heman:hover {
  box-shadow: 0 8px 32px rgba(107,33,168,0.4);
  transform: translateY(-2px);
}
.partner-card.heman .partner-desc { color: rgba(255,255,255,0.85); }
.partner-card.heman .partner-name { color: #fff; }
.partner-card.heman .partner-type { color: #22D3EE; }
.partner-card.heman .partner-service {
  background: rgba(255,255,255,0.15);
  border-color: rgba(255,255,255,0.3);
  color: #fff;
}
.partner-card.heman .partner-cta {
  background: #22D3EE;
  color: #1a1a1a;
  font-weight: 700;
}
.partner-card.heman .partner-cta:hover { background: #06B6D4; }
.partner-card.heman .partner-logo-text {
  color: #fff !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.partner-card.heman .partner-logo-text span { color: #22D3EE !important; }
.partner-card.heman .partner-logo-text small { color: rgba(255,255,255,0.7) !important; }

/* Juste Debout — fond noir, accent vert fluo #AAFF00 (couleurs officielles JD) */
.partner-card.juste-debout {
  background: #0a0a0a;
  border: 1px solid #1a1a1a;
  border-top: 4px solid #AAFF00;
  color: #ffffff;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 2rem;
  transition: all 0.25s;
  position: relative;
  overflow: hidden;
}
.partner-card.juste-debout::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 160px; height: 160px;
  background: radial-gradient(ellipse at top right, rgba(170,255,0,0.07) 0%, transparent 70%);
  pointer-events: none;
}
.partner-card.juste-debout > * { position: relative; z-index: 1; }
.partner-card.juste-debout:hover {
  box-shadow: 0 8px 32px rgba(170,255,0,0.2);
  transform: translateY(-2px);
  border-color: #AAFF00;
}
.partner-card.juste-debout .partner-type { color: #AAFF00; }
.partner-card.juste-debout .partner-name { color: #ffffff; }
.partner-card.juste-debout .partner-desc { color: rgba(255,255,255,0.75); }
.partner-card.juste-debout .partner-service {
  background: rgba(170,255,0,0.1);
  border-color: rgba(170,255,0,0.3);
  color: #AAFF00;
}
.partner-card.juste-debout .partner-cta {
  background: #AAFF00;
  color: #0a0a0a;
  font-weight: 700;
}
.partner-card.juste-debout .partner-cta:hover { background: #88cc00; }
.partner-card.juste-debout .partner-logo-text {
  color: #ffffff;
  letter-spacing: 0.06em;
}
.partner-card.juste-debout .partner-logo-text span { color: #AAFF00 !important; }
.partner-card.juste-debout .partner-logo-text small { color: rgba(255,255,255,0.5) !important; }

/* ── ESPACES PARTENAIRES DISPONIBLES ───────────────────────────────── */
.partner-card.available {
  background: repeating-linear-gradient(
    45deg, #fafafa, #fafafa 8px, #f3f3f3 8px, #f3f3f3 16px
  );
  border: 2px dashed var(--g3);
  border-top: 4px dashed var(--r);
  cursor: pointer;
  transition: all 0.25s;
  text-decoration: none;
  color: var(--b);
}
.partner-card.available:hover {
  background: repeating-linear-gradient(
    45deg, #fff5f5, #fff5f5 8px, #ffe8e8 8px, #ffe8e8 16px
  );
  border-color: var(--r);
  box-shadow: 0 6px 24px rgba(204,0,0,0.12);
  transform: translateY(-2px);
}
.partner-slot-icon {
  font-size: 2.5rem;
  color: var(--g3);
  transition: color 0.2s;
  margin-bottom: 0.5rem;
}
.partner-card.available:hover .partner-slot-icon { color: var(--r); }
.partner-slot-label {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.5rem;
}
.partner-slot-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--b);
  margin-bottom: 0.8rem;
  opacity: 0.4;
}
.partner-slot-price {
  font-family: var(--D);
  font-size: 1.1rem;
  font-weight: 900;
  color: var(--r);
  line-height: 1;
  margin-bottom: 0.2rem;
}
.partner-slot-period {
  font-size: 0.7rem;
  color: var(--a);
  margin-bottom: 1rem;
}
.partner-slot-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--D);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.6rem 1.2rem;
  background: var(--r);
  color: #fff;
  transition: background 0.2s;
  border: none;
  cursor: pointer;
}
.partner-slot-btn:hover { background: var(--r2); }

/* ── ESPACES PUBLICITAIRES ─────────────────────────────────────────── */

/* Bannière hero */
.ad-banner-wrap {
  background: #fff;
  border-top: 4px solid var(--r);
  border-bottom: 2px solid var(--g3);
  padding: 0.5rem 0;
  position: relative;
  overflow: hidden;
}
.ad-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 2rem;
  gap: 1.5rem;
  max-width: 100%;
}
.ad-banner-slot {
  flex: 1;
  min-height: 160px;
  background: repeating-linear-gradient(
    45deg, #f9f9f9, #f9f9f9 8px, #f0f0f0 8px, #f0f0f0 16px
  );
  border: 2px dashed var(--g3);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  cursor: pointer;
  transition: all 0.2s;
}
.ad-banner-slot:hover { border-color: var(--r); background: #fff5f5; }
.ad-slot-label {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--a);
}
.ad-slot-price {
  font-family: var(--D);
  font-size: 1rem;
  font-weight: 700;
  color: var(--r);
  letter-spacing: 0.1em;
}
.ad-slot-cta {
  font-family: var(--D);
  font-size: 0.55rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--a);
  border: 1px solid var(--g3);
  padding: 0.2rem 0.6rem;
  margin-top: 0.2rem;
  transition: all 0.2s;
}
.ad-banner-slot:hover .ad-slot-cta { border-color: var(--r); color: var(--r); }

/* Section À l'affiche - carousel */
.ad-affiche-sec {
  background: #fff;
  padding: 3rem 2rem;
  border-top: 1px solid var(--g3);
  border-bottom: 1px solid var(--g3);
  position: relative;
  overflow: hidden;
}
.ad-affiche-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
.ad-affiche-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--b);
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.ad-affiche-title::before {
  content: '';
  width: 4px;
  height: 1.2rem;
  background: var(--r);
  display: inline-block;
}
.ad-affiche-prix {
  font-family: var(--D);
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--a);
  border: 1px solid var(--g3);
  padding: 0.35rem 0.9rem;
}
.ad-slides {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--g3);
}
.ad-slide {
  background: #f8f8f8;
  min-height: 280px;
  border: 2px dashed var(--g3);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  cursor: pointer;
  transition: all 0.2s;
  padding: 1rem;
  text-align: center;
}
.ad-slide:hover { border-color: var(--r); background: #fff5f5; }
.ad-slide-icon { font-size: 2rem; color: var(--g3); transition: color 0.2s; }
.ad-slide:hover .ad-slide-icon { color: var(--r); }
.ad-slide-type { font-family: var(--D); font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--a); }
.ad-slide-price { font-family: var(--D); font-size: 1rem; font-weight: 700; color: var(--r); }
.ad-slide-period { font-size: 0.65rem; color: var(--a); }
.ad-slide-btn { font-family: var(--D); font-size: 0.55rem; letter-spacing: 0.18em; text-transform: uppercase; padding: 0.25rem 0.7rem; border: 1px solid var(--g3); color: var(--a); margin-top: 0.3rem; transition: all 0.2s; }
.ad-slide:hover .ad-slide-btn { border-color: var(--r); color: var(--r); }

/* Card sponsorisée inline */
.ad-card-inline {
  background: #fff8f8;
  border: 1px solid rgba(204,0,0,0.15);
  border-left: 3px solid var(--r);
  padding: 1.2rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin: 2rem 0;
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
  z-index: 2;
}
.ad-card-inline:hover { background: #fff0f0; }
.ad-card-inline-left { display: flex; align-items: center; gap: 1.2rem; }
.ad-card-inline-icon {
  width: 60px; height: 60px;
  background: repeating-linear-gradient(45deg, #f5f5f5, #f5f5f5 4px, #ebebeb 4px, #ebebeb 8px);
  border: 1px dashed var(--g3);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; color: var(--g3); flex-shrink: 0;
}
.ad-card-inline-label { font-family: var(--D); font-size: 0.58rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--r); margin-bottom: 0.2rem; }
.ad-card-inline-text { font-family: var(--D); font-size: 0.85rem; font-weight: 700; text-transform: uppercase; color: var(--b); }
.ad-card-inline-sub { font-size: 0.72rem; color: var(--a); margin-top: 0.1rem; }
.ad-card-inline-price { text-align: right; flex-shrink: 0; }
.ad-card-price-main { font-family: var(--D); font-size: 1.3rem; font-weight: 900; color: var(--r); line-height: 1; }
.ad-card-price-period { font-size: 0.65rem; color: var(--a); margin-top: 0.2rem; }
.ad-card-price-reserve { font-family: var(--D); font-size: 0.6rem; letter-spacing: 0.15em; text-transform: uppercase; padding: 0.3rem 0.8rem; background: var(--r); color: #fff; margin-top: 0.5rem; display: inline-block; }

/* Footer sponsors */
.ad-footer-sponsors {
  background: #f5f5f5;
  border-top: 1px solid var(--g3);
  border-bottom: 1px solid var(--g3);
  padding: 1.5rem 2rem;
}
.ad-footer-sponsors-label {
  font-family: var(--D);
  font-size: 0.58rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--a);
  margin-bottom: 1rem;
  text-align: center;
}
.ad-footer-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1px;
  background: var(--g3);
}
.ad-footer-logo-slot {
  flex: 1;
  min-height: 60px;
  max-width: 160px;
  background: #fff;
  border: 2px dashed var(--g3);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  cursor: pointer;
  transition: all 0.2s;
  padding: 0.8rem;
}
.ad-footer-logo-slot:hover { border-color: var(--r); background: #fff5f5; }
.ad-footer-logo-slot i { font-size: 1.2rem; color: var(--g3); transition: color 0.2s; }
.ad-footer-logo-slot:hover i { color: var(--r); }
.ad-footer-logo-price { font-family: var(--D); font-size: 0.65rem; font-weight: 700; color: var(--r); }
.ad-footer-logo-label { font-size: 0.55rem; color: var(--a); letter-spacing: 0.1em; text-transform: uppercase; }

@media(max-width:900px) {
  .ad-slides { grid-template-columns: repeat(2,1fr); }
  .ad-footer-logos { flex-wrap: wrap; }
  .ad-banner { flex-direction: column; }
}
@media(max-width:600px) {
  .ad-slides { grid-template-columns: 1fr 1fr; }
}

.ct-form-wrap {
  max-width: 700px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.ct-form-header {
  margin-bottom: 2.5rem;
  text-align: center;
}
.ct-form-desc {
  color: var(--a);
  font-size: 0.9rem;
  line-height: 1.8;
  margin-top: 0.8rem;
}
.ct-form {
  background: #fff;
  border: 1px solid var(--g3);
  border-top: 3px solid var(--r);
  padding: 2.5rem;
}
.ct-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media(max-width:600px) {
  .ct-form-grid { grid-template-columns: 1fr; }
  .ct-form { padding: 1.5rem; }
}

.imm-links-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: var(--g3);
  position: relative;
  z-index: 10;
}
.imm-link-card {
  background: linear-gradient(145deg, #ffffff 0%, #f5f5f5 100%); border: 1px solid var(--g3);
  padding: 2rem 1.5rem;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  transition: background 0.25s;
  min-height: 260px;
  cursor: pointer;
  z-index: 2;
  text-decoration: none;
}
.imm-link-card:hover { background: linear-gradient(145deg, #f5f5f5 0%, #ebebeb 100%); }
.imm-link-icon {
  font-size: 2rem;
  color: rgba(204,0,0,0.4);
  margin-bottom: 0.5rem;
  transition: color 0.2s;
}
.imm-link-card:hover .imm-link-icon { color: var(--r); }
.imm-link-num {
  font-family: var(--D);
  font-size: 0.58rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--r);
}
.imm-link-name {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--b);
  line-height: 1;
}
.imm-link-desc {
  font-size: 0.75rem;
  color: var(--a);
  line-height: 1.6;
  flex: 1;
}
.imm-link-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--D);
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--a);
  margin-top: 0.5rem;
  transition: color 0.2s;
}
.imm-link-card:hover .imm-link-cta { color: var(--r); }
@media(max-width:900px) {
  


.ad-banner-full {
  width: 100%;
  min-height: 200px;
  background: repeating-linear-gradient(
    45deg, #fafafa, #fafafa 10px, #f3f3f3 10px, #f3f3f3 20px
  );
  border: 2px dashed var(--g3);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2.5rem 3rem;
  gap: 2rem;
  cursor: pointer;
  transition: all 0.25s;
  box-sizing: border-box;
}
.ad-banner-full:hover {
  background: #fff5f5;
  border-color: var(--r);
}
.ad-banner-full-icon {
  font-size: 4rem;
  color: var(--g3);
  flex-shrink: 0;
  transition: color 0.2s;
}
.ad-banner-full:hover .ad-banner-full-icon { color: var(--r); }
.ad-banner-full-center {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ad-banner-full-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--b);
  opacity: 0.3;
}
.ad-banner-full-sub {
  font-size: 0.8rem;
  color: var(--a);
  letter-spacing: 0.1em;
}
.ad-banner-full-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.3rem;
  flex-shrink: 0;
}
.ad-banner-full:hover .ad-slot-cta { border-color: var(--r); color: var(--r); }
@media(max-width:600px) {
  .ad-banner-full { flex-direction: column; text-align: center; padding: 1.5rem; }
  .ad-banner-full-right { align-items: center; }
}



/* ── RÉCAPITULATIF PRIX ─────────────────────────────────────────────── */
.prix-recap-box {
  border: 1px solid var(--g3);
  border-top: 3px solid var(--r);
  background: #fafafa;
}
.prix-recap-header {
  background: var(--b);
  padding: 0.7rem 1rem;
}
.prix-recap-label {
  font-family: var(--D);
  font-size: 0.62rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #fff;
}
.prix-recap-body {
  padding: 0.5rem 0;
}
.prix-recap-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 1rem;
  border-bottom: 1px solid var(--g3);
  font-size: 0.82rem;
}
.prix-recap-row:last-child { border-bottom: none; }
.prix-recap-key {
  color: var(--a);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-family: var(--D);
}
.prix-recap-val {
  color: var(--b);
  font-family: var(--D);
  font-size: 0.95rem;
  font-weight: 600;
}
.prix-recap-total {
  background: #fff0f0;
}
.prix-recap-total .prix-recap-key {
  color: var(--r);
  font-weight: 700;
}
.prix-recap-total .prix-recap-val {
  color: var(--r);
  font-size: 1.1rem;
  font-weight: 900;
}


/* ── MENTIONS LÉGALES MODAL ────────────────────────────────────────── */
.modal-ml {
  background: #fff;
  width: 100%;
  max-width: 750px;
  border-top: 4px solid var(--r);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
}
.ml-section {
  margin-bottom: 2rem;
}
.ml-section-title {
  font-family: var(--D);
  font-size: 0.7rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.8rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--g3);
}
.ml-row {
  display: flex;
  gap: 1rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid #f0f0f0;
  font-size: 0.85rem;
}
.ml-row:last-child { border-bottom: none; }
.ml-key {
  font-family: var(--D);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: var(--a);
  min-width: 160px;
  flex-shrink: 0;
}
.ml-val { color: #333; line-height: 1.6; }
.ml-body { padding: 2rem; }
.ml-intro {
  font-size: 0.82rem;
  color: var(--a);
  line-height: 1.8;
  margin-bottom: 2rem;
  padding: 1rem;
  background: #f8f8f8;
  border-left: 3px solid var(--r);
}


/* ── CGV MODAL ──────────────────────────────────────────────────────── */
.modal-cgv {
  background: #fff;
  width: 100%;
  max-width: 750px;
  border-top: 4px solid var(--r);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
}
.cgv-body { padding: 2rem; }
.cgv-section { margin-bottom: 1.8rem; }
.cgv-section-title {
  font-family: var(--D);
  font-size: 0.7rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.8rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--g3);
}
.cgv-text {
  font-size: 0.82rem;
  color: #444;
  line-height: 1.85;
}
.cgv-text b { color: var(--b); }

/* ── MODAL RÉSERVATION PUB ─────────────────────────────────────────── */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  z-index: 500;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  backdrop-filter: blur(4px);
}
.modal-overlay.open { display: flex; }

.modal {
  background: #fff;
  width: 100%;
  max-width: 560px;
  border-top: 4px solid var(--r);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
}

.modal-header {
  background: var(--b);
  padding: 1.5rem 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.modal-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #fff;
}
.modal-title span { color: var(--r); }
.modal-close {
  background: none;
  border: none;
  color: var(--a);
  font-size: 1.5rem;
  cursor: pointer;
  transition: color 0.2s;
  line-height: 1;
}
.modal-close:hover { color: var(--r); }

.modal-body { padding: 2rem; }

.modal-espace-selected {
  background: #fff8f8;
  border-left: 3px solid var(--r);
  padding: 0.8rem 1rem;
  margin-bottom: 1.5rem;
  font-family: var(--D);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--r);
}

.modal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.9rem;
}
.modal-grid .full { grid-column: 1 / -1; }

.modal-success {
  display: none;
  text-align: center;
  padding: 2rem;
}
.modal-success i { font-size: 3rem; color: var(--r); margin-bottom: 1rem; display: block; }
.modal-success-title {
  font-family: var(--D);
  font-size: 1.2rem;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--b);
  margin-bottom: 0.5rem;
}
.modal-success-sub { font-size: 0.85rem; color: var(--a); }



/* ── CARDS VIDÉO ────────────────────────────────────────────────────── */
.video-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  position: relative;
  z-index: 2;
  margin-top: 1.5rem;
}
.video-card {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  background: #111;
  cursor: pointer;
  transition: transform 0.2s;
}
.video-card:hover { transform: translateY(-3px); }
.video-card-thumb {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.6;
  transition: opacity 0.2s;
}
.video-card:hover .video-card-thumb { opacity: 0.45; }
.video-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.55) 45%, rgba(0,0,0,0.15) 100%);
}
.video-card-overlay-btm {
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent 25%, rgba(0,0,0,0.96) 100%);
}
.video-card-accent {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--r);
  z-index: 3;
}
.video-card-dm {
  position: absolute;
  right: 6%; top: 50%;
  transform: translateY(-50%);
  font-family: var(--D);
  font-weight: 900;
  font-size: 3rem;
  color: rgba(204,0,0,0.15);
  letter-spacing: -0.05em;
  z-index: 2;
  line-height: 1;
  pointer-events: none;
}
.video-card-duration {
  position: absolute;
  top: 0.5rem; right: 0.5rem;
  background: rgba(0,0,0,0.85);
  color: #fff;
  font-family: var(--D);
  font-size: 0.6rem;
  padding: 0.15rem 0.4rem;
  letter-spacing: 0.05em;
  z-index: 4;
}
.video-card-content {
  position: absolute;
  left: 0; bottom: 0; right: 0;
  padding: 0.7rem 0.9rem;
  z-index: 4;
}
.video-card-rubrique {
  font-family: var(--D);
  font-size: 0.5rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.2rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.video-card-rubrique::before {
  content: '';
  width: 14px; height: 1.5px;
  background: var(--r);
  flex-shrink: 0;
}
.video-card-name {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #fff;
  line-height: 1;
  margin-bottom: 0.2rem;
}
.video-card-quote {
  font-size: 0.52rem;
  color: rgba(255,255,255,0.55);
  line-height: 1.3;
  font-style: italic;
  max-width: 65%;
}
.video-card-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
  opacity: 0;
  transition: opacity 0.2s;
}
.video-card:hover .video-card-play { opacity: 1; }
.video-play-btn {
  width: 44px; height: 44px;
  border: 2px solid rgba(255,255,255,0.8);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 16px;
  background: rgba(204,0,0,0.7);
}

/* Card wide immersion */
.video-card-wide {
  aspect-ratio: 21/9;
  grid-column: 1 / -1;
}
.video-card-wide .video-card-dm { font-size: 5rem; }
.video-card-wide .video-card-name { font-size: 1.4rem; }
.video-card-wide .video-card-quote { max-width: 40%; font-size: 0.6rem; }

/* ── MODAL VIDÉO ────────────────────────────────────────────────────── */
.modal-video-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.92);
  z-index: 600;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
.modal-video-overlay.open { display: flex; }
.modal-video-container {
  width: 100%;
  max-width: 900px;
  position: relative;
}
.modal-video-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.8rem;
}
.modal-video-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  color: #fff;
  letter-spacing: 0.04em;
}
.modal-video-title span { color: var(--r); }
.modal-video-close {
  background: none;
  border: 1px solid rgba(255,255,255,0.3);
  color: rgba(255,255,255,0.7);
  width: 36px; height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 1.2rem;
  transition: all 0.2s;
}
.modal-video-close:hover { border-color: var(--r); color: var(--r); }
.modal-video-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  background: #000;
}
.modal-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.modal-video-yt-link {
  margin-top: 0.8rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.6rem;
}
.modal-video-yt-link a {
  font-family: var(--D);
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--a);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: color 0.2s;
}
.modal-video-yt-link a:hover { color: var(--r); }

@media(max-width:900px) {
  .video-grid { grid-template-columns: repeat(2,1fr); }
}
@media(max-width:600px) {
  .video-grid { grid-template-columns: 1fr; }
}


/* ── ARTICLES ────────────────────────────────────────────────────────── */
.articles-sec {
  background: #ffffff;
  padding: 5rem 2rem;
  position: relative;
  overflow: hidden;
}
.articles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  position: relative;
  z-index: 2;
  margin-top: 1.5rem;
}
.article-card {
  background: #f8f8f8;
  border: 1px solid var(--g3);
  border-top: 3px solid var(--r);
  display: flex;
  flex-direction: column;
  transition: all 0.2s;
  cursor: pointer;
  text-decoration: none;
  color: var(--b);
}
.article-card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}
.article-card-img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  background: var(--g2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.article-card-img-placeholder {
  width: 100%;
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--g2), var(--g3));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: var(--g3);
}
.article-card-body { padding: 1.2rem; flex: 1; display: flex; flex-direction: column; gap: 0.5rem; }
.article-card-cat {
  font-family: var(--D);
  font-size: 0.58rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--r);
}
.article-card-title {
  font-family: var(--D);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.2;
  color: var(--b);
}
.article-card-excerpt {
  font-size: 0.78rem;
  color: var(--a);
  line-height: 1.65;
  flex: 1;
}
.article-card-meta {
  font-size: 0.65rem;
  color: var(--a);
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.article-card-meta::before { content: ''; width: 20px; height: 1px; background: var(--r); }
.articles-coming-soon {
  grid-column: 1 / -1;
  text-align: center;
  padding: 4rem 2rem;
  background: #f8f8f8;
  border: 2px dashed var(--g3);
}
.articles-coming-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.5rem;
  text-transform: uppercase;
  color: var(--b);
  opacity: 0.3;
  margin-bottom: 0.8rem;
}
.articles-coming-sub {
  font-size: 0.82rem;
  color: var(--a);
  line-height: 1.8;
}
@media(max-width:900px) {
  .articles-grid { grid-template-columns: 1fr 1fr; }
}
@media(max-width:600px) {
  .articles-grid { grid-template-columns: 1fr; }
}

/* ── QUI SOMMES-NOUS ────────────────────────────────────────────────── */

.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
  position: relative;
  z-index: 2;
}
.about-intro {
  font-family: var(--D);
  font-weight: 900;
  font-size: clamp(2rem, 4vw, 3.2rem);
  text-transform: uppercase;
  line-height: 0.9;
  margin-bottom: 1.5rem;
  color: #fff;
}
.about-intro .r { color: var(--r); }
.about-tagline {
  font-size: 1rem;
  color: #bbb;
  line-height: 1.85;
  margin-bottom: 2rem;
  font-style: italic;
  border-left: 3px solid var(--r);
  padding-left: 1.2rem;
}
.about-body {
  font-size: 0.88rem;
  color: #aaa;
  line-height: 1.9;
}
.about-profiles {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.profile-card {
  background: #242424;
  border-left: 4px solid var(--r);
  padding: 1.8rem;
}
.profile-name {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #fff;
  margin-bottom: 0.3rem;
}
.profile-title {
  font-family: var(--D);
  font-size: 0.65rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 1rem;
}
.profile-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1rem;
}
.profile-tag {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.25rem 0.7rem;
  background: var(--b);
  color: #fff;
}
.profile-tag.r { background: var(--r); }
.profile-desc {
  font-size: 0.82rem;
  color: #999;
  line-height: 1.8;
}

/* ── PARTENAIRES ────────────────────────────────────────────────────── */
.partners-sec {
  background: #f5f5f5;
  padding: 4rem 2rem;
  border-top: 1px solid var(--g3);
}
.partners-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  position: relative;
  z-index: 2;
  margin-top: 1rem;
}
.partner-card {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: all 0.25s;
  text-decoration: none;
}
/* Studio — blanc gris noir */
.partner-card.studio {
  background: #ffffff;
  border: 1px solid #ddd;
  border-top: 4px solid #1a1a1a;
  color: #1a1a1a;
}
.partner-card.studio:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,0.12);
  transform: translateY(-2px);
}
.partner-card.studio .partner-type { color: #555; }
.partner-card.studio .partner-name { color: #1a1a1a; }
.partner-card.studio .partner-desc { color: #666; }
.partner-card.studio .partner-service {
  background: #f0f0f0;
  color: #555;
  border-color: #ddd;
}
.partner-card.studio .partner-cta {
  background: #1a1a1a;
  color: #fff;
}
.partner-card.studio .partner-cta:hover { background: #333; }
.partner-card.studio .partner-logo-text { color: #1a1a1a; }
.partner-card.studio .partner-logo-text .r { color: #555; }

/* VTC — fond noir, accent or */
.partner-card.vtc {
  background: #0d0d0d;
  border: 1px solid #2a2a2a;
  border-top: 4px solid #C9A84C;
  color: #f0ede6;
}
.partner-card.vtc:hover {
  box-shadow: 0 6px 24px rgba(201,168,76,0.2);
  transform: translateY(-2px);
}
.partner-card.vtc .partner-type { color: #C9A84C; }
.partner-card.vtc .partner-name { color: #f0ede6; }
.partner-card.vtc .partner-desc { color: #999; }
.partner-card.vtc .partner-service {
  background: rgba(201,168,76,0.1);
  color: #C9A84C;
  border-color: rgba(201,168,76,0.3);
}
.partner-card.vtc .partner-cta {
  background: #C9A84C;
  color: #0d0d0d;
}
.partner-card.vtc .partner-cta:hover { background: #e0bc5a; }
.partner-card.vtc .partner-logo-text { color: #f0ede6; }
.partner-card.vtc .partner-logo-text .r { color: #C9A84C; }
.partner-card.vtc .partner-logo-text small { color: #999; }
.partner-logo-area {
  height: 60px;
  display: flex;
  align-items: center;
}
.partner-logo-text {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.6rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--b);
  line-height: 1;
}
.partner-logo-text .r { color: var(--r); }
.partner-logo-text small {
  display: block;
  font-size: 0.45rem;
  letter-spacing: 0.4em;
  color: var(--a);
  font-weight: 400;
  margin-top: 2px;
}
.partner-type {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--r);
}
.partner-name {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.partner-desc {
  font-size: 0.82rem;
  color: var(--a);
  line-height: 1.75;
  flex: 1;
}
.partner-services {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.partner-service {
  font-family: var(--D);
  font-size: 0.58rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.25rem 0.7rem;
  background: #f0f0f0;
  color: var(--a);
  border: 1px solid var(--g3);
}
.partner-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--D);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.7rem 1.5rem;
  background: var(--r);
  color: #fff;
  transition: background 0.2s;
  align-self: flex-start;
}
.partner-cta:hover { background: var(--r2); }

@media(max-width:900px) {
  .about-grid { grid-template-columns: 1fr; }
  .partners-grid { grid-template-columns: 1fr; }
}



.partner-card.heman {
  background: linear-gradient(135deg, #6B21A8 0%, #9333EA 40%, #F59E0B 100%);
  border: none;
  border-top: 4px solid #22D3EE;
  color: #ffffff;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 2rem;
  transition: all 0.25s;
  position: relative;
  overflow: hidden;
}
.partner-card.heman::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(107,33,168,0.95) 0%, rgba(147,51,234,0.9) 40%, rgba(245,158,11,0.85) 100%);
  z-index: 0;
}
.partner-card.heman > * { position: relative; z-index: 1; }
.partner-card.heman:hover {
  box-shadow: 0 8px 32px rgba(107,33,168,0.4);
  transform: translateY(-2px);
}
.partner-card.heman .partner-desc { color: rgba(255,255,255,0.85); }
.partner-card.heman .partner-name { color: #fff; }
.partner-card.heman .partner-type { color: #22D3EE; }
.partner-card.heman .partner-service {
  background: rgba(255,255,255,0.15);
  border-color: rgba(255,255,255,0.3);
  color: #fff;
}
.partner-card.heman .partner-cta {
  background: #22D3EE;
  color: #1a1a1a;
  font-weight: 700;
}
.partner-card.heman .partner-cta:hover { background: #06B6D4; }
.partner-card.heman .partner-logo-text {
  color: #fff !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.partner-card.heman .partner-logo-text span { color: #22D3EE !important; }
.partner-card.heman .partner-logo-text small { color: rgba(255,255,255,0.7) !important; }

/* ── ESPACES PARTENAIRES DISPONIBLES ───────────────────────────────── */
.partner-card.available {
  background: repeating-linear-gradient(
    45deg, #fafafa, #fafafa 8px, #f3f3f3 8px, #f3f3f3 16px
  );
  border: 2px dashed var(--g3);
  border-top: 4px dashed var(--r);
  cursor: pointer;
  transition: all 0.25s;
  text-decoration: none;
  color: var(--b);
}
.partner-card.available:hover {
  background: repeating-linear-gradient(
    45deg, #fff5f5, #fff5f5 8px, #ffe8e8 8px, #ffe8e8 16px
  );
  border-color: var(--r);
  box-shadow: 0 6px 24px rgba(204,0,0,0.12);
  transform: translateY(-2px);
}
.partner-slot-icon {
  font-size: 2.5rem;
  color: var(--g3);
  transition: color 0.2s;
  margin-bottom: 0.5rem;
}
.partner-card.available:hover .partner-slot-icon { color: var(--r); }
.partner-slot-label {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.5rem;
}
.partner-slot-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--b);
  margin-bottom: 0.8rem;
  opacity: 0.4;
}
.partner-slot-price {
  font-family: var(--D);
  font-size: 1.1rem;
  font-weight: 900;
  color: var(--r);
  line-height: 1;
  margin-bottom: 0.2rem;
}
.partner-slot-period {
  font-size: 0.7rem;
  color: var(--a);
  margin-bottom: 1rem;
}
.partner-slot-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--D);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.6rem 1.2rem;
  background: var(--r);
  color: #fff;
  transition: background 0.2s;
  border: none;
  cursor: pointer;
}
.partner-slot-btn:hover { background: var(--r2); }

/* ── ESPACES PUBLICITAIRES ─────────────────────────────────────────── */

/* Bannière hero */
.ad-banner-wrap {
  background: #fff;
  border-top: 4px solid var(--r);
  border-bottom: 2px solid var(--g3);
  padding: 0.5rem 0;
  position: relative;
  overflow: hidden;
}
.ad-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 2rem;
  gap: 1.5rem;
  max-width: 100%;
}
.ad-banner-slot {
  flex: 1;
  min-height: 160px;
  background: repeating-linear-gradient(
    45deg, #f9f9f9, #f9f9f9 8px, #f0f0f0 8px, #f0f0f0 16px
  );
  border: 2px dashed var(--g3);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  cursor: pointer;
  transition: all 0.2s;
}
.ad-banner-slot:hover { border-color: var(--r); background: #fff5f5; }
.ad-slot-label {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--a);
}
.ad-slot-price {
  font-family: var(--D);
  font-size: 1rem;
  font-weight: 700;
  color: var(--r);
  letter-spacing: 0.1em;
}
.ad-slot-cta {
  font-family: var(--D);
  font-size: 0.55rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--a);
  border: 1px solid var(--g3);
  padding: 0.2rem 0.6rem;
  margin-top: 0.2rem;
  transition: all 0.2s;
}
.ad-banner-slot:hover .ad-slot-cta { border-color: var(--r); color: var(--r); }

/* Section À l'affiche - carousel */
.ad-affiche-sec {
  background: #fff;
  padding: 3rem 2rem;
  border-top: 1px solid var(--g3);
  border-bottom: 1px solid var(--g3);
  position: relative;
  overflow: hidden;
}
.ad-affiche-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
.ad-affiche-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--b);
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.ad-affiche-title::before {
  content: '';
  width: 4px;
  height: 1.2rem;
  background: var(--r);
  display: inline-block;
}
.ad-affiche-prix {
  font-family: var(--D);
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--a);
  border: 1px solid var(--g3);
  padding: 0.35rem 0.9rem;
}
.ad-slides {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--g3);
}
.ad-slide {
  background: #f8f8f8;
  min-height: 280px;
  border: 2px dashed var(--g3);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  cursor: pointer;
  transition: all 0.2s;
  padding: 1rem;
  text-align: center;
}
.ad-slide:hover { border-color: var(--r); background: #fff5f5; }
.ad-slide-icon { font-size: 2rem; color: var(--g3); transition: color 0.2s; }
.ad-slide:hover .ad-slide-icon { color: var(--r); }
.ad-slide-type { font-family: var(--D); font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--a); }
.ad-slide-price { font-family: var(--D); font-size: 1rem; font-weight: 700; color: var(--r); }
.ad-slide-period { font-size: 0.65rem; color: var(--a); }
.ad-slide-btn { font-family: var(--D); font-size: 0.55rem; letter-spacing: 0.18em; text-transform: uppercase; padding: 0.25rem 0.7rem; border: 1px solid var(--g3); color: var(--a); margin-top: 0.3rem; transition: all 0.2s; }
.ad-slide:hover .ad-slide-btn { border-color: var(--r); color: var(--r); }

/* Card sponsorisée inline */
.ad-card-inline {
  background: #fff8f8;
  border: 1px solid rgba(204,0,0,0.15);
  border-left: 3px solid var(--r);
  padding: 1.2rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin: 2rem 0;
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
  z-index: 2;
}
.ad-card-inline:hover { background: #fff0f0; }
.ad-card-inline-left { display: flex; align-items: center; gap: 1.2rem; }
.ad-card-inline-icon {
  width: 60px; height: 60px;
  background: repeating-linear-gradient(45deg, #f5f5f5, #f5f5f5 4px, #ebebeb 4px, #ebebeb 8px);
  border: 1px dashed var(--g3);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; color: var(--g3); flex-shrink: 0;
}
.ad-card-inline-label { font-family: var(--D); font-size: 0.58rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--r); margin-bottom: 0.2rem; }
.ad-card-inline-text { font-family: var(--D); font-size: 0.85rem; font-weight: 700; text-transform: uppercase; color: var(--b); }
.ad-card-inline-sub { font-size: 0.72rem; color: var(--a); margin-top: 0.1rem; }
.ad-card-inline-price { text-align: right; flex-shrink: 0; }
.ad-card-price-main { font-family: var(--D); font-size: 1.3rem; font-weight: 900; color: var(--r); line-height: 1; }
.ad-card-price-period { font-size: 0.65rem; color: var(--a); margin-top: 0.2rem; }
.ad-card-price-reserve { font-family: var(--D); font-size: 0.6rem; letter-spacing: 0.15em; text-transform: uppercase; padding: 0.3rem 0.8rem; background: var(--r); color: #fff; margin-top: 0.5rem; display: inline-block; }

/* Footer sponsors */
.ad-footer-sponsors {
  background: #f5f5f5;
  border-top: 1px solid var(--g3);
  border-bottom: 1px solid var(--g3);
  padding: 1.5rem 2rem;
}
.ad-footer-sponsors-label {
  font-family: var(--D);
  font-size: 0.58rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--a);
  margin-bottom: 1rem;
  text-align: center;
}
.ad-footer-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1px;
  background: var(--g3);
}
.ad-footer-logo-slot {
  flex: 1;
  min-height: 60px;
  max-width: 160px;
  background: #fff;
  border: 2px dashed var(--g3);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  cursor: pointer;
  transition: all 0.2s;
  padding: 0.8rem;
}
.ad-footer-logo-slot:hover { border-color: var(--r); background: #fff5f5; }
.ad-footer-logo-slot i { font-size: 1.2rem; color: var(--g3); transition: color 0.2s; }
.ad-footer-logo-slot:hover i { color: var(--r); }
.ad-footer-logo-price { font-family: var(--D); font-size: 0.65rem; font-weight: 700; color: var(--r); }
.ad-footer-logo-label { font-size: 0.55rem; color: var(--a); letter-spacing: 0.1em; text-transform: uppercase; }

@media(max-width:900px) {
  .ad-slides { grid-template-columns: repeat(2,1fr); }
  .ad-footer-logos { flex-wrap: wrap; }
  .ad-banner { flex-direction: column; }
}
@media(max-width:600px) {
  .ad-slides { grid-template-columns: 1fr 1fr; }
}

.ct-form-wrap {
  max-width: 700px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.ct-form-header {
  margin-bottom: 2.5rem;
  text-align: center;
}
.ct-form-desc {
  color: var(--a);
  font-size: 0.9rem;
  line-height: 1.8;
  margin-top: 0.8rem;
}
.ct-form {
  background: #fff;
  border: 1px solid var(--g3);
  border-top: 3px solid var(--r);
  padding: 2.5rem;
}
.ct-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media(max-width:600px) {
  .ct-form-grid { grid-template-columns: 1fr; }
  .ct-form { padding: 1.5rem; }
}

.imm-links-grid { grid-template-columns: repeat(2, 1fr); }
}
@media(max-width:600px) {
  


.ad-banner-full {
  width: 100%;
  min-height: 200px;
  background: repeating-linear-gradient(
    45deg, #fafafa, #fafafa 10px, #f3f3f3 10px, #f3f3f3 20px
  );
  border: 2px dashed var(--g3);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2.5rem 3rem;
  gap: 2rem;
  cursor: pointer;
  transition: all 0.25s;
  box-sizing: border-box;
}
.ad-banner-full:hover {
  background: #fff5f5;
  border-color: var(--r);
}
.ad-banner-full-icon {
  font-size: 4rem;
  color: var(--g3);
  flex-shrink: 0;
  transition: color 0.2s;
}
.ad-banner-full:hover .ad-banner-full-icon { color: var(--r); }
.ad-banner-full-center {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ad-banner-full-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--b);
  opacity: 0.3;
}
.ad-banner-full-sub {
  font-size: 0.8rem;
  color: var(--a);
  letter-spacing: 0.1em;
}
.ad-banner-full-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.3rem;
  flex-shrink: 0;
}
.ad-banner-full:hover .ad-slot-cta { border-color: var(--r); color: var(--r); }
@media(max-width:600px) {
  .ad-banner-full { flex-direction: column; text-align: center; padding: 1.5rem; }
  .ad-banner-full-right { align-items: center; }
}



/* ── RÉCAPITULATIF PRIX ─────────────────────────────────────────────── */
.prix-recap-box {
  border: 1px solid var(--g3);
  border-top: 3px solid var(--r);
  background: #fafafa;
}
.prix-recap-header {
  background: var(--b);
  padding: 0.7rem 1rem;
}
.prix-recap-label {
  font-family: var(--D);
  font-size: 0.62rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #fff;
}
.prix-recap-body {
  padding: 0.5rem 0;
}
.prix-recap-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 1rem;
  border-bottom: 1px solid var(--g3);
  font-size: 0.82rem;
}
.prix-recap-row:last-child { border-bottom: none; }
.prix-recap-key {
  color: var(--a);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-family: var(--D);
}
.prix-recap-val {
  color: var(--b);
  font-family: var(--D);
  font-size: 0.95rem;
  font-weight: 600;
}
.prix-recap-total {
  background: #fff0f0;
}
.prix-recap-total .prix-recap-key {
  color: var(--r);
  font-weight: 700;
}
.prix-recap-total .prix-recap-val {
  color: var(--r);
  font-size: 1.1rem;
  font-weight: 900;
}


/* ── MENTIONS LÉGALES MODAL ────────────────────────────────────────── */
.modal-ml {
  background: #fff;
  width: 100%;
  max-width: 750px;
  border-top: 4px solid var(--r);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
}
.ml-section {
  margin-bottom: 2rem;
}
.ml-section-title {
  font-family: var(--D);
  font-size: 0.7rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.8rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--g3);
}
.ml-row {
  display: flex;
  gap: 1rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid #f0f0f0;
  font-size: 0.85rem;
}
.ml-row:last-child { border-bottom: none; }
.ml-key {
  font-family: var(--D);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: var(--a);
  min-width: 160px;
  flex-shrink: 0;
}
.ml-val { color: #333; line-height: 1.6; }
.ml-body { padding: 2rem; }
.ml-intro {
  font-size: 0.82rem;
  color: var(--a);
  line-height: 1.8;
  margin-bottom: 2rem;
  padding: 1rem;
  background: #f8f8f8;
  border-left: 3px solid var(--r);
}


/* ── CGV MODAL ──────────────────────────────────────────────────────── */
.modal-cgv {
  background: #fff;
  width: 100%;
  max-width: 750px;
  border-top: 4px solid var(--r);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
}
.cgv-body { padding: 2rem; }
.cgv-section { margin-bottom: 1.8rem; }
.cgv-section-title {
  font-family: var(--D);
  font-size: 0.7rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.8rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--g3);
}
.cgv-text {
  font-size: 0.82rem;
  color: #444;
  line-height: 1.85;
}
.cgv-text b { color: var(--b); }

/* ── MODAL RÉSERVATION PUB ─────────────────────────────────────────── */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  z-index: 500;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  backdrop-filter: blur(4px);
}
.modal-overlay.open { display: flex; }

.modal {
  background: #fff;
  width: 100%;
  max-width: 560px;
  border-top: 4px solid var(--r);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
}

.modal-header {
  background: var(--b);
  padding: 1.5rem 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.modal-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #fff;
}
.modal-title span { color: var(--r); }
.modal-close {
  background: none;
  border: none;
  color: var(--a);
  font-size: 1.5rem;
  cursor: pointer;
  transition: color 0.2s;
  line-height: 1;
}
.modal-close:hover { color: var(--r); }

.modal-body { padding: 2rem; }

.modal-espace-selected {
  background: #fff8f8;
  border-left: 3px solid var(--r);
  padding: 0.8rem 1rem;
  margin-bottom: 1.5rem;
  font-family: var(--D);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--r);
}

.modal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.9rem;
}
.modal-grid .full { grid-column: 1 / -1; }

.modal-success {
  display: none;
  text-align: center;
  padding: 2rem;
}
.modal-success i { font-size: 3rem; color: var(--r); margin-bottom: 1rem; display: block; }
.modal-success-title {
  font-family: var(--D);
  font-size: 1.2rem;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--b);
  margin-bottom: 0.5rem;
}
.modal-success-sub { font-size: 0.85rem; color: var(--a); }



/* ── CARDS VIDÉO ────────────────────────────────────────────────────── */
.video-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  position: relative;
  z-index: 2;
  margin-top: 1.5rem;
}
.video-card {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  background: #111;
  cursor: pointer;
  transition: transform 0.2s;
}
.video-card:hover { transform: translateY(-3px); }
.video-card-thumb {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.6;
  transition: opacity 0.2s;
}
.video-card:hover .video-card-thumb { opacity: 0.45; }
.video-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.55) 45%, rgba(0,0,0,0.15) 100%);
}
.video-card-overlay-btm {
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent 25%, rgba(0,0,0,0.96) 100%);
}
.video-card-accent {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--r);
  z-index: 3;
}
.video-card-dm {
  position: absolute;
  right: 6%; top: 50%;
  transform: translateY(-50%);
  font-family: var(--D);
  font-weight: 900;
  font-size: 3rem;
  color: rgba(204,0,0,0.15);
  letter-spacing: -0.05em;
  z-index: 2;
  line-height: 1;
  pointer-events: none;
}
.video-card-duration {
  position: absolute;
  top: 0.5rem; right: 0.5rem;
  background: rgba(0,0,0,0.85);
  color: #fff;
  font-family: var(--D);
  font-size: 0.6rem;
  padding: 0.15rem 0.4rem;
  letter-spacing: 0.05em;
  z-index: 4;
}
.video-card-content {
  position: absolute;
  left: 0; bottom: 0; right: 0;
  padding: 0.7rem 0.9rem;
  z-index: 4;
}
.video-card-rubrique {
  font-family: var(--D);
  font-size: 0.5rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.2rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.video-card-rubrique::before {
  content: '';
  width: 14px; height: 1.5px;
  background: var(--r);
  flex-shrink: 0;
}
.video-card-name {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #fff;
  line-height: 1;
  margin-bottom: 0.2rem;
}
.video-card-quote {
  font-size: 0.52rem;
  color: rgba(255,255,255,0.55);
  line-height: 1.3;
  font-style: italic;
  max-width: 65%;
}
.video-card-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
  opacity: 0;
  transition: opacity 0.2s;
}
.video-card:hover .video-card-play { opacity: 1; }
.video-play-btn {
  width: 44px; height: 44px;
  border: 2px solid rgba(255,255,255,0.8);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 16px;
  background: rgba(204,0,0,0.7);
}

/* Card wide immersion */
.video-card-wide {
  aspect-ratio: 21/9;
  grid-column: 1 / -1;
}
.video-card-wide .video-card-dm { font-size: 5rem; }
.video-card-wide .video-card-name { font-size: 1.4rem; }
.video-card-wide .video-card-quote { max-width: 40%; font-size: 0.6rem; }

/* ── MODAL VIDÉO ────────────────────────────────────────────────────── */
.modal-video-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.92);
  z-index: 600;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
.modal-video-overlay.open { display: flex; }
.modal-video-container {
  width: 100%;
  max-width: 900px;
  position: relative;
}
.modal-video-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.8rem;
}
.modal-video-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  color: #fff;
  letter-spacing: 0.04em;
}
.modal-video-title span { color: var(--r); }
.modal-video-close {
  background: none;
  border: 1px solid rgba(255,255,255,0.3);
  color: rgba(255,255,255,0.7);
  width: 36px; height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 1.2rem;
  transition: all 0.2s;
}
.modal-video-close:hover { border-color: var(--r); color: var(--r); }
.modal-video-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  background: #000;
}
.modal-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.modal-video-yt-link {
  margin-top: 0.8rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.6rem;
}
.modal-video-yt-link a {
  font-family: var(--D);
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--a);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: color 0.2s;
}
.modal-video-yt-link a:hover { color: var(--r); }

@media(max-width:900px) {
  .video-grid { grid-template-columns: repeat(2,1fr); }
}
@media(max-width:600px) {
  .video-grid { grid-template-columns: 1fr; }
}


/* ── ARTICLES ────────────────────────────────────────────────────────── */
.articles-sec {
  background: #ffffff;
  padding: 5rem 2rem;
  position: relative;
  overflow: hidden;
}
.articles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  position: relative;
  z-index: 2;
  margin-top: 1.5rem;
}
.article-card {
  background: #f8f8f8;
  border: 1px solid var(--g3);
  border-top: 3px solid var(--r);
  display: flex;
  flex-direction: column;
  transition: all 0.2s;
  cursor: pointer;
  text-decoration: none;
  color: var(--b);
}
.article-card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}
.article-card-img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  background: var(--g2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.article-card-img-placeholder {
  width: 100%;
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--g2), var(--g3));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: var(--g3);
}
.article-card-body { padding: 1.2rem; flex: 1; display: flex; flex-direction: column; gap: 0.5rem; }
.article-card-cat {
  font-family: var(--D);
  font-size: 0.58rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--r);
}
.article-card-title {
  font-family: var(--D);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.2;
  color: var(--b);
}
.article-card-excerpt {
  font-size: 0.78rem;
  color: var(--a);
  line-height: 1.65;
  flex: 1;
}
.article-card-meta {
  font-size: 0.65rem;
  color: var(--a);
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.article-card-meta::before { content: ''; width: 20px; height: 1px; background: var(--r); }
.articles-coming-soon {
  grid-column: 1 / -1;
  text-align: center;
  padding: 4rem 2rem;
  background: #f8f8f8;
  border: 2px dashed var(--g3);
}
.articles-coming-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.5rem;
  text-transform: uppercase;
  color: var(--b);
  opacity: 0.3;
  margin-bottom: 0.8rem;
}
.articles-coming-sub {
  font-size: 0.82rem;
  color: var(--a);
  line-height: 1.8;
}
@media(max-width:900px) {
  .articles-grid { grid-template-columns: 1fr 1fr; }
}
@media(max-width:600px) {
  .articles-grid { grid-template-columns: 1fr; }
}

/* ── QUI SOMMES-NOUS ────────────────────────────────────────────────── */

.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
  position: relative;
  z-index: 2;
}
.about-intro {
  font-family: var(--D);
  font-weight: 900;
  font-size: clamp(2rem, 4vw, 3.2rem);
  text-transform: uppercase;
  line-height: 0.9;
  margin-bottom: 1.5rem;
  color: #fff;
}
.about-intro .r { color: var(--r); }
.about-tagline {
  font-size: 1rem;
  color: #bbb;
  line-height: 1.85;
  margin-bottom: 2rem;
  font-style: italic;
  border-left: 3px solid var(--r);
  padding-left: 1.2rem;
}
.about-body {
  font-size: 0.88rem;
  color: #aaa;
  line-height: 1.9;
}
.about-profiles {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.profile-card {
  background: #242424;
  border-left: 4px solid var(--r);
  padding: 1.8rem;
}
.profile-name {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #fff;
  margin-bottom: 0.3rem;
}
.profile-title {
  font-family: var(--D);
  font-size: 0.65rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 1rem;
}
.profile-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1rem;
}
.profile-tag {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.25rem 0.7rem;
  background: var(--b);
  color: #fff;
}
.profile-tag.r { background: var(--r); }
.profile-desc {
  font-size: 0.82rem;
  color: #999;
  line-height: 1.8;
}

/* ── PARTENAIRES ────────────────────────────────────────────────────── */
.partners-sec {
  background: #f5f5f5;
  padding: 4rem 2rem;
  border-top: 1px solid var(--g3);
}
.partners-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  position: relative;
  z-index: 2;
  margin-top: 1rem;
}
.partner-card {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: all 0.25s;
  text-decoration: none;
}
/* Studio — blanc gris noir */
.partner-card.studio {
  background: #ffffff;
  border: 1px solid #ddd;
  border-top: 4px solid #1a1a1a;
  color: #1a1a1a;
}
.partner-card.studio:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,0.12);
  transform: translateY(-2px);
}
.partner-card.studio .partner-type { color: #555; }
.partner-card.studio .partner-name { color: #1a1a1a; }
.partner-card.studio .partner-desc { color: #666; }
.partner-card.studio .partner-service {
  background: #f0f0f0;
  color: #555;
  border-color: #ddd;
}
.partner-card.studio .partner-cta {
  background: #1a1a1a;
  color: #fff;
}
.partner-card.studio .partner-cta:hover { background: #333; }
.partner-card.studio .partner-logo-text { color: #1a1a1a; }
.partner-card.studio .partner-logo-text .r { color: #555; }

/* VTC — fond noir, accent or */
.partner-card.vtc {
  background: #0d0d0d;
  border: 1px solid #2a2a2a;
  border-top: 4px solid #C9A84C;
  color: #f0ede6;
}
.partner-card.vtc:hover {
  box-shadow: 0 6px 24px rgba(201,168,76,0.2);
  transform: translateY(-2px);
}
.partner-card.vtc .partner-type { color: #C9A84C; }
.partner-card.vtc .partner-name { color: #f0ede6; }
.partner-card.vtc .partner-desc { color: #999; }
.partner-card.vtc .partner-service {
  background: rgba(201,168,76,0.1);
  color: #C9A84C;
  border-color: rgba(201,168,76,0.3);
}
.partner-card.vtc .partner-cta {
  background: #C9A84C;
  color: #0d0d0d;
}
.partner-card.vtc .partner-cta:hover { background: #e0bc5a; }
.partner-card.vtc .partner-logo-text { color: #f0ede6; }
.partner-card.vtc .partner-logo-text .r { color: #C9A84C; }
.partner-card.vtc .partner-logo-text small { color: #999; }
.partner-logo-area {
  height: 60px;
  display: flex;
  align-items: center;
}
.partner-logo-text {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.6rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--b);
  line-height: 1;
}
.partner-logo-text .r { color: var(--r); }
.partner-logo-text small {
  display: block;
  font-size: 0.45rem;
  letter-spacing: 0.4em;
  color: var(--a);
  font-weight: 400;
  margin-top: 2px;
}
.partner-type {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--r);
}
.partner-name {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.partner-desc {
  font-size: 0.82rem;
  color: var(--a);
  line-height: 1.75;
  flex: 1;
}
.partner-services {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.partner-service {
  font-family: var(--D);
  font-size: 0.58rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.25rem 0.7rem;
  background: #f0f0f0;
  color: var(--a);
  border: 1px solid var(--g3);
}
.partner-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--D);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.7rem 1.5rem;
  background: var(--r);
  color: #fff;
  transition: background 0.2s;
  align-self: flex-start;
}
.partner-cta:hover { background: var(--r2); }

@media(max-width:900px) {
  .about-grid { grid-template-columns: 1fr; }
  .partners-grid { grid-template-columns: 1fr; }
}



.partner-card.heman {
  background: linear-gradient(135deg, #6B21A8 0%, #9333EA 40%, #F59E0B 100%);
  border: none;
  border-top: 4px solid #22D3EE;
  color: #ffffff;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 2rem;
  transition: all 0.25s;
  position: relative;
  overflow: hidden;
}
.partner-card.heman::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(107,33,168,0.95) 0%, rgba(147,51,234,0.9) 40%, rgba(245,158,11,0.85) 100%);
  z-index: 0;
}
.partner-card.heman > * { position: relative; z-index: 1; }
.partner-card.heman:hover {
  box-shadow: 0 8px 32px rgba(107,33,168,0.4);
  transform: translateY(-2px);
}
.partner-card.heman .partner-desc { color: rgba(255,255,255,0.85); }
.partner-card.heman .partner-name { color: #fff; }
.partner-card.heman .partner-type { color: #22D3EE; }
.partner-card.heman .partner-service {
  background: rgba(255,255,255,0.15);
  border-color: rgba(255,255,255,0.3);
  color: #fff;
}
.partner-card.heman .partner-cta {
  background: #22D3EE;
  color: #1a1a1a;
  font-weight: 700;
}
.partner-card.heman .partner-cta:hover { background: #06B6D4; }
.partner-card.heman .partner-logo-text {
  color: #fff !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.partner-card.heman .partner-logo-text span { color: #22D3EE !important; }
.partner-card.heman .partner-logo-text small { color: rgba(255,255,255,0.7) !important; }

/* ── ESPACES PARTENAIRES DISPONIBLES ───────────────────────────────── */
.partner-card.available {
  background: repeating-linear-gradient(
    45deg, #fafafa, #fafafa 8px, #f3f3f3 8px, #f3f3f3 16px
  );
  border: 2px dashed var(--g3);
  border-top: 4px dashed var(--r);
  cursor: pointer;
  transition: all 0.25s;
  text-decoration: none;
  color: var(--b);
}
.partner-card.available:hover {
  background: repeating-linear-gradient(
    45deg, #fff5f5, #fff5f5 8px, #ffe8e8 8px, #ffe8e8 16px
  );
  border-color: var(--r);
  box-shadow: 0 6px 24px rgba(204,0,0,0.12);
  transform: translateY(-2px);
}
.partner-slot-icon {
  font-size: 2.5rem;
  color: var(--g3);
  transition: color 0.2s;
  margin-bottom: 0.5rem;
}
.partner-card.available:hover .partner-slot-icon { color: var(--r); }
.partner-slot-label {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--r);
  margin-bottom: 0.5rem;
}
.partner-slot-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--b);
  margin-bottom: 0.8rem;
  opacity: 0.4;
}
.partner-slot-price {
  font-family: var(--D);
  font-size: 1.1rem;
  font-weight: 900;
  color: var(--r);
  line-height: 1;
  margin-bottom: 0.2rem;
}
.partner-slot-period {
  font-size: 0.7rem;
  color: var(--a);
  margin-bottom: 1rem;
}
.partner-slot-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--D);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.6rem 1.2rem;
  background: var(--r);
  color: #fff;
  transition: background 0.2s;
  border: none;
  cursor: pointer;
}
.partner-slot-btn:hover { background: var(--r2); }

/* ── ESPACES PUBLICITAIRES ─────────────────────────────────────────── */

/* Bannière hero */
.ad-banner-wrap {
  background: #fff;
  border-top: 4px solid var(--r);
  border-bottom: 2px solid var(--g3);
  padding: 0.5rem 0;
  position: relative;
  overflow: hidden;
}
.ad-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 2rem;
  gap: 1.5rem;
  max-width: 100%;
}
.ad-banner-slot {
  flex: 1;
  min-height: 160px;
  background: repeating-linear-gradient(
    45deg, #f9f9f9, #f9f9f9 8px, #f0f0f0 8px, #f0f0f0 16px
  );
  border: 2px dashed var(--g3);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  cursor: pointer;
  transition: all 0.2s;
}
.ad-banner-slot:hover { border-color: var(--r); background: #fff5f5; }
.ad-slot-label {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--a);
}
.ad-slot-price {
  font-family: var(--D);
  font-size: 1rem;
  font-weight: 700;
  color: var(--r);
  letter-spacing: 0.1em;
}
.ad-slot-cta {
  font-family: var(--D);
  font-size: 0.55rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--a);
  border: 1px solid var(--g3);
  padding: 0.2rem 0.6rem;
  margin-top: 0.2rem;
  transition: all 0.2s;
}
.ad-banner-slot:hover .ad-slot-cta { border-color: var(--r); color: var(--r); }

/* Section À l'affiche - carousel */
.ad-affiche-sec {
  background: #fff;
  padding: 3rem 2rem;
  border-top: 1px solid var(--g3);
  border-bottom: 1px solid var(--g3);
  position: relative;
  overflow: hidden;
}
.ad-affiche-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
.ad-affiche-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--b);
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.ad-affiche-title::before {
  content: '';
  width: 4px;
  height: 1.2rem;
  background: var(--r);
  display: inline-block;
}
.ad-affiche-prix {
  font-family: var(--D);
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--a);
  border: 1px solid var(--g3);
  padding: 0.35rem 0.9rem;
}
.ad-slides {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--g3);
}
.ad-slide {
  background: #f8f8f8;
  min-height: 280px;
  border: 2px dashed var(--g3);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  cursor: pointer;
  transition: all 0.2s;
  padding: 1rem;
  text-align: center;
}
.ad-slide:hover { border-color: var(--r); background: #fff5f5; }
.ad-slide-icon { font-size: 2rem; color: var(--g3); transition: color 0.2s; }
.ad-slide:hover .ad-slide-icon { color: var(--r); }
.ad-slide-type { font-family: var(--D); font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--a); }
.ad-slide-price { font-family: var(--D); font-size: 1rem; font-weight: 700; color: var(--r); }
.ad-slide-period { font-size: 0.65rem; color: var(--a); }
.ad-slide-btn { font-family: var(--D); font-size: 0.55rem; letter-spacing: 0.18em; text-transform: uppercase; padding: 0.25rem 0.7rem; border: 1px solid var(--g3); color: var(--a); margin-top: 0.3rem; transition: all 0.2s; }
.ad-slide:hover .ad-slide-btn { border-color: var(--r); color: var(--r); }

/* Card sponsorisée inline */
.ad-card-inline {
  background: #fff8f8;
  border: 1px solid rgba(204,0,0,0.15);
  border-left: 3px solid var(--r);
  padding: 1.2rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin: 2rem 0;
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
  z-index: 2;
}
.ad-card-inline:hover { background: #fff0f0; }
.ad-card-inline-left { display: flex; align-items: center; gap: 1.2rem; }
.ad-card-inline-icon {
  width: 60px; height: 60px;
  background: repeating-linear-gradient(45deg, #f5f5f5, #f5f5f5 4px, #ebebeb 4px, #ebebeb 8px);
  border: 1px dashed var(--g3);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; color: var(--g3); flex-shrink: 0;
}
.ad-card-inline-label { font-family: var(--D); font-size: 0.58rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--r); margin-bottom: 0.2rem; }
.ad-card-inline-text { font-family: var(--D); font-size: 0.85rem; font-weight: 700; text-transform: uppercase; color: var(--b); }
.ad-card-inline-sub { font-size: 0.72rem; color: var(--a); margin-top: 0.1rem; }
.ad-card-inline-price { text-align: right; flex-shrink: 0; }
.ad-card-price-main { font-family: var(--D); font-size: 1.3rem; font-weight: 900; color: var(--r); line-height: 1; }
.ad-card-price-period { font-size: 0.65rem; color: var(--a); margin-top: 0.2rem; }
.ad-card-price-reserve { font-family: var(--D); font-size: 0.6rem; letter-spacing: 0.15em; text-transform: uppercase; padding: 0.3rem 0.8rem; background: var(--r); color: #fff; margin-top: 0.5rem; display: inline-block; }

/* Footer sponsors */
.ad-footer-sponsors {
  background: #f5f5f5;
  border-top: 1px solid var(--g3);
  border-bottom: 1px solid var(--g3);
  padding: 1.5rem 2rem;
}
.ad-footer-sponsors-label {
  font-family: var(--D);
  font-size: 0.58rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--a);
  margin-bottom: 1rem;
  text-align: center;
}
.ad-footer-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1px;
  background: var(--g3);
}
.ad-footer-logo-slot {
  flex: 1;
  min-height: 60px;
  max-width: 160px;
  background: #fff;
  border: 2px dashed var(--g3);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  cursor: pointer;
  transition: all 0.2s;
  padding: 0.8rem;
}
.ad-footer-logo-slot:hover { border-color: var(--r); background: #fff5f5; }
.ad-footer-logo-slot i { font-size: 1.2rem; color: var(--g3); transition: color 0.2s; }
.ad-footer-logo-slot:hover i { color: var(--r); }
.ad-footer-logo-price { font-family: var(--D); font-size: 0.65rem; font-weight: 700; color: var(--r); }
.ad-footer-logo-label { font-size: 0.55rem; color: var(--a); letter-spacing: 0.1em; text-transform: uppercase; }

@media(max-width:900px) {
  .ad-slides { grid-template-columns: repeat(2,1fr); }
  .ad-footer-logos { flex-wrap: wrap; }
  .ad-banner { flex-direction: column; }
}
@media(max-width:600px) {
  .ad-slides { grid-template-columns: 1fr 1fr; }
}

.ct-form-wrap {
  max-width: 700px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.ct-form-header {
  margin-bottom: 2.5rem;
  text-align: center;
}
.ct-form-desc {
  color: var(--a);
  font-size: 0.9rem;
  line-height: 1.8;
  margin-top: 0.8rem;
}
.ct-form {
  background: #fff;
  border: 1px solid var(--g3);
  border-top: 3px solid var(--r);
  padding: 2.5rem;
}
.ct-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media(max-width:600px) {
  .ct-form-grid { grid-template-columns: 1fr; }
  .ct-form { padding: 1.5rem; }
}

.imm-links-grid { grid-template-columns: 1fr; }
}

.pod-playlist-cta {
  background: #fff;
  border: 1px solid var(--g3);
  border-left: 4px solid var(--r);
  padding: 3rem 2.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  height: 100%;
}
.pod-playlist-icon {
  font-size: 2.5rem;
  color: var(--r);
  line-height: 1;
}
.pod-playlist-num {
  font-family: var(--D);
  font-size: 0.6rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--r);
}
.pod-playlist-title {
  font-family: var(--D);
  font-weight: 900;
  font-size: 2.5rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--b);
  line-height: 0.9;
}
.pod-playlist-desc {
  font-size: 0.88rem;
  color: var(--a);
  line-height: 1.8;
  max-width: 380px;
}
.pod-playlist-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-family: var(--D);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 0.9rem 2rem;
  background: var(--r);
  color: #fff;
  transition: background 0.2s;
  margin-top: 0.5rem;
}
.pod-playlist-btn:hover { background: var(--r2); }

.voir-tous-btn {
  font-family:var(--D);font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--a);display:flex;align-items:center;justify-content:center;gap:0.5rem;
  padding:0.8rem;border:1px dashed var(--g3);transition:all 0.2s;
}
.voir-tous-btn:hover{border-color:var(--r);color:var(--r)}

/* ── MOBILE ────────────────────────────────────────────────────────── */
@media(max-width:900px){
  .nav-links,.nav-socials,.nav-cta{display:none}
  .nav-burger{display:block}
  .hero-rubriques{display:none}
  .pod-grid,.itw-layout,.ct-grid{grid-template-columns:1fr}
  .imm-grid,.imm-grid-2{grid-template-columns:1fr 1fr}
  .rs-grid{grid-template-columns:1fr 1fr}
  .hero-h1{font-size:clamp(3rem,12vw,5rem)}
}
@media(max-width:600px){
  .imm-grid,.imm-grid-2{grid-template-columns:1fr}
  .rs-grid{grid-template-columns:1fr}
  section{padding:3.5rem 1.2rem}
  nav{padding:0 1.2rem}
}

/* Mobile nav overlay */
.mobile-menu{
  position:fixed;inset:0;background:#f5f5f5;z-index:300;
  display:flex;flex-direction:column;padding:2rem;
  transform:translateX(100%);transition:transform 0.3s ease;
}
.mobile-menu.open{transform:translateX(0)}
.mobile-menu-close{
  align-self:flex-end;background:none;border:none;
  color:var(--b);font-size:1.8rem;margin-bottom:2rem;
}
.mobile-menu a{
  font-family:var(--D);font-size:1.5rem;font-weight:700;
  text-transform:uppercase;letter-spacing:0.08em;
  color:var(--b);padding:0.8rem 0;
  border-bottom:1px solid var(--g3);display:block;
}
.mobile-menu a:hover{color:var(--r)}

/* ── BOUTONS D'ABONNEMENT YOUTUBE ──────────────────────────────────── */
.btn-sub{
  font-family:var(--D);font-size:0.72rem;letter-spacing:0.18em;
  text-transform:uppercase;padding:0.85rem 2rem;
  background:#1a1a1a;color:#fff;border:none;border-bottom:3px solid var(--r);
  transition:background 0.2s,transform 0.2s;display:inline-flex;align-items:center;gap:6px;
}
.btn-sub:hover{background:var(--r);transform:translateY(-2px)}
.btn-sub i{color:#ff4d4d;display:inline-block;transform-origin:50% 0;animation:bellRing 4s ease-in-out infinite}
.btn-sub:hover i{color:#fff}
@keyframes bellRing{
  0%,80%,100%{transform:rotate(0)}
  84%{transform:rotate(14deg)} 88%{transform:rotate(-12deg)}
  92%{transform:rotate(8deg)} 96%{transform:rotate(-4deg)}
}
@media(prefers-reduced-motion:reduce){.btn-sub i{animation:none}}

.yt-sub-banner{
  margin-top:1rem;position:relative;z-index:2;
  background:var(--r);color:#fff;padding:1.4rem 1.6rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem 1.5rem;flex-wrap:wrap;
}
.yt-sub-text{min-width:220px;flex:1}
.yt-sub-text strong{display:block;margin-bottom:0.35rem;font-family:var(--D);font-weight:900;font-size:1.5rem;letter-spacing:0.03em;text-transform:uppercase;line-height:1.15}
.yt-sub-text span{display:block;font-family:var(--B);font-size:0.9rem;line-height:1.4;opacity:0.92}
.yt-sub-btn{
  font-family:var(--D);font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;
  background:#fff;color:var(--r);padding:0.95rem 1.8rem;
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  transition:background 0.2s,color 0.2s,transform 0.2s;
}
.yt-sub-btn:hover{background:#1a1a1a;color:#fff;transform:translateY(-2px)}
@media(max-width:600px){.yt-sub-btn{width:100%;justify-content:center}}

.modal-video-yt-link a.modal-video-sub{
  font-family:var(--D);font-size:0.68rem;letter-spacing:0.18em;text-transform:uppercase;
  background:var(--r);color:#fff;padding:0.6rem 1.1rem;
  display:inline-flex;align-items:center;gap:0.4rem;transition:background 0.2s;
}
.modal-video-yt-link a.modal-video-sub:hover{background:var(--r2);color:#fff}
