/* Fiche logement — feuille des widgets vlbh-fiche-entete, vlbh-equipements, vlbh-onglets, vlbh-booking-rail, vlbh-barre-collante.
   Chaque valeur reprend les styles en ligne de la maquette Logement.dc.html (LogementPage.jsx + composants du design system). */

/* ——— Briques partagées ——— */
/* Interligne 1.65 : celui du corps de la maquette, hérité par tout texte sans interligne propre (les boutons gardent « normal »). */
.vlbh-eyebrow { font: 500 10px/1.65 var(--font-sans); letter-spacing: 0.2em; text-indent: 0.2em; text-transform: uppercase; color: var(--text-accent); }
.vlbh-eyebrow--sombre { color: var(--text-on-dark-accent); }
.vlbh-kicker { text-indent: 2px; }
.vlbh-eyebrow--faint { color: var(--text-faint); letter-spacing: 0.12em; text-indent: 0; }

.vlbh-amenity { display: flex; align-items: flex-start; gap: 12px; }
.vlbh-amenity__ico { width: 30px; height: 30px; border-radius: 50%; flex: none; display: grid; place-items: center; background: var(--cream-050); border: 1px solid var(--border-gold); color: var(--forest-800); }
.vlbh-amenity--plein .vlbh-amenity__ico { background: var(--forest-800); border: 0; color: var(--cream-100); }
.vlbh-amenity__ico svg { display: block; }
.vlbh-amenity__txt { min-width: 0; padding-top: 2px; }
.vlbh-amenity__fr { font: 400 16px/1.35 var(--font-body); color: var(--text-primary); }
.vlbh-amenity__en { font: italic 400 13.5px/1.35 var(--font-body); color: var(--text-accent); }
.vlbh-amenity__note { font: 400 11px/1.65 var(--font-sans); letter-spacing: 0.06em; color: var(--text-faint); margin-top: 3px; }

.vlbh-pill { display: inline-flex; align-items: center; gap: 8px; border: 1px solid transparent; border-radius: var(--radius-pill); padding: 7px 18px; font: 600 12.5px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; }
.vlbh-pill--sm { gap: 6px; padding: 4px 12px; font-size: 10.5px; }
.vlbh-pill--lg { padding: 10px 24px; font-size: 15px; }
.vlbh-pill--forest { background: var(--forest-800); color: var(--cream-100); }
.vlbh-pill--cream { background: var(--cream-050); color: var(--forest-800); border-color: var(--border-hairline); }
.vlbh-pill--gold { background: var(--gold-050); color: var(--gold-800); border-color: var(--gold-300); }
.vlbh-pill--outline { background: transparent; color: var(--forest-800); border-color: var(--border-gold); }
.vlbh-pill svg { display: block; flex: none; }

/* Doublé (.vlbh-btn.vlbh-btn) pour passer devant les règles `button` du Kit Elementor ; triplé pour les tailles et variantes, qui doivent battre `button.vlbh-btn.vlbh-btn`. */
.vlbh-btn.vlbh-btn, a.vlbh-btn.vlbh-btn, button.vlbh-btn.vlbh-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; border: 1px solid transparent; border-radius: var(--radius-pill); padding: 13px 26px; font: 600 12.5px/normal var(--font-sans); letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; cursor: pointer; transform: none; transition: var(--transition-color), transform var(--dur-instant) var(--ease-out); box-shadow: none; }
.vlbh-btn.vlbh-btn.vlbh-btn--sm { padding: 9px 18px; font-size: 11.5px; }
.vlbh-btn.vlbh-btn.vlbh-btn--lg { padding: 17px 36px; font-size: 14px; }
.vlbh-btn.vlbh-btn.vlbh-btn--primary { background: var(--forest-800); color: var(--cream-100); box-shadow: var(--shadow-sm); }
.vlbh-btn.vlbh-btn.vlbh-btn--primary:hover { background: var(--forest-900); color: var(--cream-100); }
.vlbh-btn.vlbh-btn.vlbh-btn--secondary { background: var(--cream-050); color: var(--forest-800); border-color: var(--border-gold); }
.vlbh-btn.vlbh-btn.vlbh-btn--secondary:hover { background: var(--gold-050); color: var(--forest-900); border-color: var(--border-gold-strong); }
.vlbh-btn.vlbh-btn.vlbh-btn--ghost { background: transparent; color: var(--text-accent); }
.vlbh-btn.vlbh-btn.vlbh-btn--ghost:hover { background: var(--cream-200); color: var(--forest-900); }
.vlbh-btn.vlbh-btn:active { transform: var(--press-translate); }
.vlbh-btn svg { display: block; flex: none; }

.vlbh-field { display: grid; gap: 7px; align-content: start; }
.vlbh-field label { display: grid; gap: 2px; }
.vlbh-field__fr { font: 600 11px/1.25 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-primary); }
.vlbh-field__en { font: 500 10px/1.25 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-accent-soft); }
.vlbh-field__ctl { position: relative; }
.vlbh-field__ico, .vlbh-field__chev { position: absolute; top: 50%; transform: translateY(-50%); color: var(--text-primary); pointer-events: none; line-height: 0; }
.vlbh-field__ico { left: 13px; }
.vlbh-field__chev { right: 13px; }
.vlbh-field.vlbh-field input, .vlbh-field.vlbh-field select, .vlbh-field.vlbh-field input:not([type="checkbox"]):not([type="radio"]) { width: 100%; height: auto; min-height: 0; margin: 0; background: var(--cream-050); border: 1px solid var(--border-hairline); border-radius: var(--field-radius); padding: var(--pad-field); font: 400 16px/1.4 var(--font-body); color: var(--text-primary); outline: none; box-shadow: none; transition: var(--transition-color), box-shadow var(--dur-fast) var(--ease-out); appearance: none; -webkit-appearance: none; }
.vlbh-field.vlbh-field--ico input, .vlbh-field.vlbh-field--ico input:not([type="checkbox"]):not([type="radio"]) { padding: 12px 14px 12px 40px; }
/* Un champ de date vide n’affiche rien sur telephone — ni sous iOS, ni sous Android — la ou un
   navigateur de bureau ecrit « jj/mm/aaaa ». Le site ecrit donc son propre indice, et masque celui du
   navigateur tant que le champ est vide et hors du focus. Des qu’on le touche ou qu’une date est
   choisie, le rendu natif reprend la main : on ne cache jamais une valeur, seulement un vide.

   L’apparence du champ n’est PAS touchee ici, et il ne faut pas la toucher : lui rendre son rendu
   natif (`appearance: auto`) donne au controle, sous Safari, une largeur minimale intrinseque plus
   grande que la place disponible — elle elargit la page, qui se laisse alors pousser vers la droite.
   Constate sur iPhone, apparu puis disparu avec cette seule declaration. Chrome ne la reproduit pas. */
