:root{
  --red:#ad0101; --red2:#c53a2d; --gold:#ffd95a; --green:#39df7b;
  --muted:rgba(255,255,255,.78); --line:rgba(255,255,255,.14); --card:rgba(255,255,255,.06);
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#0f0c0f;color:#fcfbf8}
a{color:inherit;text-decoration:none}
.page{min-height:100vh;background:
  radial-gradient(circle at 10% 0%, rgba(227,6,19,.38), transparent 30rem),
  radial-gradient(circle at 92% 8%, rgba(255,217,90,.11), transparent 24rem),
  linear-gradient(180deg,#070000,#0f0c0f 46%,#0f0c0f);}
.topbar{text-align:center;padding:9px 16px;background:linear-gradient(90deg,#6b0006,var(--red),#6b0006);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.navwrap{position:sticky;top:0;z-index:50;padding:14px 18px;background:rgba(0,0,0,.58);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08)}
.nav{width:min(1280px,100%);margin:auto;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:10px 14px;border:1px solid rgba(255,255,255,.13);border-radius:26px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.04));box-shadow:0 20px 70px rgba(0,0,0,.36)}
.brand{display:flex;align-items:center;gap:12px}
.mark{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#1b1b1b,#0f0c0f);border:1px solid rgba(255,255,255,.12);box-shadow:0 0 0 1px rgba(227,6,19,.16),0 0 30px rgba(227,6,19,.18)}
.mark svg{width:40px;height:40px;display:block}
.brand strong{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:18px}
.brand span{display:block;margin-top:4px;color:var(--muted);font-size:12px}
.links{justify-self:center;display:flex;gap:6px;padding:6px;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:rgba(255,255,255,.05)}
.links a{padding:11px 14px;border-radius:999px;color:rgba(255,255,255,.8);font-size:13px;font-weight:900}
.links a:hover,.links a.active{background:rgba(255,255,255,.11);color:#fcfbf8}
.actions{display:flex;gap:10px;align-items:center}
.live{font-size:12px;color:var(--muted);font-weight:900}
.live:before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--green);box-shadow:0 0 14px var(--green)}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border-radius:999px;background:linear-gradient(90deg,#960008,var(--red2));font-weight:1000;box-shadow:0 14px 36px rgba(227,6,19,.25)}
.btn.ghost{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.17);box-shadow:none}
.nav-toggle,.burger{display:none}

/* Bloc activités dans l'entête */
.hero-activity-focus {
  display: block;
  padding: 18px !important;
  border-left: 5px solid #ad0101;
  overflow: hidden;
}

.hero-activity-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.hero-activity-top span {
  display: inline-flex;
  padding: 7px 10px;
  background: #ad0101;
  color: #fcfbf8;
  font-size: 11px;
  font-weight: 1000;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.hero-activity-controls {
  display: flex;
  gap: 7px;
}

.hero-activity-controls button {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(252, 251, 248, .22);
  background: rgba(252, 251, 248, .08);
  color: #fcfbf8;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.hero-activity-controls button:hover {
  background: #ad0101;
  border-color: #ad0101;
}

.hero-activity-slides {
  position: relative;
  min-height: 245px;
}

.hero-activity-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translateX(16px);
  pointer-events: none;
  transition: opacity .38s ease, transform .38s ease;
}

.hero-activity-slide.is-active {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}

.hero-activity-slide img {
  width: 100%;
  height: 132px;
  object-fit: cover;
  display: block;
  margin-bottom: 14px;
  border: 1px solid rgba(252, 251, 248, .14);
  filter: saturate(1.04) contrast(1.05) brightness(.86);
}

.hero-activity-slide h3 {
  margin: 0 0 8px;
  font-size: 28px;
  line-height: .98;
  text-transform: uppercase;
  letter-spacing: -.045em;
}

.hero-activity-slide p {
  margin: 0;
  color: rgba(252, 251, 248, .74);
  line-height: 1.45;
  font-size: 15px;
}

.hero-activity-dots {
  display: flex;
  gap: 7px;
  margin-top: 14px;
}

.hero-activity-dots button {
  width: 26px;
  height: 4px;
  border: 0;
  padding: 0;
  background: rgba(252, 251, 248, .24);
  cursor: pointer;
}

.hero-activity-dots button.is-active {
  background: #ad0101;
}

@media(max-width: 760px) {
  .hero-activity-slides {
    min-height: 265px;
  }

  .hero-activity-slide img {
    height: 140px;
  }
}

.hero{position:relative;min-height:88vh;overflow:hidden;display:grid;align-items:end}
.hero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.58) saturate(2.08)}
.hero:after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(0,0,0,.20),rgba(0,0,0,.74) 74%,#0f0c0f),
  radial-gradient(circle at 18% 0%, rgba(227,6,19,.28), transparent 28rem)}
.heroin{position:relative;z-index:2;width:min(1280px,100%);margin:auto;padding:76px 20px 58px;display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:end}
.eyebrow{display:inline-flex;gap:8px;align-items:center;padding:8px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);font-size:12px;font-weight:1000;text-transform:uppercase;letter-spacing:.12em}
.eyebrow:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red2);box-shadow:0 0 14px rgba(255,50,64,.95)}
h1{margin:18px 0 16px;font-size:clamp(56px,8vw,118px);line-height:.86;letter-spacing:-.08em;text-transform:uppercase;max-width:900px}
h1 span{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.9)}
.lead{max-width:730px;margin:0 0 28px;color:rgba(255,255,255,.86);font-size:clamp(18px,2vw,22px);line-height:1.48}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-points{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.hero-points span{padding:10px 12px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);font-size:13px;font-weight:900;color:rgba(255,255,255,.84)}
.panel-stack{display:grid;gap:14px}
.glass{padding:24px;border-radius:30px;border:1px solid rgba(255,255,255,.14);background:rgba(8,8,8,.62);backdrop-filter:blur(16px);box-shadow:0 24px 70px rgba(0,0,0,.38)}
.glass h2,.glass h3{margin:0 0 10px;font-size:30px;line-height:1;text-transform:uppercase;letter-spacing:-.045em}
.glass p{margin:0;color:var(--muted);line-height:1.5}


.marquee{
  overflow:hidden;
  border-block:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
}

.marquee-track{
  display:flex;
  width:max-content;
  animation:marquee 24s linear infinite;
}

.marquee span{
  padding:17px 22px;
  white-space:nowrap;
  text-transform:uppercase;
  font-weight:1000;
  letter-spacing:.11em;
  color:rgba(255,255,255,.72);
}

.marquee b{color:var(--red2)}

@keyframes marquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

.section{width:min(1280px,100%);margin:auto;padding:88px 20px}
.section.compact{padding-top:40px}
.head{display:grid;grid-template-columns:.78fr 1.22fr;gap:34px;align-items:end;margin-bottom:34px}
.head h2{margin:0;font-size:clamp(38px,5.2vw,76px);line-height:.92;letter-spacing:-.072em;text-transform:uppercase}
.head p{margin:0;max-width:760px;color:var(--muted);font-size:18px;line-height:1.55}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:34px;background:var(--card);padding:30px}
.card.red{background:radial-gradient(circle at 50% 0%,rgba(255,52,64,.30),transparent 18rem),#0f0c0f;border-color:rgba(227,6,19,.44)}
.card.dark{background:#0f0c0f}
.card h3{margin:0 0 12px;font-size:30px;line-height:1;text-transform:uppercase;letter-spacing:-.05em}
.card p{margin:0 0 18px;color:var(--muted);line-height:1.55}
.kpi{display:block;margin-bottom:16px;color:var(--gold);font-size:48px;line-height:.9;font-weight:1000;letter-spacing:-.07em}
.tag{display:inline-block;margin-bottom:14px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.09);font-size:11px;font-weight:1000;text-transform:uppercase;letter-spacing:.08em}
.tag.red{background:var(--red)}
.card.media{padding:0;min-height:520px}
.card.media img{width:100%;height:100%;min-height:520px;display:block;object-fit:cover;filter:brightness(.76)}
.cap{position:absolute;left:18px;right:18px;bottom:18px;padding:20px;border-radius:24px;background:rgba(0,0,0,.58);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px)}
.cap strong{display:block;margin-bottom:6px;font-size:22px;text-transform:uppercase}
.cap span{color:rgba(255,255,255,.8);line-height:1.42}
.list{padding:0;margin:0 0 24px;list-style:none}
.list li{padding:12px 0;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.82);line-height:1.4}
.list li:before{content:"✓";margin-right:10px;color:var(--green);font-weight:1000}
.split{display:grid;grid-template-columns:.94fr 1.06fr;gap:18px}
.stack{display:grid;gap:18px}
.price strong{display:block;color:var(--gold);font-size:58px;line-height:.86;letter-spacing:-.07em}
.price span{display:block;margin-top:8px;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}
.total{display:inline-block;margin:16px 0 18px;padding:9px 11px;border-radius:999px;background:rgba(255,255,255,.08);font-size:13px;font-weight:1000}
.quote{border-radius:42px;border:1px solid rgba(227,6,19,.42);background:radial-gradient(circle at 0% 0%,rgba(227,6,19,.36),transparent 24rem),linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.04));padding:44px}
.quote p{margin:0;max-width:920px;font-size:clamp(30px,4.8vw,62px);line-height:.94;font-weight:1000;letter-spacing:-.068em;text-transform:uppercase}
.quote span{display:block;margin-top:18px;max-width:720px;color:var(--muted);line-height:1.55;font-size:17px}
.final{width:min(1280px,100%);margin:auto;padding:20px 20px 90px}
.final-box{position:relative;overflow:hidden;border-radius:42px;border:1px solid rgba(227,6,19,.44);background:radial-gradient(circle at 0% 0%,rgba(227,6,19,.42),transparent 24rem),radial-gradient(circle at 100% 100%,rgba(255,217,90,.13),transparent 20rem),linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.04));padding:54px}
.final-box:after{content:"PANTHÈRE";position:absolute;right:-8px;bottom:-20px;color:rgba(255,255,255,.055);font-size:clamp(80px,13vw,170px);line-height:.8;letter-spacing:-.09em;font-weight:1000}
.final-box h2{position:relative;z-index:2;margin:0;max-width:880px;font-size:clamp(44px,6vw,84px);line-height:.9;letter-spacing:-.07em;text-transform:uppercase}
.final-box p{position:relative;z-index:2;max-width:720px;margin:16px 0 24px;color:var(--muted);font-size:18px;line-height:1.55}
.final-actions{position:relative;z-index:2;display:flex;gap:12px;flex-wrap:wrap}
.footer{border-top:1px solid rgba(255,255,255,.09);background:rgba(0,0,0,.5)}
.foot{width:min(1280px,100%);margin:auto;padding:34px 20px;display:grid;grid-template-columns:1fr 1fr;gap:20px;color:var(--muted);font-size:13px}
.foot a{color:#fcfbf8}
@media(max-width:1080px){
  .nav{grid-template-columns:auto auto auto}.links{display:none}
  .burger{display:flex;width:44px;height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);align-items:center;justify-content:center;cursor:pointer}
  .burger span,.burger span:before,.burger span:after{content:"";display:block;width:20px;height:2px;border-radius:999px;background:#fcfbf8;position:relative}
  .burger span:before{position:absolute;top:-7px}.burger span:after{position:absolute;top:7px}
  .nav-toggle:checked ~ .links{display:grid;position:absolute;left:18px;right:18px;top:92px;border-radius:24px;padding:12px;background:rgba(0,0,0,.96);box-shadow:0 24px 80px rgba(0,0,0,.55)}
  .nav-toggle:checked ~ .links a{text-align:center;padding:14px}
  .heroin,.head,.split,.grid3,.grid2{grid-template-columns:1fr}
}
@media(max-width:760px){
  .topbar{font-size:10px;line-height:1.35}.navwrap{padding:10px 14px}.nav{padding:10px 12px}
  .brand span,.live,.actions .btn.ghost{display:none}.hero{min-height:auto}.heroin{padding:54px 14px 42px}
  h1{font-size:clamp(52px,16vw,76px)}.section{padding:62px 14px}.section.compact{padding-top:30px}
  .card.media,.card.media img{min-height:420px}.final{padding:10px 14px 70px}.final-box,.quote{padding:34px 24px;border-radius:32px}
  .foot{grid-template-columns:1fr}
}


.navwrap-v14{position:sticky;top:0;z-index:100;padding:0;background:#fcfbf8;border-bottom:1px solid rgba(0,0,0,.10);box-shadow:0 12px 34px rgba(0,0,0,.10);backdrop-filter:none;-webkit-backdrop-filter:none}
.nav-v14{width:min(1320px,100%);min-height:86px;margin:auto;padding:0 20px;display:grid;grid-template-columns:220px 1fr auto;gap:24px;align-items:center;background:#fcfbf8;border:0;border-radius:0;box-shadow:none}.brand-v14{display:flex;align-items:center;min-width:0}.pulsia-logo{max-width:190px;max-height:68px;width:auto;height:auto;display:block;object-fit:contain}
.links-v14{justify-self:center;display:flex;align-items:center;gap:0;padding:0;border:0;border-radius:0;background:transparent;height:86px}.links-v14>a,.links-v14 .nav-item>a{position:relative;display:flex;align-items:center;height:86px;padding:0 18px;color:#141414;font-size:13px;font-weight:1000;text-transform:uppercase;letter-spacing:.05em;border-radius:0;background:transparent}.links-v14>a:after,.links-v14 .nav-item>a:after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:4px;background:#ad0101;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.links-v14>a:hover,.links-v14>a.active,.links-v14 .nav-item:hover>a{color:#ad0101;background:transparent}.links-v14>a:hover:after,.links-v14>a.active:after,.links-v14 .nav-item:hover>a:after{transform:scaleX(1)}
.has-dropdown{position:relative;height:86px;display:flex;align-items:center}.dropdown{position:absolute;top:86px;left:0;min-width:220px;background:#fcfbf8;border:1px solid rgba(0,0,0,.12);border-top:4px solid #ad0101;box-shadow:0 22px 50px rgba(0,0,0,.16);opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease}.has-dropdown:hover .dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.dropdown a{display:block;padding:15px 18px;color:#141414;font-size:13px;font-weight:1000;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid rgba(0,0,0,.08)}.dropdown a:last-child{border-bottom:0}.dropdown a:hover{background:#ad0101;color:#fcfbf8}
.actions-v14{display:flex;align-items:center;gap:10px}.actions-v14 .btn{border-radius:0;min-height:48px;padding:13px 18px}.actions-v14 .btn.ghost{color:#0f0c0f;border-color:rgba(0,0,0,.20);background:#fcfbf8}.actions-v14 .btn.ghost:hover{background:#0f0c0f;color:#fcfbf8}.nav-v14 .burger{border-radius:0;background:#fcfbf8;border:1px solid rgba(0,0,0,.18)}.nav-v14 .burger span,.nav-v14 .burger span:before,.nav-v14 .burger span:after{background:#0f0c0f}
.card,.glass,.final-box,.quote,.cap,.emblem-badge{border-radius:14px!important}.btn{border-radius:4px!important}
.footer-white-v14{background:#fcfbf8;color:#0f0c0f;border-top:8px solid #ad0101}.footer-top-v14{width:min(1320px,100%);margin:auto;padding:58px 20px 40px;display:grid;grid-template-columns:1.25fr repeat(3,.75fr);gap:36px}.footer-brand-v14{max-width:450px}.footer-logo-v14{max-width:170px;max-height:62px;width:auto;height:auto;object-fit:contain;display:block;margin-bottom:22px}.footer-brand-v14 p{margin:0 0 18px;color:#444;line-height:1.58;font-size:15px}.footer-signature-v14{display:inline-flex;padding:10px 13px;background:#0f0c0f;color:#fcfbf8;border-left:6px solid #ad0101;font-size:12px;font-weight:1000;text-transform:uppercase;letter-spacing:.08em}.footer-col-v14 h4{margin:0 0 16px;color:#0f0c0f;font-size:13px;text-transform:uppercase;letter-spacing:.09em}.footer-col-v14 a,.footer-col-v14 span{display:block;padding:8px 0;color:#4d4d4d;font-size:14px;line-height:1.35}.footer-col-v14 a:hover{color:#ad0101}.footer-bottom-v14{width:min(1320px,100%);margin:auto;padding:22px 20px 32px;border-top:1px solid rgba(0,0,0,.12);display:flex;justify-content:space-between;gap:18px;color:#777;font-size:12px}.footer-links-v14{display:flex;flex-wrap:wrap;gap:14px}.footer-links-v14 a{color:#555}.footer-links-v14 a:hover{color:#ad0101}
@media(max-width:1080px){.nav-v14{grid-template-columns:auto auto auto;min-height:76px}.pulsia-logo{max-width:135px}.links-v14{display:none}.nav-toggle:checked~.links-v14{display:grid;position:absolute;left:0;right:0;top:76px;height:auto;background:#fcfbf8;box-shadow:0 22px 50px rgba(0,0,0,.18);border-top:1px solid rgba(0,0,0,.10)}.nav-toggle:checked~.links-v14>a,.nav-toggle:checked~.links-v14 .nav-item>a{height:auto;padding:16px 22px}.has-dropdown{height:auto;display:block}.dropdown{position:static;opacity:1;pointer-events:auto;transform:none;box-shadow:none;border:0;border-left:4px solid #ad0101;margin:0 22px 12px}.footer-top-v14{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.navwrap-v14{padding:0}.nav-v14{padding:0 14px;grid-template-columns:1fr auto}.actions-v14{display:none}.footer-top-v14{grid-template-columns:1fr;padding:42px 20px 30px}.footer-bottom-v14{display:grid}}

.promo-shared{
  display:block;
  background:linear-gradient(90deg,#ad0101,#c53a2d,#0f0c0f);
  color:#fcfbf8;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.promo-shared.is-hidden{display:none;}
.promo-shared .promo-inner{
  width:min(1280px,100%);
  margin:auto;
  padding:16px 18px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
  align-items:center;
}
.promo-shared span{
  display:inline-flex;
  width:max-content;
  padding:6px 9px;
  background:#fcfbf8;
  color:#ad0101;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:6px;
}
.promo-shared strong{
  display:block;
  font-size:clamp(22px,3vw,34px);
  line-height:.95;
  letter-spacing:-.05em;
  text-transform:uppercase;
}
.promo-shared p{
  margin:7px 0 0;
  color:rgba(255,255,255,.84);
  line-height:1.45;
}
.promo-actions-shared{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}
.btn.black{
  background:#0f0c0f;
  border:1px solid rgba(255,255,255,.18);
  color:#fcfbf8;
  box-shadow:none;
}
@media(max-width:900px){
  .promo-shared .promo-inner{grid-template-columns:1fr;}
  .promo-actions-shared{justify-content:flex-start;}
}

/* Page dédiée séance découverte */
.sd-hero {
  position: relative;
  min-height: 760px;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  background: #0f0c0f;
  color: #fcfbf8;
}

.sd-hero-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .46;
  filter: saturate(1.05) contrast(1.08) brightness(.72);
}

.sd-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 78% 22%, rgba(173, 1, 1, .48), transparent 25rem),
    linear-gradient(90deg, rgba(15, 12, 15, .96) 0%, rgba(15, 12, 15, .70) 50%, rgba(15, 12, 15, .34) 100%);
}

.sd-hero-inner {
  position: relative;
  z-index: 1;
  width: min(1220px, calc(100% - 40px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr .72fr;
  gap: 34px;
  align-items: center;
  padding: 90px 0;
}

.sd-hero-copy h1 {
  margin: 0 0 20px;
  max-width: 780px;
  font-size: clamp(56px, 8vw, 116px);
  line-height: .84;
  letter-spacing: -.085em;
  text-transform: uppercase;
}

.sd-lead {
  max-width: 660px;
  margin: 0 0 30px;
  color: rgba(252, 251, 248, .82);
  font-size: clamp(18px, 2vw, 23px);
  line-height: 1.42;
}

.sd-actions,
.sd-final-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.sd-hero-reassurance {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}

.sd-hero-reassurance span {
  display: inline-flex;
  padding: 8px 10px;
  background: rgba(252, 251, 248, .10);
  border: 1px solid rgba(252, 251, 248, .16);
  color: rgba(252, 251, 248, .82);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.sd-price-card {
  background: rgba(252, 251, 248, .94);
  color: #0f0c0f;
  padding: 34px;
  border-left: 8px solid #ad0101;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .28);
}

.sd-price-label {
  display: inline-flex;
  margin-bottom: 12px;
  padding: 7px 10px;
  background: #ad0101;
  color: #fcfbf8;
  font-size: 11px;
  font-weight: 1000;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.sd-price-card strong {
  display: block;
  margin-bottom: 10px;
  color: #ad0101;
  font-size: clamp(72px, 7vw, 112px);
  line-height: .82;
  letter-spacing: -.08em;
}

.sd-price-card p {
  margin: 0 0 22px;
  color: rgba(15, 12, 15, .78);
  font-size: 18px;
  font-weight: 800;
  line-height: 1.35;
}

.sd-price-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.sd-price-card li {
  padding: 12px 0;
  border-top: 1px solid rgba(15, 12, 15, .12);
  color: rgba(15, 12, 15, .76);
  font-weight: 700;
}

.sd-grid-3,
.sd-grid-2 {
  display: grid;
  gap: 18px;
}

.sd-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

.sd-grid-2 {
  grid-template-columns: repeat(2, 1fr);
}

.sd-card {
  background: #fcfbf8;
  color: #0f0c0f;
  padding: 28px;
  border: 1px solid rgba(15, 12, 15, .08);
  box-shadow: 0 18px 46px rgba(15, 12, 15, .06);
}

.sd-card.red {
  background: #ad0101;
  color: #fcfbf8;
}

.sd-card span {
  display: inline-flex;
  margin-bottom: 18px;
  color: #ad0101;
  font-size: 13px;
  font-weight: 1000;
}

.sd-card.red span,
.sd-card.red p {
  color: rgba(252, 251, 248, .78);
}

.sd-card h3 {
  margin: 0 0 12px;
  font-size: 31px;
  line-height: .96;
  text-transform: uppercase;
  letter-spacing: -.055em;
}

.sd-card p {
  margin: 0;
  color: rgba(15, 12, 15, .70);
  line-height: 1.5;
}

.sd-steps-wrap {
  display: grid;
  grid-template-columns: .7fr 1fr;
  gap: 26px;
  align-items: start;
}

.sd-steps-title {
  background: #0f0c0f;
  color: #fcfbf8;
  padding: 34px;
  border-left: 6px solid #ad0101;
  position: sticky;
  top: 100px;
}

.sd-steps-title h2 {
  margin: 18px 0 14px;
  font-size: clamp(40px, 5vw, 76px);
  line-height: .88;
  text-transform: uppercase;
  letter-spacing: -.07em;
}

.sd-steps-title p {
  margin: 0;
  color: rgba(252, 251, 248, .76);
  line-height: 1.5;
}

.sd-steps {
  display: grid;
  gap: 14px;
}

.sd-steps article {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 18px;
  align-items: start;
  padding: 24px;
  background: #fcfbf8;
  border: 1px solid rgba(15, 12, 15, .08);
}

.sd-steps b {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  background: #ad0101;
  color: #fcfbf8;
  font-size: 26px;
  line-height: 1;
}

.sd-steps h3 {
  margin: 0 0 8px;
  color: #ad0101;
  font-size: 28px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -.045em;
}

.sd-steps p {
  margin: 0;
  color: rgba(15, 12, 15, .68);
  line-height: 1.45;
}

.sd-split {
  display: grid;
  grid-template-columns: .95fr 1fr;
  gap: 24px;
  align-items: stretch;
}

.sd-photo-card {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  background: #0f0c0f;
}

.sd-photo-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.04) contrast(1.08) brightness(.82);
}

.sd-photo-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,12,15,.04), rgba(15,12,15,.82));
}

.sd-photo-card div {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  z-index: 1;
  padding: 24px;
  background: rgba(15, 12, 15, .82);
  border-left: 7px solid #ad0101;
  color: #fcfbf8;
}

.sd-photo-card strong {
  display: block;
  margin-bottom: 7px;
  font-size: 30px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -.05em;
}

.sd-photo-card span {
  color: rgba(252, 251, 248, .74);
  line-height: 1.45;
}

.sd-discover-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.sd-discover-list article {
  padding: 26px;
  background: #fcfbf8;
  border: 1px solid rgba(15, 12, 15, .08);
}

.sd-discover-list h3 {
  margin: 0 0 10px;
  color: #0f0c0f;
  font-size: 27px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -.05em;
}

.sd-discover-list p {
  margin: 0;
  color: rgba(15, 12, 15, .68);
  line-height: 1.45;
}

.sd-final {
  width: min(1220px, calc(100% - 40px));
  margin: 0 auto 92px;
  background: #ad0101;
  color: #fcfbf8;
  position: relative;
  overflow: hidden;
}

.sd-final::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 85% 20%, rgba(252, 251, 248, .18), transparent 20rem),
    linear-gradient(120deg, rgba(173, 1, 1, .35), rgba(15, 12, 15, .70));
}

.sd-final-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 30px;
  align-items: center;
  padding: 44px;
}

.sd-final h2 {
  margin: 14px 0 12px;
  font-size: clamp(42px, 5vw, 82px);
  line-height: .86;
  text-transform: uppercase;
  letter-spacing: -.07em;
}

.sd-final p {
  margin: 0;
  max-width: 720px;
  color: rgba(252, 251, 248, .82);
  font-size: 18px;
  line-height: 1.45;
}

@media(max-width: 980px) {
  .sd-hero-inner,
  .sd-steps-wrap,
  .sd-split,
  .sd-final-inner {
    grid-template-columns: 1fr;
  }

  .sd-grid-3,
  .sd-grid-2,
  .sd-discover-list {
    grid-template-columns: 1fr;
  }

  .sd-steps-title {
    position: static;
  }

  .sd-photo-card {
    min-height: 420px;
  }
}

@media(max-width: 760px) {
  .sd-hero {
    min-height: auto;
  }

  .sd-hero-inner {
    width: calc(100% - 28px);
    padding: 58px 0;
  }

  .sd-price-card,
  .sd-card,
  .sd-steps-title,
  .sd-steps article,
  .sd-discover-list article,
  .sd-final-inner {
    padding: 22px;
  }

  .sd-steps article {
    grid-template-columns: 1fr;
  }

  .sd-final {
    width: calc(100% - 28px);
  }
}


/* Page tarifs simplifiée */
.tarifs-hero-clean {
  position: relative;
  overflow: hidden;
  background: #0f0c0f;
  color: #fcfbf8;
}

.tarifs-hero-clean::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 82% 15%, rgba(173, 1, 1, .42), transparent 24rem),
    linear-gradient(120deg, rgba(15, 12, 15, .96), rgba(15, 12, 15, .86));
}

.tarifs-hero-clean-inner {
  position: relative;
  z-index: 1;
  width: min(1220px, calc(100% - 40px));
  margin: 0 auto;
  padding: 92px 0 70px;
  display: grid;
  grid-template-columns: 1fr 390px;
  gap: 34px;
  align-items: end;
}

.tarifs-hero-clean h1 {
  margin: 14px 0 18px;
  font-size: clamp(58px, 8vw, 118px);
  line-height: .84;
  letter-spacing: -.085em;
  text-transform: uppercase;
}

.tarifs-hero-clean p {
  max-width: 690px;
  margin: 0;
  color: rgba(252, 251, 248, .78);
  font-size: clamp(18px, 2vw, 23px);
  line-height: 1.42;
}

.tarifs-note {
  padding: 24px;
  background: rgba(252, 251, 248, .08);
  border: 1px solid rgba(252, 251, 248, .16);
  border-left: 6px solid #ad0101;
}

.tarifs-note strong {
  display: block;
  margin-bottom: 8px;
  color: #fcfbf8;
  font-size: 24px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -.04em;
}

.tarifs-note p {
  margin: 0;
  color: rgba(252, 251, 248, .74);
  font-size: 15px;
  line-height: 1.45;
}

.tarifs-note b {
  color: #fcfbf8;
}

.tarifs-clean-section {
  margin-top: -34px;
  position: relative;
  z-index: 3;
}

.tarifs-clean-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  align-items: stretch;
}

.tarif-clean-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 28px;
  background: #fcfbf8;
  color: #0f0c0f;
  border: 1px solid rgba(15, 12, 15, .08);
  box-shadow: 0 20px 54px rgba(15, 12, 15, .07);
}

