/* The Rush Room — système partagé */

:root{
  --noir: #0a0a0a;
  --blanc: #f5f5f2;
  --blanc-doux: rgba(245,245,242,.68);
  --blanc-faible: rgba(245,245,242,.44);
  --rouge: #e21c14;
  --rouge-vif: #ff3629;
  --ligne: rgba(245,245,242,.16);
  --ligne-vive: rgba(245,245,242,.32);

  --font-display: "Archivo Black", "Arial Black", sans-serif;
  --font-texte: "Inter", system-ui, sans-serif;

  /* courbes empruntées à emil-design-eng : ease-out marqué pour l'entrée, ease-in-out pour le mouvement à l'écran */
  --ease-out: cubic-bezier(.23,1,.32,1);
  --ease-in-out: cubic-bezier(.77,0,.175,1);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--noir);
  color:var(--blanc);
  font-family:var(--font-texte);
  line-height:1.5;
  overflow-x:clip;
}
img,video{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3{margin:0; font-family:var(--font-display); text-transform:uppercase; letter-spacing:-.01em; line-height:.94;}
p{margin:0;}
button{font-family:inherit;}

.conteneur{max-width:1220px; margin-inline:auto; padding-inline:28px;}
.eyebrow{
  font-family:var(--font-texte); font-weight:700; text-transform:uppercase;
  letter-spacing:.18em; font-size:.7rem; color:var(--rouge-vif);
}

:focus-visible{outline:2px solid var(--rouge-vif); outline-offset:3px; border-radius:1px;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
}

/* ---------- Lien flèche (remplace les boutons pleins — plus proche de la référence, plus sobre) ---------- */
.lien-fleche{
  display:inline-flex; align-items:center; gap:8px; text-decoration:none; font-weight:700;
  font-size:.82rem; letter-spacing:.02em; color:var(--blanc); padding-block:9px;
  border-bottom:1px solid var(--ligne-vive);
  transition:border-color 180ms var(--ease-out), color 180ms var(--ease-out), transform 160ms var(--ease-out);
}
.lien-fleche svg{width:13px; height:13px; transition:transform 220ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){
  .lien-fleche:hover{border-color:var(--rouge-vif); color:var(--rouge-vif);}
  .lien-fleche:hover svg{transform:translate(4px,-4px);}
}
.lien-fleche.gros{font-size:1rem; padding-block:8px;}

.lien-fleche:active{transform:scale(.98);}

/* ---------- Nav ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(10,10,10,.97);
  border-bottom:1px solid var(--ligne);
}
.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:18px;}
.nav-marque{display:flex; align-items:center; gap:9px; text-decoration:none; flex-shrink:0; min-height:44px;}
.nav-marque img{width:26px; height:26px; object-fit:contain;}
.nav-marque span{font-family:var(--font-display); font-size:.92rem; letter-spacing:.01em; color:var(--rouge);}

.nav-liens{display:flex; align-items:center; gap:34px; list-style:none; margin:0; padding:0;}
.nav-liens a{
  text-decoration:none; font-size:.76rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--blanc-doux); transition:color 180ms var(--ease-out); padding:10px 0;
}
.nav-liens a:hover, .nav-liens a[aria-current="page"]{color:var(--blanc);}
.nav-liens a.lien-fleche{
  text-transform:none; letter-spacing:.02em;
  transition:border-color 180ms var(--ease-out), color 180ms var(--ease-out), transform 160ms var(--ease-out);
}
.nav-liens a[aria-current="page"]{color:var(--rouge-vif);}

.nav-cta{display:none;}
@media (min-width:860px){ .nav-cta{display:inline-flex;} }
.nav-cta-mobile{display:none;}

.burger{
  display:flex; flex-direction:column; gap:5px; align-items:center; justify-content:center;
  background:none; border:none; padding:8px; cursor:pointer; min-width:44px; min-height:44px;
}
.burger span{width:22px; height:1.5px; background:var(--blanc); transition:transform 260ms var(--ease-out), opacity 180ms var(--ease-out);}
@media (min-width:860px){ .burger{display:none;} .nav-liens{display:flex;} }
@media (max-width:859px){
  .nav-liens{
    position:fixed; top:63px; right:0; bottom:0; left:0; background:var(--noir); flex-direction:column;
    align-items:stretch; justify-content:flex-start; padding:36px 28px; gap:4px; transform:translateY(-10px);
    z-index:60;
    opacity:0; pointer-events:none; transition:opacity 220ms var(--ease-out), transform 220ms var(--ease-out);
  }
  .nav-liens.ouvert{opacity:1; pointer-events:auto; transform:translateY(0);}
  .nav-liens a{display:block; padding:18px 2px; font-size:1.1rem; border-bottom:1px solid var(--ligne); width:100%;}
  .nav-liens .nav-cta-mobile{display:block; margin-top:14px; border-bottom:none;}
  .nav-liens .nav-cta-mobile a{padding:0; border-bottom:none; display:inline-flex;}
  body.menu-ouvert{overflow:hidden;}
}
.burger.actif span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger.actif span:nth-child(2){opacity:0;}
.burger.actif span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* ---------- Titres géants (section) ---------- */
.titre-geant{
  font-size:clamp(3rem, 11vw, 7.5rem); color:var(--rouge); line-height:.86;
}

/* ---------- Sections ---------- */
section{padding:88px 0;}
.section-tete{padding-bottom:0;}
@media (max-width:700px){ section{padding:64px 0;} }

.reveal{opacity:0; transform:translateY(22px); transition:opacity 700ms var(--ease-out), transform 700ms var(--ease-out);}
.reveal.visible{opacity:1; transform:none;}

hr.trait{border:none; border-top:1px solid var(--ligne); margin:0;}

/* ---------- Header de page (sous-pages) ---------- */
.entete-page{padding:64px 0 48px; border-bottom:1px solid var(--ligne);}
.entete-page .eyebrow{margin-bottom:14px;}
.entete-page p.intro{margin-top:20px; max-width:52ch; color:var(--blanc-doux); font-size:1.02rem;}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--ligne); padding:64px 0 0;}
.footer-grille{display:grid; gap:36px; padding-bottom:56px;}
@media (min-width:760px){ .footer-grille{grid-template-columns:1fr 1.4fr 1fr;} }
.footer-titre{font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--blanc-faible); font-weight:700; margin:0 0 16px;}
.footer-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px;}
.footer-col a{text-decoration:none; color:var(--blanc-doux); font-size:.92rem; display:inline-flex; min-height:38px; align-items:center; transition:color 180ms var(--ease-out);}
.footer-col a:hover{color:var(--blanc);}
.footer-col p{color:var(--blanc-doux); font-size:.9rem; max-width:36ch;}
.footer-wordmark{
  font-size:clamp(2.6rem, 11.5vw, 8rem); color:var(--rouge); text-align:center; padding:20px 0 30px;
  line-height:.86; letter-spacing:-.02em; user-select:none; white-space:nowrap;
}
@media (max-width:640px){ .footer-wordmark{white-space:normal;} }
.footer-bas{
  border-top:1px solid var(--ligne); padding:20px 0; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px;
  color:var(--blanc-faible); font-size:.76rem;
}

.visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
a.visually-hidden:focus{
  position:fixed; top:12px; left:12px; width:auto; height:auto; overflow:visible; clip:auto;
  background:var(--rouge); color:var(--blanc); padding:12px 20px; border-radius:6px; z-index:200;
  font-weight:700; text-decoration:none;
}

::selection{background:var(--rouge); color:var(--blanc);}

/* ==========================================================
   ACCUEIL
   ========================================================== */

.hero-video{
  position:relative; height:min(74vh, 720px); min-height:420px; overflow:hidden;
  border-bottom:1px solid var(--ligne);
}
.hero-video video, .hero-video .hero-poster{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%;
}
.hero-video::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,.35) 0%, rgba(10,10,10,.15) 40%, rgba(10,10,10,.85) 100%);
}

.hero-texte{position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:flex-end;}
.hero-texte .conteneur{padding-bottom:52px; width:100%;}
.hero-eyebrow{color:var(--rouge-vif); font-weight:700; letter-spacing:.18em; text-transform:uppercase; font-size:.75rem; margin-bottom:14px;}
.hero-titre{font-size:clamp(2.4rem, 8vw, 5.2rem); color:var(--blanc);}
.hero-sous{margin-top:18px; max-width:46ch; color:var(--blanc-doux); font-size:1.05rem;}
.hero-cta{margin-top:26px; display:flex; gap:26px; flex-wrap:wrap; align-items:center;}