.vlbh-field__format { position: absolute; left: 40px; top: 50%; transform: translateY(-50%); pointer-events: none; font: 400 16px/1.4 var(--font-body); color: var(--text-secondary); }
.vlbh-field__ctl.est-remplie .vlbh-field__format,
.vlbh-field__ctl input[type="date"]:focus ~ .vlbh-field__format { display: none; }
.vlbh-field__ctl:not(.est-remplie) input[type="date"]:not(:focus) { color: transparent; }
/* Avec l’apparence neutralisee, Safari rend la valeur du champ de date centree et flanquee de ses
   propres marges : la date ne tombe alors pas la ou l’indice la promettait, et l’interieur du champ
   parait mal cale. Ces deux pseudo-elements sont propres a WebKit ; ailleurs ils sont ignores, et
   sous Chrome ils alignent la valeur exactement sur le bord du remplissage, comme l’indice. */
.vlbh-field.vlbh-field input[type="date"]::-webkit-date-and-time-value { text-align: left; margin: 0; }
.vlbh-field.vlbh-field input[type="date"]::-webkit-datetime-edit { padding: 0; }
/* Hauteur commune aux trois champs. Le champ de date mesurait 50,4 px quand le menu deroulant en
   faisait 48,4, a remplissage et interligne identiques : la boite interne du controle natif ajoute
   deux pixels que le modele de boite ne prevoit pas. Les compenser par le remplissage serait fragile,
   la valeur variant d’un moteur a l’autre ; une hauteur explicite donne le meme resultat partout. */
.vlbh-field.vlbh-field input[type="date"], .vlbh-field.vlbh-field select { height: 48px; }
.vlbh-field input:focus, .vlbh-field select:focus { border-color: var(--border-gold); box-shadow: var(--ring-focus); }
/* Aide, astérisque, erreur et zone de texte : mêmes champs sur Contact, le livret et les avis. */
.vlbh-field__etoile { color: var(--text-accent); }
.vlbh-field__aide { font: italic 400 12.5px/1.65 var(--font-body); color: var(--text-muted); }
.vlbh-field__erreur { font: 400 13.5px/1.5 var(--font-body); color: var(--aveu-600); }
.vlbh-field__erreur[hidden] { display: none; }
.vlbh-field.vlbh-field textarea { width: 100%; margin: 0; background: var(--cream-050); border: 1px solid var(--border-hairline); border-radius: var(--field-radius); padding: var(--pad-field); font: 400 16px/1.4 var(--font-body); color: var(--text-primary); outline: none; box-shadow: none; resize: vertical; }
.vlbh-field textarea:focus { border-color: var(--border-gold); box-shadow: var(--ring-focus); }
.vlbh-field.is-erreur input, .vlbh-field.is-erreur textarea { border-color: var(--aveu-600); }
.vlbh-field input::-webkit-calendar-picker-indicator { opacity: 0; position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; }

