/* ==========================================================================
   RM Booking Clévia 1.1 · blocs de la fiche logement ([rm_clevia_fiche bloc="…"])
   Valeurs reprises de la maquette Clévia (maquette/style.css, logement.html)
   et des classes de la fiche Atalaye construite dans Elementor (#325).
   Couleurs : variables --rmcv-* (Réglages ▸ Apparence, avec repli sur les
   variables globales du site --couleur-…). Icônes : masques CSS (classes
   cv-ico--<nom>), comme le CSS du kit Elementor du site : jamais en double.
   Chaque bloc est enveloppé dans .rmcv-f (display: contents).
   ========================================================================== */

.rmcv-f {
  display: contents;
  --rmcv-encre: #283020; --rmcv-doux: #62664F; --rmcv-fond: #F2EEE3; --rmcv-blanc: #FFFFFF;
  --rmcv-filet: #E2DCCB; --rmcv-accent: #8C6B2C; --rmcv-accent-fonce: #765922; --rmcv-sur-accent: #FFFFFF;
  --rmcv-accent-texte: #8C6B2C; --rmcv-sable: #EFE4C8; --rmcv-ecume: #E3E7D5;
  --rmcv-police-titre: "Bricolage Grotesque", "Geist", system-ui, sans-serif;
  --rmcv-courbe: cubic-bezier(0.22, 1, 0.36, 1);
  --rmcv-ico-lieu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.2 7-11.5a7 7 0 0 0-14 0C5 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
  --rmcv-ico-etoile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3 6.1 20.6l1.3-6.6L2.5 9.4l6.6-.8z'/%3E%3C/svg%3E");
  --rmcv-ico-voyageurs: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0M16 4.5a3.5 3.5 0 0 1 0 7M18 14.5a6 6 0 0 1 3.5 5.5'/%3E%3C/svg%3E");
  --rmcv-ico-lit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18v-7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v7M3 15h18M3 18v2M21 18v2M6 9V6.5h5V9M13 9V6.5h5V9'/%3E%3C/svg%3E");
  --rmcv-ico-bain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16v3a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5zM6 12V5.5a2 2 0 0 1 4 0M7 20l-1 2M17 20l1 2'/%3E%3C/svg%3E");
  --rmcv-ico-surface: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h4M3 15h4M9 3v4M15 3v4'/%3E%3C/svg%3E");
  --rmcv-ico-mer: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 8c2.5 0 2.5-2 5-2s2.5 2 5 2 2.5-2 5-2 2.5 2 5 2M2 13c2.5 0 2.5-2 5-2s2.5 2 5 2 2.5-2 5-2 2.5 2 5 2M2 18c2.5 0 2.5-2 5-2s2.5 2 5 2 2.5-2 5-2 2.5 2 5 2'/%3E%3C/svg%3E");
  --rmcv-ico-wifi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9a15 15 0 0 1 20 0M5 12.5a10 10 0 0 1 14 0M8.5 16a5 5 0 0 1 7 0M12 19.5h.01'/%3E%3C/svg%3E");
  --rmcv-ico-cuisine: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3v8M5 3v5a2 2 0 0 0 4 0V3M7 11v10M17 3c-2 0-3 2-3 5s1 4 3 4v9'/%3E%3C/svg%3E");
  --rmcv-ico-lave-linge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Ccircle cx='12' cy='13' r='4.5'/%3E%3Cpath d='M8 6.5h.01M11 6.5h3'/%3E%3C/svg%3E");
  --rmcv-ico-parking: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17v-4l2-6h14l2 6v4zM3 17v2M21 17v2M7 13.5h.01M17 13.5h.01M3 13h18'/%3E%3C/svg%3E");
  --rmcv-ico-etincelle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8zM19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8z'/%3E%3C/svg%3E");
  --rmcv-ico-cle-anneau: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='15' r='4'/%3E%3Cpath d='M10.8 12.2 20 3M17 6l2.5 2.5M14.5 8.5 17 11'/%3E%3C/svg%3E");
  --rmcv-ico-tele: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='12' rx='2'/%3E%3Cpath d='M8 21h8'/%3E%3C/svg%3E");
  --rmcv-ico-ascenseur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M9 9l3-3 3 3M9 15l3 3 3-3'/%3E%3C/svg%3E");
  --rmcv-ico-bebe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M6 21a6 6 0 0 1 12 0M10.5 8h.01M13.5 8h.01'/%3E%3C/svg%3E");
  --rmcv-ico-balcon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V4a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v17M3 21h18M15 12h.01'/%3E%3C/svg%3E");
  --rmcv-ico-horloge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
  --rmcv-ico-depart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 4h4v16h-4M10 8l-4 4 4 4M6 12h10'/%3E%3C/svg%3E");
  --rmcv-ico-interdit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M5.6 5.6l12.8 12.8'/%3E%3C/svg%3E");
  --rmcv-ico-animaux: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='5.5' cy='10' r='1.8'/%3E%3Ccircle cx='9.5' cy='5.5' r='1.8'/%3E%3Ccircle cx='14.5' cy='5.5' r='1.8'/%3E%3Ccircle cx='18.5' cy='10' r='1.8'/%3E%3Cpath d='M12 11.5c-3 0-5.5 3.5-5.5 5.7 0 1.5 1.4 2.5 2.9 2l2.6-.8 2.6.8c1.5.5 2.9-.5 2.9-2 0-2.2-2.5-5.7-5.5-5.7z'/%3E%3C/svg%3E");
  --rmcv-ico-lune: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5z'/%3E%3C/svg%3E");
  --rmcv-ico-livre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2zM4 21V5M19 19v2'/%3E%3C/svg%3E");
  --rmcv-ico-grille: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7.5' height='7.5' rx='1.5'/%3E%3Crect x='13.5' y='3' width='7.5' height='7.5' rx='1.5'/%3E%3Crect x='3' y='13.5' width='7.5' height='7.5' rx='1.5'/%3E%3Crect x='13.5' y='13.5' width='7.5' height='7.5' rx='1.5'/%3E%3C/svg%3E");
  --rmcv-ico-maison: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7v9a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E");
  --rmcv-ico-coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --rmcv-ico-piscine: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 16V5.5a2.5 2.5 0 0 1 5 0M14 16V5.5a2.5 2.5 0 0 1 5 0M8 9h6M8 13h6M2 20c2.5 0 2.5-1.5 5-1.5s2.5 1.5 5 1.5 2.5-1.5 5-1.5 2.5 1.5 5 1.5'/%3E%3C/svg%3E");
  --rmcv-ico-jardin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21v-6M12 15c-3.6 0-6-2.4-6-5.5S8.5 3 12 3s6 3.4 6 6.5-2.4 5.5-6 5.5zM8 21h8'/%3E%3C/svg%3E");
  --rmcv-ico-flocon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v20M4 7l16 10M4 17L20 7M9 4l3 2 3-2M9 20l3-2 3 2'/%3E%3C/svg%3E");
  --rmcv-ico-flamme: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22c3.9 0 7-2.8 7-7 0-3.5-2.5-6-4-8-.5 2.5-2 3.5-3 4 0-3-1.5-6-4-8 0 4-3 6.5-3 11 0 4.2 3.1 8 7 8z'/%3E%3C/svg%3E");
  --rmcv-ico-velo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='16' r='3.5'/%3E%3Ccircle cx='18' cy='16' r='3.5'/%3E%3Cpath d='M6 16l4-8h5l3 8M10 8l2 8M14 5h3'/%3E%3C/svg%3E");
  --rmcv-ico-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E");
}