.tarif-clean-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 6px;
  background: rgba(15, 12, 15, .12);
}

.tarif-clean-card.is-featured {
  background: #0f0c0f;
  color: #fcfbf8;
  border-color: #ad0101;
  box-shadow: 0 28px 80px rgba(15, 12, 15, .16);
}

.tarif-clean-card.is-featured::before {
  background: #ad0101;
}

.tarif-badge {
  position: absolute;
  top: 18px;
  right: 18px;
  padding: 8px 10px;
  background: #ad0101;
  color: #fcfbf8;
  font-size: 11px;
  font-weight: 1000;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tarif-clean-top {
  padding-top: 16px;
}

.tarif-clean-top span {
  display: inline-flex;
  margin-bottom: 13px;
  color: #ad0101;
  font-size: 12px;
  font-weight: 1000;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tarif-clean-card.is-featured .tarif-clean-top span {
  color: rgba(252, 251, 248, .72);
}

.tarif-clean-top h2 {
  margin: 0 0 12px;
  font-size: clamp(46px, 5vw, 70px);
  line-height: .86;
  letter-spacing: -.075em;
  text-transform: uppercase;
}

.tarif-clean-top p {
  min-height: 58px;
  margin: 0 0 22px;
  color: rgba(15, 12, 15, .66);
  line-height: 1.42;
}

.tarif-clean-card.is-featured .tarif-clean-top p {
  color: rgba(252, 251, 248, .72);
}

.tarif-clean-price {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  padding: 18px 0 12px;
  border-top: 1px solid rgba(15, 12, 15, .10);
}

.tarif-clean-card.is-featured .tarif-clean-price {
  border-color: rgba(252, 251, 248, .14);
}

.tarif-clean-price strong {
  display: block;
  color: #ad0101;
  font-size: clamp(52px, 5vw, 72px);
  line-height: .86;
  letter-spacing: -.07em;
}

.tarif-clean-price small {
  padding-bottom: 8px;
  color: rgba(15, 12, 15, .52);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.tarif-clean-card.is-featured .tarif-clean-price small {
  color: rgba(252, 251, 248, .54);
}

.tarif-clean-total {
  display: grid;
  gap: 8px;
  margin: 0 0 18px;
  padding: 12px;
  background: rgba(173, 1, 1, .08);
  border-left: 4px solid #ad0101;
}

.tarif-clean-card.is-featured .tarif-clean-total {
  background: rgba(252, 251, 248, .08);
}

.tarif-clean-total span {
  color: rgba(15, 12, 15, .60);
  font-size: 13px;
  font-weight: 850;
}

.tarif-clean-card.is-featured .tarif-clean-total span {
  color: rgba(252, 251, 248, .68);
}

.tarif-clean-total b {
  color: #ad0101;
  font-size: 18px;
  font-weight: 1000;
  text-transform: uppercase;
}

.tarif-clean-card ul {
  flex: 1;
  margin: 0 0 22px;
  padding: 0;
  list-style: none;
}

.tarif-clean-card li {
  position: relative;
  padding: 10px 0 10px 20px;
  border-bottom: 1px solid rgba(15, 12, 15, .08);
  color: rgba(15, 12, 15, .70);
  font-weight: 750;
}

.tarif-clean-card.is-featured li {
  border-color: rgba(252, 251, 248, .12);
  color: rgba(252, 251, 248, .72);
}

.tarif-clean-card li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 17px;
  width: 7px;
  height: 7px;
  background: #ad0101;
}

.tarif-clean-card > a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 14px 18px;
  background: #0f0c0f;
  color: #fcfbf8;
  font-size: 13px;
  font-weight: 1000;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.tarif-clean-card.is-featured > a {
  background: #ad0101;
}

.tarifs-choice {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 22px;
  align-items: center;
  padding: 34px;
  background: #0f0c0f;
  color: #fcfbf8;
  overflow: hidden;
  position: relative;
}

.tarifs-choice::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(173, 1, 1, .36), transparent 23rem),
    linear-gradient(120deg, rgba(15, 12, 15, 0), rgba(173, 1, 1, .14));
}

.tarifs-choice > * {
  position: relative;
  z-index: 1;
}

.tarifs-choice h2 {
  margin: 16px 0 14px;
  max-width: 760px;
  font-size: clamp(44px, 5vw, 82px);
  line-height: .86;
  text-transform: uppercase;
  letter-spacing: -.075em;
}

.tarifs-choice p {
  margin: 0;
  max-width: 760px;
  color: rgba(252, 251, 248, .78);
  font-size: 18px;
  line-height: 1.48;
}

.tarifs-choice p strong {
  color: #fcfbf8;
}

.tarifs-choice-card {
  padding: 26px;
  background: rgba(252, 251, 248, .94);
  color: #0f0c0f;
  border-left: 7px solid #ad0101;
}

.tarifs-choice-card h3 {
  margin: 0 0 10px;
  font-size: 30px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -.05em;
}

.tarifs-choice-card p {
  margin: 0 0 22px;
  color: rgba(15, 12, 15, .70);
  font-size: 16px;
}

.tarifs-final-clean {
  width: min(1220px, calc(100% - 40px));
  margin: 0 auto 88px;
  padding: 34px;
  background: #ad0101;
  color: #fcfbf8;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: center;
}

.tarifs-final-clean h2 {
  margin: 12px 0 10px;
  font-size: clamp(38px, 5vw, 74px);
  line-height: .88;
  letter-spacing: -.07em;
  text-transform: uppercase;
}

.tarifs-final-clean p {
  max-width: 720px;
  margin: 0;
  color: rgba(252, 251, 248, .82);
  font-size: 18px;
  line-height: 1.45;
}

.tarifs-final-clean .btn {
  background: #fcfbf8;
  color: #0f0c0f;
  border-color: #fcfbf8;
}

@media(max-width: 1100px) {
  .tarifs-clean-grid {
    grid-template-columns: 1fr;
  }

  .tarif-clean-top p {
    min-height: auto;
  }
}

@media(max-width: 980px) {
  .tarifs-hero-clean-inner,
  .tarifs-choice,
  .tarifs-final-clean {
    grid-template-columns: 1fr;
  }
}

@media(max-width: 760px) {
  .tarifs-hero-clean-inner {
    width: calc(100% - 28px);
    padding: 62px 0 54px;
  }

  .tarifs-clean-section {
    margin-top: -20px;
  }

  .tarif-clean-card,
  .tarifs-choice,
  .tarifs-choice-card,
  .tarifs-final-clean {
    padding: 22px;
  }

  .tarifs-final-clean {
    width: calc(100% - 28px);
  }
}

/* Correctif alignement cartes tarifs */
.tarifs-clean-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 22px;
  overflow: visible;
}

.tarif-clean-card {
  width: 100%;
  height: 100%;
  min-height: 640px;
  box-sizing: border-box;
}

.tarif-clean-card.is-featured {
  transform: translateY(-12px) scale(1.025);
  z-index: 2;
}

.tarif-clean-top {
  min-height: 150px;
}

.tarif-clean-top p {
  min-height: auto;
}

.tarif-clean-price {
  min-height: 96px;
}

.tarif-clean-total {
  min-height: 74px;
}

.tarif-clean-card ul {
  flex: 1;
}

.tarif-clean-card > a {
  margin-top: auto;
}






/* Nouvelle page tarifs Pulsia */
.tarifs-hero-v2 {
  position: relative;
  overflow: hidden;
  background: #0f0c0f;
  color: #fcfbf8;
}

.tarifs-hero-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .34;
  filter: saturate(1.05) contrast(1.08) brightness(.68);
}

.tarifs-hero-v2::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 82% 15%, rgba(173, 1, 1, .48), transparent 24rem),
    linear-gradient(90deg, rgba(15, 12, 15, .96) 0%, rgba(15, 12, 15, .78) 55%, rgba(15, 12, 15, .42) 100%);
}

.tarifs-hero-v2-inner {
  position: relative;
  z-index: 2;
  width: min(1220px, calc(100% - 40px));
  margin: 0 auto;
  padding: 96px 0 78px;
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 34px;
  align-items: end;
}

.tarifs-hero-v2 h1 {
  margin: 14px 0 18px;
  max-width: 900px;
  font-size: clamp(54px, 7vw, 112px);
  line-height: .84;
  letter-spacing: -.085em;
  text-transform: uppercase;
}

.tarifs-hero-v2 p {
  max-width: 760px;
  margin: 0;
  color: rgba(252, 251, 248, .80);
  font-size: clamp(18px, 2vw, 23px);
  line-height: 1.42;
}

.tarifs-hero-v2-card {
  padding: 24px;
  background: rgba(252, 251, 248, .09);
  border: 1px solid rgba(252, 251, 248, .16);
  border-left: 6px solid #ad0101;
  backdrop-filter: blur(10px);
}

.tarifs-hero-v2-card strong {
  display: block;
  margin-bottom: 10px;
  color: #fcfbf8;
  font-size: 28px;
  line-height: .95;
  text-transform: uppercase;
  letter-spacing: -.05em;
}

.tarifs-hero-v2-card span {
  display: block;
  color: rgba(252, 251, 248, .74);
  font-size: 15px;
  line-height: 1.45;
  font-weight: 800;
}

/* Fonctionnement direct */
.pricing-flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.pricing-flow article {
  position: relative;
  padding: 28px;
  background: #fcfbf8;
  color: #0f0c0f;
  border: 1px solid rgba(15, 12, 15, .08);
  box-shadow: 0 18px 46px rgba(15, 12, 15, .06);
}

.pricing-flow article::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 6px;
  background: rgba(15, 12, 15, .12);
}

.pricing-flow article.red {
  background: #ad0101;
  color: #fcfbf8;
}

.pricing-flow article.red::before {
  background: #0f0c0f;
}

.pricing-flow span {
  display: block;
  margin-bottom: 16px;
  color: #ad0101;
  font-size: 13px;
  font-weight: 1000;
}

.pricing-flow article.red span {
  color: rgba(252, 251, 248, .76);
}

.pricing-flow h2 {
  margin: 0 0 12px;
  font-size: clamp(34px, 4vw, 54px);
  line-height: .88;
  text-transform: uppercase;
  letter-spacing: -.065em;
}

.pricing-flow p {
  margin: 0;
  color: rgba(15, 12, 15, .68);
  font-size: 15px;
  line-height: 1.42;
  font-weight: 750;
}

.pricing-flow article.red p {
  color: rgba(252, 251, 248, .78);
}

/* Affiliation simplifiée */
.affiliation-simple {
  display: grid;
  grid-template-columns: .62fr 1fr;
  gap: 24px;
  align-items: start;
  padding: 34px;
  background: #0f0c0f;
  color: #fcfbf8;
  position: relative;
  overflow: hidden;
}

.affiliation-simple::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 20%, rgba(173, 1, 1, .34), transparent 24rem),
    linear-gradient(120deg, rgba(15, 12, 15, 0), rgba(173, 1, 1, .14));
}

.affiliation-simple > * {
  position: relative;
  z-index: 1;
}

.affiliation-simple h2 {
  margin: 16px 0 0;
  font-size: clamp(42px, 5vw, 76px);
  line-height: .86;
  text-transform: uppercase;
  letter-spacing: -.075em;
}

.affiliation-simple-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.affiliation-simple-grid article {
  padding: 18px;
  background: rgba(252, 251, 248, .075);
  border: 1px solid rgba(252, 251, 248, .10);
  border-left: 4px solid rgba(173, 1, 1, .75);
}

.affiliation-simple-grid h3 {
  margin: 0 0 8px;
  font-size: 21px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -.045em;
}

.affiliation-simple-grid p {
  margin: 0;
  color: rgba(252, 251, 248, .68);
  font-size: 13px;
  line-height: 1.38;
}

.affiliation-simple-grid article.price {
  background: #ad0101;
  border-left-color: #fcfbf8;
}

.affiliation-simple-grid article.price h3 {
  font-size: clamp(42px, 5vw, 64px);
  letter-spacing: -.075em;
}

/* Titre formules */
.formules-heading {
  max-width: 840px;
  margin: 0 0 28px;
}

.formules-heading h2 {
  margin: 16px 0 12px;
  font-size: clamp(44px, 5vw, 82px);
  line-height: .86;
  text-transform: uppercase;
  letter-spacing: -.075em;
}

.formules-heading p {
  margin: 0;
  color: rgba(15, 12, 15, .68);
  font-size: 18px;
  line-height: 1.45;
}

/* Cartes tarifs */
.tarifs-clean-section {
  margin-top: 0;
  position: relative;
  z-index: 3;
}

.tarifs-clean-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  align-items: stretch;
  overflow: visible;
}

