/* ACCUEIL — MS3 CARS DETAILING */

.home-page{
  position:relative;
  z-index:1;
}

/* HERO */

.home-hero{
  position:relative;
  z-index:1;
  padding:3rem 0 2.2rem;
}

.home-hero-grid{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  gap:1.2rem;
  align-items:stretch;
  min-height:560px;
  border-radius:32px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.07);
  background:
    radial-gradient(circle at top left,rgba(212,175,55,.18),transparent 34%),
    radial-gradient(circle at bottom right,rgba(212,175,55,.08),transparent 30%),
    linear-gradient(135deg,rgba(10,10,16,.98),rgba(5,5,7,.96));
  box-shadow:0 28px 80px rgba(0,0,0,.65);
}

.home-hero-grid::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(212,175,55,.10),transparent 22%),
    repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 1px,transparent 1px 18px);
  opacity:.8;
  pointer-events:none;
}

.home-hero-copy,
.home-hero-visual{
  position:relative;
  z-index:1;
}

.home-hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:3rem 2.5rem;
}

.hero-badge,
.section-kicker{
  display:inline-flex;
  width:fit-content;
  padding:.55rem 1rem;
  border-radius:999px;
  border:1px solid rgba(212,175,55,.35);
  background:rgba(212,175,55,.08);
  color:#fff;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
  margin-bottom:1rem;
}

.hero-title{
  font-size:clamp(2.45rem,5vw,4.9rem);
  font-weight:900;
  line-height:.98;
  letter-spacing:-.055em;
  max-width:900px;
  margin-bottom:1.15rem;
}

.hero-text{
  font-size:1.04rem;
  line-height:1.85;
  color:#b8b8bf;
  max-width:760px;
}

.hero-actions,
.contact-short-actions{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  margin-top:2rem;
}

.hero-trust{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.8rem;
  margin-top:2rem;
  max-width:760px;
}

.hero-trust div{
  padding:1rem;
  border-radius:18px;
  background:rgba(10,10,16,.82);
  border:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(10px);
}

.hero-trust strong{
  display:block;
  color:#fff;
  margin-bottom:.2rem;
}

.hero-trust span{
  color:var(--muted);
  font-size:.84rem;
  line-height:1.45;
}

.home-hero-visual{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem 2rem 2rem 0;
}

.hero-photo-main{
  position:relative;
  width:100%;
  max-width:540px;
  height:470px;
  border-radius:28px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 30px 80px rgba(0,0,0,.55);
}

.hero-photo-main::before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgba(212,175,55,.45);
  border-radius:22px;
  z-index:2;
  pointer-events:none;
}

.hero-photo-main img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:brightness(.78) contrast(1.08);
  transform:scale(1.02);
}

.hero-photo-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  background:#101015;
  color:var(--accent);
  font-weight:900;
  font-size:2rem;
}

.hero-floating-card{
  position:absolute;
  min-width:185px;
  padding:1rem;
  border-radius:18px;
  background:rgba(8,8,12,.86);
  border:1px solid rgba(212,175,55,.28);
  backdrop-filter:blur(14px);
  box-shadow:0 18px 48px rgba(0,0,0,.38);
}

.hero-floating-card.top{
  top:78px;
  right:28px;
}

.hero-floating-card.bottom{
  bottom:82px;
  left:8px;
}

.hero-floating-card strong{
  display:block;
  color:#fff;
  margin-bottom:.25rem;
}

.hero-floating-card span{
  display:block;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.45;
}

/* SECTIONS */

.home-section{
  padding:2.7rem 0;
  position:relative;
  z-index:1;
}

.home-section.compact{
  padding-top:1rem;
}

.section-heading{
  display:grid;
  gap:.75rem;
  margin-bottom:1.7rem;
}

.section-heading.center{
  text-align:center;
  justify-items:center;
}

.section-heading.split{
  grid-template-columns:1fr auto;
  align-items:end;
  gap:1.4rem;
}

.section-title{
  font-size:clamp(1.8rem,4vw,3.15rem);
  font-weight:900;
  line-height:1.05;
  letter-spacing:-.04em;
}

.section-text{
  color:var(--muted);
  line-height:1.85;
  max-width:780px;
}

.desktop-only{display:inline-flex;}
.mobile-only{display:none;}

/* SERVICES */

.services-grid.essential{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}

.service-card{
  display:block;
  min-height:235px;
  padding:1.45rem;
  border-radius:22px;
  background:rgba(10,10,16,.96);
  border:1px solid rgba(255,255,255,.07);
  box-shadow:0 20px 55px rgba(0,0,0,.38);
  transition:var(--transition);
}

