/* ════════════════════════════════════════
   COIN DU CIEL IMMOBILIER — REFONTE 2026
   Charte : Bleu #5b9dc8 + Jaune #f5d028
   ════════════════════════════════════════ */

:root{
  /* ── PALETTE ── */
  --blanc:        #ffffff;
  --creme:        #fdfcf7;   /* fond très léger crème */
  --bleu:         #5b9dc8;   /* bleu principal logo */
  --bleu-fonce:   #2c5a7f;   /* bleu profond pour titres */
  --bleu-clair:   #e8f0f7;   /* fond bleu très clair */
  --bleu-pastel:  #b8d4e8;   /* bleu pastel */
  --jaune:        #f5d028;   /* jaune solaire logo */
  --jaune-clair:  #fef5d1;   /* jaune très clair */
  --texte:        #1f2937;   /* texte principal */
  --texte-gris:   #6b7280;   /* texte secondaire */
  --gris-clair:   #9ca3af;   /* gris léger */
  --border:       #e5e7eb;   /* bordures */
  --border-bleu:  rgba(91,157,200,.2);
  --shadow-sm:    0 1px 3px rgba(0,0,0,.04);
  --shadow:       0 4px 16px rgba(44,90,127,.08);
  --shadow-lg:    0 12px 32px rgba(44,90,127,.12);
  --shadow-blue:  0 8px 28px rgba(91,157,200,.18);
  --green:        #22c55e;
  --red:          #ef4444;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--blanc);
  color:var(--texte);
  overflow-x:hidden;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

/* Scrollbar */
::-webkit-scrollbar{width:8px;}
::-webkit-scrollbar-track{background:var(--blanc);}
::-webkit-scrollbar-thumb{background:var(--bleu-pastel);border-radius:4px;}
::-webkit-scrollbar-thumb:hover{background:var(--bleu);}
/* ── FIX LOGO NAVIGATION ── */
#main-nav{height:auto !important;min-height:90px !important;padding:10px 40px !important;}
.nav-logo{min-height:70px !important;}
#nav-logo-img{height:70px !important;width:auto !important;display:flex !important;align-items:center !important;}
#nav-logo-img img,#nav-logo-img svg{height:70px !important;width:auto !important;max-width:280px !important;max-height:none !important;display:block !important;object-fit:contain !important;}
/* ── NAV ── */
#main-nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
  padding:14px 40px;
  display:flex;align-items:center;justify-content:space-between;
  height:110px;
  transition:all .3s ease;
}
.nav-logo{display:flex;align-items:center;gap:14px;text-decoration:none;}
#nav-logo-img{width:auto;height:100px;display:flex;align-items:center;}
#nav-logo-img svg, #nav-logo-img img{height:100px !important;width:auto !important;max-width:none !important;display:block !important;}
.nav-logo-text{display:flex;flex-direction:column;line-height:1;}
.nav-logo-text .brand{
  font-family:'Fraunces',serif;
  font-size:24px;
  font-weight:500;
  color:var(--bleu-fonce);
  letter-spacing:-.02em;
}
.nav-logo-text .sub{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:9px;
  letter-spacing:4px;
  color:var(--bleu);
  text-transform:uppercase;
  font-weight:600;
  margin-top:2px;
}
.nav-links{display:flex;align-items:center;gap:6px;}
.nav-links a{
  color:var(--texte);
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  padding:10px 16px;
  border-radius:8px;
  transition:all .25s;
}
.nav-links a:hover{color:var(--bleu);background:var(--bleu-clair);}
.nav-admin-btn{
  background:var(--bleu)!important;
  color:var(--blanc)!important;
  padding:10px 18px!important;
  border-radius:8px!important;
  font-weight:600!important;
  margin-left:8px;
  transition:all .25s!important;
}
.nav-admin-btn:hover{
  background:var(--bleu-fonce)!important;
  transform:translateY(-1px);
  box-shadow:var(--shadow-blue);
}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;}
.hamburger span{width:24px;height:2px;background:var(--bleu-fonce);border-radius:2px;}

/* ── HERO ── */
.hero{
  min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  position:relative;
  background:linear-gradient(180deg,var(--creme) 0%,var(--blanc) 100%);
  padding:120px 24px 60px;
  overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;
  background:radial-gradient(circle at 80% 20%,rgba(245,208,40,.08) 0%,transparent 50%),
             radial-gradient(circle at 20% 80%,rgba(91,157,200,.08) 0%,transparent 50%);
}
.hero-grid{
  position:absolute;inset:0;
  background-image:linear-gradient(var(--border) 1px,transparent 1px),
                   linear-gradient(90deg,var(--border) 1px,transparent 1px);
  background-size:60px 60px;
  opacity:.4;
}
.hero-ring{display:none;} /* on supprime les rings de l'ancien design */

.hero-content{
  position:relative;z-index:2;
  text-align:center;
  max-width:900px;
  animation:fadeUp .9s ease both;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

.hero-eyebrow{
  display:inline-block;
  font-size:11px;letter-spacing:5px;
  color:var(--bleu);
  text-transform:uppercase;
  font-weight:600;
  margin-bottom:24px;
  padding:0 36px;
  position:relative;
}
.hero-eyebrow::before,.hero-eyebrow::after{
  content:'';position:absolute;top:50%;width:28px;height:1px;background:var(--bleu);opacity:.4;
}
.hero-eyebrow::before{left:0;} .hero-eyebrow::after{right:0;}

.hero h1{
  font-family:'Fraunces',serif;
  font-size:clamp(48px,7vw,84px);
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.02em;
  color:var(--bleu-fonce);
  margin-bottom:24px;
}
.hero h1 em{
  font-style:italic;
  font-weight:300;
  color:var(--bleu);
  display:block;
  margin-top:4px;
}
.hero-sub{
  max-width:580px;margin:0 auto 40px;
  font-size:17px;line-height:1.7;
  color:var(--texte-gris);
}
.hero-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* ── BTNS ── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 28px;
  border-radius:10px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:14px;font-weight:600;
  letter-spacing:.02em;
  cursor:pointer;
  text-decoration:none;
  border:none;
  transition:all .25s cubic-bezier(.4,0,.2,1);
  position:relative;
}
.btn-gold,.btn-primary{
  background:var(--bleu);color:var(--blanc);
  box-shadow:var(--shadow-blue);
}
.btn-gold:hover,.btn-primary:hover{
  background:var(--bleu-fonce);
  transform:translateY(-2px);
  box-shadow:0 12px 32px rgba(91,157,200,.32);
  color:var(--blanc);
}
.btn-outline{
  background:transparent;
  color:var(--bleu-fonce);
  border:1.5px solid var(--bleu);
}
.btn-outline:hover{
  background:var(--bleu);color:var(--blanc);
  border-color:var(--bleu);
  transform:translateY(-2px);
}
.btn-outline-gold{
  background:transparent;
  color:var(--bleu);
  border:1.5px solid var(--bleu);
}
.btn-outline-gold:hover{background:var(--bleu);color:var(--blanc);}
.btn-jaune{
  background:var(--jaune);color:var(--texte);
}
.btn-jaune:hover{
  background:#e6c424;transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(245,208,40,.32);
}
.btn-sm{padding:9px 18px;font-size:12px;}
.btn-full{width:100%;}

