/* ==========================================================================
   Pages « carte-decouvrir » : V11 Carte de la ville, V20 Découvrir Craponne, V21 Fiche balade.
   Ce fichier complète le bloc du socle .carte-ville (blocs.css, section « V2 · carte ») sans le modifier,
   et porte les blocs locaux du cadre Figma 228:35544 : Chiffres clés · balade (230:40182), Bulle · À la une
   sur la carte (230:40192). Valeurs : jetons (tokens.css) ; mesures en px du cadre (390 / 1 440).
   ========================================================================== */

/* ---------- Chiffres clés · balade (V11 balade choisie, V21) : 3 colonnes égales, filets haut et bas ---------- */
.chiffres-cles {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--espace-8);
  padding-block: var(--espace-16); border-block: var(--trait-filet) solid var(--couleur-filet);
}
.chiffres-cles__item dd { display: flex; flex-direction: column; gap: var(--espace-4); }
.chiffres-cles__valeur {
  font-weight: 400; font-size: var(--taille-titre-section); line-height: var(--interlignage-titre-section);
  letter-spacing: -0.02em; white-space: nowrap; font-variant-numeric: tabular-nums;
}
/* sous 380 (320) : trois colonnes de 85 px — la valeur se réduit avec la largeur et peut passer à la ligne (jamais de défilement horizontal) */
@media (max-width: 379.98px) { .chiffres-cles__valeur, .carte-ville .chiffres-cles__valeur { font-size: min(var(--taille-titre-section), 7vw); line-height: 1.15; white-space: normal; overflow-wrap: anywhere; } }
.chiffres-cles__precision { font-size: var(--taille-meta); line-height: var(--interlignage-meta); color: var(--couleur-texte-secondaire); }
/* dans le panneau de la carte (c1–4 = 310 px à 1 440) : la taille de 390 */
.carte-ville .chiffres-cles__valeur { font-size: calc(28px * var(--facteur-titre)); line-height: calc(32px * var(--facteur-titre)); }
[data-text="xl"] .carte-ville .chiffres-cles__valeur, [data-text="l"] .carte-ville .chiffres-cles__valeur { white-space: normal; }