.service-card.featured{
  background:
    radial-gradient(circle at top right,rgba(212,175,55,.12),transparent 36%),
    rgba(10,10,16,.96);
}

.service-card:hover{
  transform:translateY(-5px);
  border-color:rgba(212,175,55,.42);
  background:rgba(212,175,55,.06);
}

.service-card span{
  display:inline-flex;
  color:var(--accent);
  font-weight:900;
  letter-spacing:.16em;
  font-size:.78rem;
  margin-bottom:1.35rem;
}

.service-card h3{
  color:#fff;
  font-size:1.14rem;
  line-height:1.25;
  margin-bottom:.7rem;
}

.service-card p{
  color:var(--muted);
  line-height:1.7;
  font-size:.92rem;
}

/* PROOF */

.proof-card{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:1.4rem;
  align-items:center;
  padding:1.7rem;
  border-radius:26px;
  background:
    radial-gradient(circle at top right,rgba(212,175,55,.12),transparent 35%),
    rgba(10,10,16,.96);
  border:1px solid rgba(255,255,255,.07);
  box-shadow:0 20px 55px rgba(0,0,0,.38);
}

.proof-list{
  display:grid;
  grid-template-columns:1fr;
  gap:.8rem;
}

.proof-list div{
  padding:1rem;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.07);
  background:#06060b;
}

.proof-list strong{
  display:block;
  color:#fff;
  margin-bottom:.25rem;
}

.proof-list span{
  color:var(--muted);
  font-size:.9rem;
  line-height:1.6;
}

/* PREMIUM */

.premium-section{
  padding-top:1rem;
}

.premium-card{
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:1.5rem;
  align-items:center;
  padding:1.8rem;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.07);
  background:
    linear-gradient(135deg,rgba(10,10,16,.98),rgba(6,6,10,.96)),
    radial-gradient(circle at bottom left,rgba(212,175,55,.16),transparent 34%);
  box-shadow:0 20px 55px rgba(0,0,0,.38);
}

.premium-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.85rem;
}

.premium-list div{
  padding:1rem;
  border-radius:18px;
  background:#06060b;
  border:1px solid rgba(255,255,255,.07);
}

.premium-list span{
  display:inline-flex;
  width:34px;
  height:34px;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(212,175,55,.12);
  border:1px solid rgba(212,175,55,.32);
  color:var(--accent);
  font-weight:900;
  margin-bottom:.75rem;
}

.premium-list strong{
  display:block;
  color:#fff;
  margin-bottom:.35rem;
}

.premium-list p{
  color:var(--muted);
  line-height:1.65;
  font-size:.9rem;
}

/* GALERIE */

.gallery-home-section{
  padding-top:2.8rem;
}

.home-gallery-preview{
  display:grid;
  grid-template-columns:1.25fr 1fr 1fr;
  grid-auto-rows:220px;
  gap:1rem;
}

.home-gallery-item{
  position:relative;
  overflow:hidden;
  min-height:210px;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.07);
  background:#09090f;
  box-shadow:0 20px 55px rgba(0,0,0,.38);
  transition:var(--transition);
}

.home-gallery-item.large{
  grid-row:span 2;
}

.home-gallery-item:hover{
  transform:translateY(-4px);
  border-color:rgba(212,175,55,.42);
}

.home-gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:brightness(.78);
  transition:.32s ease-out;
}

.home-gallery-item:hover img{
  transform:scale(1.06);
  filter:brightness(.95);
}

.home-gallery-caption{
  position:absolute;
  inset:auto 0 0 0;
  padding:1.1rem;
  background:linear-gradient(transparent,rgba(0,0,0,.92));
}

.home-gallery-caption span{
  color:var(--accent);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.home-gallery-caption strong{
  display:block;
  color:#fff;
  font-size:1rem;
  margin-top:.35rem;
}

/* AVIS DÉFILANTS */

.reviews-home-section{
  overflow:hidden;
}

.reviews-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1.2rem;
  margin-bottom:1.6rem;
}

.reviews-google-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.8rem 1.2rem;
  border-radius:999px;
  border:1px solid rgba(212,175,55,.4);
  background:rgba(212,175,55,.08);
  color:#fff;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  transition:.22s ease-out;
  white-space:nowrap;
}

.reviews-google-link:hover{
  background:var(--accent);
  color:#080808;
  transform:translateY(-2px);
  box-shadow:0 14px 35px rgba(212,175,55,.35);
}

.reviews-marquee{
  position:relative;
  width:100%;
  overflow:hidden;
  padding:.2rem 0 1rem;
}

.reviews-marquee::before,
.reviews-marquee::after{
  content:"";
  position:absolute;
  top:0;
  width:90px;
  height:100%;
  z-index:5;
  pointer-events:none;
}

