:root{
  --cap-bg:#f6f8f7;
  --cap-ice:#eef3f4;
  --cap-ink:#0b1218;
  --cap-deep:#1f2a32;
  --cap-accent:#ff5a3c;
  --cap-steel:#7fa4b8;

  --cap-shadow:0 26px 70px rgba(9,15,22,.10);
  --cap-shadow2:0 14px 36px rgba(9,15,22,.08);
  --cap-shadowHover:0 34px 90px rgba(9,15,22,.14);

  --cap-r:26px;
  --cap-max:1180px;
  --cap-pad:22px;

  /* réglée en JS selon la vraie hauteur du header */
  --cap-header-safe:96px;

  /* tokens premium */
  --cap-border:rgba(31,42,50,.10);
  --cap-border2:rgba(31,42,50,.14);
  --cap-focus:rgba(255,90,60,.55);
  --cap-glass:rgba(255,255,255,.30);
  --cap-glassB:rgba(255,255,255,.55);
  --cap-glassC:rgba(255,255,255,.88);
}

@media (max-width:900px){ :root{ --cap-pad:16px; } }
@media (max-width:600px){ :root{ --cap-pad:12px; } }

/* =========================
   Base wrapper + container
   ========================= */
.cap-wrap{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
@supports not (overflow:clip){
  .cap-wrap{ overflow-x:hidden; }
}
.cap-container{
  max-width:var(--cap-max);
  margin:0 auto;
  padding:0 var(--cap-pad);
}

/* =========================
   Animations / motion
   ========================= */
@keyframes cap-revealUp{
  from{ opacity:0; transform:translateY(20px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes cap-pulse{
  0%,100%{ transform:scale(1); }
  50%{ transform:scale(1.02); }
}

/* Reveal piloté par JS (.cap-js + .in) */
.cap-js .cap-reveal{ opacity:0; transform:translateY(20px); }
.cap-js .cap-reveal.in{
  opacity:1;
  transform:translateY(0);
  animation:cap-revealUp .65s ease-out both;
  animation-delay:.12s;
}

/* Fallback si JS absent */
.cap-reveal{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  .cap-js .cap-reveal{ opacity:1 !important; transform:none !important; animation:none !important; }

  .cap-heroBg video{
    transition:none !important;
    transform:none !important;
  }

  .cap-btn,.cap-card,.cap-step,.cap-cap,.cap-tile,.cap-proof,
  .cap-sigLinks a,.cap-subnavLinks a{
    transition:none !important;
    animation:none !important;
  }
}

/* =========================
   Typo
   ========================= */
.cap-kicker{
  margin:0 0 10px;
  font-size:11px;
  font-weight:950;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:rgba(127,164,184,.95);
}

.cap-h2{
  margin:0 0 12px;
  font-size:30px;
  font-weight:950;
  letter-spacing:-.015em;
  line-height:1.16;
  position:relative;
  padding-left:14px;
}
.cap-h2::before{
  content:"";
  position:absolute;
  left:0;
  top:.26em;
  width:4px;
  height:1.05em;
  border-radius:3px;
  background:var(--cap-accent);
}
@media (max-width:600px){
  .cap-h2{ font-size:24px; padding-left:10px; }
}

.cap-p{
  margin:0 0 18px;
  color:rgba(31,42,50,.86);
  font-size:16.6px;
  line-height:1.9;
  max-width:980px;
}
@media (max-width:600px){
  .cap-p{ font-size:15px; margin-bottom:16px; }
}

/* =========================
   Focus / accessibilité
   ========================= */
.cap-btn:focus-visible,
.cap-sigLinks a:focus-visible,
.cap-subnavLinks a:focus-visible{
  outline:2px solid var(--cap-focus);
  outline-offset:3px;
}

/* =========================
   Boutons
   ========================= */
.cap-cta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:14px;
}
.cap-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 18px;
  border-radius:999px;
  font-size:13.5px;
  font-weight:950;
  letter-spacing:.01em;
  text-decoration:none;
  white-space:nowrap;

  border:1px solid rgba(31,42,50,.16);
  background:rgba(255,255,255,.94);
  color:var(--cap-deep);

  box-shadow:var(--cap-shadow2);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, filter .22s ease;
  min-height:44px;
}
.cap-btn.primary{
  border-color:rgba(255,90,60,.95);
  background:var(--cap-accent);
  color:rgba(11,18,24,.92);
}
@media (hover:hover) and (pointer:fine){
  .cap-btn:hover{
    transform:translateY(-3px) scale(1.02);
    box-shadow:var(--cap-shadowHover);
    border-color:rgba(255,90,60,.40);
    filter:brightness(1.01);
  }
  .cap-btn.primary:hover{
    transform:translateY(-3px) scale(1.03);
    box-shadow:0 34px 90px rgba(9,15,22,.18);
  }
}
@media (max-width:420px){
  .cap-btn{ width:100%; }
  .cap-cta{ gap:10px; }
}

/* =========================
   HERO (CINEMA PREMIUM + SAFARI VIDEO)
   - vidéo plein écran + overlay premium
   - bouton fallback si Safari refuse autoplay (piloté par JS)
   ========================= */

.cap-hero{
  position:relative;

  min-height:100svh;
  min-height:100dvh;

  padding:calc(var(--cap-header-safe) + 18px) 0 84px;

  display:flex;
  align-items:flex-start;
  overflow:hidden;
  isolation:isolate;
  background:var(--cap-bg);
}

@media (max-width:900px){
  .cap-hero{ padding:calc(var(--cap-header-safe) + 14px) 0 68px; }
}
@media (max-width:600px){
  .cap-hero{ padding:calc(var(--cap-header-safe) + 12px) 0 56px; }
}

/* Background */
.cap-heroBg{
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:-3;
  background:#000;
}

/* Overlay cinema */
.cap-heroBg::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(1400px 820px at 50% 40%,
      rgba(11,18,24,.46) 0%,
      rgba(11,18,24,0) 62%),
    radial-gradient(1400px 820px at 50% 120%,
      rgba(246,248,247,1) 0%,
      rgba(246,248,247,0) 58%),
    linear-gradient(180deg,
      rgba(11,18,24,.64) 0%,
      rgba(11,18,24,.22) 46%,
      rgba(246,248,247,1) 100%);
  pointer-events:none;
}

/* Video */
.cap-heroVideo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;

  transform:scale(1.08);
  will-change:transform;
  transition:transform .35s ease;
  filter:contrast(1.03) saturate(1.02);
}

