/* ── L'encadré des questions ──
   Une question à l'écran, la suivante quand celle-là est répondue. Un
   formulaire de douze champs d'un coup fait fuir ; douze questions posées
   l'une après l'autre se remplissent. Sans script, l'encadré montre toutes
   les questions à la suite et le bouton d'envoi : la page reste utilisable.

   Ces règles servaient d'abord à sur-mesure.html ; elles sont sorties dans
   ce fichier le jour où reserver.html et groupe.html ont eu le même encadré.
   Trois copies d'une même feuille finissent toujours par diverger. */

/* LES DEUX COLONNES FONT LA MÊME LARGEUR, ET LES PUCES SE SERRENT.

   Thomas, le 3 septembre 2026, pour la deuxième fois : « dans les voyages de
   groupe, en bas au niveau des questions, que la liste à points prenne
   beaucoup moins de place — moins d'espaces entre eux — et que la partie de
   gauche avec tous les textes prenne la place à peu près de l'encadré de
   questions à droite ».

   La colonne de gauche valait 1,05 contre 0,95 à droite : l'encadré des
   questions paraissait toujours le plus étroit des deux. C'est moitié-moitié.

   Et le resserrement des puces ne s'appliquait QUE sur téléphone — il était
   écrit dans la requête média du bas de ce fichier. Il vaut partout : dix
   pixels de marge et douze d'écart faisaient flotter quatre lignes qui
   forment une liste. */
.devis { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: start; }
@media (max-width: 980px) { .devis { grid-template-columns: 1fr; gap: 30px; } }

.devis .promesses, .devis .compris { gap: 2px 32px; }
.devis .promesses li, .devis .compris li { padding-top: 4px; padding-bottom: 4px; }
.devis .promesses li::before, .devis .compris li::before { top: 11px; }

/* ── SUR TÉLÉPHONE, LE QUESTIONNAIRE PASSE AVANT LES PUCES ──
   Thomas, 2 septembre 2026 : « mets le questionnaire avant tous les points ».
   La colonne de gauche (surtitre, titre, chapeau, puces, icônes de contact)
   est dissoute dans la grille (`display: contents`) : ses enfants deviennent
   des cases, et `order` les range — le titre et son chapeau d'abord, le
   questionnaire ensuite, les puces et le reste après. Le `gap` de la grille
   tombe à zéro : ce sont les marges des blocs eux-mêmes qui espacent. */
@media (max-width: 980px) {
  .devis { gap: 0; }
  .devis > div:first-child { display: contents; }
  .devis > div:first-child > * { order: 3; }
  /* Seul le chapeau qui suit le titre monte : un second `.band__sub` plus
     bas (« Ces dates ne tombent pas au bon moment ? ») reste avec son bouton. */
  .devis > div:first-child > .band__eyebrow,
  .devis > div:first-child > .band__title,
  .devis > div:first-child > .band__title + .band__sub { order: 1; }
  .devis > div:first-child > .band__title + .band__sub { margin-bottom: 24px; }
  .devis > form { order: 2; margin-bottom: 30px; }
  /* Sur téléphone elles se serrent encore d'un cran : une seule colonne. */
  .devis .promesses, .devis .compris { gap: 0; }
}

/* le bandeau est fixe et haut de 80 px : sans cette marge, une arrivée par
   ancre pose la première question sous le logo */
.encadre { scroll-margin-top: 96px; }
.encadre {
  background: rgba(255,255,255,.07); border: 1px solid rgba(224,163,60,.34);
  border-radius: 24px; padding: 30px 28px 26px; position: relative;
  box-shadow: 0 24px 60px rgba(0,0,0,.28);
}
@media (max-width: 560px) { .encadre { padding: 24px 20px 22px; border-radius: 18px; } }
.encadre__barre { height: 5px; border-radius: 999px; background: rgba(255,255,255,.14); overflow: hidden; margin-bottom: 8px; }
.encadre__barre i { display: block; height: 100%; width: 0; border-radius: 999px; background: var(--accent); transition: width .32s cubic-bezier(.22,.61,.36,1); }
.encadre__compte { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--gris); font-weight: 600; margin: 0 0 20px; }

