/* ============================================================
   Location Sénégal — Charte V3 GLOBALE : header + footer (toutes pages)
   ============================================================ */
:root{
  --ls-green:#1E9E3E; --ls-green-dk:#157A30; --ls-green-light:#E8F5EC; --ls-orange:#992E09;
  --ls-ink:#16181D; --ls-txt:#4A5058; --ls-muted:#767B84; --ls-line:#E3E5E9;
  --ls-warm:#F6F4F0; --ls-cream:#FDF3D6; --ls-ftbg:#0E0F12; --ls-ftlink:#A8ADB5;
  --ls-cont:1200px; --ls-font:'Montserrat',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}
#ls-header,#ls-footer{font-family:var(--ls-font);box-sizing:border-box;}
#ls-header *,#ls-footer *{box-sizing:border-box;}
.ls-hd__wrap,.ls-ft__wrap{max-width:calc(var(--ls-cont) + 48px);margin:0 auto;padding:0 24px;width:100%;}

/* ===================== HEADER ===================== */
.ls-hd{background:#fff;position:relative;z-index:500;}
.ls-hd__top .ls-hd__wrap{display:flex;align-items:center;justify-content:space-between;padding-top:18px;padding-bottom:18px;}
.ls-hd__logo img{height:50px;width:auto;display:block;}
.ls-hd__logo span{font-weight:800;font-size:20px;color:var(--ls-ink);}
.ls-hd__actions{display:flex;align-items:center;gap:20px;}
.ls-hd__login{display:flex;align-items:center;gap:8px;color:var(--ls-ink);font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap;}
.ls-hd__login:hover{color:var(--ls-green);}
.ls-hd__social{display:flex;gap:12px;}
.ls-hd__social a{color:var(--ls-ink);font-size:16px;text-decoration:none;}
.ls-hd__social a:hover{color:var(--ls-green);}
.ls-hd__cur{display:flex;align-items:center;gap:7px;background:var(--ls-warm);border:none;border-radius:8px;padding:9px 12px 9px 14px;font-weight:600;font-size:14px;color:var(--ls-ink);cursor:pointer;font-family:var(--ls-font);}
.ls-hd__cur .fa-chevron-down{font-size:10px;color:var(--ls-muted);}
.ls-hd__lang{font-size:14px;color:var(--ls-muted);}
.ls-hd__lang strong{color:var(--ls-ink);font-weight:600;}
.ls-hd__lang a{color:var(--ls-muted);text-decoration:none;}
.ls-hd__lang a:hover{color:var(--ls-green);}
.ls-hd__wa{display:inline-flex;align-items:center;gap:8px;background:var(--ls-green);color:#fff;border-radius:8px;padding:13px 24px;font-weight:600;font-size:15px;text-decoration:none;white-space:nowrap;}
.ls-hd__wa:hover{background:var(--ls-green-dk);color:#fff;}

/* Bande 961–1100 px : l'en-tête mobile ne prend le relais qu'à 960 px, mais la rangée
   d'actions exige 878 à 909 px de large (le bouton WhatsApp est en `nowrap`). Entre les
   deux, la page débordait de 21 px à 1024 px — une largeur de fenêtre très courante —
   et TOUTES les pages étaient concernées, pas seulement la recherche. Mesuré le
   04/10/2026. Les icônes sociales sont décoratives : elles libèrent ~156 px. */
@media (min-width:961px) and (max-width:1100px){
  .ls-hd__social{display:none!important;}
  .ls-hd__actions{gap:14px!important;}
  .ls-hd__wa{padding:11px 16px!important;}
}
/* nav */
.ls-hd__nav{background:var(--ls-warm);position:relative;}
.ls-hd__navwrap{display:flex;align-items:stretch;gap:0;}
.ls-nav{position:static;}
.ls-nav__lbl{display:flex;align-items:center;gap:8px;padding:18px 36px 15px 0;font-size:13px;font-weight:500;letter-spacing:.6px;text-transform:uppercase;color:var(--ls-txt);text-decoration:none;border-bottom:3px solid transparent;transition:color .12s;}
.ls-nav__lbl .fa-chevron-down{font-size:10px;}
.ls-nav__lbl:hover,.ls-nav:hover .ls-nav__lbl{color:var(--ls-ink);}
.ls-nav__lbl.is-active{color:var(--ls-ink);font-weight:700;border-bottom-color:var(--ls-green);}
/* méga-menu */
.ls-mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--ls-line);box-shadow:0 12px 24px rgba(0,0,0,.1);padding:40px 0 44px;z-index:600;display:none;}
.ls-nav:hover .ls-mega,.ls-nav.is-open .ls-mega{display:block;}
.ls-mega__grid{display:flex;gap:24px;align-items:flex-start;}
.ls-mega__col{flex:1 1 0;display:flex;flex-direction:column;gap:13px;}
.ls-mega__ttl{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--ls-muted);margin:0;}
.ls-mega__col a{color:var(--ls-ink);font-size:15px;text-decoration:none;}
.ls-mega__col a:hover{color:var(--ls-green);}
.ls-mega__col a.is-strong{font-weight:600;}
.ls-mega__promo{flex:0 0 360px;background:var(--ls-cream);border-radius:12px;padding:24px;}
.ls-mega__promottl{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--ls-orange);margin:0 0 10px;}
.ls-mega__promoh{font-size:18px;font-weight:700;color:var(--ls-ink);margin:0 0 8px;line-height:1.3;}
.ls-mega__promop{font-size:14px;color:var(--ls-txt);margin:0 0 16px;line-height:1.7;}
.ls-mega__promobtn{display:inline-block;background:var(--ls-green);color:#fff;border-radius:8px;padding:12px 20px;font-weight:600;font-size:14px;text-decoration:none;}
.ls-mega__promobtn:hover{background:var(--ls-green-dk);color:#fff;}
.ls-hd__burger{display:none;background:none;border:none;font-size:22px;color:var(--ls-ink);cursor:pointer;}

/* ===================== FOOTER ===================== */
.ls-ft{background:var(--ls-ftbg);color:#fff;}
.ls-ft__cat{display:flex;gap:24px;padding-top:76px;padding-bottom:40px;}
.ls-ft__contact{display:flex;gap:24px;padding-top:40px;padding-bottom:72px;}
.ls-ft__col{flex:1 1 0;display:flex;flex-direction:column;gap:13px;min-width:0;}
.ls-ft__ttl{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#fff;margin:0;}
.ls-ft__col a{color:var(--ls-ftlink);font-size:14px;text-decoration:none;line-height:1.45;}
.ls-ft__col a:hover{color:#fff;}
.ls-ft__col a.is-strong{color:#fff;font-weight:600;}
.ls-ft__sep{height:1px;background:rgba(255,255,255,.12);}
.ls-ft__brand{flex:0 0 600px;display:flex;gap:32px;align-items:flex-start;}
.ls-ft__logo{height:56px;width:auto;}
.ls-ft__logotxt{font-weight:800;font-size:22px;color:#fff;}
.ls-ft__coord{display:flex;flex-direction:column;gap:10px;color:var(--ls-ftlink);font-size:14px;}
.ls-ft__coord p{margin:0;line-height:1.65;}
.ls-ft__coord a{color:var(--ls-ftlink);text-decoration:none;}
.ls-ft__coord a:hover{color:#fff;}
.ls-ft__bottom{background:var(--ls-orange);}
.ls-ft__bottomwrap{display:flex;align-items:center;gap:24px;padding-top:22px;padding-bottom:22px;}
.ls-ft__copy{flex:1;margin:0;font-size:13px;color:#fff;line-height:1.5;}
.ls-ft__copy a{color:#fff;text-decoration:none;}
.ls-ft__copy a:hover{text-decoration:underline;}
.ls-ft__follow{display:flex;align-items:center;gap:12px;margin:0;color:#fff;font-size:12px;font-weight:700;white-space:nowrap;}
.ls-ft__follow a{color:#fff;font-size:16px;text-decoration:none;}

/* ===================== MOBILE ===================== */
.ls-hd__mfoot{display:none;}
@media (max-width:960px){
  .ls-hd__top{position:relative;}
  .ls-hd__top .ls-hd__wrap{padding-top:14px;padding-bottom:14px;}
  .ls-hd__logo img{height:42px;}
  .ls-hd__actions{display:none;}
  .ls-hd__nav{display:none;}
  .ls-hd__burger{display:block;position:absolute;right:20px;top:50%;transform:translateY(-50%);z-index:720;}
  /* menu plein écran */
  .ls-hd.is-open .ls-hd__nav{display:flex;flex-direction:column;position:fixed;left:0;right:0;top:70px;bottom:0;background:#fff;z-index:700;overflow:auto;}
  /* Le panneau est fixé à 71 px du haut, mais la barre du logo, elle, restait dans le flux :
     dès qu'on avait défilé, elle partait hors écran et les 71 px libérés laissaient voir la
     page derrière — une carte, un bout de texte — au-dessus du menu, sans logo ni croix de
     fermeture. Signalé par Khadija le 30/09/2026. */
  .ls-hd.is-open .ls-hd__top{position:fixed;top:0;left:0;right:0;background:#fff;z-index:710;}
  .ls-hd.is-open .ls-hd__burger{position:fixed;top:35px;transform:translateY(-50%);}
  .ls-hd.is-open .ls-hd__navwrap{flex-direction:column;align-items:stretch;padding:0 20px;flex:1 0 auto;gap:0;}
  .ls-hd.is-open .ls-nav{border-bottom:1px solid var(--ls-line);}
  .ls-hd.is-open .ls-nav__lbl{padding:18px 0;font-size:15px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--ls-ink);border-bottom:none;justify-content:space-between;}
  .ls-hd.is-open .ls-nav__lbl.is-active{border-bottom:none;}
  .ls-hd.is-open .ls-nav__lbl .fa-chevron-down{display:none;}
  .ls-hd.is-open .ls-nav[data-mega]>.ls-nav__lbl::after{content:"+";color:var(--ls-muted);font-size:20px;font-weight:400;line-height:1;}
  .ls-hd.is-open .ls-nav[data-mega].is-open>.ls-nav__lbl::after{content:"−";}
  .ls-hd.is-open .ls-nav:not([data-mega])>.ls-nav__lbl::after{content:"›";color:var(--ls-muted);font-size:18px;}
  .ls-hd.is-open .ls-mega{position:static;display:none;box-shadow:none;border-top:none;padding:0 0 14px;}
  .ls-hd.is-open .ls-nav.is-open .ls-mega{display:block;}
  .ls-hd.is-open .ls-mega .ls-hd__wrap{padding:0;}
  .ls-hd.is-open .ls-mega__grid{flex-direction:column;gap:0;}
  .ls-hd.is-open .ls-mega__ttl{display:none;}
  .ls-hd.is-open .ls-mega__promo{display:none;}
  .ls-hd.is-open .ls-mega__col{gap:0;border-left:2px solid var(--ls-line);padding-left:14px;}
  .ls-hd.is-open .ls-mega__col a{padding:9px 0;font-size:14px;color:var(--ls-txt);}
  /* pied de menu */
  .ls-hd.is-open .ls-hd__mfoot{display:flex;flex-direction:column;gap:12px;background:var(--ls-warm);padding:22px 20px 28px;margin-top:auto;}
  .ls-hd__mwa{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--ls-green);color:#fff;border-radius:8px;padding:14px 20px;font-weight:600;font-size:15px;text-decoration:none;}
  .ls-hd__mlogin{display:flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:8px;color:var(--ls-ink);font-weight:600;font-size:15px;text-decoration:none;}
  .ls-hd__mswitch{display:flex;gap:16px;justify-content:center;font-weight:600;font-size:13px;color:var(--ls-txt);}
  body.ls-menu-open{overflow:hidden;}
  /* footer mobile : accordéon */
  .ls-ft__cat{flex-direction:column;gap:0;padding-top:28px;padding-bottom:0;}
  .ls-ft__contact{flex-direction:column;gap:0;padding-top:0;padding-bottom:24px;}
  .ls-ft__wrap .ls-ft__sep{display:none;}
  .ls-ft__col{border-bottom:1px solid rgba(255,255,255,.12);gap:0;}
  .ls-ft__ttl{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:18px 0;margin:0;}
  .ls-ft__ttl::after{content:"+";color:var(--ls-ftlink);font-size:20px;font-weight:400;line-height:1;}
  .ls-ft__col.is-open .ls-ft__ttl::after{content:"−";}
  .ls-ft__col a{display:none;padding:8px 0;}
  .ls-ft__col.is-open a{display:block;}
  .ls-ft__brand{flex:none;flex-direction:column;gap:18px;padding:24px 0 8px;border-bottom:none;}
  .ls-ft__bottomwrap{flex-direction:column;align-items:flex-start;gap:12px;}
}

/* ============================================================
   Pages éditoriales — hero + contenu (.ls-arthero / .ls-article)
   Vacances, guides, pages légales. Template : template-article.php
   ============================================================ */
.ls-arthero{background:var(--ls-warm);border-bottom:1px solid var(--ls-line);font-family:var(--ls-font);}
.ls-arthero *{font-family:var(--ls-font);}
.ls-arthero__wrap{max-width:calc(var(--ls-cont) + 48px);margin:0 auto;padding:46px 24px 40px;}
.ls-arthero__crumb{font-size:12px;color:var(--ls-muted);margin:0 0 16px;}
.ls-arthero__crumb a{color:var(--ls-muted);text-decoration:none;}
.ls-arthero__crumb a:hover{color:var(--ls-green);}
.ls-arthero__sep{color:var(--ls-line);margin:0 2px;}
.ls-arthero__eyebrow{display:block;font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--ls-orange);margin:0 0 10px;}
.ls-arthero__title{font-size:34px;line-height:1.2;font-weight:700;color:var(--ls-ink);margin:0;max-width:920px;}
.ls-article{max-width:768px;margin:0 auto;padding:46px 24px 76px;font-family:var(--ls-font);font-size:16px;line-height:1.75;color:var(--ls-txt);}
.ls-article > p:first-of-type{font-size:18px;line-height:1.7;color:var(--ls-ink);}
.ls-article h2{font-size:23px;line-height:1.3;font-weight:700;color:var(--ls-ink);margin:46px 0 14px;}
.ls-article h3{font-size:18px;font-weight:600;color:var(--ls-ink);margin:30px 0 10px;}
.ls-article p{margin:0 0 18px;}
.ls-article a{color:var(--ls-green-dk);text-decoration:underline;text-underline-offset:2px;}
.ls-article a:hover{color:var(--ls-green);}
.ls-article strong{color:var(--ls-ink);font-weight:600;}
.ls-article ul,.ls-article ol{margin:0 0 18px;padding-left:22px;}
.ls-article li{margin:0 0 8px;}
.ls-article blockquote{margin:0 0 22px;padding:14px 18px;border-left:3px solid var(--ls-green);background:var(--ls-green-light);border-radius:0 8px 8px 0;color:var(--ls-ink);font-style:normal;}
.ls-article blockquote p:last-child{margin:0;}
.ls-tablewrap{overflow-x:auto;margin:0 0 24px;border:1px solid var(--ls-line);border-radius:10px;-webkit-overflow-scrolling:touch;}
.ls-article table{width:100%;border-collapse:collapse;font-size:14.5px;}
.ls-article th,.ls-article td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--ls-line);vertical-align:top;line-height:1.55;}
.ls-article table tr:last-child td{border-bottom:none;}
.ls-article table tr:first-child th{background:var(--ls-green-light);color:var(--ls-green-dk);font-weight:700;font-size:12.5px;letter-spacing:.3px;text-transform:uppercase;}
.ls-article table tr:nth-child(2n) td{background:var(--ls-warm);}
.ls-article td:first-child{font-weight:600;color:var(--ls-ink);}
.ls-article__cta{margin:44px 0 0;padding:26px 28px;background:var(--ls-cream);border-radius:14px;}
.ls-article__cta h2{margin-top:0;}
@media (max-width:820px){
  .ls-arthero__wrap{padding:28px 20px 24px;}
  .ls-arthero__title{font-size:25px;}
  .ls-article{padding:28px 20px 48px;font-size:15.5px;line-height:1.72;}
  .ls-article > p:first-of-type{font-size:16.5px;}
  .ls-article h2{font-size:20px;margin-top:34px;}
  .ls-article table{font-size:13.5px;}
  .ls-article th,.ls-article td{padding:10px 12px;}
}

/* ============================================================
   Vacances hub (page pilier) — Figma 985:7438
   ============================================================ */
.ls-vhub{font-family:var(--ls-font);--vw:calc(var(--ls-cont) + 48px);}
.ls-vhub *{font-family:var(--ls-font);}
/* neutralise la couleur h2 du thème (Salient) au profit de la charte */
.ls-vhub h2{color:var(--ls-ink)!important;}
.ls-vhub .ls-vcta__h{color:#fff!important;}
.ls-vwrap,.ls-vreaders__grid,.ls-vguides,.ls-vcta__banner{max-width:var(--vw);margin-left:auto;margin-right:auto;}
/* hero */
.ls-vhero{background:var(--ls-warm);border-bottom:1px solid var(--ls-line);}
.ls-vhero__wrap{max-width:var(--vw);margin:0 auto;padding:44px 24px 48px;}
.ls-vhero__crumb{font-size:12px;color:var(--ls-muted);margin:0 0 18px;}
.ls-vhero__crumb a{color:var(--ls-muted);text-decoration:none;}
.ls-vhero__crumb a:hover{color:var(--ls-green);}
.ls-vhero__crumb span{color:var(--ls-line);margin:0 4px;}
/* Le dernier span est la PAGE COURANTE, pas un séparateur : la règle ci-dessus la peignait
   en --ls-line (#E3E5E9, la couleur des filets) sur un fond --ls-warm (#F6F4F0), soit un
   contraste de 1,15:1 quand le minimum lisible est 4,5:1 — elle était invisible. Aucun des
   cinq autres fils d'Ariane de la charte ne colore ses span. Relevé par Hamid le 05/10/2026
   sur /vacances/, /vacances/taxe-de-promotion-touristique/ et /vacances/monnaie-et-paiement/. */
.ls-vhero__crumb span:last-child{color:var(--ls-ink);}
.ls-vtag{display:inline-block;background:var(--ls-green-light);color:var(--ls-green-dk);font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;border-radius:999px;padding:6px 14px;margin:0 0 16px;}
.ls-vhero__h1{font-size:44px;line-height:1.15;font-weight:800;color:var(--ls-ink);margin:0 0 18px;max-width:900px;letter-spacing:-.01em;}
.ls-vhero__sub{font-size:20px;line-height:1.5;font-weight:600;color:var(--ls-ink);margin:0 0 14px;max-width:860px;}
.ls-vhero__body{font-size:16px;line-height:1.75;color:var(--ls-txt);margin:0;max-width:860px;}
/* 3 lecteurs */
.ls-vreaders{padding:36px 0 8px;}
.ls-vreaders__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:0 24px;}
.ls-vreader{border-radius:14px;padding:26px 28px;}
.ls-vreader--visitor{background:#e8f5ec;}
.ls-vreader--resident{background:#fdf3d6;}
.ls-vreader--diaspora{background:#f6f4f0;}
.ls-vreader__eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;margin:0 0 12px;}
.ls-vreader--visitor .ls-vreader__eyebrow{color:#157a30;}
.ls-vreader--resident .ls-vreader__eyebrow{color:#992e09;}
.ls-vreader--diaspora .ls-vreader__eyebrow{color:var(--ls-ink);}
.ls-vreader__h{font-size:20px;font-weight:700;color:var(--ls-ink);margin:0 0 10px;line-height:1.3;}
.ls-vreader p{font-size:15px;line-height:1.75;color:#4a5058;margin:0;}
/* lead sous les cartes */
.ls-vlead{max-width:860px;margin:26px auto 0;padding:0 24px;font-size:17px;line-height:1.7;color:var(--ls-txt);}
.ls-vlead strong{color:var(--ls-ink);font-weight:600;}
/* corps : hérite de .ls-article ; centré, lisible */
.ls-vbody{max-width:820px;}
/* guides */
.ls-vguides{padding:8px 24px 8px;}
.ls-vguides__h{font-size:32px;font-weight:800;color:var(--ls-ink);margin:24px 0 8px;line-height:1.2;}
.ls-vguides__lead{font-size:17px;color:#4a5058;margin:0 0 24px;}
.ls-vguides__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ls-vguide{display:flex;flex-direction:column;background:#fff;border:1px solid var(--ls-line);border-radius:12px;padding:24px 26px;min-height:280px;text-decoration:none;transition:box-shadow .16s,transform .16s;}
.ls-vguide.is-live{border-color:var(--ls-green);}
a.ls-vguide.is-live:hover{box-shadow:0 12px 28px rgba(15,23,41,.10);transform:translateY(-2px);}
.ls-vguide__top{display:flex;align-items:center;gap:10px;margin:0 0 14px;}
.ls-vguide__path{font-size:10px;color:var(--ls-muted);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;}
.ls-vguide__badge{flex:0 0 auto;font-size:9px;font-weight:600;border-radius:999px;padding:4px 9px;background:#f6f4f0;color:var(--ls-muted);}
.ls-vguide__badge.is-on{background:#e8f5ec;color:#157a30;}
.ls-vguide__h{font-size:19px;font-weight:700;color:var(--ls-ink);margin:0 0 9px;line-height:1.32;}
.ls-vguide.is-soon .ls-vguide__h{color:#4a5058;}
.ls-vguide__desc{font-size:14px;line-height:1.75;color:#4a5058;margin:0 0 16px;flex:1;}
.ls-vguide.is-soon .ls-vguide__desc{color:var(--ls-muted);}
.ls-vguide__more{font-size:14px;font-weight:600;color:var(--ls-green);margin-top:auto;}
.ls-vguide__more.is-soon{color:var(--ls-muted);font-weight:500;}
/* FAQ accordéon */
/* ALIGNEMENT SUR LA COLONNE DE LECTURE. `.ls-article` fait 768px + 2x24 de marge interne,
   centrée. Ces deux sections prenaient toute la largeur du conteneur (1200px) avec un
   contenu de 860px ÉPINGLÉ À GAUCHE : le titre « Questions fréquentes » commençait à 113px
   quand le texte de l'article commençait à 303px. Mesuré à 1440px de large, relevé par
   Hamid le 05/10/2026 sur la taxe, la monnaie et le hub Vacances.
   On leur donne la même colonne : 816 = 768 + 2x24. */
.ls-vfaq{max-width:816px;margin:0 auto;padding:44px 24px 8px;}
.ls-vfaq__h{font-size:28px;font-weight:800;color:var(--ls-ink);margin:0 0 22px;}
.ls-vfaq__list{max-width:100%;}
.ls-vfaq__item{border:1px solid var(--ls-line);border-radius:12px;margin:0 0 12px;background:#fff;overflow:hidden;}
.ls-vfaq__item[open]{border-color:var(--ls-green);}
.ls-vfaq__item summary{list-style:none;cursor:pointer;padding:18px 22px;font-size:16px;font-weight:600;color:var(--ls-ink);display:flex;align-items:center;gap:12px;}
.ls-vfaq__item summary::-webkit-details-marker{display:none;}
.ls-vfaq__item summary::after{content:"+";flex:0 0 24px;margin-left:auto;text-align:center;font-size:22px;font-weight:400;color:var(--ls-green);line-height:1;transition:transform .18s;}
.ls-vfaq__item[open] summary::after{content:"−";}
.ls-vfaq__a{padding:0 22px 20px;font-size:15px;line-height:1.75;color:var(--ls-txt);}
.ls-vfaq__a p{margin:0;}
/* sources / ce que nous n'avons pas pu établir */
.ls-vsources{max-width:816px;margin:0 auto;padding:8px 24px;}
.ls-vsources__in{max-width:100%;margin:0;padding:22px 24px;background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:14px;font-size:13.5px;line-height:1.7;color:var(--ls-muted);}
.ls-vsources__in h2{font-size:15px;font-weight:700;color:var(--ls-ink);margin:0 0 10px;}
.ls-vsources__in p{margin:0 0 10px;}
.ls-vsources__in p:last-child{margin:0;}
/* CTA final */
.ls-vcta{padding:36px 24px 72px;}
.ls-vcta__banner{background:#0e0f12;border-radius:16px;padding:44px 48px;display:flex;align-items:center;gap:40px;}
.ls-vcta__txt{flex:1;min-width:0;}
.ls-vcta__h{font-size:30px;font-weight:800;color:#fff;margin:0 0 10px;line-height:1.25;}
.ls-vcta__sub{font-size:16px;line-height:1.7;color:rgba(255,255,255,.75);margin:0;}
.ls-vcta__btns{display:flex;flex-direction:column;gap:12px;flex:0 0 auto;}
.ls-vcta__btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:15px 28px;font-size:15px;font-weight:600;text-decoration:none;white-space:nowrap;}
.ls-vcta__btn--primary{background:var(--ls-green);color:#fff;}
.ls-vcta__btn--primary:hover{background:var(--ls-green-dk);}
.ls-vcta__btn--ghost{border:1px solid rgba(255,255,255,.3);color:#fff;}
.ls-vcta__btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);}
@media (max-width:900px){
  .ls-vreaders__grid,.ls-vguides__grid{grid-template-columns:1fr;}
  .ls-vhero__h1{font-size:30px;}
  .ls-vhero__sub{font-size:17px;}
  .ls-vguides__h{font-size:25px;}
  .ls-vcta__banner{flex-direction:column;align-items:flex-start;padding:30px 26px;gap:22px;}
  .ls-vcta__h{font-size:23px;}
  .ls-vcta__btns{width:100%;}
  .ls-vcta__btn{width:100%;}
}
/* --- Guide (rubrique Vacances) : méta + sommaire + related --- */
.ls-guide__meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--ls-muted);margin:18px 0 0;}
.ls-guide__dot{color:var(--ls-line);}
.ls-guide__toc{max-width:var(--vw);margin:26px auto 0;padding:0 24px;}
.ls-guide__toctitle{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--ls-muted);margin:0 0 14px;}
.ls-guide__toc ol{list-style:none!important;margin:0;padding:22px 26px;background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px 26px;}
.ls-guide__toc li{margin:0;list-style:none!important;}
.ls-guide__toc li::marker{content:"";}
.ls-guide__toc a{display:flex;align-items:baseline;gap:10px;color:var(--ls-ink);text-decoration:none;font-size:14px;font-weight:600;line-height:1.35;}
.ls-guide__toc a:hover{color:var(--ls-green-dk);}
.ls-guide__tocnum{color:var(--ls-green);font-weight:700;font-size:12px;flex:0 0 auto;font-variant-numeric:tabular-nums;}
.ls-guide .ls-vbody{margin-top:8px;}
.ls-guide__related{padding-top:8px;}
/* En un coup d'œil (913:4648) */
.ls-guide__glance{max-width:var(--vw);margin:26px auto 0;padding:0 24px;}
.ls-guide__glancegrid{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--ls-line);border-radius:16px;overflow:hidden;box-shadow:0 6px 20px rgba(15,23,41,.05);}
.ls-guide__stat{padding:24px 26px;border-left:1px solid var(--ls-line);display:flex;flex-direction:column;gap:5px;}
.ls-guide__stat:first-child{border-left:none;}
.ls-guide__statbig{font-size:25px;font-weight:800;color:var(--ls-ink);line-height:1.1;letter-spacing:-.01em;}
.ls-guide__statlbl{font-size:13px;color:var(--ls-txt);line-height:1.45;}
.ls-guide__statpre{font-size:12px;color:var(--ls-green-dk);font-weight:700;margin-top:2px;}
@media(max-width:760px){.ls-guide__glancegrid{grid-template-columns:1fr 1fr;}.ls-guide__stat:nth-child(2n){border-left:1px solid var(--ls-line);}.ls-guide__stat:nth-child(n+3){border-top:1px solid var(--ls-line);}}
@media (max-width:900px){
  .ls-guide__toc ol{grid-template-columns:1fr;}
}
   Cartes logement .lscard — GLOBAL (home + listing zones + recherche)
   ============================================================ */
.ls-listing{max-width:calc(var(--ls-cont) + 48px);margin:0 auto;padding:8px 24px 8px;}
.ls-listing__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 22px;flex-wrap:wrap;}
.ls-listing__count{font-size:14px;color:var(--ls-muted);font-weight:500;}
.lscards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.lscard{background:#fff;border:1px solid var(--ls-line);border-radius:16px;box-shadow:0 8px 24px rgba(15,23,41,.08);overflow:hidden;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease;}
.lscard:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,23,41,.13);}
.lscard__media{position:relative;display:block;height:252px;background:#dfe3df center/cover no-repeat;flex:0 0 auto;}
.lscard__badge{position:absolute;top:16px;left:16px;background:#fff;color:var(--ls-ink);font-weight:600;font-size:12px;line-height:1;padding:8px 14px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.12);}
.lscard__body{flex:1 1 auto;display:flex;flex-direction:column;padding:22px;gap:14px;}
.lscard__name{font-size:18px;font-weight:600;line-height:26px;margin:0;}
.lscard__name a{color:var(--ls-ink);text-decoration:none;}
.lscard__name a:hover{color:var(--ls-green);}
.lscard__loc{font-size:13px;font-weight:600;color:var(--ls-green);margin:0;}
.lscard__specs{display:flex;flex-wrap:wrap;align-items:center;gap:9px 16px;}
.lscard__spec{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;color:var(--ls-txt);white-space:nowrap;}
.lscard__spec i{font-size:14px;color:var(--ls-ink);width:17px;text-align:center;line-height:1;}
.lscard__sep{height:1px;background:var(--ls-line);margin-top:auto;}
.lscard__prices{display:flex;flex-direction:column;gap:8px;}
.lscard__price{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.lscard__from{font-size:12px;font-weight:500;color:var(--ls-muted);}
.lscard__pricev{display:inline-flex;align-items:baseline;gap:5px;}
.lscard__amount{font-size:22px;font-weight:700;color:var(--ls-green-dk);white-space:nowrap;}
.lscard__unit{font-size:13px;font-weight:500;color:var(--ls-muted);}
.lscard__resident{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--ls-cream);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--ls-ink);}
.lscard__resident span{font-weight:600;}
.lscard__resident strong{font-size:14px;font-weight:700;white-space:nowrap;}
.lscard__degr{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;background:var(--ls-green-light,#E8F5EC);color:var(--ls-green-dk);border-radius:5px;padding:7px 12px;font-size:12px;font-weight:600;}
.lscard__degr i{font-size:14px;}
.lscard__btn{display:flex;align-items:center;justify-content:center;height:50px;border:1.4px solid var(--ls-green);border-radius:8px;color:var(--ls-green-dk);font-weight:600;font-size:15px;text-decoration:none;transition:all .15s ease;}
.lscard__btn:hover{background:var(--ls-green);color:#fff;box-shadow:0 6px 16px rgba(30,158,62,.3);}
/* État vide (Figma 512:2362) */
.ls-empty{max-width:760px;margin:8px auto 40px;background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:16px;padding:40px 36px;text-align:center;}
.ls-empty__ico{width:56px;height:56px;border-radius:999px;background:var(--ls-green-light);color:var(--ls-green-dk);display:inline-flex;align-items:center;justify-content:center;font-size:24px;margin:0 0 18px;}
.ls-empty h2{font-size:22px;font-weight:700;color:var(--ls-ink);margin:0 0 10px;}
.ls-empty p{font-size:15px;line-height:1.7;color:var(--ls-txt);margin:0 auto 22px;max-width:520px;}
.ls-empty__actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.ls-empty__btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:13px 24px;font-weight:600;font-size:15px;text-decoration:none;}
.ls-empty__btn--p{background:var(--ls-green);color:#fff;}.ls-empty__btn--p:hover{background:var(--ls-green-dk);color:#fff;}
.ls-empty__btn--o{background:#fff;border:1.5px solid var(--ls-green);color:var(--ls-green-dk);}.ls-empty__btn--o:hover{background:var(--ls-green-light);}
@media (max-width:1024px){.lscards{grid-template-columns:repeat(2,1fr);}}
@media (max-width:680px){.lscards{grid-template-columns:1fr;}.ls-listing{padding:8px 20px;}}

/* --- État vide listing zone (Figma 512:2362) --- */
.ls-zempty{max-width:calc(var(--ls-cont) + 48px);margin:0 auto;padding:8px 24px 48px;font-family:var(--ls-font);}
.ls-zempty__msg{background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:16px;padding:30px 32px;margin:0 0 34px;}
.ls-zempty__msg h2{font-size:22px;font-weight:700;color:var(--ls-ink);margin:0 0 10px;}
.ls-zempty__msg p{font-size:15px;line-height:1.7;color:var(--ls-txt);margin:0;max-width:760px;}
.ls-zempty__alts{display:flex;flex-direction:column;gap:20px;margin:0 0 40px;}
.ls-zempty__altlbl{display:block;font-size:12px;font-weight:700;letter-spacing:.4px;color:var(--ls-muted);text-transform:uppercase;margin:0 0 12px;}
.ls-zempty__chips{display:flex;flex-wrap:wrap;gap:10px;}
.ls-zempty__chips a{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--ls-line);border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600;color:var(--ls-ink);text-decoration:none;transition:border-color .15s,background .15s;}
.ls-zempty__chips a::after{content:"›";color:var(--ls-muted);font-size:15px;}
.ls-zempty__chips a:hover{border-color:var(--ls-green);background:var(--ls-green-light);color:var(--ls-green-dk);}
.ls-zempty__owner{background:var(--ls-green-light);border-radius:16px;padding:30px 32px;}
.ls-zempty__eyebrow{display:block;font-size:12px;font-weight:700;letter-spacing:.6px;color:var(--ls-green-dk);text-transform:uppercase;margin:0 0 8px;}
.ls-zempty__ownh{font-size:24px;font-weight:800;color:var(--ls-ink);margin:0 0 6px;}
.ls-zempty__ownp{font-size:15px;color:var(--ls-txt);margin:0 0 16px;}
.ls-zempty__pts{display:flex;flex-wrap:wrap;gap:10px 26px;margin:0 0 22px;}
.ls-zempty__pt{font-size:14px;color:var(--ls-ink);font-weight:500;display:inline-flex;align-items:center;gap:8px;}
.ls-zempty__pt i{color:var(--ls-green);}
.ls-zempty__cta{background:#0e0f12;border-radius:14px;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.ls-zempty__ctatxt{display:flex;flex-direction:column;gap:3px;color:#fff;min-width:0;}
.ls-zempty__ctatxt strong{font-size:17px;font-weight:700;}
.ls-zempty__ctatxt span{font-size:15px;color:rgba(255,255,255,.72);}
.ls-zempty__ctabtns{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:0 0 auto;}
.ls-zempty__btn{background:var(--ls-green);color:#fff;border-radius:999px;padding:13px 26px;font-weight:600;font-size:15px;text-decoration:none;white-space:nowrap;}
.ls-zempty__btn:hover{background:var(--ls-green-dk);color:#fff;}
.ls-zempty__link{color:rgba(255,255,255,.85);font-size:13px;text-decoration:underline;text-underline-offset:2px;white-space:nowrap;}
.ls-zempty__link:hover{color:#fff;}
@media (max-width:680px){
  .ls-zempty{padding:8px 20px 40px;}
  .ls-zempty__cta{flex-direction:column;align-items:flex-start;}
  .ls-zempty__ctabtns{align-items:stretch;width:100%;}
  .ls-zempty__btn{text-align:center;}
}

/* VikBooking — boutons primaires alignés sur le vert charte (dont le "Réservez" noir) */
.vbo-pref-color-btn,.vbsearchinputmodhors,button.vbsearchinputmodhors{background:var(--ls-green)!important;border-color:var(--ls-green)!important;color:#fff!important;}
.vbo-pref-color-btn:hover,.vbsearchinputmodhors:hover{background:var(--ls-green-dk)!important;border-color:var(--ls-green-dk)!important;}

/* ============================================================
   Recherche VikBooking (399:942) — cartes charte, 1re passe
   ============================================================ */
.vbo-searchresults-classic-wrap.vbo-grid-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch;list-style:none;margin:0;padding:0;}
.vbo-grid-wrap .room_item{background:#fff;border:1px solid var(--ls-line);border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(15,23,41,.08);display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease;}
.vbo-grid-wrap .room_item:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,23,41,.13);}
.vbo-grid-wrap .vblistroomblock{display:flex;flex-direction:column;height:100%;}
.vbo-grid-wrap .vbimglistdiv{width:100%!important;margin:0!important;float:none!important;height:220px;overflow:hidden;flex:0 0 auto;}
.vbo-grid-wrap .vbimglistdiv a{display:block;height:100%;}
.vbo-grid-wrap img.vbmodroomsimg{width:100%!important;height:220px!important;object-fit:cover;display:block;}
.vbo-grid-wrap .room_desc{display:flex;flex-direction:column;gap:12px;padding:22px;flex:1 1 auto;}
.vbo-grid-wrap .vbo-info-room{margin:0!important;padding:0!important;}
.vbo-grid-wrap .vbc-title-room{display:flex;flex-direction:column;gap:8px;}
.vbo-grid-wrap .vbdescrlistdiv{margin:0;padding:0;}
.vbo-grid-wrap .vblistroomcat{font-size:18px!important;font-weight:600!important;color:var(--ls-ink)!important;line-height:1.4;display:block;text-transform:none;}
.vbo-grid-wrap .vbsrowprice{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0;padding:0;border:none;}
.vbo-grid-wrap .vbrowroomcapacity{color:var(--ls-muted);font-size:13px;}
.vbo-grid-wrap .vbsrowpricediv{margin:0;}
.vbo-grid-wrap .room_cost{font-size:inherit;color:inherit;}
.vbo-grid-wrap .currency_price{display:inline-flex;align-items:baseline;gap:4px;}
.vbo-grid-wrap .vbo_price{font-size:22px;font-weight:700;color:var(--ls-green-dk);}
.vbo-grid-wrap .vbo_currency{font-size:13px;font-weight:600;color:var(--ls-muted);}
.vbo-grid-wrap .vbrowcdescr{font-size:14px;line-height:1.6;color:var(--ls-txt);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.vbo-grid-wrap .vbcs-extra-infos{margin-top:auto!important;}
.vbo-grid-wrap .vbmodrooms-carats{margin:0;}
.vbo-grid-wrap .vbmodrooms-carats .vb-carats-icons{display:flex;flex-wrap:wrap;gap:10px 14px;}
.vbo-grid-wrap .vb-ico{color:var(--ls-ink);font-size:15px;}
.vbo-grid-wrap .vbcontdivtot,.vbo-grid-wrap .vbsont{display:flex;gap:10px;padding:16px 22px 22px;margin-top:12px;border-top:1px solid var(--ls-line);}
.vbo-grid-wrap .vbselectr-result{flex:1;}
.vbo-grid-wrap .btn.vbo-pref-color-btn{border-radius:8px!important;font-weight:600!important;padding:12px 16px!important;font-size:14px!important;line-height:1.2;}
.vbo-grid-wrap a.btn.vbo-pref-color-btn{background:#fff!important;color:var(--ls-green-dk)!important;border:1.4px solid var(--ls-green)!important;}
.vbo-grid-wrap a.btn.vbo-pref-color-btn:hover{background:var(--ls-green)!important;color:#fff!important;}
/* Bandeau résumé recherche */
.vbo-results-customhead,.vbo-results-head{background:#fff;border:1px solid var(--ls-line);border-radius:14px;padding:16px 20px!important;margin:0 0 22px!important;box-shadow:0 6px 18px rgba(15,23,41,.06);}
.vbo-results-chdates .vbo-pref-color-btn-secondary,.vbo-results-chdates a{background:var(--ls-green-light)!important;color:var(--ls-green-dk)!important;border-radius:8px!important;padding:10px 16px!important;font-weight:600!important;border:none!important;text-decoration:none!important;}

/* Recherche : layout résultats (gauche) + carte Google (droite, sticky) */
.vbo-searchresults-classic-extra-wrap.ls-hasmap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,48%);gap:24px;align-items:start;width:100%;max-width:1360px;margin-left:auto;margin-right:auto;}
.vbo-searchresults-classic-extra-wrap.ls-hasmap .vbo-grid-wrap{grid-template-columns:repeat(2,1fr);}
.ls-mapcol{position:sticky;top:20px;height:calc(100vh - 120px);min-height:600px;}
#ls-searchmap{width:100%;height:100%;border-radius:16px;overflow:hidden;border:1px solid var(--ls-line);background:#e9ece8;}
.room_item.ls-card-hl{box-shadow:0 0 0 2px var(--ls-green),0 16px 34px rgba(15,23,41,.15);}
@media(max-width:1024px){.vbo-searchresults-classic-extra-wrap.ls-hasmap{grid-template-columns:1fr;}.ls-mapcol{display:none;}}
@media(max-width:680px){.vbo-searchresults-classic-extra-wrap.ls-hasmap .vbo-grid-wrap,.vbo-grid-wrap{grid-template-columns:1fr;}}

/* Recherche : la barre-résumé occupe toute la largeur (au-dessus de résultats+carte) */
.vbo-searchresults-classic-extra-wrap.ls-hasmap>.vbo-results-customhead,
.vbo-searchresults-classic-extra-wrap.ls-hasmap>.vbo-results-head{grid-column:1/-1;}

/* Recherche : neutraliser la grille native VBO (colonne map vide) → pleine largeur */
.vbo-results-wrapper.vbo-extra-wrapper{display:block!important;}

/* Bouton "Sélectionner" (rouge VBO) -> vert charte ; "Détails" reste en contour */
button.vbselectr-result,button.vbselectr-result.vbo-pref-color-btn,.vbo-grid-wrap button.vbselectr-result{background:var(--ls-green)!important;border-color:var(--ls-green)!important;color:#fff!important;}
button.vbselectr-result:hover{background:var(--ls-green-dk)!important;}

/* Bouton Sélectionner : battre la règle thème .vbselectordiv .vbselectorextra button (rouge) */
.vbo-searchresults-classic-wrap .vbselectordiv .vbselectorextra button.vbselectr-result,
.vbo-searchresults-classic-wrap .vbselectordiv .vbselectorextra button{background:var(--ls-green)!important;border-color:var(--ls-green)!important;color:#fff!important;}
.vbo-searchresults-classic-wrap .vbselectordiv .vbselectorextra button.vbselectr-result:hover,
.vbo-searchresults-classic-wrap .vbselectordiv .vbselectorextra button:hover{background:var(--ls-green-dk)!important;}

/* Recherche : l'adresse (terracotta) devient la ligne "zone" verte de la charte */
.vbo-grid-wrap .vb-adress,.vbo-grid-wrap .vb-adress.vbrowcname{color:var(--ls-green)!important;font-size:13px!important;font-weight:600!important;display:block;margin:0;}

/* Recherche sans résultat : message + suggestions dates proches */
.vbo-search-mainview p.err,.vbdivsearch p.err,.main-content p.err{background:var(--ls-cream);border:1px solid #F2C94C;color:#7A5B00;border-radius:12px;padding:16px 20px;font-weight:600;font-size:15px;margin:0 0 24px;text-align:left;}
.vbo-search-suggestions-container{margin-top:24px;color:var(--ls-ink);font-weight:700;font-size:18px;}

/* ===== Cartes PACKS / offres packagées (VBO pkglist) — établissement + /offres/ ===== */
.vbo-pkglist-container{display:flex;flex-direction:column;gap:20px;}
.vbo-pkglist-pkg{display:flex;background:#fff;border:1px solid var(--ls-line);border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(15,23,41,.06);}
.vbo-pkglist-pkg-bone{flex:0 0 420px;background:var(--ls-warm) center/cover no-repeat;min-height:304px;}
/* 420 / reste / 280 : la meme carte que les etablissements et les promotions, sur la
   colonne de 1200 px (Figma 706:4218). L'image faisait 240 et le bloc prix 258. */
.vbo-pkglist-pkg-bone img{width:100%;height:100%;object-fit:cover;display:block;}
.vbo-pkglist-pkg-btwo{flex:1 1 auto;padding:24px 26px;display:flex;flex-direction:column;gap:12px;justify-content:center;}
.vbo-pkglist-pkg-name h4{font-size:20px;font-weight:700;color:var(--ls-ink);margin:0;line-height:1.32;}
.vbo-pkglist-pkg-shortdescr{font-size:14.5px;line-height:1.7;color:var(--ls-txt);}
.vbo-pkglist-pkg-dates{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ls-muted);}
.vbo-pkglist-pkg-dates i{color:var(--ls-green);}
.vbo-pkglist-pkg-dates-lbl{font-weight:600;color:var(--ls-txt);}
.vbo-pkglist-pkg-bthree{flex:0 0 280px;background:var(--ls-warm);padding:24px;display:flex;flex-direction:column;gap:12px;justify-content:center;align-items:stretch;border-left:1px solid var(--ls-line);}
.vbo-pkglist-pkg-cost{display:flex;flex-direction:column;gap:2px;}
.vbo-pkglist-pkg-price .vbo_price{font-size:24px;font-weight:700;color:var(--ls-green-dk);}
.vbo-pkglist-pkg-price .vbo_currency{color:var(--ls-green-dk);font-weight:600;font-size:15px;}
.vbo-pkglist-pkg-bthree .btn,.vbo-pkglist-pkg-bthree a.vbo-pref-color-btn{width:100%;text-align:center;}
@media (max-width:1150px){
  /* Sous 1 150 px, 420+280 etranglait le texte. */
  .vbo-pkglist-pkg-bone{flex:0 0 300px;min-height:240px;}
  .vbo-pkglist-pkg-bthree{flex:0 0 250px;}
}
@media(max-width:820px){
  .vbo-pkglist-pkg{flex-direction:column;}
  .vbo-pkglist-pkg-bone{flex:0 0 190px;width:100%;}
  .vbo-pkglist-pkg-bthree{flex:none;border-left:none;border-top:1px solid var(--ls-line);}
}

/* ===== Cartes chambres (.lscard) — GLOBAL (home + établissement + [ls_rooms]) ===== */
.lscards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:8px 0 0;}
.lscard{background:#fff;border:1px solid var(--ls-line);border-radius:16px;box-shadow:0 8px 24px rgba(15,23,41,.08);overflow:hidden;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease;font-family:var(--ls-font);}
.lscard:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,23,41,.13);}
.lscard__media{position:relative;display:block;height:252px;background:#dfe3df center/cover no-repeat;flex:0 0 auto;}
.lscard__badge{position:absolute;top:16px;left:16px;background:#fff;color:var(--ls-ink);font-weight:600;font-size:12px;line-height:1;padding:8px 14px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.12);}
.lscard__body{flex:1 1 auto;display:flex;flex-direction:column;padding:22px;gap:14px;}
.lscard__name{font-size:18px;font-weight:600;line-height:26px;margin:0;}
.lscard__name a{color:var(--ls-ink);text-decoration:none;}
.lscard__name a:hover{color:var(--ls-green);}
.lscard__loc{font-size:13px;font-weight:600;color:var(--ls-green);margin:0;}
.lscard__specs{display:flex;flex-wrap:wrap;align-items:center;gap:9px 16px;}
.lscard__spec{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;color:var(--ls-txt);white-space:nowrap;}
.lscard__spec i{font-size:14px;color:var(--ls-ink);width:17px;text-align:center;line-height:1;}
.lscard__sep{height:1px;background:var(--ls-line);margin-top:auto;}
.lscard__prices{display:flex;flex-direction:column;gap:8px;}
.lscard__price{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.lscard__from{font-size:12px;font-weight:500;color:var(--ls-muted);}
.lscard__pricev{display:inline-flex;align-items:baseline;gap:5px;}
.lscard__amount{font-size:22px;font-weight:700;color:var(--ls-green-dk);white-space:nowrap;}
.lscard__unit{font-size:13px;font-weight:500;color:var(--ls-muted);}
.lscard__resident{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--ls-cream);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--ls-ink);}
.lscard__resident span{font-weight:600;}
.lscard__resident strong{font-size:14px;font-weight:700;white-space:nowrap;}
.lscard__degr{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;background:var(--ls-green-light);color:var(--ls-green-dk);border-radius:5px;padding:7px 12px;font-size:12px;font-weight:600;}
.lscard__degr i{font-size:14px;}
.lscard__btn{display:flex;align-items:center;justify-content:center;height:50px;border:1.4px solid var(--ls-green);border-radius:8px;color:var(--ls-green-dk);font-weight:600;font-size:15px;text-decoration:none;transition:all .15s ease;}
.lscard__btn:hover{background:var(--ls-green);color:#fff;box-shadow:0 6px 16px rgba(30,158,62,.3);}
.ls-etab-rooms-h{font-family:var(--ls-font);font-size:24px;font-weight:700;color:var(--ls-ink)!important;margin:44px 0 4px;}
@media(max-width:960px){.lscards{grid-template-columns:repeat(2,1fr);gap:20px;}}
@media(max-width:640px){.lscards{grid-template-columns:1fr;}}

/* Établissement Maison de Clara (2767) : liste rooms native VBO remplacée par cartes charte [ls_rooms] ; masquer la validité du pack "sans prix" */
body.page-id-2767 .vbo-pkgdet-roomswrap{display:none;}
body.page-id-2767 .vbo-pkgdet-dates{display:none;}

/* ===== Pages listing (offres, établissements) ===== */
.ls-listing__sub{font-size:17px;line-height:1.6;color:var(--ls-txt);margin:14px 0 0;max-width:820px;font-family:var(--ls-font);}
.ls-listing{background:#fff;}
.ls-listing__wrap{max-width:calc(var(--ls-cont) + 48px);margin:0 auto;padding:44px 24px 80px;font-family:var(--ls-font);}
.ls-empty{color:var(--ls-muted);font-size:16px;padding:20px 0;}
/* bandeau résident (offres) */
.ls-resbanner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:space-between;background:var(--ls-green-light);border-radius:12px;padding:18px 22px;margin:0 0 28px;}
.ls-resbanner__txt{font-size:14.5px;line-height:1.6;color:var(--ls-ink);margin:0;flex:1 1 480px;}
.ls-resbanner__txt strong{color:var(--ls-green-dk);}
.ls-resbanner__cta{display:inline-flex;gap:18px;align-items:center;font-weight:600;font-size:14px;white-space:nowrap;}
.ls-resbanner__cta a{color:var(--ls-green-dk);text-decoration:none;}
.ls-resbanner__cta a:hover{text-decoration:underline;}
/* pack card refinements */
.lspk-from{font-size:12px;font-weight:500;color:var(--ls-muted);}
.lspk-cta{width:100%;text-align:center;justify-content:center;}
.vbo-pkglist-pkg-btwo .vbo-pkglist-pkg-dates{margin-top:2px;}
/* comment ça marche */
.ls-howto{margin:56px 0 0;}
.ls-howto__h{font-size:24px;font-weight:700;color:var(--ls-ink);margin:0 0 8px;}
.ls-howto__sub{font-size:15px;color:var(--ls-txt);margin:0 0 28px;line-height:1.6;}
.ls-howto__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.ls-howto__card{background:var(--ls-warm);border-radius:14px;padding:24px;}
.ls-howto__card b{display:block;font-size:16px;color:var(--ls-ink);margin:0 0 10px;}
.ls-howto__card p{font-size:14px;line-height:1.7;color:var(--ls-txt);margin:0;}
@media(max-width:820px){
  .ls-listing__wrap{padding:28px 20px 52px;}
  .ls-howto__grid{grid-template-columns:1fr;gap:14px;}
  .ls-resbanner{flex-direction:column;align-items:flex-start;}
}

/* Recherche : cartes charte injectées (.ls-searchcards) dans le layout carte */
.vbo-searchresults-classic-extra-wrap.ls-hasmap .ls-searchcards{grid-template-columns:repeat(2,1fr);gap:20px;margin:0;}
.lscard.ls-card-hl{box-shadow:0 0 0 2px var(--ls-green),0 16px 34px rgba(15,23,41,.15);}
@media(max-width:1024px){.vbo-searchresults-classic-extra-wrap.ls-hasmap .ls-searchcards{grid-template-columns:repeat(2,1fr);}}
@media(max-width:680px){.vbo-searchresults-classic-extra-wrap.ls-hasmap .ls-searchcards{grid-template-columns:1fr;}}

/* Recherche : fiche du bien au clic d'un pin (InfoWindow Google) */
.ls-mapcard{width:236px;font-family:var(--ls-font);}
.ls-mapcard__media{height:132px;background:#dfe3df center/cover no-repeat;border-radius:10px;position:relative;margin:0 0 10px;}
.ls-mapcard__badge{position:absolute;top:8px;left:8px;background:#fff;color:var(--ls-ink);font-size:11px;font-weight:600;padding:5px 10px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.12);}
.ls-mapcard__name{font-size:15px;font-weight:700;color:var(--ls-ink);line-height:1.3;margin:0 0 4px;}
.ls-mapcard__loc{font-size:12px;font-weight:600;color:var(--ls-green);margin:0 0 8px;}
.ls-mapcard__price{margin:0 0 8px;}
.ls-mapcard__amount{font-size:18px;font-weight:700;color:var(--ls-green-dk);}
.ls-mapcard__unit{font-size:12px;color:var(--ls-muted);}
.ls-mapcard__res{background:var(--ls-cream);border-radius:6px;padding:6px 10px;font-size:12px;color:var(--ls-ink);display:flex;justify-content:space-between;gap:8px;align-items:center;margin:0 0 10px;}
.ls-mapcard__res span{font-weight:600;}
.ls-mapcard__res strong{white-space:nowrap;}
.ls-mapcard__btn{display:block;text-align:center;background:var(--ls-green);color:#fff;border-radius:8px;padding:10px;font-weight:600;font-size:14px;text-decoration:none;}
.ls-mapcard__btn:hover{background:var(--ls-green-dk);color:#fff;}
.gm-style .gm-style-iw-c{padding:12px!important;border-radius:14px!important;}
.gm-style .gm-style-iw-d{overflow:hidden!important;}

/* Recherche popup : carousel d'images */
.ls-mapcard__media{position:relative;height:150px;border-radius:10px;overflow:hidden;margin:0 0 10px;background:#dfe3df;}
.ls-mapcard__slide{position:absolute;inset:0;background:#dfe3df center/cover no-repeat;opacity:0;transition:opacity .25s;}
.ls-mapcard__slide.is-active{opacity:1;}
.ls-mapcard__nav{position:absolute;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:999px;border:none;background:rgba(255,255,255,.94);color:var(--ls-ink);font-size:18px;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;z-index:2;padding:0;}
.ls-mapcard__nav--prev{left:8px;}
.ls-mapcard__nav--next{right:8px;}

/* Recherche : moteur complet en tête (remplace le résumé VBO « Changer les dates ») */
body.page-id-2614 .vbo-results-customhead{display:none!important;}
.ls-searchmoteur{max-width:1360px;margin:20px auto 8px;}
.ls-searchmoteur.lssearch{position:relative;z-index:30;}

/* ===== Fiche chambre : renvoi établissement + cross-sell ===== */
.ls-fiche-extras{max-width:1272px;margin:0 auto;padding:0 24px;font-family:var(--ls-font);}
.ls-fiche-etab{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:16px;padding:22px 26px;margin:32px 0;}
.ls-fiche-etab__eyebrow{display:block;font-size:12px;font-weight:700;letter-spacing:.8px;color:var(--ls-muted);margin:0 0 4px;}
.ls-fiche-etab__name{display:block;font-size:20px;font-weight:700;color:var(--ls-ink);}
.ls-fiche-etab__cta{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1.5px solid var(--ls-green);color:var(--ls-green-dk);border-radius:8px;padding:13px 22px;font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap;}
.ls-fiche-etab__cta:hover{background:var(--ls-green);color:#fff;}
.ls-fiche-xsell{margin:44px 0 24px;}
.ls-fiche-xsell__eyebrow{font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--ls-orange);margin:0 0 8px;}
.ls-fiche-xsell__h{font-size:24px;font-weight:700;color:var(--ls-ink)!important;margin:0 0 24px;}
/* « Ce logement fait partie de » : le bouton portait white-space:nowrap. Son libellé fait
   320 px ; la carte n'en offre que 243 une fois ses 26 px de retrait déduits. Le bouton ET le
   titre sortaient donc de la carte de 78 px sur un écran de 375 — c'est le « bouton hors de la
   section » relevé en recette. Sur mobile le libellé a le droit de passer à la ligne. */
@media(max-width:820px){.ls-fiche-extras{padding:0 20px;}.ls-fiche-etab{flex-direction:column;align-items:stretch;}
  .ls-fiche-etab__txt{min-width:0;}
  .ls-fiche-etab__cta{white-space:normal;text-align:center;width:100%;}}
.ls-fichehead__lieu{display:inline-block;}

/* ===== Fiche : panneau de réservation (en-tête prix + résident + acompte) ===== */
.vbo-room-details-booking-wrapper{background:#fff;border:1px solid var(--ls-line);border-radius:16px;box-shadow:0 8px 24px rgba(15,23,41,.08);padding:24px;font-family:var(--ls-font);}
.ls-bookhead{margin:0 0 18px;}
.ls-bookhead__from{font-size:13px;color:var(--ls-muted);}
.ls-bookhead__price{display:flex;align-items:baseline;gap:8px;margin:2px 0 0;}
.ls-bookhead__amount{font-size:28px;font-weight:700;color:var(--ls-ink);}
.ls-bookhead__unit{font-size:14px;color:var(--ls-muted);}
.ls-bookhead__res{margin:16px 0 0;background:var(--ls-cream);border-radius:10px;padding:14px 16px;}
.ls-bookhead__resrow{display:flex;align-items:center;gap:8px;}
.ls-bookhead__resflag{font-size:15px;}
.ls-bookhead__reslbl{font-weight:600;color:var(--ls-ink);font-size:14px;}
.ls-bookhead__resval{margin-left:auto;font-size:18px;font-weight:700;color:var(--ls-green-dk);}
.ls-bookhead__reseco{display:inline-block;margin:8px 0 0;background:var(--ls-green-light);color:var(--ls-green-dk);font-size:12px;font-weight:700;border-radius:5px;padding:4px 8px;}
.ls-bookhead__resinv{margin:10px 0 0;font-size:13px;line-height:1.5;color:var(--ls-txt);}
.ls-bookhead__resinv a{color:var(--ls-green-dk);font-weight:600;text-decoration:none;}
.ls-bookhead__resinv a:hover{text-decoration:underline;}
.ls-bookhead__acompte{margin:16px 0 0;font-size:13px;line-height:1.6;color:var(--ls-txt);border-top:1px solid var(--ls-line);padding-top:14px;}
.ls-bookhead__acompte strong{color:var(--ls-green-dk);}
.vbo-room-details-booking-wrapper .vbo-pref-color-btn,.vbo-room-details-booking-wrapper input[type=submit],.vbo-room-details-booking-wrapper button[type=submit]{width:100%;background:var(--ls-green)!important;color:#fff!important;border:none!important;border-radius:10px!important;padding:14px 16px!important;font-weight:600!important;font-size:15px!important;cursor:pointer;}
.vbo-room-details-booking-wrapper .vbo-pref-color-btn:hover,.vbo-room-details-booking-wrapper input[type=submit]:hover{background:var(--ls-green-dk)!important;}

/* Fiche : récapitulatif du séjour (panneau) */
.ls-bookrecap{margin:16px 0;border-top:1px solid var(--ls-line);padding-top:16px;font-size:14px;font-family:var(--ls-font);}
.ls-bookrecap__line{display:flex;justify-content:space-between;gap:10px;margin:0 0 8px;color:var(--ls-txt);}
.ls-bookrecap__total{font-weight:700;color:var(--ls-ink);border-top:1px solid var(--ls-line);padding-top:10px;}
.ls-bookrecap__pay{margin:12px 0 0;background:var(--ls-warm);border-radius:10px;padding:14px 16px;}
.ls-bookrecap__pay .ls-bookrecap__line{font-size:13px;}
.ls-bookrecap__now{font-weight:700;color:var(--ls-green-dk)!important;border-top:1px solid var(--ls-line);padding-top:8px;margin-top:4px;font-size:14px!important;}
.ls-bookrecap__solde{font-weight:600;color:var(--ls-ink)!important;}
.ls-bookrecap__note{font-size:12px;color:var(--ls-muted);line-height:1.5;margin-top:6px;}

/* Fiche panneau — alignement maquette 557:3543 (visiteur) */
.ls-bookhead__amount{color:var(--ls-green-dk)!important;font-size:28px!important;font-weight:700;}
.ls-bookhead__unit{color:var(--ls-muted);font-size:14px;}
.ls-bookhead__resline{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--ls-cream);border-radius:10px;padding:11px 14px;margin:16px 0 0;}
.ls-bookhead__reslinelbl{display:flex;flex-direction:column;gap:2px;}
.ls-bookhead__reslinet{font-size:13px;font-weight:600;color:var(--ls-ink);}
.ls-bookhead__reslinesub{font-size:12px;color:var(--ls-orange);}
.ls-bookhead__reslineval{font-size:16px;font-weight:700;color:var(--ls-ink);white-space:nowrap;}
.ls-bookhead__inv{position:relative;background:var(--ls-green-light);border-radius:8px;padding:12px 16px 12px 28px;margin:14px 0 0;font-size:13px;line-height:1.6;font-weight:600;color:var(--ls-green-dk);}
.ls-bookhead__inv::before{content:"";position:absolute;left:14px;top:17px;width:6px;height:6px;border-radius:50%;background:var(--ls-green);}
.ls-bookhead__inv a{color:var(--ls-green-dk);text-decoration:underline;font-weight:700;}
.ls-bookrecap__pay{background:var(--ls-green-light)!important;}
.ls-bookrecap__now span:last-child{font-size:20px;}

/* Fiche panneau — état RÉSIDENT CONNECTÉ (557:3632) */
.ls-bookhead--cx .ls-bookhead__amount{color:var(--ls-ink)!important;font-size:30px!important;}
.ls-bookhead__meal{display:inline-block;margin:6px 0 0;padding:3px 10px;border-radius:999px;background:#E8F5EC;font-size:12px;font-weight:600;color:#157A30;}
.ls-bookhead__struck{font-size:15px;color:var(--ls-muted);text-decoration:line-through;margin:0 0 2px;}
.ls-bookhead__resok{display:flex;gap:10px;align-items:flex-start;background:var(--ls-green-light);border-radius:8px;padding:12px 14px 12px 26px;margin:14px 0 0;position:relative;}
.ls-bookhead__resok::before{content:"";position:absolute;left:14px;top:17px;width:6px;height:6px;border-radius:50%;background:var(--ls-green);}
.ls-bookhead__resoktxt{display:flex;flex-direction:column;gap:2px;}
.ls-bookhead__resoktxt strong{color:var(--ls-green-dk);font-size:13px;}
.ls-bookhead__resoktxt span{color:var(--ls-txt);font-size:12px;}

/* ===================== FICHE CHAMBRE (charte) ===================== */
.roomdetail{font-family:var(--ls-font);color:var(--ls-txt);}
.roomdetail .vb-title{color:var(--ls-ink)!important;}
/* --- En-tête note + titre au-dessus de la galerie --- */
.ls-fichehead{max-width:1272px;margin:8px auto 18px;padding:0 24px;font-family:var(--ls-font);}
.ls-fichehead__meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 12px;}
.ls-fichehead__badge{display:inline-block;background:var(--ls-warm);border:1px solid var(--ls-line);color:var(--ls-ink);font-size:12px;font-weight:700;border-radius:999px;padding:5px 13px;}
.ls-fichehead__rate{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700;color:var(--ls-ink);}
.ls-fichehead__rate .fa-star{color:#F2B705;font-size:13px;}
.ls-fichehead__ratetxt{font-size:12px;color:var(--ls-muted);}
.ls-fichehead__h1{font-family:var(--ls-font);font-size:38px;line-height:1.2;font-weight:800;color:var(--ls-ink);margin:0 0 10px;letter-spacing:-.01em;}
.ls-fichehead__sub{font-size:15px;color:var(--ls-txt);margin:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px;}
.ls-fichehead__sub a{color:var(--ls-green-dk);font-weight:700;text-decoration:none;}
.ls-fichehead__sub a:hover{text-decoration:underline;}
.ls-fichehead__sub .fa-location-dot{color:var(--ls-muted);font-size:13px;margin-right:2px;}
.ls-fichehead__dot{color:var(--ls-line);}
/* --- Galerie --- */
.roomdetail .vikfx-gallery img,.roomdetail .vbo-gallary-box img{border-radius:14px;}
/* ⚠️ `object-fit:cover` SUR LA GRANDE IMAGE. VikBooking lui impose une largeur ET une
   hauteur, et la valeur par défaut `fill` ÉTIRE la photo pour remplir le cadre. Mesuré le
   05/10/2026 sur /premium-suite-goree-suites/ : photo native 1067x1600 (portrait, ratio
   0,667) affichée en 545x420 (paysage, ratio 1,297) — un écrasement de près du double.
   Les vignettes n'étaient pas touchées, leur cadre suit déjà leur ratio.
   `cover` recadre au lieu de déformer : on perd un bord, jamais les proportions. */
.roomdetail .vikfx-gallery-image,
.roomdetail .vikfx-gallery img.vblistimg,
.roomdetail .vbo-gallary-box img.vblistimg{object-fit:cover;object-position:center;}
.roomdetail .vbo-gallary-box .item{padding:3px;}
/* --- Bandeau specs --- */
.ls-fichespecs{max-width:1272px;margin:28px auto;padding:0 24px;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:0;background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:14px;overflow:hidden;}
.ls-fichespecs__it{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:20px 14px;text-align:center;border-left:1px solid var(--ls-line);}
.ls-fichespecs__it:first-child{border-left:none;}
.ls-fichespecs__it i{color:var(--ls-green);font-size:16px;margin:0 0 3px;}
.ls-fichespecs__it b{font-size:19px;font-weight:800;color:var(--ls-ink);line-height:1;}
.ls-fichespecs__it span{font-size:12px;color:var(--ls-muted);text-transform:lowercase;}
/* --- Tarif dégressif --- */
.ls-fichedegr{max-width:1272px;margin:44px auto;padding:0 24px;font-family:var(--ls-font);}
.ls-fichedegr__h{font-size:26px;font-weight:800;color:var(--ls-ink)!important;margin:0 0 8px;display:flex;align-items:center;gap:10px;}
.ls-fichedegr__h .fa-arrow-trend-down{color:var(--ls-green);font-size:22px;}
.ls-fichedegr__lead{font-size:15px;line-height:1.7;color:var(--ls-txt);margin:0 0 22px;max-width:900px;}
.ls-fichedegr__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.ls-fichedegr__card{position:relative;background:#fff;border:1px solid var(--ls-line);border-radius:14px;padding:22px 24px;}
.ls-fichedegr__card.is-best{border:1.5px solid var(--ls-green);background:var(--ls-green-light);}
.ls-fichedegr__best{position:absolute;top:14px;right:14px;background:var(--ls-green);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:4px 11px;}
.ls-fichedegr__range{display:block;font-size:14px;font-weight:600;color:var(--ls-muted);margin:0 0 8px;}
.ls-fichedegr__pn{display:block;font-size:26px;font-weight:800;color:var(--ls-ink);line-height:1.1;}
.ls-fichedegr__card.is-best .ls-fichedegr__pn{color:var(--ls-green-dk);}
.ls-fichedegr__pn em{font-size:14px;font-weight:500;font-style:normal;color:var(--ls-muted);}
.ls-fichedegr__sub{display:block;font-size:13px;color:var(--ls-muted);margin:8px 0 0;}
.ls-fichedegr__sub.is-off{color:var(--ls-green-dk);font-weight:700;}
.ls-fichedegr__note{display:flex;gap:12px;background:var(--ls-warm);border-radius:10px;padding:16px 20px;margin:22px 0 0;font-size:14px;line-height:1.7;color:var(--ls-txt);border-left:4px solid #F2B705;}
/* --- Équipements (Spécificités natives → pastilles charte) --- */
.roomdetail .room_carats .vb-title,.roomdetail .vc_description .vb-title,.roomdetail .vbo-room-details-geo-wrapper .vb-title{font-size:24px!important;font-weight:800!important;color:var(--ls-ink)!important;margin:0 0 18px!important;}
.roomdetail .vb-carats-icons{display:flex;flex-wrap:wrap;gap:10px;}
.roomdetail .vb-ico{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--ls-line);border-radius:999px;padding:8px 15px;margin:0;width:auto;}
.roomdetail .vb-ico .vbo-icn-carat{color:var(--ls-green)!important;font-size:14px;}
.roomdetail .vb-ico .vb-num{font-size:13px;font-weight:600;color:var(--ls-ink);}
/* --- Description « Le logement » --- */
.roomdetail .vc_description .vb-disc,.roomdetail .vbo-room-desc{font-size:15px;line-height:1.8;color:var(--ls-txt);}
.roomdetail .vc_description .vb-disc p{margin:0 0 14px;}
/* --- Localisation --- */
.ls-geo-sub{font-size:15px;color:var(--ls-txt);margin:-8px 0 16px;}
.roomdetail .vbo-room-details-geo-wrapper #vbo-geo-map{height:360px!important;border-radius:14px;overflow:hidden;border:1px solid var(--ls-line);}
/* ===== Établissement (packagedetails sans prix) — en-tête + sous-nav + équipements ===== */
.ls-etabhead{margin-top:6px;}
.ls-etabnav{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--ls-line);transition:box-shadow .18s;}
.ls-etabnav.is-stuck{box-shadow:0 6px 20px rgba(15,23,41,.08);}
.ls-etabnav__in{max-width:1272px;margin:0 auto;padding:11px 24px;display:flex;align-items:center;gap:20px;font-family:var(--ls-font);}
.ls-etabnav__name{font-weight:800;color:var(--ls-ink);font-size:15px;white-space:nowrap;}
.ls-etabnav__sep{color:var(--ls-line);}
.ls-etabnav__links{display:flex;gap:22px;flex:1;min-width:0;}
.ls-etabnav__links a{color:var(--ls-txt);text-decoration:none;font-size:14px;font-weight:600;white-space:nowrap;padding:4px 0;border-bottom:2px solid transparent;}
.ls-etabnav__links a:hover{color:var(--ls-green-dk);border-bottom-color:var(--ls-green);}
.ls-etabnav__price{display:flex;flex-direction:column;line-height:1.1;text-align:right;white-space:nowrap;}
.ls-etabnav__price span{font-size:11px;color:var(--ls-muted);}
.ls-etabnav__price strong{font-size:16px;color:var(--ls-green-dk);}
.ls-etabnav__cta{background:var(--ls-green);color:#fff;border-radius:8px;padding:10px 18px;font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap;}
.ls-etabnav__cta:hover{background:var(--ls-green-dk);}
.ls-etabequip{max-width:1272px;margin:8px auto 24px;padding:0 24px;font-family:var(--ls-font);}
.ls-etabequip__h{font-size:24px;font-weight:800;color:var(--ls-ink)!important;margin:0 0 16px;}
.ls-etabequip__grid{display:flex;flex-wrap:wrap;gap:10px;}
.ls-etabequip__chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--ls-line);border-radius:999px;padding:8px 15px;font-size:13px;font-weight:600;color:var(--ls-ink);}
.ls-etabequip__chip i{color:var(--ls-green)!important;font-size:14px;}
@media(max-width:900px){
  .ls-etabnav__links{display:none;}
  .ls-etabnav__in{gap:12px;}
}
@media(max-width:820px){
  .ls-fichehead__h1{font-size:27px;}
  .ls-fichespecs{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(2,1fr);}
  .ls-fichespecs__it:nth-child(odd){border-left:none;}
  .ls-fichespecs__it:nth-child(n+3){border-top:1px solid var(--ls-line);}
  .ls-fichedegr__grid{grid-template-columns:1fr;}
}
/* masque le score de localisation importé (copie OTA) au profit de la note charte 9,5/10 */
.roomdetail #property-description-location-score-trans,.roomdetail p[data-testid="property-description-location-score-trans"]{display:none!important;}

/* ===================== FICHE OFFRE PACKAGÉE (charte) ===================== */
.vbo-pkgdet-container{font-family:var(--ls-font);color:var(--ls-txt);}
/* Hero */
.offre-hero{background:var(--ls-ink);background-size:cover;background-position:center;color:#fff;margin:0 0 0;}
.offre-hero__wrap{max-width:1272px;margin:0 auto;padding:150px 24px 40px;}
.offre-hero__crumb{font-size:13px;color:rgba(255,255,255,.8);margin:0 0 20px;}
.offre-hero__crumb a{color:rgba(255,255,255,.8);text-decoration:none;}
.offre-hero__crumb a:hover{color:#fff;}
.offre-hero__badge{display:inline-block;background:var(--ls-orange);color:#fff;font-size:12px;font-weight:700;letter-spacing:.5px;border-radius:999px;padding:7px 15px;margin:0 0 16px;}
.offre-hero__h1{font-size:44px;line-height:1.15;font-weight:800;color:#fff;margin:0 0 12px;letter-spacing:-.01em;max-width:900px;}
.offre-hero__sub{font-size:17px;color:rgba(255,255,255,.9);margin:0;}
/* Corps 2 colonnes */
.offre-body{max-width:1272px;margin:0 auto;padding:56px 24px;display:grid;grid-template-columns:1fr 380px;gap:32px;align-items:start;}
.offre-h2{font-size:26px;font-weight:800;color:var(--ls-ink);margin:0 0 22px;}
.offre-incs{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-direction:column;gap:20px;}
.offre-inc{display:flex;gap:14px;}
.offre-inc__dot{flex:0 0 9px;width:9px;height:9px;border-radius:50%;background:var(--ls-green);margin-top:7px;}
.offre-inc b{display:block;font-size:16px;font-weight:700;color:var(--ls-ink);margin:0 0 4px;}
.offre-inc p{font-size:14px;line-height:1.7;color:var(--ls-txt);margin:0;}
.offre-note{font-size:14px;line-height:1.7;color:var(--ls-muted);font-style:italic;margin:0 0 28px;}
.offre-cond{background:var(--ls-warm);border-radius:14px;padding:24px 26px;}
.offre-cond__ttl{display:block;font-size:18px;font-weight:700;color:var(--ls-ink);margin:0 0 16px;}
.offre-cond__row{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-top:1px solid var(--ls-line);font-size:14px;}
.offre-cond__row:first-of-type{border-top:none;}
.offre-cond__row span:first-child{color:var(--ls-muted);}
.offre-cond__row span:last-child{color:var(--ls-ink);font-weight:600;text-align:right;max-width:60%;}
/* Panneau */
.offre-panel{position:sticky;top:24px;background:#fff;border:1px solid var(--ls-line);border-radius:16px;box-shadow:0 8px 24px rgba(15,23,41,.08);padding:24px;}
.offre-panel__pricelbl{font-size:13px;color:var(--ls-muted);margin:0 0 6px;}
.offre-panel__price{display:flex;align-items:baseline;gap:12px;}
.offre-panel__amount{font-size:30px;font-weight:800;color:var(--ls-green-dk);line-height:1.1;}
.offre-panel__ref{font-size:16px;color:var(--ls-muted);text-decoration:line-through;font-weight:600;}
.offre-panel__eco{display:inline-block;background:#FCEFE7;color:var(--ls-orange);font-size:12px;font-weight:700;border-radius:6px;padding:4px 9px;margin:10px 0 0;}
.offre-panel__resnote{background:var(--ls-warm);border-radius:10px;padding:14px 16px;margin:16px 0 0;font-size:12.5px;line-height:1.6;color:var(--ls-txt);}
.offre-pay{margin:18px 0 0;border-top:1px solid var(--ls-line);padding-top:16px;}
.offre-pay__row{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:var(--ls-txt);margin:0 0 9px;}
.offre-pay__box{background:var(--ls-green-light);border-radius:10px;padding:14px 16px;margin:12px 0 0;}
.offre-pay__box .offre-pay__row{font-size:13px;margin:0 0 8px;}
.offre-pay__now{font-weight:700;color:var(--ls-green-dk)!important;font-size:14px!important;border-top:1px solid rgba(21,122,48,.2);padding-top:8px;}
.offre-pay__solde{font-weight:600;color:var(--ls-ink)!important;margin:0!important;}
.offre-cta{display:block;width:100%;background:var(--ls-green);color:#fff;border:none;border-radius:12px;padding:16px;font-family:var(--ls-font);font-weight:700;font-size:16px;cursor:pointer;margin:18px 0 0;}
.offre-cta:hover{background:var(--ls-green-dk);}
.offre-panel__fine{font-size:12px;line-height:1.6;color:var(--ls-muted);margin:14px 0 0;}
/* Logements de l'offre */
.vbo-pkgdet-roomswrap{max-width:1272px;margin:0 auto 64px;padding:24px 24px 0;}
.vbo-pkgdet-roomsttl{font-size:26px!important;font-weight:800!important;color:var(--ls-ink)!important;margin:0 0 6px!important;}
.offre-roomssub{font-size:15px;color:var(--ls-txt);margin:0 0 28px;}
.vbo-pkgdet-roomslist{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.vbo-pkgdet-room-container{background:#fff;border:1px solid var(--ls-line);border-radius:16px;overflow:hidden;}
.vbo-pkgdet-room-outer{display:flex;flex-direction:column;}
.vbo-pkgdet-room-img{aspect-ratio:16/11;overflow:hidden;}
.vbo-pkgdet-room-img img{width:100%;height:100%;object-fit:cover;}
.vbo-pkgdet-room-det{padding:18px 20px 0;}
.vbo-pkgdet-roomname{font-size:17px!important;font-weight:700!important;color:var(--ls-ink)!important;margin:0 0 8px!important;}
.vbo-pkgdet-room-shortdescr{font-size:13.5px;line-height:1.6;color:var(--ls-txt);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.vbo-pkgdet-room-booknow{padding:16px 20px 20px;}
.vbo-pkgdet-room-booknow-btn{width:100%;background:#fff!important;border:1.5px solid var(--ls-green)!important;color:var(--ls-green-dk)!important;border-radius:10px!important;padding:12px 16px!important;font-weight:700!important;font-size:14px!important;cursor:pointer;font-family:var(--ls-font)!important;}
.vbo-pkgdet-room-booknow-btn:hover{background:var(--ls-green)!important;color:#fff!important;}
.vbo-pkgdet-room-inner{display:none;} /* miniatures natives masquées (charte : image unique) */
@media(max-width:900px){
  .offre-hero__wrap{padding:120px 20px 32px;}.offre-hero__h1{font-size:30px;}
  .offre-body{grid-template-columns:1fr;padding:36px 20px;gap:28px;}
  .offre-panel{position:static;}
  .vbo-pkgdet-roomslist{grid-template-columns:1fr;}
}

.vbo-pkgdet-title{display:none!important;}

/* ===================== BLOG / ACTUALITÉ (charte) ===================== */
.ls-blog{font-family:var(--ls-font);color:var(--ls-txt);}
.ls-blog__wrap{max-width:1272px;margin:0 auto;padding:0 24px;}
.ls-blog__hero{background:var(--ls-warm);border-bottom:1px solid var(--ls-line);}
.ls-blog__hero .ls-blog__wrap{padding:36px 24px 44px;}
.ls-blog__crumb{font-size:13px;color:var(--ls-muted);margin:0 0 22px;}
.ls-blog__crumb a{color:var(--ls-muted);text-decoration:none;}.ls-blog__crumb a:hover{color:var(--ls-green);}
.ls-blog__crumb span{margin:0 2px;}
.ls-blog__h1{font-size:40px;line-height:1.15;font-weight:800;color:var(--ls-ink);margin:0 0 14px;letter-spacing:-.01em;}
.ls-blog__intro{font-size:17px;line-height:1.7;color:var(--ls-txt);margin:0;max-width:760px;}
.ls-blog__body{padding:40px 24px 72px;}
/* Filtres */
.ls-blog__filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 36px;}
.ls-blog__chip{background:#fff;border:1px solid var(--ls-line);color:var(--ls-ink);border-radius:999px;padding:9px 18px;font-family:var(--ls-font);font-size:14px;font-weight:600;cursor:pointer;}
.ls-blog__chip:hover{border-color:var(--ls-green);color:var(--ls-green-dk);}
.ls-blog__chip.is-on{background:var(--ls-green);border-color:var(--ls-green);color:#fff;}
.ls-blog__filtnote{font-size:12.5px;color:var(--ls-muted);margin-left:6px;}
/* Badge rubrique */
.ls-blog__badge{display:inline-block;background:var(--ls-cream);color:#8A6D1B;font-size:11px;font-weight:700;letter-spacing:.5px;border-radius:6px;padding:5px 11px;}
.ls-blog__eyebrow{font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--ls-muted);margin:0 0 14px;}
/* À la une */
.ls-blog__feat{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--ls-line);border-radius:18px;overflow:hidden;background:#fff;margin:0 0 56px;}
.ls-blog__feat-media{display:block;min-height:340px;background:var(--ls-warm) center/cover no-repeat;position:relative;}
.ls-blog__feat-body{padding:34px 36px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:14px;}
.ls-blog__feat-title{font-size:28px;line-height:1.25;font-weight:800;color:var(--ls-ink);margin:0;}
.ls-blog__feat-title a{color:inherit;text-decoration:none;}.ls-blog__feat-title a:hover{color:var(--ls-green-dk);}
.ls-blog__feat-exc{font-size:15px;line-height:1.7;color:var(--ls-txt);margin:0;}
.ls-blog__meta{font-size:13px;color:var(--ls-muted);margin:0;}.ls-blog__meta span{margin:0 6px;}
.ls-blog__btn{display:inline-block;background:var(--ls-green);color:#fff;border-radius:10px;padding:12px 24px;font-weight:700;font-size:14px;text-decoration:none;margin-top:4px;}
.ls-blog__btn:hover{background:var(--ls-green-dk);}
/* Grille */
.ls-blog__gridttl{font-size:24px;font-weight:800;color:var(--ls-ink);margin:0 0 24px;}
.ls-blog__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.ls-blog__card{background:#fff;border:1px solid var(--ls-line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;}
.ls-blog__card-media{display:block;aspect-ratio:16/10;background:var(--ls-warm) center/cover no-repeat;position:relative;}
.ls-blog__card-body{padding:18px 20px 22px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
.ls-blog__card-title{font-size:17px;line-height:1.35;font-weight:700;color:var(--ls-ink);margin:0;}
.ls-blog__card-title a{color:inherit;text-decoration:none;}.ls-blog__card-title a:hover{color:var(--ls-green-dk);}
.ls-blog__card-exc{font-size:13.5px;line-height:1.6;color:var(--ls-txt);margin:0;}
.ls-blog__ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ls-muted);font-size:13px;}
.ls-blog__empty{background:var(--ls-warm);border-radius:14px;padding:28px;font-size:15px;color:var(--ls-txt);}
.ls-blog__empty a{color:var(--ls-green-dk);font-weight:600;}
@media(max-width:900px){
  .ls-blog__h1{font-size:29px;}
  .ls-blog__feat{grid-template-columns:1fr;}
  .ls-blog__feat-media{min-height:200px;aspect-ratio:16/10;}
  .ls-blog__feat-body{padding:24px;}
  .ls-blog__grid{grid-template-columns:1fr;}
  .ls-blog__filtnote{width:100%;margin-left:0;}
}

/* ===================== PROPRIÉTAIRES (charte) ===================== */
.prop{font-family:var(--ls-font);color:var(--ls-txt);}
.prop-wrap{max-width:1080px;margin:0 auto;padding:0 24px;}
.prop-eyebrow{display:block;font-size:13px;font-weight:700;letter-spacing:.4px;color:var(--ls-green-dk);margin:0 0 10px;}
.prop-h2{font-size:30px;line-height:1.2;font-weight:800;color:var(--ls-ink);margin:0 0 18px;letter-spacing:-.01em;}
.prop-h3{font-size:22px;font-weight:700;color:var(--ls-ink);margin:36px 0 12px;}
/* `:where()` a une specificite NULLE. Ecrite `.prop p` (0,1,1), cette regle battait
   TOUTES les classes de la page — qui sont posees sur des <p> : le prix des offres
   (26 px vert) sortait a 16 px gris, le texte du heros prenait le gris des fonds
   clairs sur un fond noir. Un seul selecteur expliquait la moitie des defauts
   releves sur cette page (recette Hamid du 06/10/2026).
   Les <p> sans classe gardent exactement le meme rendu qu'avant. */
:where(.prop) p{font-size:16px;line-height:1.75;color:var(--ls-txt);margin:0 0 16px;max-width:840px;}
/* Hero */
/* L'image de fond du heros manquait : la regle posait `center/cover` mais aucune image,
   donc un aplat #16181D (recette Hamid du 06/10/2026). La maquette (Figma 526:2674)
   montre une photo avec un voile sombre, plus dense a gauche ou se trouve le texte.
   Photo choisie : une facade senegalaise deja dans la mediatheque, au format le plus
   panoramique du parc (1920x865). ELLE SE REMPLACE EN CHANGEANT CETTE SEULE URL. */
.prop-hero{background:
  linear-gradient(90deg, rgba(22,24,29,.93) 0%, rgba(22,24,29,.80) 48%, rgba(22,24,29,.42) 100%),
  url('/wp-content/plugins/vikbooking/site/resources/uploads/ls-etab-6-facade.jpg') center/cover no-repeat,
  var(--ls-ink);
  color:#fff;}
.prop-hero__wrap{padding:116px 24px 92px;}
.prop-hero__eyebrow{display:block;font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#6FE29A;margin:0 0 16px;}
.prop-hero__h1{font-size:52px;line-height:1.1;font-weight:800;color:#fff;margin:0 0 18px;max-width:640px;letter-spacing:-.02em;}
.prop-hero__lead{font-size:19px;font-weight:700;color:#fff;margin:0 0 14px;max-width:600px;}
.prop-hero__p{font-size:15.5px;line-height:1.75;color:rgba(255,255,255,.85);margin:0 0 28px;max-width:620px;}
/* Le heros est sur fond #16181D, mais `.prop p` (specificite 0,1,1) battait
   `.prop-hero__p` (0,1,0) et reposait le gris des fonds clairs, #4A5058 : le texte
   etait quasi illisible (recette Hamid du 06/10/2026). On remonte la specificite. */
.prop .prop-hero__lead{color:#fff;}
.prop .prop-hero__p{color:rgba(255,255,255,.88);}
.prop-hero__cta{display:flex;flex-wrap:wrap;gap:14px;}
.prop-btn{display:inline-flex;align-items:center;gap:9px;border-radius:10px;padding:15px 28px;font-family:var(--ls-font);font-weight:700;font-size:15px;text-decoration:none;cursor:pointer;border:none;}
.prop-btn--green{background:var(--ls-green);color:#fff;}
.prop-btn--green:hover{background:var(--ls-green-dk);color:#fff;}
.prop-btn--wa{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.4);}
.prop-btn--wa:hover{background:rgba(255,255,255,.2);color:#fff;}
/* Sections texte */
.prop-why{padding:64px 24px 8px;}
.prop-list{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:10px;max-width:840px;}
.prop-list li{position:relative;padding-left:20px;font-size:16px;line-height:1.7;color:var(--ls-txt);}
.prop-list li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:2px;background:var(--ls-green);}
/* Déroulé */
.prop-steps{padding:48px 24px;}
.prop-step{display:flex;gap:16px;align-items:flex-start;border:1px solid var(--ls-line);border-radius:12px;padding:18px 22px;margin:0 0 14px;}
.prop-step__n{flex:0 0 30px;width:30px;height:30px;border-radius:999px;background:var(--ls-green-light);color:var(--ls-green-dk);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;margin-top:2px;}
.prop-step__txt b{display:block;font-size:17px;font-weight:700;color:var(--ls-ink);margin:0 0 5px;}
.prop-step__txt p{font-size:14.5px;line-height:1.65;color:var(--ls-txt);margin:0;max-width:none;}
/* Modèle */
.prop-model{padding:24px 24px 56px;}
.prop-model__lead{font-size:16px;color:var(--ls-txt);margin:0 0 24px;}
.prop-model__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:0 0 24px;}
.prop-mcard{background:var(--ls-green-light);border-radius:14px;padding:22px 24px;}
.prop-mcard__n{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:var(--ls-green);color:#fff;font-weight:700;font-size:14px;margin:0 0 12px;}
.prop-mcard p{font-size:14.5px;line-height:1.65;color:var(--ls-txt);margin:0;max-width:none;}
.prop-model__hl{font-size:16px;font-weight:700;color:var(--ls-green-dk);margin:8px 0 0;}
/* Offres */
.prop-offers{padding:24px 24px 64px;}
.prop-offers__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch;}
.prop-offer{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--ls-line);border-radius:16px;padding:28px 26px;}
.prop-offer--feat{border:2px solid var(--ls-green);box-shadow:0 10px 30px rgba(30,158,62,.12);}
.prop-offer__badge{position:absolute;top:18px;right:18px;background:var(--ls-green);color:#fff;font-size:11px;font-weight:700;letter-spacing:.5px;border-radius:999px;padding:5px 12px;}
.prop-offer__name{font-size:18px;font-weight:700;color:var(--ls-ink);margin:0 0 6px;}
.prop-offer__price{font-size:26px;font-weight:800;color:var(--ls-green-dk);margin:0 0 10px;line-height:1.15;}
.prop-offer__price span{display:block;font-size:14px;font-weight:600;color:var(--ls-muted);}
.prop-offer__price--free{color:var(--ls-green);}
.prop-offer__sub{font-size:14px;line-height:1.6;color:var(--ls-muted);margin:0 0 18px;max-width:none;}
.prop-offer__plats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;}
.prop-offer__plats span{font-size:12px;font-weight:600;color:var(--ls-ink);background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:999px;padding:5px 11px;}
.prop-offer__list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:11px;}
.prop-offer__list li{position:relative;padding-left:24px;font-size:14px;line-height:1.6;color:var(--ls-txt);}
.prop-offer__list li::before{content:"\f00c";font-family:"Font Awesome 6 Free","Font Awesome 7 Free";font-weight:900;position:absolute;left:0;top:1px;color:var(--ls-green);font-size:12px;}
.prop-offer__note{font-size:13px;line-height:1.6;color:var(--ls-muted);font-style:italic;margin:auto 0 0;padding-top:14px;}
.prop-offers__foot{display:flex;gap:10px;background:var(--ls-warm);border-radius:12px;padding:18px 22px;margin:28px 0 0;font-size:13.5px;line-height:1.65;color:var(--ls-txt);}
.prop-offers__foot::before{content:"";flex:0 0 6px;background:var(--ls-green);border-radius:3px;}
/* Final CTA */
.prop-final{background:var(--ls-warm);border-top:1px solid var(--ls-line);}
.prop-final__wrap{padding:52px 24px;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;}
.prop-final__txt .prop-h2{margin-bottom:10px;}
.prop-final__txt p{margin:0 0 14px;}
.prop-final__pts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px;}
.prop-final__pts li{position:relative;padding-left:18px;font-size:14.5px;font-weight:600;color:var(--ls-ink);}
.prop-final__pts li::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:50%;background:var(--ls-green);}
.prop-final__act{display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
.prop-final__cgv{font-size:13px;color:var(--ls-muted);text-decoration:underline;text-underline-offset:2px;}
.prop-final__cgv:hover{color:var(--ls-green-dk);}
@media(max-width:900px){
  .prop-hero__wrap{padding:80px 20px 56px;}.prop-hero__h1{font-size:34px;}
  .prop-model__grid,.prop-offers__grid{grid-template-columns:1fr;}
  .prop-final__wrap{grid-template-columns:1fr;}
  .prop-final__act{align-items:flex-start;}
}
/* fix : supprime le marqueur de liste natif Salient (double puce) sur les listes Propriétaires */
.prop-offer__list,.prop-list,.prop-final__pts{list-style:none!important;}
.prop-offer__list li,.prop-list li,.prop-final__pts li{list-style:none!important;}
.prop-offer__list li::marker,.prop-list li::marker,.prop-final__pts li::marker{content:"";}

/* ===================== RECHERCHE — barre de filtres (399:942) ===================== */
.ls-filters{max-width:1360px;margin:0 auto 4px;padding:0 24px;font-family:var(--ls-font);}
.ls-filters__row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:6px 0 14px;border-bottom:1px solid var(--ls-line);}
.ls-filters__count{font-size:13px;color:var(--ls-muted);margin-right:4px;white-space:nowrap;}
.ls-filters__spacer{flex:1 1 auto;}
.ls-fdrop{position:relative;}
.ls-fchip{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--ls-line);color:var(--ls-ink);border-radius:999px;padding:8px 15px;font-family:var(--ls-font);font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap;}
.ls-fchip:hover{border-color:var(--ls-green);color:var(--ls-green-dk);}
.ls-fchip .ls-fcar{font-size:10px;color:var(--ls-muted);}
.ls-fchip b{font-weight:700;color:var(--ls-ink);}
.ls-fdrop.has-val>.ls-fchip{border-color:var(--ls-green);background:var(--ls-green-light);color:var(--ls-green-dk);}
.ls-fdrop.is-open>.ls-fchip{border-color:var(--ls-green);}
.ls-ftoggle.is-on{background:var(--ls-green);border-color:var(--ls-green);color:#fff;}
.ls-fclear{color:var(--ls-muted);border-color:transparent;}
.ls-fclear:hover{color:var(--ls-green-dk);background:var(--ls-warm);}
.ls-fpop{position:absolute;top:calc(100% + 8px);left:0;z-index:40;background:#fff;border:1px solid var(--ls-line);border-radius:12px;box-shadow:0 12px 34px rgba(15,23,41,.14);padding:10px;min-width:210px;display:none;flex-direction:column;gap:2px;}
.ls-fdrop.is-open>.ls-fpop{display:flex;}
.ls-fsort .ls-fpop{left:auto;right:0;}
.ls-fpop label{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;font-size:14px;color:var(--ls-ink);cursor:pointer;}
.ls-fpop label:hover{background:var(--ls-warm);}
.ls-fpop input{accent-color:var(--ls-green);width:16px;height:16px;}
@media(max-width:900px){.ls-filters{padding:0 20px;}.ls-filters__count{width:100%;}}

/* ===================== POURQUOI — comparatif barres + encart 24h ===================== */
.pq__cmplead{font-size:16px;color:var(--ls-txt);margin:6px 0 14px;}
.pq__cmp--v2 .pq__amt{font-size:34px;font-weight:800;margin:0;}
.pq__cmp--v2 .pq__scn--bad .pq__amt{color:#C0392B;}
.pq__cmp--v2 .pq__scn--good .pq__amt{color:var(--ls-green-dk);}
.pq__cmp--v2 .pq__amtl{font-size:13px;color:var(--ls-muted);margin:2px 0 12px;text-transform:none;}
.pq__bar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:#EEE;margin:0 0 8px;}
.pq__bar-green{background:var(--ls-green);}
.pq__bar-red{background:#E1261C;}
.pq__barnote{font-size:12.5px;color:var(--ls-muted);line-height:1.55;margin:0 0 14px;}
.pq__note24{background:var(--ls-green-light);border:1px solid #BFE6CB;border-radius:14px;padding:20px 22px;margin:22px 0 8px;}
.pq__note24 b{display:block;font-size:18px;font-weight:800;color:var(--ls-green-dk);margin:0 0 8px;}
.pq__note24 p{font-size:14.5px;line-height:1.7;color:var(--ls-txt);margin:0;}
/* fix double puce Salient sur les listes Pourquoi */
.pq__list,.pq__scn ul{list-style:none!important;}
.pq__list li,.pq__scn ul li{list-style:none!important;}
.pq__list li::marker,.pq__scn ul li::marker{content:"";}

/* ===================== RECHERCHE SANS RÉSULTAT (charte) ===================== */
.err.ls-searchempty{display:block!important;max-width:900px;margin:24px auto!important;padding:26px 28px!important;background:var(--ls-warm)!important;border:1px solid var(--ls-line)!important;border-left:4px solid var(--ls-green)!important;border-radius:12px!important;color:var(--ls-txt)!important;text-align:left!important;font-family:var(--ls-font);font-weight:400!important;}
.ls-searchempty__t{display:block;font-size:18px;font-weight:800;color:var(--ls-ink);margin:0 0 6px;}
.ls-searchempty__s{display:block;font-size:14px;line-height:1.6;color:var(--ls-txt);}
.ls-dispo{color:var(--ls-green);font-weight:700;}
.ls-suggnote{font-size:13px;color:var(--ls-muted);margin:4px 0 16px;}
.vbo-search-suggestions-av-day.vbo-suggestion-free{color:var(--ls-green);font-weight:700;}
.err.ls-searchempty--info{border-left-color:#F2B705!important;}
/* masque le widget VBO « currency converter » (titre fautif « vik currencey ») résiduel en sidebar des articles */
.widget_mod_vikbooking_currencyconverter{display:none!important;}

/* ===================== LÉGAL (CGU/CGV) — sommaire sticky (529:2794 / 530:2914) ===================== */
.ls-legal{font-family:var(--ls-font);color:var(--ls-txt);}
.ls-legal__wrap{max-width:1200px;margin:0 auto;padding:0 24px;}
.ls-legal__hero{background:var(--ls-warm);border-bottom:1px solid var(--ls-line);}
.ls-legal__hero .ls-legal__wrap{padding:36px 24px 40px;}
.ls-legal__crumb{font-size:13px;color:var(--ls-muted);margin:0 0 20px;}
.ls-legal__crumb a{color:var(--ls-muted);text-decoration:none;}.ls-legal__crumb a:hover{color:var(--ls-green);}
.ls-legal__crumb span{margin:0 4px;}
.ls-legal__h1{font-size:40px;line-height:1.15;font-weight:800;color:var(--ls-ink);margin:0 0 10px;letter-spacing:-.01em;}
.ls-legal__sub{font-size:16px;color:var(--ls-txt);margin:0 0 16px;}
.ls-legal__maj{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--ls-line);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;color:var(--ls-ink);}
.ls-legal__dot{width:7px;height:7px;border-radius:50%;background:var(--ls-green);}
.ls-legal__body{display:grid;grid-template-columns:270px 1fr;gap:40px;padding:44px 24px 72px;align-items:start;}
.ls-legal__toc{position:sticky;top:24px;background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:14px;padding:20px 22px;}
.ls-legal__toctitle{font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--ls-muted);margin:0 0 8px;}
.ls-legal__toc nav{display:flex;flex-direction:column;}
.ls-legal__toc a{font-size:13.5px;line-height:1.45;color:var(--ls-txt);text-decoration:none;padding:8px 0;border-top:1px solid var(--ls-line);}
.ls-legal__toc a:first-child{border-top:none;}
.ls-legal__toc a:hover{color:var(--ls-green-dk);}
.ls-legal__content.ls-article{max-width:none!important;margin:0!important;padding:0!important;}
.ls-legal__content h2{scroll-margin-top:90px;}
@media(max-width:900px){.ls-legal__h1{font-size:28px;}.ls-legal__body{grid-template-columns:1fr;gap:24px;padding:32px 20px 56px;}.ls-legal__toc{position:static;}}

/* ===================== LISTING zone×typo — bandeau hero (487:1583) ===================== */
.ls-zonehero{position:relative;left:50%;right:50%;width:100vw;margin-left:-50vw;margin-right:-50vw;min-height:300px;display:flex;align-items:flex-end;background-size:cover;background-position:center;color:#fff;font-family:var(--ls-font);}
.ls-zonehero__wrap{max-width:1272px;margin:0 auto;padding:40px 24px;width:100%;box-sizing:border-box;}
.ls-zonehero__crumb{font-size:13px;color:rgba(255,255,255,.85);margin:0 0 14px;}
.ls-zonehero__crumb a{color:rgba(255,255,255,.85);text-decoration:none;}
.ls-zonehero__crumb a:hover{color:#fff;}.ls-zonehero__crumb span{margin:0 5px;}
.ls-zonehero__h1{font-size:40px;line-height:1.15;font-weight:800;color:#fff;margin:0 0 16px;max-width:820px;letter-spacing:-.01em;}
.ls-zonehero__chips{display:flex;flex-wrap:wrap;gap:8px;}
.ls-zonehero__chips span{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;}
.ls-zonebody{max-width:1272px;margin:0 auto;padding:28px 24px 0;box-sizing:border-box;}
@media (max-width:782px){
  /* Sur telephone, quatre gouttieres s'additionnaient : 22,5 (marge du conteneur Salient)
     + 15 (son padding) + 24 (celui-ci) = 61,5 px de chaque cote. Sur un ecran de 375,
     le moteur de recherche tombait a 252 px quand le titre en gardait 327 (mesure du
     06/10/2026). Les trois couches au-dessus suffisent largement. */
  .ls-zonebody{padding-left:0;padding-right:0;}
}
.ls-zonebody .ls-arbo-search{display:none;}
@media(max-width:900px){.ls-zonehero{min-height:220px;}.ls-zonehero__h1{font-size:26px;}}

/* ============================================================
   Référencement propriétaire — funnel (Figma 567 + 590)
   ============================================================ */
.ref{font-family:var(--ls-font);--rw:calc(var(--ls-cont) + 48px);}
.ref *{font-family:var(--ls-font);}
.ref [hidden]{display:none!important;}
.ref-wrap{max-width:var(--rw);margin:0 auto;padding-left:24px;padding-right:24px;}
.ref-eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--ls-green-dk);}
.ref-h2{font-size:30px;font-weight:800;color:var(--ls-ink)!important;margin:0 0 12px;line-height:1.2;}
/* hero */
/* La maquette (Figma 567:3807) montre une photo de fond avec un voile sombre, un titre
   BLANC et des puces translucides. La regle ne posait qu'un aplat beige et un titre
   encre : fond absent, titre noir, puces blanches (recette Hamid du 06/10/2026).
   La photo se remplace en changeant cette seule URL. */
.ref-hero{background:
  linear-gradient(90deg, rgba(22,24,29,.92) 0%, rgba(22,24,29,.78) 50%, rgba(22,24,29,.40) 100%),
  url('/wp-content/plugins/vikbooking/site/resources/uploads/ls-etab-25-facade.jpg') center/cover no-repeat,
  var(--ls-ink);
  border-bottom:1px solid rgba(255,255,255,.08);padding:56px 0 52px;}
.ref-hero__h1{font-size:42px;font-weight:800;color:#fff;margin:14px 0 16px;line-height:1.15;max-width:820px;letter-spacing:-.01em;}
.ref-hero__lead{font-size:17px;line-height:1.7;color:rgba(255,255,255,.88);margin:0 0 20px;max-width:760px;}
.ref-chips{display:flex;flex-wrap:wrap;gap:10px;}
.ref-chips span{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);border-radius:999px;padding:8px 15px;font-size:13px;font-weight:600;color:#fff;backdrop-filter:blur(2px);}
/* apports */
.ref-apports{padding:44px 24px 8px;}
.ref-apports__lead{font-size:16px;line-height:1.7;color:var(--ls-txt);margin:0 0 26px;max-width:820px;}
.ref-apports__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
/* La maquette (Figma 567:3807) donne a ces cartes un fond tenu et PAS de bordure, avec
   une barre verte en tete — comme les cartes d'aide des etablissements. Sur le site
   elles etaient blanches sur fond blanc, tenues par une bordure, et sans la barre
   (recette Hamid du 06/10/2026). */
.ref-acard{background:var(--ls-warm);border:0;border-radius:14px;padding:24px 26px;display:flex;flex-direction:column;}
.ref-acard::before{content:"";display:block;width:32px;height:3px;background:var(--ls-green);border-radius:2px;margin:0 0 14px;}
.ref-acard h3{font-size:17px;font-weight:700;color:var(--ls-ink);margin:0 0 10px;line-height:1.3;}
.ref-acard p{font-size:14.5px;line-height:1.7;color:var(--ls-txt);margin:0 0 14px;flex:1;}
.ref-acard__foot{font-size:13px;color:var(--ls-green-dk);font-weight:600;border-top:1px solid var(--ls-line);padding-top:12px;}
/* sélecteur de type */
.ref-typesel{padding:44px 24px 60px;}
.ref-typesel__step{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:800;color:var(--ls-ink);}
.ref-typesel__dot{flex:0 0 30px;width:30px;height:30px;border-radius:999px;background:var(--ls-green);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;}
.ref-typesel__sub{font-size:16px;line-height:1.7;color:var(--ls-txt);margin:12px 0 26px;max-width:820px;}
.ref-typegrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.ref-typecard{display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:#fff;border:1.5px solid var(--ls-line);border-radius:12px;padding:18px 20px;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s,transform .15s;font-family:var(--ls-font);}
.ref-typecard:hover{border-color:var(--ls-green);box-shadow:0 10px 24px rgba(15,23,41,.08);transform:translateY(-2px);}
.ref-typecard__name{font-size:17px;font-weight:700;color:var(--ls-ink);}
.ref-typecard__sub{font-size:12px;font-weight:600;color:var(--ls-muted);text-transform:uppercase;letter-spacing:.4px;}
.ref-typesel__note{font-size:14px;color:var(--ls-txt);margin:22px 0 0;}
.ref-typesel__note2{color:var(--ls-muted);font-size:13px;}
/* écran 2 — barre d'étape */
.ref-s2head{padding-top:28px;}
.ref-s2head__bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--ls-green-light);border:1px solid var(--ls-line);border-radius:12px;padding:14px 20px;}
.ref-s2head__step{font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ls-green-dk);}
.ref-s2head__type{font-size:14px;color:var(--ls-ink);}
.ref-s2head__back{margin-left:auto;background:#fff;border:1px solid var(--ls-line);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;color:var(--ls-ink);cursor:pointer;font-family:var(--ls-font);}
.ref-s2head__back:hover{border-color:var(--ls-green);color:var(--ls-green-dk);}
/* argumentaire comparatif */
.ref-argu{padding:38px 24px 8px;}
.ref-argu__lead{font-size:16px;line-height:1.7;color:var(--ls-txt);margin:0 0 24px;max-width:820px;}
.ref-compare{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.ref-compare__col{border-radius:14px;padding:24px 26px;}
.ref-compare__col--other{background:var(--ls-warm);border:1px solid var(--ls-line);}
.ref-compare__col--us{background:var(--ls-green-light);border:1px solid #cfe9d6;}
.ref-compare__lbl{display:block;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ls-muted);margin:0 0 8px;}
.ref-compare__col--us .ref-compare__lbl{color:var(--ls-green-dk);}
.ref-compare__col h3{font-size:18px;font-weight:700;color:var(--ls-ink);margin:0 0 14px;line-height:1.3;}
.ref-compare__col ul{list-style:none;margin:0;padding:0;}
/* ⚠️ `list-style:none` DOIT ÊTRE SUR LE li, PAS SEULEMENT SUR LE ul. La propriété est
   héritée, donc `.ref-compare__col ul{list-style:none}` au-dessus devrait suffire — sauf
   que le thème parent pose `list-style` directement sur les li, et une déclaration bat
   toujours un héritage, quelle que soit la spécificité. Résultat : la puce native `disc`
   restait EN PLUS de notre pastille ::before. 16 li sur 16 en double, relevé par Hamid le
   05/10/2026 sur les deux écrans du tunnel de référencement. */
.ref-compare__col li{list-style:none;font-size:14px;line-height:1.65;color:var(--ls-txt);padding:0 0 10px 22px;position:relative;}
.ref-compare__col li::before{content:"";position:absolute;left:2px;top:8px;width:6px;height:6px;border-radius:999px;background:var(--ls-muted);}
.ref-compare__col--us li::before{background:var(--ls-green);}
.ref-argu__punch{font-size:18px;font-weight:700;color:var(--ls-ink);text-align:center;margin:24px 0 0;}
/* formulaire 2 colonnes */
.ref-form{display:grid;grid-template-columns:1fr 340px;gap:32px;align-items:start;padding:40px 24px 8px;}
.ref-form__side{display:flex;flex-direction:column;gap:16px;position:sticky;top:24px;}
.ref-sidecard{background:#fff;border:1px solid var(--ls-line);border-radius:14px;padding:20px 22px;}
.ref-sidecard--dark{background:#0e0f12;border-color:#0e0f12;color:#fff;}
.ref-sidecard--dark h3{font-size:16px;font-weight:700;margin:0 0 10px;}
.ref-sidecard--dark p{font-size:13.5px;line-height:1.6;color:rgba(255,255,255,.78);margin:0 0 12px;}
.ref-sidecard--dark ul{list-style:none;margin:0;padding:0;}
.ref-sidecard--dark li{list-style:none;font-size:13px;line-height:1.55;color:rgba(255,255,255,.9);padding:0 0 8px 18px;position:relative;}
.ref-sidecard--dark li::before{content:"✓";position:absolute;left:0;top:0;color:var(--ls-green);font-weight:700;}
.ref-sidecard h4{font-size:14px;font-weight:700;color:var(--ls-ink);margin:0 0 10px;}
.ref-sidecard ul{list-style:none;margin:0;padding:0;}
.ref-sidecard__no li,.ref-sidecard__yes li{font-size:13px;line-height:1.55;color:var(--ls-txt);padding:0 0 8px 20px;position:relative;}
.ref-sidecard__no li::before{content:"✕";position:absolute;left:0;top:0;color:#c05a4d;font-weight:700;}
.ref-sidecard__yes li::before{content:"→";position:absolute;left:0;top:0;color:var(--ls-green);font-weight:700;}
.ref-sidecard__wa{display:inline-flex;align-items:center;gap:8px;background:#25D366;color:#fff;border-radius:10px;padding:14px 18px;font-size:14px;font-weight:600;text-decoration:none;justify-content:center;}
.ref-sidecard__wa:hover{background:#1eb959;color:#fff;}
/* Gravity Forms — habillage charte, scopé .ref-form */
.ref-form .gform_wrapper{margin:0;}
.ref-form .gform_wrapper .gform_body{width:100%;}
.ref-form .gform_wrapper .gform_fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;}
.ref-form .gform_wrapper .gfield{margin:0;}
.ref-form .gform_wrapper .gfield.gf_left_half,.ref-form .gform_wrapper .gfield.gf_right_half{grid-column:span 1;}
.ref-form .gform_wrapper .gfield:not(.gf_left_half):not(.gf_right_half){grid-column:1 / -1;}
.ref-form .gform_wrapper .gsection{grid-column:1 / -1;border:none;border-top:1px solid var(--ls-line);margin:14px 0 2px;padding:18px 0 0;}
.ref-form .gform_wrapper .gsection .gsection_title{font-size:18px;font-weight:800;color:var(--ls-ink);margin:0;}
.ref-form .gform_wrapper .gsection .gsection_description,.ref-form .gform_wrapper .gfield_description{font-size:13px;line-height:1.6;color:var(--ls-muted);margin:6px 0 0;padding:0;}
.ref-form .gform_wrapper .gfield_label{font-size:13px;font-weight:600;color:var(--ls-ink);margin:0 0 6px;display:block;}
.ref-form .gform_wrapper .gfield_required{color:#c05a4d;}
.ref-form .gform_wrapper input[type=text],.ref-form .gform_wrapper input[type=email],.ref-form .gform_wrapper input[type=tel],.ref-form .gform_wrapper input[type=number],.ref-form .gform_wrapper input[type=url],.ref-form .gform_wrapper select,.ref-form .gform_wrapper textarea{width:100%;border:1px solid var(--ls-line);border-radius:10px;padding:12px 14px;font-size:15px;color:var(--ls-ink);background:#fff;font-family:var(--ls-font);box-sizing:border-box;}
.ref-form .gform_wrapper input:focus,.ref-form .gform_wrapper select:focus,.ref-form .gform_wrapper textarea:focus{outline:none;border-color:var(--ls-green);box-shadow:0 0 0 3px var(--ls-green-light);}
.ref-form .gform_wrapper textarea{min-height:90px;resize:vertical;}
.ref-form .gform_wrapper .ginput_container_radio .gfield_radio label,.ref-form .gform_wrapper .ginput_container_checkbox .gfield_checkbox label{font-size:14px;color:var(--ls-txt);font-weight:500;}
.ref-form .gform_wrapper .gfield_radio,.ref-form .gform_wrapper .gfield_checkbox{display:flex;flex-wrap:wrap;gap:8px 18px;}
.ref-form .gform_wrapper .gform_footer{grid-column:1 / -1;padding:20px 0 0;margin:0;}
.ref-form .gform_wrapper .gform_footer input[type=submit],.ref-form .gform_wrapper .gform_footer button{background:var(--ls-green)!important;color:#fff!important;border:none!important;border-radius:10px!important;padding:15px 34px!important;font-size:16px!important;font-weight:600!important;cursor:pointer;font-family:var(--ls-font);width:auto!important;}
.ref-form .gform_wrapper .gform_footer input[type=submit]:hover,.ref-form .gform_wrapper .gform_footer button:hover{background:var(--ls-green-dk)!important;}
.ref-form .gform_wrapper .ls-f-type{display:none;} /* type géré par le sélecteur d'écran 1 */
.ref-form .gform_confirmation_message{background:var(--ls-green-light);border:1px solid #cfe9d6;border-radius:14px;padding:26px 28px;font-size:16px;line-height:1.7;color:var(--ls-ink);}
.ref-form .gform_wrapper .validation_error{background:#fbeae7;border:1px solid #e6c3bc;color:#a23b2c;border-radius:10px;padding:12px 16px;margin:0 0 16px;font-size:14px;}
.ref-form .gform_wrapper .gfield_error input,.ref-form .gform_wrapper .gfield_error select{border-color:#c05a4d;}
/* coût */
.ref-cost{padding:44px 24px 8px;}
.ref-cost__lead{font-size:16px;line-height:1.7;color:var(--ls-txt);margin:0 0 24px;max-width:820px;}
.ref-cost__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ref-costcard{background:#fff;border:1px solid var(--ls-line);border-radius:14px;padding:24px 26px;}
.ref-costcard__lbl{display:block;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ls-muted);margin:0 0 10px;}
.ref-costcard strong{display:block;font-size:18px;color:var(--ls-ink);margin:0 0 8px;line-height:1.3;}
.ref-costcard p{font-size:14px;line-height:1.6;color:var(--ls-txt);margin:0;}
.ref-cost__foot{font-size:13.5px;line-height:1.7;color:var(--ls-muted);margin:22px 0 0;max-width:900px;}
/* ensuite */
.ref-next{padding:44px 24px 72px;}
.ref-next__lead{font-size:16px;line-height:1.7;color:var(--ls-txt);margin:0 0 24px;max-width:820px;}
.ref-next__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ref-nextstep{background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:14px;padding:24px 26px;}
.ref-nextstep__n{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:var(--ls-green);color:#fff;font-weight:700;font-size:15px;margin:0 0 12px;}
.ref-nextstep b{display:block;font-size:16px;color:var(--ls-ink);margin:0 0 8px;}
.ref-nextstep p{font-size:14px;line-height:1.65;color:var(--ls-txt);margin:0;}
.ref-next__foot{font-size:13.5px;line-height:1.7;color:var(--ls-muted);margin:22px 0 0;max-width:900px;}
@media(max-width:900px){
  .ref-apports__grid,.ref-typegrid,.ref-compare,.ref-cost__grid,.ref-next__grid{grid-template-columns:1fr;}
  .ref-form{grid-template-columns:1fr;}
  .ref-form__side{position:static;}
  .ref-form .gform_wrapper .gform_fields{grid-template-columns:1fr;}
  .ref-hero__h1{font-size:30px;}
  .ref-h2,.ref-typesel__step{font-size:24px;}
  .ref-typegrid{grid-template-columns:1fr 1fr;}
}

/* ============================================================
   Guide TPT — composants sur-mesure (Figma 913)
   ============================================================ */
.ls-vbody .tpt-frise{display:flex;align-items:stretch;gap:0;margin:22px 0;}
.tpt-frise__step{flex:1;background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:12px;padding:16px 20px;display:flex;flex-direction:column;gap:3px;}
.tpt-frise__step.is-now{background:var(--ls-green-light);border-color:#cfe9d6;}
.tpt-frise__year{font-size:12px;font-weight:600;color:var(--ls-muted);}
.tpt-frise__amt{font-size:22px;font-weight:800;color:var(--ls-ink);}
.tpt-frise__step.is-now .tpt-frise__amt{color:var(--ls-green-dk);}
.tpt-frise__arw{align-self:center;color:var(--ls-muted);font-size:18px;padding:0 12px;flex:0 0 auto;}
/* calcul */
.ls-vbody .tpt-calc{display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:12px;padding:18px 20px;margin:20px 0;}
.tpt-calc__op,.tpt-calc__res{display:flex;flex-direction:column;gap:2px;padding:6px 14px;}
.tpt-calc__op span,.tpt-calc__res span{font-size:12px;color:var(--ls-muted);}
.tpt-calc__op b{font-size:22px;font-weight:800;color:var(--ls-ink);}
.tpt-calc__res{background:var(--ls-green);border-radius:10px;margin-left:auto;}
.tpt-calc__res span{color:rgba(255,255,255,.85);}
.tpt-calc__res b{font-size:22px;font-weight:800;color:#fff;}
.tpt-calc__sg{font-size:18px;color:var(--ls-muted);font-weight:700;}
/* exemples */
.ls-vbody .tpt-ex{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0;}
.tpt-excard{background:#fff;border:1px solid var(--ls-line);border-radius:12px;padding:20px 22px;}
.tpt-excard__t{display:block;font-size:14px;font-weight:700;color:var(--ls-ink);margin:0 0 4px;}
.tpt-excard__c{display:block;font-size:13px;color:var(--ls-muted);margin:0 0 12px;}
.tpt-excard b{font-size:24px;font-weight:800;color:var(--ls-green-dk);display:block;}
.tpt-excard__e{font-size:13px;color:var(--ls-muted);}
/* encart / note */
.ls-vbody .tpt-note{border-left:3px solid var(--ls-green);background:var(--ls-green-light);border-radius:0 10px 10px 0;padding:16px 20px;margin:20px 0;}
.tpt-note__lbl{display:block;font-size:13px;font-weight:700;color:var(--ls-green-dk);margin:0 0 6px;}
.tpt-note p{margin:0;font-size:15px;line-height:1.7;color:var(--ls-txt);}
/* flux */
.ls-vbody .tpt-flux{background:#0e0f12;border-radius:16px;padding:26px 28px;margin:22px 0;}
.tpt-flux__h{font-size:18px;font-weight:700;color:#fff;margin:0 0 8px;}
.tpt-flux__sub{font-size:14px;line-height:1.6;color:rgba(255,255,255,.72);margin:0 0 18px;}
.tpt-flux__steps{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;}
.tpt-flux__step{flex:1;min-width:150px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:3px;}
.tpt-flux__lbl{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ls-green);}
.tpt-flux__step b{font-size:16px;color:#fff;}
.tpt-flux__step span:last-child{font-size:12px;color:rgba(255,255,255,.6);}
.tpt-flux__plus{align-self:center;color:rgba(255,255,255,.5);font-size:18px;font-weight:700;}
/* chips */
.ls-vbody .tpt-chips{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0;}
.tpt-chips span{background:#fff;border:1px solid var(--ls-line);border-radius:999px;padding:7px 15px;font-size:13px;font-weight:600;color:var(--ls-ink);}
.tpt-chips span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:999px;background:var(--ls-green);margin-right:8px;vertical-align:middle;}
/* cas particuliers */
.ls-vbody .tpt-cas{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0;}
.tpt-cascard{border-radius:12px;padding:20px 22px;}
.tpt-cascard--grey{background:var(--ls-warm);border:1px solid var(--ls-line);}
.tpt-cascard--ok{background:var(--ls-green-light);border:1px solid #cfe9d6;}
.tpt-cascard__tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;border-radius:999px;padding:4px 10px;margin:0 0 10px;}
.tpt-cascard--grey .tpt-cascard__tag{background:#e7e3db;color:#8a7f6d;}
.tpt-cascard--ok .tpt-cascard__tag{background:#cfe9d6;color:var(--ls-green-dk);}
.tpt-cascard b{display:block;font-size:16px;color:var(--ls-ink);margin:0 0 8px;}
.tpt-cascard p{margin:0;font-size:14px;line-height:1.6;color:var(--ls-txt);}
/* KPI */
.ls-vbody .tpt-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0;}
.tpt-kpicard{background:#fff;border:1px solid var(--ls-line);border-radius:12px;padding:22px 24px;}
.tpt-kpicard b{display:block;font-size:24px;font-weight:800;color:var(--ls-ink);margin:0 0 6px;}
.tpt-kpicard span{display:block;font-size:14px;font-weight:600;color:var(--ls-ink);}
.tpt-kpicard em{display:block;font-size:12px;color:var(--ls-muted);font-style:normal;margin-top:4px;}
/* tableau taxes (hérite du zébré .ls-article table via wrapper) */
.ls-vbody .tpt-taxtable{margin:20px 0;overflow-x:auto;}
/* barres comparaison */
.ls-vbody .tpt-bars{margin:20px 0;display:flex;flex-direction:column;gap:12px;}
.tpt-bar{display:grid;grid-template-columns:1fr 200px auto;align-items:center;gap:14px;}
.tpt-bar__lab{font-size:13px;color:var(--ls-txt);}
.tpt-bar__track{height:14px;background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:999px;overflow:hidden;}
.tpt-bar__fill{display:block;height:100%;background:var(--ls-line);}
.tpt-bar--us .tpt-bar__fill{background:var(--ls-green);}
.tpt-bar--us .tpt-bar__lab{font-weight:700;color:var(--ls-ink);}
.tpt-bar__val{font-size:13px;font-weight:700;color:var(--ls-ink);font-variant-numeric:tabular-nums;}
/* réflexes */
.ls-vbody .tpt-reflexes{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0;}
.tpt-reflexe{background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:12px;padding:20px 22px;display:flex;gap:14px;}
.tpt-reflexe__n{flex:0 0 auto;width:32px;height:32px;border-radius:999px;background:var(--ls-green);color:#fff;font-weight:700;font-size:14px;display:inline-flex;align-items:center;justify-content:center;}
.tpt-reflexe__tx{font-size:14px;line-height:1.65;color:var(--ls-txt);}
.tpt-reflexe__tx strong{color:var(--ls-ink);display:block;margin:0 0 4px;}
.tpt-reflexe__tx a{color:var(--ls-green-dk);}
@media(max-width:680px){
  .ls-vbody .tpt-ex,.ls-vbody .tpt-cas,.ls-vbody .tpt-kpi,.ls-vbody .tpt-reflexes{grid-template-columns:1fr;}
  .tpt-bar{grid-template-columns:1fr;gap:4px;}
  .tpt-bar__track{width:100%;}
  .tpt-frise{flex-direction:column;gap:8px;}
  .tpt-frise__arw{transform:rotate(90deg);padding:2px 0;}
}

/* ===================== QA 19/09 — TITRES : Montserrat partout =====================
   Salient (réglage global) pose Lalezar sur body h1/h2… → hors charte (Montserrat seul).
   Spécificité 0,0,3 : bat « body h1 » de Salient, perd face aux classes des composants
   (qui gardent leurs graisses). Retirer ce bloc = retour à l'état précédent. */
html body :is(h1,h2,h3,h4,h5,h6){font-family:var(--ls-font);}
html body :is(h1,h2){font-weight:700;letter-spacing:-.01em;}
html body :is(h3,h4,h5,h6){font-weight:600;}

/* QA 19/09 — champs Gravity Forms : texte d'exemple gris charte (Figma 562:3763 : #767B84, 15px) */
.gform_wrapper input::placeholder,.gform_wrapper textarea::placeholder{color:var(--ls-muted)!important;opacity:1;}
/* Tarif résident : pas de mention « (Nécessaire) » dans le Figma 562:3671 */
.tr-form .gfield_required{display:none!important;}

/* QA 19/09 — fiche : galerie collée sous le titre (Figma 432:1158). La rangée native
   .vb_row.align-center centrait la photo dans la hauteur du bloc réservation → ~250 px de vide. */
.roomdetail .vb-room-summary > .vb_row.align-center{align-items:flex-start!important;}

/* QA 19/09 — mobile : la barre collante Appeler/WhatsApp masquait devise + FR/EN en pied du menu burger (Figma 951:4824 : pas de barre menu ouvert) */
body.ls-menu-open .ls-sticky{display:none!important;}

/* QA 19/09 — fiche MOBILE (Figma 970:7196) : gouttière 20 px, plus de marges empilées
   (Salient 22,5+15 + résumé 20 + bloc résa 24 → colonne de 200 px, montants coupés). */
@media (max-width:767px){
  .container.main-content:has(.roomdetail){margin-left:0!important;margin-right:0!important;padding-left:20px!important;padding-right:20px!important;width:100%!important;max-width:100%!important;}
  .roomdetail .vb-room-summary{padding-left:0!important;padding-right:0!important;border:0!important;box-shadow:none!important;background:transparent!important;}
  .roomdetail .vb-summary-details,.roomdetail .vb-summary-gallary{padding-left:0!important;padding-right:0!important;}
  .roomdetail .ls-fichehead{padding-left:0!important;padding-right:0!important;}
  .roomdetail .vbo-room-details-booking-wrapper{padding:20px!important;}
}

/* =====================================================================
   TUNNEL V3 — étape Options (showprc) · Figma 534:3034 / mobile 541:3333
   Surcharge : uploads/vikbooking/overrides/site/showprc/default.php
   ===================================================================== */
body.ls-tunnel .vbo-showprc-head-wrapper{font-family:var(--ls-font);color:var(--ls-txt);}
/* critères */
.ls-crit{display:flex;align-items:center;background:#fff;border:1px solid var(--ls-line);border-radius:12px;padding:4px;margin:28px 0 0;}
.ls-crit__cell{flex:1 1 0;display:flex;flex-direction:column;gap:3px;padding:12px 20px;border-left:1px solid var(--ls-line);}
.ls-crit__cell:first-child{border-left:0;}
.ls-crit__lbl{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ls-muted);}
.ls-crit__val{font-size:15px;font-weight:700;color:var(--ls-ink);}
.ls-crit__mod{padding:0 20px;font-size:14px;font-weight:600;color:var(--ls-green-dk)!important;text-decoration:underline;white-space:nowrap;}
.ls-crit__m{display:none;}
/* grille */
.ls-tun{display:grid;grid-template-columns:minmax(0,800px) 376px;gap:24px;justify-content:space-between;align-items:start;margin:56px 0 88px;}
.ls-tun__main{min-width:0;}
h1.ls-tunnel-h1.ls-tun__h1{font-size:32px;line-height:1.3;font-weight:700;color:var(--ls-ink);margin:0 0 28px;letter-spacing:-.01em;}
.ls-tun__aside{position:sticky;top:24px;display:flex;flex-direction:column;gap:16px;}
/* blocs natifs neutralisés */
body.ls-tunnel .vbo-showprc-wrapper,body.ls-tunnel .vbo-showprc-room-block{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important;}
body.ls-tunnel .vbo-showprc-room-head,body.ls-tunnel .vbo-showprc-roomname,body.ls-tunnel .vbroomimgdesc,body.ls-tunnel .room_carats,body.ls-tunnel .room_prices>h4,body.ls-tunnel .vbo-cancpolicy-trig,body.ls-tunnel .vbo-cancpolicy-cont,body.ls-tunnel .vbo-showprc-head-wrapper .room_disclaimer{display:none!important;}
/* carte logement */
.ls-tun-room{display:flex;gap:20px;align-items:flex-start;background:#fff;border:1px solid var(--ls-line);border-radius:12px;padding:20px 24px 20px 20px;}
.ls-tun-room+.ls-tun-room,.vbo-showprc-room-block+.ls-tun-room{margin-top:24px;}
.ls-tun-room__img{flex:0 0 180px;height:132px;border-radius:8px;background:#F6F4F0 center/cover no-repeat;}
.ls-tun-room__info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px;}
.ls-tun-room__name{margin:0!important;font-size:19px;line-height:1.35;font-weight:700;color:var(--ls-ink);}
.ls-tun-room__loc{margin:0!important;font-size:14px;color:var(--ls-muted);}
.ls-tun-room__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
.ls-tun-room__chips span{background:#F6F4F0;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:500;color:var(--ls-txt);}
.ls-tun-room__chips span[hidden]{display:none;}
.ls-tun-room__price{margin:4px 0 0!important;font-size:15px;font-weight:600;color:var(--ls-ink);}
/* carte annulation / plan tarifaire */
body.ls-tunnel .vbo-showprc-rateplans-wrapper,body.ls-tunnel .vbo-showprc-pricetable{border:0!important;padding:0!important;margin:0!important;background:none!important;}
body.ls-tunnel .vbo-showprc-price-entry{display:flex!important;gap:14px;align-items:flex-start;background:#fff!important;border:1px solid var(--ls-line)!important;border-radius:12px!important;padding:18px 24px 18px 20px!important;margin:20px 0 0!important;box-shadow:none!important;}
body.ls-tunnel .vbo-showprc-price-entry:has(input:checked){border:2px solid var(--ls-green)!important;padding:17px 23px 17px 19px!important;}
body.ls-tunnel .vbo-showprc-price-entry-radio{flex:0 0 20px;padding-top:2px;}
body.ls-tunnel .vbo-showprc-price-entry-radio input{accent-color:var(--ls-green);width:20px;height:20px;margin:0;}
body.ls-tunnel .vbo-showprc-price-entry-rateplan{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;min-width:0;}
.ls-rp__title{font-size:16px!important;font-weight:700!important;color:var(--ls-ink)!important;margin:0!important;cursor:pointer;}
.ls-rp__name{font-size:12px!important;font-weight:500!important;color:var(--ls-muted)!important;margin:0!important;cursor:pointer;}
body.ls-tunnel .vbpricedetails{display:flex;flex-direction:column;gap:2px;margin:0!important;}
body.ls-tunnel .vbpricedetails>span{font-size:13px!important;line-height:1.65;color:var(--ls-txt)!important;background:none!important;padding:0!important;border:0!important;}
.ls-rp__cgv{font-size:13px;font-weight:600;color:var(--ls-green-dk)!important;text-decoration:underline;margin-top:2px;}
body.ls-tunnel .vbo-showprc-price-entry-cost{flex:0 0 auto;text-align:right;}
body.ls-tunnel .vbo-showprc-price-entry-cost .room_cost{font-size:16px;font-weight:700;color:var(--ls-ink);}
.ls-rp__incl{display:none;font-size:16px;font-weight:700;color:var(--ls-green-dk);}
.ls-rp-single .ls-rp__incl{display:inline;}
.ls-rp-single .vbo-showprc-price-entry-cost .room_cost,.ls-rp-single .vbo-room-result-price-before-discount{display:none!important;}
/* options */
body.ls-tunnel .room_options{margin:48px 0 0!important;padding:0!important;border:0!important;background:none!important;}
h2.ls-tun__h2{font-size:24px;line-height:1.35;font-weight:700;color:var(--ls-ink);margin:0 0 10px;}
.ls-tun__intro{font-size:15px;line-height:1.7;color:var(--ls-txt);margin:0 0 24px;}
body.ls-tunnel .vbo-showprc-optionstable{display:grid!important;grid-template-columns:1fr 1fr;gap:24px;}
body.ls-tunnel .vbo-showprc-option-entry{display:grid!important;grid-template-columns:44px 1fr auto;grid-template-areas:"img name name" "cost cost input" "sub sub sub";gap:10px 14px;align-items:center;background:#fff;border:1px solid var(--ls-line)!important;border-radius:12px;padding:20px!important;margin:0!important;}
body.ls-tunnel .vbo-showprc-option-entry.is-added{border:2px solid var(--ls-green)!important;padding:19px!important;}
body.ls-tunnel .vbo-showprc-option-entry-img{grid-area:img;align-self:start;}
body.ls-tunnel .vbo-showprc-option-entry-img img{width:44px;height:44px;object-fit:contain;}
body.ls-tunnel .vbo-showprc-option-entry-name{grid-area:name;font-size:16px;font-weight:700;line-height:1.4;color:var(--ls-ink);}
body.ls-tunnel .vbo-showprc-option-entry-descr,body.ls-tunnel .vbo-showprc-option-entry-descr p{font-size:13px;font-weight:400;line-height:1.65;color:var(--ls-txt);margin:4px 0 0;}
body.ls-tunnel .vbo-showprc-option-entry-cost{grid-area:cost;font-size:18px;font-weight:700;color:var(--ls-ink);border-top:1px solid var(--ls-line);padding-top:10px;}
body.ls-tunnel .vbo-showprc-option-entry-input{grid-area:input;border-top:1px solid var(--ls-line);padding-top:10px;text-align:right;}
.ls-opt__add{display:inline-flex;align-items:center;border:1.5px solid var(--ls-green);border-radius:999px;padding:11px 22px;font-size:14px;font-weight:600;color:var(--ls-green-dk);cursor:pointer;margin:0;}
.ls-opt__add input{position:absolute;opacity:0;pointer-events:none;}
.is-added .ls-opt__add{background:var(--ls-green);color:#fff;}
body.ls-tunnel .vbo-showprc-option-entry-input input[type=number]{width:90px;border:1px solid var(--ls-line);border-radius:999px;padding:9px 14px;text-align:center;font-weight:700;}
.ls-opt__sub{grid-area:sub;display:none;justify-content:space-between;background:var(--ls-green-light);border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600;color:var(--ls-green-dk);}
.ls-opt__sub strong{font-size:14px;font-weight:700;}
.is-added .ls-opt__sub{display:flex;}
/* mentions */
.ls-tun-note{position:relative;margin:24px 0 0;border-radius:8px;padding:15px 20px 15px 38px;font-size:14px;line-height:1.7;}
.ls-tun-note::before{content:"";position:absolute;left:18px;top:24px;width:8px;height:8px;border-radius:50%;background:currentColor;}
.ls-tun-note--green{background:var(--ls-green-light);color:var(--ls-green-dk);}
.ls-tun-note--sand{background:var(--ls-cream);color:#5E4A0A;}
/* navigation */
body.ls-tunnel .vbo-showprc-head-wrapper .room_buttons_box{display:flex!important;justify-content:space-between;align-items:center;margin:40px 0 0!important;padding:0!important;border:0!important;background:none!important;}
body.ls-tunnel .vbo-showprc-head-wrapper .vbo-goback-link{display:inline-flex!important;align-items:center;background:transparent!important;border:1.5px solid var(--ls-line)!important;border-radius:999px!important;padding:15px 26px!important;font-size:15px!important;font-weight:600!important;color:var(--ls-txt)!important;text-decoration:none!important;height:auto!important;line-height:1.2!important;}
body.ls-tunnel .vbo-showprc-head-wrapper input.booknow{background:var(--ls-green)!important;border:0!important;border-radius:999px!important;padding:16px 32px!important;font-size:16px!important;font-weight:600!important;color:#fff!important;font-family:var(--ls-font)!important;height:auto!important;cursor:pointer;}
body.ls-tunnel .vbo-showprc-head-wrapper input.booknow:hover{background:var(--ls-green-dk)!important;}
/* récapitulatif */
.ls-sum{background:#fff;border:1px solid var(--ls-line);border-radius:16px;padding:24px;}
.ls-sum__ttl{margin:0 0 18px!important;font-size:18px;font-weight:700;color:var(--ls-ink);}
.ls-sum__lines{display:flex;flex-direction:column;gap:10px;}
.ls-sum__line{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-size:14px;line-height:1.6;}
.ls-sum__line span{color:var(--ls-txt);}
.ls-sum__line strong{font-weight:600;color:var(--ls-ink);white-space:nowrap;}
.ls-sum__sep{height:1px;background:var(--ls-line);margin:16px 0;}
.ls-sum__line--total span{font-size:15px;font-weight:600;color:var(--ls-ink);}
.ls-sum__line--total strong{font-size:17px;font-weight:700;}
.ls-sum__pay{background:var(--ls-green-light);border-radius:12px;padding:16px 18px;margin-top:20px;}
.ls-sum__line--sm{font-size:13px;}
.ls-sum__line--sm+.ls-sum__line--sm{margin-top:8px;}
.ls-sum__sep--g{background:rgba(21,122,48,.16);margin:12px 0;}
.ls-sum__line--now span,.ls-sum__line--now strong{color:var(--ls-green-dk);font-weight:700;}
.ls-sum__line--now strong{font-size:20px;line-height:1.2;}
.ls-sum__line--solde span{font-weight:600;color:var(--ls-ink);}
.ls-sum__line--solde strong{font-size:16px;font-weight:700;}
.ls-sum__small{margin:4px 0 0!important;font-size:11px;line-height:1.6;color:var(--ls-muted);}
.ls-sum__small+.ls-sum__small{margin-top:8px!important;}
.ls-sum__cta{display:block;width:100%;margin-top:20px;background:var(--ls-green);color:#fff;border:0;border-radius:999px;padding:16px;font-family:var(--ls-font);font-size:15px;font-weight:600;cursor:pointer;}
.ls-sum__cta:hover{background:var(--ls-green-dk);}
.ls-sum__foot{margin:12px 0 0!important;font-size:12px;line-height:1.65;color:var(--ls-muted);text-align:center;}
.ls-ask{background:#F6F4F0;border-radius:16px;padding:20px 22px;display:flex;flex-direction:column;gap:10px;}
.ls-ask__ttl{margin:0!important;font-size:15px;font-weight:700;color:var(--ls-ink);}
.ls-ask__txt{margin:0!important;font-size:13px;line-height:1.65;color:var(--ls-txt);}
.ls-ask__btn{display:flex;align-items:center;justify-content:center;gap:10px;border:1.5px solid var(--ls-green);border-radius:999px;padding:12px;font-size:14px;font-weight:600;color:var(--ls-green-dk)!important;text-decoration:none!important;}
.ls-tun-bar{display:none;}
/* ---------- mobile ---------- */
@media (max-width:900px){
  .ls-tun{grid-template-columns:minmax(0,1fr);margin:28px 0 24px;}
  .ls-tun__aside{position:static;}
  .ls-ask{display:none;}
  .ls-crit{flex-direction:column;align-items:flex-start;padding:16px;gap:10px;margin-top:16px;}
  .ls-crit__cell{display:none;}
  .ls-crit__m{display:flex;flex-wrap:wrap;gap:8px;order:1;}
  .ls-crit__m span{background:#F6F4F0;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600;color:var(--ls-ink);}
  .ls-crit__mod{order:2;padding:0;}
  h1.ls-tunnel-h1.ls-tun__h1{font-size:26px;margin-bottom:20px;}
  .ls-tun-room{padding:14px;gap:14px;}
  .ls-tun-room__img{flex-basis:90px;height:90px;}
  .ls-tun-room__name{font-size:16px;}
  .ls-tun-room__chips{display:none;}
  .ls-tun-room__price{font-size:14px;}
  body.ls-tunnel .vbo-showprc-price-entry{padding:16px!important;}
  body.ls-tunnel .vbo-showprc-price-entry:has(input:checked){padding:15px!important;}
  .ls-rp-single .vbo-showprc-price-entry-cost{display:none;}
  .ls-rp-single .ls-rp__title::after{content:" — incluse";}
  html[lang^="en"] .ls-rp-single .ls-rp__title::after{content:" — included";}
  h2.ls-tun__h2{font-size:22px;}
  body.ls-tunnel .vbo-showprc-optionstable{grid-template-columns:1fr;gap:16px;}
  body.ls-tunnel .vbo-showprc-head-wrapper .room_buttons_box{display:none!important;}
  .ls-tun-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:9990;align-items:center;justify-content:space-between;gap:12px;background:#fff;border-top:1px solid var(--ls-line);padding:12px 20px calc(12px + env(safe-area-inset-bottom));font-family:var(--ls-font);}
  .ls-tun-bar__amt{display:flex;flex-direction:column-reverse;}
  .ls-tun-bar__amt span{font-size:11px;color:var(--ls-muted);}
  .ls-tun-bar__amt strong{font-size:18px;font-weight:700;color:var(--ls-green-dk);}
  .ls-tun-bar__cta{background:var(--ls-green);color:#fff;border:0;border-radius:999px;padding:14px 28px;font-family:var(--ls-font);font-size:15px;font-weight:600;}
  body.ls-tunnel{padding-bottom:84px;}
  body.ls-tunnel .ls-sticky{display:none!important;}
}
/* tunnel V3 — correctifs rendu 1 */
.ls-tun p,.ls-crit p{padding-bottom:0!important;}
.ls-tun button.ls-sum__cta,body .ls-tun button.ls-sum__cta{display:block!important;width:100%!important;background:var(--ls-green)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:16px!important;margin:20px 0 0!important;font-family:var(--ls-font)!important;font-size:15px!important;font-weight:600!important;line-height:1.2!important;letter-spacing:0!important;text-transform:none!important;box-shadow:none!important;}
.ls-tun button.ls-sum__cta:hover{background:var(--ls-green-dk)!important;}
.ls-rp-single .ls-rp__name{display:none!important;}
/* tunnel V3 — correctifs mobile */
@media (max-width:900px){
  .container.main-content:has(.ls-tun),.container.main-content:has(.vbo-oconfirm-container){margin-left:0!important;margin-right:0!important;padding-left:20px!important;padding-right:20px!important;width:100%!important;max-width:100%!important;}
  body.ls-tunnel ol.vbo-stepbar{display:flex!important;flex-wrap:nowrap!important;gap:0!important;}
  body.ls-tunnel ol.vbo-stepbar>li.vbo-step{flex:1 1 0!important;width:auto!important;min-width:0!important;font-size:12px!important;}
  body.ls-tunnel ol.vbo-stepbar>li.vbo-step a,body.ls-tunnel ol.vbo-stepbar>li.vbo-step span{font-size:12px!important;white-space:nowrap;}
  body .ls-tun-bar button.ls-tun-bar__cta{background:var(--ls-green)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:14px 28px!important;font-family:var(--ls-font)!important;font-size:15px!important;font-weight:600!important;line-height:1.2!important;text-transform:none!important;letter-spacing:0!important;box-shadow:none!important;}
  .ls-tun-bar .ls-tun-bar__amt strong{font-size:18px!important;font-weight:700!important;color:var(--ls-green-dk)!important;line-height:1.2;}
}
/* tunnel V3 — correctifs 3 (colonnes natives VBO) */
body.ls-tunnel .vbo-showprc-price-entry>div{float:none!important;}
body.ls-tunnel .vbo-showprc-price-entry-rateplan{flex:1 1 0!important;width:auto!important;max-width:none!important;min-width:0!important;}
body.ls-tunnel .vbo-showprc-price-entry-cost{width:auto!important;max-width:none!important;}
body.ls-tunnel .vbo-showprc-price-entry-radio{width:20px!important;max-width:20px!important;}
.ls-tun-bar__amt strong *,.ls-sum strong *{font-size:inherit!important;font-weight:inherit!important;color:inherit!important;}
@media (max-width:900px){
  body.ls-tunnel .ls-rp-single .vbo-showprc-price-entry-cost{display:none!important;}
  body.ls-tunnel .vbo-showprc-price-entry{flex-wrap:nowrap!important;}
}
/* tunnel V3 — alignement texte plan tarifaire */
body.ls-tunnel .vbo-showprc-price-entry-rateplan,body.ls-tunnel .vbo-showprc-price-entry-rateplan *{text-align:left!important;}
body.ls-tunnel .vbo-showprc-price-entry-rateplan label{display:block!important;}
body.ls-tunnel .ls-rp-single .vbo-showprc-price-entry-rateplan label.ls-rp__name{display:none!important;}

/* =====================================================================
   TUNNEL V3 — étape Paiement (oconfirm) · Figma 537:3163 / mobile 542:3418
   Surcharge : uploads/vikbooking/overrides/site/oconfirm/default.php
   ===================================================================== */
.ls-tun--pay .vbo-oconfirm-summary-container,.ls-tun--pay .vbo-oconfirm-summary-total-wrapper+div,.ls-tun--pay .vbo-oconfirm-wrapper .vbo-results-head{display:none!important;}
.ls-tun--pay .vbo-oconfirm-wrapper{margin:0!important;padding:0!important;border:0!important;background:none!important;}
.ls-tun--pay .ls-tun__main{display:flex;flex-direction:column;}
.ls-tun--pay #ls-oconfirm-form{display:contents;}
/* ordre (Figma) */
.ls-tun--pay .ls-tun__h1{order:0;}
.ls-tun--pay .vbo-oconfirm-middlep{display:contents;}
.ls-tun--pay .vbo-enterpin-block{order:1;}
.ls-tun--pay .ls-pay-h-cf{order:2;}
.ls-tun--pay .vbcustomfields{order:3;}
.ls-tun--pay .vbo-oconfirm-paymentopts{order:4;}
.ls-tun--pay .vbo-oconfirm-choosedeposit{order:5;}
.ls-tun--pay .vbo-coupon-outer{order:6;}
.ls-tun--pay .ls-terms{order:7;}
.ls-tun--pay #ls-24h-pay{order:8;}
.ls-tun--pay .vboconfirmbottom{order:9;}
.ls-tun--pay .vbo-alert-container-confirm{order:10;}
/* encart « Déjà client ? » (Figma 555:3527) */
.ls-tun--pay .vbo-enterpin-block{background:var(--ls-green-light)!important;border:0!important;border-radius:12px!important;padding:22px 24px!important;margin:0!important;box-shadow:none!important;}
.ls-tun--pay .vbo-enterpin-top h4{margin:0 0 14px!important;font-size:18px!important;font-weight:700!important;color:var(--ls-ink)!important;font-family:var(--ls-font)!important;text-transform:none!important;letter-spacing:0!important;}
.ls-pin__txt{margin:0 0 14px!important;padding:0!important;font-size:14px;line-height:1.7;color:var(--ls-txt);}
.ls-tun--pay .vbo-enterpin-inner{display:block!important;}
.ls-tun--pay .vbo-enterpin-inner>span{display:none!important;}
.ls-tun--pay .vbo-enterpin-btns{display:flex!important;gap:10px;align-items:center;}
.ls-tun--pay #vbo-pincode-inp{flex:1 1 auto;min-width:0;width:auto!important;background:#fff!important;border:1px solid var(--ls-line)!important;border-radius:8px!important;padding:13px 14px!important;font-size:15px!important;font-family:var(--ls-font)!important;color:var(--ls-ink)!important;height:auto!important;box-shadow:none!important;}
.ls-tun--pay #vbo-pincode-inp::placeholder{color:var(--ls-muted);opacity:1;}
.ls-tun--pay button.vbo-pincode-sbmt{background:var(--ls-green)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:13px 24px!important;font-size:15px!important;font-weight:600!important;font-family:var(--ls-font)!important;white-space:nowrap;height:auto!important;line-height:1.2!important;text-transform:none!important;letter-spacing:0!important;}
.ls-pin__or{display:flex;align-items:center;gap:12px;margin-top:16px;font-size:13px;color:var(--ls-muted);}
.ls-pin__or::before,.ls-pin__or::after{content:"";flex:1 1 0;height:1px;background:rgba(21,122,48,.2);}
.ls-tun--pay .vbo-enterpin-response{margin-top:10px;font-size:14px;}
/* titres de section */
.ls-tun--pay h2.ls-tun__h2{font-size:22px;line-height:1.35;margin:48px 0 20px;}
.ls-tun--pay .vbo-oconfirm-paymentopts h2.ls-tun__h2{margin:48px 0 10px;}
/* champs (Figma 562:3760) */
.ls-tun--pay .vbcustomfields{display:grid!important;grid-template-columns:1fr 1fr;gap:18px 20px;margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;}
.ls-tun--pay .vbo-oconfirm-cfield-entry{display:flex!important;flex-direction:column;gap:7px;margin:0!important;padding:0!important;width:auto!important;float:none!important;border:0!important;}
.ls-tun--pay .vbo-oconfirm-cfield-entry.ls-cf--full,.ls-tun--pay .vbo-oconfirm-cfield-entry-textarea{grid-column:1/-1;}
.ls-tun--pay .vbo-oconfirm-cfield-label{font-size:13px!important;font-weight:600!important;color:var(--ls-ink)!important;text-align:left!important;width:auto!important;padding:0!important;}
.ls-tun--pay .vbo-oconfirm-cfield-label sup,.ls-tun--pay .vbo-oconfirm-cfield-label .vbo-required{color:var(--ls-muted);font-weight:400;}
.ls-tun--pay .vbo-oconfirm-cfield-input{width:auto!important;padding:0!important;}
.ls-tun--pay .vbo-oconfirm-cfield-input input[type=text],.ls-tun--pay .vbo-oconfirm-cfield-input input[type=email],.ls-tun--pay .vbo-oconfirm-cfield-input input[type=tel],.ls-tun--pay .vbo-oconfirm-cfield-input select,.ls-tun--pay .vbo-oconfirm-cfield-input textarea{width:100%!important;max-width:none!important;box-sizing:border-box;background:#fff!important;border:1px solid var(--ls-line)!important;border-radius:8px!important;padding:13px 16px!important;font-size:15px!important;font-family:var(--ls-font)!important;color:var(--ls-ink)!important;height:auto!important;box-shadow:none!important;}
.ls-tun--pay .vbo-oconfirm-cfield-input .iti{width:100%;}
.ls-tun--pay .vbo-oconfirm-cfield-input .iti input[type=tel]{padding-left:92px!important;}
.ls-tun--pay .vbo-oconfirm-cfield-input textarea{min-height:98px;resize:vertical;}
.ls-tun--pay .vbo-oconfirm-cfield-input ::placeholder{color:var(--ls-muted)!important;opacity:1;}
.ls-cf__hint{margin:0!important;padding:0!important;font-size:12px;line-height:1.6;color:var(--ls-muted);}
/* paiement (Figma 538:3246) */
.ls-tun--pay .vbo-oconfirm-paymentopts{margin:0!important;padding:0!important;border:0!important;background:none!important;}
.ls-tun--pay .vbo-oconfirm-paymentopts>h4{display:none!important;}
.ls-tun--pay .vbo-oconfirm-paymethods-list{list-style:none!important;margin:20px 0 0!important;padding:0!important;display:flex;flex-direction:column;gap:12px;}
.ls-tun--pay .vbo-oconfirm-paymethod-item{display:flex!important;align-items:center;gap:14px;background:#fff!important;border:1px solid var(--ls-line)!important;border-radius:12px!important;padding:16px 20px!important;margin:0!important;cursor:pointer;box-shadow:none!important;}
.ls-tun--pay .vbo-oconfirm-paymethod-item:has(input:checked){border:2px solid var(--ls-green)!important;padding:15px 19px!important;}
.ls-tun--pay .vbo-oconfirm-paymethod-item input[type=radio]{accent-color:var(--ls-green);width:20px;height:20px;margin:0!important;flex:0 0 20px;}
.ls-tun--pay .vbo-oconfirm-paymethod-item label{display:flex!important;align-items:center;justify-content:space-between;gap:14px;flex:1 1 auto;margin:0!important;cursor:pointer;}
.ls-tun--pay .vbo-oconfirm-paymethod-item img:not(.ls-pm__logos img){display:none!important;}
.ls-tun--pay .vbo-paymeth-info{display:flex!important;flex-direction:column;gap:3px;}
.ls-pm__ttl{font-size:15px;font-weight:600;color:var(--ls-ink);}
.ls-pm__sub{font-size:13px;line-height:1.6;color:var(--ls-muted);}
.ls-pm__logos{display:flex!important;align-items:center;gap:6px;flex:0 0 auto;}
.ls-pm__logos img{display:block!important;height:auto;}
.ls-tun--pay .vbo-oconfirm-paymethod-item .vbo-paymeth-info+img,.ls-tun--pay .vbo-oconfirm-paymethod-item>img{display:none!important;}
/* code promo (Figma 538:3279) */
.ls-tun--pay .vbo-coupon-outer{margin:24px 0 0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;}
.ls-tun--pay .vbo-coupon-form>div,.ls-tun--pay .vbo-coupon-form .vbentercoupon{display:flex!important;gap:12px;align-items:center;margin:0!important;padding:0!important;border:0!important;background:none!important;}
.ls-tun--pay .vbhaveacoupon{display:none!important;}
.ls-tun--pay .vbinputcoupon{flex:1 1 auto;width:auto!important;background:#fff!important;border:1px solid var(--ls-line)!important;border-radius:8px!important;padding:13px 16px!important;font-size:15px!important;font-family:var(--ls-font)!important;height:auto!important;box-shadow:none!important;}
.ls-tun--pay input.vbsubmitcoupon{background:#fff!important;color:var(--ls-ink)!important;border:1.5px solid var(--ls-line)!important;border-radius:999px!important;padding:13px 24px!important;font-size:15px!important;font-weight:600!important;font-family:var(--ls-font)!important;height:auto!important;line-height:1.2!important;text-transform:none!important;letter-spacing:0!important;}
/* CGU */
.ls-tun--pay .ls-terms{display:flex!important;flex-direction:row-reverse!important;justify-content:flex-end;align-items:flex-start;gap:12px;margin:28px 0 0!important;}
.ls-tun--pay .ls-terms .vbo-oconfirm-cfield-label{font-size:14px!important;font-weight:400!important;line-height:1.65;color:var(--ls-txt)!important;}
.ls-tun--pay .ls-terms .vbo-oconfirm-cfield-label a{color:var(--ls-green-dk)!important;font-weight:600;text-decoration:underline;}
.ls-tun--pay .ls-terms input[type=checkbox]{accent-color:var(--ls-green);width:20px;height:20px;margin:1px 0 0!important;}
/* 24 h (snippet #9) */
.ls-tun--pay #ls-24h-pay{margin:36px 0 0!important;border:0!important;border-radius:8px!important;background:var(--ls-green-light)!important;color:var(--ls-green-dk)!important;font-size:14px!important;padding:12px 16px!important;}
.ls-sum__24h{margin:20px 0 0;font-size:13px;padding:12px 16px 12px 34px;}
.ls-sum__24h::before{left:16px;top:20px;width:7px;height:7px;}
/* navigation */
.ls-tun--pay .vboconfirmbottom{display:flex!important;flex-direction:row-reverse;justify-content:space-between;align-items:center;margin:12px 0 0!important;padding:0!important;border:0!important;background:none!important;}
.ls-tun--pay .vboconfirmbottom input.booknow{background:var(--ls-green)!important;border:0!important;border-radius:999px!important;padding:17px 34px!important;font-size:16px!important;font-weight:600!important;color:#fff!important;font-family:var(--ls-font)!important;height:auto!important;line-height:1.2!important;cursor:pointer;text-transform:none!important;letter-spacing:0!important;}
.ls-tun--pay .vboconfirmbottom input.booknow:hover{background:var(--ls-green-dk)!important;}
.ls-tun--pay .vboconfirmbottom .vbo-goback-link{display:inline-flex!important;background:transparent!important;border:1.5px solid var(--ls-line)!important;border-radius:999px!important;padding:15px 26px!important;font-size:15px!important;font-weight:600!important;color:var(--ls-txt)!important;text-decoration:none!important;height:auto!important;line-height:1.2!important;}
.ls-sum__line--disc span,.ls-sum__line--disc strong{color:var(--ls-green-dk);}
@media (max-width:900px){
  .ls-tun--pay .vbcustomfields{grid-template-columns:1fr;}
  .ls-tun--pay .vboconfirmbottom{display:none!important;}
  .ls-tun--pay .vbo-enterpin-btns{flex-wrap:wrap;}
  .ls-tun--pay #vbo-pincode-inp{flex-basis:100%;}
  .ls-tun--pay button.vbo-pincode-sbmt{width:100%;}
  .ls-pm__logos{display:none!important;}
}
/* tunnel V3 paiement — correctifs 1 */
.ls-tun--pay .vbo-oconfirm-cfield-entry.ls-cf--hide{display:none!important;}
.ls-tun--pay .vbo-enterpin-top{display:block!important;width:auto!important;}
.ls-tun--pay .vbo-enterpin-top h4{display:block!important;width:auto!important;}
/* tunnel V3 paiement — correctifs 2 */
.ls-tun--pay ul.vbo-oconfirm-paymethods-list li.vbo-oconfirm-paymethod-item>label{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;flex:1 1 auto!important;width:auto!important;}
.ls-tun--pay ul.vbo-oconfirm-paymethods-list li.vbo-oconfirm-paymethod-item::before,.ls-tun--pay ul.vbo-oconfirm-paymethods-list li.vbo-oconfirm-paymethod-item::after,.ls-tun--pay ul.vbo-oconfirm-paymethods-list li.vbo-oconfirm-paymethod-item>label::before,.ls-tun--pay ul.vbo-oconfirm-paymethods-list li.vbo-oconfirm-paymethod-item>label::after{display:none!important;content:none!important;}
.ls-tun--pay select.vbf-countryinp.is-empty{color:var(--ls-muted)!important;}
.ls-tun--pay select.vbf-countryinp option{color:var(--ls-ink);}
/* tunnel V3 paiement — code promo */
.ls-tun--pay .vbo-coupon-form .vbentercoupon-inner{display:flex!important;gap:12px!important;width:100%!important;}
.ls-tun--pay .vbo-coupon-form .vbentercoupon-inner .vbinputcoupon{flex:1 1 auto!important;width:auto!important;min-width:0!important;}
.ls-tun--pay .vbo-coupon-form .vbentercoupon{display:block!important;}
@media (max-width:900px){.ls-tun--pay .vbo-enterpin-btns #vbo-pincode-inp{flex:1 1 100%!important;width:100%!important;max-width:none!important;}.ls-tun--pay .vbo-enterpin-btns button.vbo-pincode-sbmt{flex:1 1 100%!important;}}
.ls-tun--pay .vbo-enterpin-inner,.ls-tun--pay .vbo-enterpin-btns{width:100%!important;max-width:none!important;float:none!important;}
/* tunnel V3 — sélecteur de quantité des options (Figma 533:3164) */
body.ls-tunnel select.ls-opt__native{display:none!important;}
body.ls-tunnel button.ls-opt__add{background:#fff!important;border:1.5px solid var(--ls-green)!important;border-radius:999px!important;padding:11px 22px!important;font-family:var(--ls-font)!important;font-size:14px!important;font-weight:600!important;color:var(--ls-green-dk)!important;line-height:1.2!important;text-transform:none!important;letter-spacing:0!important;box-shadow:none!important;cursor:pointer;}
body.ls-tunnel button.ls-opt__add[hidden],.ls-opt__qty[hidden]{display:none!important;}
.ls-opt__qty{display:inline-flex;align-items:center;background:#fff;border:1px solid var(--ls-line);border-radius:999px;}
body.ls-tunnel .ls-opt__qty button{width:38px!important;height:38px!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;font-family:var(--ls-font)!important;font-size:18px!important;font-weight:700!important;color:var(--ls-green-dk)!important;cursor:pointer;line-height:1!important;}
body.ls-tunnel .ls-opt__qty button:disabled{opacity:.35;cursor:default;}
.ls-opt__qty span{width:34px;text-align:center;font-size:16px;font-weight:700;color:var(--ls-ink);}
body.ls-tunnel .vbo-showprc-option-entry-img img{width:44px!important;height:44px!important;max-width:none!important;}
/* tunnel V3 — cartes d option : neutralise les largeurs natives VBO */
body.ls-tunnel .vbo-showprc-optionstable>.vbo-showprc-option-entry{width:auto!important;max-width:none!important;min-width:0!important;float:none!important;box-sizing:border-box!important;}
body.ls-tunnel .vbo-showprc-option-entry>div{width:auto!important;max-width:none!important;float:none!important;min-width:0!important;text-align:left!important;}
body.ls-tunnel .vbo-showprc-option-entry>.vbo-showprc-option-entry-input{text-align:right!important;}
.ls-opt__price{display:block;font-size:18px;font-weight:700;color:var(--ls-ink);}
.ls-opt__unit{display:block;margin-top:2px;font-size:12px;font-weight:400;color:var(--ls-muted);}

/* QA 19/09 — /recherche/ sans résultats : conteneur VBO = form caché seul → supprimer le bloc gris/marge parasite */
.vbdivsearch.vbo-search-mainview:not(:has(.lscard)):not(:has(.room_result)){background:transparent!important;min-height:0!important;margin:0!important;padding:0!important;}


/* QA header 20/09 : intégrer le sélecteur de devise natif (le <select> brut rendait ~63px de haut → header déséquilibré). Neutralise la chrome native + chevron custom. */
.ls-hd__cur{padding:7px 12px!important;}
.ls-hd__cur .vbcurconvcontainer,
.ls-hd__cur .vbcurconv-menu{margin:0!important;padding:0!important;border:0!important;background:none!important;height:auto!important;display:flex!important;align-items:center!important;}
.ls-hd__cur .modcurconvsel{
  -webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;
  background:transparent!important;border:0!important;outline:0!important;box-shadow:none!important;
  margin:0!important;height:auto!important;min-height:0!important;width:auto!important;
  line-height:1.15!important;padding:0 17px 0 0!important;
  font:600 14px/1.15 var(--ls-font)!important;color:var(--ls-ink)!important;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b7a70' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>")!important;
  background-repeat:no-repeat!important;background-position:right center!important;background-size:9px!important;
}
.ls-hd__cur .modcurconvsel::-ms-expand{display:none;}

/* QA 20/09 : sélecteur de devise en mobile (pilote le <select> natif masqué) */
.ls-hd__mcur{display:inline-flex;gap:3px;align-items:center;}
.ls-hd__mcur button{-webkit-appearance:none;appearance:none;background:none;border:0;padding:3px 8px;font:600 14px/1.2 var(--ls-font);color:var(--ls-muted);cursor:pointer;border-radius:7px;}
.ls-hd__mcur button.is-on{color:var(--ls-ink);background:var(--ls-warm);}

/* QA 20/09 — Listing offres packagées : badge, tags, barré, −%, filtres (maquette 706-4218) */
.lspk-filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px;}
.lspk-filter{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid var(--ls-line);border-radius:999px;padding:9px 18px;font:600 14px/1 var(--ls-font);color:var(--ls-txt);cursor:pointer;transition:border-color .15s,background .15s,color .15s;}
.lspk-filter:hover{border-color:var(--ls-green);}
.lspk-filter.is-on{background:var(--ls-green-light);border-color:var(--ls-green);color:var(--ls-green-dk);}
.vbo-pkglist-pkg-bone{position:relative;}
.lspk-badge{position:absolute;top:14px;left:14px;background:var(--ls-orange);color:#fff;font-size:11px;font-weight:700;letter-spacing:.6px;border-radius:6px;padding:5px 11px;}
.lspk-tags{display:flex;flex-wrap:wrap;gap:8px;}
.lspk-tag{background:var(--ls-green-light);color:var(--ls-green-dk);font-size:12.5px;font-weight:600;border-radius:7px;padding:5px 11px;}
.vbo-pkglist-pkg-price .lspk-amount{font-size:24px;font-weight:700;color:var(--ls-green-dk);}
.vbo-pkglist-pkg-price .lspk-amount .lsprice__cur{font-size:15px;font-weight:600;}
.lspk-persub{font-size:12.5px;color:var(--ls-muted);}
.lspk-refline{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:2px;}
.lspk-ref{font-size:14px;color:var(--ls-muted);text-decoration:line-through;font-weight:600;}
.lspk-pct{background:#FCEFE7;color:var(--ls-orange);font-size:12px;font-weight:700;border-radius:6px;padding:3px 8px;}
.lspk-online{font-size:12px;color:var(--ls-muted);text-align:center;}

/* QA 20/09 — Fiche établissement : « Que faire autour » (cartes activités + boutons) + « Où se situe » (carte + distances), maquette 454-1158 */
.vbo-pkgdet-conds h4{font-size:16px;font-weight:700;color:var(--ls-ink);margin:22px 0 10px;}
.ls-actlist{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:12px;}
.ls-act{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--ls-line);border-radius:14px;padding:12px 16px;box-shadow:0 4px 16px rgba(15,23,41,.05);}
.ls-act-img{flex:0 0 96px;width:96px;height:70px;object-fit:cover;border-radius:10px;display:block;}
.ls-act-txt{flex:1 1 auto;font-size:14px;line-height:1.55;color:var(--ls-txt);}
.ls-act-txt strong{color:var(--ls-ink);}
.ls-act-txt a{display:inline-block;margin:8px 8px 0 0;background:var(--ls-green-light);color:var(--ls-green-dk);font-size:13px;font-weight:600;text-decoration:none;border-radius:999px;padding:6px 15px;transition:background .15s,color .15s;}
.ls-act-txt a:hover{background:var(--ls-green);color:#fff;}
.ls-etabgeo{margin:14px 0 8px;}
.ls-etabgeo-map{border-radius:14px;overflow:hidden;border:1px solid var(--ls-line);}
.ls-etabgeo-map iframe{width:100%;height:340px;border:0;display:block;}
.ls-etabgeo-dist{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;}
.ls-etabgeo-pill{display:inline-flex;align-items:center;gap:7px;background:var(--ls-warm);border:1px solid var(--ls-line);border-radius:999px;padding:8px 14px;font-size:13px;color:var(--ls-txt);}
.ls-etabgeo-pill i{color:var(--ls-green);}
.ls-etabgeo-pill b{color:var(--ls-ink);font-weight:700;}
@media(max-width:640px){.ls-act{flex-wrap:wrap;}.ls-act-img{width:100%;flex:0 0 auto;height:150px;}}

/* ===== Location Sénégal — Listing établissements ([ls_packlist type="etablissements"]) ===== */
.lsetab-wrap{display:block;}
/* Bandeau tarif résident */
.lsetab-banner{display:flex;align-items:flex-start;gap:16px;background:var(--ls-green-light);border-radius:14px;padding:20px 24px;margin:0 0 22px;}
.lsetab-banner-flag{font-size:22px;line-height:1.2;flex:0 0 auto;}
.lsetab-banner-txt{flex:1 1 auto;min-width:0;}
.lsetab-banner-txt strong{display:block;color:var(--ls-green-dk);font-size:16px;font-weight:800;margin:0 0 4px;}
.lsetab-banner-txt p{margin:0;color:var(--ls-txt);font-size:14px;line-height:1.55;}
.lsetab-banner-links{flex:0 0 auto;display:flex;flex-direction:column;gap:5px;text-align:right;}
.lsetab-banner-links a{color:var(--ls-green-dk);font-size:14px;font-weight:700;text-decoration:underline;}
.lsetab-banner-links a:hover{color:var(--ls-green);}
/* Filtres */
.lsetab-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 20px;}
.lsetab-fil{position:relative;display:inline-flex;}
.lsetab-fil select{appearance:none;-webkit-appearance:none;background:#fff;border:1px solid var(--ls-line);border-radius:999px;padding:9px 34px 9px 15px;font-family:var(--ls-font);font-size:14px;font-weight:600;color:var(--ls-ink);cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2316181D' stroke-width='3'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 13px center;}
.lsetab-fil select:hover{border-color:var(--ls-green);}
.lsetab-reset{background:none;border:none;color:var(--ls-green-dk);font-family:var(--ls-font);font-size:14px;font-weight:700;cursor:pointer;padding:9px 6px;}
.lsetab-reset:hover{text-decoration:underline;}
/* Grille de cartes */
.lsetab-grid{display:flex;flex-direction:column;gap:18px;}
.lsetab-card{display:grid;/* 420 / reste / 280 : les cotes de la maquette (Figma 1602:16031), sur la meme
   colonne de 1200 px que le site. L'image faisait 270 et le bloc prix 230. */
grid-template-columns:420px minmax(0,1fr) 280px;
/* 420 / reste / 280 : les cotes de la maquette (Figma 1602:16031), sur la meme
   colonne de 1200 px que le site. Un `minmax` sur l'image ne marche pas ici :
   la piste `fr` reclame l'espace libre avant elle, et l'image plafonnait a 340.
   On garde donc des colonnes fixes et on descend d'un cran au palier intermediaire. */background:#fff;border:1px solid var(--ls-line);border-radius:16px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,32,.04);}
.lsetab-media{position:relative;min-height:304px;background-size:cover;background-position:center;background-color:var(--ls-warm);}
.lsetab-body{padding:22px 24px;display:flex;flex-direction:column;gap:12px;min-width:0;}
.lsetab-name{margin:0;font-size:22px;font-weight:800;color:var(--ls-ink);line-height:1.2;}
.lsetab-desc{margin:0;color:var(--ls-txt);font-size:15px;line-height:1.55;}
.lsetab-chips{display:flex;flex-wrap:wrap;gap:8px;}
.lsetab-chip{background:var(--ls-green-light);color:var(--ls-green-dk);border-radius:8px;padding:5px 12px;font-size:13px;font-weight:600;white-space:nowrap;}
.lsetab-note{background:#fff;border:1px solid var(--ls-green-light);}
.lsetab-count{color:var(--ls-muted);font-size:13px;margin-top:auto;}
/* Panneau prix */
.lsetab-side{background:var(--ls-warm);border-left:1px solid var(--ls-line);padding:22px 22px;display:flex;flex-direction:column;gap:6px;justify-content:center;}
.lsetab-fromlbl{color:var(--ls-muted);font-size:12px;}
.lsetab-price{color:var(--ls-green-dk);font-size:26px;font-weight:800;line-height:1.1;}
.lsetab-per{color:var(--ls-muted);font-size:12px;margin-bottom:4px;}
.lsetab-res{align-self:flex-start;background:var(--ls-cream);border-radius:8px;padding:5px 11px;font-size:13px;color:var(--ls-ink);margin-bottom:10px;}
.lsetab-res strong{font-weight:800;}
.lsetab-cta{display:block;text-align:center;background:var(--ls-green);color:#fff;border-radius:10px;padding:12px 16px;font-weight:700;font-size:15px;text-decoration:none;border:none;}
.lsetab-cta:hover{background:var(--ls-green-dk);color:#fff;}
.lsetab-avail{color:var(--ls-muted);font-size:12px;margin-top:8px;}
/* Section « Comment lire une fiche établissement » */
.lsetab-help{background:var(--ls-warm);border-radius:16px;padding:36px 34px;margin:40px 0 0;}
.lsetab-help h2{margin:0 0 6px;font-size:24px;font-weight:800;color:var(--ls-ink);}
.lsetab-help-sub{margin:0 0 24px;color:var(--ls-txt);font-size:15px;line-height:1.55;max-width:720px;}
.lsetab-help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.lsetab-help-card{background:#fff;border:1px solid var(--ls-line);border-radius:12px;padding:22px 20px;}
.lsetab-help-card::before{content:"";display:block;width:32px;height:3px;background:var(--ls-green);border-radius:2px;margin:0 0 12px;}
.lsetab-help-card h3{margin:0 0 8px;font-size:16px;font-weight:800;color:var(--ls-ink);}
.lsetab-help-card p{margin:0;color:var(--ls-txt);font-size:14px;line-height:1.55;}
@media (max-width:1150px){
  /* Sous 1 150 px, 420+280 ne laissait que 235 px au texte (mesure a 1000 px). */
  .lsetab-card{grid-template-columns:300px minmax(0,1fr) 250px;}
  .lsetab-media{min-height:240px;}
}
@media (max-width:900px){
  .lsetab-card{grid-template-columns:1fr;}
  .lsetab-media{min-height:200px;}
  .lsetab-side{border-left:none;border-top:1px solid var(--ls-line);}
  .lsetab-help-grid{grid-template-columns:1fr;}
  .lsetab-banner{flex-wrap:wrap;}
  .lsetab-banner-links{text-align:left;flex-direction:row;flex-wrap:wrap;gap:14px;width:100%;}
}

/* ===== Location Sénégal — Listing promotions ([ls_promolist]) ===== */
.lspromo-wrap{display:block;}
.lspromo-grid{display:flex;flex-direction:column;gap:22px;}
.lspromo-card{background:#fff;border:1px solid var(--ls-line);border-radius:16px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,32,.04);}
.lspromo-head{display:grid;grid-template-columns:420px minmax(0,1fr) 280px;}
/* Meme carte que les etablissements : image 420, bloc droit 280, sur la colonne
   de 1200 px. Elle faisait 270 / 236 — l'image et le bloc reduction etaient trop
   etroits par rapport a la maquette (Figma 1602:16379). */
@media (max-width:1150px){ .lspromo-head{grid-template-columns:300px minmax(0,1fr) 250px;} }
.lspromo-media{min-height:250px;background-size:cover;background-position:center;background-color:var(--ls-warm);}
.lspromo-body{padding:24px;display:flex;flex-direction:column;gap:12px;min-width:0;}
.lspromo-name{margin:0;font-size:22px;font-weight:800;color:var(--ls-ink);line-height:1.2;}
.lspromo-desc{margin:0;color:var(--ls-txt);font-size:15px;line-height:1.55;}
.lspromo-valid{/* pas de margin-top:auto : il collait les dates tout en bas de la carte,
   a 179 px sous la description (mesure). La maquette (Figma 1602:16379) les pose
   juste apres le texte. */margin-top:4px;background:var(--ls-green-light);color:var(--ls-green-dk);border-radius:10px;padding:10px 14px;font-size:13px;line-height:1.5;}
.lspromo-valid i{margin-right:6px;}
.lspromo-valid em{display:block;font-style:normal;color:var(--ls-txt);margin-top:2px;}
.lspromo-side{background:var(--ls-warm);border-left:1px solid var(--ls-line);padding:22px;display:flex;flex-direction:column;gap:5px;justify-content:center;}
.lspromo-rlbl{color:var(--ls-muted);font-size:12px;}
.lspromo-rval{color:var(--ls-green-dk);font-size:28px;font-weight:800;line-height:1.1;}
.lspromo-rsub{color:var(--ls-muted);font-size:12px;margin-bottom:6px;}
.lspromo-until{color:var(--ls-ink);font-size:13px;font-weight:600;}
.lspromo-cumul{align-self:flex-start;color:var(--ls-orange);font-size:12px;font-weight:700;margin:2px 0 10px;}
.lspromo-cta{display:block;text-align:center;background:var(--ls-green);color:#fff;border-radius:10px;padding:12px 16px;font-weight:700;font-size:15px;text-decoration:none;border:none;}
.lspromo-cta:hover{background:var(--ls-green-dk);color:#fff;}
.lspromo-nb{color:var(--ls-muted);font-size:12px;margin-top:8px;}
/* Sous-bloc établissements */
.lspromo-etabs{border-top:1px solid var(--ls-line);padding:24px;scroll-margin-top:90px;}
.lspromo-etabs>h4{margin:0 0 4px;font-size:18px;font-weight:800;color:var(--ls-ink);}
.lspromo-etabs-sub{margin:0 0 18px;color:var(--ls-txt);font-size:14px;line-height:1.5;}
.lspromo-etabs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.lspromo-etab{display:flex;flex-direction:column;gap:8px;}
.lspromo-etab-media{height:150px;border-radius:10px;background-size:cover;background-position:center;background-color:var(--ls-warm);}
.lspromo-etab-name{font-size:15px;font-weight:700;color:var(--ls-ink);}
.lspromo-etab-sub{color:var(--ls-muted);font-size:13px;margin-top:-4px;}
.lspromo-etab-cta{display:block;text-align:center;background:var(--ls-green);color:#fff;border-radius:8px;padding:10px 12px;font-weight:700;font-size:14px;text-decoration:none;margin-top:2px;}
.lspromo-etab-cta:hover{background:var(--ls-green-dk);color:#fff;}
@media (max-width:900px){
  .lspromo-head{grid-template-columns:1fr;}
  .lspromo-media{min-height:200px;}
  .lspromo-side{border-left:none;border-top:1px solid var(--ls-line);}
  .lspromo-etabs-grid{grid-template-columns:1fr;}
}

/* ===== Location Sénégal — Filtre « Où et quoi » réutilisable (.lsfil) ===== */
.lsfil{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 22px;}
.lsfil-toggle{display:none;}
.lsfil-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
.lsfil-sheethead,.lsfil-sheetfoot{display:none;}
.lsfil-drop{position:relative;}
.lsfil-btn{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--ls-line);border-radius:999px;padding:9px 15px;font-family:var(--ls-font);font-size:14px;font-weight:600;color:var(--ls-ink);cursor:pointer;}
.lsfil-btn:hover{border-color:var(--ls-green);}
.lsfil-btn.is-active{border-color:var(--ls-green);color:var(--ls-green-dk);background:var(--ls-green-light);}
.lsfil-cnt{display:none;align-items:center;justify-content:center;background:var(--ls-green);color:#fff;font-size:11px;font-weight:700;border-radius:999px;min-width:18px;height:18px;padding:0 5px;}
.lsfil-cnt.on{display:inline-flex;}
.lsfil-cv{color:var(--ls-green);font-size:11px;}
.lsfil-resetall{background:none;border:none;color:var(--ls-green-dk);font-family:var(--ls-font);font-size:14px;font-weight:700;cursor:pointer;padding:9px 6px;}
.lsfil-resetall:hover{text-decoration:underline;}
.lsfil-panel{position:absolute;z-index:60;top:calc(100% + 8px);left:0;width:380px;max-width:92vw;background:#fff;border:1px solid var(--ls-line);border-radius:16px;box-shadow:0 16px 40px rgba(16,24,32,.16);display:none;overflow:hidden;}
.lsfil-drop[data-dim="meal"] .lsfil-panel{left:auto;right:0;}
.lsfil-drop.open .lsfil-panel{display:block;}
.lsfil-phead{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--ls-line);}
.lsfil-phead span{font-size:17px;font-weight:800;color:var(--ls-ink);}
.lsfil-x,.lsfil-sheetx{background:none;border:none;font-size:22px;line-height:1;color:var(--ls-muted);cursor:pointer;padding:0 2px;}
.lsfil-search{padding:16px 20px 4px;}
.lsfil-search input{width:100%;box-sizing:border-box;background:var(--ls-warm);border:1px solid transparent;border-radius:10px;padding:11px 14px;font-family:var(--ls-font);font-size:14px;color:var(--ls-ink);}
.lsfil-search input:focus{outline:none;border-color:var(--ls-green);background:#fff;}
.lsfil-treelbl{padding:12px 20px 4px;font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ls-muted);}
.lsfil-tree{max-height:46vh;overflow:auto;padding:0 10px 6px;}
.lsfil-trow{display:flex;align-items:center;gap:2px;border-radius:8px;padding:1px 6px;}
.lsfil-trow.is-checked{background:var(--ls-green-light);}
.lsfil-tog{background:none;border:none;width:18px;flex:0 0 18px;color:var(--ls-green);font-size:11px;cursor:pointer;text-align:center;padding:0;font-family:var(--ls-font);}
.lsfil-tog.is-empty{cursor:default;visibility:hidden;}
.lsfil-chk{display:flex;align-items:center;gap:9px;cursor:pointer;flex:1;padding:7px 2px;min-width:0;margin:0;}
.lsfil-chk input{position:absolute;opacity:0;width:0;height:0;}
.lsfil-box{flex:0 0 18px;width:18px;height:18px;border:1.5px solid var(--ls-line);border-radius:5px;position:relative;transition:.12s;}
.lsfil-chk input:checked + .lsfil-box{background:var(--ls-green);border-color:var(--ls-green);}
.lsfil-chk input:checked + .lsfil-box::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.lsfil-chk input:focus-visible + .lsfil-box{outline:2px solid var(--ls-green);outline-offset:2px;}
.lsfil-name{font-size:14px;color:var(--ls-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lsfil-l1 .lsfil-name{font-weight:700;}
.lsfil-l2{padding-left:22px;}
.lsfil-l3{padding-left:44px;}
.lsfil-l3 .lsfil-name{font-size:13px;color:var(--ls-txt);}
.lsfil-kids{display:none;}
.lsfil-node.open > .lsfil-kids{display:block;}
.lsfil-pills{display:flex;flex-wrap:wrap;gap:8px;padding:16px 20px;}
.lsfil-pill{background:#fff;border:1px solid var(--ls-line);border-radius:999px;padding:8px 15px;font-family:var(--ls-font);font-size:13px;font-weight:600;color:var(--ls-ink);cursor:pointer;}
.lsfil-pill:hover{border-color:var(--ls-green);}
.lsfil-pill.is-on{background:var(--ls-green);border-color:var(--ls-green);color:#fff;}
.lsfil-foot{display:flex;gap:12px;padding:14px 20px;border-top:1px solid var(--ls-line);}
.lsfil-clear{flex:0 0 auto;background:#fff;border:1px solid var(--ls-line);border-radius:10px;padding:11px 18px;font-family:var(--ls-font);font-size:14px;font-weight:700;color:var(--ls-ink);cursor:pointer;}
.lsfil-clear:hover{border-color:var(--ls-ink);}
.lsfil-apply{flex:1;background:var(--ls-green);border:none;border-radius:10px;padding:11px 18px;font-family:var(--ls-font);font-size:14px;font-weight:700;color:#fff;cursor:pointer;}
.lsfil-apply:hover{background:var(--ls-green-dk);}
/* ---- Mobile : panneau fusionné « Où et quoi » (bottom sheet) ---- */
@media (max-width:767px){
  .lsfil-toggle{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--ls-line);border-radius:999px;padding:11px 18px;font-family:var(--ls-font);font-size:15px;font-weight:700;color:var(--ls-ink);cursor:pointer;}
  .lsfil-chev{color:var(--ls-green);}
  .lsfil-bar{display:none;position:fixed;inset:0;z-index:2000;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;background:#fff;overflow-y:auto;padding-bottom:88px;}
  .lsfil.is-open .lsfil-bar{display:flex;}
  .lsfil-sheethead{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#fff;padding:18px 20px;border-bottom:1px solid var(--ls-line);z-index:2;}
  .lsfil-sheethead span{font-size:18px;font-weight:800;color:var(--ls-ink);}
  .lsfil-drop{position:static;border-bottom:1px solid var(--ls-line);}
  .lsfil-btn{display:none;}
  .lsfil-panel{display:block;position:static;width:auto;max-width:none;border:none;border-radius:0;box-shadow:none;overflow:visible;}
  .lsfil-phead{border-bottom:none;padding:16px 20px 2px;}
  .lsfil-phead span{font-size:15px;}
  .lsfil-x{display:none;}
  .lsfil-tree{max-height:none;}
  .lsfil-foot{display:none;}
  .lsfil-sheetfoot{display:flex;gap:12px;position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--ls-line);padding:14px 20px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:3;}
  .lsfil-clearall{flex:0 0 auto;background:#fff;border:1px solid var(--ls-line);border-radius:10px;padding:12px 18px;font-family:var(--ls-font);font-size:15px;font-weight:700;color:var(--ls-ink);cursor:pointer;}
  .lsfil-applyall{flex:1;background:var(--ls-green);border:none;border-radius:10px;padding:12px 18px;font-family:var(--ls-font);font-size:15px;font-weight:700;color:#fff;cursor:pointer;}
}

/* LS 22/09 — masque le formulaire de recherche VBO natif en doublon (le moteur charte [ls_moteur] pilote la recherche ; Figma = 1 seule barre) */
.page-id-2614 .vbdivsearch.vbo-search-mainview, .postid-3828 .vbdivsearch.vbo-search-mainview, body.search .vbdivsearch.vbo-search-mainview { display:none !important; }

/* LS 22/09 — global (mainview = uniquement la page recherche) */
.vbdivsearch.vbo-search-mainview { display:none !important; }

/* ===== Filtre « Où et quoi » — aucun résultat (recette du 24/09) ===== */
.lsfil-empty{grid-column:1/-1;width:100%;box-sizing:border-box;margin:8px 0 4px;padding:34px 28px;text-align:center;background:#F7F6F3;border:1px solid #E3E5E9;border-radius:14px;}
.lsfil-empty__t{margin:0 0 6px;font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:18px;color:#16181D;}
.lsfil-empty__p{margin:0 0 18px;font-size:15px;color:#767B84;}
.lsfil-empty__btn{appearance:none;border:1px solid #157A30;background:#fff;color:#157A30;font-weight:700;font-size:14px;padding:10px 20px;border-radius:999px;cursor:pointer;}
.lsfil-empty__btn:hover{background:#157A30;color:#fff;}
@media (max-width:767px){.lsfil-empty{padding:26px 18px;}}

/* ===== Promotions — ligne « valable jusqu'au » + pastille Cumulable (maquette 1602-16576) ===== */
.lspromo-validrow{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:10px 0 2px;}
.lspromo-validrow .lspromo-until{margin:0;}
.lspromo-cumul{display:inline-block;background:#FCF3D6;color:#992E09;font-size:12px;font-weight:700;line-height:1;padding:6px 11px;border-radius:999px;white-space:nowrap;}

/* ===== Encart tarif résident en mobile — correctif recette Hamid du 25/09 =====
   En colonne, `flex:1 1 480px` posait une BASE DE 480 px sur la HAUTEUR du texte (et non sur sa
   largeur comme en ligne) : d'où un trou vertical énorme, et les deux liens repoussés tout en bas
   par le `space-between`. Et `white-space:nowrap` sur les liens les faisait déborder à 375 px. */
@media(max-width:820px){
  .ls-resbanner{justify-content:flex-start;gap:14px;}
  .ls-resbanner__txt{flex:1 1 auto;}
  .ls-resbanner__cta{white-space:normal;flex-wrap:wrap;gap:8px 18px;}
}

/* ===== Fiche offre — bloc « Les logements qui acceptent cette offre » (maquette 710:4289) =====
   VikBooking rend ici sa propre liste (.vbo-pkgdet-roomswrap), en ligne : vignette de 58 px,
   texte au milieu, bouton écrasé à 35 px. La maquette demande des cartes verticales, image en
   pleine largeur, bouton pleine largeur, le tout sur le fond crème de la charte. Recette du 25/09. */
.vbo-pkgdet-roomswrap{background:#F6F4F0;border-radius:16px;padding:28px 26px 30px;margin:28px 0;}
/* `!important` obligatoire : vikbooking_styles.css declare `.vbo-pkgdet-roomslist{display:inline-block}`
   a la MEME specificite et se charge APRES la charte — depuis la mise a jour du plugin en 1.8.15,
   notre grille etait ecrasee et la liste rendait une seule carte pleine largeur, image a 577 px.
   Constate le 04/10/2026. */
/* Formulaire de disponibilités ouvert dans une carte d'offre.
   Le moteur garde ses largeurs natives — un formulaire de 155 px dans une carte de 295,
   emboîté dans des conteneurs de 406 et 528 px de haut : la carte passait à 1042 px avec
   un grand vide au milieu (constaté le 04/10/2026). On le fait remplir sa carte et on
   laisse les boîtes épouser leur contenu. */
/* `flow-root` sur le bloc lui-même : sa hauteur ne contenait pas son contenu — la carte
   mesurait 786 px alors que les champs se dessinaient à y=855 et 873, SOUS son bas, où
   `overflow:hidden` les découpait. D'où le grand rectangle blanc. Le conteneur passe donc
   aussi en `overflow:visible` : le rognage des coins de l'image est déjà assuré par
   `.vbo-pkgdet-room-img{overflow:hidden}`. Mesuré le 04/10/2026 — 20 champs sur 20
   étaient hors de la carte. */
.vbo-pkgdet-room-inner{width:100%!important;max-width:none!important;padding:0 16px 16px!important;
  box-sizing:border-box;display:flow-root!important;height:auto!important;overflow:visible!important;}
.vbo-pkgdet-room-container{overflow:visible!important;}
.vbo-pkgdet-room-outer{overflow:hidden;border-radius:14px 14px 0 0;}
/* LA cause du rectangle blanc : `.vbo-pkgdet-room-outer` portait `height:100%`, donc il
   occupait TOUTE la carte (786 px) et le formulaire, placé après lui, démarrait à 785 —
   entièrement hors de la carte, où `overflow:hidden` le découpait. On a donc vu un grand
   vide. Mesuré le 04/10/2026 : inner_y = 785 pour une carte de 786.
   `height:auto` rend sa place au formulaire. L'alignement des boutons entre cartes n'est
   plus assuré par cet artifice — il ne l'était déjà plus depuis que le bloc de texte ne
   s'étire plus. */
.vbo-pkgdet-room-outer{height:auto!important;}

/* Bloc de réservation aux composants de la charte, repris du tunnel (`.ls-crit`) :
   conteneur bordé #E3E5E9 rayon 12, libellé 11/700 en majuscules #767B84 interlettré 0,6,
   valeur 15/700 #16181D. Empilés en vertical, comme le bloc de la fiche chambre.
   Valeurs relevées sur la page, pas inventées. */
.vbo-pkgdet-room-inner{background:#fff!important;border-top:1px solid #E3E5E9;padding:16px!important;}
.vbo-pkgdet-room-inner h4{font-size:15px!important;font-weight:700!important;color:#16181D!important;
  margin:0 0 12px!important;border:0!important;padding:0!important;background:none!important;}

.vbo-pkgdet-room-inner .vbo-search-inpblock{display:block!important;border:1px solid #E3E5E9!important;
  border-radius:12px!important;background:#fff!important;padding:10px 14px!important;margin:0 0 10px!important;}
.vbo-pkgdet-room-inner .vbo-search-inpblock label{display:block!important;font-size:11px!important;
  font-weight:700!important;color:#767B84!important;text-transform:uppercase!important;
  letter-spacing:.6px!important;margin:0 0 2px!important;}
.vbo-pkgdet-room-inner .input-group{display:flex!important;align-items:center!important;
  border:0!important;background:none!important;width:100%!important;}
.vbo-pkgdet-room-inner input[type="text"]{flex:1 1 auto!important;min-width:0!important;
  height:auto!important;border:0!important;border-radius:0!important;background:none!important;
  box-shadow:none!important;padding:0!important;font-family:inherit!important;
  font-size:15px!important;font-weight:700!important;color:#16181D!important;}
.vbo-pkgdet-room-inner input[type="text"]:focus{outline:none!important;}
.vbo-pkgdet-room-inner .input-group i,
.vbo-pkgdet-room-inner .input-group .far{flex:0 0 auto!important;border:0!important;
  background:none!important;color:#767B84!important;font-size:15px!important;padding:0 0 0 8px!important;}
.vbo-pkgdet-room-inner select{height:auto!important;border:0!important;background:none!important;
  box-shadow:none!important;padding:0!important;font-family:inherit!important;font-size:15px!important;
  font-weight:700!important;color:#16181D!important;}

/* La ligne « Chambre 1 · Adultes · Enfants » devient une boîte unique, comme COMPOSITION
   dans la charte. La classe réelle est `.vbo-search-num-aduchild-entry`. */
.vbo-pkgdet-room-inner .vbo-search-num-aduchild-entry{display:flex!important;align-items:center!important;
  justify-content:space-around!important;gap:12px!important;
  border:1px solid #E3E5E9!important;border-radius:12px!important;
  padding:10px 14px!important;margin:0 0 10px!important;}
/* Message d'erreur du formulaire, aux codes de la charte. */
.vbo-pkgdet-room-inner .ls-formerr{margin:0 0 10px!important;padding:10px 12px;border-radius:10px;
  background:#FDECEC;color:#A32D2D;font-size:12.5px;line-height:1.5;font-weight:600;}
.vbo-pkgdet-room-inner .vbo-search-inpblock.ls-champ-erreur{border-color:#E24B4A!important;}

/* « Chambre 1 » ne sert à rien ici : l'offre ne porte qu'une chambre, et le libellé
   mangeait la largeur des deux sélecteurs. Masqué, pas supprimé du balisage. */
.vbo-pkgdet-room-inner .vbo-search-roomnum{display:none!important;}
.vbo-pkgdet-room-inner .vbo-search-num-adults-entry,
.vbo-pkgdet-room-inner .vbo-search-num-children-entry{display:flex!important;align-items:center!important;
  gap:7px!important;}
.vbo-pkgdet-room-inner .vbo-search-num-adults-entry-label,
.vbo-pkgdet-room-inner .vbo-search-num-children-entry-label{font-size:11px!important;font-weight:700!important;
  color:#767B84!important;text-transform:uppercase!important;letter-spacing:.6px!important;margin:0!important;}
/* `.vbo-search-num-racblock` est en flex : la mention « Nuits : 1 », un simple <div> sans
   classe, s'y retrouvait comprimée à 36 px et se cassait en deux lignes tronquées.
   On passe le bloc en colonne pour qu'elle prenne sa propre ligne, en discret. */
.vbo-pkgdet-room-inner .vbo-search-num-racblock{display:flex!important;flex-direction:column!important;
  align-items:stretch!important;margin:0!important;padding:0!important;}
.vbo-pkgdet-room-inner .vbo-search-num-aduchild-block{margin:0!important;padding:0!important;width:100%!important;}
.vbo-pkgdet-room-inner .vbo-search-num-racblock > div:not([class]){width:100%!important;
  font-size:12px!important;color:#767B84!important;margin:0 0 10px!important;text-align:left!important;
  white-space:nowrap!important;}

/* Les boîtes de date faisaient 80 px pour 42 de contenu : le champ flottait en bas. */
.vbo-pkgdet-room-inner .vbo-search-inpblock .input-group{height:auto!important;min-height:0!important;
  margin:0!important;padding:0!important;}
.vbo-pkgdet-room-inner input[type="text"]{line-height:1.5!important;}

/* Le bouton obéissait déjà à `width:100%`, mais son CONTENEUR `.vbo-search-submit` ne
   faisait que 112 px : 100 % d'un parent étroit reste étroit. C'est lui qu'il faut élargir.
   Mesuré le 04/10/2026. */
.vbo-pkgdet-room-inner .vbo-search-submit{display:block!important;width:100%!important;
  max-width:none!important;float:none!important;margin:0!important;padding:0!important;text-align:center!important;}
html body .vbo-pkgdet-room-inner input[type="submit"]{width:100%!important;max-width:none!important;
  border-radius:999px!important;margin:14px auto 0!important;}

/* Quand le formulaire s'ouvre, la carte grandit ; `.vbo-pkgdet-room-outer` la remplit
   (`height:100%`) et `.vbo-pkgdet-room-det`, en `flex:1 1 auto`, absorbait tout l'espace
   gagné — d'où un trou de plusieurs centaines de pixels ENTRE la description et le bouton,
   le formulaire se dessinant plus bas, hors écran. Le texte ne doit jamais s'étirer.
   Constaté le 04/10/2026. */
.vbo-pkgdet-room-det{flex:0 0 auto!important;}
.vbo-pkgdet-room-booknow{margin-top:auto!important;}

/* `flow-root` et NON `block` : les blocs de saisie du moteur sont FLOTTANTS. En passant
   les conteneurs en `block` avec padding et marges à zéro, je leur ai retiré ce qui
   contenait ces flottants — ils retombaient à `height: 0` et les champs se dessinaient
   88 px plus bas, dans le vide. C'est ce vide que la carte montrait. */
.vbo-pkgdet-room-inner .vbo-seldates-cont,
.vbo-pkgdet-room-inner .vbo-room-details-booking-wrapper,
.vbo-pkgdet-room-inner .vbdivsearch,
.vbo-pkgdet-room-inner .vbdivsearch form,
.vbo-pkgdet-room-inner .vb-search-inner{width:100%!important;max-width:none!important;
  display:flow-root!important;height:auto!important;min-height:0!important;
  margin:0!important;padding:0!important;float:none!important;}
.vbo-pkgdet-room-inner .vbo-search-inpblock{float:none!important;}
.vbo-pkgdet-room-inner .vbo-search-inpblock{width:100%!important;margin:0 0 10px!important;}
.vbo-pkgdet-room-inner .input-group{width:100%!important;}
.vbo-pkgdet-room-inner .input-group input{flex:1 1 auto!important;min-width:0!important;}
.vbo-pkgdet-room-inner h4{font-size:15px!important;line-height:1.35!important;margin:0 0 12px!important;}
/* Bande de vignettes sous la photo : je l'avais masquée en croyant à un reliquat, alors
   que ce sont les photos de la chambre. Défilement horizontal, accroche au défilement. */
.vbo-pkgdet-room-thumbs-cont{display:flex!important;gap:6px;overflow-x:auto;overflow-y:hidden;
  padding:10px 16px 0!important;margin:0!important;scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.vbo-pkgdet-room-thumb{flex:0 0 auto!important;width:68px!important;height:48px!important;
  border-radius:6px;overflow:hidden;margin:0!important;scroll-snap-align:start;
  border:1px solid #E3E5E9;}
.vbo-pkgdet-room-thumb a{display:block!important;width:100%;height:100%;}
.vbo-pkgdet-room-thumb img{width:100%!important;height:100%!important;object-fit:cover;display:block;
  margin:0!important;border-radius:0!important;}

/* Le montant d'une ligne de paiement ne se coupe jamais : « 16 000 FCFA » passait
   sur deux lignes dans la colonne étroite du panneau (04/10/2026). */
.offre-pay__row{align-items:baseline;gap:14px;}
.offre-pay__row > span:last-child{white-space:nowrap;flex:0 0 auto;}
.offre-pay__row > span:first-child{flex:1 1 auto;min-width:0;}
.vbo-pkgdet-roomslist{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:18px;align-items:stretch;width:100%;}
.vbo-pkgdet-room-container{width:auto!important;max-width:none!important;float:none!important;margin:0!important;}
.vbo-pkgdet-room-outer{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid #E3E5E9;border-radius:14px;overflow:hidden;padding:0!important;}
.vbo-pkgdet-room-img{width:100%!important;aspect-ratio:16/10;overflow:hidden;background:#EDEAE4;margin:0!important;}
.vbo-pkgdet-room-img img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0;}
.vbo-pkgdet-room-det{width:auto!important;padding:14px 16px 10px;flex:1 1 auto;}
.vbo-pkgdet-roomname{margin:0 0 5px!important;font-size:15px;font-weight:700;color:#16181D;line-height:1.35;}
.vbo-pkgdet-room-shortdescr{font-size:13px;line-height:1.5;color:#767B84;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.vbo-pkgdet-room-booknow{width:auto!important;padding:0 16px 16px;margin:0!important;}
.vbo-pkgdet-room-booknow-btn{display:block!important;width:100%!important;background:#fff!important;color:#157A30!important;border:1px solid #157A30!important;border-radius:9px!important;padding:11px 12px!important;font-weight:700;font-size:14px;text-align:center;}
.vbo-pkgdet-room-booknow-btn:hover{background:#157A30!important;color:#fff!important;}
@media(max-width:820px){
  .vbo-pkgdet-roomswrap{padding:22px 16px 24px;}
  .vbo-pkgdet-roomslist{grid-template-columns:1fr;}
}

/* Cartes — sur un écran étroit, « À partir de » se coinçait contre le prix et se cassait
   en deux lignes. On lui donne sa propre ligne plutôt que de laisser le flex l'écraser. */
@media(max-width:430px){
  .lscard__price{flex-wrap:wrap;gap:2px 10px;}
  .lscard__from{flex:0 0 100%;}
}

/* ===================== CALENDRIER (charte, maquette 2198:20633) =====================
   Deux mois CÔTE À CÔTE dans une carte compacte. jQuery UI empile ses groupes en
   `float` avec une largeur en `em` calculée à l'ouverture : dès qu'on change le padding,
   ils passent l'un sous l'autre. On force donc une rangée flex et des largeurs libres.
   Couleurs de la charte : vert #1E9E3E, plage #E8F5EC, texte #16181D, atténué #767B84. */
#ui-datepicker-div.ui-datepicker{background:#fff!important;border:1px solid #E3E5E9!important;
  border-radius:14px!important;box-shadow:0 16px 40px rgba(15,23,41,.13)!important;
  padding:20px 22px!important;font-family:inherit!important;z-index:9999!important;
  width:auto!important;max-width:none!important;}
#ui-datepicker-div.ui-datepicker-multi{display:flex!important;flex-wrap:nowrap!important;
  align-items:flex-start!important;gap:26px!important;}

/* Le calendrier parasite sous le pied de page (recette du 06/10/2026, mobile).
   La feuille de jQuery UI n'est pas chargée sur les fiches : le div du calendrier n'a donc
   NI `position:absolute` NI `display:none`, qui sont ses règles de base. Comme `body` est en
   flex, il devenait un élément de la grille, posé après le pied de page et à moitié hors
   écran — un calendrier d'octobre visible sur chaque fiche, au téléphone.
   La règle `display:flex !important` ci-dessous, écrite pour poser les deux mois côte à côte
   quand il est OUVERT, empêchait en plus toute tentative de le masquer.
   On rend donc la base manquante, et on ne masque que l'état FERMÉ : jQuery UI écrit
   `display: block` en style en ligne à l'ouverture, ce qui ne correspond à aucun des deux
   sélecteurs ci-dessous et laisse la mise en page des deux mois s'appliquer. */
#ui-datepicker-div { position: absolute; }
#ui-datepicker-div:not([style*="display"]),
#ui-datepicker-div[style*="display: none"] { display: none !important; }

/* jQuery UI ferme le calendrier par un `display:none` EN LIGNE. Mon `display:flex!important`
   l'écrasait — un `!important` l'emporte même sur un style en ligne — et le calendrier
   restait peint par-dessus le bouton « Réserver » : impossible de valider.
   Constaté le 04/10/2026. Cette règle rend la fermeture au moteur. */
#ui-datepicker-div[style*="display: none"],
#ui-datepicker-div[style*="display:none"]{display:none!important;}
#ui-datepicker-div .ui-datepicker-group{float:none!important;width:auto!important;
  padding:0!important;margin:0!important;flex:0 0 auto!important;}
#ui-datepicker-div .ui-datepicker-row-break{display:none!important;}
#ui-datepicker-div .ui-datepicker-header{background:none!important;border:0!important;
  padding:0 0 10px!important;position:relative!important;}
#ui-datepicker-div .ui-datepicker-title{font-size:15px!important;font-weight:700!important;
  color:#16181D!important;text-align:center!important;line-height:1.3!important;margin:0!important;}
#ui-datepicker-div .ui-datepicker-prev,
#ui-datepicker-div .ui-datepicker-next{background:none!important;border:0!important;cursor:pointer!important;
  top:-2px!important;width:26px!important;height:26px!important;border-radius:50%!important;}
#ui-datepicker-div .ui-datepicker-prev{left:0!important;}
#ui-datepicker-div .ui-datepicker-next{right:0!important;}
#ui-datepicker-div .ui-datepicker-prev:hover,
#ui-datepicker-div .ui-datepicker-next:hover{background:#F2F4F6!important;}
#ui-datepicker-div .ui-datepicker-prev span,
#ui-datepicker-div .ui-datepicker-next span{display:none!important;}
#ui-datepicker-div .ui-datepicker-prev::before,
#ui-datepicker-div .ui-datepicker-next::before{content:''!important;position:absolute!important;
  top:8px!important;left:9px!important;width:8px!important;height:8px!important;
  border-top:2px solid #16181D!important;border-right:2px solid #16181D!important;}
#ui-datepicker-div .ui-datepicker-prev::before{transform:rotate(-135deg)!important;}
#ui-datepicker-div .ui-datepicker-next::before{transform:rotate(45deg)!important;}
#ui-datepicker-div table.ui-datepicker-calendar{border-collapse:separate!important;
  border-spacing:1px!important;margin:0!important;width:auto!important;}
#ui-datepicker-div .ui-datepicker-calendar,
#ui-datepicker-div .ui-datepicker-calendar tr,
#ui-datepicker-div .ui-datepicker-calendar th,
#ui-datepicker-div .ui-datepicker-calendar td{border:0!important;background:none!important;
  box-shadow:none!important;}
#ui-datepicker-div .ui-datepicker-calendar th{padding:3px 0 6px!important;font-size:11px!important;
  font-weight:600!important;color:#767B84!important;text-transform:none!important;width:32px!important;}
#ui-datepicker-div .ui-datepicker-calendar td{padding:0!important;}
#ui-datepicker-div .ui-datepicker-calendar td a,
#ui-datepicker-div .ui-datepicker-calendar td span{display:flex!important;align-items:center!important;
  justify-content:center!important;width:32px!important;height:32px!important;border:0!important;
  border-radius:8px!important;background:none!important;font-size:13px!important;font-weight:600!important;
  color:#16181D!important;text-align:center!important;padding:0!important;margin:0!important;}
#ui-datepicker-div .ui-datepicker-calendar td a:hover{background:#F2F4F6!important;}
#ui-datepicker-div .ui-datepicker-calendar td span.ui-state-default{color:#C9CDD2!important;font-weight:400!important;}
#ui-datepicker-div .ui-datepicker-calendar td .ui-state-active,
#ui-datepicker-div .ui-datepicker-calendar td a.ui-state-active{background:#1E9E3E!important;
  color:#fff!important;font-weight:700!important;}
@media(max-width:760px){
  #ui-datepicker-div.ui-datepicker{padding:14px!important;}
  #ui-datepicker-div.ui-datepicker-multi{flex-wrap:wrap!important;gap:14px!important;}
  #ui-datepicker-div .ui-datepicker-calendar td a,
  #ui-datepicker-div .ui-datepicker-calendar td span{width:30px!important;height:30px!important;}
}

/* Mobile : la grille des chambres gardait 3 colonnes (252px 0 0) parce que ma règle de
   base, ajoutée plus bas dans le fichier, l'emportait sur la variante en media query —
   à importance et spécificité égales, c'est la dernière déclarée qui gagne. Cette règle
   est donc placée EN FIN DE FICHIER, après toutes les autres. Mesuré le 04/10/2026. */
@media(max-width:960px){
  .vbo-pkgdet-roomslist{grid-template-columns:1fr!important;gap:16px!important;}
  .vbo-pkgdet-room-container{width:auto!important;}
}
@media(max-width:600px){
  .vbo-pkgdet-room-inner{padding:14px!important;}
  .vbo-pkgdet-room-thumb{width:60px!important;height:44px!important;}
}

/* ============ PAGE DE CONFIRMATION (détail de réservation) ============
   Les actions héritées du moteur sortaient en bleu électrique (#001AE3), hors charte :
   « Pré-enregistrement », « Modifiez votre réservation ». La maquette 539:3260 les montre
   en boutons à contour vert. Le bloc de contact, lui, portait encore les coordonnées de
   Khan Location — corrigées dans le gabarit. */
.vbo-booking-details-actions{display:flex!important;flex-wrap:wrap!important;gap:16px!important;
  align-items:flex-start!important;margin:24px 0!important;}
.vbo-booking-details-actions-inner{display:flex!important;flex-wrap:wrap!important;gap:10px!important;}
.vbo-booking-details-actions-inner a,
.vbo-booking-details-actions-inner .btn,
.vbo-booking-details-actions a.btn{display:inline-flex!important;align-items:center!important;
  justify-content:center!important;background:#fff!important;color:#157A30!important;
  border:1px solid #1E9E3E!important;border-radius:999px!important;padding:12px 22px!important;
  font-family:inherit!important;font-size:14px!important;font-weight:600!important;
  text-decoration:none!important;box-shadow:none!important;line-height:1.2!important;}
.vbo-booking-details-actions-inner a:hover,
.vbo-booking-details-actions a.btn:hover{background:#E8F5EC!important;color:#157A30!important;}

.ls-contactbox{background:#F6F7F8!important;border:1px solid #E3E5E9!important;border-radius:12px!important;
  padding:16px 18px!important;min-width:240px;}
.ls-contactbox .title{display:block;font-size:11px;font-weight:700;color:#767B84;
  text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px;}
.ls-contactbox .adresse,
.ls-contactbox .email{display:block;font-size:14px;color:#16181D;line-height:1.6;}
.ls-contactbox .email a{color:#157A30;text-decoration:none;font-weight:600;}
.ls-contactbox .num{margin:6px 0 0!important;font-size:16px;font-weight:700;}
.ls-contactbox .num a{color:#157A30;text-decoration:none;}
@media(max-width:700px){
  .vbo-booking-details-actions{flex-direction:column!important;}
  .vbo-booking-details-actions-inner a{width:100%!important;}
}

/* Même sélecteur que `style.css` — `.vbo-booking-details-actions .vbo-booking-mod-container a`
   — pour l'emporter à spécificité égale, charte.css étant chargée après. Viser un sélecteur
   plus court ne suffisait pas : après avoir remplacé le bleu du clone par le vert, les
   boutons se retrouvaient vert sur vert, illisibles (05/10/2026).
   La maquette 539:3260 les montre en contour, fond blanc. */
.vbo-booking-details-actions .vbo-booking-mod-container a,
.vbo-booking-details-actions .vbo-booking-mod-container a:visited{
  background:#fff!important;color:#157A30!important;border:1px solid #1E9E3E!important;}
.vbo-booking-details-actions .vbo-booking-mod-container a:hover{
  background:#E8F5EC!important;color:#157A30!important;}

/* ===================== CONFIRMATION — maquette 539:3260 ===================== */
.ls-conf{font-family:var(--ls-font,inherit);color:#16181D;max-width:1180px;margin:0 auto 40px;}
.ls-conf__head{display:flex;justify-content:space-between;align-items:center;gap:24px;
  background:#E8F5EC;border-radius:16px;padding:26px 28px;margin:0 0 26px;flex-wrap:wrap;}
.ls-conf__headin{display:flex;align-items:center;gap:16px;min-width:0;}
.ls-conf__check{flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:#1E9E3E;
  display:flex;align-items:center;justify-content:center;}
.ls-conf__ttl{margin:0;font-size:26px;font-weight:700;color:#16181D;line-height:1.25;}
.ls-conf__sub{margin:4px 0 0;font-size:14px;color:#4A5058;line-height:1.6;}
.ls-conf__num{background:#fff;border:1px solid #CFE3D6;border-radius:12px;padding:12px 18px;text-align:center;}
.ls-conf__numlbl{display:block;font-size:11px;font-weight:700;color:#767B84;text-transform:uppercase;letter-spacing:.6px;}
.ls-conf__numval{display:block;font-size:17px;font-weight:700;color:#16181D;margin-top:3px;}

.ls-conf__body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:26px;align-items:start;}
.ls-conf__h2{font-size:19px;font-weight:700;margin:26px 0 12px;}

.ls-conf__solde{background:#16181D;color:#fff;border-radius:16px;padding:22px 24px;}
.ls-conf__soldetop{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;}
.ls-conf__soldelbl{margin:0;font-size:15px;font-weight:700;}
.ls-conf__soldenote{margin:3px 0 0;font-size:13px;color:#B9BFC7;}
.ls-conf__soldeval{font-size:28px;font-weight:700;color:#5DCAA5;white-space:nowrap;}
.ls-conf__soldefine{margin:16px 0 0;font-size:11.5px;line-height:1.6;color:#9AA3AD;}

.ls-conf__room{display:flex;gap:18px;background:#fff;border:1px solid #E3E5E9;border-radius:14px;
  padding:16px;margin:0 0 12px;}
.ls-conf__roomimg{flex:0 0 auto;width:140px;height:104px;object-fit:cover;border-radius:10px;}
.ls-conf__roomdet{min-width:0;flex:1 1 auto;}
.ls-conf__roomname{margin:0 0 12px;font-size:16px;font-weight:700;}
.ls-conf__crit{display:flex;flex-wrap:wrap;gap:22px;}
.ls-conf__crit span{display:block;font-size:11px;font-weight:700;color:#767B84;text-transform:uppercase;letter-spacing:.6px;}
.ls-conf__crit strong{display:block;font-size:14px;font-weight:700;color:#16181D;margin-top:2px;}

.ls-conf__etapes{list-style:none;margin:0;padding:0;}
.ls-conf__etapes li{display:flex;gap:14px;background:#F6F7F8;border-radius:12px;padding:16px 18px;margin:0 0 10px;}
.ls-conf__etapes li > span{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:#1E9E3E;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;}
.ls-conf__etapes b{display:block;font-size:14px;font-weight:700;margin-bottom:3px;}
.ls-conf__etapes p{margin:0;font-size:13px;line-height:1.6;color:#4A5058;}

.ls-conf__pay{background:#fff;border:1px solid #E3E5E9;border-radius:16px;padding:22px;}
.ls-conf__payttl{margin:0 0 14px;font-size:16px;font-weight:700;}
.ls-conf__payline{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:4px 0;font-size:14px;}
.ls-conf__payline strong{white-space:nowrap;font-weight:700;}
.ls-conf__paybox{background:#E8F5EC;border-radius:12px;padding:14px 16px;margin:12px 0;}
.ls-conf__payline--sm{font-size:12.5px;color:#4A5058;}
.ls-conf__payline--now{border-top:1px solid #CFE3D6;margin-top:8px;padding-top:10px;color:#157A30;font-weight:700;}
.ls-conf__payline--now strong{font-size:17px;color:#157A30;}
.ls-conf__payline--solde strong{font-size:16px;}

/* Blocs natifs du moteur, remplacés par ce qui précède. Le masquage dépend d'une classe
   que le gabarit ne pose QUE s'il a rendu la nouvelle page : si elle manque, la page
   native reste entière plutôt que de disparaître. */
html.ls-conf-ok .vbo-booking-details-intro,
html.ls-conf-ok .vbo-booking-rooms-wrapper,
html.ls-conf-ok .vbo-booking-details-midcontainer{display:none!important;}

@media(max-width:980px){
  .ls-conf__body{grid-template-columns:1fr;}
  .ls-conf__head{padding:20px;}
  .ls-conf__ttl{font-size:22px;}
}
@media(max-width:620px){
  .ls-conf__room{flex-direction:column;}
  .ls-conf__roomimg{width:100%;height:170px;}
  .ls-conf__soldeval{font-size:24px;}
  .ls-conf__crit{gap:14px;}
}

/* --- Confirmation : options, hôte, complétez votre voyage --- */
.ls-conf__soldeopts{border-top:1px solid #333840;margin-top:16px;padding-top:14px;}
.ls-conf__soldeopt{display:flex;justify-content:space-between;gap:14px;font-size:13.5px;padding:3px 0;color:#D6DBE1;}
.ls-conf__soldeopt strong{color:#fff;white-space:nowrap;}

.ls-conf__hote{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid #E3E5E9;
  border-radius:14px;padding:16px 18px;flex-wrap:wrap;}
.ls-conf__hoteini{flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:#E8F5EC;color:#157A30;
  display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;}
.ls-conf__hotedet{flex:1 1 200px;min-width:0;}
.ls-conf__hotenom{margin:0;font-size:15px;font-weight:700;}
.ls-conf__hotecoord{margin:3px 0 0;font-size:13px;color:#4A5058;display:flex;flex-wrap:wrap;gap:4px 16px;}
.ls-conf__hotewa{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  background:#1E9E3E;color:#fff;border-radius:999px;padding:11px 20px;font-size:14px;font-weight:600;
  text-decoration:none;}
.ls-conf__hotewa:hover{background:#157A30;color:#fff;}

.ls-conf__voyagesub{margin:0 0 14px;font-size:14px;color:#4A5058;line-height:1.6;}
.ls-conf__voyage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.ls-conf__carte{display:block;background:#fff;border:1px solid #E3E5E9;border-radius:14px;padding:18px;
  text-decoration:none;color:inherit;transition:border-color .15s ease;}
.ls-conf__carte:hover{border-color:#1E9E3E;color:inherit;}
.ls-conf__carte b{display:block;font-size:15px;font-weight:700;color:#16181D;margin-bottom:5px;}
.ls-conf__carte span{display:block;font-size:13px;line-height:1.6;color:#4A5058;}
@media(max-width:860px){ .ls-conf__voyage{grid-template-columns:1fr;} }
@media(max-width:620px){ .ls-conf__hotewa{width:100%;} }

/* --- Bon de commande imprimable --- */
.ls-conf__imprimer{display:block;width:100%;margin:16px 0 0;background:#1E9E3E;color:#fff;border:0;
  border-radius:999px;padding:14px 20px;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;
  /* Le bouton est devenu un <a> le 15/10/2026 (il ouvre le bon de commande dédié).
     Un <button> centre son texte tout seul, pas un lien : le libellé est parti à gauche. */
  text-align:center;text-decoration:none;}
.ls-conf__imprimer:hover{background:#157A30;}
.ls-conf__imprimernote{margin:8px 0 0;font-size:11.5px;color:#767B84;text-align:center;line-height:1.5;}

/* À l'impression, on ne garde QUE le bon de commande : en-tête, pied, menus et bandeaux
   de cookies n'ont rien à faire sur une pièce que le client archive. */
@media print{
  /* 🔴 CE BLOC NE DOIT VALOIR QUE POUR LA PAGE DE CONFIRMATION. Sans le garde `html.ls-conf-ok`,
     `body *{visibility:hidden}` s'appliquait à TOUT LE SITE : imprimer les CGV, une fiche ou
     n'importe quelle page donnait un document VIDE — 8 ko pour 16 pages blanches. Constaté le
     15/10/2026 en essayant de régénérer le PDF des CGV. La classe est posée par le gabarit
     booking/default.php, elle n'existe nulle part ailleurs. */
  html.ls-conf-ok body *{visibility:hidden!important;}
  html.ls-conf-ok .ls-conf, html.ls-conf-ok .ls-conf *{visibility:visible!important;}
  .ls-conf{position:absolute!important;left:0;top:0;width:100%!important;max-width:none!important;margin:0!important;}
  .ls-conf__imprimer, .ls-conf__imprimernote, .ls-conf__hotewa, .ls-conf__voyage,
  .ls-conf__voyagesub, .ls-conf__h2 + .ls-conf__voyage{display:none!important;}
  .ls-conf__body{display:block!important;}
  .ls-conf__aside{margin-top:18px;}
  .ls-conf__solde{background:#fff!important;color:#16181D!important;border:1px solid #16181D!important;}
  .ls-conf__soldeval{color:#157A30!important;}
  .ls-conf__soldenote, .ls-conf__soldefine{color:#4A5058!important;}
  .ls-conf__head{background:#fff!important;border:1px solid #CFE3D6;}
  a[href]:after{content:''!important;}
  @page{margin:14mm;}
}

.ls-conf__facture{display:block;text-align:center;margin:10px 0 0;background:#fff;color:#157A30;
  border:1px solid #1E9E3E;border-radius:999px;padding:12px 20px;font-size:14px;font-weight:600;
  text-decoration:none;}
.ls-conf__facture:hover{background:#E8F5EC;color:#157A30;}
@media print{.ls-conf__facture{display:none!important;}}

/* ============================================================================
   LISTES À PASTILLE — neutralisation de la puce native, SUR LE li
   ----------------------------------------------------------------------------
   Salient pose `ul li{list-style:outside disc}` dans son style.css (spécificité
   0-0-2, sans !important). `list-style` étant héritée, un `ul{list-style:none}`
   de notre côté NE SUFFIT PAS : une déclaration qui cible le li bat toujours un
   héritage, quelle que soit la spécificité. Les listes à pastille ::before
   affichaient donc DEUX puces.
   Relevé par Hamid le 05/10/2026 sur les deux écrans du tunnel de référencement
   (16 li sur 16) ; la landing propriétaires avait le même défaut.
   Une classe + un élément font 0-1-1 et l'emportent sur 0-0-2 : pas de !important.
   ============================================================================ */
.prop-final__pts li,
.prop-list li,
.prop-offer__list li,
.ref-compare__col li,
.ref-compare__col--us li,
.ref-sidecard--dark li,
.ref-sidecard__no li,
.ref-sidecard__yes li { list-style: none; }

/* ===== Funnel de referencement : les deux encadres de la maquette (Figma 590:3943) =====
   L'avertissement « tarif NET, pas Booking » et le champ du tarif resident sont dessines
   en encadres — ambre pour l'avertissement, vert pour le tarif resident. Le texte existait
   deja, il sortait en paragraphe nu (recette Hamid du 06/10/2026).
   Les deux classes sont posees sur les champs 24 et 17 du formulaire 4, depuis l'editeur
   Gravity : elles se voient la ou on les cherche. */
#gform_wrapper_4 .ls-ref-ambre .gsection_description{
  margin-top:12px;padding:14px 16px;border-radius:12px;
  background:#FDF4E3;border:1px solid #F0DCB4;color:#6B4E16;
  font-size:14px;line-height:1.6;}
#gform_wrapper_4 .ls-ref-vert{
  padding:16px;border-radius:12px;background:#E8F5EC;border:1px solid #BFE3CB;
  box-sizing:border-box;}
#gform_wrapper_4 .ls-ref-vert .gfield_label{color:#157A30;}
#gform_wrapper_4 .ls-ref-vert .gfield_description{color:#2F6B42;}
@media (max-width:782px){
  #gform_wrapper_4 .ls-ref-vert{padding:14px;}
}

/* ===== Formulaires Gravity : rendre l'erreur VISIBLE sur le champ concerne =====
   Gravity marque bien le champ en erreur et ecrit « Ce champ est necessaire » dessous.
   Mais le message sortait en GRIS (#767B84, la couleur des textes d'aide) et le champ
   gardait son bord normal : rien ne disait ou regarder (recette Hamid du 06/10/2026,
   formulaire Tarif resident — 7 champs en erreur, aucun signale a l'oeil).
   Le rouge repris est celui du bandeau que Gravity pose deja en haut du formulaire. */
/* Les pages portent leurs propres feuilles EN LIGNE, avec des `!important` :
   `.tr-form .gfield_description{color:var(--mut)!important}` et
   `.tr-form input[type=text]{border:1px solid var(--line)!important}`.
   Elles sont ecrites APRES charte.css, donc a `!important` egal elles gagnaient par
   l'ordre. On passe au-dessus par la SPECIFICITE, pas par l'ordre. */
.gform_wrapper .gfield_error input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea{border:1.5px solid #C02B0A!important;}
.gform_wrapper .gfield_error .gfield_description.validation_message,
.gform_wrapper .gfield_error .validation_message,
.gform_wrapper .gfield_error .gfield_validation_message{color:#C02B0A!important;font-weight:500;}
.gform_wrapper .gfield_error input[type=checkbox],
.gform_wrapper .gfield_error input[type=radio]{outline:2px solid #C02B0A;outline-offset:2px;}

/* ===== Accuse de la demande de tarif resident (Figma 565:3807) ===== */
.ls-confres{max-width:700px;margin:0 auto;padding:34px 34px 30px;border:1.5px solid var(--ls-green);border-radius:18px;background:#fff;}
.ls-confres__ok{width:56px;height:56px;border-radius:50%;background:var(--ls-green);color:#fff;font-size:28px;line-height:56px;text-align:center;margin:0 0 22px;}
.ls-confres__h{margin:0 0 14px;font-size:34px;font-weight:800;color:var(--ls-ink);line-height:1.15;}
.ls-confres__lead{margin:0 0 24px;font-size:16px;line-height:1.65;color:var(--ls-txt);}
.ls-confres__recap{margin:0 0 20px;padding:18px 20px;border-radius:12px;background:var(--ls-warm);}
.ls-confres__recap>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:5px 0;}
.ls-confres__recap dt{margin:0;font-size:14px;color:var(--ls-muted);}
.ls-confres__recap dd{margin:0;font-size:14px;font-weight:700;color:var(--ls-ink);text-align:right;}
.ls-confres__note{margin:0 0 24px;padding:14px 16px;border-radius:12px;background:#FDF4E3;border:1px solid #F0DCB4;color:#6B4E16;font-size:14px;line-height:1.6;}
.ls-confres__cta{display:flex;flex-wrap:wrap;gap:12px;}
.ls-confres__btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border-radius:10px;background:var(--ls-green);color:#fff;font-size:15px;font-weight:700;text-decoration:none;}
.ls-confres__btn:hover{background:#18862f;color:#fff;}
.ls-confres__btn--wa{background:#fff;color:var(--ls-green-dk);border:1.5px solid var(--ls-green);}
.ls-confres__btn--wa:hover{background:var(--ls-green-light);color:var(--ls-green-dk);}
@media (max-width:782px){
  .ls-confres{padding:24px 20px;}
  .ls-confres__h{font-size:26px;}
  .ls-confres__recap>div{flex-direction:column;gap:2px;}
  .ls-confres__recap dd{text-align:left;}
  .ls-confres__btn{width:100%;}
}

/* ============================================================
   Vacances hub — corps en cartes (Figma 985:7438)
   Les blocs ci-dessous sont produits par inc/14-vacances-cartes.php à partir des
   marqueurs posés dans le contenu éditorial. Ils vivent DANS .ls-article, dont les
   règles de paragraphe et de lien s'appliquent : seules les différences sont écrites.
   ============================================================ */
/* Titres de section numérotés, comme la maquette (01, 02, … 09).
   La classe .ls-vbody est PARTAGÉE avec template-guide.php : sans le :not(.ls-guide),
   les huit guides de la rubrique héritaient eux aussi d'une numérotation que leur
   maquette ne demande pas. Le hub est le seul .ls-vhub sans .ls-guide. */
.ls-vhub:not(.ls-guide) .ls-vbody{counter-reset:lsvh;}
.ls-vhub:not(.ls-guide) .ls-vbody > h2{counter-increment:lsvh;font-weight:800;}
.ls-vhub:not(.ls-guide) .ls-vbody > h2::before{content:counter(lsvh,decimal-leading-zero);position:relative;top:-9px;margin-right:11px;font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--ls-green);}

.ls-vcards{display:grid;gap:16px;margin:6px 0 24px;}
.ls-vcards--num,.ls-vcards--duo{grid-template-columns:1fr;}
.ls-vcards--trio{grid-template-columns:repeat(3,1fr);gap:14px;}
.ls-vcard{background:#fff;border:1px solid var(--ls-line);border-radius:12px;padding:20px 24px;}
.ls-vcard__n{display:inline-block;background:var(--ls-green-light);color:var(--ls-green-dk);font-size:10px;font-weight:700;letter-spacing:.6px;border-radius:6px;padding:4px 8px;margin:0 0 12px;}
.ls-vcard__h{font-size:16px;font-weight:700;color:var(--ls-ink);margin:0 0 8px;line-height:1.35;}
.ls-vcard__t p{margin:0;font-size:14.5px;line-height:1.7;color:var(--ls-txt);}
/* « Où aller » : titre à gauche, texte à droite, fond chaud et pas de filet */
.ls-vcards--duo .ls-vcard{display:grid;grid-template-columns:232px minmax(0,1fr);gap:20px;align-items:start;background:var(--ls-warm);border-color:transparent;padding:18px 24px;}
.ls-vcards--duo .ls-vcard__h{margin:0;}
/* « Trois choses à savoir » : trois colonnes de hauteur égale */
.ls-vcards--trio .ls-vcard{padding:18px 20px;}
.ls-vcards--trio .ls-vcard__t p{font-size:13.5px;}

/* cartes de tarif résident */
.ls-vtarifs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:6px 0 24px;}
.ls-vtarif{background:var(--ls-green-light);border-radius:10px;padding:16px 18px;}
.ls-vtarif__l{display:block;font-size:12px;font-weight:700;color:var(--ls-green-dk);line-height:1.35;margin:0 0 10px;}
.ls-vtarif__p{display:block;font-size:24px;font-weight:800;color:var(--ls-ink);line-height:1.1;}
.ls-vtarif__a{display:block;font-size:11.5px;color:var(--ls-muted);margin-top:5px;}

/* bandeau événement (JOJ) */
.ls-vevt{padding:30px 24px 4px;}
.ls-vevt__banner{max-width:var(--vw);margin:0 auto;display:flex;align-items:center;gap:32px;background:var(--ls-ftbg);border-radius:18px;padding:30px 34px;}
.ls-vevt__txt{flex:1;min-width:0;}
.ls-vevt__date{display:block;font-size:10.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#E8A33D;margin:0 0 10px;}
.ls-vhub .ls-vevt__h{font-size:25px;line-height:1.25;font-weight:800;color:#fff!important;margin:0 0 12px;}
.ls-vevt__p{font-size:14.5px;line-height:1.7;color:#A8ADB5;margin:0;max-width:760px;}
.ls-vevt__btn{flex:0 0 auto;background:var(--ls-green);color:#fff;font-size:14px;font-weight:700;text-decoration:none;border-radius:999px;padding:14px 26px;white-space:nowrap;transition:background .16s;}
.ls-vevt__btn:hover{background:var(--ls-green-dk);color:#fff;}

@media (max-width:860px){
  .ls-vcards--trio{grid-template-columns:1fr;}
  .ls-vcards--duo .ls-vcard{grid-template-columns:1fr;gap:8px;}
  .ls-vtarifs{grid-template-columns:1fr;}
  .ls-vevt{padding:24px 16px 4px;}
  .ls-vevt__banner{flex-direction:column;align-items:flex-start;gap:20px;padding:24px 22px;}
  .ls-vhub .ls-vevt__h{font-size:21px;}
  .ls-vevt__btn{width:100%;text-align:center;}
  .ls-vhub:not(.ls-guide) .ls-vbody > h2::before{top:-6px;font-size:11px;margin-right:8px;}
}

/* ============================================================
   Fiche offre packagée — bandeau pleine largeur et marges mobiles (Figma 710:4289)
   ============================================================ */
/* Le bandeau vit dans .container.main-content, qui le bridait à 1395 px pour une fenêtre de
   1440 : 15 px de blanc de chaque côté, là où la maquette le fait filer d'un bord à l'autre.
   On le sort de son conteneur par la technique déjà employée par .ls-zonehero — la seule du
   site, et dont on sait qu'elle ne crée pas de défilement horizontal. */
.offre-hero{position:relative;left:50%;right:50%;width:100vw;margin-left:-50vw;margin-right:-50vw;}

@media (max-width:782px){
  /* Quatre gouttières s'additionnaient sur un écran de 375 : la largeur de 88 % du conteneur
     (−45 px), ses 15 px de remplissage, puis les 20 px du bloc. Le titre tombait à 260 px,
     soit 69 % de l'écran. On retire la couche de trop, comme sur les pages de zone. */
  .container.main-content:has(.vbo-pkgdet-roomswrap){margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;width:100%!important;max-width:100%!important;}
}

/* Le lien « Modifier » de l'étape Options ramène sur le PANNEAU DE RÉSERVATION de la fiche,
   pas sur le haut de la page. Sans cette marge d'ancrage, l'en-tête collant recouvrait
   justement les champs de dates que le visiteur venait changer. */
#vbo-bookingpart-form{scroll-margin-top:110px;}

/* Tunnel — l'écart entre le fil d'étapes et le rappel des critères.
   Mesuré le 6 octobre : 71 px sur le site, 28 px dans la maquette (Figma 534:3034, le fil
   d'étapes finit à y=83 et le bloc critères commence à y=111). Deux marges s'ajoutaient :
   35 px sous le fil d'étapes et 28 px au-dessus des critères. On garde la seconde, qui est
   celle de la maquette. Vaut pour l'étape Options comme pour l'étape Paiement, qui partagent
   le même composant. */
.vbstepsbarcont{margin-bottom:0;}

/* Funnel « Ce que ça vous coûte » — la note de bas de section.
   La maquette (Figma 575:3922) en fait un encadré à filet, au même titre que les autres
   « Note » de la page ; le site la rendait en paragraphe gris nu, où elle se lisait comme
   une mention légale de bas de page alors qu'elle porte le message rassurant : le
   référencement reste gratuit. Même traitement ambre que l'avertissement « tarif net ». */
.ref-cost__foot{position:relative;max-width:none;margin:26px 0 0;padding:16px 18px 16px 34px;
  background:#FDF4E3;border:1px solid #F0DCB4;border-radius:12px;color:#6B4E16;font-size:14px;}
.ref-cost__foot::before{content:"";position:absolute;left:16px;top:22px;width:8px;height:8px;
  border-radius:50%;background:#C98A1E;}

/* Propriétaires — les plateformes portent enfin leur logo officiel (recette Hamid du 06/10).
   Les fichiers viennent du gestionnaire de canaux de VikBooking, qui les embarque déjà :
   aucune image n'est chargée depuis un tiers, et ce sont les marques authentiques.
   La pastille devient un simple cadre blanc : le logo porte sa propre couleur. */
.prop-offer__plats span.prop-plat{display:inline-flex;align-items:center;background:#fff;padding:7px 12px;}
.prop-plat img{display:block;height:18px;width:auto;}
.prop-plat--booking img{height:15px;}   /* sa casse est plus haute : on l'aligne à l'œil */
.prop-plat--google img{height:16px;}

/* Funnel — l'exemple chiffré de « Ce que ça vous coûte » (Figma 575:3907). */
.ref-costcard__pct{display:block;font-size:30px;font-weight:800;color:var(--ls-ink);line-height:1.1;margin:0 0 10px;}
.ref-exemple{margin:24px 0 0;padding:24px 28px;background:#fff;border:1px solid var(--ls-line);border-radius:14px;}
.ref-exemple__h{font-size:17px;font-weight:700;color:var(--ls-ink);margin:0 0 16px;}
.ref-exemple__l{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid #F0F1F3;font-size:14.5px;color:var(--ls-txt);}
.ref-exemple__l b{font-weight:700;color:var(--ls-ink);white-space:nowrap;}
.ref-exemple__l--fort{border-bottom:none;border-top:1px solid var(--ls-line);margin-top:6px;padding-top:14px;font-size:16px;color:var(--ls-ink);font-weight:600;}
.ref-exemple__l--fort b{font-size:20px;color:var(--ls-green-dk);}
.ref-exemple__note{margin:14px 0 0;font-size:13px;line-height:1.6;color:var(--ls-muted);}
@media (max-width:782px){
  .ref-exemple{padding:18px 16px;}
  .ref-exemple__l{flex-direction:column;gap:2px;}
  .ref-costcard__pct{font-size:26px;}
}

/* Listings (Promotions · Offres packagées · Établissements) — marges mobiles.
   Deux remplissages de 20 px s'additionnaient, `.ls-listing` puis `.ls-listing__wrap` :
   les cartes tombaient à 295 px sur un écran de 375. On retire la couche extérieure sous
   782 px, comme sur les pages de zone, la fiche offre et la connexion. */
@media (max-width:782px){
  .ls-listing{padding-left:0;padding-right:0;}
}

/* Recherche — la respiration sous le moteur.
   Mesuré : du bas du moteur à la première carte, 89 px sur le site contre 121 dans la
   maquette (Figma 399:942 — le moteur finit à y=364, la première carte commence à y=485).
   Les 32 px qui manquaient sont rendus. C'est le « espace manquant entre le moteur et les
   résultats » de la recette. */
.lssearch.ls-searchmoteur{margin-bottom:32px;}

/* Tunnel — le tarif résident sur la carte de la chambre (étape Options).
   Le récapitulatif de droite affichait la remise, la carte de gauche gardait le tarif
   public : deux prix différents sur le même écran. La carte porte maintenant les deux. */
.ls-tun-room__price s{color:var(--ls-muted);text-decoration-thickness:1px;}
.ls-roomres{display:block;margin-top:4px;font-size:13px;color:var(--ls-green-dk);}
.ls-roomres b{font-weight:700;}

/* CGU / CGV — l'espacement « excessif » entre les paragraphes, et sa vraie cause.
   Le conteneur du texte était en `display:flex`. Deux conséquences, invisibles au code
   mais mesurables à l'écran :
     1. chaque retour à la ligne entre deux blocs devenait un ÉLÉMENT FLEX anonyme de 14 px,
        qui s'ajoutait à la marge — d'où 32 px entre deux paragraphes au lieu de 18 ;
     2. en flex, les marges ne FUSIONNENT plus : les 46 px au-dessus d'un titre s'ajoutaient
        aux 18 px sous le paragraphe précédent, soit 64.
   On rend le bloc à son display normal : la mise en page retrouve le rythme de la charte. */
/* Le bloc porte deux classes : une seule (0,1,0) ne suffisait pas à battre la règle du
   thème. On qualifie. */
.ls-article.ls-legal__content{display:block;}

/* Resserrement du texte légal — Hamid, 12/10/2026, puis décision de Mathieu : « resserre
   l'espacement sur les deux langues ».
   🔴 MESURÉ AVANT DE TOUCHER, dans un vrai navigateur, pas lu dans la feuille :
   paragraphes à 18 px de marge basse, interligne 26,66 px pour un texte de 15,5 px — soit
   1,72. L'étalement venait autant de l'interligne que de la marge ; ne corriger que la marge
   aurait laissé l'impression intacte.
   Les deux domaines partagent ce fichier : la règle vaut pour /cgu/ comme pour /terms-of-use/.
   ⚠️ RESTREINTE aux CGU et aux Mentions légales par la classe `--serre` : les CGV
   Propriétaires gardent leur rendu d'origine, c'est du graphisme (Mathieu, 12/10).
   On ne touche qu'au contenu légal : le reste du site garde le rythme de la charte. */
.ls-legal__content--serre p{margin-bottom:12px;line-height:1.6;}
.ls-legal__content--serre ul,.ls-legal__content--serre ol{margin-bottom:12px;}
.ls-legal__content--serre li{margin-bottom:4px;line-height:1.6;}
.ls-legal__content--serre h2{margin-top:28px;margin-bottom:10px;}
.ls-legal__content--serre h3{margin-top:20px;margin-bottom:8px;}
.ls-legal__content--serre > *:first-child{margin-top:0;}

/* Tunnel — le bandeau d'erreur du paiement recouvrait le champ qu'il désigne.
   `.vbo-alert-container-confirm` est en `position:fixed` au MILIEU de l'écran (top 360 sur un
   iPhone) : en cliquant « Payer » sans rien remplir, il se posait exactement sur « Prénom » et
   sur son message d'erreur. Relevé le 7 octobre 2026 sur iPhone 16 Pro.
   On l'épingle en haut, sous l'en-tête, et on lui donne la couleur de la charte. */
.vbo-alert-container-confirm{
  position:fixed!important;top:84px!important;left:50%!important;transform:translateX(-50%)!important;
  width:calc(100% - 32px)!important;max-width:560px!important;
  background:#FDECEA!important;color:#8A1C10!important;
  border:1px solid #F3B9B1!important;border-radius:12px!important;
  box-shadow:0 10px 30px rgba(15,23,41,.14)!important;
  padding:14px 44px 14px 16px!important;font-size:14.5px!important;line-height:1.5!important;z-index:99999!important;}
.vbo-alert-container-confirm a,.vbo-alert-container-confirm span[onclick]{color:#8A1C10!important;}

/* Recherche — la dernière gouttière de trop sur téléphone.
   Le moteur tombait à 300 px sur un écran de 375 (soit 80 %), quand les autres pages reprises
   donnent 335 : la couche `.container.main-content` (88 % de large, 22,5 de marge, 15 de
   remplissage) n'avait pas encore été retirée ici. Relevé en jouant la recette le 7 octobre. */
@media (max-width:782px){
  .container.main-content:has(.lssearch){margin-left:0!important;margin-right:0!important;padding-left:16px!important;padding-right:16px!important;width:100%!important;max-width:100%!important;}
}
