/* =========================
   0) Variables (LMR)
   ========================= */
.lmr3-logement{
  --ink:#1D1D1F; --muted:#6B7280; --border:#E5E7EB; --card:#fff;
  --accent:#D77B5D; --accent-dark:#B75F43;
  --horizon:#2F6FA3; --beige:#F7F4ED; --stone:#6B7280;
  --title-font:"Playfair Display","Cormorant Garamond",serif;
  --text-font:"Montserrat","Open Sans",system-ui,sans-serif;
}

/* =========================
   1) Hero & crumbs (minimal)
   ========================= */
.lmr3-hero{
  position:relative; background-image:var(--hero); background-size:cover; background-position:center;
  min-height:clamp(200px,32vw,320px); border-radius:0 0 12px 12px; overflow:hidden; padding-bottom:48px;
}
.lmr3-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.75));}
.hero-content{position:relative;z-index:3;max-width:1200px;margin:-130px auto 0;padding:0 16px;}
.hero-card.glass.glass--warm{
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.22));
  border:1px solid rgba(255,255,255,.28); backdrop-filter:blur(10px) saturate(140%);
  border-radius:16px;padding:16px 20px;
}
.lmr3-hero__title{color:#fff;font-weight:800;font-size:clamp(26px,2.7vw,38px);margin:0 0 4px;text-shadow:0 3px 8px rgba(0,0,0,.55);}
.lmr3-hero__subtitle{color:rgba(255,255,255,.96);font-weight:500;font-size:clamp(15px,1.3vw,18px);display:flex;gap:10px;margin:0;}
.stars-inline{display:inline-flex;gap:2px;margin-left:10px;padding-left:12px;border-left:1px solid rgba(255,255,255,.45);color:#ffd65f;}
.lmr3-crumbs.crumbs--white{font-size:13px;margin-bottom:6px}
.lmr3-crumbs.crumbs--white ol{display:flex;gap:12px;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none}
.lmr3-crumbs.crumbs--white ol::-webkit-scrollbar{display:none}
.lmr3-crumbs.crumbs--white a,.lmr3-crumbs.crumbs--white .current{color:#fff;text-decoration:none;opacity:.95}

/* =========================
   2) Grille + card
   ========================= */
.lmr3-grid{max-width:1200px;margin:24px auto;padding:0 16px;display:grid;grid-template-columns:1.25fr 0.9fr;gap:22px;}
@media (max-width:980px){.lmr3-grid{grid-template-columns:1fr;}}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 2px 8px rgba(0,0,0,.03);}

/* =========================
   3) Slider (SmartSlider3) — FIX
   ========================= */
.media .media-frame{border-radius:14px;overflow:hidden;}
.media .media-keep{aspect-ratio:3/2;min-height:360px;background:#000;overflow:hidden;border-radius:12px;}
.media .n2-ss-slider{position:static!important;width:100%!important;height:100%!important;overflow:hidden!important;border-radius:12px;}
.media .n2-ss-control-thumbs,.media [class*="control-thumbs"],.media .n2-ss-thumbs,.media .n2-ss-bullet-thumbs{display:none!important;}
.media .n2-ss-slide-background,
.media .n2-ss-slide-background img,
.media .n2-ss-slide-background video{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;}

/* =========================
   4) Calendrier (compact)
   ========================= */
.side-cal .cal-widget{max-width:560px;margin-left:auto;margin-right:auto;}
.note{text-align:center;font-size:13px;color:var(--muted);margin-top:8px;}

/* =========================
   6) Map & actions
   ========================= */
.map-card{margin-top:2rem;}
.map-card h3{margin-bottom:1rem;}
.map-embed{width:100%;height:320px;border-radius:12px;overflow:hidden;background:#eef2f7;border:1px solid var(--border);margin-bottom:1rem;box-shadow:0 2px 6px rgba(0,0,0,.08);}
#gmap.map-embed{position:relative;}
#gmap iframe{width:100%;height:100%;border:0;display:block;}
.map-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.btn.btn-map{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:"Montserrat","Open Sans",system-ui,sans-serif;font-weight:600;font-size:15px;color:#fff;
  background:linear-gradient(135deg,var(--horizon),#1b4e7a);border:none;border-radius:999px;padding:11px 20px;
  cursor:pointer;transition:all .25s ease; box-shadow:0 4px 14px rgba(47,111,163,.25);
}
.btn.btn-map:hover{transform:translateY(-2px);background:linear-gradient(135deg,#387fb8,var(--horizon));box-shadow:0 8px 20px rgba(47,111,163,.35);}
.map-addr{font-family:"Montserrat",system-ui,sans-serif;font-size:13.5px;color:#6b7280;margin-left:auto;text-align:right;}
@media (max-width:640px){.map-actions{flex-direction:column;align-items:flex-start;gap:6px}.map-addr{text-align:left;}}

/* =========================
   7) Boutons plateformes (colonne droite) — OFFICIEL
   ========================= */
.side-cal .markets-side{
  margin-top:16px;background:#fff;border:1px solid var(--border);border-radius:14px;
  padding:16px 18px 18px;box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.side-cal .markets-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px;}
.side-cal .markets-grid.is-single{grid-template-columns:1fr;}
.side-cal .btn-market{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;
  border:none;border-radius:12px;color:#fff!important;font-weight:700;font-size:15px;text-decoration:none!important;
  padding:12px 18px;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.08);transition:all .25s ease;
}
.side-cal .btn-market:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12);}
.side-cal .btn-market.airbnb{background:linear-gradient(135deg,#FF5A5F 0%,#E14D50 100%);}
.side-cal .btn-market.airbnb:hover{background:linear-gradient(135deg,#ff6b70 0%,#ff5a5f 100%);box-shadow:0 10px 25px rgba(255,90,95,.35);}
.side-cal .btn-market.lbc{background:linear-gradient(135deg,#F56C2D 0%,#E35B1C 100%);}
.side-cal .btn-market.lbc:hover{background:linear-gradient(135deg,#ff7e41 0%,#f56c2d 100%);box-shadow:0 10px 25px rgba(245,108,45,.35);}
.side-cal .btn-market .ico{width:22px;height:22px;display:flex;align-items:center;justify-content:center;}
.side-cal .btn-market .ico svg{width:20px;height:20px;fill:currentColor;color:#fff;}
.side-cal .btn-market .txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.side-cal .reg-side{
  display:block;margin:12px 0 0;padding-top:10px;border-top:1px solid #e5e7eb;font-size:14px;text-align:center;color:#555;
}
.side-cal .reg-side span{
  display:inline-block;margin-top:4px;font-weight:700;color:#1d1d1f;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  background:#f8fafc;border:1px solid #e5e7eb;padding:4px 8px;border-radius:6px;
}
@media (max-width:640px){.side-cal .markets-grid{grid-template-columns:1fr}.side-cal .reg-side{text-align:left;}}

/* =====================================
   8) QUICK FACTS — version ultra-compacte
   ===================================== */
.quick--lmr.compact{margin:1.2rem 0 2rem;}
.facts-cards{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:8px;list-style:none;padding:0;margin:0;
}
@media (min-width:980px){.facts-cards{grid-template-columns:repeat(4,1fr);}}
.facts-card{
  display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e8e6e2;border-radius:10px;
  padding:8px 10px;box-shadow:0 2px 4px rgba(0,0,0,.03);transition:transform .2s,box-shadow .2s;min-height:52px;
}
.facts-card:hover{transform:translateY(-2px);box-shadow:0 5px 10px rgba(0,0,0,.08);}
.facts-card__icon{
  width:28px;height:28px;border-radius:8px;background:#f6f7f8;display:grid;place-items:center;color:#334155;flex-shrink:0;
}
.facts-card__icon svg{width:15px;height:15px;display:block;}
.facts-card.price .facts-card__icon{background:linear-gradient(160deg,#3377a7,#1e3a8a);color:#fff;}
.facts-card__label{
  font:600 10.8px/1.05 "Montserrat",system-ui,sans-serif;text-transform:uppercase;color:#86827c;margin:0;letter-spacing:.02em;
}
.facts-card__value{
  font:600 13px/1.25 "Open Sans",system-ui,sans-serif;color:#1f2937;margin:1px 0 0;white-space:nowrap;
}
@media (max-width:420px){
  .facts-card{padding:7px 8px;gap:7px}
  .facts-card__icon{width:26px;height:26px}
  .facts-card__icon svg{width:14px;height:14px}
  .facts-card__label{font-size:10px}
  .facts-card__value{font-size:12.5px}
}

/* =====================================
   9) ÉQUIPEMENTS — compact (à la Airbnb)
   ===================================== */
.amenities-block{margin-top:1.8rem;display:flex;flex-direction:column;gap:1.5rem;}
.amenities-cat__title{
  font-family:"Playfair Display","Cormorant Garamond",serif;color:#2f6fa3;font-size:1.05rem;font-weight:600;margin-bottom:.3rem;
}
.amenities-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;}
.equip-card{
  display:flex;align-items:center;gap:.4rem;background:#fff;border:1px solid #ececec;border-radius:10px;
  padding:.4rem .7rem;box-shadow:0 1px 2px rgba(0,0,0,.03);transition:all .2s ease;
}
.equip-card:hover{background:#f9fafb;transform:translateY(-1px);}
.equip-ico{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:#2f6fa3;}
.equip-ico svg{width:18px;height:18px;display:block;}
.equip-label{font-family:"Montserrat","Open Sans",sans-serif;font-weight:500;font-size:.9rem;color:#333;line-height:1.3;}

/* =====================================
   10) DESCRIPTION — visible + modale (tailles réduites)
   ===================================== */
/* Visible sous le slider */
.logement-description.pro{margin-top:28px;font-family:var(--text-font);color:var(--ink);}
.logement-description.pro .desc-section{padding:10px 0 14px;border-bottom:1px solid #f1f4f7;}
.logement-description.pro .desc-section:last-child{border-bottom:none;}
.logement-description.pro .desc-section h3{font-family:var(--title-font);color:#1b2a41;font-size:16px;margin:0 0 6px;}
.logement-description.pro .desc-section .wysiwyg{font-size:14px;line-height:1.55;color:#444;}
.logement-description.pro .desc-section .wysiwyg p{margin:0 0 10px;}

/* Modale (description complète) */
.desc-modal[hidden]{display:none!important;}
.desc-modal{position:fixed;inset:0;z-index:9999;font-family:var(--text-font);}
.desc-modal .modal-backdrop{position:absolute;inset:0;background:rgba(16,44,84,.45);backdrop-filter:blur(6px) saturate(120%);display:flex;align-items:center;justify-content:center;padding:24px;}
.desc-modal .modal-box{
  position:relative;max-width:min(940px,92vw);max-height:min(86vh,920px);width:100%;
  background:#fff;border:1px solid #eef1f5;border-radius:18px;
  box-shadow:0 22px 60px rgba(16,24,40,.18),0 4px 16px rgba(16,24,40,.12);
  padding:clamp(18px,2.4vw,30px);display:flex;flex-direction:column;outline:none;
}
.desc-modal .modal-header{margin-bottom:8px;}
.desc-modal .modal-title{font-family:var(--title-font);color:#143b6b;font-weight:700;font-size:clamp(20px,2.2vw,28px);margin:0;}
.desc-modal .modal-close{
  position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:999px;border:1px solid #e6ebf2;background:#fff;color:#334155;cursor:pointer;
  display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.06);transition:transform .18s,box-shadow .18s,background .18s;
}
.desc-modal .modal-close:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.12);background:#f9fafb;}
.desc-modal .modal-body{max-height:72vh;overflow:auto;padding-right:2px;scroll-behavior:smooth;font-size:14px;line-height:1.55;color:#333;}
.desc-modal .modal-body .desc-section{padding:14px 0 16px;border-bottom:1px solid #f2f4f7;}
.desc-modal .modal-body .desc-section:last-child{border-bottom:none;}
.desc-modal .modal-body .desc-section h3{font-family:var(--title-font);color:#1b2a41;font-size:16px;font-weight:700;margin:0 0 6px;}
.desc-modal .modal-body .wysiwyg p{margin:0 0 12px;}
.desc-modal .modal-body .wysiwyg ul{margin:10px 0 12px 20px;list-style:disc;}
@media (max-width:640px){.desc-modal .modal-box{border-radius:14px;}}
/* =========================
   11) Bouton "Voir plus" (LMR)
   ========================= */
.desc-actions {
  margin-top: 16px;
  display: flex;
  justify-content: center;
}

.btn-see-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--text-font);
  font-weight: 600;
  font-size: 14.5px;
  color: #2F6FA3;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(47, 111, 163, 0.25);
  border-radius: 999px;
  padding: 10px 18px;
  box-shadow: 0 2px 8px rgba(47, 111, 163, 0.08);
  backdrop-filter: blur(6px) saturate(120%);
  transition: all 0.25s ease;
  cursor: pointer;
}

.btn-see-more:hover {
  background: rgba(47, 111, 163, 0.1);
  border-color: rgba(47, 111, 163, 0.3);
  color: #1b4e7a;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(47, 111, 163, 0.15);
}

.btn-see-more:active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(47, 111, 163, 0.1);
}

/* Mobile – conserver ta largeur fixe mais sans dépassement ni conflit */
@media (max-width: 640px){
  .lmr3-logement .media .media-keep{
    /* ta base */
    width: 25em !important;

    /* garde dans l’écran + centrage + coins */
    max-width: 100% !important;
    margin: 0 auto !important;
    border-radius: 10px !important;
    overflow: hidden;

    /* neutralise d’éventuels ratios précédents */
    position: relative;
  }
  .lmr3-logement .media .media-keep::before{ content: none !important; }

  /* évite que SmartSlider force une hauteur/position qui casse ton cadre */
  .lmr3-logement .media .n2-ss-slider{
    position: static !important;
    width: 100% !important;
    height: auto !important;
  }
}
/* Ajustement du titre dans le bandeau (hero-card) sur mobile */
@media (max-width: 640px){
  .lmr3-logement .lmr3-hero__title {
    font-size: clamp(20px, 6vw, 26px) !important;
    line-height: 1.1;
    white-space: nowrap;           /* évite le retour à la ligne */
    overflow: hidden;
    text-overflow: ellipsis;       /* met "…" si le texte dépasse */
  }
}

/* Optionnel : sur très petits écrans (<400px), on peut encore réduire un peu */
@media (max-width: 400px){
  .lmr3-logement .lmr3-hero__title {
    font-size: clamp(18px, 5.5vw, 22px) !important;
  }
}
.map-actions{
  display:flex; align-items:center; gap:8px;
}

.map-actions .btn.btn-map{
  flex:0 0 auto;
  padding:8px 14px;            /* un peu plus compact */
  font-size:14px;
  line-height:1;
}

.map-actions .map-addr{
  flex:1 1 auto;               /* prend la place dispo */
  min-width:0;                 /* IMPORTANT pour l’ellipsis en flex */
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:13px;
}
/* Très petits écrans : encore plus compact */
@media (max-width:420px){
  .map-actions{ gap:6px; }
  .map-actions .btn.btn-map{ padding:7px 12px; font-size:13.5px; }
  .map-actions .map-addr{ font-size:12.5px; }
}
/* Ligne : bouton Itinéraire + adresse */
.map-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 10px;
  width: 100%;
}

/* Bouton Itinéraire */
.map-actions .btn.btn-map {
  flex: 0 0 auto;
  padding: 8px 14px;
  font-size: 14px;
  line-height: 1.1;
  white-space: nowrap;
}

/* Adresse : sur la même ligne, tronquée si trop longue */
.map-actions .map-addr {
  flex: 1 1 auto;
  min-width: 0; /* indispensable pour text-overflow */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13.5px;
  color: #444;
  text-align: right;
}

/* Empêche que ça passe à la ligne sur petit écran */
@media (max-width: 500px) {
  .map-actions {
    flex-direction: row !important; /* force l’horizontal */
    gap: 6px;
  }
  .map-actions .btn.btn-map {
    padding: 7px 10px;
    font-size: 13px;
  }
  .map-actions .map-addr {
    font-size: 12.5px;
  }
}
@media (max-width: 640px) {
  .hero-card {
    transform: translateY(15px); /* déplace vers le bas */
  }
}