/* ============================================================================
   CLIMYO V2 — module d'essai pour refonte visuelle
   ----------------------------------------------------------------------------
   Trois composants indépendants : héros asymétrique, cartes de tarifs,
   bandeau de réassurance + pastille d'avis flottante.

   À charger APRÈS styles.css et climyo-plus.css. Tout est préfixé .v2- :
   aucune règle existante n'est modifiée, aucune collision possible.
   Supprimer ce fichier suffit à revenir en arrière.

   Les couleurs viennent du design system (--encre, --froid, --chaud…), avec
   une valeur de repli pour que le module reste testable isolément.
   ============================================================================ */

:root{
  --v2-encre:   var(--encre, #0E2A38);
  --v2-encre70: var(--encre-70, #33505F);
  --v2-encre45: var(--encre-45, #7A94A1);
  --v2-froid:   var(--froid, #2E9BC6);
  --v2-glace:   var(--glace, #F5FAFC);
  --v2-givre:   var(--givre, #E3EFF4);
  --v2-blanc:   var(--blanc, #FFFFFF);

  /* Corail : couleur d'action, volontairement absente du reste du site pour
     que le bouton principal ne se confonde avec aucun autre élément. */
  --v2-corail:       #E8553A;
  --v2-corail-fonce: #C63D25;

  --v2-r:  20px;
  --v2-rl: 28px;
  --v2-ombre:      0 12px 34px rgba(14,42,56,.10);
  --v2-ombre-haut: 0 22px 60px rgba(14,42,56,.16);
}

/* ==========================================================================
   1. HÉROS ASYMÉTRIQUE
   ========================================================================== */
.v2-hero{
  position:relative;
  padding:60px 0 68px;
  overflow:hidden;
  /* Le décor doit exister pour que le flou du bloc de texte ait
     quelque chose à flouter — un backdrop-filter sur du blanc uni ne
     produit rien de visible. */
  background:
    radial-gradient(760px 480px at 82% 18%, rgba(232,131,58,.20), transparent 62%),
    radial-gradient(680px 520px at 8% 82%, rgba(46,155,198,.24), transparent 60%),
    linear-gradient(160deg, var(--v2-givre) 0%, var(--v2-glace) 62%);
}
.v2-hero::after{
  /* Halo décoratif, sous le contenu */
  content:"";position:absolute;right:-120px;top:-120px;
  width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle, rgba(46,155,198,.16), transparent 66%);
  pointer-events:none;
}
.v2-hero-wrap{
  position:relative;z-index:1;
  max-width:1180px;margin:0 auto;padding:0 22px;
  display:grid;grid-template-columns:1.02fr .98fr;gap:48px;
  /* stretch et non center : les deux colonnes partagent la même hauteur,
     leurs bords haut et bas s'alignent. Avec « center », le calculateur
     étant plus haut que le texte, rien ne tombait en face de rien. */
  align-items:stretch;
}

/* --- bloc de texte, effet verre --- */
.v2-verre{
  /* colonne souple : le texte se centre verticalement dans la hauteur
     imposée par le calculateur, sans laisser de vide en bas */
  display:flex;flex-direction:column;justify-content:center;
  background:rgba(255,255,255,.62);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border:1px solid rgba(255,255,255,.75);
  border-radius:var(--v2-rl);
  box-shadow:var(--v2-ombre);
  padding:42px 40px;
}
/* Repli pour les navigateurs sans backdrop-filter : fond plus opaque,
   sinon le texte devient illisible sur le dégradé. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .v2-verre{background:rgba(255,255,255,.93)}
}
.v2-eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  background:rgba(46,155,198,.12);color:var(--v2-froid);
  border-radius:999px;padding:7px 15px;
  font-family:'Figtree',system-ui,sans-serif;
  font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  margin-bottom:20px;
}
.v2-eyebrow .v2-pastille{
  width:7px;height:7px;border-radius:50%;background:var(--v2-froid);
  animation:v2-pulse 2.4s ease-in-out infinite;
}
@keyframes v2-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.72)}}

.v2-hero h1{
  font-family:'Bricolage Grotesque',system-ui,sans-serif;
  font-size:clamp(2.1rem,4.6vw,3.35rem);font-weight:800;
  line-height:1.06;letter-spacing:-.028em;color:var(--v2-encre);
  margin:0 0 18px;
}
.v2-hero h1 em{
  font-style:normal;position:relative;white-space:nowrap;
}
.v2-hero h1 em::after{
  content:"";position:absolute;left:0;right:0;bottom:.06em;height:.34em;
  background:rgba(232,85,58,.20);border-radius:3px;z-index:-1;
}
.v2-hero .v2-lead{
  font-family:'Figtree',system-ui,sans-serif;
  font-size:1.1rem;line-height:1.62;color:var(--v2-encre70);
  max-width:46ch;margin:0 0 30px;
}

/* --- boutons --- */
.v2-cta{display:flex;gap:13px;flex-wrap:wrap;align-items:center}
.v2-btn{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:'Figtree',system-ui,sans-serif;font-size:1.02rem;font-weight:700;
  padding:17px 32px;border-radius:999px;border:none;cursor:pointer;
  text-decoration:none;white-space:nowrap;
  transition:transform .22s cubic-bezier(.34,1.4,.64,1),
             box-shadow .22s ease, background .22s ease;
}
.v2-btn-primaire{
  background:var(--v2-corail);color:#fff;
  box-shadow:0 10px 26px rgba(232,85,58,.34);
}
.v2-btn-primaire:hover{
  background:var(--v2-corail-fonce);
  transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(232,85,58,.42);
}
.v2-btn-primaire:active{transform:translateY(-1px)}
/* Reflet qui balaie le bouton au survol */
.v2-btn-primaire::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.32) 50%,transparent 68%);
  transform:translateX(-120%);
}
.v2-btn-primaire:hover::before{transform:translateX(120%);transition:transform .62s ease}
.v2-btn-primaire .v2-fleche{transition:transform .22s ease}
.v2-btn-primaire:hover .v2-fleche{transform:translateX(4px)}

.v2-btn-secondaire{
  background:transparent;color:var(--v2-encre);
  border:1.6px solid rgba(14,42,56,.16);
}
.v2-btn-secondaire:hover{
  background:var(--v2-blanc);border-color:var(--v2-encre);transform:translateY(-2px);
}
.v2-btn:focus-visible{outline:3px solid var(--v2-encre);outline-offset:3px}

.v2-preuve{
  display:flex;gap:10px 22px;flex-wrap:wrap;margin-top:26px;
  font-family:'Figtree',system-ui,sans-serif;
  font-size:.9rem;font-weight:600;color:var(--v2-encre70);
}
.v2-preuve span{display:flex;align-items:center;gap:8px}
.v2-preuve span::before{content:"✓";color:var(--v2-froid);font-weight:800}

/* --- visuel --- */
.v2-visuel{position:relative}
.v2-visuel img{
  width:100%;height:auto;display:block;
  aspect-ratio:4/5;object-fit:cover;
  border-radius:var(--v2-rl);
  box-shadow:var(--v2-ombre-haut);
}
/* Carte d'information posée sur l'image */
.v2-flottante{
  position:absolute;left:-26px;bottom:34px;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.8);
  border-radius:16px;box-shadow:var(--v2-ombre);
  padding:15px 19px;
  font-family:'Figtree',system-ui,sans-serif;
  display:flex;align-items:center;gap:13px;
}
.v2-flottante .v2-num{
  font-family:'Bricolage Grotesque',system-ui,sans-serif;
  font-size:1.7rem;font-weight:800;color:var(--v2-encre);line-height:1;
}
.v2-flottante .v2-lbl{font-size:.8rem;color:var(--v2-encre45);line-height:1.35;max-width:14ch}

/* --- bascule été / hiver conservée depuis l'ancien héros --- */
.v2-verre .switch{margin-bottom:20px;align-self:flex-start}
/* Le visuel remplit sa colonne et cale sa hauteur sur celle du bloc verre.
   L'illustration SVG sert de visuel par défaut ; un <img> la remplacera
   sans autre changement, les règles ci-dessous couvrent les deux cas. */
.v2-visuel{display:flex;flex-direction:column}
.v2-illu{
  flex:1;display:flex;flex-direction:column;justify-content:center;
  background:var(--v2-blanc);border:1px solid var(--v2-givre);
  border-radius:var(--v2-rl);box-shadow:var(--v2-ombre-haut);overflow:hidden;
}
.v2-illu svg{width:100%;height:auto;display:block}
.v2-illu-legende{
  display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  padding:14px 22px;border-top:1px solid var(--v2-givre);
  font-family:'Figtree',system-ui,sans-serif;font-size:.85rem;color:var(--v2-encre45);
}
.v2-illu-legende b{font-family:'Bricolage Grotesque',system-ui,sans-serif;color:var(--v2-encre)}
.v2-visuel img{height:100%;object-fit:cover}
/* la carte flottante se pose sur le visuel, pas dessous */
.v2-flottante{z-index:2}
body.mode-hiver .v2-hero{
  background:
    radial-gradient(760px 480px at 82% 18%, rgba(232,131,58,.30), transparent 62%),
    radial-gradient(680px 520px at 8% 82%, rgba(232,85,58,.16), transparent 60%),
    linear-gradient(160deg, #F9EDE2 0%, var(--v2-glace) 62%);
  transition:background .7s ease;
}
body.mode-hiver .v2-hero h1 em::after{background:rgba(46,155,198,.20)}

/* --- variante B : le calculateur occupe la colonne de droite --- */
.v2-visuel .cy-calc{box-shadow:var(--v2-ombre-haut)}

@media(max-width:900px){
  .v2-hero{padding:48px 0 56px}
  /* minmax(0,1fr) et non 1fr : sans le 0 explicite, la piste de grille
     garde la largeur minimale « auto » de son contenu. Ici, le <em>
     nowrap du h1 (soulignement sur une seule ligne) est plus large que
     l'écran sur mobile — la grille entière (texte ET visuel) débordait
     du viewport à droite pour lui laisser la place. Bug préexistant,
     indépendant de l'agrandissement du pingouin/fenêtre, révélé par lui. */
  .v2-hero-wrap{grid-template-columns:minmax(0,1fr);gap:34px}
  .v2-verre{padding:30px 24px;border-radius:22px}
  .v2-visuel{order:-1}
  .v2-visuel img{aspect-ratio:16/11}
  .v2-flottante{left:14px;bottom:14px;padding:12px 15px}
  .v2-btn{width:100%;padding:16px 24px}
}

/* ==========================================================================
   2. CARTES DE TARIFS
   ========================================================================== */
.v2-tarifs{padding:82px 0;background:var(--v2-blanc)}
.v2-tarifs-wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.v2-titre{text-align:center;max-width:640px;margin:0 auto 46px;font-family:'Figtree',system-ui,sans-serif}
.v2-titre h2{
  font-family:'Bricolage Grotesque',system-ui,sans-serif;
  font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:800;letter-spacing:-.022em;
  color:var(--v2-encre);margin:10px 0 12px;
}
.v2-titre p{font-size:1.02rem;line-height:1.62;color:var(--v2-encre70);margin:0}

.v2-grille{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));
  gap:24px;align-items:stretch;
}
.v2-carte{
  position:relative;display:flex;flex-direction:column;
  background:var(--v2-blanc);
  border:1px solid var(--v2-givre);
  border-radius:var(--v2-r);
  padding:34px 30px 30px;
  box-shadow:0 2px 10px rgba(14,42,56,.05);
  transition:transform .26s cubic-bezier(.34,1.3,.64,1), box-shadow .26s ease, border-color .26s ease;
}
.v2-carte:hover{transform:translateY(-6px);box-shadow:var(--v2-ombre-haut);border-color:var(--v2-froid)}

.v2-carte.v2-populaire{
  border:2px solid var(--v2-corail);
  box-shadow:0 16px 44px rgba(232,85,58,.14);
}
@media(min-width:900px){ .v2-carte.v2-populaire{transform:scale(1.035)}
  .v2-carte.v2-populaire:hover{transform:scale(1.035) translateY(-6px)} }

.v2-badge{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  background:var(--v2-corail);color:#fff;
  border-radius:999px;padding:7px 18px;white-space:nowrap;
  font-family:'Figtree',system-ui,sans-serif;
  font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  box-shadow:0 6px 18px rgba(232,85,58,.34);
  animation:v2-flotte 3.2s ease-in-out infinite;
}
@keyframes v2-flotte{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-4px)}}
@media(prefers-reduced-motion:reduce){
  .v2-badge,.v2-eyebrow .v2-pastille{animation:none}
  .v2-carte,.v2-btn{transition:none}
}