/* ── HERO STATS ── */
.hero-stats{
  position:absolute;bottom:40px;left:50%;transform:translateX(-50%);
  display:flex;gap:50px;
  z-index:2;
}
.stat{text-align:center;}
.stat-num{
  font-family:'Fraunces',serif;
  font-size:36px;font-weight:500;
  color:var(--bleu);
  line-height:1;
}
.stat-label{
  font-size:10px;letter-spacing:2.5px;
  color:var(--texte-gris);
  text-transform:uppercase;
  margin-top:6px;
  font-weight:600;
}

/* ── SECTIONS ── */
section{padding:100px 24px;position:relative;}
section#location,section#agence,section#services,section#contact{background:var(--blanc);}
section#apropos{background:var(--creme);}
.sec{max-width:1200px;margin:0 auto;}
.sec-tag{
  display:inline-block;
  font-size:11px;letter-spacing:4px;
  color:var(--bleu);
  text-transform:uppercase;
  font-weight:600;
  margin-bottom:16px;
}
.sec-title{
  font-family:'Fraunces',serif;
  font-size:clamp(36px,5vw,56px);
  font-weight:400;
  line-height:1.15;
  letter-spacing:-.015em;
  color:var(--bleu-fonce);
  margin-bottom:18px;
}
.sec-desc{
  max-width:600px;
  font-size:16px;line-height:1.7;
  color:var(--texte-gris);
  margin-bottom:32px;
}
.gold-bar{width:64px;height:3px;background:var(--jaune);margin-bottom:48px;border-radius:2px;}
.divider{height:1px;background:var(--border);max-width:1200px;margin:0 auto;}

/* ── CARDS APPARTEMENTS ── */
.apt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:28px;}
.apt-card{
  background:var(--blanc);
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  transition:all .35s cubic-bezier(.4,0,.2,1);
}
.apt-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
  border-color:var(--bleu-pastel);
}
.apt-photos{
  position:relative;
  width:100%;height:240px;
  overflow:hidden;
  background:var(--bleu-clair);
}
.apt-slider{display:flex;height:100%;transition:transform .5s ease;}
.apt-slide{min-width:100%;height:100%;}
.apt-slide img{width:100%;height:100%;object-fit:cover;}
.apt-slide-ph{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  font-size:60px;color:var(--bleu-pastel);
}
.apt-badge{
  position:absolute;top:14px;left:14px;
  padding:6px 12px;
  border-radius:6px;
  font-size:10px;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;
  z-index:5;
}
.badge-dispo{background:var(--green);color:#fff;}
.badge-complet{background:var(--red);color:#fff;}
.apt-cnt{
  position:absolute;top:14px;right:14px;
  background:rgba(0,0,0,.6);color:#fff;
  padding:4px 9px;border-radius:6px;
  font-size:10px;font-weight:600;
  z-index:5;
}
.apt-arr{
  position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(255,255,255,.95);
  border:none;
  color:var(--bleu-fonce);
  width:36px;height:36px;
  border-radius:50%;
  cursor:pointer;
  font-size:18px;font-weight:600;
  z-index:10;
  opacity:0;
  transition:opacity .25s;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow);
}
.apt-card:hover .apt-arr{opacity:1;}
@media(hover:none){.apt-arr{opacity:.9;}}
.apt-arr-l{left:10px;}
.apt-arr-r{right:10px;}
.apt-dots{
  position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
  display:flex;gap:5px;z-index:5;
}
.dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;transition:all .2s;}
.dot.on{background:var(--blanc);width:18px;border-radius:3px;}

.apt-body{padding:22px;}
.apt-name{
  font-family:'Fraunces',serif;
  font-size:22px;font-weight:500;
  color:var(--bleu-fonce);
  margin-bottom:6px;
  line-height:1.3;
}
.apt-loc{
  font-size:13px;color:var(--texte-gris);
  margin-bottom:14px;
}
.apt-feats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.apt-feat{
  background:var(--bleu-clair);
  color:var(--bleu-fonce);
  font-size:11px;font-weight:600;
  padding:5px 10px;border-radius:6px;
}
.apt-foot{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-top:18px;padding-top:16px;
  border-top:1px solid var(--border);
}
.apt-prix{
  font-family:'Fraunces',serif;
  font-size:24px;font-weight:600;
  color:var(--bleu-fonce);
  line-height:1;
}
.apt-unit{font-size:11px;color:var(--texte-gris);margin-top:3px;}

/* ── EMPTY GRID ── */
.empty-grid{
  background:var(--bleu-clair);
  border:1px dashed var(--bleu-pastel);
  border-radius:16px;
  padding:60px 30px;
  text-align:center;
}
.empty-icon{font-size:60px;margin-bottom:18px;}
.empty-title{
  font-family:'Fraunces',serif;
  font-size:24px;color:var(--bleu-fonce);
  margin-bottom:8px;
}
.empty-text{color:var(--texte-gris);font-size:14px;margin-bottom:22px;}

/* ── FILTER ── */
.filter-bar{display:flex;gap:10px;margin-bottom:36px;flex-wrap:wrap;}
.fbtn{
  background:var(--blanc);
  border:1px solid var(--border);
  color:var(--texte-gris);
  padding:9px 18px;
  border-radius:8px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:13px;font-weight:600;
  cursor:pointer;
  transition:all .2s;
}
.fbtn:hover{border-color:var(--bleu);color:var(--bleu);}
.fbtn.on{background:var(--bleu);color:var(--blanc);border-color:var(--bleu);}

