/* Zedback — page d'accueil (version 3, grande photo).
 * Fichier généré lors du nettoyage du 12/10/2026 : à modifier ici, plus dans le HTML. */
/* Header */

  @media (max-width: 640px) {
    .establishment-card { flex-basis: 220px; }
  }

  /* Hero */

  /* Discovery grid */

  .section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 18px;
  }

  .section-head h2 { font-size: 22px; }

  /* Petit filet coloré en accent en haut à gauche pour marquer chaque carte */

  /* Establishments row */

  .establishment-card {
    flex: 0 0 260px;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px;
    background: var(--paper);
  }

  /* Reviews */

  /* Section des 3 piliers Vécu / Dit / Vérifié */
  /* ================= Accueil v2 =================
   * Règles ajoutées après les anciennes : elles les remplacent là où elles
   * se recoupent. Une seule largeur de contenu (1100 px, comme le pied de page) pour toute la page,
   * pour que les blocs s'alignent les uns sous les autres.
   */
  nav { align-items: center; }

  .bande { padding: 48px 28px; }
  .bande.blanc { background: #fff; }
  .wrap { max-width: 1100px; margin: 0 auto; }
  .section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; margin-bottom: 20px; }
  .section-head h2 { font-size: 26px; }
  .section-head .sous-titre { color: var(--muted); font-size: 14px; margin-top: 4px; }
  .etoiles { color: var(--gold); letter-spacing: 1px; }

  /* ---- Haut de page : texte à gauche, photo à droite ---- */
  .hero-photo { position: relative; margin: 0; }
  .hero-photo img {
    width: 100%; height: auto; aspect-ratio: 5 / 4; object-fit: cover;
    border-radius: 18px; display: block; box-shadow: 0 18px 40px rgba(18,23,26,.14);
  }

  /* ---- Destinations : une grande carte, quatre petites, toutes en photo ---- */
  @keyframes squelette { from { background-position: 100% 0; } to { background-position: -100% 0; } }

  /* ---- Avis récents ---- */

  /* ---- Établissements : carrousel avec flèches ---- */
  .establishment-card {
    flex: 0 0 270px; scroll-snap-align: start; padding: 0; overflow: hidden;
    border: 1px solid var(--line); border-radius: 16px; background: #fff; display: flex; flex-direction: column;
    transition: transform .2s ease, box-shadow .2s ease;
  }
  .establishment-card:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,.07); }
  .fleche {
    position: absolute; top: 38%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%;
    border: 1px solid var(--line); background: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.1);
    font-size: 20px; line-height: 1; cursor: pointer; color: var(--ink); z-index: 2;
  }
  .fleche.gauche { left: -14px; } .fleche.droite { right: -14px; }
  .fleche[disabled] { opacity: 0; pointer-events: none; }

  /* ---- Espace partenaire ---- */
  .partenaires-accueil { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
  .partenaire-accueil { display: grid; grid-template-columns: 220px 1fr; border: 1px dashed #CFC6B4; border-radius: 16px; overflow: hidden; background: #FFFDF8; }
  .partenaire-accueil img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 150px; }
  .partenaire-accueil .corps { padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; justify-content: center; }
  .partenaire-accueil .badge-partenaire { align-self: flex-start; background: rgba(18,23,26,.85); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; }
  .partenaire-accueil .titre { font-family: "Bricolage Grotesque", Georgia, sans-serif; font-size: 18px; font-weight: 700; color: var(--heading); }
  .partenaire-accueil .texte { font-size: 14px; color: var(--muted); line-height: 1.5; }
  .partenaire-accueil .lien { font-size: 13px; font-weight: 600; color: var(--accent-texte); }
  @media (max-width: 640px) { .partenaire-accueil { grid-template-columns: 1fr; } .partenaire-accueil img { aspect-ratio: 16/9; min-height: 0; } }

  /* ---- Le Carnet ---- */

  @media (max-width: 900px) {
    .hero-photo img { aspect-ratio: 16 / 10; }
    .fleche { display: none; }
  }
  @media (max-width: 640px) {
    .bande { padding: 32px 16px; }
    .section-head h2 { font-size: 22px; }
    .establishment-card { flex-basis: 240px; }
  }
  /* ================= Accueil v3 : grande photo, octobre 2026 =================
   * Règles ajoutées après les anciennes et préfixées par body.v3 : elles ne
   * touchent que la page d'accueil. En-tête transparent posé sur la photo,
   * qui passe au noir encre (comme sur tout le site) dès qu'on fait défiler la page.
   */
  body.v3 { background: #fff; }
  .v3-wrap { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
  .v3-eyebrow { font-size: 12.5px; letter-spacing: .3em; text-transform: uppercase; font-weight: 600; }
  .v3-btn { display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; font-weight: 600; font-size: 14px; padding: 10px 18px; border: 1.5px solid transparent; text-decoration: none; cursor: pointer; transition: background .2s, color .2s, transform .15s; }
  .v3-btn:active { transform: scale(.98); }
  .v3-btn-accent { background: var(--accent); color: #fff; }
  /* Texte blanc sur l'orange de la charte (choix de marque, façon easyJet). */
  .v3-btn-accent:hover { background: #E5631A; }

  /* En-tête */
  body.v3 header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: transparent; border-bottom: 1px solid transparent; padding: 16px 32px; transition: background .25s, box-shadow .25s, border-color .25s, top .2s; }
  body.v3 header .logo img { height: 28px; }
  body.v3 header .logo .logo-fonce { display: none; }
  body.v3 header nav a { color: #fff; opacity: .95; font-weight: 500; font-size: 14.5px; }
  body.v3 header nav a[style] { border-radius: 999px !important; padding: 8px 16px !important; }
  body.v3 header .btn-login { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.8); border-radius: 999px; padding: 8px 18px; }
  body.v3 header .btn-login:hover { background: #fff; color: var(--ink); }
  body.v3 header .burger-toggle { color: #fff !important; border-color: rgba(255,255,255,.5); }
  body.v3 header.solid { background: #12171A; border-bottom-color: rgba(255,255,255,.10); box-shadow: 0 6px 24px rgba(0,0,0,.18); padding-top: 12px; padding-bottom: 12px; }
  body.v3 header.solid nav a:not([style]) { color: rgba(255,255,255,.82); }
  body.v3 header nav a:not([style]):hover { color: var(--accent); opacity: 1; }
  body.v3 header.solid .btn-login { background: #fff; color: var(--ink); border-color: #fff; }
  body.v3 header.solid .btn-login:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
  body.v3 header.solid .burger-toggle { color: #fff !important; border-color: rgba(255,255,255,.28); }
  body.v3 button, body.v3 input { font-family: inherit; }

  /* Grande photo */
  .v3-hero { position: relative; height: min(88vh, 780px); min-height: 560px; overflow: hidden; color: #fff; }
  .v3-hero .hero-photo { position: absolute; inset: 0; margin: 0; }
  .v3-hero .hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; box-shadow: none; aspect-ratio: auto; }
  .v3-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,14,16,.55) 0%, rgba(10,14,16,.18) 28%, rgba(10,14,16,.30) 55%, rgba(10,14,16,.66) 100%); }
  .v3-hero-c { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 96px 24px 120px; }
  .v3-hero .v3-eyebrow { color: #fff; opacity: .92; margin-bottom: 18px; }
  .v3-hero h1 { font-family: "Bricolage Grotesque", Georgia, sans-serif; font-weight: 800; color: #fff; font-size: clamp(38px, 5.6vw, 74px); line-height: 1.03; letter-spacing: -.02em; max-width: 15ch; text-shadow: 0 2px 30px rgba(0,0,0,.25); }
  .v3-hero h1.long { font-size: clamp(30px, 3.6vw, 50px); max-width: 24ch; line-height: 1.1; }
  .v3-hero h1 em { font-style: normal; text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: .09em; text-underline-offset: .12em; text-decoration-skip-ink: none; }
  .v3-chapo { margin-top: 18px; font-size: clamp(16px, 1.5vw, 19px); max-width: 48ch; opacity: .96; text-shadow: 0 1px 14px rgba(0,0,0,.45); }
  .v3-credit { position: absolute; right: 28px; bottom: 86px; z-index: 2; font-size: 12px; opacity: .8; letter-spacing: .04em; }

  /* Recherche à cheval sur la photo */
  .v3-search-zone { position: relative; z-index: 5; margin: -46px auto 0; padding: 0 32px; max-width: 944px; }
  .v3-search { display: flex; align-items: center; background: #fff; border-radius: 999px; box-shadow: 0 18px 50px rgba(18,23,26,.16), 0 2px 6px rgba(18,23,26,.06); padding: 8px 8px 8px 26px; }
  .v3-loupe { flex: none; margin-right: 14px; }
  .v3-search label { display: flex; flex-direction: column; flex: 1; min-width: 0; }
  .v3-search label span { font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
  .v3-search input { border: 0; outline: 0; font: inherit; font-size: 17px; color: var(--ink); padding: 3px 0; background: transparent; width: 100%; }
  .v3-search input::placeholder { color: #9A958E; }
  .v3-search .v3-btn { padding: 16px 28px; font-size: 15.5px; }
  .v3-chips { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 18px; align-items: center; }
  .v3-chips .lbl { font-size: 13.5px; color: var(--muted); }
  .v3-chip { white-space: nowrap; font-size: 13.5px; padding: 7px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: #fff; text-decoration: none; transition: border-color .2s, color .2s; }
  .v3-chip:hover { border-color: var(--accent); color: var(--accent-texte); }

  /* Engagements */
  .v3-trust { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 1000px; margin: 56px auto 0; padding: 0 32px; }
  .v3-trust div { display: flex; gap: 14px; align-items: flex-start; }
  .v3-trust svg { flex: none; color: var(--accent-texte); }
  .v3-trust b { display: block; font-size: 15.5px; }
  .v3-trust small { color: var(--muted); font-size: 14px; line-height: 1.45; display: block; margin-top: 2px; }

  /* Sections */
  .v3-s { padding: 84px 0 0; }
  .v3-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
  .v3-head .v3-eyebrow { color: var(--accent-texte); margin-bottom: 10px; display: block; font-size: 12px; }
  .v3-head h2 { font-family: "Bricolage Grotesque", Georgia, sans-serif; font-size: clamp(26px, 3vw, 38px); line-height: 1.1; letter-spacing: -.015em; font-weight: 800; color: var(--ink); }
  .v3-head p { color: var(--muted); margin-top: 8px; max-width: 56ch; font-size: 15px; }
  .v3-more { font-weight: 600; font-size: 14.5px; color: var(--ink); white-space: nowrap; border-bottom: 2px solid var(--accent); padding: 10px 0 2px; display: inline-block; text-decoration: none; }
  .v3-arrows { display: flex; gap: 8px; }
  .v3-arrows button, body.v3 .v3-arrows .fleche { position: static; transform: none; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: #fff; cursor: pointer; font-size: 18px; color: var(--ink); display: inline-flex; align-items: center; justify-content: center; box-shadow: none; }
  .v3-arrows button:disabled { opacity: .35; cursor: default; }

  /* Coups de cœur */
  .v3-une { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
  .v3-une.trois { grid-template-columns: 1.25fr 1fr 1fr; }
  .v3-carte { position: relative; border-radius: 14px; overflow: hidden; aspect-ratio: 4 / 5; color: #fff; isolation: isolate; text-decoration: none; display: block; background: #EEF0F1; }
  .v3-une.trois .v3-carte:first-child { aspect-ratio: auto; }
  .v3-carte img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
  .v3-carte:hover img { transform: scale(1.05); }
  .v3-carte::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.80) 100%); z-index: 1; }
  .v3-carte .v3-txt { position: absolute; left: 24px; right: 24px; bottom: 24px; z-index: 2; display: block; }
  .v3-k { display: block; font-size: 11.5px; letter-spacing: .22em; text-transform: uppercase; font-weight: 700; opacity: .9; }
  .v3-titre { display: block; font-family: "Bricolage Grotesque", Georgia, sans-serif; font-size: 25px; line-height: 1.12; margin: 8px 0 14px; font-weight: 800; }
  .v3-une.trois .v3-carte:first-child .v3-titre { font-size: 32px; }
  .v3-go { display: inline-block; font-size: 13px; font-weight: 600; border: 1.5px solid rgba(255,255,255,.85); border-radius: 999px; padding: 7px 14px; }
  .v3-go .etoiles { color: var(--accent); }

  /* Rails (destinations, hôtels) */
  .v3-rail { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 20px) / 4); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 6px; }
  .v3-rail::-webkit-scrollbar { display: none; }
  .v3-rail > * { scroll-snap-align: start; }
  .v3-dest { position: relative; border-radius: 14px; overflow: hidden; aspect-ratio: 3 / 4; color: #fff; display: block; text-decoration: none; background: #EEF0F1; }
  .v3-dest img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
  .v3-dest:hover img { transform: scale(1.05); }
  .v3-dest::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.70)); }
  .v3-dest .v3-txt { position: absolute; left: 18px; right: 18px; bottom: 18px; z-index: 2; }
  .v3-dest small { display: block; font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; opacity: .9; font-weight: 600; }
  .v3-dest b { display: block; font-family: "Bricolage Grotesque", Georgia, sans-serif; font-size: 23px; line-height: 1.1; margin-top: 3px; }
  .v3-dest span span, .v3-dest .v3-txt > span { font-size: 13px; opacity: .92; }
  .v3-dest .etoiles { color: var(--accent); }

  .v3-hotel { display: block; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fff; text-decoration: none; color: var(--ink); transition: box-shadow .25s, transform .25s; }
  .v3-hotel:hover { box-shadow: 0 14px 36px rgba(18,23,26,.10); transform: translateY(-2px); }
  .v3-hotel .ph { aspect-ratio: 4 / 3; overflow: hidden; position: relative; background: var(--paper); display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 14px; }
  .v3-hotel .ph img { width: 100%; height: 100%; object-fit: cover; }
  .v3-hotel .score { position: absolute; left: 12px; top: 12px; background: #fff; color: var(--ink); font-weight: 700; font-size: 13.5px; border-radius: 999px; padding: 5px 10px; box-shadow: 0 2px 10px rgba(0,0,0,.12); }
  .v3-hotel .score i { font-style: normal; color: var(--accent-texte); }
  .v3-hotel .bd { padding: 16px 18px 18px; display: block; }
  .v3-hotel .bd small { color: var(--muted); font-size: 13px; display: block; }
  .v3-hotel .bd b { display: block; font-size: 16.5px; line-height: 1.3; margin: 3px 0 8px; }
  .v3-hotel .bd .cta { font-size: 13.5px; color: var(--accent-texte); font-weight: 600; }

  /* Derniers avis */
  .v3-reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .v3-rv { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 26px 26px 22px; display: flex; flex-direction: column; }
  .v3-rv .etoiles { color: var(--accent-texte); letter-spacing: 2px; font-size: 16px; }
  .v3-rv h3 { font-size: 17px; margin: 10px 0 6px; font-family: inherit; }
  .v3-rv p { color: #33393D; font-size: 15px; }
  .v3-rv .v3-rv-texte { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; line-clamp: 5; overflow: hidden; }
  .v3-rv.ouvert .v3-rv-texte { display: block; -webkit-line-clamp: unset; line-clamp: none; overflow: visible; }
  .v3-rv-plus { align-self: flex-start; background: none; border: 0; padding: 6px 0 0; font: inherit; font-size: 14px; font-weight: 600; color: var(--accent-texte); cursor: pointer; }
  .v3-rv-plus:hover { text-decoration: underline; }
  .v3-rv .who { padding-top: 14px; border-top: 1px solid var(--line); font-size: 13.5px; color: var(--muted); }
  .v3-rv .who-esp { flex: 1; min-height: 18px; }
  .v3-rv .who b { color: var(--ink); }
  .v3-rv .who a { color: var(--accent-texte); font-weight: 600; text-decoration: none; display: inline-block; margin-top: 0; padding: 8px 0 2px; }
  .v3-rv.appel { background: #fff; border: 1.5px solid var(--accent); align-items: flex-start; justify-content: center; }

  /* Le Carnet en magazine */
  .v3-mag { display: grid; grid-template-columns: 1.35fr 1fr; gap: 24px; }
  .v3-mag .big { position: relative; border-radius: 14px; overflow: hidden; min-height: 460px; color: #fff; text-decoration: none; display: block; background: #EEF0F1; }
  .v3-mag .big img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .v3-mag .big::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.75)); }
  .v3-mag .big .v3-txt { position: absolute; left: 28px; right: 28px; bottom: 26px; z-index: 2; }
  .v3-mag .big .v3-titre { font-size: 30px; margin: 8px 0; }
  .v3-mag .big p { opacity: .9; max-width: 52ch; }
  .v3-mag .side { display: grid; gap: 28px; align-content: center; }
  .v3-mag .sm { display: grid; grid-template-columns: 42% 1fr; gap: 18px; align-items: center; text-decoration: none; color: var(--ink); }
  .v3-mag .sm .ph { border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 3; background: #EEF0F1; }
  .v3-mag .sm img { width: 100%; height: 100%; object-fit: cover; }
  .v3-mag .sm .v3-k { color: var(--accent-texte); opacity: 1; }
  .v3-mag .sm b { display: block; font-size: 17.5px; line-height: 1.3; margin-top: 6px; }

  /* Partenaire */
  body.v3 #bande-partenaire { background: #fff; padding: 64px 0 0; }

  /* Explorer Zedback : aligne sur les autres sections de l'accueil */
  body.v3 #bande-explorer { padding: 84px 0 64px; }
  body.v3 #bande-explorer .wrap { max-width: 1200px; padding: 0 32px; }
  body.v3 #bande-explorer .section-head h2 { font-size: clamp(26px, 3vw, 38px) !important; font-weight: 800; letter-spacing: -.015em; line-height: 1.1; padding-top: 0 !important; }
  body.v3 #bande-explorer .section-head h2::before { content: "Tout Zedback"; position: static; display: block; width: auto; height: auto; background: none; border-radius: 0; color: var(--accent-texte); font: 600 12px/1.4 "Instrument Sans", sans-serif; letter-spacing: .3em; text-transform: uppercase; margin-bottom: 10px; }
  body.v3 #bande-explorer .section-head .sous-titre { font-size: 15px !important; color: var(--muted) !important; }

  /* Appel à donner son avis */
  /* Bande d'appel : un bloc noir arrondi aligné sur le contenu, plus de rupture bord à bord. */
  .v3-cta { margin: 96px auto 0; max-width: 1200px; padding: 0 32px; background: none; }
  .v3-cta .v3-wrap { display: flex; align-items: center; justify-content: space-between; gap: 30px; max-width: none; background: #12171A; border-radius: 20px; padding: 56px; }
  .v3-cta h2 { font-family: "Bricolage Grotesque", Georgia, sans-serif; font-size: clamp(26px, 3vw, 36px); line-height: 1.12; max-width: 24ch; color: #fff; }
  .v3-cta p { color: rgba(255,255,255,.72); margin-top: 8px; }
  .v3-cta .v3-btn { padding: 15px 26px; font-size: 15.5px; }

  @media (max-width: 1024px) {
    body.v3 header nav { display: none; }
    body.v3 header .burger-toggle { display: inline-flex; }
    .v3-rail { grid-auto-columns: calc((100% - 2 * 16px) / 3); gap: 16px; }
    .v3-une.trois { grid-template-columns: 1fr 1fr; }
    .v3-une.trois .v3-carte:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
  }
  @media (max-width: 720px) {
    .v3-wrap { padding: 0 18px; }
    body.v3 header { padding: 12px 18px; }
    body.v3 header.solid { padding-top: 10px; padding-bottom: 10px; }
    body.v3 header .btn-login, body.v3 header .btn-login:hover { background: transparent url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M4%2021c0-4%203.6-6.5%208-6.5s8%202.5%208%206.5%22%2F%3E%3C%2Fsvg%3E") center/22px no-repeat; border: 1.5px solid rgba(255,255,255,.6); border-radius: 8px; padding: 0; }
    body.v3 header.solid .btn-login, body.v3 header.solid .btn-login:hover { background: #fff url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2312171A%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M4%2021c0-4%203.6-6.5%208-6.5s8%202.5%208%206.5%22%2F%3E%3C%2Fsvg%3E") center/22px no-repeat; border-color: var(--line); }
    .v3-hero { height: 76svh; min-height: 520px; }
    .v3-hero-c { padding: 80px 20px 96px; }
    .v3-hero .v3-eyebrow { font-size: 11px; letter-spacing: .24em; }
    .v3-credit { right: 16px; bottom: 62px; font-size: 11px; }
    .v3-search-zone { margin-top: -34px; padding: 0 14px; }
    .v3-search { border-radius: 18px; padding: 8px 8px 8px 16px; }
    .v3-search label span { display: none; }
    .v3-search input { font-size: 16px; }
    .v3-search .v3-btn { padding: 14px 16px; }
    .v3-search .v3-btn .t { display: none; }
    .v3-chips { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; scrollbar-width: none; padding: 0 2px 4px; }
    .v3-chips::-webkit-scrollbar { display: none; }
    .v3-chips .lbl { display: none; }
    .v3-chip { flex: none; }
    .v3-trust { grid-template-columns: 1fr; gap: 16px; margin-top: 36px; padding: 0 18px; }
    .v3-s { padding-top: 60px; }
    .v3-head { align-items: flex-start; flex-direction: column; gap: 10px; margin-bottom: 20px; }
    .v3-arrows { display: none; }
    .v3-une, .v3-une.trois { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 -18px; padding: 0 18px; gap: 14px; }
    .v3-une::-webkit-scrollbar { display: none; }
    .v3-une .v3-carte, .v3-une.trois .v3-carte:first-child { aspect-ratio: 4 / 3; grid-column: auto; scroll-snap-align: start; }
    .v3-une .v3-carte .v3-txt { left: 16px; right: 16px; bottom: 16px; }
    .v3-une.trois .v3-carte:first-child .v3-titre, .v3-titre { font-size: 20px; margin: 4px 0 10px; }
    .v3-k { font-size: 11px; }
    .v3-une .v3-titre { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
    body.v3 #bande-explorer { padding: 60px 0 48px; }
    body.v3 #bande-explorer .wrap { padding: 0 18px; }
    .v3-go { font-size: 12.5px; padding: 6px 12px; }
    .v3-rail { grid-auto-columns: 42%; gap: 12px; margin: 0 -18px; padding: 0 18px 6px; }
    .v3-dest { aspect-ratio: 4 / 5; border-radius: 12px; }
    .v3-dest .v3-txt { left: 12px; right: 12px; bottom: 12px; }
    .v3-dest small { font-size: 10.5px; letter-spacing: .12em; }
    .v3-dest b { font-size: 18px; }
    .v3-dest span span, .v3-dest .v3-txt > span { font-size: 11.5px; }
    .v3-rail.hotels { grid-auto-columns: 78%; }
    .v3-une, .v3-rail, .v3-reviews { scroll-padding-inline: 18px; }
    .v3-reviews { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 86%; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -18px; padding: 0 18px; gap: 14px; scrollbar-width: none; }
    .v3-reviews::-webkit-scrollbar { display: none; }
    .v3-rv { scroll-snap-align: start; }
    .v3-mag { grid-template-columns: 1fr; }
    .v3-mag .big { min-height: 0; aspect-ratio: 4 / 3; }
    .v3-mag .big .v3-txt { left: 16px; right: 16px; bottom: 16px; }
    .v3-mag .big .v3-titre { font-size: 20px; margin: 4px 0 6px; }
    .v3-mag .big p { font-size: 14px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .v3-cta { margin-top: 64px; padding: 0 18px; }
    .v3-cta .v3-wrap { flex-direction: column; align-items: flex-start; padding: 36px 24px; border-radius: 16px; }
    .v3-cta .v3-btn { width: 100%; justify-content: center; }
  }
    #bande-explorer .explorer-filtre { display: flex; align-items: center; gap: 10px; max-width: 460px; margin: 0 0 18px; padding: 11px 14px; background: #fff; border: 1px solid #D9DBDD; border-radius: 12px; color: #6B7176; cursor: text; }
    #bande-explorer .explorer-filtre[hidden] { display: none; }
    #bande-explorer .explorer-filtre:focus-within { border-color: #FF751F; box-shadow: 0 0 0 3px rgba(255,117,31,.15); }
    #bande-explorer .explorer-filtre input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: 15px; color: #12171A; }
    #bande-explorer .explorer-compte { flex: 0 0 auto; font-size: 13px; font-weight: 600; color: #6B7176; white-space: nowrap; }
    #bande-explorer .explorer-rubriques { border-top: 1px solid #E8E8E8; }
    #bande-explorer .explorer-rubrique { border-bottom: 1px solid #E8E8E8; }
    #bande-explorer .explorer-rubrique[hidden] { display: none; }
    #bande-explorer .explorer-rubrique summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 2px; font-family: "Bricolage Grotesque", Georgia, sans-serif; font-size: 18px; font-weight: 700; color: #12171A; }
    #bande-explorer .explorer-rubrique summary::-webkit-details-marker { display: none; }
    #bande-explorer .explorer-rubrique summary .nb { display: inline-flex; align-items: center; gap: 8px; font-family: "Instrument Sans", sans-serif; font-size: 14px; font-weight: 600; color: #4B5156; flex: 0 0 auto; }
    #bande-explorer .explorer-rubrique summary .chevron { transition: transform .2s ease; flex: 0 0 auto; }
    #bande-explorer .explorer-rubrique[open] summary .chevron { transform: rotate(180deg); }
    #bande-explorer .explorer-rubrique summary:hover { color: var(--accent-texte); }
    #bande-explorer ul { list-style: none; margin: 0; padding: 0; }
    #bande-explorer li[hidden], #bande-explorer .explorer-groupe[hidden] { display: none !important; }
    #bande-explorer li a { color: #12171A; text-decoration: none; font-size: 14.5px; line-height: 1.35; }
    #bande-explorer li a:hover, #bande-explorer .explorer-tete:hover { color: var(--accent-texte); text-decoration: underline; text-underline-offset: 3px; }
    #bande-explorer .explorer-colonnes { columns: 5 150px; column-gap: 28px; padding: 2px 2px 22px; }
    #bande-explorer .explorer-colonnes li { break-inside: avoid; padding: 5px 0; }
    #bande-explorer .explorer-groupes { columns: 3 280px; column-gap: 36px; padding: 4px 2px 10px; }
    #bande-explorer .explorer-groupes.large { columns: 2 360px; }
    #bande-explorer .explorer-groupe { break-inside: avoid; margin: 0 0 18px; }
    #bande-explorer .explorer-tete { display: inline-block; margin-bottom: 4px; padding-left: 10px; border-left: 3px solid #FF751F; font-weight: 700; font-size: 15px; line-height: 1.2; color: #12171A; text-decoration: none; }
    #bande-explorer .explorer-ligne { display: flex; flex-wrap: wrap; gap: 0 18px; }
    #bande-explorer .explorer-ligne li a { display: inline-block; padding: 3px 0; color: #33393D; }
    #bande-explorer .explorer-pile li { padding: 3px 0; }
    #bande-explorer .explorer-pile li a { color: #33393D; }
    #bande-explorer .explorer-vide { margin: 18px 2px 0; font-size: 14.5px; color: #33393D; }
    #bande-explorer .explorer-vide a { color: var(--accent-texte); font-weight: 600; }
    #bande-explorer .explorer-note { margin-top: 20px; font-size: 13px; color: #4B5156; max-width: 760px; }
    @media (max-width: 520px) {
      #bande-explorer .explorer-filtre { max-width: none; }
      #bande-explorer .explorer-rubrique summary { padding: 15px 2px; font-size: 17px; }
      #bande-explorer .explorer-colonnes { columns: 2; column-gap: 20px; }
      #bande-explorer .explorer-colonnes li { padding: 7px 0; }
      #bande-explorer .explorer-ligne li a { padding: 6px 0; }
      #bande-explorer .explorer-pile li { padding: 6px 0; }
    }

/* Pied de page aligné sur le contenu de l'accueil. */
@media (min-width: 721px) { body.v3 .footer-grid, body.v3 .footer-bottom { max-width: 1136px; } }

/* Grands écrans (1600 px et plus) : le contenu s'élargit et les rangées montrent une carte de plus,
   au lieu de laisser de grandes marges blanches. */
@media (min-width: 1600px) {
  .v3-wrap, .v3-cta, body.v3 #bande-explorer .wrap { max-width: 1440px; }
  .v3-search-zone { max-width: 1040px; }
  .v3-trust { max-width: 1160px; }
  .v3-rail { grid-auto-columns: calc((100% - 4 * 20px) / 5); }
  .v3-hero h1 { font-size: 80px; }
  body.v3 .footer-grid, body.v3 .footer-bottom { max-width: 1376px; }
}

/* Titres percutants et points de défilement (octobre 2026, inspiration easyJet), sur ordinateur et mobile.
   Bebas Neue : police libre (licence SIL OFL), hébergée sur zedback.com. */
@font-face { font-family: "Bebas Neue"; font-style: normal; font-weight: 400; font-display: swap; src: url("/bebas-neue-400.woff2") format("woff2"); }
.v3-head { flex-direction: column; align-items: center; text-align: center; position: relative; }
.v3-head > div:first-child { width: 100%; }
.v3-head p { margin-left: auto; margin-right: auto; }
.v3-head h2, body.v3 #bande-explorer .section-head h2 { font-family: "Bebas Neue", "Bricolage Grotesque", Georgia, sans-serif !important; font-weight: 400; text-transform: uppercase; font-size: clamp(40px, 4.4vw, 60px) !important; line-height: 1; letter-spacing: .01em; }
.v3-arrows { position: absolute; right: 0; bottom: 0; width: auto; }
body.v3 #bande-explorer .section-head { text-align: center; justify-content: center; }
body.v3 #bande-explorer .section-head > div { width: 100%; }
body.v3 #bande-explorer .section-head .sous-titre { margin-left: auto !important; margin-right: auto !important; }
.v3-s .v3-wrap > p { text-align: center; }
.v3-points { display: flex; justify-content: center; gap: 7px; margin-top: 18px; }
.v3-points[hidden] { display: none; }
.v3-points span { width: 8px; height: 8px; border-radius: 50%; background: #D5D8DB; transition: background .2s, transform .2s; }
.v3-points span.on { background: var(--accent); transform: scale(1.2); }
@media (max-width: 720px) {
  .v3-head { align-items: center; }
  .v3-head h2, body.v3 #bande-explorer .section-head h2 { font-size: 40px !important; }
  .v3-points { margin-top: 16px; }
}

/* Suggestions de la barre de recherche (suggestions.js) */
.v3-search { position: relative; }
.zb-sugg { position: absolute; left: 0; right: 0; top: calc(100% + 8px); margin: 0; padding: 8px; list-style: none; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 18px 50px rgba(18,23,26,.16); max-height: 430px; overflow-y: auto; z-index: 20; text-align: left; }
.zb-sugg li a { display: flex; flex-direction: column; gap: 1px; padding: 10px 14px; border-radius: 12px; color: var(--ink); text-decoration: none; }
.zb-sugg li.actif a, .zb-sugg li a:hover { background: #FFF1E8; }
.zb-sugg-n { font-size: 15.5px; }
.zb-sugg-n b { font-weight: 700; color: var(--accent-texte); }
.zb-sugg-s { font-size: 12.5px; color: var(--muted); }
.zb-sugg-tout { border-top: 1px solid var(--line); margin-top: 4px; padding-top: 4px; }
.zb-sugg-tout a { font-size: 14px; font-weight: 600; color: var(--accent-texte); }
@media (max-width: 720px) {
  .zb-sugg { max-height: 60vh; }
}