.v2-carte .v2-piece{
  font-family:'Bricolage Grotesque',system-ui,sans-serif;
  font-size:1.3rem;font-weight:800;color:var(--v2-encre);margin:0 0 4px;
}
.v2-carte .v2-surface{
  font-family:'Figtree',system-ui,sans-serif;
  font-size:.9rem;font-weight:600;color:var(--v2-froid);margin:0 0 22px;
}
.v2-prix{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;margin-bottom:6px}
.v2-prix .v2-avant{
  font-family:'Figtree',system-ui,sans-serif;
  font-size:.86rem;font-weight:600;color:var(--v2-encre45);
}
.v2-prix .v2-montant{
  font-family:'Bricolage Grotesque',system-ui,sans-serif;
  font-size:2.65rem;font-weight:800;letter-spacing:-.03em;color:var(--v2-encre);line-height:1;
}
.v2-carte .v2-sous-prix{
  font-family:'Figtree',system-ui,sans-serif;
  font-size:.82rem;color:var(--v2-encre45);margin:0 0 24px;
}
.v2-carte ul{list-style:none;padding:0;margin:0 0 26px;flex:1}
.v2-carte li{
  position:relative;padding:7px 0 7px 27px;
  font-family:'Figtree',system-ui,sans-serif;
  font-size:.94rem;line-height:1.5;color:var(--v2-encre70);
}
.v2-carte li::before{
  content:"";position:absolute;left:0;top:12px;
  width:17px;height:17px;border-radius:50%;
  background:rgba(46,155,198,.14);
}
.v2-carte li::after{
  content:"";position:absolute;left:5px;top:17px;
  width:7px;height:4px;border-left:2px solid var(--v2-froid);border-bottom:2px solid var(--v2-froid);
  transform:rotate(-45deg);
}
.v2-carte .v2-btn{width:100%;font-size:.98rem;padding:15px 22px}
.v2-carte:not(.v2-populaire) .v2-btn{
  background:var(--v2-encre);color:#fff;box-shadow:none;
}
.v2-carte:not(.v2-populaire) .v2-btn:hover{
  background:#08202C;transform:translateY(-2px);box-shadow:0 12px 28px rgba(14,42,56,.24);
}
.v2-note{
  text-align:center;margin:34px auto 0;max-width:74ch;
  font-family:'Figtree',system-ui,sans-serif;
  font-size:.82rem;line-height:1.6;color:var(--v2-encre45);
}