/* ——— En-tête de fiche ——— */
.vlbh-fiche-tete { display: grid; gap: 12px; margin-bottom: 24px; }
.vlbh-fiche-tete__fil { display: flex; align-items: center; gap: 8px; font: 400 10.5px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-faint); }
.vlbh-fiche-tete__fil a { color: inherit; text-decoration: none; }
.vlbh-fiche-tete__fil svg { color: var(--gold-500); }
.vlbh-fiche-tete__fil b { font-weight: 400; color: var(--forest-800); }
.vlbh-fiche-tete__ligne { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
/* .elementor devant : les titres du Kit (.elementor-kit-6 h1) sont plus forts qu'une classe seule. */
.elementor .vlbh-fiche-tete h1, .vlbh-fiche-tete h1 { font: 400 clamp(30px, 8vw, 54px)/1.08 var(--font-display); color: var(--forest-800); margin: 8px 0 0; }
.vlbh-fiche-tete__pills { display: flex; gap: 8px; flex-wrap: wrap; }
.vlbh-mosaic { display: grid; gap: 8px; grid-template-columns: 1fr 1fr; grid-template-areas: "p1 p1" "p2 p3" "p4 p5"; grid-template-rows: minmax(180px, 52vw) minmax(118px, 33vw) minmax(118px, 33vw); }
.vlbh-mosaic__cell { position: relative; }
.vlbh-mosaic__cell:nth-child(1) { grid-area: p1; } .vlbh-mosaic__cell:nth-child(2) { grid-area: p2; } .vlbh-mosaic__cell:nth-child(3) { grid-area: p3; } .vlbh-mosaic__cell:nth-child(4) { grid-area: p4; } .vlbh-mosaic__cell:nth-child(5) { grid-area: p5; }
.vlbh-mosaic .vh-wipe-group { position: relative; height: 100%; border-radius: var(--radius-md); background: var(--cream-500); box-shadow: var(--shadow-sm); }
.vlbh-mosaic .vh-wipe { position: absolute; inset: 0; overflow: hidden; border-radius: var(--radius-md); }
.vlbh-mosaic img { width: 100%; height: 100%; object-fit: cover; display: block; }
button.vlbh-mosaic__zoom.vlbh-mosaic__zoom { position: absolute; width: 100%; height: 100%; border-radius: 0; box-shadow: none; inset: 0; padding: 0; border: 0; background: none; cursor: zoom-in; }
.vlbh-mosaic__legende { position: absolute; left: 10px; bottom: 10px; background: rgba(18, 44, 30, .72); color: var(--cream-100); font: 400 11px/1.65 var(--font-sans); padding: 5px 10px; border-radius: var(--radius-pill); max-width: calc(100% - 20px); pointer-events: none; }
.vlbh-fiche-tete__cta { display: flex; justify-content: flex-end; margin-top: 14px; }
@media (min-width: 720px) { .vlbh-mosaic { grid-template-columns: 2fr 1fr 1fr; grid-template-areas: "p1 p2 p3" "p1 p4 p5"; grid-template-rows: 1fr 1fr; min-height: 420px; } }

/* ——— Équipements ——— */
.vlbh-equip { padding: 40px 0 56px; position: relative; z-index: 1; }
.vlbh-equip__grille { margin-top: 22px; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 22px 24px; }
.vlbh-equip__grille > .vh-rise { min-width: 0; }
.vlbh-equip__plus { margin-top: 26px; }
.vlbh-panneau { position: fixed; inset: 0; z-index: var(--z-couche, 2147483000); /* devant l’en-tête collante d’Elementor, comme dans la maquette (z 60 au-dessus de son en-tête) */ background: rgba(14, 34, 22, .72); display: grid; place-items: center; padding: 18px; }
.vlbh-panneau[hidden] { display: none; }
.vlbh-panneau__boite { width: min(680px, 100%); max-height: min(86vh, 900px); display: grid; grid-template-rows: auto 1fr; background: var(--cream-050); border: 1px solid var(--border-gold); border-radius: var(--radius-lg); box-shadow: var(--shadow-xl); overflow: hidden; }
.vlbh-panneau__tete { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; border-bottom: 1px solid var(--rule-soft); }
.vlbh-panneau__tete .vlbh-eyebrow { font-size: 9.5px; }
.vlbh-panneau__titre { font: 600 24px/1.65 var(--font-serif); color: var(--forest-800); margin-top: 4px; }
.vlbh-panneau__fermer, div.vlbh-panneau button.vlbh-panneau__fermer { width: 44px; height: 44px; padding: 0; display: grid; place-items: center; border-radius: var(--radius-circle); border: 1px solid var(--border-hairline); background: var(--cream-200); color: var(--forest-800); cursor: pointer; flex: 0 0 auto; }
.vlbh-panneau__corps { overflow-y: auto; padding: 8px 24px 24px; }
.vlbh-panneau__groupe { padding-top: 22px; }
.vlbh-panneau__groupe-titre { font: 400 10.5px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-accent); }
.vlbh-panneau__liste { display: grid; gap: 2px; margin-top: 8px; }
.vlbh-panneau__liste > div { padding: 11px 0; border-bottom: 1px solid var(--rule-soft); }
.vlbh-panneau__note { margin-top: 24px; }