.hero-titre .mot{display:inline-block; opacity:0; transform:translateY(100%); animation:mot-entree 900ms var(--ease-out) forwards;}
.hero-titre{overflow:hidden;}
.hero-titre .ligne{overflow:hidden; display:block;}
@keyframes mot-entree{to{opacity:1; transform:none;}}
.hero-eyebrow, .hero-sous, .hero-cta{opacity:0; transform:translateY(14px); animation:entree 800ms var(--ease-out) forwards;}
.hero-eyebrow{animation-delay:60ms;}
.hero-sous{animation-delay:420ms;}
.hero-cta{animation-delay:520ms;}
@keyframes entree{to{opacity:1; transform:none;}}

/* Services */
.services-grille{display:grid; border-top:1px solid var(--ligne);}
@media (min-width:760px){ .services-grille{grid-template-columns:1fr 1fr;} }
.service{padding:44px 0; border-bottom:1px solid var(--ligne);}
@media (min-width:760px){
  .service{padding:52px 48px 52px 0;}
  .service + .service{padding-left:48px; border-left:1px solid var(--ligne);}
}
.service h3{font-size:clamp(1.5rem,3vw,2rem); text-transform:uppercase;}
.service .souslabel{margin-top:8px; color:var(--blanc-faible); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;}
.service p.desc{margin-top:18px; color:var(--blanc-doux); font-size:.95rem; max-width:46ch;}
.service .bas{margin-top:26px; display:flex; align-items:center; justify-content:space-between; gap:20px;}
.service .prix{font-family:var(--font-display); font-size:.85rem; letter-spacing:.04em; color:var(--blanc-faible); text-transform:uppercase;}

/* Bande vidéos verticales — carrousel flottant, défilement automatique */
.bande-titre{display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap;}

.marquee-videos{
  margin-top:56px; overflow:hidden; padding:34px 0;
  -webkit-mask-image:linear-gradient(90deg, transparent, black 6%, black 94%, transparent);
  mask-image:linear-gradient(90deg, transparent, black 6%, black 94%, transparent);
}
.marquee-track{
  display:flex; gap:18px; width:max-content;
  animation:marquee-scroll 52s linear infinite;
}
.marquee-videos:focus-within .marquee-track{ animation-play-state:paused; }
@media (hover:hover) and (pointer:fine){
  .marquee-videos:hover .marquee-track{ animation-play-state:paused; }
}
@keyframes marquee-scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

.carte-video{
  position:relative; flex:0 0 auto; width:190px; aspect-ratio:9/16; border-radius:2px; overflow:hidden;
  background:#151515; border:1px solid var(--ligne);
  transition:border-color 240ms var(--ease-out), filter 240ms var(--ease-out);
  animation:carte-flotte 5.5s ease-in-out infinite;
}
@media (hover:hover) and (pointer:fine){
  .carte-video:hover{border-color:var(--ligne-vive); filter:brightness(1.12);}
}
.carte-video:nth-child(8n+1){animation-delay:0s;}
.carte-video:nth-child(8n+2){animation-delay:.7s;}
.carte-video:nth-child(8n+3){animation-delay:1.4s;}
.carte-video:nth-child(8n+4){animation-delay:2.1s;}
.carte-video:nth-child(8n+5){animation-delay:2.8s;}
.carte-video:nth-child(8n+6){animation-delay:1.9s;}
.carte-video:nth-child(8n+7){animation-delay:1s;}
.carte-video:nth-child(8n+8){animation-delay:.3s;}
@keyframes carte-flotte{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-12px);} }
.carte-video video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.carte-video .fond{
  position:absolute; inset:0;
  background:
    radial-gradient(120% 90% at 50% 100%, rgba(226,28,20,.16), transparent 60%),
    repeating-linear-gradient(135deg, rgba(245,245,242,.03) 0 2px, transparent 2px 12px);
}
.carte-video .play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:38px; height:38px; border-radius:50%; border:1.5px solid rgba(245,245,242,.5);
  display:flex; align-items:center; justify-content:center; color:var(--blanc-doux);
}
.carte-video .play svg{width:13px; height:13px; margin-left:2px;}
.carte-video .etiquette{
  position:absolute; left:0; right:0; bottom:0; padding:14px 12px;
  background:linear-gradient(0deg, rgba(0,0,0,.82), transparent);
  font-size:.72rem; line-height:1.35;
}
.carte-video .etiquette strong{display:block; font-weight:700;}
.carte-video .etiquette span{display:block; color:var(--blanc-faible); margin-top:2px;}
@media (max-width:700px){
  .carte-video{width:150px;}
  @keyframes carte-flotte{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-7px);} }
}