.tarif-clean-card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 650px;
  padding: 28px;
  background: #fcfbf8;
  color: #0f0c0f;
  border: 1px solid rgba(15, 12, 15, .08);
  box-shadow: 0 20px 54px rgba(15, 12, 15, .07);
  overflow: visible;
}

.tarif-clean-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 6px;
  background: rgba(15, 12, 15, .12);
}

.tarif-clean-card.is-featured {
  background: #0f0c0f;
  color: #fcfbf8;
  border-color: #ad0101;
  box-shadow: 0 28px 80px rgba(15, 12, 15, .16);
  transform: translateY(-12px) scale(1.025);
  z-index: 2;
}

.tarif-clean-card.is-featured::before {
  background: #ad0101;
}

.tarif-badge {
  position: absolute;
  top: 18px;
  right: 18px;
  padding: 8px 10px;
  background: #ad0101;
  color: #fcfbf8;
  font-size: 11px;
  font-weight: 1000;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tarif-clean-top {
  padding-top: 16px;
  min-height: 150px;
  overflow: visible;
}

.tarif-clean-top span {
  display: inline-flex;
  margin-bottom: 13px;
  color: #ad0101;
  font-size: 12px;
  font-weight: 1000;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tarif-clean-card.is-featured .tarif-clean-top span {
  color: rgba(252, 251, 248, .72);
}

.tarif-clean-top h2 {
  margin: 0 0 12px;
  font-size: clamp(38px, 4.2vw, 62px);
  line-height: .9;
  letter-spacing: -.065em;
  text-transform: uppercase;
}

.tarif-clean-card:nth-child(3) .tarif-clean-top h2 {
  font-size: clamp(34px, 3.6vw, 54px);
  letter-spacing: -.06em;
}

.tarif-clean-top p {
  margin: 0 0 22px;
  color: rgba(15, 12, 15, .66);
  line-height: 1.42;
}

.tarif-clean-card.is-featured .tarif-clean-top p {
  color: rgba(252, 251, 248, .72);
}

.tarif-clean-price {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  min-height: 96px;
  padding: 18px 0 12px;
  border-top: 1px solid rgba(15, 12, 15, .10);
}

.tarif-clean-card.is-featured .tarif-clean-price {
  border-color: rgba(252, 251, 248, .14);
}

.tarif-clean-price strong {
  display: block;
  color: #ad0101;
  font-size: clamp(52px, 5vw, 72px);
  line-height: .86;
  letter-spacing: -.07em;
}

.tarif-clean-price small {
  padding-bottom: 8px;
  color: rgba(15, 12, 15, .52);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.tarif-clean-card.is-featured .tarif-clean-price small {
  color: rgba(252, 251, 248, .54);
}

.tarif-clean-total {
  display: grid;
  gap: 9px;
  min-height: 74px;
  margin: 0 0 18px;
  padding: 12px;
  background: rgba(173, 1, 1, .08);
  border-left: 4px solid #ad0101;
}

.tarif-clean-card.is-featured .tarif-clean-total {
  background: rgba(252, 251, 248, .08);
}

.tarif-clean-total span {
  color: rgba(15, 12, 15, .60);
  font-size: 13px;
  font-weight: 850;
}

.tarif-clean-card.is-featured .tarif-clean-total span {
  color: rgba(252, 251, 248, .68);
}

.tarif-clean-total b {
  display: block;
  color: #ad0101;
  font-size: 20px;
  font-weight: 1000;
  text-transform: uppercase;
  line-height: 1;
}

.commitment-label {
  display: inline-flex;
  width: max-content;
  margin-top: 2px;
  padding: 6px 8px;
  background: rgba(15, 12, 15, .08);
  color: rgba(15, 12, 15, .64);
  font-size: 11px;
  font-style: normal;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.tarif-clean-card.is-featured .commitment-label {
  background: rgba(252, 251, 248, .10);
  color: rgba(252, 251, 248, .72);
}

/* Switch Option Liberté */
.access-option-panel {
  margin-top: 10px;
  padding: 12px;
  background: rgba(15, 12, 15, .045);
  border: 1px solid rgba(15, 12, 15, .08);
  border-left: 4px solid #ad0101;
}

.access-liberte-toggle {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 12px;
  align-items: center;
  margin-top: 10px;
  cursor: pointer;
  user-select: none;
}

.access-liberte-toggle input {
  display: none;
}

.switch-track {
  position: relative;
  width: 64px;
  height: 34px;
  background: rgba(15, 12, 15, .18);
  border: 1px solid rgba(15, 12, 15, .16);
  box-shadow: inset 0 0 0 2px rgba(252, 251, 248, .35);
  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.switch-track i {
  position: absolute;
  top: 5px;
  left: 5px;
  width: 22px;
  height: 22px;
  background: #0f0c0f;
  box-shadow: 0 6px 16px rgba(15, 12, 15, .22);
  transition: transform .25s ease, background .25s ease;
}

.access-liberte-toggle input:checked + .switch-track {
  background: #ad0101;
  border-color: #ad0101;
  box-shadow:
    inset 0 0 0 2px rgba(252, 251, 248, .16),
    0 0 0 4px rgba(173, 1, 1, .12);
}

.access-liberte-toggle input:checked + .switch-track i {
  transform: translateX(30px);
  background: #fcfbf8;
}

.access-liberte-toggle strong {
  display: grid;
  gap: 2px;
  color: #0f0c0f;
  font-size: 14px;
  font-weight: 1000;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.access-liberte-toggle strong small {
  color: rgba(15, 12, 15, .52);
  font-size: 10px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.access-liberte-text {
  margin: 10px 0 0 !important;
  color: rgba(15, 12, 15, .62) !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  font-weight: 750;
}

/* Avantages en blocs */
.tarif-clean-card ul {
  display: grid;
  gap: 8px;
  flex: 1;
  margin: 0 0 22px;
  padding: 0;
  list-style: none;
}

.tarif-clean-card li {
  position: relative;
  padding: 11px 12px 11px 36px;
  background: rgba(15, 12, 15, .045);
  border: 1px solid rgba(15, 12, 15, .055);
  color: rgba(15, 12, 15, .74);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.32;
}

.tarif-clean-card li::before {
  content: "";
  position: absolute;
  left: 14px;
  top: 17px;
  width: 8px;
  height: 8px;
  background: #ad0101;
}

.tarif-clean-card.is-featured li {
  background: rgba(252, 251, 248, .075);
  border-color: rgba(252, 251, 248, .10);
  color: rgba(252, 251, 248, .78);
}

.tarif-clean-card > a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  margin-top: auto;
  padding: 14px 18px;
  background: #0f0c0f;
  color: #fcfbf8;
  font-size: 13px;
  font-weight: 1000;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.tarif-clean-card.is-featured > a {
  background: #ad0101;
}

/* Dropdown avantages */
.tarif-clean-card li.feature-dropdown {
  padding-left: 12px;
}

.tarif-clean-card li.feature-dropdown::before {
  display: none;
}

.feature-dropdown summary {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  list-style: none;
  font-weight: 1000;
  color: rgba(15, 12, 15, .82);
}

.tarif-clean-card.is-featured .feature-dropdown summary {
  color: rgba(252, 251, 248, .86);
}

.feature-dropdown summary::-webkit-details-marker {
  display: none;
}

.feature-dropdown summary::before {
  content: "";
  width: 8px;
  height: 8px;
  background: #ad0101;
  flex: 0 0 auto;
}

.feature-dropdown summary::after {
  content: "+";
  margin-left: auto;
  color: #ad0101;
  font-size: 22px;
  font-weight: 1000;
  line-height: 1;
}

.feature-dropdown details[open] summary::after {
  content: "−";
}

.feature-dropdown-content {
  display: grid;
  gap: 7px;
  margin-top: 12px;
  padding: 12px;
  background: rgba(252, 251, 248, .68);
  border-left: 3px solid #ad0101;
}

.tarif-clean-card.is-featured .feature-dropdown-content {
  background: rgba(15, 12, 15, .30);
}

.feature-dropdown-content span {
  display: block;
  padding: 7px 9px;
  background: rgba(15, 12, 15, .045);
  color: rgba(15, 12, 15, .68);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
}

.tarif-clean-card.is-featured .feature-dropdown-content span {
  background: rgba(252, 251, 248, .08);
  color: rgba(252, 251, 248, .70);
}

/* Bloc conseil */
.tarifs-choice {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 22px;
  align-items: center;
  padding: 34px;
  background: #0f0c0f;
  color: #fcfbf8;
  overflow: hidden;
  position: relative;
}

.tarifs-choice::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(173, 1, 1, .36), transparent 23rem),
    linear-gradient(120deg, rgba(15, 12, 15, 0), rgba(173, 1, 1, .14));
}

.tarifs-choice > * {
  position: relative;
  z-index: 1;
}

.tarifs-choice h2 {
  margin: 16px 0 14px;
  max-width: 760px;
  font-size: clamp(44px, 5vw, 82px);
  line-height: .86;
  text-transform: uppercase;
  letter-spacing: -.075em;
}

.tarifs-choice p {
  margin: 0;
  max-width: 760px;
  color: rgba(252, 251, 248, .78);
  font-size: 18px;
  line-height: 1.48;
}

.tarifs-choice p strong {
  color: #fcfbf8;
}

.tarifs-choice-card {
  padding: 26px;
  background: rgba(252, 251, 248, .94);
  color: #0f0c0f;
  border-left: 7px solid #ad0101;
}

.tarifs-choice-card h3 {
  margin: 0 0 10px;
  font-size: 30px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -.05em;
}

.tarifs-choice-card p {
  margin: 0 0 22px;
  color: rgba(15, 12, 15, .70);
  font-size: 16px;
}

.tarifs-final-clean {
  width: min(1220px, calc(100% - 40px));
  margin: 0 auto 88px;
  padding: 34px;
  background: #ad0101;
  color: #fcfbf8;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: center;
}

.tarifs-final-clean h2 {
  margin: 12px 0 10px;
  font-size: clamp(38px, 5vw, 74px);
  line-height: .88;
  letter-spacing: -.07em;
  text-transform: uppercase;
}

.tarifs-final-clean p {
  max-width: 720px;
  margin: 0;
  color: rgba(252, 251, 248, .82);
  font-size: 18px;
  line-height: 1.45;
}

.tarifs-final-clean .btn {
  background: #fcfbf8;
  color: #0f0c0f;
  border-color: #fcfbf8;
}

/* Responsive */
@media(max-width: 1100px) {
  .tarifs-clean-grid {
    grid-template-columns: 1fr;
  }

  .tarif-clean-card {
    min-height: auto;
  }

  .tarif-clean-card.is-featured {
    transform: none;
  }

  .tarif-clean-top,
  .tarif-clean-price,
  .tarif-clean-total {
    min-height: auto;
  }

  .tarif-clean-top h2,
  .tarif-clean-card:nth-child(3) .tarif-clean-top h2 {
    font-size: clamp(42px, 12vw, 68px);
    line-height: .9;
  }
}

@media(max-width: 980px) {
  .tarifs-hero-v2-inner,
  .pricing-flow,
  .affiliation-simple,
  .affiliation-simple-grid,
  .tarifs-choice,
  .tarifs-final-clean {
    grid-template-columns: 1fr;
  }
}

@media(max-width: 760px) {
  .tarifs-hero-v2-inner {
    width: calc(100% - 28px);
    padding: 62px 0 54px;
  }

  .pricing-flow article,
  .affiliation-simple,
  .affiliation-simple-grid article,
  .tarif-clean-card,
  .tarifs-choice,
  .tarifs-choice-card,
  .tarifs-final-clean {
    padding: 22px;
  }

  .tarifs-final-clean {
    width: calc(100% - 28px);
  }
}

@media(max-width: 420px) {
  .tarif-clean-top h2,
  .tarif-clean-card:nth-child(3) .tarif-clean-top h2 {
    font-size: 40px;
    letter-spacing: -.045em;
  }
}




/* Page Clubs Pulsia */
.clubs-hero{position:relative;overflow:hidden;background:#0f0c0f;color:#fcfbf8}.clubs-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.34;filter:saturate(1.05) contrast(1.08) brightness(.68)}.clubs-hero::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 82% 15%,rgba(173,1,1,.48),transparent 24rem),linear-gradient(90deg,rgba(15,12,15,.96) 0%,rgba(15,12,15,.78) 55%,rgba(15,12,15,.42) 100%)}.clubs-hero-inner{position:relative;z-index:2;width:min(1220px,calc(100% - 40px));margin:0 auto;padding:96px 0 78px;display:grid;grid-template-columns:1fr 380px;gap:34px;align-items:end}.clubs-hero h1{margin:14px 0 18px;max-width:900px;font-size:clamp(56px,8vw,118px);line-height:.84;letter-spacing:-.085em;text-transform:uppercase}.clubs-hero p{max-width:760px;margin:0;color:rgba(252,251,248,.80);font-size:clamp(18px,2vw,23px);line-height:1.42}.clubs-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.clubs-hero-card{padding:24px;background:rgba(252,251,248,.09);border:1px solid rgba(252,251,248,.16);border-left:6px solid #ad0101;backdrop-filter:blur(10px)}.clubs-hero-card strong{display:block;margin-bottom:10px;color:#fcfbf8;font-size:30px;line-height:.95;text-transform:uppercase;letter-spacing:-.05em}.clubs-hero-card span{display:block;color:rgba(252,251,248,.74);font-size:15px;line-height:1.45;font-weight:800}
.clubs-map-layout{display:grid;grid-template-columns:.72fr 1fr;gap:24px;align-items:stretch}.clubs-map-copy{padding:34px;background:#0f0c0f;color:#fcfbf8;border-left:6px solid #ad0101}.clubs-map-copy h2{margin:16px 0 14px;font-size:clamp(42px,5vw,76px);line-height:.86;text-transform:uppercase;letter-spacing:-.075em}.clubs-map-copy p{margin:0;color:rgba(252,251,248,.76);font-size:18px;line-height:1.48}.clubs-map-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.clubs-map-actions .btn.dark{background:#fcfbf8;border-color:#fcfbf8;color:#0f0c0f}.clubs-map-card{position:relative;min-height:430px;background:radial-gradient(circle at 20% 25%,rgba(173,1,1,.24),transparent 15rem),linear-gradient(135deg,#fcfbf8,#f1efec);border:1px solid rgba(15,12,15,.08);box-shadow:0 18px 54px rgba(15,12,15,.08);overflow:hidden}.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(15,12,15,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(15,12,15,.06) 1px,transparent 1px);background-size:46px 46px;opacity:.85}.map-line{position:absolute;left:31%;top:52%;width:43%;height:4px;background:#ad0101;transform:rotate(-9deg);transform-origin:left center;box-shadow:0 0 0 6px rgba(173,1,1,.08)}.map-pin{position:absolute;z-index:2;width:190px;padding:14px;background:#0f0c0f;color:#fcfbf8;border-left:6px solid #ad0101;box-shadow:0 18px 40px rgba(15,12,15,.20)}.map-pin::before{content:"";position:absolute;left:-17px;top:50%;width:18px;height:18px;background:#ad0101;border:4px solid #fcfbf8;transform:translateY(-50%) rotate(45deg)}.map-pin span{display:block;margin-bottom:5px;color:#ad0101;font-size:12px;font-weight:1000;text-transform:uppercase;letter-spacing:.08em}.map-pin strong{display:block;font-size:15px;line-height:1.25}.map-pin-luce{left:16%;top:54%}.map-pin-chartres{right:14%;top:36%}
.clubs-intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.clubs-intro-grid article{position:relative;padding:28px;background:#fcfbf8;color:#0f0c0f;border:1px solid rgba(15,12,15,.08);box-shadow:0 18px 46px rgba(15,12,15,.06)}.clubs-intro-grid article::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:rgba(15,12,15,.12)}.clubs-intro-grid article.red{background:#ad0101;color:#fcfbf8}.clubs-intro-grid article.red::before{background:#0f0c0f}.clubs-intro-grid span{display:block;margin-bottom:16px;color:#ad0101;font-size:13px;font-weight:1000}.clubs-intro-grid article.red span{color:rgba(252,251,248,.76)}.clubs-intro-grid h2{margin:0 0 12px;font-size:clamp(30px,3vw,46px);line-height:.9;text-transform:uppercase;letter-spacing:-.065em}.clubs-intro-grid p{margin:0;color:rgba(15,12,15,.68);font-size:15px;line-height:1.42;font-weight:750}.clubs-intro-grid article.red p{color:rgba(252,251,248,.78)}
.club-detail-grid{display:grid;gap:24px}.club-detail-card{padding:34px;background:#fcfbf8;color:#0f0c0f;border:1px solid rgba(15,12,15,.08);box-shadow:0 20px 54px rgba(15,12,15,.07)}.club-detail-head{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:start;margin-bottom:24px}.club-detail-head h2{margin:16px 0 12px;font-size:clamp(42px,5vw,76px);line-height:.86;text-transform:uppercase;letter-spacing:-.075em}.club-detail-head p{margin:0;max-width:720px;color:rgba(15,12,15,.68);font-size:18px;line-height:1.45}.club-map-link{display:inline-flex;min-height:46px;align-items:center;justify-content:center;padding:13px 16px;background:#0f0c0f;color:#fcfbf8;font-size:13px;font-weight:1000;text-transform:uppercase;letter-spacing:.05em}.club-address{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:18px;margin-bottom:20px;background:rgba(173,1,1,.08);border-left:5px solid #ad0101}.club-address strong{color:#ad0101;font-size:13px;font-weight:1000;text-transform:uppercase;letter-spacing:.08em}.club-address p{margin:0;font-size:18px;font-weight:900;line-height:1.35}.club-info-columns{display:grid;grid-template-columns:.9fr 1fr;gap:18px}.club-hours,.club-activities{padding:22px;background:rgba(15,12,15,.045);border:1px solid rgba(15,12,15,.06)}.club-hours h3,.club-activities h3,.club-planning-card h3{margin:0 0 16px;font-size:28px;line-height:1;text-transform:uppercase;letter-spacing:-.05em}.club-hours ul{margin:0;padding:0;list-style:none}.club-hours li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid rgba(15,12,15,.08)}.club-hours li:last-child{border-bottom:0}.club-hours span{color:rgba(15,12,15,.62);font-weight:850}.club-hours strong{color:#0f0c0f;font-weight:1000}.club-activities div{display:flex;flex-wrap:wrap;gap:8px}.club-activities span{display:inline-flex;padding:9px 10px;background:#0f0c0f;color:#fcfbf8;font-size:12px;font-weight:1000;text-transform:uppercase;letter-spacing:.04em}.club-planning-card{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;margin-top:18px;padding:22px;background:#0f0c0f;color:#fcfbf8;border-left:6px solid #ad0101}.club-planning-card p{margin:0;color:rgba(252,251,248,.72);line-height:1.42}.club-planning-card a{display:inline-flex;min-height:46px;align-items:center;justify-content:center;padding:13px 16px;background:#ad0101;color:#fcfbf8;font-size:13px;font-weight:1000;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.clubs-which{display:grid;grid-template-columns:.75fr 1fr;gap:24px;align-items:stretch;padding:34px;background:#0f0c0f;color:#fcfbf8;position:relative;overflow:hidden}.clubs-which::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 20%,rgba(173,1,1,.34),transparent 24rem),linear-gradient(120deg,rgba(15,12,15,0),rgba(173,1,1,.14))}.clubs-which>*{position:relative;z-index:1}.clubs-which h2{margin:16px 0 14px;font-size:clamp(42px,5vw,78px);line-height:.86;text-transform:uppercase;letter-spacing:-.075em}.clubs-which p{margin:0;color:rgba(252,251,248,.76);font-size:18px;line-height:1.48}.clubs-which-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.clubs-which-grid article{padding:24px;background:rgba(252,251,248,.08);border:1px solid rgba(252,251,248,.12);border-left:4px solid #ad0101}.clubs-which-grid h3{margin:0 0 10px;font-size:34px;line-height:1;text-transform:uppercase;letter-spacing:-.055em}.clubs-which-grid p{margin:0 0 18px;color:rgba(252,251,248,.70);font-size:15px}.clubs-which-grid a{display:inline-flex;color:#fcfbf8;font-size:13px;font-weight:1000;text-transform:uppercase;letter-spacing:.06em;border-bottom:3px solid #ad0101}.clubs-planning-section{display:grid;grid-template-columns:.72fr 1fr;gap:24px;align-items:center}.clubs-planning-section h2{margin:16px 0 14px;font-size:clamp(42px,5vw,76px);line-height:.86;text-transform:uppercase;letter-spacing:-.075em}.clubs-planning-section p{margin:0;color:rgba(15,12,15,.68);font-size:18px;line-height:1.45}.clubs-planning-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.clubs-planning-grid a{padding:26px;background:#fcfbf8;color:#0f0c0f;border:1px solid rgba(15,12,15,.08);border-left:6px solid #ad0101;box-shadow:0 18px 46px rgba(15,12,15,.06)}.clubs-planning-grid strong{display:block;margin-bottom:8px;font-size:30px;line-height:1;text-transform:uppercase;letter-spacing:-.055em}.clubs-planning-grid span{color:rgba(15,12,15,.64);font-weight:800}
.clubs-final{width:min(1220px,calc(100% - 40px));margin:0 auto 88px;padding:34px;background:#ad0101;color:#fcfbf8;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center}.clubs-final h2{margin:12px 0 10px;font-size:clamp(38px,5vw,74px);line-height:.88;letter-spacing:-.07em;text-transform:uppercase}.clubs-final p{max-width:720px;margin:0;color:rgba(252,251,248,.82);font-size:18px;line-height:1.45}.clubs-final .btn{background:#fcfbf8;color:#0f0c0f;border-color:#fcfbf8}@media(max-width:1100px){.clubs-map-layout,.club-info-columns,.clubs-which,.clubs-planning-section{grid-template-columns:1fr}}@media(max-width:980px){.clubs-hero-inner,.clubs-intro-grid,.club-detail-head,.clubs-which-grid,.clubs-planning-grid,.clubs-final{grid-template-columns:1fr}.clubs-hero-card{max-width:520px}.club-address{grid-template-columns:1fr}}@media(max-width:760px){.clubs-hero-inner{width:calc(100% - 28px);padding:62px 0 54px}.clubs-map-copy,.clubs-intro-grid article,.club-detail-card,.club-hours,.club-activities,.club-planning-card,.clubs-which,.clubs-which-grid article,.clubs-planning-grid a,.clubs-final{padding:22px}.clubs-map-card{min-height:360px}.map-pin{width:160px;padding:12px}.map-pin-luce{left:10%;top:58%}.map-pin-chartres{right:8%;top:30%}.map-line{left:28%;width:42%}.clubs-final{width:calc(100% - 28px)}}

/* Map Google Pulsia propre */
.clubs-google-map {
  min-height: 430px;
  background: #0f0c0f;
  border: 1px solid rgba(15, 12, 15, .08);
  box-shadow: 0 18px 54px rgba(15, 12, 15, .08);
  overflow: hidden;
}

#pulsiaMap {
  width: 100%;
  height: 430px;
}

.pulsia-map-window {
  display: grid;
  gap: 6px;
  min-width: 190px;
  color: #0f0c0f;
  font-family: Arial, sans-serif;
}

.pulsia-map-window strong {
  display: block;
  color: #ad0101;
  font-size: 16px;
  font-weight: 1000;
  text-transform: uppercase;
}

.pulsia-map-window span {
  display: block;
  color: rgba(15, 12, 15, .72);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.pulsia-map-window a {
  display: inline-flex;
  width: fit-content;
  margin-top: 4px;
  padding: 7px 9px;
  background: #0f0c0f;
  color: #fcfbf8;
  font-size: 11px;
  font-weight: 1000;
  text-transform: uppercase;
  text-decoration: none;
}

@media(max-width: 760px) {
  .clubs-google-map,
  #pulsiaMap {
    min-height: 360px;
    height: 360px;
  }
}





/* Bloc identité club avec photo façade verticale */
.club-identity-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 22px;
  align-items: stretch;
  margin: 22px 0;
}

.club-identity-content {
  min-width: 0;
}



.club-facade-vertical {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 6;
  max-height: 600px;
  overflow: hidden;
  background: #0f0c0f;
  box-shadow: 0 18px 44px rgba(15, 12, 15, .12);
}

.club-facade-vertical img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.02) contrast(1.06) brightness(.82);
}




.club-facade-vertical::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(15, 12, 15, .04),
    rgba(15, 12, 15, .18) 42%,
    rgba(15, 12, 15, .86) 100%
  );
}

.club-facade-caption {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 18px;
  z-index: 1;
  padding: 18px;
  background: rgba(15, 12, 15, .84);
  border-left: 5px solid #ad0101;
  color: #fcfbf8;
}

.club-facade-caption strong {
  display: block;
  margin-bottom: 6px;
  font-size: 26px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -.045em;
}

.club-facade-caption span {
  color: rgba(252, 251, 248, .76);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.35;
}

/* Adresse + téléphone */
.club-contact-strip {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 14px;
  margin-bottom: 20px;
}

.club-contact-strip > div {
  padding: 18px;
  background: rgba(173, 1, 1, .08);
  border-left: 5px solid #ad0101;
}

.club-contact-strip strong {
  display: block;
  margin-bottom: 8px;
  color: #ad0101;
  font-size: 12px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.club-contact-strip p {
  margin: 0;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.35;
}

.club-contact-strip a {
  color: #0f0c0f;
  text-decoration: none;
}

/* Titres clubs moins massifs */
.club-detail-head h2 {
  max-width: 820px;
  font-size: clamp(34px, 4vw, 54px);
  line-height: .92;
  letter-spacing: -.055em;
}

.club-detail-head p {
  max-width: 680px;
  font-size: 17px;
}

/* Responsive */
@media (max-width: 1100px) {
  .club-identity-grid {
    grid-template-columns: 1fr;
  }

  .club-facade-vertical {
    aspect-ratio: 10 / 16;
    max-height: 530px;
  }
}

@media (max-width: 760px) {
  .club-contact-strip {
    grid-template-columns: 1fr;
  }

  .club-facade-vertical {
    aspect-ratio: 3 / 5;
    max-height: 430px;
  }

  .club-facade-caption {
    left: 14px;
    right: 14px;
    bottom: 14px;
  }
}








/* Adresse + téléphone */
.club-contact-strip {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 14px;
  margin-bottom: 20px;
}

.club-contact-strip > div {
  padding: 18px;
  background: rgba(173, 1, 1, .08);
  border-left: 5px solid #ad0101;
}

.club-contact-strip strong {
  display: block;
  margin-bottom: 8px;
  color: #ad0101;
  font-size: 12px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.club-contact-strip p {
  margin: 0;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.35;
}

.club-contact-strip a {
  color: #0f0c0f;
  text-decoration: none;
}

@media(max-width: 760px) {
  .club-contact-strip {
    grid-template-columns: 1fr;
  }
}




/* Titres fiches clubs moins énormes */
.club-detail-head h2 {
  max-width: 820px;
  font-size: clamp(34px, 4vw, 54px);
  line-height: .92;
  letter-spacing: -.055em;
}

.club-detail-head p {
  max-width: 680px;
  font-size: 17px;
}



/* ===== INSTINCT PULSIA ===== */

.instinct-wrapper{
    background:#070507;
    padding:70px 24px;
}

.instinct-photo{
    position:relative;
    overflow:hidden;
    isolation:isolate;

    max-width:1280px;
    min-height:660px;
    margin:0 auto;

    background:
    radial-gradient(circle at 24% 45%, rgba(173,1,1,.34), transparent 32%),
    radial-gradient(circle at 58% 48%, rgba(173,1,1,.16), transparent 34%),
    linear-gradient(110deg, #050405 0%, #100b0d 48%, #090607 100%);
}

.instinct-photo::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;

    background:
    linear-gradient(
        90deg,
        rgba(0,0,0,.88) 0%,
        rgba(0,0,0,.46) 38%,
        rgba(0,0,0,.34) 58%,
        rgba(0,0,0,.82) 100%
    );
}

.red-lines span{
    position:absolute;
    display:block;
    height:1px;
    background:rgba(173,1,1,.55);
    z-index:2;
    transform:rotate(-18deg);
}

.red-lines span:nth-child(1){
    width:340px;
    right:12%;
    top:18%;
}

.red-lines span:nth-child(2){
    width:220px;
    right:28%;
    bottom:20%;
}

.red-lines span:nth-child(3){
    width:420px;
    left:6%;
    bottom:26%;
    opacity:.35;
}

.panther{
    position:absolute;
    left:4%;
    bottom:-60px;

    width:min(42vw,560px);
    max-width:560px;

    z-index:2;
    opacity:.98;

    filter:drop-shadow(0 0 42px rgba(173,1,1,.28));
}

.instinct-photo .content{
    position:relative;
    z-index:4;

    width:min(620px,92%);
    margin-left:46%;

    padding:105px 5% 90px 0;
}

.instinct-photo .eyebrow{
    display:inline-block;
    color:#ff1c1c;

    letter-spacing:8px;
    font-size:13px;
    font-weight:700;

    margin-bottom:22px;
    text-transform:uppercase;
}

.instinct-photo h2{
    margin:0 0 28px;

    font-size:clamp(52px,6.3vw,86px);
    line-height:.9;

    letter-spacing:-3px;
    font-weight:950;
    text-transform:uppercase;
}

.instinct-photo h2 .white{
    display:block;
    color:#fff;
}

.instinct-photo h2 .red{
    display:block;
    color:#d80808;
    text-shadow:0 0 30px rgba(173,1,1,.35);
}

.instinct-photo .intro{
    max-width:590px;
    margin:0 0 30px;

    color:rgba(252,251,248,.86);

    font-size:clamp(18px,1.7vw,22px);
    line-height:1.55;
}

.instinct-photo .intro strong{
    color:#fff;
}

.lifestyle-tags{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;

    max-width:540px;
    margin:0 0 36px;
}

.lifestyle-tags span{
    padding:15px 18px 15px 22px;

    background:
    linear-gradient(
        90deg,
        rgba(255,255,255,.08),
        rgba(255,255,255,.025)
    );

    border-left:2px solid #ad0101;

    color:#fff;
    font-weight:800;
    text-transform:uppercase;

    letter-spacing:1.4px;
    font-size:13px;

    backdrop-filter:blur(8px);
}

.instinct-photo .actions{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
}

.instinct-photo .btn-red,
.instinct-photo .btn-ghost{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-height:56px;
    padding:0 28px;

    text-decoration:none;
    text-transform:uppercase;

    letter-spacing:1.6px;
    font-size:13px;
    font-weight:900;

    transition:.25s ease;
}

.instinct-photo .btn-red{
    background:#ad0101;
    color:#fff;
    box-shadow:0 18px 50px rgba(173,1,1,.28);
}

.instinct-photo .btn-red:hover{
    transform:translateY(-2px);
    background:#d40808;
}

.instinct-photo .btn-ghost{
    border:1px solid rgba(255,255,255,.22);
    color:#fff;
    background:rgba(255,255,255,.03);
}

.instinct-photo .btn-ghost:hover{
    border-color:#ad0101;
    background:rgba(173,1,1,.12);
}

.corner-word{
    position:absolute;
    right:38px;
    bottom:32px;
    z-index:4;

    color:#ff1c1c;

    font-size:13px;
    letter-spacing:1px;
    font-weight:900;
    text-transform:uppercase;
}

@media (max-width:950px){

  .instinct-wrapper{
    padding:42px 16px;
  }

  .instinct-photo{
    min-height:auto;
    display:flex;
    flex-direction:column;
  }

  .panther{
    position:relative;
    order:1;
    left:auto;
    right:auto;
    bottom:auto;

    width:100%;
    max-width:520px;
    margin:-40px auto -20px;

    z-index:3;
    opacity:1;
  }

  .instinct-photo .content{
    order:2;
    width:100%;
    margin-left:0;
    padding:20px 24px 54px;
    text-align:left;
  }

  .lifestyle-tags{
    grid-template-columns:1fr;
  }

  .corner-word{
    display:none;
  }
}

@media (max-width:520px){

  .instinct-wrapper{
    padding:30px 0;
  }

  .panther{
    width:112%;
    max-width:none;
    margin:-35px -6% -10px;
  }

  .instinct-photo .eyebrow{
    letter-spacing:4px;
    font-size:11px;
  }

  .instinct-photo h2{
    font-size:clamp(42px,13vw,58px);
    letter-spacing:-2px;
  }

  .instinct-photo .intro{
    font-size:17px;
  }

  .instinct-photo .actions{
    flex-direction:column;
  }

  .instinct-photo .btn-red,
  .instinct-photo .btn-ghost{
    width:100%;
  }
}





/* =========================================
LES MILLS SECTION
========================================= */

.lesmills-show{
    position:relative;
    overflow:hidden;

    min-height:760px;

    display:flex;
    align-items:center;

    background:#050405;

    isolation:isolate;
}

/* VIDEO */

.lesmills-video{
    position:absolute;
    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

    z-index:0;

    opacity:.58;

    filter:
    contrast(1.08)
    saturate(1.1);
}

/* OVERLAY */

.lesmills-show::before{
    content:"";

    position:absolute;
    inset:0;

    z-index:1;

    background:
    radial-gradient(
    circle at 72% 45%,
    rgba(173,1,1,.30),
    transparent 35%),

    linear-gradient(
    90deg,
    rgba(0,0,0,.92) 0%,
    rgba(0,0,0,.72) 38%,
    rgba(0,0,0,.24) 68%,
    rgba(0,0,0,.82) 100%);
}

.lesmills-show::after{
    content:"";

    position:absolute;
    inset:auto 0 0;

    height:160px;

    z-index:2;

    background:
    linear-gradient(
    to top,
    #050405,
    transparent);
}

/* CONTENT */

.lesmills-inner{
    position:relative;
    z-index:3;

    width:min(1280px,100%);
    margin:0 auto;

    padding:120px 7%;
}

/* BADGE */

.partner-badge{
    display:inline-flex;
    align-items:center;
    gap:12px;

    padding:11px 16px;

    margin-bottom:28px;

    background:rgba(173,1,1,.18);

    border:1px solid rgba(255,255,255,.14);

    color:#fff;

    font-size:12px;
    font-weight:900;

    letter-spacing:2.8px;
    text-transform:uppercase;

    backdrop-filter:blur(8px);
}

.partner-badge::before{
    content:"";

    width:8px;
    height:8px;

    background:#ff1c1c;

    border-radius:50%;

    box-shadow:0 0 22px #ff1c1c;
}

/* TITRE */

.lesmills-title{
    margin:0;

    max-width:980px;

    font-size:
    clamp(62px,9vw,132px);

    line-height:.84;

    letter-spacing:-5px;

    font-weight:950;

    text-transform:uppercase;
}

.lesmills-title span{
    display:block;
}

.lesmills-title .red{
    color:#d80808;

    text-shadow:
    0 0 38px rgba(173,1,1,.42);
}

/* TEXTE */

.lesmills-sub{
    max-width:690px;

    margin:34px 0 42px;

    color:rgba(252,251,248,.84);

    font-size:
    clamp(19px,2vw,25px);

    line-height:1.45;
}

/* MARQUEE */

.concept-marquee{
    overflow:hidden;

    width:100%;

    margin-bottom:44px;

    position:relative;
}

.concept-track{
    display:flex;

    width:max-content;

    gap:16px;

    animation:
    scrollConcepts 22s linear infinite;
}

/* =========================================
LOGOS CONCEPTS
========================================= */

.concept-track img{

    height:54px;

    width:auto;

    object-fit:contain;

    padding:12px 20px;

    background:
    rgba(255,255,255,.06);

    border:
    1px solid rgba(255,255,255,.10);

    backdrop-filter:blur(8px);

    transition:.25s ease;

    opacity:.92;

    border-radius:2px;
}

/* HOVER */

.concept-track img:hover{

    transform:
    translateY(-2px);

    background:
    rgba(255,255,255,.12);

    box-shadow:
    0 0 28px rgba(173,1,1,.22);

    opacity:1;
}
/* ANIMATION */

@keyframes scrollConcepts{

    from{
        transform:translateX(0);
    }

    to{
        transform:translateX(-50%);
    }
}

/* CTA */

.lesmills-actions{
    display:flex;
    gap:16px;

    flex-wrap:wrap;
}

.lm-btn{
    display:inline-flex;

    align-items:center;
    justify-content:center;

    min-height:58px;

    padding:0 30px;

    text-decoration:none;

    text-transform:uppercase;

    letter-spacing:1.6px;

    font-size:13px;
    font-weight:950;

    transition:.25s ease;
}

.lm-btn.primary{
    background:#ad0101;

    color:#fff;

    box-shadow:
    0 18px 50px rgba(173,1,1,.28);
}

.lm-btn.primary:hover{
    transform:translateY(-2px);

    background:#d40808;
}

.lm-btn.secondary{
    border:
    1px solid rgba(255,255,255,.24);

    color:#fff;

    background:
    rgba(255,255,255,.04);
}

.lm-btn.secondary:hover{
    border-color:#ad0101;

    background:
    rgba(173,1,1,.12);
}

/* STATS */

.lm-stats{
    position:absolute;

    right:7%;
    bottom:42px;

    z-index:4;

    color:
    rgba(255,255,255,.55);

    font-size:12px;

    letter-spacing:2px;

    text-transform:uppercase;
}

/* MOBILE */

@media(max-width:900px){

    .lesmills-show{
        min-height:720px;
        align-items:flex-end;
    }

    .lesmills-inner{
        padding:90px 24px 120px;
    }

    .lesmills-title{
        letter-spacing:-3px;
    }

    .lesmills-sub{
        margin:28px 0 34px;
    }

    .concept-track{
        gap:10px;
    }

    .concept-track span{
        font-size:12px;
        padding:0 16px;
    }

    .lm-stats{
        left:24px;
        right:24px;
        bottom:34px;

        text-align:center;
    }
}

@media(max-width:520px){

    .lesmills-show{
        min-height:760px;
    }

    .lesmills-video{
        opacity:.48;
    }

    .lesmills-show::before{

        background:

        radial-gradient(
        circle at 60% 24%,
        rgba(173,1,1,.30),
        transparent 36%),

        linear-gradient(
        180deg,
        rgba(0,0,0,.62) 0%,
        rgba(0,0,0,.72) 40%,
        rgba(0,0,0,.95) 100%);
    }

    .lesmills-title{
        font-size:
        clamp(50px,17vw,74px);

        letter-spacing:-2px;
    }

    .partner-badge{
        font-size:10px;
        letter-spacing:1.7px;
    }

    .lesmills-actions{
        flex-direction:column;
    }

    .lm-btn{
        width:100%;
    }

    .lm-stats{
        display:none;
    }
}




.bridge-lesmills{
  background:#fcfbf8;
  color:#0f0c0f;
  padding:70px 7%;
  text-align:center;
}

.bridge-lesmills span{
  color:#ad0101;
  font-size:12px;
  font-weight:900;
  letter-spacing:3px;
  text-transform:uppercase;
}

.bridge-lesmills h2{
  margin:12px 0 0;
  font-size:clamp(38px,6vw,82px);
  line-height:.95;
  font-weight:950;
  letter-spacing:-3px;
  text-transform:uppercase;
}



/* ===== TRANSITION HERO → INSTINCT ===== */

.return-bridge{
  background:#fcfbf8;
  color:#0f0c0f;
  padding:82px 24px;
  text-align:center;
}

.return-bridge-inner{
  max-width:980px;
  margin:0 auto;
}

.return-kicker{
  display:block;
  margin-bottom:18px;
  color:#ad0101;
  font-size:12px;
  font-weight:900;
  letter-spacing:4px;
  text-transform:uppercase;
}

.return-bridge h2{
  margin:0;
  font-size:clamp(34px,5vw,74px);
  line-height:.98;
  letter-spacing:-2.8px;
  font-weight:950;
}

.return-bridge h2 strong{
  color:#ad0101;
  font-weight:950;
}

.return-bridge p{
  max-width:720px;
  margin:26px auto 0;
  color:rgba(15,12,15,.72);
  font-size:clamp(17px,2vw,22px);
  line-height:1.55;
}

@media(max-width:520px){
  .return-bridge{
    padding:62px 22px;
  }

  .return-kicker{
    font-size:11px;
    letter-spacing:2.5px;
  }

  .return-bridge h2{
    font-size:clamp(32px,11vw,52px);
    letter-spacing:-1.8px;
  }

  .return-bridge p{
    font-size:16px;
  }
}




/* =========================================
SECTION ACTIVITÉS / ESPACES
========================================= */

.training-universe{
  position:relative;
  background:#fcfbf8;
  color:#0f0c0f;
  padding:120px 5%;
  overflow:hidden;
}

.training-universe::before{
  content:"";
  position:absolute;
  width:520px;
  height:520px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(173,1,1,.08) 0%, transparent 70%);
  top:-220px;
  right:-120px;
}

.training-head{
  position:relative;
  z-index:2;
  max-width:1180px;
  margin:0 auto 70px;
}

.training-kicker{
  display:block;
  margin-bottom:18px;
  color:#ad0101;
  font-size:12px;
  font-weight:900;
  letter-spacing:4px;
  text-transform:uppercase;
}

.training-head h2{
  margin:0;
  font-size:clamp(52px,7vw,108px);
  line-height:.9;
  letter-spacing:-4px;
  font-weight:950;
  text-transform:uppercase;
}

.training-head p{
  max-width:760px;
  margin:24px 0 0;
  color:rgba(15,12,15,.72);
  font-size:clamp(18px,2vw,24px);
  line-height:1.5;
}

.training-grid{
  position:relative;
  z-index:2;
  max-width:1400px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.training-card{
  position:relative;
  min-height:620px;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  background:#111;
  isolation:isolate;
}

.training-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:1s ease;
}

.training-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(
    to top,
    rgba(0,0,0,.88) 0%,
    rgba(0,0,0,.18) 55%,
    rgba(0,0,0,.04) 100%
  );
}

.training-card:hover img{
  transform:scale(1.05);
}

.training-content{
  position:relative;
  z-index:2;
  padding:38px;
}

.training-content span{
  display:inline-block;
  margin-bottom:18px;
  color:#ff2b2b;
  font-size:11px;
  font-weight:900;
  letter-spacing:3px;
  text-transform:uppercase;
}

.training-content h3{
  margin:0 0 16px;

  color:#fff;

  font-size:
  clamp(26px,2.8vw,40px);

  line-height:1;

  letter-spacing:-1px;

  font-weight:900;

  text-transform:uppercase;
}

.training-content p{
  margin:0;
  color:rgba(255,255,255,.82);
  font-size:18px;
  line-height:1.5;
}

@media(max-width:1000px){

  .training-grid{
    grid-template-columns:1fr;
  }

  .training-card{
    min-height:520px;
  }

  .training-universe{
    padding:90px 24px;
  }

  .training-head{
    margin-bottom:42px;
  }
}

@media(max-width:520px){

  .training-universe{
    padding:72px 22px;
  }

  .training-head h2{
    font-size:clamp(44px,14vw,68px);
    letter-spacing:-2px;
  }

  .training-head p{
    font-size:17px;
  }

  .training-content{
    padding:28px;
  }

  .training-content h3{
    font-size:clamp(30px,10vw,48px);
  }

  .training-content p{
    font-size:16px;
  }
}




/* =========================================
MINI SECTION CLUBS
========================================= */

.clubs-mini{

    background:#fcfbf8;

    color:#0f0c0f;

    padding:
    110px
    5%
    120px;
}

.clubs-mini-head{

    max-width:900px;

    margin:0 auto 56px;

    text-align:center;
}

.clubs-mini-head span{

    display:block;

    margin-bottom:18px;

    color:#ad0101;

    font-size:12px;
    font-weight:900;

    letter-spacing:4px;

    text-transform:uppercase;
}

.clubs-mini-head h2{

    margin:0;

    font-size:
    clamp(46px,6vw,88px);

    line-height:.92;

    letter-spacing:-3px;

    font-weight:950;

    text-transform:uppercase;
}

.clubs-mini-head p{

    max-width:680px;

    margin:24px auto 0;

    color:
    rgba(15,12,15,.72);

    font-size:
    clamp(17px,2vw,22px);

    line-height:1.5;
}

/* GRID */

.clubs-mini-grid{

    max-width:1380px;

    margin:0 auto;

    display:grid;

    grid-template-columns:
    repeat(2,1fr);

    gap:24px;
}

/* CARD */

.club-mini-card{

    position:relative;

    min-height:520px;

    overflow:hidden;

    background:#111;
}

.club-mini-card img{

    position:absolute;
    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

    transition:1s ease;
}

.club-mini-card:hover img{

    transform:scale(1.05);
}

.club-mini-card::before{

    content:"";

    position:absolute;
    inset:0;

    z-index:1;

    background:
    linear-gradient(
    to top,
    rgba(0,0,0,.88) 0%,
    rgba(0,0,0,.18) 60%,
    rgba(0,0,0,.05) 100%
    );
}

/* OVERLAY */

.club-mini-overlay{

    position:absolute;

    left:0;
    right:0;
    bottom:0;

    z-index:2;

    padding:34px;
}

.club-mini-overlay h3{

    margin:0 0 10px;

    color:#fff;

    font-size:
    clamp(34px,4vw,54px);

    line-height:1;

    letter-spacing:-2px;

    font-weight:950;

    text-transform:uppercase;
}

.club-mini-overlay span{

    color:
    rgba(255,255,255,.78);

    font-size:15px;

    letter-spacing:.5px;
}

/* CTA */

.clubs-mini-actions{

    display:flex;
    justify-content:center;

    margin-top:46px;
}

.clubs-btn{

    display:inline-flex;

    align-items:center;
    justify-content:center;

    min-height:58px;

    padding:0 34px;

    background:#ad0101;

    color:#fff;

    text-decoration:none;

    text-transform:uppercase;

    letter-spacing:1.6px;

    font-size:13px;
    font-weight:900;

    transition:.25s ease;

    box-shadow:
    0 18px 50px rgba(173,1,1,.18);
}

.clubs-btn:hover{

    transform:translateY(-2px);

    background:#d40808;
}

/* =========================================
FINAL CTA
========================================= */

.final-cta{

    background:#050405;

    color:#fff;

    padding:
    120px
    24px;
}

.final-cta-inner{

    max-width:980px;

    margin:0 auto;

    text-align:center;
}

.final-cta h2{

    margin:0;

    font-size:
    clamp(40px,6vw,82px);

    line-height:.95;

    letter-spacing:-3px;

    font-weight:950;
}

.final-cta-actions{

    display:flex;

    justify-content:center;

    gap:18px;

    flex-wrap:wrap;

    margin-top:42px;
}

/* BUTTONS */

.final-btn{

    display:inline-flex;

    align-items:center;
    justify-content:center;

    min-height:58px;

    padding:0 34px;

    text-decoration:none;

    text-transform:uppercase;

    letter-spacing:1.6px;

    font-size:13px;
    font-weight:900;

    transition:.25s ease;
}

.final-btn.primary{

    background:#ad0101;

    color:#fff;

    box-shadow:
    0 18px 50px rgba(173,1,1,.24);
}

.final-btn.primary:hover{

    transform:translateY(-2px);

    background:#d40808;
}

.final-btn.secondary{

    border:
    1px solid rgba(255,255,255,.24);

    color:#fff;

    background:
    rgba(255,255,255,.04);
}

.final-btn.secondary:hover{

    border-color:#ad0101;

    background:
    rgba(173,1,1,.12);
}

/* MOBILE */

@media(max-width:950px){

    .clubs-mini-grid{

        grid-template-columns:1fr;
    }

    .club-mini-card{

        min-height:440px;
    }

    .clubs-mini{

        padding:
        90px
        24px;
    }

    .final-cta{

        padding:
        90px
        24px;
    }
}

@media(max-width:520px){

    .clubs-mini{

        padding:
        72px
        22px;
    }

    .clubs-mini-head h2{

        font-size:
        clamp(42px,12vw,64px);

        letter-spacing:-2px;
    }

    .clubs-mini-head p{

        font-size:16px;
    }

    .club-mini-overlay{

        padding:26px;
    }

    .club-mini-overlay h3{

        font-size:
        clamp(30px,10vw,48px);
    }

    .final-cta{

        padding:
        72px
        22px;
    }

    .final-cta h2{

        font-size:
        clamp(38px,12vw,62px);

        letter-spacing:-2px;
    }

    .final-cta-actions{

        flex-direction:column;
    }

    .final-btn{

        width:100%;
    }
}






/* =========================================
SECTION FORMULES IMPACT
========================================= */

.pricing-impact{

  position:relative;

  overflow:hidden;

  background:#ad0101;

  color:#fff;

  padding:130px 24px;
}

.pricing-impact::before{

  content:"";

  position:absolute;

  width:780px;
  height:780px;

  border-radius:50%;

  background:
  radial-gradient(
  circle,
  rgba(255,255,255,.08) 0%,
  transparent 70%
  );

  top:-380px;
  right:-180px;
}

.pricing-impact::after{

  content:"";

  position:absolute;

  inset:0;

  background:
  linear-gradient(
  135deg,
  rgba(255,255,255,.03),
  transparent 45%
  );
}

.pricing-inner{

  position:relative;

  z-index:2;

  max-width:1100px;

  margin:0 auto;

  text-align:center;
}

/* =========================================
TOP
========================================= */

.pricing-kicker{

  display:block;

  margin-bottom:28px;

  color:rgba(255,255,255,.74);

  font-size:12px;
  font-weight:900;

  letter-spacing:4px;

  text-transform:uppercase;
}

/* =========================================
PRIX
========================================= */

.pricing-top{

  display:flex;

  flex-direction:column;

  align-items:center;
}

.pricing-start{

  font-size:
  clamp(28px,3vw,44px);

  font-weight:800;

  letter-spacing:-1px;

  text-transform:uppercase;

  opacity:.92;
}

.pricing-value{

  margin-top:8px;

  font-size:
  clamp(88px,14vw,200px);

  line-height:.82;

  letter-spacing:-8px;

  font-weight:950;
}

.pricing-period{

  margin-top:16px;

  color:rgba(255,255,255,.82);

  font-size:
  clamp(18px,2vw,26px);

  font-weight:700;

  letter-spacing:2px;

  text-transform:uppercase;
}

/* =========================================
FORMULES
========================================= */

.pricing-formules{

  margin-top:62px;

  display:flex;

  justify-content:center;

  gap:16px;

  flex-wrap:wrap;
}

.pricing-pill{

  display:inline-flex;

  align-items:center;
  justify-content:center;

  min-height:58px;

  padding:0 28px;

  background:
  rgba(0,0,0,.14);

  border:
  1px solid rgba(255,255,255,.12);

  backdrop-filter:blur(8px);

  font-size:13px;
  font-weight:900;

  letter-spacing:2px;

  text-transform:uppercase;
}

/* =========================================
TEXTE
========================================= */

.pricing-text{

  max-width:760px;

  margin:36px auto 0;

  color:
  rgba(255,255,255,.86);

  font-size:
  clamp(18px,2vw,24px);

  line-height:1.5;
}

/* =========================================
NOTE
========================================= */

.pricing-note{

  margin-top:26px;

  color:
  rgba(255,255,255,.62);

  font-size:13px;

  line-height:1.45;
}

/* =========================================
BOUTON
========================================= */

.pricing-actions{

  display:flex;

  justify-content:center;

  margin-top:48px;
}

.pricing-btn{

  display:inline-flex;

  align-items:center;
  justify-content:center;

  min-height:58px;

  padding:0 34px;

  background:#0f0c0f;

  color:#fff;

  text-decoration:none;

  text-transform:uppercase;

  letter-spacing:1.6px;

  font-size:13px;
  font-weight:900;

  transition:.25s ease;
}

.pricing-btn:hover{

  transform:
  translateY(-2px);

  background:#000;
}

/* =========================================
MOBILE
========================================= */

@media(max-width:700px){

  .pricing-impact{

    padding:90px 22px;
  }

  .pricing-value{

    letter-spacing:-4px;
  }

  .pricing-formules{

    gap:10px;
  }

  .pricing-pill{

    width:100%;
  }

  .pricing-text{

    font-size:17px;
  }
}



/* =========================================
APP BAND
========================================= */

.footer-app-band-v14{

  position:relative;

  z-index:2;

  max-width:1280px;

  margin:34px auto 0;

  overflow:hidden;

  background:#0f0c0f;

  color:#fff;

  border-radius:28px;

  padding:34px;
}

.footer-app-band-v14::before{

  content:"";

  position:absolute;

  width:320px;
  height:320px;

  border-radius:50%;

  background:
  radial-gradient(
  circle,
  rgba(173,1,1,.22) 0%,
  transparent 70%
  );

  top:-140px;
  right:-80px;
}

.footer-app-band-inner-v14{

  position:relative;

  z-index:2;

  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:24px;

  flex-wrap:wrap;
}

/* text */

.footer-app-band-text-v14 span{

  display:block;

  margin-bottom:10px;

  color:#ff3c3c;

  font-size:11px;
  font-weight:900;

  letter-spacing:3px;

  text-transform:uppercase;
}

.footer-app-band-text-v14 h3{

  margin:0;

  font-size:
  clamp(30px,4vw,52px);

  line-height:.95;

  letter-spacing:-2px;

  font-weight:950;

  text-transform:uppercase;
}

/* buttons */

.footer-app-mini-buttons-v14{

  display:flex;

  gap:12px;

  flex-wrap:wrap;
}

.store-mini-btn-v14{

  min-height:52px;

  padding:0 20px;

  display:inline-flex;

  align-items:center;

  gap:10px;

  background:
  rgba(255,255,255,.08);

  border:
  1px solid rgba(255,255,255,.12);

  color:#fff;

  text-decoration:none;

  font-size:12px;
  font-weight:800;

  letter-spacing:1px;

  text-transform:uppercase;

  transition:.25s ease;
}

.store-mini-btn-v14 svg{

  width:17px;
  height:17px;

  flex-shrink:0;
}

.store-mini-btn-v14:hover{

  transform:
  translateY(-2px);

  background:#ad0101;

  border-color:#ad0101;
}

/* mobile */

@media(max-width:700px){

  .footer-app-band-v14{

    padding:28px 24px;

    border-radius:22px;
  }

  .footer-app-band-inner-v14{

    flex-direction:column;

    align-items:flex-start;
  }

  .footer-app-mini-buttons-v14{

    width:100%;
  }

  .store-mini-btn-v14{

    flex:1;
    justify-content:center;
  }
}






/* PAGE COURS COLLECTIFS - ISOLÉE */

.page-cours-collectifs .courses-hero{
  position:relative;
  min-height:92vh;
  display:flex;
  align-items:center;
  padding:135px 7% 95px;
  overflow:hidden;
  background:#050405;
  color:#fff;
}

.page-cours-collectifs .courses-hero-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.45;
}

.page-cours-collectifs .courses-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.50),rgba(0,0,0,.84)),
    radial-gradient(circle at 72% 38%,rgba(173,1,1,.36),transparent 34%);
  z-index:1;
}