.reviews-marquee::before{
  left:0;
  background:linear-gradient(90deg,#050506,transparent);
}

.reviews-marquee::after{
  right:0;
  background:linear-gradient(270deg,#050506,transparent);
}

.reviews-track{
  display:flex;
  gap:1rem;
  width:max-content;
  animation:reviews-scroll 90s linear infinite;
  will-change:transform;
}

.reviews-marquee:hover .reviews-track{
  animation-play-state:paused;
}

@keyframes reviews-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

.review-card{
  flex:0 0 360px;
  min-height:240px;
  display:flex;
  flex-direction:column;
  gap:.8rem;
  padding:1.25rem;
  border-radius:22px;
  background:rgba(10,10,16,.96);
  border:1px solid rgba(255,255,255,.07);
  box-shadow:0 20px 55px rgba(0,0,0,.35);
}

.review-top{
  display:flex;
  align-items:center;
  gap:.75rem;
}

.review-avatar{
  width:44px;
  height:44px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#fff3b0,#d4af37,#8a5a12);
  color:#080808;
  font-weight:900;
}

.review-name{
  color:#fff;
  font-weight:800;
}

.review-date{
  color:var(--muted);
  font-size:.82rem;
}

.review-stars{
  color:var(--accent);
  letter-spacing:.08em;
}

.review-text{
  color:#c7c7cd;
  line-height:1.7;
  font-size:.93rem;
}

/* FAQ PREVIEW */

.home-faq-preview{
  padding-top:1rem;
}

.home-faq-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}

.home-faq-item{
  border:1px solid rgba(255,255,255,.07);
  border-radius:20px;
  background:rgba(10,10,16,.96);
  overflow:hidden;
  box-shadow:0 18px 44px rgba(0,0,0,.28);
}

.home-faq-item summary{
  list-style:none;
  cursor:pointer;
  position:relative;
  padding:1rem 2.7rem 1rem 1rem;
  color:#fff;
  font-weight:800;
  line-height:1.45;
}

.home-faq-item summary::-webkit-details-marker{
  display:none;
}

.home-faq-item summary::after{
  content:"+";
  position:absolute;
  right:1rem;
  top:50%;
  transform:translateY(-50%);
  color:var(--accent);
  font-size:1.25rem;
  font-weight:900;
}

.home-faq-item[open] summary::after{
  content:"−";
}

.home-faq-item p{
  padding:0 1rem 1rem;
  color:var(--muted);
  line-height:1.7;
  font-size:.92rem;
}

.home-faq-action{
  display:flex;
  justify-content:center;
  margin-top:1.3rem;
}

/* CONTACT */

.contact-short-section{
  padding-bottom:3.2rem;
}

.contact-short-card{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:1.4rem;
  align-items:center;
  padding:1.7rem;
  border-radius:26px;
  background:
    radial-gradient(circle at top right,rgba(212,175,55,.14),transparent 30%),
    rgba(10,10,16,.96);
  border:1px solid rgba(255,255,255,.07);
  box-shadow:0 20px 55px rgba(0,0,0,.38);
}

.contact-info-box{
  display:grid;
  gap:.75rem;
  padding:1.2rem;
  border-radius:20px;
  background:#06060b;
  border:1px solid rgba(255,255,255,.07);
}

.contact-info-box strong{
  color:#fff;
  font-size:1.05rem;
}

.contact-info-box span{
  color:var(--muted);
  font-size:.94rem;
}

/* RESPONSIVE */

@media(max-width:1180px){
  .home-hero-grid{
    grid-template-columns:1fr;
    min-height:auto;
  }

  .home-hero-copy{
    padding:2.2rem;
  }

  .home-hero-visual{
    padding:0 2rem 2rem;
  }

  .hero-photo-main{
    max-width:100%;
    height:420px;
  }

  .hero-floating-card.top{
    right:42px;
  }

  .hero-floating-card.bottom{
    left:42px;
  }

  .services-grid.essential,
  .premium-list,
  .home-faq-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .premium-card{
    grid-template-columns:1fr;
  }
}

@media(max-width:900px){
  .home-hero{
    padding:1.4rem 0 1rem;
  }

  .home-hero-copy{
    padding:1.6rem;
  }

  .home-hero-visual{
    padding:0 1.2rem 1.2rem;
  }

  .hero-title{
    font-size:clamp(2.05rem,8vw,3.2rem);
  }

  .hero-text,
  .section-text{
    font-size:.95rem;
    line-height:1.75;
  }

  .hero-trust,
  .services-grid.essential,
  .proof-card,
  .premium-list,
  .home-faq-grid,
  .contact-short-card{
    grid-template-columns:1fr;
  }

  .section-heading.split{
    grid-template-columns:1fr;
    align-items:start;
  }

  .desktop-only{
    display:none;
  }

  .mobile-only{
    display:block;
  }

  .home-gallery-preview{
    grid-template-columns:1fr 1fr;
    grid-auto-rows:210px;
  }

  .home-gallery-item.large{
    grid-column:span 2;
    grid-row:span 1;
  }
}

@media(max-width:620px){
  .home-hero-grid{
    border-radius:22px;
  }

  .home-hero-copy{
    padding:1.25rem;
  }

  .home-hero-visual{
    display:none;
  }

  .hero-actions,
  .contact-short-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:.75rem;
  }

  .hero-trust{
    margin-top:1.2rem;
  }

  .home-section{
    padding:1.7rem 0;
  }

  .service-card,
  .proof-card,
  .premium-card,
  .contact-short-card{
    border-radius:18px;
    padding:1.15rem;
  }

  .home-gallery-preview{
    grid-template-columns:1fr;
    grid-auto-rows:220px;
  }

  .home-gallery-item.large{
    grid-column:auto;
  }

  .reviews-heading{
    display:grid;
    align-items:start;
  }

  .review-card{
    flex-basis:285px;
    min-height:260px;
  }

  .reviews-marquee::before,
  .reviews-marquee::after{
    width:28px;
  }

  .hero-badge,
  .section-kicker{
    font-size:.62rem;
    letter-spacing:.09em;
    padding:.45rem .72rem;
  }

  .mobile-gallery-btn{
    margin-top:1rem;
  }
}