/* ---------- Icônes (mêmes noms de classe que le site) ---------- */
.rmcv-f .cv-ico--lieu { --cv-ico: var(--rmcv-ico-lieu); }
.rmcv-f .cv-ico--etoile { --cv-ico: var(--rmcv-ico-etoile); }
.rmcv-f .cv-ico--voyageurs { --cv-ico: var(--rmcv-ico-voyageurs); }
.rmcv-f .cv-ico--lit { --cv-ico: var(--rmcv-ico-lit); }
.rmcv-f .cv-ico--bain { --cv-ico: var(--rmcv-ico-bain); }
.rmcv-f .cv-ico--surface { --cv-ico: var(--rmcv-ico-surface); }
.rmcv-f .cv-ico--mer { --cv-ico: var(--rmcv-ico-mer); }
.rmcv-f .cv-ico--wifi { --cv-ico: var(--rmcv-ico-wifi); }
.rmcv-f .cv-ico--cuisine { --cv-ico: var(--rmcv-ico-cuisine); }
.rmcv-f .cv-ico--lave-linge { --cv-ico: var(--rmcv-ico-lave-linge); }
.rmcv-f .cv-ico--parking { --cv-ico: var(--rmcv-ico-parking); }
.rmcv-f .cv-ico--etincelle { --cv-ico: var(--rmcv-ico-etincelle); }
.rmcv-f .cv-ico--cle-anneau { --cv-ico: var(--rmcv-ico-cle-anneau); }
.rmcv-f .cv-ico--tele { --cv-ico: var(--rmcv-ico-tele); }
.rmcv-f .cv-ico--ascenseur { --cv-ico: var(--rmcv-ico-ascenseur); }
.rmcv-f .cv-ico--bebe { --cv-ico: var(--rmcv-ico-bebe); }
.rmcv-f .cv-ico--balcon { --cv-ico: var(--rmcv-ico-balcon); }
.rmcv-f .cv-ico--horloge { --cv-ico: var(--rmcv-ico-horloge); }
.rmcv-f .cv-ico--depart { --cv-ico: var(--rmcv-ico-depart); }
.rmcv-f .cv-ico--interdit { --cv-ico: var(--rmcv-ico-interdit); }
.rmcv-f .cv-ico--animaux { --cv-ico: var(--rmcv-ico-animaux); }
.rmcv-f .cv-ico--lune { --cv-ico: var(--rmcv-ico-lune); }
.rmcv-f .cv-ico--livre { --cv-ico: var(--rmcv-ico-livre); }
.rmcv-f .cv-ico--maison { --cv-ico: var(--rmcv-ico-maison); }
.rmcv-f .cv-ico--coche { --cv-ico: var(--rmcv-ico-coche); }
.rmcv-f .cv-ico--piscine { --cv-ico: var(--rmcv-ico-piscine); }
.rmcv-f .cv-ico--jardin { --cv-ico: var(--rmcv-ico-jardin); }
.rmcv-f .cv-ico--flocon { --cv-ico: var(--rmcv-ico-flocon); }
.rmcv-f .cv-ico--flamme { --cv-ico: var(--rmcv-ico-flamme); }
.rmcv-f .cv-ico--velo { --cv-ico: var(--rmcv-ico-velo); }