/* ==========================================================================
   3. BANDEAU DE RÉASSURANCE
   ========================================================================== */
.v2-bandeau{
  background:var(--v2-blanc);
  border-top:1px solid var(--v2-givre);border-bottom:1px solid var(--v2-givre);
  padding:26px 0;
}
.v2-bandeau-wrap{
  max-width:1180px;margin:0 auto;padding:0 22px;
  display:flex;align-items:center;justify-content:center;
  gap:20px 46px;flex-wrap:wrap;
}
.v2-cert{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Figtree',system-ui,sans-serif;
  font-size:.94rem;font-weight:700;color:var(--v2-encre);
  opacity:.6;filter:grayscale(1);
  transition:opacity .26s ease, filter .26s ease, transform .26s ease;
  text-decoration:none;
}
.v2-cert:hover{opacity:1;filter:grayscale(0);transform:translateY(-2px)}
.v2-cert img{height:34px;width:auto;display:block}
/* Variante sans logo : pastille typographique, utilisable tout de suite */
.v2-cert .v2-sigle{
  display:grid;place-items:center;
  width:38px;height:38px;border-radius:10px;
  background:var(--v2-glace);border:1px solid var(--v2-givre);
  font-family:'Bricolage Grotesque',system-ui,sans-serif;
  font-size:.74rem;font-weight:800;color:var(--v2-encre);letter-spacing:-.02em;
}
.v2-cert small{display:block;font-size:.72rem;font-weight:600;color:var(--v2-encre45)}
@media(max-width:700px){
  .v2-bandeau-wrap{gap:16px 26px}
  .v2-cert{font-size:.86rem}
}