/* Hover léger desktop (optionnel) */
@media (hover:hover) and (pointer:fine){
  .cap-hero:hover .cap-heroVideo{ transform:scale(1.11); }
}

/* Glow */
.cap-heroGlow{
  position:absolute;
  inset:-140px;
  background:
    radial-gradient(980px 560px at 10% 14%, rgba(255,90,60,.18) 0%, rgba(255,90,60,0) 66%),
    radial-gradient(980px 560px at 90% 16%, rgba(127,164,184,.22) 0%, rgba(127,164,184,0) 66%),
    radial-gradient(1200px 740px at 50% 10%, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 60%);
  z-index:-2;
  pointer-events:none;
}

/* Panel */
.cap-heroPanel{
  width:min(1040px,100%);
  margin:0 auto;
  margin-top:clamp(8px, 5.5vh, 80px);

  border-radius:calc(var(--cap-r) + 2px);
  background:var(--cap-glass);
  border:1px solid rgba(255,255,255,.42);

  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);

  box-shadow:0 28px 96px rgba(0,0,0,.24);

  padding:24px 24px 20px;
  position:relative;
  overflow:hidden;
  transition:backdrop-filter .3s ease;
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .cap-heroPanel{ background:rgba(255,255,255,.42); }
}
@media (hover:hover) and (pointer:fine){
  .cap-heroPanel:hover{ backdrop-filter:blur(20px); }
}

@media (max-width:900px){
  .cap-heroPanel{
    padding:20px 16px;
    border-radius:20px;
    margin-top:clamp(8px, 4.5vh, 58px);
  }
}
@media (max-width:600px){
  .cap-heroPanel{
    padding:18px 14px;
    border-radius:16px;
    margin-top:clamp(6px, 3.6vh, 44px);
  }
}