/* ——— Onglets ——— */
.vlbh-onglets__barre { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 30px; }
.vlbh-onglets__barre button, div.vlbh-onglets button.vlbh-onglet { cursor: pointer; display: flex; align-items: center; gap: 8px; border: 1px solid var(--border-hairline); background: var(--cream-050); color: var(--forest-800); border-radius: var(--radius-pill); padding: 12px 20px; font: 600 12.5px/normal var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; box-shadow: none; transition: var(--transition-color); }
.vlbh-onglets__barre button svg { color: var(--gold-700); }
.vlbh-onglets__barre button[aria-selected="true"], div.vlbh-onglets button.vlbh-onglet[aria-selected="true"] { border-color: var(--border-gold); background: var(--forest-800); color: var(--cream-100); box-shadow: var(--shadow-sm); }
.vlbh-onglets__barre button[aria-selected="true"] svg { color: var(--gold-200); }
.vlbh-tabs-panel { background: var(--cream-050); border: 1px solid var(--border-hairline); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: 30px 32px; }
.vlbh-tabs-panel > [role="tabpanel"][hidden] { display: none; }
.vlbh-descriptif__chapo { font: 400 clamp(17px, 4.6vw, 20px)/1.72 var(--font-body); color: var(--text-secondary); }
.vlbh-descriptif__paras { display: grid; gap: 16px; margin-top: 18px; }
.vlbh-descriptif__paras p, .vlbh-regles__paras p { margin: 0; font: 400 16.5px/1.72 var(--font-body); color: var(--text-secondary); max-width: 62ch; }
.vlbh-descriptif__note { margin-top: 20px; }
.vlbh-galerie-pieces__filtres { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 22px; }
.vlbh-galerie-pieces__filtres button, div.vlbh-onglets button.vlbh-galerie-pieces__filtre { cursor: pointer; border: 1px solid var(--border-hairline); background: transparent; color: var(--text-secondary); border-radius: var(--radius-pill); padding: 9px 15px; font: 500 11px/normal var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; box-shadow: none; transition: var(--transition-color); }
.vlbh-galerie-pieces__filtres button[aria-selected="true"], div.vlbh-onglets button.vlbh-galerie-pieces__filtre[aria-selected="true"] { border-color: var(--border-gold); background: var(--gold-050); color: var(--forest-800); font-weight: 600; }
.vlbh-galerie-pieces__grille { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.vlbh-galerie-pieces__grille[hidden] { display: none; }
.vlbh-galerie-pieces__photo { position: relative; overflow: hidden; border-radius: var(--radius-md); aspect-ratio: 4 / 3; background: var(--cream-500); box-shadow: var(--shadow-sm); }
.vlbh-galerie-pieces__photo button, div.vlbh-onglets .vlbh-galerie-pieces__photo button { position: absolute; inset: 0; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: 0; }
.vlbh-galerie-pieces__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vlbh-pratique { display: grid; gap: 14px; }
.vlbh-regles__paras { display: grid; gap: 16px; }
.vlbh-regles__tableau { margin-top: 16px; display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.vlbh-regles__tableau > div { display: flex; justify-content: space-between; gap: 10px; font: 400 13px/1.65 var(--font-sans); color: var(--text-secondary); border-bottom: 1px solid var(--rule-soft); padding-bottom: 6px; }
.vlbh-regles__tableau > div span:last-child { color: var(--text-faint); }
.vlbh-regles__note { margin-top: 14px; }
.vlbh-aveu { background: var(--surface-card); border-top: 1.5px solid var(--rule-aveu); border-right: 1px solid var(--border-hairline); border-bottom: 1px solid var(--border-hairline); border-left: 1px solid var(--border-hairline); border-radius: var(--radius-lg); padding: 40px; display: grid; gap: 28px; }
.vlbh-aveu__tete { display: grid; gap: 16px; }
.elementor .vlbh-aveu h2, .vlbh-aveu h2 { margin: 0; font: 600 32px/1.14 var(--font-serif); color: var(--text-primary); max-width: 34ch; }
.vlbh-aveu__chapo { margin: 0; font: 400 18px/1.66 var(--font-body); color: var(--text-secondary); max-width: 62ch; text-wrap: pretty; }
.vlbh-aveu__liste { display: grid; gap: 24px; }
.vlbh-aveu__item { display: grid; gap: 5px; padding-left: 24px; border-left: 1px solid var(--border-aveu); }
.vlbh-aveu__titre { font: 600 11px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-aveu); }
.vlbh-aveu__corps { font: 400 16.5px/1.68 var(--font-body); color: var(--text-secondary); max-width: 62ch; text-wrap: pretty; }
.vlbh-aveu__pied { display: flex; gap: 24px; align-items: center; border-top: 1px solid var(--border-aveu); padding-top: 24px; flex-wrap: wrap; }
.vlbh-aveu__portrait { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; flex: none; border: 1px solid var(--border-aveu); }
.vlbh-aveu__attente { width: 84px; height: 84px; border-radius: 50%; flex: none; border: 1.5px dashed var(--aveu-500); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center; padding: 8px; color: var(--aveu-500); }
.vlbh-aveu__attente span { font: 600 8px/1.3 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-aveu); }
.vlbh-aveu__signature { display: grid; gap: 2px; }
.vlbh-aveu__nom { font: italic 600 22px/1.65 var(--font-serif); color: var(--text-primary); }
.vlbh-aveu__role { font: 500 10px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-aveu); }
@media (min-width: 720px) { .vlbh-galerie-pieces__grille { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .vlbh-tabs-panel { padding: 24px 15px; } }

/* ——— Rail, carte mobile, barre collante ——— */
.vlbh-rail-fiche { min-width: 0; display: none; }
.vlbh-rail-fiche__carte { background: var(--cream-050); border: 1px solid var(--border-hairline); border-radius: var(--radius-md); padding: 24px; display: grid; gap: 18px; }
.vlbh-prix__a-partir { font: 400 10px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-faint); }
.vlbh-prix__ligne { display: flex; align-items: baseline; gap: 7px; margin-top: 5px; }
.vlbh-prix__montant { font: 400 38px/1 var(--font-display); color: var(--forest-800); }
.vlbh-prix__unite { font: 400 12px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-secondary); }
.vlbh-dates { display: grid; gap: 14px; }
.vlbh-lignes { display: grid; gap: 10px; padding-top: 14px; border-top: 1px solid var(--rule-soft); }
.vlbh-lignes__ligne { display: flex; justify-content: space-between; gap: 12px; font: 400 15px/1.65 var(--font-body); color: var(--text-secondary); }
.vlbh-lignes__ligne span:last-child { color: var(--forest-800); }
.vlbh-lignes__total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 12px; border-top: 1px solid var(--border-gold); }
.vlbh-lignes__total[hidden] { display: none; }
.vlbh-lignes__total span:first-child { font: 600 11px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--forest-800); }
.vlbh-lignes__total span:last-child { font: 400 26px/1.65 var(--font-display); color: var(--forest-800); }
.vlbh-rail-fiche form.vlbh-rail, .vlbh-mprice form.vlbh-rail { display: contents; }
.vlbh-rail__erreur { display: flex; align-items: center; gap: 8px; margin-top: -6px; font: 400 14px/1.65 var(--font-body); color: var(--aveu-600); }
.vlbh-rail__erreur:empty { display: none; }
.vlbh-rail-fiche__note { display: grid; gap: 8px; }
.vlbh-mprice { display: grid; gap: 16px; background: var(--cream-050); border: 1px solid var(--border-hairline); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: 20px; }
.vlbh-mprice__tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.vlbh-mprice .vlbh-prix__ligne { gap: 6px; margin-top: 4px; }
.vlbh-mprice .vlbh-prix__montant { font-size: 32px; }
.vlbh-barre { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex; align-items: center; gap: 14px; background: var(--cream-050); border-top: 1px solid var(--border-gold); box-shadow: 0 -8px 26px rgba(22, 53, 33, .13); padding: 12px 18px; }
.vlbh-barre__a-partir { font: 400 9.5px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-faint); }
.vlbh-barre__ligne { display: flex; align-items: baseline; gap: 5px; }
.vlbh-barre__montant { font: 400 25px/1.1 var(--font-display); color: var(--forest-800); }
.vlbh-barre__unite { font: 400 13px/1.65 var(--font-body); color: var(--text-secondary); }
.vlbh-barre__cta { margin-left: auto; }
body.vlbh-a-barre { padding-bottom: 78px; }
.vlbh-split, .e-con.vlbh-split { display: grid; gap: 44px; grid-template-columns: 1fr; }
.vlbh-split__gauche, .e-con.vlbh-split__gauche { display: grid; gap: 40px; min-width: 0; }
.e-con.vlbh-split > .e-con { width: auto; max-width: none; min-width: 0; }
.vlbh-split__droite .elementor-widget-vlbh-booking-rail, .vlbh-split__droite .elementor-widget-vlbh-booking-rail > .elementor-widget-container { height: 100%; }
@media (min-width: 1080px) {
	body.vlbh-a-barre { padding-bottom: 0; }
	.vlbh-barre, .elementor-widget-vlbh-barre-collante { display: none !important; }
	.vlbh-mprice, .elementor-widget-vlbh-booking-rail.vlbh-mode-mobile { display: none !important; }
	.vlbh-split, .e-con.vlbh-split { grid-template-columns: minmax(0, 1fr) 360px; gap: 64px; align-items: start; }
	.e-con.vlbh-split > .e-con.vlbh-split__droite { align-self: stretch; }
	.vlbh-rail-fiche { display: block; align-self: stretch; height: 100%; }
	.vlbh-rail-fiche > div { position: sticky; top: calc(var(--header-h) + 24px); }
}
body.vlbh-galerie-ouverte { overflow: hidden; }
body.vlbh-galerie-ouverte .vlbh-barre { display: none !important; }
body.vlbh-galerie-ouverte header, body.vlbh-galerie-ouverte .elementor-location-header { visibility: hidden !important; }