/* FAQ */
.faq-liste{margin-top:52px; border-top:1px solid var(--ligne);}
.faq-item{border-bottom:1px solid var(--ligne);}
.faq-question{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px;
  background:none; border:none; color:var(--blanc); text-align:left; cursor:pointer;
  padding:22px 0; font-family:var(--font-texte);
}
.faq-question .num{color:var(--blanc-faible); font-size:.85rem; font-weight:600; width:44px; flex-shrink:0;}
.faq-question .texte{flex:1; font-size:1rem; font-weight:600; letter-spacing:.01em; text-transform:uppercase;}
.faq-question .chevron{flex-shrink:0; width:18px; height:18px; transition:transform 260ms var(--ease-out); color:var(--blanc-doux);}
.faq-item[data-ouvert="true"] .chevron{transform:rotate(180deg); color:var(--rouge-vif);}
.faq-item[data-ouvert="true"] .texte{color:var(--rouge-vif);}
.faq-reponse{
  display:grid; grid-template-rows:0fr; transition:grid-template-rows 320ms var(--ease-in-out);
}
.faq-item[data-ouvert="true"] .faq-reponse{grid-template-rows:1fr;}
.faq-reponse-interieur{overflow:hidden;}
.faq-reponse p{padding:0 0 26px 64px; max-width:56ch; color:var(--blanc-doux); font-size:.95rem;}
@media (max-width:640px){ .faq-reponse p{padding-left:0;} .faq-question .texte{font-size:.9rem;} }

/* ==========================================================
   ÉTUDES DE CAS
   ========================================================== */
.cas-bloc{padding:80px 0; border-bottom:1px solid var(--ligne);}
.cas-tete{display:flex; align-items:baseline; gap:16px; flex-wrap:wrap;}
.cas-num{font-family:var(--font-display); color:var(--rouge); font-size:1.1rem;}
.cas-meta{color:var(--blanc-faible); font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600;}
.cas-titre{margin-top:10px; font-size:clamp(2rem, 5.6vw, 3.4rem);}

.cas-corps-grille{margin-top:44px; display:grid; gap:44px;}
@media (min-width:820px){ .cas-corps-grille{grid-template-columns:300px 1fr; align-items:start;} }

.video-vertical{
  position:relative; aspect-ratio:9/16; max-width:320px; border-radius:2px; overflow:hidden;
  background:#141414; border:1px solid var(--ligne);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:14px; padding:20px; text-align:center;
}
.video-vertical .fond{position:absolute; inset:0; background:radial-gradient(120% 70% at 50% 100%, rgba(226,28,20,.18), transparent 65%);}
.video-vertical .play{
  position:relative; width:58px; height:58px; border-radius:50%; border:1.5px solid rgba(245,245,242,.4);
  display:flex; align-items:center; justify-content:center; color:var(--blanc-doux);
  transition:transform 260ms var(--ease-out), border-color 260ms var(--ease-out);
}
@media (hover:hover) and (pointer:fine){
  .video-vertical:hover .play{transform:scale(1.08); border-color:var(--rouge-vif); color:var(--rouge-vif);}
}
.video-vertical .play svg{width:18px; height:18px; margin-left:3px;}
.video-vertical p{position:relative; color:var(--blanc-faible); font-size:.78rem; max-width:24ch;}
.video-vertical .emplacement{position:relative; color:var(--blanc-doux); font-weight:700; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;}
.video-vertical.video-reelle{padding:0; display:block;}
.video-vertical.video-reelle video{width:100%; height:100%; object-fit:cover; display:block; background:#000;}

.chiffres{
  margin-top:0; display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--ligne); border-left:1px solid var(--ligne);
}
@media (min-width:520px){ .chiffres{grid-template-columns:repeat(4,1fr);} }
.chiffre{padding:20px 18px; border-right:1px solid var(--ligne); border-bottom:1px solid var(--ligne);}
.chiffre .valeur{font-family:var(--font-display); font-size:clamp(1.3rem,3vw,1.8rem); color:var(--rouge);}
.chiffre .valeur.blanc{color:var(--blanc);}
.chiffre .label{margin-top:8px; font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; color:var(--blanc-faible); font-weight:600;}