/* Safari autoplay fallback button (affiché par JS si besoin) */
.cap-videoPlay{
  position:absolute;
  left:50%;
  top:18%;
  transform:translateX(-50%);
  z-index:2;

  padding:12px 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.55);
  background:rgba(11,18,24,.45);
  color:#fff;
  font-weight:900;
  letter-spacing:.02em;
  cursor:pointer;

  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);

  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.cap-videoPlay.is-on{
  opacity:1;
  pointer-events:auto;
  transform:translateX(-50%) translateY(-2px);
}
@media (hover:hover) and (pointer:fine){
  .cap-videoPlay.is-on:hover{
    transform:translateX(-50%) translateY(-4px);
  }
}

/* Ribbon row */
.cap-ribbonRow{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:8px;
  position:relative;
  z-index:1;
}
.cap-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(31,42,50,.18);
  background:var(--cap-glassB);
  color:rgba(11,18,24,.88);
  font-size:12px;
  font-weight:950;
  letter-spacing:.10em;
}
.cap-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--cap-accent);
  box-shadow:0 0 0 6px rgba(255,90,60,.16);
}

/* H1 */
.cap-h1{
  margin:0 0 10px;
  font-size:clamp(30px,7vw,60px);
  font-weight:980;
  letter-spacing:-.03em;
  line-height:1.02;
  color:rgba(11,18,24,.92);
  text-shadow:0 18px 60px rgba(0,0,0,.08);
  position:relative;
  z-index:1;
}
.cap-h1::after{
  content:"";
  display:block;
  width:min(260px,65%);
  height:4px;
  margin-top:10px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(255,90,60,.95), rgba(127,164,184,.65), rgba(255,255,255,0));
  opacity:.9;
}

/* Lead */
.cap-lead{
  margin:0 0 10px;
  color:rgba(11,18,24,.82);
  font-size:16.8px;
  line-height:1.85;
  max-width:900px;
  position:relative;
  z-index:1;
}
@media (max-width:600px){
  .cap-lead{ font-size:15px; }
}

/* Proofs */
.cap-proofGrid{
  margin:12px 0 0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:10px;
  position:relative;
  z-index:1;
}
@media (max-width:380px){
  .cap-proofGrid{ grid-template-columns:1fr 1fr; }
}
.cap-proof{
  border-radius:16px;
  padding:12px;
  background:rgba(255,255,255,.50);
  border:1px solid rgba(31,42,50,.12);
  box-shadow:var(--cap-shadow2);
  overflow:hidden;
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.cap-proof b{
  display:block;
  color:rgba(31,42,50,.70);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  margin-bottom:6px;
  font-weight:950;
}
.cap-proof span{
  display:block;
  color:rgba(11,18,24,.90);
  font-weight:980;
  font-size:14.6px;
  line-height:1.25;
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* =========================
   SUBNAV sticky
   ========================= */
.cap-subnav{
  position:sticky;
  top:var(--cap-header-safe);
  z-index:40;
  background:rgba(246,248,247,.92);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(31,42,50,.10);
}
.cap-subnavInner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
}
.cap-subnavBrand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:950;
  letter-spacing:.10em;
  text-transform:uppercase;
  font-size:12px;
  color:rgba(31,42,50,.92);
  white-space:nowrap;
  flex:0 0 auto;
}
.cap-subnavLinks{
  display:block;
  flex:1 1 auto;
  min-width:0;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  white-space:nowrap;
  padding:2px 2px 4px;
  touch-action:pan-x;
  scrollbar-width:none;
}
.cap-subnavLinks::-webkit-scrollbar{ height:0; }
.cap-subnavLinks a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 11px;
  border-radius:999px;
  font-size:12.5px;
  font-weight:950;
  text-decoration:none;
  color:rgba(31,42,50,.88);
  border:1px solid rgba(31,42,50,.14);
  background:rgba(255,255,255,.88);
  white-space:nowrap;
  margin-right:8px;
  vertical-align:middle;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.cap-subnavLinks a:last-child{ margin-right:0; }
@media (hover:hover) and (pointer:fine){
  .cap-subnavLinks a:hover{
    transform:translateY(-1px);
    box-shadow:var(--cap-shadow2);
    border-color:rgba(255,90,60,.40);
  }
}
.cap-subnavLinks a.is-on{
  border-color:rgba(255,90,60,.42);
  color:rgba(31,42,50,.92);
}
@media (max-width:600px){
  .cap-subnavInner{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    padding:10px 0 12px;
  }
  .cap-subnavLinks{ width:100%; }
}