.page-cours-collectifs .courses-hero-inner{
  position:relative;
  z-index:2;
  max-width:1180px;
  margin:0 auto;
  width:100%;
}

.page-cours-collectifs .courses-kicker{
  display:block;
  margin-bottom:18px;
  color:#ff2b2b;
  font-size:12px;
  font-weight:900;
  letter-spacing:4px;
  text-transform:uppercase;
}

.page-cours-collectifs .courses-hero h1{
  margin:0;
  font-size:clamp(58px,8.5vw,130px);
  line-height:.86;
  letter-spacing:-5px;
  font-weight:950;
  text-transform:uppercase;
}

.page-cours-collectifs .courses-hero h1 span,
.page-cours-collectifs .courses-section-head h2 span{
  color:#d80808;
  display:block;
}

.page-cours-collectifs .courses-hero p,
.page-cours-collectifs .courses-section-head p{
  max-width:780px;
  color:rgba(255,255,255,.82);
  font-size:clamp(18px,2vw,24px);
  line-height:1.5;
}

.page-cours-collectifs .courses-hero p{
  margin:34px 0 42px;
}

.page-cours-collectifs .courses-hero-points{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 38px;
}

.page-cours-collectifs .courses-hero-points span{
  padding:12px 15px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  font-size:11px;
  font-weight:900;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

.page-cours-collectifs .courses-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

.page-cours-collectifs .courses-actions.center{
  justify-content:center;
}

.page-cours-collectifs .courses-btn{
  display:inline-flex;
  min-height:58px;
  align-items:center;
  justify-content:center;
  padding:0 30px;
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-size:13px;
  font-weight:950;
  text-decoration:none;
  color:#fff;
  transition:.25s ease;
  border-radius:4px;
}

.page-cours-collectifs .courses-btn.red{
  background:#ad0101;
  box-shadow:0 18px 50px rgba(173,1,1,.28);
}

.page-cours-collectifs .courses-btn.ghost{
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.04);
}