/* ---------- Base (seulement dans les blocs du plugin) ---------- */
.rmcv-f *, .rmcv-f *::before, .rmcv-f *::after { box-sizing: border-box; }
.rmcv-f h1, .rmcv-f h2, .rmcv-f h3, .rmcv-f h4, .rmcv-f p, .rmcv-f ul, .rmcv-f li, .rmcv-f figure, .rmcv-f blockquote, .rmcv-f figcaption { margin: 0; }
.rmcv-f ul { padding: 0; list-style: none; }
.rmcv-f blockquote { padding: 0; border: 0; quotes: none; font-style: normal; background: none; }
.rmcv-f blockquote::before, .rmcv-f blockquote::after { content: none; }
.rmcv-f img { display: block; max-width: 100%; height: auto; border: 0; box-shadow: none; }
.rmcv-f a { color: inherit; text-decoration: none; }
.rmcv-f button { font: inherit; color: inherit; background: none; border: 0; border-radius: 0; padding: 0; margin: 0; cursor: pointer; text-transform: none; letter-spacing: inherit; box-shadow: none; min-height: 0; }
.rmcv-f :focus-visible { outline: 2px solid var(--rmcv-accent); outline-offset: 3px; border-radius: 6px; }
.rmcv-f .cv-masque { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rmcv-f .cv-doux { color: var(--rmcv-doux); }
.rmcv-f [id] { scroll-margin-top: calc(var(--entete, 76px) + 28px); }
.rmcv-f-hint { display: block; padding: 10px 14px; border-radius: 10px; background: #FBEDE8; color: #8A2E1C; font-size: 14px; line-height: 1.5; }

/* ---------- En-tête : fil d'Ariane, H1, lieu et note ---------- */
.rmcv-f .cv-fiche__titre { display: grid; gap: 16px; justify-items: start; }
.rmcv-f .cv-fil { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--rmcv-doux); }
.rmcv-f .cv-fil a:hover { color: var(--rmcv-encre); text-decoration: underline; text-underline-offset: 3px; }
.rmcv-f .cv-fil span[aria-hidden] { opacity: .5; }
.rmcv-f .cv-h1-page { font-family: var(--rmcv-police-titre); font-weight: 500; letter-spacing: -0.035em; font-variation-settings: "opsz" 96; font-size: var(--taille-h1-page, clamp(36px, calc(1.905vw + 28.57px), 56px)); line-height: 1.1; color: inherit; text-transform: none; }
.rmcv-f .cv-fiche__meta { display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: 16px; }
.rmcv-f .cv-fiche__info { display: inline-flex; align-items: center; gap: 8px; }
.rmcv-f .cv-fiche__info::before { content: ""; display: block; width: 18px; height: 18px; flex-shrink: 0; background-color: var(--rmcv-doux); -webkit-mask: var(--cv-ico) center / contain no-repeat; mask: var(--cv-ico) center / contain no-repeat; }
.rmcv-f .cv-fiche__info strong { font-weight: 600; }
.rmcv-f .cv-lien { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: currentColor; transition: text-decoration-color .3s, color .3s; }
.rmcv-f .cv-lien:hover { text-decoration-color: transparent; }

/* ---------- Galerie (1 grande + 4) ---------- */
.rmcv-f .cv-galerie { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 260px 260px; gap: 8px; border-radius: var(--rayon-carte, 20px); overflow: hidden; position: relative; }
.rmcv-f .cv-galerie__photo { position: relative; overflow: hidden; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: var(--rmcv-fond); }
.rmcv-f .cv-galerie__photo:first-child { grid-row: 1 / 3; }
.rmcv-f .cv-galerie__photo img { width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .8s var(--rmcv-courbe), filter .4s; }
.rmcv-f button.cv-galerie__photo:hover img { transform: scale(1.04); filter: brightness(.92); }
.rmcv-f button.cv-galerie__photo:focus-visible { outline-offset: -4px; border-radius: 0; }
.rmcv-f .cv-galerie__photo.rmcv-vide { cursor: default; }
.rmcv-f .cv-galerie__tout { position: absolute; right: 16px; bottom: 16px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; width: auto; height: 44px; padding: 0 18px; border-radius: 999px; background: #fff; color: var(--rmcv-encre); font-size: 15px; font-weight: 500; line-height: 1.6; white-space: nowrap; box-shadow: 0 8px 24px rgba(20, 25, 15, .16); transition: background-color .3s var(--rmcv-courbe); }
.rmcv-f .cv-galerie__tout::before { content: ""; display: block; width: 16px; height: 16px; flex-shrink: 0; background-color: currentColor; -webkit-mask: var(--rmcv-ico-grille) center / contain no-repeat; mask: var(--rmcv-ico-grille) center / contain no-repeat; }
.rmcv-f .cv-galerie__tout:hover { background: var(--rmcv-fond); }
.rmcv-f .cv-galerie__plus, .rmcv-f .cv-galerie__plus[hidden] { display: none; }
.rmcv-f .cv-galerie::-webkit-scrollbar { display: none; }

/* ---------- Pastilles, chapô, description ---------- */
.rmcv-f .cv-pastilles { display: flex; flex-wrap: wrap; gap: 8px; }
.rmcv-f .cv-pastille { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px; border-radius: 999px; font-size: 14px; font-weight: 500; line-height: 1; white-space: nowrap; background: var(--rmcv-fond); color: var(--rmcv-encre); }
.rmcv-f .cv-pastille.cv-ico::before { content: ""; display: block; width: 16px; height: 16px; flex-shrink: 0; background-color: currentColor; -webkit-mask: var(--cv-ico) center / contain no-repeat; mask: var(--cv-ico) center / contain no-repeat; }
.rmcv-f .cv-chapo { font-size: var(--taille-chapo, clamp(17px, calc(0.19vw + 16.26px), 19px)); line-height: 1.5; color: var(--rmcv-doux); max-width: 36em; }
.rmcv-f .rmcv-description, .rmcv-f .rmcv-quartier { display: grid; gap: 14px; max-width: 40em; font-size: 16px; line-height: 1.6; }

/* ---------- Équipements ---------- */
.rmcv-f .cv-equipements { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 32px; }
.rmcv-f .cv-equipement { display: flex; align-items: center; gap: 14px; font-size: 16px; }
.rmcv-f .cv-equipement::before { content: ""; display: block; width: 22px; height: 22px; flex-shrink: 0; background-color: currentColor; -webkit-mask: var(--cv-ico) center / contain no-repeat; mask: var(--cv-ico) center / contain no-repeat; }

/* ---------- Chambres ---------- */
.rmcv-f .rmcv-chambres { display: grid; gap: 24px; }
.rmcv-f .cv-chambres { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rmcv-f .cv-chambre { display: grid; gap: 12px; align-content: start; }
.rmcv-f .cv-chambre img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--rayon-petit, 12px); }
.rmcv-f .cv-chambre--texte { grid-template-columns: 22px minmax(0, 1fr); gap: 14px; align-items: start; padding: 18px 20px; border-radius: var(--rayon-petit, 12px); background: var(--rmcv-fond); }
.rmcv-f .cv-chambre--texte::before { content: ""; display: block; width: 22px; height: 22px; margin-top: 1px; background-color: currentColor; -webkit-mask: var(--cv-ico) center / contain no-repeat; mask: var(--cv-ico) center / contain no-repeat; }
.rmcv-f .cv-chambre div strong { font-weight: 600; display: block; }
.rmcv-f .cv-chambre div span { font-size: 14px; color: var(--rmcv-doux); }

/* ---------- Emplacement ---------- */
.rmcv-f .rmcv-emplacement { display: grid; gap: 24px; }
.rmcv-f .cv-carte-plan { position: relative; display: block; border-radius: var(--rayon-carte, 20px); overflow: hidden; height: 360px; background: var(--rmcv-fond); }
.rmcv-f .cv-carte-plan iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(1) contrast(1.05); }
.rmcv-f .cv-distances { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.rmcv-f .cv-distances li { display: flex; justify-content: space-between; gap: 12px; padding: 14px 18px; border-radius: var(--rayon-petit, 12px); background: var(--rmcv-fond); font-size: 15px; }
.rmcv-f .cv-distances li span:last-child { color: var(--rmcv-doux); white-space: nowrap; }

/* ---------- Avis ---------- */
.rmcv-f .rmcv-avis { display: grid; gap: 24px; }
.rmcv-f .cv-note-globale { display: flex; align-items: center; gap: 20px; }
.rmcv-f .cv-chiffre { font-family: var(--rmcv-police-titre); font-weight: 500; font-size: 56px; line-height: 1; letter-spacing: -0.04em; font-variation-settings: "opsz" 96; }
.rmcv-f .cv-etoiles { --n: 5; display: inline-flex; width: calc(var(--n) * 17px - 2px); height: 15px; color: var(--rmcv-accent-texte); background-color: currentColor; -webkit-mask: var(--rmcv-ico-etoile) left center / 15px 15px space; mask: var(--rmcv-ico-etoile) left center / 15px 15px space; }
.rmcv-f .cv-notes-detail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 32px; }
.rmcv-f .cv-notes-detail li { display: grid; gap: 6px; font-size: 14px; }
.rmcv-f .cv-notes-detail li div { display: flex; justify-content: space-between; }
.rmcv-f .cv-notes-detail strong { font-weight: 600; }
.rmcv-f .cv-jauge { width: 100%; height: 3px; border-radius: 3px; background: var(--rmcv-filet); overflow: hidden; }
.rmcv-f .cv-jauge span { display: block; height: 100%; background: var(--rmcv-encre); }
.rmcv-f .cv-avis-liste { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rmcv-f .cv-avis { display: flex; flex-direction: column; gap: 20px; padding: 28px; border-radius: var(--rayon-carte, 20px); background: var(--rmcv-fond); }
.rmcv-f .cv-avis blockquote { font-size: 16px; line-height: 1.5; letter-spacing: -0.01em; flex: 1; }
.rmcv-f .cv-auteur { display: flex; align-items: center; gap: 12px; }
.rmcv-f .cv-auteur__initiales { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--rmcv-ecume); font-weight: 600; font-size: 14px; flex: 0 0 auto; }
.rmcv-f .cv-auteur div strong { display: block; font-size: 15px; font-weight: 600; line-height: 1.3; }
.rmcv-f .cv-auteur div span { display: block; font-size: 13px; color: var(--rmcv-doux); }