/* =========================
   Sections
   ========================= */
.cap-sec{
  padding:86px 0;
  position:relative;
  background:#fff;
}
.cap-sec.alt{
  background:
    radial-gradient(1100px 520px at 50% 0%, rgba(127,164,184,.14) 0%, rgba(127,164,184,0) 70%),
    linear-gradient(180deg, var(--cap-ice) 0%, var(--cap-bg) 100%);
}
.cap-sec + .cap-sec::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(31,42,50,.10), transparent);
}
@media (max-width:900px){ .cap-sec{ padding:64px 0; } }
@media (max-width:600px){ .cap-sec{ padding:48px 0; } }

/* =========================
   Cards & layouts
   ========================= */
.cap-card{
  border-radius:var(--cap-r);
  background:
    radial-gradient(900px 520px at 18% 18%, rgba(127,164,184,.14) 0%, rgba(127,164,184,0) 60%),
    rgba(255,255,255,.94);
  border:1px solid rgba(31,42,50,.10);
  box-shadow:var(--cap-shadow);
  padding:22px 20px 18px;
  position:relative;
  overflow:hidden;
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.cap-card::after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius:inherit;
  background:linear-gradient(135deg, rgba(255,90,60,.10), rgba(127,164,184,.10), rgba(255,255,255,0));
  opacity:.35;
  pointer-events:none;
  mix-blend-mode:normal;
}
.cap-card > *{ position:relative; z-index:1; }

.cap-card h3{
  margin:0 0 12px;
  font-size:18px;
  font-weight:950;
  letter-spacing:-.01em;
  padding-left:12px;
  position:relative;
}
.cap-card h3::before{
  content:"";
  position:absolute;
  left:0;
  top:.28em;
  width:3px;
  height:1.05em;
  border-radius:3px;
  background:rgba(127,164,184,.75);
}

.cap-list{
  margin:10px 0 0;
  padding-left:18px;
  color:rgba(31,42,50,.84);
  font-size:15.6px;
  line-height:1.82;
}
.cap-list li{ margin:8px 0; }

.cap-two{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
  align-items:start;
}
@media (max-width:900px){
  .cap-two{ grid-template-columns:1fr; }
}

.cap-grid3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  align-items:stretch;
}
@media (max-width:900px){
  .cap-grid3{ grid-template-columns:1fr 1fr; }
}
@media (max-width:520px){
  .cap-grid3{ grid-template-columns:1fr; }
}

/* =========================
   Timeline
   ========================= */
.cap-timeline{
  margin-top:20px;
  display:grid;
  gap:22px;
}
@media (max-width:900px){
  .cap-timeline{ gap:14px; }
}

.cap-step{
  border-radius:22px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(31,42,50,.10);
  box-shadow:var(--cap-shadow2);
  padding:18px 18px 16px;
  position:relative;
  overflow:hidden;
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.cap-step::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    radial-gradient(700px 420px at 15% 30%, rgba(255,90,60,.10) 0%, rgba(255,90,60,0) 60%),
    radial-gradient(700px 420px at 85% 10%, rgba(127,164,184,.12) 0%, rgba(127,164,184,0) 58%);
  opacity:.9;
  pointer-events:none;
}
.cap-stepTop{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  position:relative;
}
.cap-stepYear{
  font-weight:950;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(255,90,60,.92);
}
.cap-stepTitle{
  margin:6px 0 8px;
  font-size:16.5px;
  font-weight:950;
  letter-spacing:-.01em;
  color:var(--cap-deep);
}
.cap-stepText{
  margin:0;
  color:rgba(31,42,50,.84);
  font-size:14.8px;
  line-height:1.72;
}