.page-cours-collectifs .courses-btn.dark{
  background:#0f0c0f;
}

.page-cours-collectifs .courses-btn:hover{
  transform:translateY(-2px);
}

/* LES MILLS */

.page-cours-collectifs .courses-lesmills{
  background:#050405;
  color:#fff;
  padding:120px 5%;
}

.page-cours-collectifs .courses-section-head{
  max-width:1180px;
  margin:0 auto 64px;
}

.page-cours-collectifs .courses-section-head h2{
  margin:0;
  font-size:clamp(52px,7vw,112px);
  line-height:.88;
  letter-spacing:-4px;
  font-weight:950;
  text-transform:uppercase;
}

.page-cours-collectifs .lm-grid{
  max-width:1400px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

.page-cours-collectifs .lm-card{
  position:relative;
  min-height:420px;
  overflow:hidden;
  background:#111;
  display:flex;
  align-items:flex-end;
  padding:30px;
  isolation:isolate;
}

.page-cours-collectifs .lm-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.82;
  transition:1s ease;
}

.page-cours-collectifs .lm-card:hover img{
  transform:scale(1.06);
}

.page-cours-collectifs .lm-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.92),rgba(0,0,0,.18) 58%,rgba(0,0,0,.05));
  z-index:1;
}

.page-cours-collectifs .lm-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,var(--c),transparent 48%);
  opacity:.72;
  mix-blend-mode:screen;
  z-index:2;
}

.page-cours-collectifs .lm-content{
  position:relative;
  z-index:3;
}

.page-cours-collectifs .lm-content span{
  display:inline-block;
  margin-bottom:14px;
  color:#fff;
  opacity:.78;
  font-size:11px;
  font-weight:900;
  letter-spacing:3px;
  text-transform:uppercase;
}

.page-cours-collectifs .lm-content h3{
  margin:0 0 14px;
  font-size:clamp(30px,3.4vw,52px);
  line-height:.9;
  letter-spacing:-2px;
  font-weight:950;
  text-transform:uppercase;
}

.page-cours-collectifs .lm-content p{
  margin:0;
  max-width:325px;
  color:rgba(255,255,255,.84);
  font-size:16px;
  line-height:1.45;
}

/* COURS TRADITIONNELS */

.page-cours-collectifs .courses-trad{
  background:#fcfbf8;
  color:#0f0c0f;
  padding:120px 5%;
}

.page-cours-collectifs .courses-trad .courses-section-head p{
  color:rgba(15,12,15,.72);
}

.page-cours-collectifs .trad-grid{
  max-width:1320px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}

.page-cours-collectifs .trad-card{
  min-height:220px;
  padding:28px;
  background:#fff;
  border:1px solid rgba(15,12,15,.08);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:.25s ease;
}

.page-cours-collectifs .trad-card:hover{
  transform:translateY(-3px);
  box-shadow:0 22px 60px rgba(0,0,0,.08);
}

.page-cours-collectifs .trad-card span{
  color:#ad0101;
  font-size:11px;
  font-weight:900;
  letter-spacing:2.4px;
  text-transform:uppercase;
}

.page-cours-collectifs .trad-card h3{
  margin:28px 0 0;
  font-size:clamp(24px,2.5vw,38px);
  line-height:.95;
  letter-spacing:-1.5px;
  font-weight:950;
  text-transform:uppercase;
}

.page-cours-collectifs .trad-card p{
  margin:16px 0 0;
  color:rgba(15,12,15,.64);
  font-size:15px;
  line-height:1.45;
}

/* OBJECTIFS */

.page-cours-collectifs .course-chooser{
  background:#0f0c0f;
  color:#fff;
  padding:110px 5%;
}

.page-cours-collectifs .course-chooser-inner{
  max-width:1220px;
  margin:0 auto;
}

.page-cours-collectifs .course-chooser h2{
  margin:0 0 44px;
  font-size:clamp(42px,6vw,92px);
  line-height:.9;
  letter-spacing:-3px;
  font-weight:950;
  text-transform:uppercase;
}

.page-cours-collectifs .objective-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}

.page-cours-collectifs .objective{
  padding:24px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
}

.page-cours-collectifs .objective strong{
  display:block;
  color:#ff2b2b;
  margin-bottom:12px;
  font-size:13px;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

.page-cours-collectifs .objective span{
  color:rgba(255,255,255,.82);
  font-size:15px;
  line-height:1.45;
}

/* CTA */

.page-cours-collectifs .courses-cta{
  background:#ad0101;
  color:#fff;
  padding:120px 24px;
  text-align:center;
  position:relative;
  overflow:hidden;
}

.page-cours-collectifs .courses-cta::before{
  content:"";
  position:absolute;
  width:720px;
  height:720px;
  top:-360px;
  right:-180px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.08),transparent 70%);
}