/* ---------- Règles (« Bon à savoir ») ---------- */
.rmcv-f .cv-regles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.rmcv-f .cv-regle { display: grid; gap: 8px; align-content: start; padding: 20px; border-radius: var(--rayon-petit, 12px); background: var(--rmcv-fond); font-size: 15px; }
.rmcv-f .cv-regle::before { content: ""; display: block; width: 22px; height: 22px; background-color: currentColor; -webkit-mask: var(--cv-ico) center / contain no-repeat; mask: var(--cv-ico) center / contain no-repeat; }
.rmcv-f .cv-regle strong { font-weight: 600; }

/* ---------- « Vous aimerez aussi » (cartes du catalogue) ---------- */
.rmcv-f .cv-grille-logements--3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 16px; }
.rmcv-f .cv-logement { display: grid; gap: 16px; align-content: start; }
.rmcv-f .cv-logement__photo { position: relative; aspect-ratio: 1 / 1; border-radius: var(--rayon-carte, 20px); overflow: hidden; background: var(--rmcv-fond); }
.rmcv-f .cv-logement__photo img { width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .8s var(--rmcv-courbe); }
.rmcv-f .cv-logement:hover .cv-logement__photo img { transform: scale(1.06); }
.rmcv-f .cv-logement__photo::after { content: ""; position: absolute; right: 12px; bottom: 12px; width: 40px; height: 40px; z-index: 1; border-radius: 50%; background-color: var(--rmcv-accent); opacity: 0; transform: translateY(8px); transition: opacity .4s var(--rmcv-courbe), transform .45s var(--rmcv-courbe); pointer-events: none; }
.rmcv-f .cv-logement__photo::before { content: ""; position: absolute; right: 22px; bottom: 22px; width: 20px; height: 20px; z-index: 2; background-color: var(--rmcv-sur-accent); -webkit-mask: var(--rmcv-ico-fleche) center / contain no-repeat; mask: var(--rmcv-ico-fleche) center / contain no-repeat; opacity: 0; transform: translateY(8px); transition: opacity .4s var(--rmcv-courbe), transform .45s var(--rmcv-courbe); pointer-events: none; }
.rmcv-f .cv-logement:hover .cv-logement__photo::before, .rmcv-f .cv-logement:hover .cv-logement__photo::after,
.rmcv-f .cv-logement:focus-visible .cv-logement__photo::before, .rmcv-f .cv-logement:focus-visible .cv-logement__photo::after { opacity: 1; transform: none; }
.rmcv-f .cv-logement__haut { position: absolute; top: 12px; left: 12px; right: 12px; display: flex; justify-content: space-between; gap: 8px; }
.rmcv-f .cv-logement__haut .cv-pastille { height: 30px; padding: 0 12px; font-size: 13px; background: rgba(255, 255, 255, .92); }
.rmcv-f .cv-logement__corps { display: grid; gap: 4px; }
.rmcv-f .cv-logement__ligne { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.rmcv-f .cv-logement__nom { font-family: inherit; font-size: 18px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; }
.rmcv-f .cv-logement__note { display: inline-flex; align-items: center; gap: 4px; font-size: 14px; font-weight: 500; white-space: nowrap; }
.rmcv-f .cv-logement__note::before { content: ""; display: block; width: 14px; height: 14px; flex-shrink: 0; background-color: var(--rmcv-accent-texte); -webkit-mask: var(--rmcv-ico-etoile) center / contain no-repeat; mask: var(--rmcv-ico-etoile) center / contain no-repeat; }
.rmcv-f .cv-logement__infos { font-size: 14px; color: var(--rmcv-doux); }
.rmcv-f .cv-logement__prix { font-size: 15px; margin-top: 4px; }
.rmcv-f .cv-logement__prix strong { font-size: 17px; font-weight: 600; }

/* ---------- Visionneuse (si le code « Clevia - fiche logement » n'est pas installé) ---------- */
html.cv-bloque { overflow: hidden; }
.rmcv-visionneuse { position: fixed; inset: 0; z-index: 200; background: rgba(20, 25, 15, .96); color: #fff; display: grid; grid-template-rows: auto 1fr auto; opacity: 0; visibility: hidden; transition: opacity .4s cubic-bezier(0.22, 1, 0.36, 1), visibility .4s; font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
.rmcv-visionneuse.est-ouverte { opacity: 1; visibility: visible; transition: opacity .4s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s; }
.rmcv-visionneuse .cv-visionneuse__haut, .rmcv-visionneuse .cv-visionneuse__bas { display: flex; justify-content: space-between; align-items: center; padding: 20px 24px; gap: 16px; }
.rmcv-visionneuse .cv-visionneuse__image { display: grid; place-items: center; padding: 0 88px; min-height: 0; }
.rmcv-visionneuse .cv-visionneuse__image img { display: block; max-height: calc(100vh - 176px); max-height: calc(100svh - 176px); max-width: 100%; width: auto; height: auto; object-fit: contain; border-radius: 12px; }
.rmcv-visionneuse .cv-visionneuse__rond { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; flex: 0 0 auto; cursor: pointer; transition: background-color .3s cubic-bezier(0.22, 1, 0.36, 1), color .3s cubic-bezier(0.22, 1, 0.36, 1); }
.rmcv-visionneuse .cv-visionneuse__rond:hover, .rmcv-visionneuse .cv-visionneuse__rond:focus-visible { background: #fff; color: var(--rmcv-encre, #283020); }
.rmcv-visionneuse .cv-visionneuse__rond:focus-visible { outline: 2px solid var(--rmcv-accent, #8C6B2C); outline-offset: 3px; }
.rmcv-visionneuse .cv-visionneuse__rond svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Tablette ---------- */
@media (max-width: 1024px) {
  .rmcv-f .cv-galerie { grid-template-columns: 2fr 1fr; grid-template-rows: 220px 220px; }
  .rmcv-f .cv-galerie > :nth-child(n+4) { display: none; }
  .rmcv-f .cv-equipements { grid-template-columns: 1fr; }
  .rmcv-f .cv-notes-detail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rmcv-f .cv-avis-liste { grid-template-columns: 1fr; }
  .rmcv-f .cv-regles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rmcv-f .cv-grille-logements--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rmcv-f .cv-logement__photo::before, .rmcv-f .cv-logement__photo::after { opacity: 1; transform: none; }
}

/* ---------- Téléphone ---------- */
@media (max-width: 767px) {
  .rmcv-f .cv-galerie { grid-template-columns: none; grid-template-rows: none; grid-auto-flow: column; grid-auto-columns: 88%; height: 300px; overflow-x: auto; scroll-snap-type: x mandatory; border-radius: var(--rayon-carte, 16px); gap: 6px; scrollbar-width: none; }
  .rmcv-f .cv-galerie__photo { scroll-snap-align: start; border-radius: var(--rayon-carte, 16px); overflow: hidden; }
  .rmcv-f .cv-galerie__photo:first-child { grid-row: auto; }
  .rmcv-f .cv-galerie > .cv-galerie__photo:nth-child(n+4) { display: block; }
  .rmcv-f .cv-galerie > .cv-galerie__photo.rmcv-vide:not(:first-child) { display: none; }
  .rmcv-f .cv-galerie__tout { display: none; }
  .rmcv-f .cv-chambres { grid-template-columns: 1fr 1fr; gap: 8px; }
  .rmcv-f .cv-distances { grid-template-columns: 1fr; }
  .rmcv-f .cv-notes-detail { grid-template-columns: 1fr; }
  .rmcv-f .cv-regles { grid-template-columns: 1fr; }
  .rmcv-f .cv-carte-plan { height: 280px; }
  .rmcv-f .cv-avis { padding: 22px; }
  .rmcv-f .cv-grille-logements--3 { grid-template-columns: 1fr; gap: 32px; }
  .rmcv-f .cv-logement__nom { font-size: 17px; }
  .rmcv-visionneuse .cv-visionneuse__image { padding: 0 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .rmcv-f *, .rmcv-f *::before, .rmcv-f *::after, .rmcv-visionneuse, .rmcv-visionneuse * { transition-duration: .01ms !important; }
}