/* Icônes */
.cap-ico{
  width:34px;
  height:34px;
  border-radius:12px;
  background:rgba(11,18,24,.05);
  border:1px solid rgba(31,42,50,.10);
  display:grid;
  place-items:center;
  flex:0 0 auto;
  position:relative;
  color:rgba(31,42,50,.86);
}
.cap-ico svg{ width:18px; height:18px; fill:none; }
.cap-ico path{ stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* =========================
   Capabilities
   ========================= */
.cap-capGrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
@media (max-width:900px){
  .cap-capGrid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:520px){
  .cap-capGrid{ grid-template-columns:1fr; }
}

.cap-cap{
  border-radius:22px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(31,42,50,.10);
  box-shadow:var(--cap-shadow2);
  padding:16px 16px 14px;
  position:relative;
  overflow:hidden;
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.cap-cap::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    radial-gradient(700px 420px at 15% 30%, rgba(255,90,60,.09) 0%, rgba(255,90,60,0) 60%),
    radial-gradient(700px 420px at 85% 10%, rgba(127,164,184,.11) 0%, rgba(127,164,184,0) 58%);
  opacity:.85;
  pointer-events:none;
}
.cap-cap > *{ position:relative; z-index:1; }
.cap-cap h4{
  margin:10px 0 8px;
  font-size:16px;
  font-weight:950;
  letter-spacing:-.01em;
}
.cap-cap p{
  margin:0;
  color:rgba(31,42,50,.82);
  font-size:14.7px;
  line-height:1.7;
}

/* =========================
   Tiles (Science)
   ========================= */
.cap-tiles{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}
@media (max-width:900px){
  .cap-tiles{ grid-template-columns:1fr; }
}

.cap-tile{
  border-radius:22px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(31,42,50,.10);
  box-shadow:var(--cap-shadow2);
  padding:16px 16px 14px;
  position:relative;
  overflow:hidden;
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.cap-tile > *{ position:relative; z-index:1; }

.cap-badges{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:8px 0 10px;
}
.cap-badge{
  font-size:11px;
  font-weight:950;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(31,42,50,.72);
  border:1px solid rgba(31,42,50,.14);
  background:rgba(255,255,255,.86);
  padding:7px 9px;
  border-radius:999px;
}

/* =========================
   Film + band
   ========================= */
.cap-film,
.cap-band{
  width:min(1040px,100%);
  margin:0 auto;
  border-radius:var(--cap-r);
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
  border:1px solid rgba(31,42,50,.12);
  box-shadow:var(--cap-shadow);
  padding:28px;
}
.cap-filmGrid{
  display:grid;
  grid-template-columns:1fr 340px;
  gap:18px;
  align-items:center;
}
@media (max-width:900px){
  .cap-filmGrid{ grid-template-columns:1fr; }
}

.cap-poster{
  width:340px;
  max-width:100%;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(31,42,50,.12);
  box-shadow:var(--cap-shadow2);
  margin-left:auto;
  background:#fff;
}
@media (max-width:900px){
  .cap-poster{ margin:0 auto; }
}
.cap-poster img{
  width:100%;
  height:auto;
  object-fit:cover;
  display:block;
}

.cap-bandGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  align-items:center;
}
@media (max-width:900px){
  .cap-bandGrid{ grid-template-columns:1fr; }
}

.cap-bandTitle{
  margin:0 0 10px;
  font-size:26px;
  font-weight:950;
  letter-spacing:-.01em;
}
.cap-bandText{
  margin:0;
  color:rgba(31,42,50,.86);
  line-height:1.85;
  font-size:16.2px;
}
.cap-bandBtns{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
@media (max-width:900px){
  .cap-bandBtns{ justify-content:flex-start; }
}
@media (max-width:420px){
  .cap-bandBtns .cap-btn{ width:100%; }
}

/* =========================
   Mini vidéo latérale
   ========================= */
.cap-miniVideoCard{ margin-top:8px; }
.cap-miniVideo{
  position:relative;
  width:100%;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(31,42,50,.18);
  background:#000;
  box-shadow:var(--cap-shadow2);
}
.cap-miniVideo::before{
  content:"";
  display:block;
  padding-top:130%;
}
.cap-miniVideo video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* =========================
   Hover/3D unifié
   ========================= */
@media (hover:hover) and (pointer:fine){
  .cap-card,.cap-step,.cap-cap,.cap-tile,.cap-proof,
  .cap-subnavLinks a{
    transform:translateZ(0);
    will-change:transform;
  }

  .cap-card:hover,.cap-step:hover,.cap-cap:hover,.cap-tile:hover{
    transform:translateY(-4px);
    box-shadow:var(--cap-shadowHover);
    border-color:rgba(255,90,60,.22);
  }

  .cap-proof:hover{
    animation:cap-pulse 1.2s infinite;
    box-shadow:var(--cap-shadowHover);
    border-color:rgba(255,90,60,.22);
  }
}