.page-cours-collectifs .courses-cta-inner{
  position:relative;
  z-index:2;
  max-width:960px;
  margin:0 auto;
}

.page-cours-collectifs .courses-cta h2{
  margin:0;
  font-size:clamp(56px,8vw,126px);
  line-height:.86;
  letter-spacing:-5px;
  font-weight:950;
  text-transform:uppercase;
}

.page-cours-collectifs .courses-cta p{
  max-width:700px;
  margin:28px auto 42px;
  color:rgba(255,255,255,.84);
  font-size:clamp(18px,2vw,24px);
  line-height:1.5;
}

/* RESPONSIVE */

@media(max-width:1000px){
  .page-cours-collectifs .lm-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .page-cours-collectifs .trad-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .page-cours-collectifs .objective-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:620px){
  .page-cours-collectifs .courses-hero{
    padding:120px 22px 80px;
    min-height:88vh;
  }

  .page-cours-collectifs .courses-hero h1,
  .page-cours-collectifs .courses-section-head h2,
  .page-cours-collectifs .courses-cta h2{
    letter-spacing:-3px;
  }

  .page-cours-collectifs .courses-lesmills,
  .page-cours-collectifs .courses-trad,
  .page-cours-collectifs .course-chooser{
    padding:82px 22px;
  }

  .page-cours-collectifs .lm-grid,
  .page-cours-collectifs .trad-grid,
  .page-cours-collectifs .objective-grid{
    grid-template-columns:1fr;
  }

  .page-cours-collectifs .lm-card{
    min-height:360px;
  }

  .page-cours-collectifs .trad-card{
    min-height:190px;
  }

  .page-cours-collectifs .courses-btn{
    width:100%;
  }
}


.page-cours-collectifs .hero-middle{
  display:block;
  font-size:0.78em;
  color:#ffffff;
  white-space:nowrap;
}

.page-cours-collectifs .hero-red{
  display:block;
   font-size:0.78em;
  color:#d80808;
  text-shadow:none;
  -webkit-text-stroke:0;
}





/* ==========================================
MENTIONS LEGALES
========================================== */

.legal-page{
    background:#fcfbf8;
    padding:160px 20px 100px;
}

.legal-container{
    max-width:900px;
    margin:0 auto;
}

.legal-kicker{
    display:block;
    margin-bottom:15px;
    color:#ad0101;
    font-size:12px;
    font-weight:900;
    letter-spacing:3px;
    text-transform:uppercase;
}

.legal-page h1{
    color:#0f0c0f;
    font-size:clamp(42px,6vw,72px);
    line-height:1;
    letter-spacing:-2px;
    margin-bottom:60px;
}

.legal-block{
    margin-bottom:50px;
    padding-bottom:35px;
    border-bottom:1px solid rgba(15,12,15,.08);
}

.legal-block:last-child{
    border-bottom:none;
}

.legal-block h2{
    color:#ad0101;
    font-size:24px;
    margin-bottom:18px;
}

.legal-block p{
    color:#444;
    font-size:16px;
    line-height:1.8;
    margin:0;
}

@media(max-width:768px){

    .legal-page{
        padding:130px 24px 70px;
    }

    .legal-block h2{
        font-size:20px;
    }

    .legal-block p{
        font-size:15px;
    }

}





/* =========================================
LES MILLS CEREMONY - BLOC ROUGE
========================================= */

.page-cours-collectifs .ceremony-red{
  position:relative;
  overflow:hidden;
  background:#ad0101;
  color:#fff;
  isolation:isolate;
}

.page-cours-collectifs .ceremony-red::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:
    radial-gradient(circle at 30% 18%, rgba(255,255,255,.14), transparent 28%),
    linear-gradient(90deg, rgba(173,1,1,.10) 0%, rgba(15,12,15,.42) 100%);
  pointer-events:none;
}

.page-cours-collectifs .ceremony-red-inner{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  min-height:720px;
}

.page-cours-collectifs .ceremony-red-copy{
  position:relative;
  padding:105px 6vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:visible;
}

.page-cours-collectifs .ceremony-watermark{
  position:absolute;
  left:20px;
  bottom:20px;
  z-index:0;

  color:rgba(255,255,255,.08);

  font-size:clamp(70px,11vw,160px);
  line-height:.8;
  font-weight:950;
  letter-spacing:-.08em;
  text-transform:uppercase;

  pointer-events:none;
  user-select:none;
}

.page-cours-collectifs .ceremony-red-copy > *:not(.ceremony-watermark){
  position:relative;
  z-index:2;
}

.page-cours-collectifs .ceremony-kicker{
  display:inline-flex;
  width:max-content;
  align-items:center;
  gap:10px;
  margin-bottom:24px;
  padding:10px 14px;

  background:rgba(15,12,15,.18);
  border:1px solid rgba(255,255,255,.18);

  color:#fff;

  font-size:11px;
  font-weight:950;
  letter-spacing:2.6px;
  text-transform:uppercase;
}

.page-cours-collectifs .ceremony-kicker::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;

  background:#fff;
  box-shadow:0 0 18px rgba(255,255,255,.8);
}

.page-cours-collectifs .ceremony-red h2{
  margin:0;

  font-size:clamp(58px,8vw,128px);
  line-height:.82;
  letter-spacing:-6px;

  font-weight:950;
  text-transform:uppercase;
}

.page-cours-collectifs .ceremony-red h2 span{
  display:block;
}

.page-cours-collectifs .ceremony-red h2 .dark{
  color:#0f0c0f;
  text-shadow:none;
}

.page-cours-collectifs .ceremony-baseline{
  margin:28px 0 0;
  max-width:680px;

  color:rgba(255,255,255,.90);

  font-size:clamp(20px,2vw,28px);
  line-height:1.35;
  font-weight:800;
}

.page-cours-collectifs .ceremony-baseline strong{
  color:#0f0c0f;
}

.page-cours-collectifs .ceremony-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;

  margin:38px 0;
}

.page-cours-collectifs .ceremony-tags span{
  padding:13px 15px;

  background:#0f0c0f;
  color:#fff;

  font-size:11px;
  font-weight:950;
  letter-spacing:1.4px;
  text-transform:uppercase;
}

.page-cours-collectifs .ceremony-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-height:56px;
  width:max-content;

  padding:0 30px;

  background:#0f0c0f;
  color:#fff;

  text-decoration:none;

  font-size:12px;
  font-weight:950;
  letter-spacing:1.5px;
  text-transform:uppercase;

  transition:.25s ease;
}

.page-cours-collectifs .ceremony-btn:hover{
  transform:translateY(-2px);
  background:#050405;
}

.page-cours-collectifs .ceremony-photo{
  position:relative;
  min-height:720px;
  overflow:hidden;
}

.page-cours-collectifs .ceremony-photo img{
  position:absolute;
  inset:0;

  width:100%;
  height:100%;

  object-fit:cover;
  object-position:center;

  filter:saturate(1.05) contrast(1.08) brightness(.86);

  transform:scale(1.02);
}

.page-cours-collectifs .ceremony-photo::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;

  background:
    linear-gradient(
      90deg,
      rgba(173,1,1,.95) 0%,
      rgba(173,1,1,.30) 28%,
      rgba(0,0,0,.16) 100%
    ),
    radial-gradient(
      circle at 72% 45%,
      transparent 0%,
      rgba(0,0,0,.24) 100%
    );
}

.page-cours-collectifs .ceremony-photo-label{
  position:absolute;
  z-index:3;

  right:34px;
  bottom:32px;

  max-width:360px;

  padding:22px;

  background:rgba(15,12,15,.78);
  border-left:6px solid #ad0101;

  backdrop-filter:blur(10px);
}

.page-cours-collectifs .ceremony-photo-label strong{
  display:block;

  margin-bottom:8px;

  color:#fff;

  font-size:22px;
  line-height:1;
  letter-spacing:-.5px;
  text-transform:uppercase;
}

.page-cours-collectifs .ceremony-photo-label span{
  display:block;

  color:rgba(255,255,255,.78);

  font-size:14px;
  line-height:1.45;
}

/* RESPONSIVE */

@media(max-width:980px){

  .page-cours-collectifs .ceremony-red-inner{
    grid-template-columns:1fr;
  }

  .page-cours-collectifs .ceremony-red-copy{
    padding:82px 24px 52px;
  }

  .page-cours-collectifs .ceremony-photo{
    min-height:520px;
  }

  .page-cours-collectifs .ceremony-photo::before{
    background:
      linear-gradient(
        180deg,
        rgba(173,1,1,.30) 0%,
        rgba(0,0,0,.08) 45%,
        rgba(0,0,0,.38) 100%
      );
  }
}

@media(max-width:620px){

  .page-cours-collectifs .ceremony-red h2{
    font-size:clamp(54px,16vw,82px);
    letter-spacing:-3px;
  }

  .page-cours-collectifs .ceremony-baseline{
    font-size:18px;
  }

  .page-cours-collectifs .ceremony-tags span,
  .page-cours-collectifs .ceremony-btn{
    width:100%;
    justify-content:center;
  }

  .page-cours-collectifs .ceremony-photo{
    min-height:430px;
  }

  .page-cours-collectifs .ceremony-photo-label{
    left:22px;
    right:22px;
    bottom:22px;
  }
}





/* =========================================
PAGE EXPERIENCE PULSIA V1
========================================= */

.page-experience-pulsia{
  background:#050405;
  color:#fff;
}

.page-experience-pulsia .pe-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:0 30px;
  text-transform:uppercase;
  letter-spacing:1.4px;
  font-size:13px;
  font-weight:950;
  text-decoration:none;
  color:#fff;
  transition:.25s ease;
  border-radius:4px;
}

.page-experience-pulsia .pe-btn.red{
  background:#ad0101;
  box-shadow:0 18px 50px rgba(173,1,1,.26);
}

.page-experience-pulsia .pe-btn.dark{
  background:#0f0c0f;
}

.page-experience-pulsia .pe-btn.ghost{
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.04);
}

.page-experience-pulsia .pe-btn:hover{
  transform:translateY(-2px);
}

.page-experience-pulsia .pe-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

.page-experience-pulsia .pe-actions.center{
  justify-content:center;
}

.page-experience-pulsia .pe-kicker{
  display:block;
  margin-bottom:18px;
  color:#ff2b2b;
  font-size:12px;
  font-weight:900;
  letter-spacing:4px;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-kicker.white{
  color:#fff;
}

/* HERO */

.page-experience-pulsia .pe-hero{
  position:relative;
  min-height:92vh;
  display:flex;
  align-items:center;
  overflow:hidden;
  padding:135px 7% 95px;
  background:#050405;
}

.page-experience-pulsia .pe-hero img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.42;
  filter:saturate(1.08) contrast(1.08) brightness(.76);
}

.page-experience-pulsia .pe-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.58),rgba(0,0,0,.86)),
    radial-gradient(circle at 74% 38%,rgba(173,1,1,.38),transparent 34%);
}

.page-experience-pulsia .pe-hero-inner{
  position:relative;
  z-index:2;
  max-width:1180px;
  margin:0 auto;
  width:100%;
}