.cas-texte-bloc{margin-top:32px;}
.cas-texte-bloc h3{font-family:var(--font-texte); text-transform:uppercase; font-size:.72rem; letter-spacing:.16em; color:var(--rouge-vif); font-weight:800;}
.cas-texte-bloc p{margin-top:10px; color:var(--blanc-doux); font-size:.96rem;}
.cas-texte-bloc + .cas-texte-bloc{margin-top:26px;}
.credit-tva{margin-top:14px; font-size:.78rem; color:var(--blanc-faible); font-style:italic;}

.temoin-cadre{
  margin-top:30px; border-top:1px dashed var(--ligne); border-bottom:1px dashed var(--ligne); padding:18px 0;
  display:flex; align-items:center; gap:12px; color:var(--blanc-faible); font-size:.88rem; font-style:italic;
}
.temoin-cadre svg{flex-shrink:0; width:18px; height:18px; color:var(--rouge-vif);}

.cas-cta{margin-top:36px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px;}
.cas-cta p{font-family:var(--font-display); font-size:clamp(1.2rem,2.8vw,1.7rem); text-transform:uppercase; max-width:24ch; color:var(--blanc); line-height:1.05;}

/* ==========================================================
   CONTACT
   ========================================================== */
.contact-grille{margin-top:52px; display:grid; gap:52px;}
@media (min-width:900px){ .contact-grille{grid-template-columns:1fr 1fr;} }

.contact-voies{display:flex; flex-direction:column;}
.voie{
  display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 0;
  border-bottom:1px solid var(--ligne); text-decoration:none;
}
.voie:first-child{border-top:1px solid var(--ligne);}
.voie strong{display:block; font-size:1.02rem; font-weight:700;}
.voie span{display:block; color:var(--blanc-faible); font-size:.85rem; margin-top:3px;}
.voie svg{width:16px; height:16px; color:var(--blanc-faible); flex-shrink:0; transition:transform 220ms var(--ease-out), color 220ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){
  .voie:hover svg{transform:translate(3px,-3px); color:var(--rouge-vif);}
}

form.form-contact{display:flex; flex-direction:column; gap:26px;}
.champ{display:flex; flex-direction:column; gap:8px; position:relative;}
.champ label{font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--blanc-faible);}
.champ input, .champ select, .champ textarea{
  background:transparent; border:none; border-bottom:1px solid var(--ligne); color:var(--blanc);
  padding:10px 0; font-family:var(--font-texte); font-size:1rem; transition:border-color 220ms var(--ease-out); border-radius:0;
}
.champ select{background:var(--noir);}
.champ input:focus, .champ select:focus, .champ textarea:focus{border-color:var(--rouge-vif); outline:none;}
.champ textarea{resize:vertical; min-height:90px;}
.form-contact button{
  margin-top:8px; align-self:flex-start; background:none; border:none; padding:0; cursor:pointer;
}
.honeypot{position:absolute; left:-9999px; opacity:0; pointer-events:none;}
.form-note{margin-top:2px; font-size:.78rem; color:var(--blanc-faible);}
.form-succes{display:none; padding:18px 0; border-top:1px solid var(--ligne); color:var(--blanc-doux);}
.form-succes.visible{display:block;}