/* ── BIENS ── */
.biens-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:28px;}
.bien-card{
  background:var(--blanc);
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  transition:all .35s;
}
.bien-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--bleu-pastel);}
.bien-photo{position:relative;height:220px;overflow:hidden;background:var(--bleu-clair);}
.bien-photo-bg{position:absolute;inset:0;background-size:cover;background-position:center;}
.bien-type{
  position:absolute;top:14px;right:14px;
  padding:5px 12px;border-radius:6px;
  font-size:10px;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;
}
.bien-type.tv{background:var(--jaune);color:var(--texte);}
.bien-type.tl{background:var(--bleu);color:var(--blanc);}
.bien-body{padding:22px;}
.bien-ref{
  font-size:10px;letter-spacing:2px;
  color:var(--bleu);text-transform:uppercase;
  font-weight:600;margin-bottom:6px;
}
.bien-name{
  font-family:'Fraunces',serif;
  font-size:22px;color:var(--bleu-fonce);
  margin-bottom:6px;font-weight:500;
}
.bien-loc{font-size:13px;color:var(--texte-gris);margin-bottom:14px;}
.bien-specs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.bien-spec{
  background:var(--bleu-clair);color:var(--bleu-fonce);
  font-size:11px;padding:5px 10px;border-radius:6px;font-weight:600;
}
.bien-foot{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-top:18px;padding-top:16px;border-top:1px solid var(--border);
}
.bien-prix{
  font-family:'Fraunces',serif;
  font-size:22px;font-weight:600;color:var(--bleu-fonce);line-height:1;
}
.bien-unit{font-size:11px;color:var(--texte-gris);margin-top:3px;}

/* ── À PROPOS ── */
.ap-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:start;}
.valeurs{display:flex;flex-direction:column;gap:22px;margin-top:36px;}
.valeur{display:flex;gap:18px;align-items:flex-start;}
.val-num{
  font-family:'Fraunces',serif;
  font-size:36px;color:var(--jaune);
  font-weight:500;line-height:1;
  min-width:50px;
}
.val-txt h4{
  font-family:'Fraunces',serif;
  font-size:18px;color:var(--bleu-fonce);
  font-weight:500;margin-bottom:6px;
}
.val-txt p{font-size:14px;color:var(--texte-gris);line-height:1.7;}
.ap-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.ap-card{
  background:var(--blanc);
  border:1px solid var(--border);
  padding:24px;border-radius:12px;
  transition:all .3s;
}
.ap-card:hover{
  border-color:var(--bleu-pastel);
  transform:translateY(-3px);
  box-shadow:var(--shadow);
}
.ap-card-icon{font-size:30px;margin-bottom:10px;}
.ap-card-title{
  font-family:'Fraunces',serif;
  font-size:16px;color:var(--bleu-fonce);
  font-weight:600;margin-bottom:5px;
}
.ap-card-text{font-size:12px;color:var(--texte-gris);line-height:1.6;}

/* ── SERVICES ── */
.srv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;}
.srv-card{
  background:var(--blanc);
  border:1px solid var(--border);
  padding:32px 26px;border-radius:14px;
  transition:all .3s;
}
.srv-card:hover{
  border-color:var(--bleu);
  transform:translateY(-4px);
  box-shadow:var(--shadow-blue);
}
.srv-icon{
  font-size:38px;
  width:64px;height:64px;
  background:var(--bleu-clair);
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:18px;
}
.srv-title{
  font-family:'Fraunces',serif;
  font-size:20px;color:var(--bleu-fonce);
  font-weight:500;margin-bottom:8px;
}
.srv-desc{font-size:13px;color:var(--texte-gris);line-height:1.65;}

/* ── CONTACT ── */
.ct-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;}
.ct-item{
  display:flex;gap:14px;
  padding:16px 0;
  align-items:center;
}
.ct-icon{
  width:46px;height:46px;
  background:var(--bleu-clair);
  border:1px solid var(--border-bleu);
  border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;
  flex-shrink:0;
}
.ct-label{
  font-size:10px;letter-spacing:2px;
  color:var(--bleu);text-transform:uppercase;
  font-weight:600;margin-bottom:3px;
}
.ct-val{font-size:14px;color:var(--texte);font-weight:500;}

.ct-form{
  background:var(--creme);
  border:1px solid var(--border);
  border-radius:16px;
  padding:36px;
}
.ct-form h4{
  font-family:'Fraunces',serif;
  font-size:24px;color:var(--bleu-fonce);
  font-weight:500;margin-bottom:22px;
}