.q { display: none; border: 0; margin: 0; padding: 0; min-width: 0; }
.q.is-on { display: block; animation: q-entre .28s cubic-bezier(.22,.61,.36,1); }
@keyframes q-entre { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.q > h3 { font-family: var(--titre); font-size: 20px; line-height: 1.3; margin: 0 0 6px; color: #fff; }
.q > p { font-size: 13.5px; line-height: 1.55; color: var(--gris); margin: 0 0 18px; }

/* les réponses toutes faites : de gros boutons, pas des cases à cocher */
.choix { display: grid; gap: 10px; margin: 0 0 4px; }
.choix--deux { grid-template-columns: 1fr 1fr; }
@media (max-width: 480px) { .choix--deux { grid-template-columns: 1fr; } }
.choix button {
  text-align: left; font-family: var(--texte); font-size: 15px; font-weight: 500; color: #fff;
  background: rgba(10,22,52,.5); border: 1px solid rgba(255,255,255,.22);
  border-radius: 12px; padding: 14px 16px; cursor: pointer;
  transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.choix button:hover { border-color: var(--accent); background: rgba(224,163,60,.14); transform: translateX(3px); }
.choix button[aria-pressed="true"] { border-color: var(--accent); background: rgba(224,163,60,.2); }
.choix button small { display: block; font-size: 12.5px; color: var(--gris); margin-top: 3px; font-weight: 400; }

.q label { display: grid; gap: 6px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--gris); margin-bottom: 12px; }
.q input, .q textarea, .q select {
  width: 100%; padding: 13px 14px; border-radius: 10px; border: 1px solid rgba(255,255,255,.25);
  background: rgba(10,22,52,.45); color: #fff; font-family: var(--texte); font-size: 15px;
  text-transform: none; letter-spacing: 0;
}
.q textarea { min-height: 104px; resize: vertical; }
/* l'indicatif et le numéro : deux champs sur une ligne, l'indicatif juste
   assez large pour son contenu. Sous 420 px ils s'empilent. */
.tel { display: grid; grid-template-columns: minmax(0, 150px) 1fr; gap: 12px; }
@media (max-width: 420px) { .tel { grid-template-columns: 1fr; } }
.q select option { color: var(--encre); }

.encadre__pieds { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
.encadre__pieds .btn { flex: 1; cursor: pointer; border: none; font-family: var(--texte); }
.retour {
  background: none; border: 0; color: var(--gris); font-size: 13.5px; font-weight: 600;
  cursor: pointer; font-family: var(--texte); padding: 8px 4px; flex: none;
}
.retour:hover { color: #fff; }
.retour[hidden] { display: none; }
.encadre__note { font-size: 12.5px; color: var(--gris); margin: 14px 0 0; }

/* le récapitulatif, à la fin */
.fini { display: none; }
.fini.is-on { display: block; }
.fini > h3 { font-family: var(--titre); font-size: 20px; line-height: 1.3; margin: 0 0 6px; color: #fff; }
.fini > p { font-size: 13.5px; line-height: 1.55; color: var(--gris); margin: 0; }
.recap { list-style: none; margin: 16px 0 0; padding: 0; }
.recap li { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 14px; }
.recap li:last-child { border-bottom: 0; }
.recap b { flex: none; width: 44%; color: var(--gris); font-weight: 600; font-size: 12.5px; letter-spacing: .05em; text-transform: uppercase; }
.recap span { color: #fff; }

/* ═══════ LE TÉLÉPHONE, ET UN LECTEUR QUI N'A PLUS VINGT ANS ═══════

   Mesuré le 31 août 2026 sur sept pages en 390 px : le texte courant tombait
   entre 12 et 14,8 px selon les blocs — les listes de « ce qu'on voit », les
   cartes de voyage, les réponses du questionnaire, les avis. Le public de
   l'agence est plutôt âgé : à 14 px sur un écran de téléphone, un paragraphe
   se lit à la loupe, et on ne le lit pas.

   Ce bloc ne touche NI le pied de page (12 px voulus par Thomas, décision du
   27 août), NI les surtitres, NI les étiquettes : seulement le texte qu'on
   lit vraiment. Il est écrit ici ET dans le <style> en ligne des pages, comme
   tout le reste de la maquette — une page qui ne porte pas ces classes ne
   remarque rien.

   Les cibles tactiles suivent la même logique : les puces de rubrique et les
   listes de liens faisaient 26 à 37 px de haut, sous les 44 px recommandés.
   Le padding les agrandit, la marge négative rend la place — la mise en page
   ne bouge pas d'un pixel. */
@media (max-width: 767px) {
  .q > p, .fini > p, .carte-art .corps p, .carte-art p,
  .date-card__corps p, .trust p { font-size: 15.5px; line-height: 1.6; }

  .chemin__voir li, .voir li p, .ville__card p, .voyage__corps p,
  .saisons li p, .avis-card p, .etapes li p, .rappel p, .panneau-prix p,
  .chemin__bascule p, .pratique li p, .deux-listes li,
  .recap li { font-size: 16px; line-height: 1.62; }

  .encadre__note, .news__note, .frise__pied, .credit-photo,
  .signes, .ville__drag, .fil, .contact__note { font-size: 14px; }

  .rubriques a, .filtres a, .autres a, .voisines a {
    min-height: 44px; align-items: center;
  }
  .missions p, .manque p, .etapes p, .lectures p, .porte-cli__boite > p,
  .porte-cli__essai, .porte-cli__retour, .voisines a p,
  .grille-liens a p { font-size: 16px; line-height: 1.62; }
  .porte-cli__intro, .aide-porte, .avis-maquette { font-size: 14px; }
  .fil a { padding: 9px 0; margin: -9px 0; }
}
