/* ==========================================================================
   HERO — écrit en mobile-first : les valeurs de base sont celles du
   téléphone, elles grandissent ensuite. L'objectif du premier écran est
   qu'on y lise le titre, la promesse ET qu'on voie un CTA sans scroller.
   ========================================================================== */
.hero {
  position: relative;
  overflow: hidden;
  padding: 104px 0 56px;
  background: linear-gradient(178deg, #123356 0%, #0D2645 62%, #0B2140 100%);
}

/* ---- Décor : trois plans, aucun ne porte d'information ---- */
.hero__deco { position: absolute; inset: 0; pointer-events: none; }
.hero__aurora {
  position: absolute; inset: -20% -30% auto -30%; height: 90%;
  background:
    radial-gradient(50% 60% at 22% 30%, rgba(45,110,190,.55), transparent 70%),
    radial-gradient(45% 55% at 78% 18%, rgba(28,78,145,.5), transparent 72%);
  filter: blur(60px);
  animation: aurora 26s ease-in-out infinite;
}
@keyframes aurora {
  0%,100% { transform: translate3d(0,0,0) scale(1); }
  50%     { transform: translate3d(3%,4%,0) scale(1.08); }
}
.hero__grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 58px 58px;
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, #000, transparent 78%);
  mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, #000, transparent 78%);
}
.hero__arc {
  position: absolute; top: 50%; right: -46%; width: 118vw; max-width: 900px;
  transform: translateY(-50%); opacity: .5;
  animation: turn 90s linear infinite;
}
@keyframes turn { to { transform: translateY(-50%) rotate(360deg); } }

.hero__grid-in { position: relative; z-index: 2; display: grid; gap: 44px; }

/* ---- Texte ---- */
.hero__eyebrow {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .16em;
  text-transform: uppercase; color: rgba(255,255,255,.62);
  padding: 7px 14px 7px 11px; border-radius: var(--r-pill);
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
}
.hero__eyebrow i {
  width: 6px; height: 6px; border-radius: 50%; background: var(--em-400);
  box-shadow: 0 0 0 3px rgba(46,216,154,.2);
  animation: live 2.4s ease-in-out infinite;
}
@keyframes live { 0%,100%{opacity:1;} 50%{opacity:.35;} }

.hero__title {
  margin: 18px 0 0;
  font-size: 35px; line-height: 1.08; letter-spacing: -.026em;
  color: #fff;
}
.hero__title em {
  display: block; font-style: italic; font-weight: 500;
  color: var(--or-400);
}

.hero__lede {
  margin-top: 16px;
  font-size: 15.5px; line-height: 1.6;
  color: rgba(255,255,255,.72);
  max-width: 46ch;
}

.hero__cta { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; margin-top: 26px; }
.hero__cta .btn { width: 100%; justify-content: center; padding: 15px 26px; font-size: 15px; }
.hero__link {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13.5px; font-weight: 600; color: rgba(255,255,255,.6);
  padding-bottom: 2px; border-bottom: 1px solid rgba(255,255,255,.18);
  transition: color var(--d-fast), border-color var(--d-fast);
}
.hero__link .i { width: 14px; height: 14px; transition: transform var(--d-fast); }
.hero__link:hover { color: #fff; border-color: var(--or-400); }
.hero__link:hover .i { transform: translateX(4px); }

/* ---- Preuve chiffrée : une ligne, pas quatre boîtes ---- */
.hero__proof {
  display: flex; align-items: center; gap: 14px;
  margin-top: 30px; padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.hero__stat b {
  display: block; font-family: var(--f-display); font-weight: 600;
  font-size: 24px; line-height: 1; color: #fff; margin-bottom: 5px;
}
.hero__stat span { font-size: 11px; line-height: 1.35; color: rgba(255,255,255,.5); }
.hero__sep { width: 1px; align-self: stretch; background: rgba(255,255,255,.12); }

/* ---- Visuel : le dossier ---- */
.hero__vis { position: relative; padding: 30px 4px 34px; }
.dossier {
  position: relative; z-index: 2;
  background: linear-gradient(158deg, rgba(255,255,255,.13), rgba(255,255,255,.05));
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--r-lg);
  padding: 18px;
  box-shadow: 0 24px 56px rgba(4,16,34,.5), inset 0 1px 0 rgba(255,255,255,.2);
  backdrop-filter: blur(16px);
}
.dossier__top { display: flex; align-items: center; justify-content: space-between; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.1); }
.dossier__id { font-family: var(--f-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.45); }
.dossier__state {
  font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--or-300); background: rgba(234,135,25,.16); border: 1px solid rgba(234,135,25,.3);
  padding: 4px 10px; border-radius: var(--r-pill);
}
.dossier__who { display: flex; align-items: center; gap: 12px; padding: 16px 0; }
.dossier__av {
  width: 40px; height: 40px; border-radius: 12px; flex-shrink: 0;
  background: var(--or-500);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 13px; color: #fff;
}
.dossier__who b { display: block; font-size: 14px; color: #fff; }
.dossier__who > div > span { font-size: 11.5px; color: rgba(255,255,255,.5); }

.dossier__lines { display: flex; flex-direction: column; }
.dossier__lines li {
  display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 10px;
  padding: 10px 0; border-top: 1px solid rgba(255,255,255,.07);
  font-size: 12.3px; color: rgba(255,255,255,.72);
}
.dossier__lines b { font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; min-width: 44px; text-align: right; }
.dot { width: 7px; height: 7px; border-radius: 50%; display: block; }
.dot--ok  { background: var(--em-400); box-shadow: 0 0 0 3px rgba(46,216,154,.16); }
.dot--mid { background: var(--or-400); box-shadow: 0 0 0 3px rgba(247,163,62,.16); }
.dot--low { background: var(--co-400); box-shadow: 0 0 0 3px rgba(242,112,92,.16); }
.dossier__lines li:nth-child(1) b,
.dossier__lines li:nth-child(2) b { color: var(--em-400); }
.dossier__lines li:nth-child(3) b { color: var(--or-400); }
.dossier__lines li:nth-child(4) b { color: var(--co-400); }

.dossier__foot { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.1); }
.dossier__foot > span { display: block; font-size: 11px; color: rgba(255,255,255,.5); margin-bottom: 9px; }
.dossier__bar { height: 6px; border-radius: 99px; background: rgba(255,255,255,.1); overflow: hidden; }
.dossier__bar i {
  display: block; height: 100%; width: 0; border-radius: 99px;
  background: var(--or-500);
  transition: width 1.5s var(--ez-out) .5s;
}
.hero__vis.on .dossier__bar i { width: var(--w, 78%); }

