/* =====================================================================
   Bellevue Villas — Villa detail pages (Azur / Soleil)
   ===================================================================== */

/* ---------- Villa hero ---------- */
.villa-hero{
  position:relative; min-height:78vh; display:flex; align-items:flex-end;
  color:#fff; background-size:cover; background-position:center;
}
.villa-hero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,32,48,.35) 0%, rgba(20,32,48,.15) 45%, rgba(20,32,48,.78) 100%);
}
.villa-hero .container{ position:relative; z-index:2; padding-bottom:clamp(40px,6vw,80px); padding-top:calc(var(--header-h) + 30px); }
.villa-hero .breadcrumb{ font-size:.85rem; letter-spacing:.05em; color:rgba(255,255,255,.8); margin-bottom:16px; }
.villa-hero .breadcrumb a{ color:rgba(255,255,255,.8); }
.villa-hero .breadcrumb a:hover{ color:#fff; }
.villa-hero h1{ color:#fff; margin-bottom:16px; }
.villa-hero .villa-hero-sub{ font-size:1.15rem; max-width:60ch; color:rgba(255,255,255,.92); margin-bottom:26px; }
.villa-badges{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:28px; }
.villa-badges span{
  display:inline-flex; align-items:center; gap:9px; padding:10px 18px;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22);
  border-radius:var(--radius-pill); font-size:.9rem; font-weight:500; backdrop-filter:blur(4px);
}
.villa-badges svg{ width:18px; height:18px; stroke:#fff; fill:none; }

/* ---------- Villa intro ---------- */
.villa-intro-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(36px,5vw,70px); align-items:center; }
.villa-intro-grid .vi-copy h2{ margin-bottom:22px; }
.villa-intro-grid .vi-copy p{ color:var(--muted); }
.villa-intro-grid .vi-media{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.villa-intro-grid .vi-media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/5; }
.key-specs{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; margin:30px 0 8px; }
.key-specs li{
  background:var(--light); border-radius:var(--radius); padding:20px 16px; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:10px; font-size:.9rem; color:var(--ink); font-weight:500; line-height:1.35;
}
.key-specs svg{ width:30px; height:30px; stroke:var(--navy); fill:none; }

/* ---------- Rooms ---------- */
.rooms{ display:flex; flex-direction:column; gap:clamp(48px,6vw,90px); }
.room{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,4vw,64px); align-items:center; }
.room:nth-child(even) .room-media{ order:2; }
.room-copy h4{ margin-bottom:6px; }
.room-copy .room-index{ color:var(--gold); font-weight:600; font-size:.85rem; letter-spacing:.14em; text-transform:uppercase; display:block; margin-bottom:14px; }
.room-features{ display:grid; grid-template-columns:1fr 1fr; gap:12px 26px; margin-top:8px; }
.room-features li{ display:flex; align-items:flex-start; gap:10px; font-size:.95rem; color:var(--text); }
.room-features li::before{ content:""; flex:0 0 auto; width:7px; height:7px; margin-top:8px; border-radius:50%; background:var(--gold); }
.room-media{ position:relative; }
.room-gallery{
  display:grid; gap:12px; grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr;
  border-radius:var(--radius-lg); overflow:hidden; min-height:340px;
}
.room-gallery a{ overflow:hidden; display:block; }
.room-gallery a:first-child{ grid-row:span 2; }
/* Galerie à 2 images (ex. chambre + sa salle de bain) : 2 colonnes égales */
.room-gallery.two{ grid-template-columns:1fr 1fr; grid-template-rows:1fr; min-height:300px; }
.room-gallery.two a:first-child{ grid-row:auto; }
.room-gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.room-gallery a:hover img{ transform:scale(1.06); }
.room-single{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.room-single img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }

/* ---------- Testimonials ---------- */
.testi-head{ display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; margin-bottom:44px; }
.rating-badge{ display:flex; align-items:center; gap:14px; }
.rating-badge .score{ font-family:var(--font-display); font-size:2.6rem; color:var(--navy); font-weight:600; line-height:1; }
.rating-badge .rating-txt{ font-size:.9rem; color:var(--muted); }
.rating-badge .stars{ color:var(--gold); font-size:1.05rem; letter-spacing:2px; }
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.testi-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px 28px; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; }
.testi-card .stars{ color:var(--gold); letter-spacing:2px; margin-bottom:16px; }
.testi-card .quote{ font-family:var(--font-display); font-size:1.2rem; line-height:1.45; color:var(--ink); margin-bottom:24px; flex:1; }
.testi-author{ display:flex; align-items:center; gap:14px; }
.testi-author img{ width:48px; height:48px; border-radius:50%; object-fit:cover; }
.testi-author .name{ font-weight:600; color:var(--ink); font-size:.95rem; }
.testi-author .date{ font-size:.82rem; color:var(--muted); }

/* ---------- Villa CTA (fond clair hérité de .cta-band) ---------- */
.villa-cta{ text-align:center; }
.villa-cta .cta-actions{ justify-content:center; }
.villa-cta .eyebrow{ color:var(--gold); }

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .villa-intro-grid{ grid-template-columns:1fr; }
  .villa-intro-grid .vi-media{ order:-1; max-height:420px; }
  .room{ grid-template-columns:1fr; }
  .room:nth-child(even) .room-media{ order:0; }
  .room-media{ order:-1; }
  .testi-grid{ grid-template-columns:1fr; }
  .key-specs{ grid-template-columns:1fr 1fr 1fr; }
}
@media (max-width:640px){
  .room-features{ grid-template-columns:1fr; }
  .key-specs{ grid-template-columns:1fr; }
  .villa-hero{ min-height:70vh; }
}
