/* ============================================================================
   BBTEK Hôtel — portail public et page d'un hôtel (complète style.css, même charte)
============================================================================ */
body{overflow-x:hidden;}
.navbar-teranga .navbar-brand small{font-size:.7rem; letter-spacing:.08em; opacity:.75; margin-right:.4rem; font-weight:500;}
.nav-espace{display:flex; align-items:center; gap:.4rem .9rem; flex-wrap:wrap; margin-left:auto; justify-content:flex-end;}
.nav-espace .lien-espace{color:var(--sable-clair); opacity:.9; font-size:.9rem; font-weight:500; white-space:nowrap;}
.nav-espace .lien-espace:hover{color:var(--or-clair); opacity:1;}
.nav-espace .lien-discret{font-size:.8rem; opacity:.7;}
.nav-espace .btn-or{padding:.35rem 1rem; font-size:.85rem; white-space:nowrap;}

/* Portail : bandeau d'accueil plus bas que le hero d'un hôtel */
.hero.hero-portail{min-height:auto; padding-top:7.5rem; padding-bottom:7rem;}
.hero.hero-portail h1{font-size:clamp(2.1rem, 5vw, 3.8rem);}
.hero.hero-portail p.lead{font-size:1.05rem;}
.search-portail{margin-top:-4.2rem;}
.search-portail .btn-or{height:calc(2.4rem + 2px);}

/* Cartes d'hôtels */
.hotel-card{
  display:flex; flex-direction:column; height:100%; color:inherit;
  background:#fff; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:0 10px 30px rgba(16,24,48,.10); transition:transform .2s ease, box-shadow .2s ease;
}
.hotel-card:hover{transform:translateY(-6px); box-shadow:0 22px 44px rgba(16,24,48,.18); color:inherit;}
.hotel-card-media{
  position:relative; aspect-ratio:16/10; background-size:cover; background-position:center;
  background-color:var(--nuit-glow);
}
.hotel-card-media.sans-photo{
  background:linear-gradient(135deg, var(--nuit-profonde), var(--nuit-glow) 60%, var(--rouille));
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:3.2rem; color:var(--or-clair);
}
.hotel-card-ville{
  position:absolute; left:.8rem; bottom:.8rem; background:rgba(16,24,48,.78); color:var(--sable-clair);
  font-size:.75rem; padding:.25rem .7rem; border-radius:999px; backdrop-filter:blur(4px);
}
.hotel-card-body{padding:1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; gap:.4rem; flex:1;}
.hotel-card-body h3{font-size:1.25rem; margin:0;}
.hotel-card-desc{color:#6d6350; font-size:.9rem; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.hotel-card-foot{margin-top:auto; padding-top:.7rem; display:flex; align-items:flex-end; justify-content:space-between; gap:.6rem;}
.prix-depart{font-family:var(--font-mono); font-weight:700; font-size:1.15rem; color:var(--nuit-profonde); line-height:1.1;}
.prix-depart small{display:block; font-family:var(--font-body); font-weight:500; font-size:.7rem; color:#8a7f66; text-transform:uppercase; letter-spacing:.06em;}
.prix-depart small.apres{display:inline; text-transform:none; letter-spacing:0; font-size:.78rem;}
.hotel-card .voir{font-size:.85rem; font-weight:600; color:var(--rouille); white-space:nowrap;}
.compteur-resultats{color:#6d6350; font-size:.95rem;}
.vide{background:#fff; border-radius:var(--radius-lg); padding:2.2rem 1.4rem; text-align:center; color:#6d6350; box-shadow:0 10px 30px rgba(16,24,48,.08);}

/* Page d'un hôtel */
.hero.hero-hotel{min-height:62vh; padding-bottom:6.5rem;}
.hero.hero-hotel.avec-photo{background-size:cover; background-position:center;}
.hero.hero-hotel.avec-photo::before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(16,24,48,.55), rgba(16,24,48,.86));}
.hero.hero-hotel.avec-photo .hero-sun{display:none;}
.hero.hero-hotel h1{font-size:clamp(2.2rem, 5vw, 4rem);}
.retour-portail{color:var(--or-clair); font-size:.85rem; font-weight:600;}
.retour-portail:hover{color:#fff;}
.galerie .carousel-item img{width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:var(--radius-lg);}
.galerie .carousel{box-shadow:0 20px 44px rgba(16,24,48,.18); border-radius:var(--radius-lg);}
.galerie .carousel-indicators{margin-bottom:.6rem;}
.galerie .carousel-indicators [data-bs-target]{width:9px; height:9px; border-radius:50%; border:0;}
.infos-hotel{background:#fff; border-radius:var(--radius-lg); padding:1.4rem 1.5rem; box-shadow:0 10px 30px rgba(16,24,48,.08);}
.infos-hotel p{margin:0 0 .6rem; color:#4a4230;}
.presentation-texte{white-space:pre-line; color:#4a4230; font-size:1.02rem; line-height:1.7;}
.note-confidentialite{font-size:.78rem; color:#8a7f66;}

@media (max-width:575.98px){
  .navbar-teranga .container{flex-wrap:wrap; row-gap:.2rem;}
  .navbar-teranga .navbar-brand{font-size:1.15rem;}
  .nav-espace{width:100%; justify-content:space-between; margin-left:0; padding-bottom:.2rem;}
  .hero.hero-portail{padding-top:8.2rem; padding-bottom:6.5rem;}
  .hero.hero-hotel{padding-top:8rem;}
  .search-widget{padding:1.1rem; margin-top:-3.6rem;}
  .hotel-card-foot{align-items:center;}
  .room-card-media{aspect-ratio:16/7;}
}