/* ---- Badges qui chevauchent la carte : la profondeur vient de là ---- */
.float {
  position: absolute; z-index: 3;
  display: flex; align-items: center; gap: 10px;
  padding: 10px 13px; border-radius: var(--r-md);
  background: rgba(13, 38, 69, .92);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 14px 34px rgba(3,12,26,.55);
  backdrop-filter: blur(10px);
}
.float .i { width: 17px; height: 17px; padding: 5px; border-radius: 50%; box-sizing: content-box; stroke-width: 2.4; }
.float b { display: block; font-size: 11.5px; color: #fff; line-height: 1.2; }
.float span { font-size: 10px; color: rgba(255,255,255,.5); }
.float--a { left: 14px; bottom: -16px; animation: bobA 5s ease-in-out infinite; }
.float--a .i { color: var(--em-400); background: rgba(46,216,154,.16); }
.float--b { right: 14px; top: -16px; animation: bobB 6.5s ease-in-out infinite; }
.float--b .i { color: var(--or-400); background: rgba(247,163,62,.16); }
@keyframes bobA { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-9px);} }
@keyframes bobB { 0%,100%{transform:translateY(0);} 50%{transform:translateY(8px);} }

.hero__next {
  display: none;
  position: absolute; bottom: 26px; left: 50%; z-index: 2;
  width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.16);
  align-items: center; justify-content: center; color: rgba(255,255,255,.5);
  animation: bob 2.6s ease-in-out infinite;
}
.hero__next .i { width: 16px; height: 16px; }
@keyframes bob { 0%,100%{transform:translate(-50%,0);} 50%{transform:translate(-50%,8px);} }

/* ---- Petites tablettes ---- */
@media (min-width: 560px) {
  .hero { padding: 116px 0 70px; }
  .hero__title { font-size: 42px; }
  .hero__lede { font-size: 16.5px; }
  .hero__cta { flex-direction: row; align-items: center; gap: 22px; }
  .hero__cta .btn { width: auto; }
  .hero__stat b { font-size: 28px; }
  .hero__proof { gap: 22px; }
  .float--a { left: -18px; }
  .float--b { right: -18px; }
}

/* ---- Desktop ---- */
@media (min-width: 1000px) {
  .hero { padding: 150px 0 120px; min-height: 100vh; display: flex; align-items: center; }
  .hero__grid-in { grid-template-columns: 1.06fr .94fr; gap: 70px; align-items: center; width: 100%; }
  .hero__title { font-size: clamp(48px, 4.7vw, 66px); }
  .hero__lede { font-size: 17.5px; margin-top: 20px; }
  .hero__proof { margin-top: 40px; padding-top: 30px; gap: 30px; }
  .hero__stat b { font-size: 32px; }
  .hero__stat span { font-size: 11.5px; }
  .hero__next { display: flex; }
  .dossier { padding: 24px; }
  .dossier__lines li { font-size: 13px; padding: 12px 0; }
  .float--a { left: -34px; bottom: -20px; }
  .float--b { right: -34px; top: -20px; }
}

/* ==========================================================================
   AJUSTEMENTS MOBILE DU HERO
   Ce fichier est chargé APRÈS style.css : les correctifs mobiles des
   éléments du hero doivent donc figurer ici, sinon ils sont écrasés.
   ========================================================================== */
@media (max-width: 640px) {
  .hero__eyebrow { font-size: 12px; padding: 8px 15px 8px 12px; }
  .hero__stat span { font-size: 12px; line-height: 1.4; }
  .dossier__id, .dossier__state { font-size: 12px; }
  .dossier__lines li { font-size: 13.5px; }
  .dossier__lines b { font-size: 12px; min-width: 52px; }
  .dossier__who > div > span { font-size: 12.5px; }
  .dossier__foot > span { font-size: 12px; }
  .float b { font-size: 12.5px; }
  .float span { font-size: 11.5px; }
  .hero__pts li { font-size: 14px; }
  .hero__link { min-height: 44px; display: inline-flex; align-items: center; }
}
