
:root{
  --lux-black:#0f0d0b;
  --lux-black-soft:#171310;
  --lux-gold:#caa86a;
  --lux-gold-soft:#e3c894;
  --lux-beige:#f6efe5;
  --lux-beige-2:#fbf7f1;
  --lux-text:#1a1713;
  --lux-muted:#6f6558;
  --lux-border:rgba(202,168,106,.22);
  --lux-shadow:0 18px 50px rgba(17,13,9,.10);
  --lux-radius:24px;
}
html{scroll-behavior:smooth;}
body{
  background:linear-gradient(180deg,#f8f3ec 0%, #f6efe5 38%, #f8f4ee 100%) !important;
  color:var(--lux-text) !important;
}
.site-header{
  position:sticky; top:0; z-index:60;
  background:linear-gradient(180deg, rgba(10,8,7,.96), rgba(15,13,11,.94)) !important;
  border-bottom:1px solid rgba(202,168,106,.18) !important;
  backdrop-filter: blur(14px);
  box-shadow:0 10px 30px rgba(0,0,0,.22) !important;
}
.desktop-nav a:hover,.desktop-nav a[aria-current="page"]{color:var(--lux-gold-soft)!important}
.menu-btn,.drawer-close,.mobile-drawer,.drawer-link{
  box-shadow:none;
}
main > section:not(#form-section):not(.hero):not(.intro-bandeau):not(.google-review-showcase):not(.luxury-trust-strip){
  max-width:1160px;
  margin:0 auto;
}
main > section.hero{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg, rgba(15,13,11,.98), rgba(39,31,23,.95));
  color:#fff !important;
  border:1px solid rgba(202,168,106,.18);
  border-radius:0 0 32px 32px;
  box-shadow:0 18px 48px rgba(9,7,5,.22);
  margin-bottom:26px;
}
main > section.hero::after{
  content:"";
  position:absolute; inset:auto -10% -70px auto; width:280px; height:280px;
  background:radial-gradient(circle, rgba(202,168,106,.22) 0%, rgba(202,168,106,0) 70%);
  pointer-events:none;
}
main > section.hero > h1,
main > section.hero .hero-text h1{
  color:#fff !important;
  text-wrap:balance;
  letter-spacing:-.02em;
}
main > section.hero > p,
main > section.hero .hero-text p{color:rgba(255,255,255,.82)!important}
.hero .btn,.google-review-showcase .btn,
.service-map-card .btn,
.service-badges-panel .btn{
  background:linear-gradient(135deg,var(--lux-gold),var(--lux-gold-soft)) !important;
  color:#1a1713 !important;
  border:none !important;
  box-shadow:0 16px 36px rgba(202,168,106,.28) !important;
}
.hero .btn.btn-outline,
.google-review-showcase .btn.btn-outline,
.service-map-card .btn.btn-outline,
.service-badges-panel .btn.btn-outline{
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:none!important;
}
.intro-bandeau{
  background:transparent !important;
  padding-top:24px !important;
  padding-bottom:18px !important;
}
.intro-bandeau__box{
  background:linear-gradient(180deg,#fffdf9,#fbf6ee)!important;
  border:1px solid var(--lux-border)!important;
  box-shadow:var(--lux-shadow)!important;
}
.intro-bandeau__title{color:var(--lux-text)!important}
.intro-bandeau__title span{color:var(--lux-muted)!important}
.luxury-trust-strip{
  max-width:1160px;
  margin:0 auto 26px;
  padding:0 16px 10px;
}
.luxury-trust-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.luxury-trust-item{
  background:linear-gradient(180deg,#fffaf3,#f9f1e3);
  border:1px solid var(--lux-border);
  border-radius:22px;
  padding:18px 18px;
  box-shadow:var(--lux-shadow);
}
.luxury-trust-item strong{display:block;font-size:1rem;color:var(--lux-text);margin-bottom:4px}
.luxury-trust-item span{display:block;color:var(--lux-muted);font-size:.95rem;line-height:1.55}
.service-badges-panel,
.service-semantic-panel,
.service-map-card,
.google-review-showcase,
.luxury-surface{
  max-width:1160px;
  margin:0 auto 28px;
  padding:0 16px;
}
.service-badges-shell,
.service-semantic-shell,
.service-map-shell,
.google-review-shell{
  background:linear-gradient(180deg,#fffdf9,#fbf6ee);
  border:1px solid var(--lux-border);
  border-radius:var(--lux-radius);
  box-shadow:var(--lux-shadow);
  padding:28px;
}
.service-badges-head,
.service-semantic-head,
.service-map-head,
.google-review-head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px;
}
.service-badges-head h2,
.service-semantic-head h2,
.service-map-head h2,
.google-review-head h2{margin:0!important;text-align:left!important;color:var(--lux-text)!important}
.service-badges-head p,
.service-semantic-head p,
.service-map-head p,
.google-review-head p{margin:0;color:var(--lux-muted);max-width:760px;line-height:1.65}
.option-badges{
  display:flex; flex-wrap:wrap; gap:10px; margin-top:18px;
}
.option-badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 14px; border-radius:999px;
  background:#fff; border:1px solid var(--lux-border); color:var(--lux-text); font-weight:700;
  box-shadow:0 8px 22px rgba(21,16,11,.06);
}
.option-badge::before{content:"◆"; color:var(--lux-gold); font-size:.72rem;}
.service-map-shell{
  display:grid; grid-template-columns:1.05fr .95fr; gap:22px; align-items:center;
}
.service-map-figure{
  margin:0; border-radius:20px; overflow:hidden; border:1px solid var(--lux-border); background:#fff;
}
.service-map-figure img{display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover;}
.service-map-figure figcaption{padding:12px 14px; font-size:.92rem; color:var(--lux-muted); background:#fffaf5}
.service-map-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:18px}
.semantic-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:18px;
}
.semantic-card{
  background:#fff; border:1px solid var(--lux-border); border-radius:20px; padding:22px; box-shadow:0 10px 26px rgba(17,13,9,.05);
}
.semantic-card h3{margin-top:0; margin-bottom:10px; color:var(--lux-text)}
.semantic-card p{margin:0 0 10px; color:#332c23; line-height:1.7}
.semantic-list{margin:10px 0 0 0; padding-left:18px; color:var(--lux-muted); line-height:1.65}
main section .cards{gap:18px!important}
main section .card{
  background:linear-gradient(180deg,#fff,#fffaf3)!important;
  border:1px solid var(--lux-border)!important;
  box-shadow:0 12px 30px rgba(17,13,9,.06)!important;
  border-radius:22px!important;
}
main section .card h3{color:var(--lux-text)!important}
main section .card p{color:#3b332a!important}
.google-review-showcase .google-review-shell{
  background:linear-gradient(135deg,#0f0d0b,#1d1711);
  color:#fff;
  overflow:hidden;
  position:relative;
}
.google-review-showcase .google-review-shell::after{
  content:""; position:absolute; right:-90px; top:-70px; width:240px; height:240px;
  background:radial-gradient(circle, rgba(202,168,106,.22), rgba(202,168,106,0) 68%);
}
.google-review-head h2{color:#fff!important}
.google-review-head p{color:rgba(255,255,255,.78)!important}
.google-review-status{
  display:inline-flex; align-items:center; gap:10px; padding:10px 14px; border-radius:999px; background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.12); font-weight:700;
}
.google-review-stars{color:var(--lux-gold-soft); letter-spacing:.18em; font-size:1rem}
.google-review-carousel{position:relative; margin-top:20px; overflow:hidden;}
.google-review-track{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; transition:transform .45s ease;}
.google-review-card{
  min-height:220px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:22px; padding:22px; display:flex; flex-direction:column; justify-content:space-between; backdrop-filter:blur(12px);
}
.google-review-card small{display:block; color:rgba(255,255,255,.62); text-transform:uppercase; letter-spacing:.08em; margin-bottom:10px}
.google-review-card h3{margin:0 0 10px; color:#fff; font-size:1.15rem}
.google-review-card p{margin:0; color:rgba(255,255,255,.84); line-height:1.7}
.google-review-controls{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px}
.google-review-dots{display:flex; gap:10px}
.google-review-dot{width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.2); border:none; padding:0; cursor:pointer}
.google-review-dot.is-active{background:var(--lux-gold)}
.google-review-links{display:flex; flex-wrap:wrap; gap:12px}
.map-enhanced{
  border-radius:24px; overflow:hidden; border:1px solid var(--lux-border); box-shadow:var(--lux-shadow);
}
.map-enhanced #map{
  border-radius:24px; min-height:420px;
}
.footer-reviews{background:linear-gradient(135deg,#fffaf3,#f8efdf)!important; border:1px solid var(--lux-border)!important; border-radius:22px!important; padding:22px!important; box-shadow:var(--lux-shadow)!important}
.site-footer{background:linear-gradient(180deg,#0f0d0b,#15110d)!important; border-top:1px solid rgba(202,168,106,.22)!important}
.footer-brand h2,.site-footer a{color:#fff!important}
.site-footer small,.footer-brand p{color:rgba(255,255,255,.8)!important}
.page-visual-card{
  background:linear-gradient(180deg,#fffdf9,#fbf6ee)!important;
  border:1px solid var(--lux-border)!important;
  border-radius:28px!important;
  box-shadow:var(--lux-shadow)!important;
}
.page-visual-copy .page-visual-points span,
.page-visual-copy p{color:#3d352b!important}
@media (max-width: 980px){
  .luxury-trust-grid,.semantic-grid,.google-review-track,.service-map-shell{grid-template-columns:1fr 1fr;}
}
@media (max-width: 760px){
  .luxury-trust-grid,.semantic-grid,.service-map-shell{grid-template-columns:1fr;}
  .google-review-track{display:flex; gap:0; width:300%;}
  .google-review-card{min-width:100%; margin-right:0; border-radius:20px;}
  .service-badges-shell,.service-semantic-shell,.service-map-shell,.google-review-shell{padding:22px 18px;}
  .google-review-controls,.service-badges-head,.service-semantic-head,.service-map-head,.google-review-head{display:block}
  .google-review-links{margin-top:14px}
  .service-map-figure img{aspect-ratio: 4/3;}
}


/* === V13 fix avis Google + footer mobile/tablette === */
.google-review-showcase--bottom{padding-bottom:8px;}
.google-review-showcase--bottom .google-review-shell{margin-bottom:0;}
.google-review-card, .google-review-shell, .google-review-track, .google-review-carousel{box-sizing:border-box;}
.google-review-card .btn{display:inline-flex; align-items:center; justify-content:center; text-align:center;}
.google-review-controls .btn{display:inline-flex; align-items:center; justify-content:center;}

@media (max-width: 980px){
  .google-review-showcase{padding:0 12px;}
  .google-review-track{display:flex !important; width:100% !important; gap:0 !important;}
  .google-review-card{flex:0 0 100% !important; min-width:100% !important; width:100% !important; margin-right:0 !important;}
  .google-review-controls{flex-direction:column; align-items:flex-start;}
}

@media (max-width: 760px){
  .google-review-shell{padding:20px 16px !important; border-radius:20px !important;}
  .google-review-head h2{font-size:clamp(1.7rem,7vw,2.2rem) !important; line-height:1.05 !important;}
  .google-review-head p{font-size:1rem !important; line-height:1.6 !important;}
  .google-review-status{font-size:.92rem !important; padding:9px 12px !important;}
  .google-review-card{padding:18px !important; min-height:auto !important;}
  .google-review-card h3{font-size:1.25rem !important; line-height:1.15 !important;}
  .google-review-card p{font-size:1rem !important; line-height:1.65 !important;}
  .google-review-links, .google-review-controls .google-review-links{width:100%;}
  .google-review-links .btn, .google-review-controls .btn{width:100%;}
  .google-review-dots{width:100%; justify-content:center; margin-bottom:4px;}
}

.site-footer .footer-nav{line-height:2;}
.site-footer .footer-nav a{display:inline-block;}


/* === V15 real Google review carousel === */
.google-review-showcase{padding:24px 16px 8px; background:linear-gradient(180deg,#fffaf2 0%,#f6efe2 100%); border-top:1px solid rgba(202,168,106,.18);}
.google-review-showcase .google-review-shell{max-width:1160px; margin:0 auto;}
.google-review-summary{display:grid; grid-template-columns:280px 1fr; gap:18px; align-items:center; margin:12px 0 20px;}
.google-review-score{background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:22px; padding:20px; text-align:center;}
.google-review-score strong{display:block; font-size:3rem; line-height:1; color:#fff; margin-bottom:10px;}
.google-review-stars--large{display:block; font-size:1.35rem; letter-spacing:.14em; margin-bottom:8px;}
.google-review-score small,.google-review-summary-copy p{color:rgba(255,255,255,.78); margin:0; line-height:1.65;}
.google-review-carousel{overflow:hidden; border-radius:22px;}
.google-review-track{display:flex !important; width:100% !important; gap:0 !important; will-change:transform;}
.google-review-card{flex:0 0 100% !important; min-width:100% !important; width:100% !important; min-height:260px; box-sizing:border-box;}
.google-review-card__top{display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; margin-bottom:16px;}
.google-review-avatar{width:54px; height:54px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(135deg,#4b83ea,#3fbf7f); color:#fff; font-weight:800; font-size:1.3rem;}
.google-review-card h3{margin:0 0 4px; font-size:1.45rem;}
.google-review-card p{font-size:1.14rem; line-height:1.8;}
.google-review-card small{margin-top:14px; font-size:.95rem;}
.google-review-badge{width:42px; height:42px; border-radius:50%; display:grid; place-items:center; font-weight:800; color:#fff; background:linear-gradient(135deg,#4285f4,#34a853); box-shadow:0 10px 20px rgba(0,0,0,.18);}
.google-review-links .btn{min-width:210px;}
.google-review-dots{flex-wrap:wrap;}
.google-review-dot{width:12px; height:12px; background:rgba(255,255,255,.22);}
.google-review-dot.is-active{transform:scale(1.08);}
.site-footer{padding-bottom:138px !important;}

@media (max-width: 980px){
  .google-review-summary{grid-template-columns:1fr;}
  .google-review-card{min-height:unset;}
}
@media (max-width: 760px){
  .google-review-showcase{padding:20px 12px 8px;}
  .google-review-head h2{font-size:clamp(1.8rem,8vw,2.35rem)!important;}
  .google-review-summary{gap:14px; margin:10px 0 16px;}
  .google-review-score strong{font-size:2.4rem;}
  .google-review-card{padding:18px!important; border-radius:20px!important;}
  .google-review-card__top{grid-template-columns:48px 1fr 36px; gap:12px;}
  .google-review-avatar{width:48px; height:48px; font-size:1.15rem;}
  .google-review-badge{width:36px; height:36px; font-size:1rem;}
  .google-review-card h3{font-size:1.18rem!important;}
  .google-review-card p{font-size:1rem!important; line-height:1.65!important;}
  .google-review-controls{gap:12px!important;}
  .google-review-links{width:100%;}
  .google-review-links .btn{width:100%; min-width:0;}
  .google-review-dots{justify-content:center; width:100%;}
}


/* === V16 fix: vrai carrousel avis Google sur desktop / tablette / mobile === */
.google-review-showcase{padding:24px 16px 10px !important;}
.google-review-showcase .google-review-shell{max-width:1160px; margin:0 auto; overflow:hidden;}
.google-review-head h2{word-break:normal; overflow-wrap:anywhere;}
.google-review-summary{display:grid; grid-template-columns:minmax(0,280px) minmax(0,1fr); gap:18px; align-items:center; margin:12px 0 20px;}
.google-review-carousel{position:relative; overflow:hidden !important; width:100%; border-radius:22px;}
.google-review-track{display:flex !important; flex-wrap:nowrap !important; gap:0 !important; width:auto !important; max-width:none !important; transition:transform .45s ease; will-change:transform;}
.google-review-card{flex:0 0 100% !important; width:100% !important; min-width:100% !important; max-width:100% !important; margin:0 !important; box-sizing:border-box; min-height:320px;}
.google-review-card__top{display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:center;}
.google-review-card h3,.google-review-card p,.google-review-card small{word-break:break-word; overflow-wrap:anywhere;}
.google-review-controls{display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-top:18px;}
.google-review-links{display:flex; gap:12px; flex-wrap:wrap; justify-content:flex-end;}
.google-review-links .btn{min-width:210px; text-align:center; justify-content:center;}
.google-review-dots{display:flex; gap:10px; align-items:center; flex-wrap:wrap;}
.google-review-dot{width:12px; height:12px; border-radius:50%; border:none; cursor:pointer; background:rgba(255,255,255,.25);}
.google-review-dot.is-active{background:var(--lux-gold); transform:scale(1.08);}
.google-review-showcase + footer.site-footer{margin-top:0 !important;}
footer.site-footer{padding-bottom:92px;}

@media (max-width: 980px){
  .google-review-summary{grid-template-columns:1fr; gap:14px;}
  .google-review-card{min-height:unset;}
}

@media (max-width: 768px){
  .google-review-showcase{padding:18px 12px 8px !important;}
  .google-review-showcase .google-review-shell{padding:20px 16px !important; border-radius:20px !important;}
  .google-review-head h2{font-size:clamp(1.75rem,8vw,2.35rem) !important; line-height:1.08 !important;}
  .google-review-head p{font-size:1rem !important; line-height:1.6 !important;}
  .google-review-status{font-size:.92rem !important; padding:9px 12px !important;}
  .google-review-card{padding:18px !important; border-radius:20px !important;}
  .google-review-card h3{font-size:1.25rem !important; line-height:1.12 !important;}
  .google-review-card p{font-size:1rem !important; line-height:1.65 !important;}
  .google-review-controls{flex-direction:column; align-items:stretch;}
  .google-review-links{width:100%; justify-content:stretch;}
  .google-review-links .btn{width:100%; min-width:0;}
  .google-review-dots{justify-content:center; width:100%;}
}
