/* ============== HERO IMMERSIF (photo plein ecran) ============== */
.hero{
  position:relative; overflow:hidden;
  min-height:760px;
  display:flex; align-items:flex-end;
  padding-top:calc(var(--header-h-mobile) + 32px);
  padding-bottom:60px;
  color:#fff;
}
@media (min-width:768px){
  .hero{
    min-height:88vh;
    padding-top:calc(var(--header-h) + 60px);
    padding-bottom:90px;
  }
}
.hero__bg{
  position:absolute; inset:0; z-index:0;
}
.hero__bg img{
  width:100%; height:100%; object-fit:cover;
  filter:brightness(.85) saturate(1.05);
}
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 20% 80%, rgba(31,29,22,.55) 0%, transparent 60%),
    linear-gradient(180deg, rgba(31,29,22,.18) 0%, rgba(31,29,22,.62) 60%, rgba(31,29,22,.85) 100%);
}
.hero__content{position:relative; z-index:1; width:100%}
.hero__eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--ff-ui); font-size:.78rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase;
  color:#E8E0C8;
  margin-bottom:1.6rem;
}
.hero__eyebrow::before{
  content:""; width:32px; height:1px; background:#E8E0C8; display:inline-block;
}
.hero h1{
  color:#fff;
  max-width:840px;
  font-weight:500;
  font-size:clamp(2.4rem, 7vw, 4.4rem);
  line-height:1.05;
  margin-bottom:1.2rem;
  text-shadow:0 2px 30px rgba(0,0,0,.25);
}
.hero h1 em{font-style:italic; color:#D8C58A; font-weight:500}
.hero__lead{
  color:rgba(255,255,255,.92);
  font-size:clamp(1.05rem, 2vw, 1.2rem);
  line-height:1.55;
  max-width:580px;
  margin-bottom:1.4rem;
}
.hero__zone{
  font-family:var(--ff-ui);
  color:#E8E0C8;
  font-size:.95rem;
  max-width:560px;
  margin-bottom:2rem;
  display:flex; align-items:flex-start; gap:.5rem;
}
.hero__zone svg{width:18px; height:18px; flex-shrink:0; margin-top:2px}
.hero__cta{
  display:flex; flex-direction:column; gap:.7rem;
  margin-bottom:1.6rem;
}
.hero__cta .btn{width:100%}
@media (min-width:600px){
  .hero__cta{flex-direction:row; flex-wrap:wrap}
  .hero__cta .btn{width:auto}
}
.hero__rating-row{display:flex; flex-wrap:wrap; gap:.6rem; align-items:center}

/* ============== STATS STRIP ============== */
.stats{
  background:var(--surface-dark); color:#fff;
  padding:50px 0;
}
.stats .container{
  display:grid; gap:2rem;
  grid-template-columns:1fr;
  text-align:center;
}
@media (min-width:600px){.stats .container{grid-template-columns:repeat(3, 1fr); text-align:left}}
.stat{display:flex; flex-direction:column; gap:.3rem; align-items:center}
@media (min-width:600px){.stat{align-items:flex-start; padding-left:1.4rem; border-left:1px solid rgba(255,255,255,.15)}}
@media (min-width:600px){.stat:first-child{border-left:0; padding-left:0}}
.stat__value{
  font-family:var(--ff-display); font-weight:500;
  font-size:clamp(2.4rem, 5vw, 3.2rem);
  color:#fff; line-height:1;
}
.stat__value em{font-style:normal; color:#D8C58A}
.stat__label{
  font-family:var(--ff-ui); font-size:.92rem;
  color:rgba(255,255,255,.78);
  letter-spacing:.02em;
}

/* ============== SECTION REALISATIONS (galerie) ============== */
.gallery-grid{
  display:grid; gap:14px;
  grid-template-columns:repeat(2, 1fr);
  margin-bottom:2rem;
}
@media (min-width:768px){.gallery-grid{grid-template-columns:repeat(3, 1fr); gap:18px}}
.gallery-item{
  position:relative; overflow:hidden;
  border-radius:var(--r-md);
  aspect-ratio:4/3;
  cursor:pointer;
  background:var(--bg-alt);
}
.gallery-item img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .6s var(--ease);
}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-item::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(31,29,22,.42) 100%);
  opacity:0; transition:opacity .25s var(--ease);
}
.gallery-item:hover::after{opacity:1}
.gallery-item--feature{grid-row:span 2; aspect-ratio:auto; min-height:300px}
@media (max-width:767px){.gallery-item--feature{grid-row:auto; min-height:0; aspect-ratio:4/3}}