/* ——— Visionneuse ——— */
.vlbh-lightbox { position: fixed; inset: 0; z-index: var(--z-couche, 2147483000); background: rgba(14, 34, 22, .97); display: grid; grid-template-rows: auto 1fr; color: var(--cream-100); }
.vlbh-lightbox[hidden] { display: none; }
.vlbh-lightbox__tete { display: flex; align-items: center; gap: 16px; padding: 14px 18px; border-bottom: 1px solid rgba(219, 180, 100, .28); }
.vlbh-lightbox__rond, div.vlbh-lightbox button.vlbh-lightbox__rond { width: 46px; height: 46px; padding: 0; display: grid; place-items: center; border-radius: var(--radius-circle); border: 1px solid var(--gold-500); background: rgba(10, 26, 17, .55); color: var(--cream-100); cursor: pointer; flex: 0 0 auto; }
.vlbh-lightbox__retour { display: none; }
.vlbh-lightbox.is-photo .vlbh-lightbox__retour { display: grid; }
.vlbh-lightbox__titres { min-width: 0; flex: 1 1 auto; }
.vlbh-lightbox__sur { font: 400 10px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold-200); }
.vlbh-lightbox__titre { font: 600 20px/1.65 var(--font-serif); color: var(--cream-100); margin-top: 2px; }
.vlbh-lightbox__compteur { font: 400 12px/1.65 var(--font-sans); letter-spacing: 0.12em; color: var(--cream-200); }
.vlbh-lightbox__compteur:empty { display: none; }
.vlbh-lightbox__photo { display: none; position: relative; place-items: center; padding: 18px 78px 34px; min-height: 0; }
.vlbh-lightbox.is-photo .vlbh-lightbox__photo { display: grid; }
.vlbh-lightbox__photo img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--radius-sm); display: block; }
.vlbh-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); }
.vlbh-lightbox__nav--prev { left: 18px; } .vlbh-lightbox__nav--next { right: 18px; }
.vlbh-lightbox__defil { overflow-y: auto; padding: 0 18px 40px; }
.vlbh-lightbox.is-photo .vlbh-lightbox__defil { display: none; }
.vlbh-lightbox__colonne { max-width: 1000px; margin: 0 auto; }
.vlbh-lightbox__pieces { display: flex; gap: 8px; flex-wrap: wrap; padding: 16px 0 22px; position: sticky; top: 0; background: rgba(14, 34, 22, .97); z-index: 1; }
.vlbh-lightbox__pieces button, div.vlbh-lightbox .vlbh-lightbox__pieces button { cursor: pointer; border: 1px solid var(--gold-500); background: transparent; color: var(--cream-200); border-radius: var(--radius-pill); padding: 8px 14px; min-height: 40px; font: 400 10.5px/normal var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; box-shadow: none; }
/* Pastilles de pieces : la garde contre le survol que le kit Elementor imposait a tous les boutons
   avait neutralise le mauvais survol sans en fournir un bon. Au survol, l’or se devine ; la piece
   en cours de lecture est en or plein — la meme marque d’etat que la galerie par piece. */
.vlbh-lightbox__pieces.vlbh-lightbox__pieces button { transition: background-color var(--dur-fast, 160ms) var(--ease-out, ease), border-color var(--dur-fast, 160ms) var(--ease-out, ease), color var(--dur-fast, 160ms) var(--ease-out, ease); }
.vlbh-lightbox__pieces.vlbh-lightbox__pieces button:hover,
.vlbh-lightbox__pieces.vlbh-lightbox__pieces button:focus-visible { background-color: color-mix(in srgb, var(--gold-500) 32%, transparent); border-color: var(--gold-200); color: var(--cream-050); }
.vlbh-lightbox__pieces.vlbh-lightbox__pieces button[aria-current="true"] { background-color: var(--gold-500); border-color: var(--gold-500); color: var(--forest-900); }