/* ── FORMS ── */
.fg{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.fgrp{display:flex;flex-direction:column;gap:6px;}
.fgrp.full{grid-column:1/-1;}
.flbl{
  font-size:11px;letter-spacing:1.5px;
  color:var(--texte-gris);
  text-transform:uppercase;
  font-weight:600;
}
.finput{
  background:var(--blanc);
  border:1.5px solid var(--border);
  border-radius:10px;
  padding:12px 14px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:14px;color:var(--texte);
  transition:all .2s;
  width:100%;
}
.finput:focus{
  outline:none;
  border-color:var(--bleu);
  box-shadow:0 0 0 3px rgba(91,157,200,.15);
}
.finput::placeholder{color:var(--gris-clair);}

/* ── FOOTER ── */
footer{
  background:var(--bleu-fonce);
  color:rgba(255,255,255,.8);
  padding:60px 24px 24px;
}
.ft-grid{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;
  padding-bottom:40px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.ft-brand .nav-logo-text .brand{color:var(--blanc);}
.ft-brand .nav-logo-text .sub{color:var(--jaune);}
.ft-brand p{
  margin-top:18px;
  font-size:13px;line-height:1.7;
  color:rgba(255,255,255,.65);
  max-width:280px;
}
.ft-col h5{
  font-family:'Fraunces',serif;
  font-size:16px;color:var(--blanc);
  font-weight:500;margin-bottom:18px;
}
.ft-col a{
  display:block;
  color:rgba(255,255,255,.65);
  text-decoration:none;
  font-size:13px;line-height:2;
  transition:color .2s;
}
.ft-col a:hover{color:var(--jaune);}
.ft-bot{
  max-width:1200px;margin:24px auto 0;
  padding-top:24px;
  display:flex;justify-content:space-between;
  font-size:12px;color:rgba(255,255,255,.5);
  flex-wrap:wrap;gap:10px;
}

/* ── MODAL ── */
.modal-bg{
  position:fixed;inset:0;z-index:9000;
  background:rgba(15,30,55,.75);
  backdrop-filter:blur(8px);
  display:none;align-items:flex-start;justify-content:center;
  padding:40px 20px;
  overflow-y:auto;
}
.modal-bg.open{display:flex;}
.modal{
  background:var(--blanc);
  border-radius:18px;
  max-width:720px;width:100%;
  position:relative;
  animation:mIn .3s ease both;
}
@keyframes mIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.modal-x{
  position:absolute;top:18px;right:18px;
  background:var(--bleu-clair);
  border:none;
  width:38px;height:38px;
  border-radius:50%;
  cursor:pointer;
  font-size:18px;color:var(--bleu-fonce);
  display:flex;align-items:center;justify-content:center;
  z-index:10;
  transition:all .2s;
}
.modal-x:hover{background:var(--bleu);color:var(--blanc);transform:rotate(90deg);}
.modal-hd{padding:32px 36px 22px;border-bottom:1px solid var(--border);}
.modal-hd h2{
  font-family:'Fraunces',serif;
  font-size:28px;color:var(--bleu-fonce);
  font-weight:500;margin-bottom:6px;
}
.modal-hd p{font-size:13px;color:var(--texte-gris);}
.modal-bd{padding:28px 36px 36px;}

/* ── GALERIE MODAL ── */
.gal-main{
  width:100%;height:280px;
  border-radius:12px;overflow:hidden;
  background:var(--bleu-clair);
  margin-bottom:10px;
}
.gal-main img{width:100%;height:100%;object-fit:cover;}
.gal-ph{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  font-size:60px;color:var(--bleu-pastel);
}
.gal-strip{display:flex;gap:8px;overflow-x:auto;margin-bottom:24px;padding-bottom:4px;}
.gal-thumb{
  min-width:72px;height:54px;
  border-radius:8px;overflow:hidden;
  cursor:pointer;
  border:2px solid transparent;
  transition:all .2s;
}
.gal-thumb img{width:100%;height:100%;object-fit:cover;}
.gal-thumb.on{border-color:var(--bleu);}

/* ── CALENDRIER ── */
.info-banner{
  background:var(--jaune-clair);
  border:1px solid var(--jaune);
  border-radius:10px;
  padding:12px 14px;
  display:flex;align-items:flex-start;gap:10px;
  font-size:12px;color:#7a5e00;
  line-height:1.6;margin-bottom:20px;
}
.info-banner-ico{font-size:14px;flex-shrink:0;}

.quick-dates{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.qd-btn{
  background:var(--bleu-clair);
  border:1px solid var(--border-bleu);
  color:var(--bleu-fonce);
  padding:7px 14px;
  border-radius:20px;
  font-size:11px;cursor:pointer;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:600;transition:all .2s;
}
.qd-btn:hover{background:var(--bleu);color:var(--blanc);border-color:var(--bleu);}

.cal-wrap{margin-bottom:24px;}
.cal-label{
  font-size:11px;letter-spacing:1.5px;
  color:var(--texte-gris);text-transform:uppercase;
  font-weight:600;margin-bottom:12px;
}
.cal-box{
  background:var(--creme);
  border:1px solid var(--border);
  border-radius:12px;padding:18px;
}
.cal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cal-btn{
  background:var(--blanc);
  border:1px solid var(--border);
  width:32px;height:32px;
  border-radius:8px;
  cursor:pointer;
  font-size:16px;color:var(--bleu-fonce);
  font-weight:600;
  transition:all .2s;
}
.cal-btn:hover{background:var(--bleu);color:var(--blanc);border-color:var(--bleu);}
.cal-mth{
  font-family:'Fraunces',serif;
  font-size:18px;color:var(--bleu-fonce);
  font-weight:500;
}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px;}
.cal-dn{
  text-align:center;
  font-size:10px;letter-spacing:1px;
  color:var(--gris-clair);text-transform:uppercase;
  font-weight:600;padding:6px 0;
}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.cal-d{
  aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;color:var(--texte);
  border-radius:8px;
  cursor:pointer;
  transition:all .15s;
  font-weight:500;
}
.cal-d:not(.cal-past):not(.cal-blocked):not(.cal-booked):not(.cal-empty):hover{
  background:var(--bleu-clair);color:var(--bleu-fonce);
}
.cal-empty{cursor:default;}
.cal-past{color:var(--gris-clair);cursor:not-allowed;text-decoration:line-through;opacity:.5;}
.cal-today{background:var(--jaune-clair);font-weight:700;color:var(--texte);}
.cal-sel{background:var(--bleu)!important;color:var(--blanc)!important;font-weight:700;}
.cal-range{background:rgba(91,157,200,.18);color:var(--bleu-fonce);}
.cal-booked{background:#fee2e2;color:#dc2626;cursor:not-allowed;}
.cal-blocked{background:#e5e7eb;color:#9ca3af;cursor:not-allowed;}
.cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.leg-item{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--texte-gris);}
.leg-dot{width:10px;height:10px;border-radius:3px;}

/* ── RESA SUM ── */
.resa-sum{
  background:var(--bleu-clair);
  border-radius:12px;padding:18px;margin-bottom:18px;
}
.resa-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13px;}
.resa-lbl{color:var(--texte-gris);}
.resa-val{font-weight:600;color:var(--bleu-fonce);}
.resa-total{
  border-top:1px solid var(--border-bleu);
  padding-top:10px;margin-top:6px;font-size:15px;
}
.resa-total .resa-val{color:var(--bleu);font-size:18px;}

/* ── TOAST ── */
.toast{
  position:fixed;bottom:28px;right:28px;z-index:99999;
  background:var(--blanc);
  border:1px solid var(--border);
  border-left:4px solid var(--bleu);
  border-radius:10px;
  padding:14px 22px;
  font-size:13px;color:var(--texte);
  display:none;align-items:center;gap:10px;
  box-shadow:var(--shadow-lg);
}
.toast.show{display:flex;}
.toast-ico{color:var(--bleu);font-size:16px;font-weight:bold;}

/* ── WHATSAPP FAB ── */
.wa-fab{
  position:fixed;bottom:24px;left:24px;z-index:8500;
  background:#25D366;color:#fff;
  width:60px;height:60px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;text-decoration:none;
  box-shadow:0 6px 24px rgba(37,211,102,.45);
  transition:transform .2s,box-shadow .2s;
  animation:wa-pulse 2.5s ease-in-out infinite;
}
.wa-fab:hover{transform:scale(1.08);}
.wa-fab svg{width:30px;height:30px;}
.wa-fab-label{
  position:absolute;right:-100%;
  background:var(--bleu-fonce);color:#fff;
  padding:8px 14px;border-radius:8px;
  font-size:12px;white-space:nowrap;
  box-shadow:var(--shadow-lg);
  opacity:0;pointer-events:none;
  transition:all .25s;
}
.wa-fab:hover .wa-fab-label{opacity:1;right:74px;}
@keyframes wa-pulse{
  0%,100%{box-shadow:0 6px 24px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,.5);}
  50%{box-shadow:0 6px 24px rgba(37,211,102,.45),0 0 0 14px rgba(37,211,102,0);}
}
.btn-wa{background:#25D366;color:#fff;display:inline-flex;align-items:center;gap:8px;}
.btn-wa:hover{background:#1ebe57;color:#fff;}
.btn-wa svg{width:16px;height:16px;flex-shrink:0;}

/* ── SUCCESS OVERLAY ── */
.success-overlay{
  position:fixed;inset:0;z-index:9100;
  background:rgba(15,30,55,.85);
  backdrop-filter:blur(10px);
  display:none;align-items:center;justify-content:center;padding:20px;
}
.success-overlay.open{display:flex;}
.success-box{
  background:var(--blanc);
  border-radius:18px;
  max-width:520px;width:100%;
  padding:40px 36px;text-align:center;
  animation:mIn .3s ease both;
}
.success-icon{
  width:80px;height:80px;
  border-radius:50%;
  background:rgba(34,197,94,.12);
  border:2px solid var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:38px;color:var(--green);
  margin:0 auto 20px;
}
.success-box h3{
  font-family:'Fraunces',serif;
  font-size:30px;color:var(--bleu-fonce);
  font-weight:500;margin-bottom:10px;
}
.success-box p{color:var(--texte-gris);font-size:14px;line-height:1.7;margin-bottom:20px;}
.success-ref{
  display:inline-block;
  background:var(--bleu-clair);
  border-radius:8px;padding:10px 20px;
  font-size:12px;color:var(--bleu);
  letter-spacing:2px;font-weight:700;
  margin-bottom:20px;
}
.success-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.success-actions .btn{flex:1;min-width:180px;}

/* ── MODAL HELP ── */
.modal-help{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;
  background:rgba(37,211,102,.08);
  border:1px solid rgba(37,211,102,.25);
  border-radius:10px;
  font-size:12px;color:#0a6e2e;
  margin-top:16px;line-height:1.5;
}
.modal-help svg{width:18px;height:18px;flex-shrink:0;}
.modal-help a{color:#0a6e2e;text-decoration:underline;font-weight:700;}

/* ── ADMIN PANEL ── */
.adm-bg{
  position:fixed;inset:0;z-index:9500;
  background:var(--blanc);
  display:none;
}
.adm-bg.open{display:block;}
.adm-bar{
  background:var(--bleu-fonce);
  color:var(--blanc);
  padding:18px 28px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--border);
}
.adm-bar h2{font-family:'Fraunces',serif;font-size:22px;font-weight:500;}
.adm-bar h2 em{color:var(--jaune);font-style:italic;}
.adm-x{
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  color:var(--blanc);
  padding:8px 16px;border-radius:8px;cursor:pointer;
  font-size:12px;font-weight:600;
  transition:all .2s;
}
.adm-x:hover{background:rgba(255,255,255,.2);}
.adm-body{display:flex;height:calc(100vh - 70px);}
.adm-side{
  width:240px;
  background:var(--creme);
  border-right:1px solid var(--border);
  padding:18px 12px;overflow-y:auto;
}
.adm-side-title{
  font-size:10px;letter-spacing:2px;
  color:var(--gris-clair);text-transform:uppercase;
  font-weight:700;padding:14px 12px 6px;
}
.adm-mi{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;
  border-radius:8px;
  cursor:pointer;
  font-size:13px;color:var(--texte);
  font-weight:500;
  transition:all .15s;
}
.adm-mi:hover{background:var(--bleu-clair);color:var(--bleu-fonce);}
.adm-mi.on{background:var(--bleu);color:var(--blanc);}
.adm-mi-ico{font-size:15px;}
.adm-content{flex:1;padding:32px 36px;overflow-y:auto;}
.adm-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.adm-title{font-family:'Fraunces',serif;font-size:28px;color:var(--bleu-fonce);font-weight:500;}
.adm-form{display:flex;flex-direction:column;gap:18px;}
.info-box{
  background:var(--blanc);
  border:1px solid var(--border);
  border-radius:12px;padding:22px;
}
.info-box-title{
  font-family:'Fraunces',serif;
  font-size:16px;color:var(--bleu-fonce);
  font-weight:600;margin-bottom:14px;
}

/* Admin Login */
.adm-login{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;background:var(--creme);}
.adm-login-box{
  background:var(--blanc);
  border:1px solid var(--border);
  border-radius:18px;
  padding:40px;
  max-width:420px;width:100%;text-align:center;
  box-shadow:var(--shadow-lg);
}
.adm-login-box h3{
  font-family:'Fraunces',serif;
  font-size:24px;color:var(--bleu-fonce);
  font-weight:500;margin-bottom:6px;
}
.adm-login-box p{font-size:12px;color:var(--texte-gris);margin-bottom:22px;}

/* Admin Table */
.tbl{
  width:100%;
  background:var(--blanc);
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  border-collapse:collapse;
}
.tbl thead{background:var(--creme);}
.tbl th{
  padding:12px 14px;
  text-align:left;
  font-size:11px;letter-spacing:1px;
  color:var(--texte-gris);text-transform:uppercase;
  font-weight:700;
  border-bottom:1px solid var(--border);
}
.tbl td{
  padding:12px 14px;
  font-size:13px;color:var(--texte);
  border-bottom:1px solid var(--border);
}
.tbl tr:last-child td{border-bottom:none;}
.tbl-acts{display:flex;gap:6px;flex-wrap:wrap;}
.tbtn{
  background:var(--bleu-clair);
  border:none;
  color:var(--bleu-fonce);
  padding:6px 10px;
  border-radius:6px;cursor:pointer;
  font-size:11px;font-weight:600;
  transition:all .2s;
}
.tbtn:hover{background:var(--bleu);color:var(--blanc);}
.tbtn-e{background:var(--bleu-clair);color:var(--bleu-fonce);}
.tbtn-g{background:rgba(34,197,94,.15);color:#15803d;}
.tbtn-g:hover{background:var(--green);color:var(--blanc);}
.tbtn-r{background:rgba(239,68,68,.15);color:#b91c1c;}
.tbtn-r:hover{background:var(--red);color:var(--blanc);}
.tbtn-d{background:rgba(239,68,68,.15);color:#b91c1c;}
.tbtn-d:hover{background:var(--red);color:var(--blanc);}

/* Stat Cards */
.stat-card{
  background:var(--blanc);
  border:1px solid var(--border);
  border-radius:12px;padding:20px;
  text-align:center;
  transition:all .25s;
}
.stat-card:hover{border-color:var(--bleu);box-shadow:var(--shadow);}
.stat-card-ico{font-size:28px;margin-bottom:8px;}
.stat-card-lbl{font-size:11px;color:var(--texte-gris);text-transform:uppercase;letter-spacing:1.5px;font-weight:600;margin-bottom:6px;}
.stat-card-val{font-family:'Fraunces',serif;font-size:26px;color:var(--bleu-fonce);font-weight:600;}

/* Status badges */
.b-att{background:rgba(245,208,40,.2);color:#92580d;padding:4px 8px;border-radius:6px;font-size:10px;font-weight:700;}
.b-conf{background:rgba(34,197,94,.15);color:#15803d;padding:4px 8px;border-radius:6px;font-size:10px;font-weight:700;}
.b-ref{background:rgba(239,68,68,.15);color:#b91c1c;padding:4px 8px;border-radius:6px;font-size:10px;font-weight:700;}
.b-pay{background:var(--bleu-clair);color:var(--bleu-fonce);padding:4px 8px;border-radius:6px;font-size:10px;font-weight:700;}
.b-vente{background:var(--jaune);color:var(--texte);padding:3px 8px;border-radius:5px;font-size:10px;font-weight:700;}
.b-loc{background:var(--bleu);color:var(--blanc);padding:3px 8px;border-radius:5px;font-size:10px;font-weight:700;}

/* Upload zone */
.upload-zone{
  background:var(--creme);
  border:2px dashed var(--bleu-pastel);
  border-radius:12px;
  padding:30px;text-align:center;
  cursor:pointer;color:var(--bleu);
  transition:all .2s;position:relative;
}
.upload-zone:hover{border-color:var(--bleu);background:var(--bleu-clair);}
.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.prev-wrap{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.prev-item{
  position:relative;width:80px;height:60px;
  border-radius:8px;overflow:hidden;
  border:1px solid var(--border);
}
.prev-item img{width:100%;height:100%;object-fit:cover;}
.prev-rm{
  position:absolute;top:3px;right:3px;
  background:var(--red);color:#fff;
  border:none;width:20px;height:20px;
  border-radius:50%;cursor:pointer;
  font-size:11px;
  display:flex;align-items:center;justify-content:center;
}

/* Dates list */
.date-item{
  background:var(--blanc);
  border:1px solid var(--border);
  border-radius:8px;
  padding:10px 14px;
  display:flex;align-items:center;justify-content:space-between;
  font-size:13px;color:var(--texte);
  margin-bottom:8px;
}
.blk-calendar{
  background:var(--creme);
  border:1px solid var(--border);
  border-radius:12px;padding:22px;
}

/* ── RESPONSIVE ── */
@media (max-width:1024px){
  .ap-grid{grid-template-columns:1fr;}
  .ct-grid{grid-template-columns:1fr;}
  .ft-grid{grid-template-columns:1fr 1fr;}
  #main-nav{padding:14px 24px;}
  .nav-links{display:none;}
  .nav-links.open{
    display:flex;flex-direction:column;
    position:absolute;top:80px;left:0;right:0;
    background:var(--blanc);
    border-bottom:1px solid var(--border);
    padding:18px 24px;gap:6px;
    box-shadow:var(--shadow);
  }
  .hamburger{display:flex;}
}
@media (max-width:640px){
  section{padding:70px 20px;}
  .hero{padding:100px 20px 100px;}
  .hero-stats{position:relative;bottom:auto;left:auto;transform:none;justify-content:center;margin-top:40px;gap:30px;}
  .stat-num{font-size:28px;}
  .apt-grid,.biens-grid{grid-template-columns:1fr;gap:20px;}
  .ap-cards{grid-template-columns:1fr;}
  .ft-grid{grid-template-columns:1fr;gap:32px;}
  .fg{grid-template-columns:1fr;}
  .modal-bd{padding:22px;}
  .modal-hd{padding:24px 22px 18px;}
  .ct-form{padding:24px;}
  .wa-fab{width:54px;height:54px;bottom:18px;left:18px;}
  .wa-fab svg{width:26px;height:26px;}
  .wa-fab-label{display:none;}
  .success-actions{flex-direction:column;}
  .success-actions .btn{width:100%;}
  .adm-side{width:200px;}
  .adm-content{padding:20px;}
  /* ── FIX MOBILE LOGO ── */
@media (max-width:1024px){
  #main-nav{padding:8px 20px !important;min-height:70px !important;}
  #nav-logo-img{height:50px !important;}
  #nav-logo-img img,#nav-logo-img svg{height:50px !important;max-width:50px !important;}
  .nav-logo-text .brand{font-size:16px !important;}
  .nav-logo-text .sub{font-size:7px !important;letter-spacing:2px !important;}
}
@media (max-width:640px){
  .hero{padding:90px 16px 40px !important;text-align:center;}
  .hero h1{font-size:42px !important;}
  .hero-sub{font-size:14px !important;}
  .hero-stats{position:relative !important;bottom:auto !important;left:auto !important;transform:none !important;margin-top:30px !important;gap:20px !important;flex-wrap:wrap;justify-content:center;}
  .hero-btns{flex-direction:column;align-items:center;}
  .hero-btns .btn{width:100%;max-width:300px;}
  #nav-logo-img,#nav-logo-img img,#nav-logo-img svg{height:42px !important;max-width:42px !important;}
  .nav-logo-text .brand{font-size:14px !important;}
}
/* ════════════════════════════════════════
   ANIMATIONS — EFFET #1 : CARDS 3D HOVER
   ════════════════════════════════════════ */
.apt-card,.bien-card{
  position:relative;
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s ease,border-color .3s ease!important;
}
.apt-card:hover,.bien-card:hover{
  transform:translateY(-10px) scale(1.01)!important;
  box-shadow:0 22px 50px -10px rgba(91,157,200,.28),0 8px 20px -8px rgba(245,208,40,.18)!important;
  border-color:var(--jaune)!important;
}
.apt-photos img{
  transition:transform .6s cubic-bezier(.2,.8,.2,1)!important;
}
.bien-photo-bg{
  transition:transform .6s cubic-bezier(.2,.8,.2,1)!important;
}
.apt-card:hover .apt-photos img{
  transform:scale(1.06)!important;
}
.bien-card:hover .bien-photo-bg{
  transform:scale(1.06)!important;
}
/* ════════════════════════════════════════
   ANIMATIONS — EFFET #2 : APPARITION AU SCROLL
   ════════════════════════════════════════ */
.reveal{
  opacity:0;
  transform:translateY(40px);
  transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1);
}
.reveal.visible{
  opacity:1;
  transform:translateY(0);
}
.reveal-delay-1{transition-delay:.1s;}
.reveal-delay-2{transition-delay:.2s;}
.reveal-delay-3{transition-delay:.3s;}
.reveal-delay-4{transition-delay:.4s;}
/* ════════════════════════════════════════
   ANIMATIONS — EFFET RIPPLE BOUTONS
   ════════════════════════════════════════ */
.btn{
  position:relative !important;
  overflow:hidden !important;
}
.btn::after{
  content:'' !important;
  position:absolute !important;
  top:50% !important;
  left:50% !important;
  width:0;
  height:0;
  border-radius:50%;
  background:rgba(255,255,255,.6);
  transform:translate(-50%,-50%);
  pointer-events:none;
  opacity:0;
  transition:width .6s ease-out, height .6s ease-out, opacity .8s ease-out;
}
.btn:active::after{
  width:500px;
  height:500px;
  opacity:1;
  transition:width 0s, height 0s, opacity 0s;
}
.btn-outline:active::after,
.btn-outline-gold:active::after{
  background:rgba(91,157,200,.5);
}
.btn:active{
  transform:translateY(1px) scale(.98) !important;
}
/* ════════════════════════════════════════
   ANIMATIONS — EFFET #4 : PHOTOS KEN BURNS
   ════════════════════════════════════════ */
.apt-photos,.bien-photo{
  position:relative;
  overflow:hidden;
}
.apt-photos img,.bien-photo-bg{
  transition:transform 1s cubic-bezier(.2,.8,.2,1) !important;
  will-change:transform;
}
.apt-card:hover .apt-photos img{
  transform:scale(1.08) !important;
}
.bien-card:hover .bien-photo-bg{
  transform:scale(1.08) !important;
}
/* Brillance qui traverse la photo */
.apt-photos::after,.bien-photo::after{
  content:'';
  position:absolute;
  top:0;
  left:-100%;
  width:60%;
  height:100%;
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(255,255,255,.18) 50%,
    transparent 100%);
  transition:left .8s ease;
  pointer-events:none;
  z-index:3;
  transform:skewX(-15deg);
}
.apt-card:hover .apt-photos::after,
.bien-card:hover .bien-photo::after{
  left:120%;
}
}


/* ===== Modale Détails bien ===== */
.bm-name{ font-family:'Fraunces',serif; font-size:24px; font-weight:600; color:var(--bleu-fonce); }
.bm-loc{ color:var(--texte-gris); font-size:14px; margin-top:2px; }
.bm-main-img{ width:100%; height:100%; object-fit:cover; display:block; }
.bm-thumb{ width:74px; height:56px; object-fit:cover; border-radius:8px; cursor:pointer; flex:0 0 auto; opacity:.6; border:2px solid transparent; transition:.15s; }
.bm-thumb.on, .bm-thumb:hover{ opacity:1; border-color:var(--bleu); }
.bm-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.bm-prix{ font-family:'Fraunces',serif; font-size:22px; font-weight:600; color:var(--bleu); }
.bm-specs{ display:flex; gap:8px; flex-wrap:wrap; }
.bm-chip{ background:var(--bleu-clair); color:var(--bleu-fonce); font-size:13px; font-weight:500; padding:5px 12px; border-radius:20px; }
.bm-chip.ghost{ background:transparent; border:1px solid var(--border-bleu); color:var(--texte-gris); }
.bm-desc{ color:var(--texte); line-height:1.65; font-size:15px; white-space:pre-line; margin-bottom:18px; }
.bm-equip{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px; }
.bm-equip-t{ flex:1 0 100%; font-weight:600; color:var(--bleu-fonce); margin-bottom:4px; }
.bm-form-title{ font-family:'Fraunces',serif; font-size:18px; font-weight:600; color:var(--bleu-fonce); margin-bottom:14px; }
.bm-or{ text-align:center; position:relative; margin:18px 0 14px; color:var(--gris-clair); }
.bm-or::before{ content:''; position:absolute; top:50%; left:0; right:0; height:1px; background:var(--border); }
.bm-or span{ position:relative; background:var(--blanc); padding:0 14px; font-size:13px; }
.btn-wa{ background:var(--green); color:#fff; }
.btn-wa:hover{ filter:brightness(.95); }
@media (max-width:640px){
  #bien-modal-bg .modal-hd{ padding:22px 20px 16px; }
  #bien-modal-bg .modal-bd{ padding:20px 20px 28px; }
  #bien-modal-bg .fg{ grid-template-columns:1fr; }
  #bien-modal-bg .gal-main{ height:210px; }
  #bien-modal-bg .bm-name{ font-size:20px; }
}

/* ===== Section Avis — Ils nous font confiance ===== */
.avis-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; max-width:980px; margin:0 auto; }
.avis-pillar{ background:var(--blanc); border:0.5px solid var(--border); border-radius:0 0 16px 16px; padding:22px 22px 24px; }
.avis-phead{ margin-bottom:14px; }
.avis-ptitle{ font-family:'Fraunces',Georgia,serif; font-size:23px; font-weight:600; color:var(--bleu-fonce); }
.avis-psub{ font-size:13px; color:var(--texte-gris); margin-top:2px; }
.avis-badge{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; padding:6px 14px; border-radius:22px; margin-bottom:16px; }
.avis-badge-jaune{ background:var(--jaune-clair); color:#7a5c00; }
.avis-badge-bleu{ background:var(--bleu-clair); color:var(--bleu-fonce); }
.avis-shots{ display:flex; flex-direction:column; gap:12px; margin-bottom:18px; }
.avis-shot{ position:relative; margin:0; background:#eceae2; border-radius:12px; padding:7px; cursor:zoom-in; overflow:hidden; transition:transform .2s; }
.avis-shot:hover{ transform:translateY(-2px); }
.avis-shot img{ display:block; width:100%; border-radius:8px; }
.avis-zoom{ position:absolute; top:14px; right:14px; width:28px; height:28px; border-radius:8px; background:rgba(31,41,55,.6); color:#fff; display:flex; align-items:center; justify-content:center; font-size:14px; }
.avis-shot figcaption{ font-size:11px; color:var(--texte-gris); text-align:center; padding:7px 4px 2px; }
.avis-cards{ display:flex; flex-direction:column; gap:12px; margin-bottom:18px; }
.avis-card{ background:var(--creme); border:0.5px solid var(--border); border-radius:12px; padding:16px 18px; }
.avis-quote{ font-size:14px; line-height:1.6; color:var(--texte); font-style:italic; }
.avis-author{ font-size:13px; font-weight:600; color:var(--bleu-fonce); margin-top:10px; }
.avis-cta{ display:block; text-align:center; text-decoration:none; font-size:14px; font-weight:600; padding:13px 0; border-radius:10px; transition:filter .2s; }
.avis-cta-bleu{ background:var(--bleu-fonce); color:#fff; }
.avis-cta-jaune{ background:var(--jaune); color:#5a4500; }
.avis-cta:hover{ filter:brightness(.95); }
.avis-lightbox{ display:none; position:fixed; inset:0; z-index:9500; background:rgba(15,20,30,.92); align-items:center; justify-content:center; padding:30px; cursor:zoom-out; }
.avis-lightbox.open{ display:flex; }
.avis-lightbox img{ max-width:100%; max-height:90vh; border-radius:10px; }
.avis-lightbox-x{ position:absolute; top:18px; right:24px; color:#fff; font-size:34px; line-height:1; cursor:pointer; }
@media (max-width:640px){
  .avis-grid{ grid-template-columns:1fr; gap:16px; }
  .avis-ptitle{ font-size:20px; }
}

/* ===== Pavé service conciergerie (cliquable) ===== */
.srv-card-link{ display:block; text-decoration:none; color:inherit; cursor:pointer; transition:transform .2s ease, box-shadow .2s ease; }
.srv-card-link:hover{ transform:translateY(-4px); box-shadow:0 12px 28px rgba(44,90,127,.12); }
.srv-more{ margin-top:12px; font-size:13px; font-weight:600; color:var(--bleu); }

/* ===== HERO dynamique (photos Maroc) ===== */
.hero-photo{ position:relative; min-height:100vh; min-height:100svh; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; background:var(--bleu-fonce); overflow:hidden; color:#fff; }
.hero-photo .hero-bg, .hero-photo .hero-grid, .hero-photo .hero-ring{ display:none !important; }
.hero-photo .hero-slides{ position:absolute; inset:0; z-index:0; }
.hero-photo .hero-slide{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.8s ease; animation:heroKen 34s ease-in-out infinite alternate; will-change:opacity, transform; }
.hero-photo .hero-slide.on{ opacity:1; }
@keyframes heroKen{ from{ transform:scale(1.02); } to{ transform:scale(1.11); } }
.hero-photo .hero-overlay{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(18,40,64,.38) 0%, rgba(22,48,76,.5) 52%, rgba(18,42,68,.78) 100%); }
.hero-photo .hero-content, .hero-photo .hero-stats{ position:relative; z-index:2; }
.hero-photo .hero-content{ max-width:780px; padding:0 24px; animation:heroUp 1s cubic-bezier(.22,1,.36,1) both; }
@keyframes heroUp{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
.hero-photo .hero-eyebrow{ color:rgba(255,255,255,.78); }
.hero-photo h1{ color:#fff; }
.hero-photo h1 em{ color:var(--bleu-pastel); }
.hero-photo .hero-sub{ color:rgba(255,255,255,.85); }
.hero-photo .hero-btns{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.hero-photo .btn-outline{ color:#fff; border-color:rgba(255,255,255,.55); background:transparent; }
.hero-photo .btn-outline:hover{ background:rgba(255,255,255,.14); border-color:#fff; color:#fff; }
.btn-confier{ background:transparent; color:var(--jaune); border:1.5px solid var(--jaune); transition:all .3s ease; }
.btn-confier:hover{ background:var(--jaune); color:var(--bleu-fonce); border-color:var(--jaune); }
.hero-photo .hero-stats{ margin-top:44px; display:flex; gap:0; justify-content:center; }
.hero-photo .hero-stats .stat{ padding:0 30px; border-right:1px solid rgba(255,255,255,.25); }
.hero-photo .hero-stats .stat:last-child{ border-right:none; }
.hero-photo .stat-num{ color:#fff; }
.hero-photo .stat-label{ color:rgba(255,255,255,.7); }
.hero-photo .scroll-cue{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:2; width:1px; height:42px; background:rgba(255,255,255,.4); animation:scrollCue 2s ease-in-out infinite; }
@keyframes scrollCue{ 0%,100%{ opacity:.3; height:30px; } 50%{ opacity:.8; height:46px; } }
@media (prefers-reduced-motion:reduce){ .hero-photo .hero-slide{ animation:none; } .hero-photo .hero-content{ animation:none; } .hero-photo .scroll-cue{ animation:none; } }
@media (max-width:640px){ .hero-photo .hero-stats .stat{ padding:0 16px; } .hero-photo .hero-btns .btn{ flex:1 1 100%; } }

.avis-card-img{ width:100%; max-height:160px; object-fit:cover; border-radius:8px; margin-bottom:12px; }

/* ===== Photos cartes appartements — mobile : agrandies + affichées en entier ===== */
@media (max-width:640px){
  .apt-photos{ height:auto !important; aspect-ratio:4/3; touch-action:pan-y; }
  .apt-slide img{ object-fit:contain !important; background:var(--bleu-clair); }
  .apt-arr{ width:42px; height:42px; font-size:20px; opacity:.95; }
}