/* ============== SECTION SERVICES (liste epuree LAY-4 list-sep) ============== */
.services-list{
  display:flex; flex-direction:column;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  overflow:hidden;
}
.service-row{
  display:grid; gap:1rem;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  padding:1.4rem 1.4rem;
  border-bottom:1px solid var(--border);
  transition:background .2s var(--ease);
}
.service-row:last-child{border-bottom:0}
.service-row:hover{background:var(--bg-alt)}
.service-row__num{
  font-family:var(--ff-display); font-size:1.05rem;
  color:var(--accent); font-weight:500;
  width:40px;
  letter-spacing:.04em;
}
.service-row__body{display:flex; flex-direction:column; gap:.25rem}
.service-row__title{
  font-family:var(--ff-display); font-size:1.25rem;
  color:var(--text); font-weight:500;
  margin:0;
}
.service-row__desc{
  font-family:var(--ff-body); font-size:.95rem;
  color:var(--text-2); margin:0; line-height:1.5;
}
.service-row__arrow{
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--border-strong);
  display:none; place-items:center;
  color:var(--accent);
  transition:background .2s var(--ease), border-color .2s var(--ease);
}
@media (min-width:600px){.service-row__arrow{display:grid}}
.service-row:hover .service-row__arrow{background:var(--accent); color:#fff; border-color:var(--accent)}
.service-row:hover .service-row__arrow svg{stroke:#fff}

/* ============== SECTION A PROPOS ============== */
.about{
  display:grid; gap:2.4rem;
  grid-template-columns:1fr;
  align-items:center;
}
@media (min-width:900px){.about{grid-template-columns:1.1fr 1fr; gap:4rem}}
.about__photo{
  position:relative;
  border-radius:var(--r-lg);
  overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:var(--shadow-md);
}
.about__photo img{width:100%; height:100%; object-fit:cover}
.about__photo::before{
  content:""; position:absolute; inset:auto auto -16px -16px;
  width:60%; height:60%;
  border:1px solid var(--accent);
  border-radius:var(--r-lg);
  z-index:-1;
}
.about__content p{font-size:1.05rem; line-height:1.7}
.about__highlights{
  list-style:none; padding:0; margin:2rem 0 0;
  display:grid; gap:1rem;
}
.about__highlights li{
  display:flex; gap:1rem; align-items:flex-start;
}
.about__highlights svg{
  width:24px; height:24px; flex-shrink:0;
  color:var(--accent);
  margin-top:2px;
}
.about__highlights strong{display:block; font-family:var(--ff-ui); color:var(--text); margin-bottom:.2rem; font-weight:700}
.about__highlights span{font-family:var(--ff-body); color:var(--text-2); font-size:.95rem; line-height:1.55}

/* ============== SECTION AVIS (carousel) ============== */
.avis-wrap{
  display:flex; gap:1.4rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:.5rem .2rem 1.4rem;
  margin:0 -22px;
  padding-left:22px; padding-right:22px;
  -webkit-overflow-scrolling:touch;
}
.avis-wrap::-webkit-scrollbar{height:6px}
.avis-wrap::-webkit-scrollbar-track{background:transparent}
.avis-wrap::-webkit-scrollbar-thumb{background:var(--border-strong); border-radius:3px}

@media (min-width:768px){
  .avis-wrap{
    display:grid; grid-template-columns:repeat(3, 1fr);
    overflow:visible; padding:0; margin:0;
  }
}
.avis-card{
  flex:0 0 88%;
  scroll-snap-align:start;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:1.7rem;
  display:flex; flex-direction:column;
}
@media (min-width:768px){.avis-card{flex:1}}
.avis-card__stars{display:flex; gap:2px; margin-bottom:1rem}
.avis-card__stars svg{width:18px; height:18px; fill:#E0A028}
.avis-card__text{
  font-family:var(--ff-display); font-size:1.1rem; line-height:1.55;
  color:var(--text); margin:0 0 1.4rem;
  font-style:italic;
  font-weight:500;
  flex-grow:1;
}
.avis-card__text::before{
  content:"\201C "; color:var(--accent); font-size:1.6rem; line-height:0; margin-right:2px;
}
.avis-card__foot{display:flex; align-items:center; justify-content:space-between; gap:1rem}
.avis-card__author{display:flex; flex-direction:column}
.avis-card__author strong{font-family:var(--ff-ui); color:var(--text); font-size:.95rem; font-weight:700}
.avis-card__author span{font-family:var(--ff-ui); color:var(--text-mute); font-size:.82rem; margin-top:2px}
.avis-card__google{
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:var(--ff-ui); font-size:.78rem; color:var(--text-mute);
}
.avis-card__google svg{width:18px; height:18px}

.avis-cta{
  display:inline-flex; align-items:center; gap:.5rem;
  margin-top:2rem;
  color:var(--accent); font-family:var(--ff-ui); font-weight:700;
  border-bottom:1px solid var(--accent);
  padding-bottom:3px;
  transition:gap .2s var(--ease);
}
.avis-cta:hover{gap:.8rem}

/* ============== FAQ ============== */
.faq-list{display:flex; flex-direction:column; gap:.7rem; max-width:780px}
.faq-item{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  overflow:hidden;
  transition:border-color .2s var(--ease);
}
.faq-item.is-open{border-color:var(--accent)}
.faq-q{
  width:100%; text-align:left;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.2rem 1.4rem;
  font-family:var(--ff-display); font-size:1.1rem; font-weight:500;
  color:var(--text);
  background:transparent;
  cursor:pointer;
}
.faq-q__icon{
  flex-shrink:0; width:32px; height:32px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--bg-alt);
  color:var(--accent);
  transition:transform .3s var(--ease), background .2s var(--ease);
}
.faq-item.is-open .faq-q__icon{transform:rotate(45deg); background:var(--accent); color:#fff}
.faq-a{
  max-height:0; overflow:hidden;
  transition:max-height .35s var(--ease), padding .25s var(--ease);
  padding:0 1.4rem;
}
.faq-item.is-open .faq-a{max-height:400px; padding:0 1.4rem 1.3rem}
.faq-a p{margin:0; font-size:.98rem; line-height:1.6; color:var(--text-2)}

/* ============== ZONE + CONTACT ============== */
.zone{
  display:grid; gap:2.4rem; grid-template-columns:1fr;
}
@media (min-width:900px){.zone{grid-template-columns:1fr 1.1fr; gap:3rem}}
.zone__map{
  position:relative;
  border-radius:var(--r-lg);
  overflow:hidden;
  box-shadow:var(--shadow-md);
}
.zone__map-frame{
  position:relative; padding-top:75%;
  background:var(--bg-alt);
}
.zone__map-frame iframe{
  position:absolute; inset:0;
  width:100%; height:100%; border:0;
}
.zone__info h3{margin-bottom:.4rem}
.zone__chips{display:flex; flex-wrap:wrap; gap:.5rem; margin:1.4rem 0 2rem}
.hours{
  list-style:none; padding:0; margin:0;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  overflow:hidden;
}
.hours li{
  display:flex; justify-content:space-between; align-items:center;
  padding:.85rem 1.2rem;
  border-bottom:1px solid var(--border);
  font-family:var(--ff-ui); font-size:.95rem;
}
.hours li:last-child{border-bottom:0}
.hours li.is-today{background:rgba(94,107,59,.07); font-weight:700; color:var(--accent)}
.hours li span:last-child{color:var(--text-2)}
.hours li.is-today span:last-child{color:var(--accent)}

.contact-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:2rem;
  display:flex; flex-direction:column; gap:1.4rem;
}
.contact-info{display:flex; flex-direction:column; gap:1.2rem}
.contact-info > div{display:flex; gap:1rem; align-items:flex-start}
.contact-info svg{width:22px; height:22px; color:var(--accent); flex-shrink:0; margin-top:3px}
.contact-info strong{font-family:var(--ff-ui); color:var(--text); display:block; font-weight:700; margin-bottom:.15rem}
.contact-info p, .contact-info a{font-family:var(--ff-body); color:var(--text-2); margin:0; font-size:.95rem; line-height:1.55}
.contact-info a:hover{color:var(--accent)}
.contact-cta{display:flex; flex-direction:column; gap:.7rem; padding-top:1.4rem; border-top:1px solid var(--border)}

/* ============== ORNEMENTS / TEXTURES ============== */
.section-ornament{
  position:absolute;
  pointer-events:none;
  opacity:.5;
  z-index:0;
}
.section-ornament svg{width:100%; height:100%}
section .container{position:relative; z-index:1}

/* gradient OKLCH discret (TEX-6) */
.section-realisations{
  background:linear-gradient(180deg, var(--bg) 0%, var(--bg-alt) 100%);
}
.section-faq{
  background:linear-gradient(180deg, var(--bg-alt) 0%, var(--bg) 100%);
}

/* split lead row above stats */
.lead-row{
  display:grid; gap:1.4rem;
  grid-template-columns:1fr;
  padding:24px 0;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  margin-bottom:36px;
}
@media (min-width:600px){.lead-row{grid-template-columns:repeat(3, 1fr); gap:2rem}}
.lead-row__item{display:flex; gap:.8rem; align-items:flex-start}
.lead-row__item svg{width:20px; height:20px; color:var(--accent); flex-shrink:0; margin-top:3px}
.lead-row__item strong{display:block; font-family:var(--ff-ui); color:var(--text); font-weight:700; margin-bottom:.15rem}
.lead-row__item span{font-family:var(--ff-body); color:var(--text-2); font-size:.92rem}