.page-experience-pulsia .pe-hero h1{
  margin:0;
  max-width:960px;
  font-size:clamp(58px,8.6vw,132px);
  line-height:.84;
  letter-spacing:-5px;
  font-weight:950;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-hero h1 span{
  display:block;
  color:#d80808;
  -webkit-text-stroke:0;
}

.page-experience-pulsia .pe-hero p{
  max-width:760px;
  margin:34px 0 38px;
  color:rgba(255,255,255,.84);
  font-size:clamp(18px,2vw,24px);
  line-height:1.5;
}

.page-experience-pulsia .pe-tags{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:0 0 38px;
}

.page-experience-pulsia .pe-tags span{
  padding:12px 15px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  font-size:11px;
  font-weight:900;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

/* MANIFESTE */

.page-experience-pulsia .pe-manifest{
  background:#fcfbf8;
  color:#0f0c0f;
  padding:110px 5%;
  text-align:center;
}

.page-experience-pulsia .pe-manifest-inner{
  max-width:1040px;
  margin:0 auto;
}

.page-experience-pulsia .pe-manifest h2{
  margin:0;
  font-size:clamp(42px,6.5vw,96px);
  line-height:.9;
  letter-spacing:-4px;
  font-weight:950;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-manifest h2 strong{
  color:#ad0101;
}

.page-experience-pulsia .pe-manifest p{
  max-width:760px;
  margin:28px auto 0;
  color:rgba(15,12,15,.72);
  font-size:clamp(18px,2vw,23px);
  line-height:1.5;
}

/* PILIERS */

.page-experience-pulsia .pe-pillars{
  background:#050405;
  color:#fff;
  padding:120px 5%;
}

.page-experience-pulsia .pe-head{
  max-width:1180px;
  margin:0 auto 60px;
}

.page-experience-pulsia .pe-head h2{
  margin:0;
  font-size:clamp(52px,7vw,108px);
  line-height:.88;
  letter-spacing:-4px;
  font-weight:950;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-head p{
  max-width:760px;
  margin:24px 0 0;
  color:rgba(255,255,255,.76);
  font-size:clamp(18px,2vw,23px);
  line-height:1.5;
}

.page-experience-pulsia .pe-pillar-grid{
  max-width:1320px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

.page-experience-pulsia .pe-pillar{
  position:relative;
  min-height:500px;
  overflow:hidden;
  background:#111;
  display:flex;
  align-items:flex-end;
  padding:32px;
  isolation:isolate;
}

.page-experience-pulsia .pe-pillar img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.78;
  transition:1s ease;
}

.page-experience-pulsia .pe-pillar:hover img{
  transform:scale(1.06);
}

.page-experience-pulsia .pe-pillar::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(to top,rgba(0,0,0,.9),rgba(0,0,0,.18) 55%,rgba(0,0,0,.05));
}

.page-experience-pulsia .pe-pillar::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(135deg,var(--c),transparent 45%);
  opacity:.52;
  mix-blend-mode:screen;
}

.page-experience-pulsia .pe-pillar-content{
  position:relative;
  z-index:3;
}

.page-experience-pulsia .pe-pillar-content span{
  display:block;
  margin-bottom:14px;
  color:#ff2b2b;
  font-size:11px;
  font-weight:950;
  letter-spacing:3px;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-pillar-content h3{
  margin:0 0 16px;
  font-size:clamp(34px,4vw,58px);
  line-height:.9;
  letter-spacing:-2px;
  font-weight:950;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-pillar-content p{
  margin:0;
  color:rgba(255,255,255,.84);
  font-size:16px;
  line-height:1.45;
}

/* RED */

.page-experience-pulsia .pe-red{
  background:#ad0101;
  color:#fff;
  padding:120px 5%;
  position:relative;
  overflow:hidden;
}

.page-experience-pulsia .pe-red::before{
  content:"COMMUNITY";
  position:absolute;
  right:-2vw;
  bottom:-2vw;
  color:rgba(255,255,255,.09);
  font-size:clamp(90px,17vw,260px);
  font-weight:950;
  letter-spacing:-.08em;
  line-height:.75;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-red-inner{
  position:relative;
  z-index:2;
  max-width:1220px;
  margin:0 auto;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:44px;
  align-items:center;
}

.page-experience-pulsia .pe-red h2{
  margin:0;
  font-size:clamp(52px,7vw,110px);
  line-height:.84;
  letter-spacing:-5px;
  font-weight:950;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-red p{
  margin:0 0 28px;
  color:rgba(255,255,255,.88);
  font-size:clamp(18px,2vw,24px);
  line-height:1.5;
}

.page-experience-pulsia .pe-red-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.page-experience-pulsia .pe-red-list span{
  padding:16px 18px;
  background:#0f0c0f;
  color:#fff;
  font-size:12px;
  font-weight:950;
  letter-spacing:1.4px;
  text-transform:uppercase;
}

/* MODULES */

.page-experience-pulsia .pe-modules{
  background:#fcfbf8;
  color:#0f0c0f;
  padding:120px 5%;
}

.page-experience-pulsia .pe-modules .pe-head p{
  color:rgba(15,12,15,.72);
}

.page-experience-pulsia .pe-modules-grid{
  max-width:1320px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}

.page-experience-pulsia .pe-module{
  min-height:250px;
  padding:28px;
  background:#fff;
  border:1px solid rgba(15,12,15,.08);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:.25s ease;
}

.page-experience-pulsia .pe-module:hover{
  transform:translateY(-3px);
  box-shadow:0 22px 60px rgba(0,0,0,.08);
}

.page-experience-pulsia .pe-module span{
  color:#ad0101;
  font-size:11px;
  font-weight:950;
  letter-spacing:2.4px;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-module h3{
  margin:28px 0 0;
  font-size:clamp(24px,2.5vw,38px);
  line-height:.95;
  letter-spacing:-1.5px;
  font-weight:950;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-module p{
  margin:16px 0 0;
  color:rgba(15,12,15,.64);
  font-size:15px;
  line-height:1.45;
}

/* ROUTINE */

.page-experience-pulsia .pe-routine{
  background:#0f0c0f;
  color:#fff;
  padding:110px 5%;
}

.page-experience-pulsia .pe-routine-inner{
  max-width:1220px;
  margin:0 auto;
}

.page-experience-pulsia .pe-routine h2{
  margin:0 0 44px;
  font-size:clamp(42px,6vw,92px);
  line-height:.9;
  letter-spacing:-3px;
  font-weight:950;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-routine-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}

.page-experience-pulsia .pe-routine-card{
  padding:24px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
}

.page-experience-pulsia .pe-routine-card strong{
  display:block;
  color:#ff2b2b;
  margin-bottom:12px;
  font-size:13px;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-routine-card span{
  color:rgba(255,255,255,.82);
  font-size:15px;
  line-height:1.45;
}

/* CTA */

.page-experience-pulsia .pe-cta{
  background:#ad0101;
  color:#fff;
  padding:120px 24px;
  text-align:center;
  position:relative;
  overflow:hidden;
}

.page-experience-pulsia .pe-cta::before{
  content:"PULSIA";
  position:absolute;
  left:-1vw;
  bottom:-2vw;
  color:rgba(255,255,255,.09);
  font-size:clamp(100px,18vw,270px);
  font-weight:950;
  letter-spacing:-.08em;
  line-height:.75;
}

.page-experience-pulsia .pe-cta-inner{
  position:relative;
  z-index:2;
  max-width:960px;
  margin:0 auto;
}

.page-experience-pulsia .pe-cta h2{
  margin:0;
  font-size:clamp(56px,8vw,126px);
  line-height:.86;
  letter-spacing:-5px;
  font-weight:950;
  text-transform:uppercase;
}

.page-experience-pulsia .pe-cta p{
  max-width:720px;
  margin:28px auto 42px;
  color:rgba(255,255,255,.84);
  font-size:clamp(18px,2vw,24px);
  line-height:1.5;
}

/* RESPONSIVE */

@media(max-width:1000px){
  .page-experience-pulsia .pe-pillar-grid{
    grid-template-columns:1fr;
  }

  .page-experience-pulsia .pe-red-inner{
    grid-template-columns:1fr;
  }

  .page-experience-pulsia .pe-modules-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .page-experience-pulsia .pe-routine-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:620px){
  .page-experience-pulsia .pe-hero{
    padding:120px 22px 80px;
    min-height:88vh;
  }

  .page-experience-pulsia .pe-hero h1,
  .page-experience-pulsia .pe-head h2,
  .page-experience-pulsia .pe-red h2,
  .page-experience-pulsia .pe-cta h2{
    letter-spacing:-3px;
  }

  .page-experience-pulsia .pe-manifest,
  .page-experience-pulsia .pe-pillars,
  .page-experience-pulsia .pe-red,
  .page-experience-pulsia .pe-modules,
  .page-experience-pulsia .pe-routine{
    padding:82px 22px;
  }

  .page-experience-pulsia .pe-pillar{
    min-height:420px;
  }

  .page-experience-pulsia .pe-red-list,
  .page-experience-pulsia .pe-modules-grid,
  .page-experience-pulsia .pe-routine-grid{
    grid-template-columns:1fr;
  }

  .page-experience-pulsia .pe-btn{
    width:100%;
  }
}




/* =========================================
PLANNING PULSIA
========================================= */

.planning-pulsia{
  --bodypump:#db1212;
  --bodyjam:#fafb14;
  --rpm:#139ed4;
  --bodycombat:#b5e503;
  --shapes:#e6e1b7;
  --af:#ffcc73;
  --caf:#ffcc73;
  --step:#b6739b;
  --lia:#9603ff;
  --relax:#c1e0b1;
  --pilates:#00846f;
  --crosstraining:#1b7e01;
  --fullbody:#FFA500;
  --bodybalance:#FFF44F;

  background:#0f0c0f;
  color:#fcfbf8;
  padding:110px 20px 90px;
}

.planning-pulsia .planning-hero{
  max-width:1100px;
  margin:0 auto 46px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.planning-pulsia .planning-hero h1{
  text-align:center;
  width:100%;
  font-size: 60px;
}

.planning-pulsia .planning-hero span{
  display:block;
  margin-bottom:14px;
  color:#ad0101;
  font-size:22px;
  font-weight:900;
  letter-spacing:4px;
  text-transform:uppercase;
}



.planning-pulsia .planning-hero p{
  max-width:680px;
  margin:22px auto 0;
  color:rgba(252,251,248,.72);
  font-size:18px;
  line-height:1.5;
}

.planning-pulsia .planning-scroll-hint{
  max-width:1300px;
  margin:0 auto 12px;
  text-align:right;
  color:rgba(252,251,248,.55);
  font-size:13px;
  font-weight:800;
  letter-spacing:1px;
  text-transform:uppercase;
}

.planning-pulsia .planning-wrapper{
  position:relative;
  max-width:1300px;
  margin:0 auto;
}



.planning-pulsia .planning{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:14px;
  overflow:visible;
  padding-bottom:0;
}

.planning-pulsia .planning::-webkit-scrollbar{
  height:8px;
}

.planning-pulsia .planning::-webkit-scrollbar-track{
  background:rgba(255,255,255,.08);
}

.planning-pulsia .planning::-webkit-scrollbar-thumb{
  background:#ad0101;
}

.planning-pulsia .day{
  min-width:0;
}

.planning-pulsia .day h3{
  margin:0 0 14px;
  padding:12px;
  background:#fcfbf8;
  color:#0f0c0f;
  text-align:center;
  font-size:14px;
  font-weight:950;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

.planning-pulsia .course{
  display:flex;
  gap:10px;
  padding:12px;
  margin-bottom:9px;
  background:#181518;
  border:1px solid rgba(255,255,255,.08);
  transition:.22s ease;
}

.planning-pulsia .course:hover{
  transform:translateY(-2px);
  background:#ad0101;
  border-color:#ad0101;
}

.planning-pulsia .course2{
  min-height:220px;
  margin-bottom:9px;
}

.planning-pulsia .bar{
  width:5px;
  flex:0 0 5px;
}

.planning-pulsia .info{
  text-align:left;
}

.planning-pulsia .time{
  margin-bottom:4px;
  color:#fcfbf8;
  font-weight:950;
  font-size:13px;
}

.planning-pulsia .name{
  color:#fff;
  font-size:14px;
  font-weight:950;
  line-height:1.1;
  text-transform:uppercase;
}

.planning-pulsia .duration{
  margin-top:4px;
  color:rgba(255,255,255,.58);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
}

.planning-pulsia .week-col{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
  padding:8px;
  margin-bottom:10px;
}

.planning-pulsia .week-title{
  text-align:center;
  color:rgba(252,251,248,.62);
  font-size:11px;
  font-weight:900;
  letter-spacing:1.5px;
  text-transform:uppercase;
  margin-bottom:7px;
}

/* couleurs cours */

.planning-pulsia .bodypump .bar{background:var(--bodypump);}
.planning-pulsia .bodyjam .bar{background:var(--bodyjam);}
.planning-pulsia .rpm .bar{background:var(--rpm);}
.planning-pulsia .bodycombat .bar{background:var(--bodycombat);}
.planning-pulsia .shapes .bar{background:var(--shapes);}
.planning-pulsia .step .bar{background:var(--step);}
.planning-pulsia .lia .bar{background:var(--lia);}
.planning-pulsia .relax .bar{background:var(--relax);}
.planning-pulsia .pilates .bar{background:var(--pilates);}
.planning-pulsia .af .bar{background:var(--af);}
.planning-pulsia .caf .bar{background:var(--caf);}
.planning-pulsia .crosstraining .bar{background:var(--crosstraining);}
.planning-pulsia .fullbody .bar{background:var(--fullbody);}
.planning-pulsia .bodybalance .bar{background:var(--bodybalance);}

@media(max-width:760px){
  .planning-pulsia{
    padding:82px 14px 70px;
  }

  .planning-pulsia .planning-hero{
    text-align:left;
  }

  .planning-pulsia .planning-hero p{
    margin-left:0;
  }

  .planning-pulsia .planning-scroll-hint{
    text-align:left;
  }

  .planning-pulsia .day{
    min-width:82vw;
  }

  
 .planning-pulsia .planning-wrapper::after{
    display:block;
    content:"";
    position:absolute;
    right:0;
    top:0;
    width:40px;
    height:100%;
    background:linear-gradient(to right, transparent, #0f0c0f);
    pointer-events:none;
  }
}


@media(max-width:1000px){
  .planning-pulsia .planning{
    display:flex;
    overflow-x:auto;
    padding-bottom:18px;
    scroll-snap-type:x mandatory;
  }

  .planning-pulsia .day{
    min-width:280px;
  }
}

@media(max-width:760px){
  .planning-pulsia .day{
    min-width:82vw;
  }
}




/* =========================================
PAGE UNITE DECOUVERTE + FORMULAIRE
========================================= */

.discovery-page{
  background:#0f0c0f;
  color:#fcfbf8;
}

.discovery-hero{
  position:relative;
  overflow:hidden;
  padding:120px 24px 80px;
  background:
    radial-gradient(circle at 78% 18%,rgba(173,1,1,.45),transparent 26rem),
    linear-gradient(120deg,#050405,#0f0c0f 58%,#160707);
}

.discovery-hero-inner{
  width:min(1180px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 390px;
  gap:34px;
  align-items:end;
}

.discovery-kicker{
  display:block;
  margin-bottom:18px;
  color:#ff2b2b;
  font-size:12px;
  font-weight:950;
  letter-spacing:4px;
  text-transform:uppercase;
}

.discovery-hero h1{
  margin:0;
  font-size:clamp(58px,8vw,118px);
  line-height:.84;
  letter-spacing:-5px;
  font-weight:950;
  text-transform:uppercase;
}

.discovery-hero h1 span{
  display:block;
  color:#d80808;
}

.discovery-hero p{
  max-width:720px;
  margin:28px 0 0;
  color:rgba(252,251,248,.82);
  font-size:clamp(18px,2vw,24px);
  line-height:1.5;
}

.discovery-price-card{
  background:#fcfbf8;
  color:#0f0c0f;
  padding:30px;
  border-left:8px solid #ad0101;
  box-shadow:0 28px 80px rgba(0,0,0,.28);
}

.discovery-price-card span{
  display:inline-block;
  margin-bottom:12px;
  padding:8px 10px;
  background:#ad0101;
  color:#fff;
  font-size:11px;
  font-weight:950;
  letter-spacing:2px;
  text-transform:uppercase;
}

.discovery-price-card strong{
  display:block;
  color:#ad0101;
  font-size:clamp(78px,7vw,112px);
  line-height:.82;
  letter-spacing:-7px;
  font-weight:950;
}

.discovery-price-card p{
  margin:14px 0 0;
  color:rgba(15,12,15,.72);
  font-size:16px;
  font-weight:800;
  line-height:1.4;
}

.discovery-section{
  padding:90px 24px;
  background:#fcfbf8;
  color:#0f0c0f;
}

.discovery-container{
  width:min(1180px,100%);
  margin:0 auto;
}

.discovery-how-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin-bottom:46px;
}

.discovery-how-grid article{
  background:#fff;
  border:1px solid rgba(15,12,15,.08);
  padding:24px;
}

.discovery-how-grid b{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  background:#ad0101;
  color:#fff;
  margin-bottom:18px;
}

.discovery-how-grid h3{
  margin:0 0 8px;
  font-size:24px;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:-1px;
}

.discovery-how-grid p{
  margin:0;
  color:rgba(15,12,15,.65);
  font-size:14px;
  line-height:1.45;
}

.discovery-form-shell{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:24px;
  align-items:start;
}

.discovery-form-side{
  position:sticky;
  top:24px;
  background:#0f0c0f;
  color:#fff;
  padding:34px;
  overflow:hidden;
}

.discovery-form-side::before{
  content:"PULSIA";
  position:absolute;
  right:-12px;
  bottom:-16px;
  color:rgba(255,255,255,.06);
  font-size:94px;
  font-weight:950;
  letter-spacing:-7px;
}

.discovery-form-side > *{
  position:relative;
  z-index:1;
}

.discovery-form-side h2{
  margin:12px 0 14px;
  font-size:clamp(38px,4vw,62px);
  line-height:.88;
  letter-spacing:-3px;
  text-transform:uppercase;
}

.discovery-form-side p{
  color:rgba(255,255,255,.75);
  line-height:1.5;
}

.discovery-form-panel{
  background:#fff;
  padding:30px;
  border:1px solid rgba(15,12,15,.08);
  box-shadow:0 22px 70px rgba(15,12,15,.08);
}

.discovery-alert{
  padding:18px;
  margin-bottom:20px;
  border-left:6px solid #ad0101;
}

.discovery-alert.success{
  background:rgba(57,223,123,.12);
  border-left-color:#39df7b;
}

.discovery-alert.error{
  background:rgba(173,1,1,.10);
}

.discovery-alert strong{
  display:block;
  margin-bottom:6px;
  text-transform:uppercase;
}

.discovery-alert p{
  margin:0;
  color:rgba(15,12,15,.72);
}

.discovery-hp{
  position:absolute;
  left:-9999px;
  opacity:0;
}

.discovery-club-choice{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-bottom:22px;
}

.discovery-club-choice label{
  cursor:pointer;
}

.discovery-club-choice input{
  display:none;
}

.discovery-club-box{
  display:block;
  padding:22px;
  background:#fcfbf8;
  border:1px solid rgba(15,12,15,.10);
  transition:.2s ease;
}

.discovery-club-box strong{
  display:block;
  font-size:28px;
  line-height:.9;
  text-transform:uppercase;
  letter-spacing:-1px;
}

.discovery-club-box span{
  display:block;
  margin-top:10px;
  color:rgba(15,12,15,.62);
  font-size:13px;
}

.discovery-club-choice input:checked + .discovery-club-box{
  background:#ad0101;
  color:#fff;
  border-color:#ad0101;
}

.discovery-club-choice input:checked + .discovery-club-box span{
  color:rgba(255,255,255,.8);
}

.discovery-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.discovery-field{
  display:flex;
  flex-direction:column;
  gap:7px;
}

.discovery-field.full{
  grid-column:1/-1;
}

.discovery-field label{
  font-size:12px;
  font-weight:950;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#0f0c0f;
}

.discovery-field input,
.discovery-field select,
.discovery-field textarea{
  width:100%;
  min-height:50px;
  border:1px solid rgba(15,12,15,.15);
  background:#fcfbf8;
  color:#0f0c0f;
  padding:0 14px;
  font-size:15px;
  font-family:inherit;
}

.discovery-field textarea{
  min-height:120px;
  padding:14px;
  resize:vertical;
}

.discovery-check-row{
  grid-column:1/-1;
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:rgba(15,12,15,.68);
  font-size:13px;
  line-height:1.45;
  margin-top:4px;
}

.discovery-submit-btn{
  grid-column:1/-1;
  min-height:58px;
  border:0;
  background:#ad0101;
  color:#fff;
  font-size:13px;
  font-weight:950;
  letter-spacing:1.5px;
  text-transform:uppercase;
  cursor:pointer;
}

.discovery-submit-btn:hover{
  background:#0f0c0f;
}

@media(max-width:900px){
  .discovery-hero-inner,
  .discovery-form-shell{
    grid-template-columns:1fr;
  }

  .discovery-form-side{
    position:relative;
    top:auto;
  }

  .discovery-how-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:620px){
  .discovery-hero{
    padding:90px 22px 60px;
  }

  .discovery-hero h1{
    letter-spacing:-3px;
  }

  .discovery-how-grid,
  .discovery-club-choice,
  .discovery-form-grid{
    grid-template-columns:1fr;
  }

  .discovery-form-panel,
  .discovery-form-side{
    padding:24px;
  }
}





/* =========================================
PAGE CONTACT PULSIA
========================================= */

.contact-page-pulsia{
  background:#0f0c0f;
  color:#fcfbf8;
}

.contact-hero-pulsia{
  position:relative;
  overflow:hidden;
  padding:120px 24px 80px;
  background:
    radial-gradient(circle at 78% 18%,rgba(173,1,1,.45),transparent 26rem),
    linear-gradient(120deg,#050405,#0f0c0f 58%,#160707);
}

.contact-hero-inner-pulsia{
  width:min(1180px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 390px;
  gap:34px;
  align-items:end;
}

.contact-kicker-pulsia{
  display:block;
  margin-bottom:18px;
  color:#ff2b2b;
  font-size:12px;
  font-weight:950;
  letter-spacing:4px;
  text-transform:uppercase;
}

.contact-hero-pulsia h1{
  margin:0;
  font-size:clamp(58px,8vw,118px);
  line-height:.84;
  letter-spacing:-5px;
  font-weight:950;
  text-transform:uppercase;
}

.contact-hero-pulsia h1 span{
  display:block;
  color:#d80808;
}

.contact-hero-pulsia p{
  max-width:720px;
  margin:28px 0 0;
  color:rgba(252,251,248,.82);
  font-size:clamp(18px,2vw,24px);
  line-height:1.5;
}

.contact-side-card-pulsia{
  background:#fcfbf8;
  color:#0f0c0f;
  padding:30px;
  border-left:8px solid #ad0101;
  box-shadow:0 28px 80px rgba(0,0,0,.28);
}

.contact-side-card-pulsia span{
  display:inline-block;
  margin-bottom:14px;
  padding:8px 10px;
  background:#ad0101;
  color:#fff;
  font-size:11px;
  font-weight:950;
  letter-spacing:2px;
  text-transform:uppercase;
}

.contact-side-card-pulsia strong{
  display:block;
  color:#0f0c0f;
  font-size:clamp(40px,4vw,62px);
  line-height:.9;
  letter-spacing:-3px;
  font-weight:950;
  text-transform:uppercase;
}

.contact-side-card-pulsia p{
  margin:18px 0 0;
  color:rgba(15,12,15,.72);
  font-size:16px;
  font-weight:800;
  line-height:1.4;
}

.contact-section-pulsia{
  padding:90px 24px;
  background:#fcfbf8;
  color:#0f0c0f;
}

.contact-container-pulsia{
  width:min(1180px,100%);
  margin:0 auto;
}

.contact-info-grid-pulsia{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-bottom:46px;
}

.contact-info-grid-pulsia article{
  background:#fff;
  border:1px solid rgba(15,12,15,.08);
  padding:24px;
}

.contact-info-grid-pulsia span{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  background:#ad0101;
  color:#fff;
  margin-bottom:18px;
  font-weight:950;
}

.contact-info-grid-pulsia h3{
  margin:0 0 8px;
  font-size:24px;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:-1px;
}

.contact-info-grid-pulsia p{
  margin:0;
  color:rgba(15,12,15,.65);
  font-size:14px;
  line-height:1.45;
}

.contact-form-shell-pulsia{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:24px;
  align-items:start;
}

.contact-form-side-pulsia{
  position:sticky;
  top:24px;
  background:#0f0c0f;
  color:#fff;
  padding:34px;
  overflow:hidden;
}

.contact-form-side-pulsia::before{
  content:"CONTACT";
  position:absolute;
  right:-14px;
  bottom:-16px;
  color:rgba(255,255,255,.06);
  font-size:82px;
  font-weight:950;
  letter-spacing:-7px;
}

.contact-form-side-pulsia > *{
  position:relative;
  z-index:1;
}

.contact-form-side-pulsia h2{
  margin:12px 0 14px;
  font-size:clamp(38px,4vw,62px);
  line-height:.88;
  letter-spacing:-3px;
  text-transform:uppercase;
}

.contact-form-side-pulsia p{
  color:rgba(255,255,255,.75);
  line-height:1.5;
}

.contact-direct-pulsia{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.12);
}

.contact-direct-pulsia strong{
  display:block;
  color:#fff;
  margin-bottom:6px;
  text-transform:uppercase;
}

.contact-direct-pulsia span{
  color:rgba(255,255,255,.72);
}

.contact-form-panel-pulsia{
  background:#fff;
  padding:30px;
  border:1px solid rgba(15,12,15,.08);
  box-shadow:0 22px 70px rgba(15,12,15,.08);
}

.contact-alert-pulsia{
  padding:18px;
  margin-bottom:20px;
  border-left:6px solid #ad0101;
}

.contact-alert-pulsia.success{
  background:rgba(57,223,123,.12);
  border-left-color:#39df7b;
}

.contact-alert-pulsia.error{
  background:rgba(173,1,1,.10);
}

.contact-alert-pulsia strong{
  display:block;
  margin-bottom:6px;
  text-transform:uppercase;
}

.contact-alert-pulsia p{
  margin:0;
  color:rgba(15,12,15,.72);
}

.contact-hp-pulsia{
  position:absolute;
  left:-9999px;
  opacity:0;
}

.contact-club-choice-pulsia{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-bottom:22px;
}

.contact-club-choice-pulsia label{
  cursor:pointer;
}

.contact-club-choice-pulsia input{
  display:none;
}

.contact-club-box-pulsia{
  display:block;
  min-height:118px;
  padding:20px;
  background:#fcfbf8;
  border:1px solid rgba(15,12,15,.10);
  transition:.2s ease;
}

.contact-club-box-pulsia strong{
  display:block;
  font-size:26px;
  line-height:.9;
  text-transform:uppercase;
  letter-spacing:-1px;
}

.contact-club-box-pulsia span{
  display:block;
  margin-top:10px;
  color:rgba(15,12,15,.62);
  font-size:13px;
}

.contact-club-choice-pulsia input:checked + .contact-club-box-pulsia{
  background:#ad0101;
  color:#fff;
  border-color:#ad0101;
}

.contact-club-choice-pulsia input:checked + .contact-club-box-pulsia span{
  color:rgba(255,255,255,.8);
}

.contact-form-grid-pulsia{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.contact-field-pulsia{
  display:flex;
  flex-direction:column;
  gap:7px;
}

.contact-field-pulsia.full{
  grid-column:1/-1;
}

.contact-field-pulsia label{
  font-size:12px;
  font-weight:950;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#0f0c0f;
}

.contact-field-pulsia input,
.contact-field-pulsia select,
.contact-field-pulsia textarea{
  width:100%;
  min-height:50px;
  border:1px solid rgba(15,12,15,.15);
  background:#fcfbf8;
  color:#0f0c0f;
  padding:0 14px;
  font-size:15px;
  font-family:inherit;
}

.contact-field-pulsia textarea{
  min-height:145px;
  padding:14px;
  resize:vertical;
}

.contact-check-row-pulsia{
  grid-column:1/-1;
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:rgba(15,12,15,.68);
  font-size:13px;
  line-height:1.45;
  margin-top:4px;
}

.contact-submit-btn-pulsia{
  grid-column:1/-1;
  min-height:58px;
  border:0;
  background:#ad0101;
  color:#fff;
  font-size:13px;
  font-weight:950;
  letter-spacing:1.5px;
  text-transform:uppercase;
  cursor:pointer;
}

.contact-submit-btn-pulsia:hover{
  background:#0f0c0f;
}

@media(max-width:900px){
  .contact-hero-inner-pulsia,
  .contact-form-shell-pulsia{
    grid-template-columns:1fr;
  }

  .contact-form-side-pulsia{
    position:relative;
    top:auto;
  }

  .contact-info-grid-pulsia{
    grid-template-columns:1fr;
  }

  .contact-club-choice-pulsia{
    grid-template-columns:1fr;
  }
}

@media(max-width:620px){
  .contact-hero-pulsia{
    padding:90px 22px 60px;
  }

  .contact-hero-pulsia h1{
    letter-spacing:-3px;
  }

  .contact-form-grid-pulsia{
    grid-template-columns:1fr;
  }

  .contact-form-panel-pulsia,
  .contact-form-side-pulsia{
    padding:24px;
  }
}









.actions-actions-v14-club{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:20px;
}

.actions-actions-v14-club .planning-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:13px 18px;
    background:#ad0101;
    border:1px solid #ad0101;
    color:#fcfbf8 !important;
    border-radius:6px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
    transition:.2s ease;
}

.actions-actions-v14-club .planning-btn:hover{
    background:#8f0000;
    border-color:#8f0000;
    color:#fcfbf8 !important;
}

.actions-actions-v14-club .club-map-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:13px 18px;
    background:#0f0c0f;
    border:1px solid #0f0c0f;
    color:#fcfbf8 !important;
    border-radius:6px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
    transition:.2s ease;
}

.actions-actions-v14-club .club-map-link:hover{
    background:#252525;
    border-color:#252525;
}






/* POPUP GÉNÉRIQUE SITE */

.site-mini-pop{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:9999;
  width:380px;
  background:#0f0c0f;
  color:#fcfbf8;
  border:1px solid rgba(255,255,255,.14);
  border-left:6px solid #d93b88;
  box-shadow:0 24px 70px rgba(0,0,0,.38);
  overflow:hidden;
}

.site-mini-inner{
  position:relative;
  z-index:2;
  padding:20px;
}

.site-mini-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:14px;
}

.site-mini-badge{
  display:inline-flex;
  padding:7px 10px;
  background:#ad0101;
  color:#fff;
  font-size:10px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:1.4px;
}

.site-mini-close{
  width:34px;
  height:34px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.07);
  color:#fff;
  cursor:pointer;
  font-size:24px;
  line-height:1;
}

.site-mini-pop h3{
  margin:0 0 12px;
  font-size:28px;
  line-height:.9;
  letter-spacing:-1.2px;
  text-transform:uppercase;
}

.site-mini-pop h3 span{
  display:block;
  color:#d93b88;
}

.site-mini-pop p{
  margin:0 0 15px;
  color:rgba(252,251,248,.78);
  font-size:14px;
  line-height:1.42;
}

.site-mini-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:16px;
}

.site-mini-meta span{
  padding:7px 8px;
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.84);
  font-size:11px;
  font-weight:850;
  text-transform:uppercase;
}

.site-mini-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  background:#ad0101;
  color:#fff !important;
  text-decoration:none;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:1px;
}

.site-mini-reopen{
  display:none;
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:9998;
  min-height:48px;
  padding:0 18px;
  background:#ad0101;
  color:#fff;
  border:0;
  cursor:pointer;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:1px;
  box-shadow:0 18px 50px rgba(0,0,0,.30);
}

@media(max-width:768px){

  .site-mini-pop{
    left:15px;
    right:15px;
    bottom:15px;
    width:auto;
  }

  .site-mini-reopen{
    left:15px;
    right:15px;
    bottom:15px;
    justify-content:center;
  }
}




/* PAGE FOULÉES ROSES 2026 */

.foulees-page{
  background:#fcfbf8;
  color:#0f0c0f;
}

.foulees-hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 84% 18%, rgba(217,59,136,.25), transparent 26rem),
    linear-gradient(120deg,#050405,#0f0c0f 62%,#19060e);
  color:#fcfbf8;
}

.foulees-hero::before{
  content:"FOULÉES ROSES";
  position:absolute;
  right:-18px;
  bottom:-20px;
  color:rgba(255,255,255,.045);
  font-size:clamp(78px,13vw,210px);
  line-height:.75;
  font-weight:950;
  letter-spacing:-.08em;
  pointer-events:none;
}

.foulees-hero-inner{
  position:relative;
  z-index:2;
  width:min(1220px, calc(100% - 40px));
  margin:0 auto;
  padding:96px 0 80px;
  display:grid;
  grid-template-columns:1fr 360px;
  gap:42px;
  align-items:end;
}

.foulees-kicker{
  display:inline-flex;
  padding:9px 12px;
  background:#ad0101;
  color:#fff;
  font-size:11px;
  font-weight:950;
  letter-spacing:2px;
  text-transform:uppercase;
  margin-bottom:22px;
}

.foulees-kicker.pink{
  background:#d93b88;
}

.foulees-hero h1{
  margin:0;
  font-size:clamp(54px,7.5vw,108px);
  line-height:.84;
  letter-spacing:-6px;
  text-transform:uppercase;
}

.foulees-hero h1 span{
  display:block;
  color:#d93b88;
}

.foulees-hero p{
  max-width:760px;
  margin:28px 0 0;
  color:rgba(252,251,248,.82);
  font-size:clamp(18px,2vw,23px);
  line-height:1.48;
}

.foulees-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:28px;
}

.foulees-meta span{
  display:inline-flex;
  padding:10px 12px;
  background:rgba(252,251,248,.08);
  border:1px solid rgba(252,251,248,.12);
  color:rgba(252,251,248,.86);
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.foulees-official-link{
  display:flex;
  width:min(640px,100%);
  min-height:54px;
  margin-top:24px;
  align-items:center;
  justify-content:center;
  border:1px solid #d93b88;
  color:#d93b88;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:1.2px;
}

.foulees-logo-card{
  background:#fcfbf8;
  color:#0f0c0f;
  padding:26px;
  border-left:8px solid #d93b88;
  box-shadow:0 24px 80px rgba(0,0,0,.25);
  text-align:center;
}

.foulees-logo-card img{
  width:100%;
  display:block;
  background:#fff;
}

.foulees-logo-card span{
  display:inline-flex;
  margin-top:-18px;
  position:relative;
  padding:9px 14px;
  background:#d93b88;
  color:#fff;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:1.2px;
}

.foulees-logo-card p{
  margin:18px 0 0;
  color:rgba(15,12,15,.72);
  font-weight:850;
  line-height:1.42;
}

.foulees-section{
  width:min(1220px, calc(100% - 40px));
  margin:0 auto;
  padding:86px 0;
}

.foulees-head{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:34px;
  margin-bottom:42px;
  align-items:end;
}

.foulees-head h2{
  margin:0;
  font-size:clamp(42px,6vw,86px);
  line-height:.88;
  letter-spacing:-4px;
  text-transform:uppercase;
}

.foulees-head p{
  margin:0;
  color:rgba(15,12,15,.68);
  font-size:18px;
  line-height:1.55;
}

.foulees-program-line{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
}

.foulees-program-line article{
  position:relative;
  padding:0 26px 0 30px;
  border-left:2px solid rgba(217,59,136,.45);
  min-height:250px;
}

.foulees-program-line article::before{
  content:"";
  position:absolute;
  left:-7px;
  top:0;
  width:14px;
  height:14px;
  border-radius:50%;
  background:#d93b88;
}

.foulees-program-line strong{
  display:block;
  margin-bottom:22px;
  color:#d93b88;
  font-size:34px;
  line-height:.85;
  letter-spacing:-2px;
  font-weight:950;
}

.foulees-program-icon{
  width:66px;
  height:66px;
  display:grid;
  place-items:center;
  margin-bottom:18px;
  border-radius:50%;
  background:#0f0c0f;
  color:#fff;
  font-size:28px;
}

.foulees-program-line article.combat .foulees-program-icon{
  background:#767a2c;
}

.foulees-program-line article.jam .foulees-program-icon{
  background:#f4c400;
  color:#0f0c0f;
}

.foulees-program-icon.pink{
  background:#d93b88;
}

.foulees-program-line h3{
  margin:0 0 12px;
  font-size:24px;
  line-height:1;
  letter-spacing:-1px;
  text-transform:uppercase;
}

.foulees-program-line p{
  margin:0;
  color:rgba(15,12,15,.65);
  font-size:14px;
  line-height:1.45;
}

.foulees-education{
  background:#0f0c0f;
  color:#fcfbf8;
  padding:72px 0;
}

.foulees-education-inner{
  width:min(1220px, calc(100% - 40px));
  margin:0 auto;
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:50px;
  align-items:center;
}

.foulees-education-photo{
  min-height:280px;
  overflow:hidden;
}

.foulees-education-photo img{
  width:100%;
  height:100%;
  min-height:280px;
  object-fit:cover;
  display:block;
  filter:saturate(1.08) contrast(1.05) brightness(.88);
}

.foulees-education h2{
  margin:0 0 30px;
  font-size:clamp(38px,5vw,72px);
  line-height:.9;
  letter-spacing:-4px;
  text-transform:uppercase;
}

.foulees-edu-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}

.foulees-edu-grid article{
  padding:22px;
  background:rgba(255,255,255,.06);
  border-left:5px solid #d93b88;
}

.foulees-edu-grid h3{
  margin:0 0 8px;
  font-size:21px;
  text-transform:uppercase;
  letter-spacing:-1px;
}

.foulees-edu-grid p{
  margin:0;
  color:rgba(252,251,248,.74);
  line-height:1.45;
  font-size:14px;
}

.foulees-lesmills-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}

.foulees-lesmills-card{
  position:relative;
  overflow:hidden;
  min-height:520px;
  padding:34px;
  background:#0f0c0f;
  color:#fcfbf8;
}

.foulees-lesmills-card.combat{
  background:
    radial-gradient(circle at 0% 0%, rgba(118,122,44,.45), transparent 26rem),
    #0f0c0f;
}

.foulees-lesmills-card.jam{
  background:
    radial-gradient(circle at 0% 0%, rgba(244,196,0,.40), transparent 26rem),
    #0f0c0f;
}

.foulees-lesmills-logo{
  height:92px;
  display:flex;
  align-items:center;
  margin-bottom:20px;
}

.foulees-lesmills-logo img{
  max-width:280px;
  max-height:78px;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
}

.foulees-lesmills-card.jam .foulees-lesmills-logo img{
  max-height:70px;
}

.foulees-lesmills-card p{
  max-width:520px;
  margin:0 0 26px;
  color:rgba(252,251,248,.82);
  font-size:17px;
  line-height:1.45;
}

.foulees-lesmills-card video{
  width:100%;
  display:block;
  background:#000;
  box-shadow:0 18px 60px rgba(0,0,0,.38);
}

.foulees-final{
  width:min(1220px, calc(100% - 40px));
  margin:0 auto 90px;
  background:#ad0101;
  color:#fcfbf8;
  position:relative;
  overflow:hidden;
}

.foulees-final::before{
  content:"PULSIA";
  position:absolute;
  right:-8px;
  bottom:-8px;
  color:rgba(255,255,255,.08);
  font-size:108px;
  font-weight:950;
  letter-spacing:-8px;
}

.foulees-final-inner{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1fr auto;
  gap:30px;
  align-items:center;
  padding:42px;
}

.foulees-final h2{
  margin:0 0 16px;
  font-size:clamp(42px,5vw,78px);
  line-height:.86;
  letter-spacing:-4px;
  text-transform:uppercase;
}

.foulees-final p{
  max-width:760px;
  margin:0;
  color:rgba(252,251,248,.82);
  font-size:18px;
  line-height:1.5;
}

.foulees-actions{
  display:grid;
  gap:12px;
  min-width:320px;
}

.foulees-actions a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 24px;
  background:#fcfbf8;
  color:#0f0c0f;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:1.3px;
}

.foulees-actions a.ghost{
  background:#0f0c0f;
  color:#fcfbf8;
  border:1px solid rgba(255,255,255,.25);
}

@media(max-width:980px){
  .foulees-hero-inner,
  .foulees-head,
  .foulees-education-inner,
  .foulees-lesmills-grid,
  .foulees-final-inner{
    grid-template-columns:1fr;
  }

  .foulees-program-line{
    grid-template-columns:1fr 1fr;
    gap:30px 0;
  }

  .foulees-edu-grid{
    grid-template-columns:1fr;
  }

  .foulees-actions{
    min-width:0;
  }
}

@media(max-width:620px){
  .foulees-hero h1{
    letter-spacing:-3px;
  }

  .foulees-hero-inner,
  .foulees-section,
  .foulees-education-inner,
  .foulees-final{
    width:calc(100% - 28px);
  }

  .foulees-hero-inner{
    padding:68px 0 58px;
  }

  .foulees-program-line{
    grid-template-columns:1fr;
    gap:28px;
  }

  .foulees-program-line article{
    min-height:auto;
    padding-bottom:18px;
  }

  .foulees-lesmills-card{
    padding:24px;
    min-height:auto;
  }

  .foulees-lesmills-logo img{
    max-width:230px;
  }

  .foulees-final-inner{
    padding:28px;
  }

  .foulees-actions a{
    width:100%;
  }
}




/* Compte à rebours foulées roses */

.foulees-countdown-live{
  background:#ad0101;
  color:#fcfbf8;
  padding:34px 20px;
}

.foulees-countdown-inner{
  width:min(1220px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr auto;
  gap:28px;
  align-items:center;
}

.foulees-countdown-inner h2{
  margin:0;
  font-size:clamp(34px,5vw,72px);
  line-height:.88;
  letter-spacing:-3px;
  text-transform:uppercase;
}

.foulees-countdown-boxes{
  display:flex;
  gap:10px;
}

.foulees-countdown-boxes div{
  min-width:92px;
  padding:15px 12px;
  background:#0f0c0f;
  text-align:center;
}

.foulees-countdown-boxes strong{
  display:block;
  font-size:38px;
  line-height:.9;
}

.foulees-countdown-boxes span{
  display:block;
  margin-top:6px;
  color:rgba(252,251,248,.72);
  font-size:10px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:1px;
}

@media(max-width:760px){
  .foulees-countdown-inner{
    grid-template-columns:1fr;
  }

  .foulees-countdown-boxes{
    flex-wrap:wrap;
  }

  .foulees-countdown-boxes div{
    flex:1;
    min-width:90px;
  }
}



/* ALERTE ANNULATION FOULEES ROSES */

.foulees-alert{
    background:#ad0101;
    color:#fff;
    padding:50px 20px;
}

.foulees-alert-inner{
    max-width:1000px;
    margin:auto;
}

.foulees-alert-badge{
    display:inline-block;
    padding:8px 12px;
    background:#fff;
    color:#ad0101;
    font-weight:900;
    text-transform:uppercase;
    margin-bottom:15px;
}

.foulees-alert h2{
    margin:0 0 15px;
    font-size:48px;
    text-transform:uppercase;
}

.foulees-alert a{
    display:inline-flex;
    margin-top:15px;
    padding:12px 18px;
    background:#0f0c0f;
    color:#fff;
}




/* COOKIE POPUP */
.cookie-banner{
    position:fixed;
    left:20px;
    right:20px;
    bottom:20px;
    z-index:99999;
}

.cookie-banner-inner{
    max-width:1100px;
    margin:auto;
    background:#0f0c0f;
    color:#fcfbf8;
    border-left:6px solid #ad0101;
    box-shadow:0 20px 60px rgba(0,0,0,.35);
    padding:24px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
}

.cookie-badge{
    display:inline-block;
    margin-bottom:12px;
    padding:6px 10px;
    background:#ad0101;
    color:#fff;
    font-size:10px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:1px;
}

.cookie-banner h3{
    margin:0 0 10px;
    font-size:24px;
}

.cookie-banner p{
    margin:0;
    color:rgba(252,251,248,.8);
    line-height:1.5;
}

.cookie-actions{
    display:flex;
    gap:10px;
    flex-shrink:0;
}

.cookie-btn{
    min-height:46px;
    padding:0 20px;
    border:none;
    cursor:pointer;
    font-weight:900;
    text-transform:uppercase;
}

.cookie-btn.primary{
    background:#ad0101;
    color:#fff;
}

.cookie-btn.secondary{
    background:#fcfbf8;
    color:#0f0c0f;
}

@media(max-width:768px){

    .cookie-banner{
        left:15px;
        right:15px;
        bottom:15px;
    }

    .cookie-banner-inner{
        flex-direction:column;
        align-items:flex-start;
    }

    .cookie-actions{
        width:100%;
    }

    .cookie-btn{
        flex:1;
    }
}

.cookie-btn.info{
  min-height:auto;
  padding:0;
  background:transparent;
  color:rgba(252,251,248,.72);
  border:0;
  text-decoration:underline;
  font-size:12px;
  font-weight:700;
  text-transform:none;
  letter-spacing:0;
}


.cookie-actions{
  align-items:center;
}

.cookie-btn.info{
  width:100%;
  justify-content:center;
}



/* PAGE 404 */

.error404-page{
  background:#0f0c0f;
  color:#fcfbf8;
}

.error404-hero{
  position:relative;
  min-height:72vh;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 14%, rgba(173,1,1,.42), transparent 26rem),
    linear-gradient(120deg,#050405,#0f0c0f 62%,#19060e);
}

.error404-hero::before{
  content:"404";
  position:absolute;
  right:-20px;
  bottom:-40px;
  color:rgba(255,255,255,.055);
  font-size:clamp(140px,28vw,420px);
  line-height:.75;
  font-weight:950;
  letter-spacing:-.12em;
  pointer-events:none;
}

.error404-inner{
  position:relative;
  z-index:2;
  width:min(1220px, calc(100% - 40px));
  margin:0 auto;
  padding:90px 0;
}

.error404-kicker{
  display:inline-flex;
  padding:9px 12px;
  background:#ad0101;
  color:#fff;
  font-size:11px;
  font-weight:950;
  letter-spacing:2px;
  text-transform:uppercase;
  margin-bottom:22px;
}

.error404-hero h1{
  max-width:900px;
  margin:0;
  font-size:clamp(60px,9vw,130px);
  line-height:.84;
  letter-spacing:-7px;
  text-transform:uppercase;
}

.error404-hero h1 span{
  display:block;
  color:#ad0101;
}

.error404-hero p{
  max-width:680px;
  margin:28px 0;
  color:rgba(252,251,248,.80);
  font-size:clamp(18px,2vw,23px);
  line-height:1.48;
}

.error404-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.error404-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 24px;
  background:#ad0101;
  color:#fcfbf8;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:1.2px;
}

.error404-actions a.ghost{
  background:rgba(252,251,248,.08);
  border:1px solid rgba(252,251,248,.18);
}

@media(max-width:620px){
  .error404-inner{
    width:calc(100% - 28px);
    padding:68px 0;
  }

  .error404-hero h1{
    letter-spacing:-3px;
  }

  .error404-actions a{
    width:100%;
  }
}





/* Bandeau planning été */
.summer-banner {
  background: #eabb00;
  color: #fcfbf8;
  border: 1px solid #ad0101;
  border-left: 6px solid #ad0101;
  padding: 18px 22px;
  margin: 25px 0;
  border-radius: 14px;
  text-align: center;
max-width: 1250px;
  margin-left: auto;
  margin-right: auto;
}




.summer-banner strong {
  color: #fcfbf8;
  font-size: 1.1rem;
}

.summer-banner p {
  margin: 8px 0 14px;
  color: #fcfbf8;
}

.summer-banner a {
  display: inline-block;
  background: #ad0101;
  color: #fcfbf8;
  text-decoration: none;
  font-weight: 700;
  padding: 10px 18px;
  border-radius: 999px;
  transition: 0.25s ease;
}

.summer-banner a:hover {
  background: #fcfbf8;
  color: #ad0101;
}


/* Bloc choix des plannings */
.planning-choice {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  margin: 30px 0;
}

.planning-card {
  background: #fcfbf8;
  color: #0f0c0f;
  border: 1px solid rgba(15, 12, 15, 0.12);
  border-radius: 18px;
  padding: 22px;
  text-decoration: none;
  transition: 0.25s ease;
}

.planning-card:hover {
  transform: translateY(-3px);
  border-color: #ad0101;
}

.planning-card .badge {
  display: inline-block;
  background: #ad0101;
  color: #fcfbf8;
  font-size: 0.75rem;
  font-weight: 800;
  padding: 6px 10px;
  border-radius: 999px;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.planning-card h3 {
  margin: 0 0 8px;
  font-size: 1.3rem;
}

.planning-card p {
  margin: 0;
  opacity: 0.8;
}


/* Version mobile */
@media (max-width: 768px) {
  .planning-choice {
    grid-template-columns: 1fr;
  }

  .summer-banner {
    padding: 16px;
  }
}




.closure-banner {
  background: #ad0101;
  color: #fcfbf8;
  border-radius: 16px;
  padding: 22px;
  margin: 25px 0;
  text-align: center;
  box-shadow: 0 10px 25px rgba(0,0,0,0.18);
   max-width: 1250px;
  margin-left: auto;
  margin-right: auto;
}

.closure-label {
  display: inline-block;
  background: #fcfbf8;
  color: #ad0101;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 0.75rem;
  padding: 6px 12px;
  border-radius: 999px;
  margin-bottom: 10px;
}

.closure-banner h2 {
  margin: 8px 0;
  font-size: 1.45rem;
  color: #fcfbf8;
}

.closure-banner p {
  margin: 0;
  color: #fcfbf8;
  opacity: 0.95;
}

@media (max-width: 768px) {
  .closure-banner {
    padding: 18px;
  }

  .closure-banner h2 {
    font-size: 1.2rem;
  }
}