/* --- pastille d'avis flottante --- */
.v2-avis{
  position:fixed;left:18px;bottom:18px;z-index:80;
  display:flex;align-items:center;gap:11px;
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid var(--v2-givre);
  border-radius:999px;padding:9px 17px 9px 11px;
  box-shadow:0 8px 26px rgba(14,42,56,.16);
  font-family:'Figtree',system-ui,sans-serif;
  text-decoration:none;color:inherit;
  animation:v2-entre .5s ease .9s both;
  transition:transform .22s ease, box-shadow .22s ease;
}
.v2-avis:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(14,42,56,.22)}
@keyframes v2-entre{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.v2-avis .v2-etoiles{color:#F5A623;font-size:.94rem;letter-spacing:1px;line-height:1}
.v2-avis .v2-note-avis{
  font-family:'Bricolage Grotesque',system-ui,sans-serif;
  font-size:1.05rem;font-weight:800;color:var(--v2-encre);line-height:1;
}
.v2-avis .v2-src{font-size:.72rem;color:var(--v2-encre45);line-height:1.3}
.v2-avis .v2-fermer{
  border:none;background:transparent;cursor:pointer;
  color:var(--v2-encre45);font-size:1rem;line-height:1;padding:0 0 0 4px;
}
.v2-avis .v2-fermer:hover{color:var(--v2-encre)}

/* La barre d'action mobile occupe déjà le bas de l'écran : on remonte
   la pastille au-dessus, sinon elle passe dessous et devient incliquable. */
@media(max-width:820px){
  .v2-avis{bottom:88px;left:12px;padding:7px 14px 7px 9px}
  .v2-avis .v2-src{display:none}
}
@media(prefers-reduced-motion:reduce){.v2-avis{animation:none}}