/* OPTIMISATION ACCUEIL V2 */

.hero-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
  max-width:560px;
  margin-top:1.35rem;
}

.hero-stats div{
  padding:.85rem .95rem;
  border-radius:18px;
  border:1px solid rgba(212,175,55,.24);
  background:rgba(212,175,55,.07);
}

.hero-stats strong{
  display:block;
  color:#fff;
  font-size:1.35rem;
  line-height:1;
  letter-spacing:-.04em;
}

.hero-stats span{
  display:block;
  color:#cfc9aa;
  font-size:.78rem;
  margin-top:.28rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.local-section{
  padding-top:1rem;
}

.local-card{
  display:grid;
  grid-template-columns:1fr .95fr;
  gap:1.4rem;
  align-items:center;
  padding:1.7rem;
  border-radius:26px;
  background:
    radial-gradient(circle at top right,rgba(212,175,55,.13),transparent 34%),
    rgba(10,10,16,.96);
  border:1px solid rgba(255,255,255,.07);
  box-shadow:0 20px 55px rgba(0,0,0,.38);
}

.local-tags{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:.7rem;
}

.local-tags span{
  padding:.75rem .95rem;
  border-radius:999px;
  color:#fff;
  border:1px solid rgba(255,255,255,.08);
  background:#06060b;
  font-size:.88rem;
  font-weight:700;
}

/* meilleure lisibilité */
.home-page .section-text,
.home-page .hero-text{
  text-wrap:pretty;
}

.service-card h3,
.premium-list strong,
.proof-list strong,
.home-faq-item summary{
  text-wrap:balance;
}

.home-gallery-item img{
  aspect-ratio:16 / 10;
}

/* tablette */
@media(max-width:1180px){
  .home-hero-grid{
    min-height:auto;
  }

  .home-hero-copy{
    padding:2rem;
  }

  .hero-photo-main{
    height:390px;
  }

  .local-card{
    grid-template-columns:1fr;
  }

  .local-tags{
    justify-content:flex-start;
  }
}

/* mobile propre */
@media(max-width:760px){
  .hero-stats{
    grid-template-columns:1fr;
    max-width:none;
  }

  .hero-stats div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
  }

  .hero-stats strong{
    font-size:1.2rem;
  }

  .hero-stats span{
    margin-top:0;
    text-align:right;
  }

  .local-card{
    padding:1.15rem;
    border-radius:18px;
  }

  .local-tags{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.55rem;
  }

  .local-tags span{
    text-align:center;
    padding:.65rem .7rem;
    font-size:.82rem;
  }
}

@media(max-width:480px){
  .local-tags{
    grid-template-columns:1fr;
  }

  .hero-title{
    font-size:clamp(1.85rem,10vw,2.45rem);
  }
}


/* FIX FAQ ACCUEIL — évite que les cartes fermées prennent la hauteur de la carte ouverte */
.home-faq-grid{
  align-items:start;
}

.home-faq-item{
  align-self:start;
  height:auto;
}

.home-faq-item:not([open]){
  min-height:0;
}

.home-faq-item:not([open]) p{
  display:none;
}

@media(max-width:900px){
  .home-faq-grid{
    align-items:stretch;
  }
}