.vlbh-lightbox__piece { padding-bottom: 34px; }
.vlbh-lightbox__piece-tete { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; }
.vlbh-lightbox__piece-nom { font: 600 26px/1.65 var(--font-serif); color: var(--cream-100); }
.vlbh-lightbox__piece-n { font: 400 10.5px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold-200); }
.vlbh-lightbox__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.vlbh-lightbox__vignette, div.vlbh-lightbox button.vlbh-lightbox__vignette { padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: var(--radius-md); overflow: hidden; aspect-ratio: 4 / 3; }
.vlbh-lightbox__vignette--large { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
.vlbh-lightbox__vignette img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vlbh-lightbox__pied { display: flex; align-items: center; gap: 9px; padding-bottom: 20px; color: var(--gold-200); }
.vlbh-lightbox__pied span { font: italic 400 14px/1.65 var(--font-body); color: var(--cream-200); }

/* ——— Page studio (Studio.dc.html) ——— */
.vlbh-studio-hero { position: relative; overflow: hidden; min-height: min(72vh, 660px); display: grid; align-items: end; background: var(--forest-900); }
.vlbh-studio-hero img.vlbh-studio-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: opacity 700ms var(--ease-soft), transform 1600ms var(--ease-soft); }
.vlbh-studio-hero.is-shown img.vlbh-studio-hero__photo { transform: scale(1); }
.vlbh-studio-hero__voile { position: absolute; inset: 0; }
.vlbh-studio-hero__voile--bas { background: linear-gradient(180deg, rgba(18, 44, 30, .12) 0%, rgba(18, 44, 30, .48) 55%, rgba(18, 44, 30, .9) 100%); }
.vlbh-studio-hero__voile--gauche { background: linear-gradient(90deg, rgba(14, 34, 22, .62) 0%, rgba(14, 34, 22, .22) 45%, rgba(14, 34, 22, 0) 72%); }
.vlbh-studio-hero-inner { position: relative; max-width: 1280px; width: 100%; margin: 0 auto; padding: 96px 40px 56px; }
.vlbh-studio-hero__contenu { opacity: 0; transform: translateY(12px); transition: opacity 900ms var(--ease-soft) 120ms, transform 900ms var(--ease-soft) 120ms; }
.vlbh-studio-hero.is-shown .vlbh-studio-hero__contenu { opacity: 1; transform: none; }
.vlbh-studio-hero__ligne { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.elementor .vlbh-studio-hero h1, .vlbh-studio-hero h1 { margin: 14px 0 0; font: 600 clamp(38px, 5.4vw, 68px)/1.04 var(--font-serif); color: var(--cream-100); text-wrap: balance; letter-spacing: 0; }
.vlbh-studio-hero__filet { margin-top: 16px; max-width: 220px; display: flex; align-items: center; justify-content: center; gap: 12px; }
.vlbh-studio-hero__filet span { flex: 1; height: 1px; background: var(--gold-300); opacity: .85; }
.vlbh-studio-hero__filet i { width: 9px; height: 19px; flex: none; background: var(--gold-400); clip-path: polygon(50% 0%, 62% 44%, 100% 50%, 62% 56%, 50% 100%, 38% 56%, 0% 50%, 38% 44%); }
.vlbh-studio-hero__phrase { margin: 18px 0 0; font: italic 400 clamp(19px, 2.2vw, 24px)/1.5 var(--font-serif); color: var(--gold-200); max-width: 40ch; text-wrap: pretty; }
.vlbh-studio-hero__en { margin: 8px 0 0; font: italic 400 14.5px/1.65 var(--font-body); color: var(--cream-200); max-width: 46ch; }
.vlbh-switch { display: inline-flex; gap: 4px; margin-top: 26px; padding: 4px; border-radius: var(--radius-pill); background: rgba(10, 26, 17, .55); border: 1px solid var(--gold-500); }
.vlbh-studio-hero .vlbh-switch a, .vlbh-studio-hero .vlbh-switch a:hover { display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: var(--radius-pill); padding: 10px 20px; min-height: 44px; background: transparent; color: var(--cream-200); font: 600 12px/normal var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; transition: var(--transition-color); }
.vlbh-studio-hero .vlbh-switch a[aria-current="page"] { background: var(--gold-300); color: var(--forest-900); }
.vlbh-cartes-surs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.vlbh-cartes-surs > .ac-rise { height: 100%; }
.vlbh-carte-sure { height: 100%; background: var(--cream-050); border: 1px solid var(--border-hairline); border-radius: var(--radius-lg); padding: 28px; display: grid; gap: 12px; justify-items: center; text-align: center; box-shadow: var(--shadow-sm); }
.vlbh-badge-plein { width: 64px; height: 64px; border-radius: var(--radius-circle); display: grid; place-items: center; flex: none; background: var(--forest-800); color: var(--cream-100); box-shadow: var(--shadow-badge); }
.vlbh-carte-sure__titre { font: 600 19px/1.25 var(--font-serif); color: var(--forest-800); }
.vlbh-carte-sure__texte { font: 400 14.5px/1.6 var(--font-body); color: var(--text-secondary); }
.vlbh-figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.vlbh-figure { margin: 0; }
.vlbh-figure__cadre { position: relative; overflow: hidden; border-radius: var(--radius-md); aspect-ratio: 3 / 4; border: 1px solid var(--border-hairline); }
.vlbh-figure__cadre img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vlbh-figure figcaption { margin-top: 10px; font: 400 11px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-secondary); }
.vlbh-attentes { display: grid; gap: 16px; max-width: 860px; margin: 0 auto; }
.vlbh-attente { border: 1.5px dashed var(--border-gold); border-radius: var(--radius-md); background: var(--cream-200); padding: 20px 24px; display: grid; gap: 8px; }
.vlbh-attente__titre { display: flex; gap: 8px; align-items: center; font: 600 9.5px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-accent); }
.vlbh-attente__titre svg { color: var(--gold-800); }
.vlbh-attente__texte { font: 400 15px/1.6 var(--font-body); color: var(--text-secondary); max-width: 62ch; }
.vlbh-attentes__note { margin-top: 32px; display: flex; justify-content: center; }
@media (max-width: 900px) { .vlbh-cartes-surs, .vlbh-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .vlbh-cartes-surs, .vlbh-figures { grid-template-columns: 1fr; } .vlbh-studio-hero-inner { padding-top: 120px; } .vlbh-switch { width: 100%; } .vlbh-switch a { flex: 1 1 0; } }

