/* Accueil — mesures de la maquette Figma (frame 1440 px), commentées section par section. */

/* Les décors et le rail d'avis débordent : chaque section coupe son propre débordement horizontal. */
.vne-ambassadeur, .vne-experiences, .vne-avis { overflow-x: clip; }
.vne-experiences { overflow-y: visible; }

/* 1. Grande photo : 1360 × 762, rayon 20, dégradé bas rgba(15,20,57,.6). Texte à 98 px du bord, 58 px du bas. */
.vne-hero { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.vne-hero::before { content: ""; position: absolute; inset: 0 var(--at-gouttiere); z-index: 1; border-radius: 20px; background: linear-gradient(180deg, rgba(15,20,57,0) 0%, rgba(15,20,57,.6) 100%); pointer-events: none; }
.vne-hero__media { position: absolute; inset: 0 var(--at-gouttiere); overflow: hidden; border-radius: 20px; background: var(--vne-navy); }
.vne-hero__image { width: 100%; height: 100%; object-fit: cover; }
/* Effet Ken Burns : zoom avant lent et léger sur la grande photo (accueil et fiches visites). */
@media (prefers-reduced-motion: no-preference) {
  .vne-hero__image { transform-origin: 55% 45%; animation: at-ken-burns 18s cubic-bezier(.25,.1,.25,1) both; will-change: transform; }
}
@keyframes at-ken-burns { from { transform: scale(1); } to { transform: scale(1.1); } }
/* Diaporama de l'accueil : fondu entre les photos, Ken Burns relancé sur la photo affichée. */
/* swiper-bundle.css pose .swiper { position: relative } : on garde la photo en fond absolu du bloc. */
.vne-hero__media.vne-hero__diaporama { position: absolute; inset: 0 var(--at-gouttiere); z-index: 0; margin: 0; width: auto; }   /* z-index 0 : le dégradé (::before, z 1) repasse au-dessus des photos */
.vne-hero__diaporama .swiper-wrapper, .vne-hero__slide { height: 100%; }
.vne-hero__slide { overflow: hidden; }
.vne-hero__diaporama .vne-hero__image { animation: none; }
@media (prefers-reduced-motion: no-preference) {
  .vne-hero__diaporama .swiper-slide-active .vne-hero__image { animation: at-ken-burns 8s cubic-bezier(.25,.1,.25,1) both; }
}
/* Puces : barres en haut à droite (le bas est pris par le titre et les partenaires). */
.vne-hero__puces { position: absolute; top: 24px !important; right: 36px; left: auto !important; bottom: auto !important; z-index: 3; display: flex; gap: 8px; width: auto !important; }
.vne-hero__puces .swiper-pagination-bullet { width: 28px; height: 4px; margin: 0 !important; border-radius: 4px; background: rgba(255,255,255,.55); opacity: 1; transition: width .3s, background-color .3s; }
.vne-hero__puces .swiper-pagination-bullet-active { width: 44px; background: var(--vne-yellow); }
/* Textes des diapositives empilés dans la même case : la hauteur est celle du plus long, rien ne saute. */
.vne-hero__textes { display: grid; }
.vne-hero__texte-slide { grid-area: 1 / 1; align-self: end; transition: opacity .9s ease, transform .9s ease, visibility 0s .9s; }
.vne-hero__texte-slide:not(.is-actif) { opacity: 0; visibility: hidden; transform: translateY(14px); }
.vne-hero__texte-slide.is-actif { transition-delay: .25s, .25s, 0s; }
.vne-hero__titre--etiquette { margin-bottom: 0; }
/* Partie jaune d'un titre de diapositive : peut passer à la ligne si elle est longue. */
.vne-hero__titre--slide .vne-hero__accent { white-space: normal; }
@media (prefers-reduced-motion: reduce) { .vne-hero__texte-slide { transition: none; transform: none !important; } }
.vne-hero { min-height: clamp(560px, 52.9vw, 762px); padding: 0 calc(var(--at-gouttiere) + 98px) 58px; }
.vne-hero__contenu, .vne-hero__partenaires { position: relative; z-index: 2; }
.vne-hero__contenu { max-width: 760px; color: #fff; }
.vne-hero__titre { font-family: var(--f-display); font-weight: 700; font-size: clamp(2rem, 1.1rem + 2.7vw, 3.125rem); line-height: 1; }
.vne-hero__titre-texte { display: block; }
/* Étiquette « Visitez » : fond 198 × 46, texte 60 px qui déborde, décalée de 22 px, 10 px au-dessus du titre. */
.vne-hero__etiquette { --et-taille: clamp(2.75rem, 1.9rem + 2.6vw, 3.75rem); --et-h: .766em; --et-pad: 7px; margin: 0 0 10px 24px; }
.vne-hero__texte { margin-top: 20px; font-size: 1.25rem; line-height: 24px; color: var(--vne-light); }
/* Mot mis en avant dans le titre (*…* dans le champ) : étiquette jaune inclinée de la charte. */
.vne-hero__accent { display: inline-block; white-space: nowrap; margin: .62em 0 .04em; padding: .02em .16em .06em; background: var(--vne-yellow); color: #fff; font-style: normal; line-height: 1.05; transform: rotate(-3deg); transform-origin: left center; }
/* Sous-titre sous le titre : même famille, plus grand que le texte courant. */
.vne-hero__titre + .vne-hero__texte { margin-top: 18px; font-family: var(--f-display); font-weight: 500; font-size: clamp(1.25rem, .9rem + 1.1vw, 2rem); line-height: 1.2; color: #fff; }

.vne-hero__partenaires { display: flex; gap: 10px; flex: none; }
.vne-partenaire { display: flex; flex-direction: column; gap: 0; width: 186px; }
.vne-partenaire__libelle { padding-left: 16px; font-family: var(--f-sans); font-weight: 700; font-size: .75rem; line-height: 19px; color: #fff; }
.vne-partenaire__pastille { display: grid; place-items: center; height: 52px; overflow: hidden; border-radius: 60px; }
.vne-partenaire__logo { width: 100%; height: 100%; object-fit: cover; }
.vne-partenaire--blanc .vne-partenaire__pastille { background: #fff; padding: 10px 24px; }
.vne-partenaire--blanc .vne-partenaire__logo { width: auto; height: 32px; object-fit: contain; }
a.vne-partenaire__pastille { transition: transform .2s; }
a.vne-partenaire__pastille:hover { transform: translateY(-2px); }

/* 2. Découvrir : vidéo 482 × 298 (voile .31, liseré blanc), gouttière 108, titre 3 lignes, texte à 72 px du crochet. */
.vne-decouvrir { display: grid; grid-template-columns: 482px minmax(0, 1fr); align-items: start; column-gap: 106px; margin-top: 72px; }
.vne-decouvrir__video { aspect-ratio: 482 / 298; border: 1px solid #fff; }
.vne-decouvrir__video::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(15,21,57,.31); pointer-events: none; }
.vne-decouvrir__video .at-video__bouton { z-index: 2; }
.vne-decouvrir__texte { padding-top: 32px; }
.vne-decouvrir__texte .vne-titre { max-width: 570px; }
.vne-decouvrir__corps { position: relative; margin-top: 20px; padding-left: 72px; }
.vne-decouvrir__corps p { max-width: 479px; font-size: 1.25rem; line-height: 24px; }
.vne-decouvrir__crochet { left: 5px; top: 5px; width: 51px; height: 51px; transform: rotate(13.79deg); }

/* 3. Ambassadeur : titre décalé (ligne 1 retirée de 175 px), texte 426 aligné à droite, vidéo 284 × 468, gouttière 52. */
.vne-ambassadeur { position: relative; margin-top: 120px; }
.vne-ambassadeur__arc { top: 24px; left: calc(50% - 624px); width: 271px; height: 271px; transform: rotate(-30deg); }
.vne-ambassadeur__arc-petit { top: 67px; left: calc(50% + 379px); width: 71px; height: 71px; transform: rotate(180deg); }
.vne-ambassadeur__titre { width: fit-content; margin-inline: auto; text-align: right; transform: translateX(-54px); }
.vne-ambassadeur__titre .vne-titre__l2 { margin-right: 175px; }
.vne-ambassadeur__grille { position: relative; display: grid; grid-template-columns: 426px 284px; justify-content: center; column-gap: 52px; margin-top: 47px; }
@media (min-width: 1280px) { .vne-ambassadeur__grille { padding-left: 14px; } }   /* maquette : groupe décalé de 7 px à droite */
.vne-ambassadeur__texte { display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.vne-ambassadeur__nom { display: flex; flex-direction: column; align-items: flex-end; padding-top: 6px; margin-right: 5px; }
.vne-ambassadeur__nom .at-etiquette { --et-pad: 12px; }
.vne-ambassadeur__nom .at-etiquette:first-child { margin-right: 44px; }
.vne-ambassadeur__nom .at-etiquette + .at-etiquette { margin-top: -5px; }
.vne-ambassadeur__corps { margin-top: 30px; font-size: 1.25rem; line-height: 24px; }
.vne-ambassadeur__texte .vne-boutons { justify-content: flex-end; margin-top: 27px; }
.vne-ambassadeur__texte .at-cta { min-width: 205px; }
/* Maquette : deux boutons de 205 px côte à côte (gouttière 10) dans la colonne de 426 px. */
.vne-ambassadeur__texte .at-cta--navy { padding-inline: 24px; gap: 12px; }
.vne-ambassadeur__texte .at-cta--light { padding-inline: 18px 24px; gap: 8px; }
@media (min-width: 1024px) { .vne-ambassadeur__texte .vne-boutons { flex-wrap: nowrap; width: max-content; } }   /* peut déborder à gauche de la colonne, aligné à droite */
.vne-ambassadeur__video { aspect-ratio: 284 / 468; }
.vne-ambassadeur__video::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(15,20,57,0) 0%, rgba(15,20,57,.6) 100%); pointer-events: none; }
.vne-ambassadeur__video .at-video__bouton { z-index: 2; }

/* 4. Carte : pin 59 × 86 (miroir), titre à 36 px, texte à droite ; carte 1163 × 593 ; panneau 329 × 564 à 16 px du bord. */
.vne-carte { margin-top: 127px; }
.vne-carte__entete { display: grid; grid-template-columns: minmax(0, 587px) minmax(0, 1fr); align-items: end; gap: 1.5rem 0; }
.vne-titre--pin, .vne-titre--etoile { position: relative; padding-left: 123px; }
.vne-titre__pin { left: 28px; top: -3px; width: 59px; height: 86px; transform: scaleX(-1); }
.vne-carte__texte { padding-bottom: 3px; font-size: 1.25rem; line-height: 24px; }
.vne-carte__cadre { position: relative; display: flex; align-items: flex-start; min-height: 593px; margin-top: 48px; overflow: hidden; border-radius: 20px; background: #e8efe4; }
.vne-carte__map { position: absolute; inset: 0; z-index: 1; }
.vne-carte__map .leaflet-control-attribution { font-size: 10px; }

/* Le panneau garde toute sa hauteur (filtres ajoutés au cahier des charges) : la carte s'agrandit au besoin, 593 px minimum. */
.vne-filtres { position: relative; z-index: 2; flex: none; min-height: 564px; margin: 14.5px 16px; width: 329px; padding: 15px 20px 20px 24px; overflow-y: auto; border-radius: 10px; background: #fff; box-shadow: 0 10px 30px -18px rgba(15,20,57,.35); transition: width .3s, bottom .3s; }
.vne-filtres__tete { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.vne-filtres__titre { padding-left: 6px; font-family: var(--f-sans); font-weight: 700; font-size: .875rem; line-height: 40px; text-transform: uppercase; color: rgba(15,20,57,.45); }
.vne-filtres__corps > .vne-filtres__titre { padding-top: 4px; border-top: .5px solid rgba(0,0,0,.25); line-height: 40px; }
.vne-filtres__replier { display: grid; place-items: center; width: 32px; height: 32px; margin-right: -4px; border: 0; border-radius: 8px; background: transparent; color: rgba(0,0,0,.35); cursor: pointer; transform: scaleX(-1); }
.vne-filtres__replier:hover { color: var(--vne-navy); background: var(--vne-light); }
.vne-filtres__replier .at-ico { width: 20px; height: 20px; }
.vne-filtres.is-replie { width: auto; min-height: 0; }
.vne-filtres.is-replie .vne-filtres__corps { display: none; }
.vne-filtres.is-replie .vne-filtres__replier { transform: none; }

.vne-pastilles { display: flex; flex-wrap: wrap; gap: 10px 11px; margin-top: 4px; padding-bottom: 16px; }
.vne-pastille { position: relative; cursor: pointer; }
.vne-pastille input { position: absolute; opacity: 0; pointer-events: none; }
.vne-pastille span { display: flex; align-items: center; height: 31px; padding-inline: 12.5px; border-radius: 60px; background: var(--vne-light); font-family: var(--f-sans); font-weight: 700; font-size: .875rem; color: rgba(0,0,0,.4); white-space: nowrap; transition: background-color .2s, color .2s; }
.vne-pastille:hover span { color: var(--vne-navy); }
.vne-pastille input:checked + span { background: var(--vne-red); color: #fff; }
.vne-pastille input:focus-visible + span { outline: 3px solid var(--vne-yellow); outline-offset: 2px; }
/* Thématiques : fond de la couleur à 20 %, texte de la couleur ; cochée : couleur pleine. */
.vne-pastille--theme span { background: color-mix(in srgb, var(--vne-couleur) 20%, transparent); color: var(--vne-couleur); }
.vne-pastille--theme:hover span { color: var(--vne-couleur); background: color-mix(in srgb, var(--vne-couleur) 32%, transparent); }
.vne-pastille--theme input:checked + span { background: var(--vne-couleur); color: #fff; }
.vne-ville { display: block; padding-bottom: 14px; }
.vne-ville .vne-filtres__titre { display: block; line-height: 30px; }
.vne-ville select { width: 100%; height: 34px; padding: 0 34px 0 14px; border: 0; border-radius: 60px; background: var(--vne-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23333C87' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center; font-family: var(--f-sans); font-weight: 700; font-size: .875rem; color: var(--vne-navy); appearance: none; cursor: pointer; }
.vne-ville select:focus-visible { outline: 3px solid var(--vne-yellow); outline-offset: 2px; }
.vne-criteres { display: grid; gap: 10px; padding-top: 14px; border-top: .5px solid rgba(0,0,0,.25); }
.vne-critere { position: relative; display: flex; align-items: center; gap: 6px; font-family: var(--f-sans); font-weight: 700; font-size: .875rem; color: rgba(15,20,57,.45); cursor: pointer; }
.vne-critere input { position: absolute; opacity: 0; pointer-events: none; }
.vne-critere .at-ico { width: 18px; height: 18px; margin: 3px; color: var(--vne-ink); }
.vne-critere__coche, .vne-critere input:checked ~ .vne-critere__vide { display: none; }
.vne-critere input:checked ~ .vne-critere__coche { display: inline-block; }
.vne-critere input:checked ~ span { color: var(--vne-ink); }
.vne-critere input:focus-visible ~ .at-ico { outline: 3px solid var(--vne-yellow); outline-offset: 1px; border-radius: 4px; }
.vne-filtres__compte { margin-top: 10px; padding-left: 6px; font-family: var(--f-sans); font-weight: 700; font-size: .8125rem; color: var(--vne-navy); }

/* Points de la carte : pastilles 18 px de la couleur de la thématique. */
.vne-marqueur { display: block; width: 22px; height: 22px; border: 2px solid #fff; border-radius: 50%; background: var(--c, var(--vne-navy)); box-shadow: 0 1px 4px rgba(15,20,57,.35); }
.vne-marqueur { transition: transform .2s; }
.leaflet-marker-icon:hover .vne-marqueur, .leaflet-marker-icon:focus-visible .vne-marqueur { transform: scale(1.35); }
/* Encart d'une entreprise : nom, thématique (pastille de sa couleur), ville, bouton « Découvrez ». */
.vne-popup .leaflet-popup-content-wrapper { padding: 0; overflow: hidden; border-radius: 14px; box-shadow: 0 14px 34px -14px rgba(15,20,57,.45); }
.vne-popup .leaflet-popup-content { margin: 0; width: auto !important; }
.vne-popup a.leaflet-popup-close-button { top: 6px; right: 6px; color: rgba(15,20,57,.45); }
/* Liseré de la thématique : barre droite pleine largeur, coupée net par l'arrondi de la bulle (overflow: hidden). */
.vne-encart-carte { position: relative; box-sizing: border-box; width: 270px; max-width: calc(100vw - 80px); display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 21px 20px 18px; font-family: var(--f-body); }
.vne-encart-carte::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--c); }
.vne-encart-carte strong { padding-right: 16px; font-family: var(--f-sans); font-weight: 800; font-size: 1.0625rem; line-height: 1.2; color: var(--vne-navy); }
.vne-encart-carte__theme { padding: 3px 10px; border-radius: 60px; background: color-mix(in srgb, var(--c) 18%, transparent); color: color-mix(in srgb, var(--c) 70%, #000); font-family: var(--f-sans); font-weight: 700; font-size: .75rem; }
.vne-encart-carte__ville { font-size: .875rem; color: var(--vne-ink); }
.vne-popup a.vne-encart-carte__bouton { margin-top: 6px; min-height: 38px; padding: .4rem 20px; font-size: .875rem; color: #fff; }

/* 5. Expériences : bandeau jaune 834 px, étiquette 329 × 55 qui dépasse de 31 px, cartes 381 × 478 (gouttière 11). */
.vne-experiences { position: relative; margin-top: 142px; }
.vne-experiences__fond { position: relative; z-index: 1; padding: 0 0 153px; background: var(--vne-yellow); }
.vne-experiences__titre { display: flex; flex-direction: column; align-items: center; text-align: center; color: #fff; font-family: var(--f-display); font-size: clamp(1.75rem, 1.1rem + 2.2vw, 2.5rem); line-height: 45px; transform: translateY(-31px); }
.vne-experiences__etiquette { --et-taille: clamp(2.25rem, 1.6rem + 2vw, 2.8125rem); --et-pad: 14px; margin: 11px 0 6px 6px; }
.vne-experiences__texte { max-width: 479px; margin: -13px auto 0; text-align: center; font-size: 1.25rem; line-height: 24px; color: var(--vne-light); }
.vne-experiences__cartes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin-top: 54px; }
.vne-experience { position: relative; display: flex; min-height: 478px; overflow: hidden; border-radius: 20px; background: var(--vne-ink); isolation: isolate; }
.vne-experience__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.22,1,.36,1); }
.vne-experience::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15,20,57,0) 0%, rgba(15,20,57,.8) 100%); }
.vne-experience:hover .vne-experience__image { transform: scale(1.04); }
.vne-experience__contenu { display: flex; flex-direction: column; justify-content: flex-end; width: 100%; padding: 24px 24px 28px; }
.vne-experience__titre { font-family: var(--f-sans); font-weight: 800; font-size: 1.5625rem; line-height: 25px; letter-spacing: -.03em; color: #fff; }
.vne-experience__accroche { position: relative; display: block; width: fit-content; margin: 0 0 3px -.18em; padding: 0 .18em; isolation: isolate; font-size: 1.875rem; line-height: 35px; transform-origin: left center; transition: color .25s .08s, transform .45s cubic-bezier(.22,1,.36,1); }
/* Survol d'une carte : l'accroche s'incline (−3°, comme « 49 expériences ») et une étiquette de la couleur
   de la carte se déploie dessous de gauche à droite ; l'accroche passe en blanc. */
.vne-experience__accroche::before { content: ""; position: absolute; inset: .04em 0 -.02em; z-index: -1; background: var(--acc, var(--vne-red)); transform: scaleX(0); transform-origin: left center; transition: transform .45s cubic-bezier(.22,1,.36,1); }
.vne-experience:hover .vne-experience__accroche, .vne-experience:focus-within .vne-experience__accroche, .vne-experience.is-actif .vne-experience__accroche { color: #fff; transform: rotate(-3deg); }
.vne-experience:hover .vne-experience__accroche::before, .vne-experience:focus-within .vne-experience__accroche::before, .vne-experience.is-actif .vne-experience__accroche::before { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) { .vne-experience__accroche, .vne-experience__accroche::before { transition: none; } }
.vne-experience__texte { max-width: 319px; min-height: 64px; margin-top: 25px; font-size: .875rem; line-height: 16px; color: var(--vne-light); }
.vne-experience__lien { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; margin-top: 36px; font-family: var(--f-sans); font-weight: 800; font-size: .875rem; text-decoration: none; }
.vne-experience__lien::after { content: ""; position: absolute; inset: 0; }   /* toute la carte est cliquable */
.vne-experience__lien .at-ico { transition: transform .3s; }
.vne-experience:hover .vne-experience__lien .at-ico { transform: translateX(4px); }
.vne-experience--red { --acc: var(--vne-red); }
.vne-experience--red .vne-experience__accroche, .vne-experience--red .vne-experience__lien { color: var(--vne-red); }
.vne-experience--green { --acc: var(--vne-green); }
.vne-experience--green .vne-experience__accroche, .vne-experience--green .vne-experience__lien { color: var(--vne-green); }
.vne-experience--yellow { --acc: var(--vne-yellow); }
.vne-experience--yellow .vne-experience__accroche, .vne-experience--yellow .vne-experience__lien { color: var(--vne-yellow); }
.vne-experience--navy { --acc: var(--vne-navy); }
.vne-experience--navy .vne-experience__accroche, .vne-experience--navy .vne-experience__lien { color: #9aa3ff; }
.vne-experiences__arc { z-index: 2; top: 724px; left: calc(50% + 374px); width: 271px; height: 271px; transform: rotate(135deg); }

/* 6. Avis : cartes 381 × 252 grises (rayon 20, marge 31), gouttière 10 ; le rail part du bord gauche de l'en-tête et déborde à droite. */
.vne-avis { margin-top: 137px; }
.vne-titre--etoile { padding-left: 123px; }
.vne-titre__etoile { left: -10px; top: -9px; width: 98px; height: 94px; }
.vne-avis__rail { margin-top: 61px; padding-left: max(var(--at-gouttiere), calc((100% - 1360px) / 2)); }
/* swiper-bundle.css (chargé après) remet overflow, largeur et hauteur des slides : sélecteurs renforcés.
   Le rail déborde des deux côtés jusqu'au bord de la fenêtre (la section coupe en overflow-x: clip). */
.vne-avis__rail .vne-avis__swiper { overflow: visible; }
.vne-avis__swiper:not(.swiper-initialized) .swiper-wrapper { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; padding-right: var(--at-gouttiere); scrollbar-width: none; }
.vne-avis__swiper .swiper-slide.vne-avis__carte, .vne-avis__carte { display: flex; flex-direction: column; flex: 0 0 var(--vne-avis-l, 381px); width: var(--vne-avis-l, 381px); height: auto; min-height: 252px; padding: 31px 31px 29px; border-radius: 20px; background: var(--vne-light); scroll-snap-align: start; }
.vne-etoiles { display: flex; color: var(--vne-yellow); }
.vne-etoiles .at-ico { width: 34px; height: 34px; }
.vne-etoiles .is-vide { color: #dcdcdc; }
.vne-avis__texte { flex: 1; max-width: 319px; margin: 11px 0 0; font-size: .875rem; line-height: 16px; color: #000; }
.vne-avis__auteur { margin-top: 18px; font-family: var(--f-sans); font-weight: 800; font-size: 1rem; line-height: 15px; color: var(--vne-navy); }
.vne-avis__detail { margin-top: 9px; font-size: .875rem; line-height: 16px; color: rgba(0,0,0,.45); }
.vne-avis .vne-boutons { margin-top: 71px; }
.vne-avis .at-cta { padding-inline: 33px; }

/* 7. Encarts : 576 × 252, gouttière 12, marges 48 / 42 ; titre 30/30, bouton blanc aligné à droite. */
.vne-encarts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 142px; }
.vne-encart { display: flex; flex-direction: column; justify-content: space-between; min-height: 252px; padding: 48px 36px 28px 42px; border-radius: 20px; color: #fff; }
.vne-encart--red { background: var(--vne-red); }
.vne-encart--navy { background: var(--vne-navy); }
.vne-encart__titre { max-width: 450px; font-family: var(--f-display); font-weight: 800; font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); line-height: 1; }
.vne-encart__bas { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-top: 20px; }
.vne-encart__texte { max-width: 268px; margin-bottom: 20px; font-size: .875rem; line-height: 16px; color: var(--vne-light); }
.vne-encart .at-cta { flex: none; }

/* ——— Tablette ——— */
@media (max-width: 1279.98px) {
  .vne-hero { flex-direction: column; align-items: flex-start; justify-content: flex-end; padding-inline: calc(var(--at-gouttiere) + 48px); }
  .vne-decouvrir { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 48px; }
  .vne-ambassadeur__arc { left: -150px; }
  .vne-ambassadeur__arc-petit { left: auto; right: 24px; }
  .vne-experiences__arc { left: auto; right: -60px; }
}
@media (max-width: 1023.98px) {
  .vne-decouvrir { grid-template-columns: 1fr; row-gap: 2.5rem; margin-top: 48px; }
  .vne-decouvrir__texte { padding-top: 0; }
  .vne-decouvrir__video { max-width: 640px; }
  .vne-ambassadeur { margin-top: 88px; }
  .vne-ambassadeur__arc { display: none; }
  .vne-ambassadeur__titre { transform: none; }
  .vne-ambassadeur__grille { grid-template-columns: minmax(0, 1fr) 284px; column-gap: 32px; }
  .vne-carte { margin-top: 88px; }
  .vne-carte__entete { grid-template-columns: 1fr; }
  .vne-carte__cadre { min-height: 640px; }
  .vne-experiences__cartes { grid-template-columns: 1fr 1fr; }
  .vne-experiences__arc { width: 180px; height: 180px; top: auto; bottom: -110px; }
  .vne-encarts { grid-template-columns: 1fr; }
}

/* ——— Mobile : tout est centré ——— */
@media (max-width: 767.98px) {
  .vne-hero { align-items: center; min-height: 620px; padding: 0 calc(var(--at-gouttiere) + 20px) 32px; text-align: center; }
  .vne-hero__etiquette { margin-left: 0; }
  .vne-hero__accent { font-size: min(1em, 7.4vw); transform-origin: center; }   /* tient sur une ligne à 390 px */
  .vne-hero__texte { font-size: 1.0625rem; line-height: 1.35; }
  .vne-hero__partenaires { justify-content: center; flex-wrap: wrap; }
  .vne-partenaire { width: 150px; }
  .vne-partenaire__libelle { padding-left: 0; text-align: center; }
  .vne-partenaire__pastille { height: 44px; }
  .vne-partenaire--blanc .vne-partenaire__pastille { padding: 8px 16px; }
  .vne-partenaire--blanc .vne-partenaire__logo { height: 26px; }

  .vne-titre, .vne-decouvrir__texte { text-align: center; }
  .vne-decouvrir__texte .vne-titre { margin-inline: auto; }
  .vne-decouvrir__corps { padding: 64px 0 0; }
  .vne-decouvrir__crochet { left: 50%; top: 0; margin-left: -25px; }
  .vne-decouvrir__corps p { margin-inline: auto; font-size: 1.0625rem; line-height: 1.4; }

  .vne-ambassadeur__arc-petit { display: none; }
  .vne-ambassadeur__titre { width: auto; text-align: center; }
  .vne-ambassadeur__titre .vne-titre__l2 { margin-right: 0; }
  .vne-ambassadeur__grille { grid-template-columns: 1fr; row-gap: 2.5rem; justify-items: center; }
  .vne-ambassadeur__texte, .vne-ambassadeur__nom { align-items: center; text-align: center; }
  .vne-ambassadeur__nom .at-etiquette { --et-taille: 2.25rem; --et-h: 46px; }
  .vne-ambassadeur__nom .at-etiquette:first-child { margin-right: 0; }
  .vne-ambassadeur__corps { font-size: 1.0625rem; line-height: 1.4; }
  .vne-ambassadeur__texte .vne-boutons { justify-content: center; }
  .vne-ambassadeur__video { width: min(284px, 100%); }

  .vne-titre--pin, .vne-titre--etoile { padding: 96px 0 0; }
  .vne-titre__pin { left: 50%; top: 0; margin-left: -30px; width: 52px; height: 76px; }
  .vne-titre__etoile { left: 50%; top: 0; margin-left: -42px; width: 84px; height: 80px; }
  .vne-carte__texte { text-align: center; font-size: 1.0625rem; }
  /* Mobile : filtres au-dessus de la carte, pas en surimpression. */
  .vne-carte__cadre { display: flex; flex-direction: column-reverse; min-height: 0; overflow: visible; background: none; }
  .vne-carte__map { position: relative; height: 420px; overflow: hidden; border-radius: 20px; }
  .vne-filtres { position: relative; inset: auto; width: auto; min-height: 0; margin: 0 0 12px; padding: 12px 16px 16px; border: 1px solid #CDCDCD; box-shadow: none; }
  .vne-filtres.is-replie { width: auto; }
  .vne-filtres__tete { justify-content: center; }
  .vne-pastilles { justify-content: center; }
  .vne-filtres__titre { padding-left: 0; text-align: center; }
  .vne-criteres { justify-items: center; }
  .vne-filtres__compte { text-align: center; }

  .vne-experiences { margin-top: 100px; }
  .vne-experiences__fond { padding-bottom: 80px; }
  .vne-experiences__titre { line-height: 1.15; }
  .vne-experiences__texte { font-size: 1.0625rem; }
  .vne-experiences__cartes { grid-template-columns: 1fr; }
  .vne-experience { min-height: 420px; text-align: center; }
  .vne-experience__texte { margin-inline: auto; }
  .vne-experience__accroche { margin-inline: auto; transform-origin: center; }
  .vne-experience__accroche::before { transform-origin: center; }
  .vne-experience__lien { align-self: center; }
  .vne-experiences__arc { display: none; }

  .vne-avis { margin-top: 88px; }
  .vne-avis__rail { margin-top: 40px; }
  .vne-avis__carte { align-items: center; text-align: center; }

  .vne-encarts { margin-top: 88px; }
  .vne-encart { align-items: center; padding: 36px 24px 28px; text-align: center; }
  .vne-encart__bas { flex-direction: column; align-items: center; }
  .vne-encart__texte { margin-bottom: 0; }
}