/* ---------- V11 · page ---------- */
/* H1 : 390 y 132 (24 sous la rangée de situation, Ville/Titre d'accueil 56/56) ; 1 440 y 152 (40 dessous) */
.page-carte .carte-ville__tete { padding-top: var(--espace-24); }
@media (min-width: 1024px) {
  /* panneau du cadre : x 64–374 (310 px) ; la carte reste c5–12 (x 509–1 440) */
  .page-carte .carte-ville__tete, .page-carte .carte-ville__suite { max-width: 310px; }
  .page-carte .carte-ville__tete { padding-top: var(--espace-40); }
  /* H1 dans le panneau : Commun/Titre de section 48/52 (V11 desktop), sur 2 lignes */
  .page-carte .carte-page__titre { font-size: var(--taille-titre-section); line-height: var(--interlignage-titre-section); letter-spacing: -0.02em; }
  /* titres du panneau (lieu choisi, étapes, liste) : 28/32, comme à 390 (annexe 228:39842) */
  .page-carte .carte-ville__suite .t-titre-section { font-size: calc(28px * var(--facteur-titre)); line-height: calc(32px * var(--facteur-titre)); }
}
/* l'aide de la famille reste lue, le cadre Figma ne l'affiche pas */
.page-carte .carte-ville__aide { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.page-carte .carte-ville__recherche .recherche__libelle { font-weight: 400; font-size: var(--taille-meta); line-height: var(--interlignage-meta); color: var(--couleur-texte-secondaire); }
.page-carte .cv-liste__compte { display: none; }
/* Ligne de liste « Méta » sans icône de type (les repères la portent), flèche à droite */
.page-carte .cv-ligne > .ico:first-child { display: none; }
.page-carte .cv-liste__section .t-titre-ligne { color: var(--couleur-texte); }

/* lieu ou balade choisis : la réponse sous la carte, sans liseré (cadres 230:42219, 230:41518) */
.page-carte .cv-choix { border-top: 0; padding-top: 0; gap: var(--espace-16); }
.page-carte .cv-choix__titre { padding-top: 0; }
.page-carte .cv-choix__tete { align-items: flex-start; margin-top: calc(var(--espace-8) * -1); }
.page-carte .cv-choix__tete .bouton-icone { margin-top: -4px; margin-right: -10px; }
.cd-choix__surtitre { font-size: var(--taille-meta); line-height: var(--interlignage-meta); color: var(--couleur-texte-secondaire); }
.page-carte .cv-choix .etat { padding-bottom: var(--espace-16); border-bottom: var(--trait-filet) solid var(--couleur-filet); margin-bottom: calc(var(--espace-16) * -1); }
.page-carte .cv-choix .etat + .reponse__lignes { border-top: 0; }
.cd-choix__actions { flex-direction: column; align-items: flex-start; gap: var(--espace-16); padding-top: var(--espace-8); }
.cd-choix__liens { display: flex; flex-direction: column; align-items: flex-start; gap: var(--espace-8); }
.cd-choix__liens .lien-fleche { min-height: var(--cible-minimum); }
.page-carte .cv-choix .chiffres-cles + .reponse__lignes { border-top: 0; }

/* Les étapes (n) d'une balade choisie : Ligne de liste numérotée avec méta */
.cd-etapes { display: flex; flex-direction: column; gap: var(--espace-16); }
.cd-etapes:focus { outline: none; }
.cd-etapes .ligne__numero { align-self: flex-start; min-width: 32px; padding-top: 1px; font-size: var(--taille-meta); line-height: var(--interlignage-titre-ligne); color: var(--couleur-texte-secondaire); }
.cd-etapes .ligne__textes .t-meta { display: block; }

/* Bulle · À la une sur la carte (R20, Figma 230:40192) : fond, filet 1 px, pointe de 8 px vers le repère, Fermer 44 */
.cd-bulle {
  --cd-pointe: 50%;
  position: absolute; left: 0; top: 0; z-index: 6; display: flex; flex-direction: column; gap: var(--espace-4);
  width: 342px; max-width: calc(100% - 32px); padding: var(--espace-16);
  background: var(--couleur-fond); color: var(--couleur-texte); border: var(--trait-filet) solid var(--couleur-texte);
}
.cd-bulle:focus { outline: none; }
.cd-bulle:focus-visible { box-shadow: 0 0 0 3px var(--couleur-focus-exterieur, var(--couleur-action)); }
.cd-bulle::before, .cd-bulle::after {   /* la pointe : un carré de 12 tourné, filet sur deux côtés */
  content: ""; position: absolute; left: var(--cd-pointe); width: 12px; height: 12px; margin-left: -6px;
  background: var(--couleur-fond); border: solid var(--couleur-texte); transform: rotate(45deg);
}
.cd-bulle::after { display: none; }
.cd-bulle[data-cote="dessous"]::before { top: -7px; border-width: 1px 0 0 1px; }
.cd-bulle[data-cote="dessus"]::before { bottom: -7px; border-width: 0 1px 1px 0; }
.cd-bulle__tete { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--espace-8); }
.cd-bulle__tete .t-meta { padding-top: 2px; }
.cd-bulle__fermer { margin: -12px -12px 0 0; }
.cd-bulle .t-titre-ligne { margin: var(--espace-4) 0 0; }
.cd-bulle__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espace-8) var(--espace-16); margin-top: var(--espace-16); }
.cd-depart { pointer-events: none; }

/* La porte vers le jeu (R23) */
.porte-jeu { row-gap: var(--espace-24); align-items: center; }
.porte-jeu__image { --ratio: 684 / 385; margin: 0; }
.porte-jeu__textes { display: flex; flex-direction: column; align-items: flex-start; gap: var(--rythme-titre-texte); }
.porte-jeu__textes p:not(.porte-jeu__surtitre) { max-width: 34em; }
.porte-jeu__surtitre { font-size: var(--taille-meta); line-height: var(--interlignage-meta); color: var(--couleur-texte-secondaire); margin-bottom: calc(var(--espace-8) * -1); }
@media (min-width: 1024px) {
  .porte-jeu__textes { padding-left: var(--espace-16); }
}