/* ——— Pages Réserver et Merci (Reserver.dc.html, Confirmation.dc.html) ——— */
.vlbh-badge-plein--sm { width: 32px; height: 32px; }
.vlbh-badge-plein.vlbh-badge-plein--md { width: 44px; height: 44px; }
.vlbh-badge-cercle.vlbh-badge-cercle--md { width: 44px; height: 44px; }
.vlbh-badge-cercle.vlbh-badge-cercle--lg { width: 64px; height: 64px; }
.vlbh-badge-teinte { width: 44px; height: 44px; border-radius: 50%; flex: none; background: var(--sage-050); border: 1px solid var(--border-sage); color: var(--sage-500); display: grid; place-items: center; }
.vlbh-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.vlbh-two { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 40px; align-items: center; }
/* En-tête Réserver */
.vlbh-rs-tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.elementor .vlbh-rs-tete h1, .vlbh-rs-tete h1 { margin: 10px 0 0; font: 600 clamp(32px, 3.6vw, 46px)/1.08 var(--font-serif); color: var(--forest-800); letter-spacing: 0; }
.vlbh-rs-tete__pills { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.vlbh-rs-tete__prix { display: flex; align-items: baseline; gap: 6px; }
.vlbh-rs-tete__montant { font: 400 32px/1 var(--font-display); color: var(--forest-800); }
.vlbh-rs-tete__unite { font: 400 12px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-secondary); }
.vlbh-rs-info { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 18px; background: var(--cream-050); border: 1px solid var(--border-hairline); border-radius: var(--radius-md); margin-top: 32px; }
.vlbh-rs-info > svg { color: var(--gold-700); flex: none; }
.vlbh-rs-info__texte { flex: 1 1 320px; min-width: 0; font: 400 14.5px/1.55 var(--font-body); color: var(--text-secondary); }
.vlbh-rs-info__texte strong { font-weight: 700; color: var(--forest-800); }
/* Cadre Smoobu */
.vlbh-smoobu { display: grid; gap: 12px; }
.vlbh-smoobu iframe { display: block; width: 100%; border: 0; border-radius: var(--radius-lg); }
.vlbh-smoobu__cadre { position: relative; height: 900px; background: var(--cream-200); border: 2px dashed var(--border-gold); border-radius: var(--radius-lg); box-shadow: inset 0 1px 24px rgba(22, 53, 33, .06); display: grid; place-items: center; align-content: center; padding: 32px; overflow: hidden; }
.vlbh-smoobu__cadre > div { display: grid; justify-items: center; gap: 14px; text-align: center; max-width: 46ch; }
.vlbh-smoobu__cadre > div > svg { color: var(--gold-700); }
.vlbh-smoobu__titre { font: 600 26px/1.65 var(--font-serif); color: var(--forest-800); }
.vlbh-smoobu__caps { font: 400 10.5px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-accent); }
.vlbh-smoobu__todo { font: italic 400 14.5px/1.6 var(--font-body); color: var(--text-muted); }
.vlbh-smoobu__pre { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-top: 4px; }
/* Cartes de règles (RuleCard sm, à gauche) */
.vlbh-regle { height: 100%; background: var(--cream-050); border: 1px solid var(--border-hairline); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 20px; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.vlbh-cartes-regles > .ac-rise { height: 100%; }
.vlbh-regle__tete { display: flex; align-items: center; gap: 12px; }
.vlbh-regle__fr { font: 600 13px/1.16 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-primary); }
.vlbh-regle__en { margin-top: 2px; font: 500 12px/1.24 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-accent); }
.vlbh-regle__corps-fr { font: 400 14px/1.65 var(--font-body); color: var(--text-secondary); }
.vlbh-regle__corps-en { margin-top: 10px; font: italic 400 13px/1.65 var(--font-body); color: var(--text-muted); }
.vlbh-regle__corps ul { margin: 0; padding-left: 18px; display: grid; gap: 5px; text-align: left; list-style: disc; }
/* Lignes à pictogramme */
.vlbh-lignes--apres { background: var(--cream-050); border: 1px solid var(--border-hairline); border-radius: var(--radius-lg); padding: 28px; display: grid; gap: 16px; }
.vlbh-lignes--apres .vlbh-eyebrow--carte { font-size: 9.5px; }
.vlbh-lignes--apres .vlbh-lignes__liste { display: grid; gap: 14px; }
.vlbh-lignes--apres .vlbh-ligne { display: flex; gap: 12px; align-items: flex-start; }
.vlbh-lignes--apres .vlbh-ligne__ico { width: 30px; height: 30px; border-radius: 50%; flex: none; border: 1px solid var(--border-gold); display: grid; place-items: center; color: var(--gold-900); }
.vlbh-lignes--apres .vlbh-ligne__texte { font: 400 16px/1.6 var(--font-body); color: var(--text-secondary); padding-top: 4px; }
.vlbh-lignes--courrier { background: var(--cream-050); border: 1px solid var(--border-hairline); border-radius: var(--radius-lg); padding: 28px; box-shadow: var(--shadow-sm); }
.vlbh-lignes--courrier .vlbh-ligne { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--rule-soft); }
.vlbh-lignes--courrier .vlbh-ligne:last-child { border-bottom: 0; }
.vlbh-lignes--courrier .vlbh-ligne__ico { width: 32px; height: 32px; border-radius: 50%; flex: none; background: var(--cream-050); border: 1.5px solid var(--forest-800); color: var(--forest-800); display: grid; place-items: center; }
.vlbh-ligne__quand { font: 600 10.5px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-accent); }
.vlbh-ligne__quoi { margin-top: 3px; font: 400 15.5px/1.55 var(--font-body); color: var(--text-secondary); }
/* Bandeau photo */
.vlbh-hero-photo { align-items: end; }
.vlbh-hero-photo__voile { background: linear-gradient(180deg, rgba(18, 44, 30, .10) 0%, rgba(18, 44, 30, .5) 55%, rgba(18, 44, 30, .92) 100%); }
.vlbh-hero-inner { position: relative; max-width: 1280px; width: 100%; margin: 0 auto; padding: 96px 40px 56px; }
/* Le bloc de texte hérite du corps de la maquette (18px/1.65) : le surtitre inline-flex se cale sur la même ligne de base. */
.vlbh-hero-photo .vlbh-studio-hero__contenu { font-size: 18px; line-height: 1.65; }
.vlbh-hero-photo__eyebrow { display: inline-flex; align-items: center; gap: 9px; font: 600 10.5px/1.65 var(--font-sans); letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-200); }
.elementor .vlbh-hero-photo h1, .vlbh-hero-photo h1 { margin: 14px 0 0; font: 600 clamp(40px, 6vw, 76px)/1.02 var(--font-serif); color: var(--cream-100); letter-spacing: 0; text-wrap: initial; }
.vlbh-hero-photo__phrase { margin: 18px 0 0; font: 400 clamp(17px, 2vw, 20px)/1.62 var(--font-body); color: var(--cream-100); max-width: 52ch; }
.vlbh-hero-photo__en { margin: 8px 0 0; font: italic 400 14.5px/1.65 var(--font-body); color: var(--gold-200); }
.vlbh-hero-photo__boutons { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.vlbh-btn.vlbh-btn.vlbh-btn--fond-creme { background: var(--cream-050); }
/* Citation signée */
.vlbh-citation { max-width: 960px; margin: 0 auto; }
.vlbh-citation__portrait { width: 150px; height: 150px; border-radius: 50%; overflow: hidden; border: 2px solid var(--gold-300); box-shadow: 0 18px 44px rgba(18, 44, 30, .4); background: var(--forest-900); display: grid; place-items: center; }
.vlbh-citation__portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vlbh-citation__attente { font: italic 400 12.5px/1.5 var(--font-body); color: var(--gold-200); text-align: center; padding: 0 12px; }
.vlbh-citation__texte { margin: 0; font: italic 400 clamp(21px, 2.3vw, 27px)/1.5 var(--font-serif); color: var(--cream-100); }
.vlbh-citation__texte strong { font-weight: 600; color: var(--gold-200); }
.vlbh-citation__en { margin: 8px 0 0; font: italic 400 14.5px/1.65 var(--font-body); color: var(--gold-200); }
.vlbh-signature { display: flex; gap: 20px; align-items: center; border-top: 1px solid var(--border-aveu); padding-top: 20px; flex-wrap: wrap; }
.vlbh-citation .vlbh-signature { margin-top: 20px; }
.vlbh-signature > span { display: grid; gap: 2px; }
.vlbh-signature__nom { font: italic 600 22px/1.65 var(--font-serif); color: var(--text-primary); }
.vlbh-signature__role { font: 500 10px/1.65 var(--font-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-aveu); }
.vlbh-signature--sombre { border-top-color: rgba(250, 242, 232, .28); }
.vlbh-signature--sombre .vlbh-signature__nom { color: var(--cream-100); }
.vlbh-signature--sombre .vlbh-signature__role { color: var(--gold-200); }
/* Merci (page de confirmation) : paragraphe serif limité à 40ch, centré */
.vlbh-merci-p .elementor-heading-title { max-width: 40ch; margin-left: auto; margin-right: auto; }
/* Pastille cerclée 32 px (IconBadge « outlined » du kit) : partagée par À propos, le contact et Merci. */
.vlbh-badge-cercle { width: 32px; height: 32px; border-radius: 50%; flex: none; background: var(--cream-050); border: 1.5px solid var(--forest-800); color: var(--forest-800); display: grid; place-items: center; }
/* Bouton « lien » du kit : souligné doré, sans cadre — partagé par la fiche, À propos et le journal. */
.vlbh-btn.vlbh-btn.vlbh-btn--lien { padding: 0; border-radius: 0; background: transparent; color: var(--text-accent); text-decoration: underline; text-decoration-color: var(--gold-150); text-underline-offset: 4px; letter-spacing: .06em; }
.vlbh-btn.vlbh-btn.vlbh-btn--lien:hover { color: var(--forest-800); background: transparent; text-decoration-color: var(--gold-400); }
/* Filet à losange (OrnamentalRule) : partagé par les fiches, les activités et À propos. */
.vlbh-filet { display: flex; align-items: center; justify-content: center; gap: 12px; }
.vlbh-filet span { flex: 1; height: 1px; background: var(--gold-300); opacity: .85; }
.vlbh-filet i { width: 9px; height: 19px; flex: none; background: var(--gold-400); clip-path: polygon(50% 0%, 62% 44%, 100% 50%, 62% 56%, 50% 100%, 38% 56%, 0% 50%, 38% 44%); }
/* Portes */
.vlbh-portes > .ac-rise { height: 100%; }
a.vlbh-porte, a.vlbh-porte:hover { display: grid; text-decoration: none; color: inherit; background: var(--cream-050); border: 1px solid var(--border-hairline); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); height: 100%; }
.vlbh-porte__photo { aspect-ratio: 16 / 9; overflow: hidden; }
.vlbh-porte__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vlbh-porte__corps { padding: 24px; display: grid; gap: 8px; }
.vlbh-porte__titre { display: flex; align-items: center; gap: 10px; font: 600 20px/1.65 var(--font-serif); color: var(--forest-800); }
.vlbh-porte__titre svg { color: var(--gold-900); flex: none; }
.vlbh-porte__texte { font: 400 15px/1.55 var(--font-body); color: var(--text-secondary); }
@media (max-width: 900px) { .vlbh-two { grid-template-columns: 1fr; gap: 32px; } .vlbh-citation { justify-items: center; text-align: center; } .vlbh-three { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .vlbh-three { grid-template-columns: 1fr; } .elementor .vlbh-rs-tete h1, .vlbh-rs-tete h1 { font-size: 36px; white-space: nowrap; } .vlbh-hero-inner { padding-left: 15px; padding-right: 15px; } .elementor .vlbh-hero-photo h1, .vlbh-hero-photo h1 { font-size: 36px; } .vlbh-hero-photo__boutons { flex-direction: column; gap: 10px; } .vlbh-hero-photo__boutons > * { width: 100%; } .vlbh-lignes--courrier, .vlbh-porte__corps { padding: 32px 15px; } }

/* Couches plein écran (panneau des équipements, visionneuse) : leur rang d’empilement se règle en JS
   (hausser(), dans fiche.js), qui les sort du conteneur Elementor — « position: relative ; z-index: 1 » —
   où leur « z-index » ne valait plus que 1. Une règle qui coupait ici « animation » sur les apparitions a été
   retirée : .vh-rise part de « opacity: 0 », donc supprimer l’animation rendait invisible toute la page
   déjà apparue (46 éléments mesurés) le temps que la couche restait ouverte. */
