/* ===================== HERO IMMERSIF ===================== */
.hero-immersif{
  position:relative;
  min-height:clamp(540px,82vh,780px);
  display:flex;
  align-items:flex-end;
  padding:clamp(28px,6vw,72px) 20px 48px;
  overflow:hidden;
  margin-top:calc(var(--header-h-mobile) * -1);
  padding-top:calc(var(--header-h-mobile) + 80px);
}
@media (min-width:900px){
  .hero-immersif{
    margin-top:calc(var(--header-h) * -1);
    padding-top:calc(var(--header-h) + 96px);
    border-radius:0 0 24px 24px;
  }
}
.hero-immersif__bg{
  position:absolute;inset:0;z-index:0;
}
.hero-immersif__bg img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.hero-immersif::after{
  content:"";
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg,rgba(15,28,22,.62) 0%,rgba(15,28,22,.52) 40%,rgba(15,28,22,.92) 100%),
    radial-gradient(70% 70% at 18% 78%,rgba(15,28,22,.55) 0%,rgba(15,28,22,0) 65%);
}
.hero-immersif__inner{
  position:relative;
  z-index:2;
  max-width:780px;
  width:100%;
  color:#fff;
}
.hero-immersif__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--ff-ui);
  font-weight:500;
  font-size:.74rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#E7C998;
  margin-bottom:18px;
}
.hero-immersif__eyebrow::before{
  content:"";
  width:28px;height:1px;
  background:#E7C998;
}
.hero-immersif__title{
  font-family:var(--ff-display);
  font-size:clamp(2.2rem,6.4vw,4.2rem);
  line-height:1.04;
  letter-spacing:-.01em;
  color:#fff;
  margin:0 0 .4em;
  font-weight:500;
  text-shadow:0 2px 12px rgba(15,28,22,.35);
}
.hero-immersif__title em{
  font-style:italic;
  color:#E7C998;
  font-weight:400;
}
.hero-immersif__sub{
  font-family:var(--ff-body);
  font-size:clamp(1rem,1.7vw,1.18rem);
  line-height:1.5;
  color:#F2EFE6;
  opacity:.94;
  margin:18px 0 26px;
  max-width:54ch;
}
.hero-immersif__cta{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:8px;
}
@media (min-width:560px){
  .hero-immersif__cta{flex-direction:row;flex-wrap:wrap;}
  .hero-immersif__cta .btn{width:auto;}
}

/* ===================== STATS STRIP ===================== */
.stats-strip{
  padding:36px 0;
  background:var(--bg-alt);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
@media (min-width:768px){.stats-strip{padding:48px 0;}}
.stats-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}
@media (min-width:640px){
  .stats-grid{grid-template-columns:repeat(3,1fr);gap:0;}
}
.stat-item{
  text-align:left;
  padding:8px 0;
  border-left:0;
  border-top:1px solid var(--border);
  padding-left:0;padding-top:24px;
}
.stat-item:first-child{border-top:0;padding-top:8px;}
@media (min-width:640px){
  .stat-item{
    text-align:center;
    padding:6px 20px;
    border-top:0;
    border-left:1px solid var(--border);
  }
  .stat-item:first-child{border-left:0;padding-top:6px;}
}
.stat-number{
  display:block;
  font-family:var(--ff-display);
  font-size:clamp(2.2rem,3.4vw,2.8rem);
  line-height:1.05;
  color:var(--accent);
  margin-bottom:6px;
  letter-spacing:-.01em;
}
.stat-label{
  display:block;
  font-family:var(--ff-ui);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--text-2);
}

/* ===================== AVIS — row-sep ===================== */
.avis-section{background:var(--surface);}
.avis-rows{
  display:flex;
  flex-direction:column;
  margin-top:8px;
}
.avis-rows__item{
  padding:28px 0;
  border-top:1px solid var(--border);
}
.avis-rows__item:first-child{border-top:0;padding-top:8px;}
.avis-stars{
  display:inline-flex;
  gap:3px;
  margin-bottom:10px;
}
.avis-stars svg{width:18px;height:18px;color:var(--accent-2);}
.avis-quote{
  font-family:var(--ff-display);
  font-size:clamp(1.1rem,1.8vw,1.35rem);
  line-height:1.45;
  color:var(--text);
  margin:0 0 14px;
  font-weight:500;
  font-style:italic;
  position:relative;
  padding-left:0;
}
.avis-quote::before{
  content:"\201C";
  font-family:var(--ff-display);
  font-size:2.4rem;
  color:var(--accent-2);
  line-height:.6;
  vertical-align:-12px;
  margin-right:6px;
  opacity:.7;
}
.avis-author{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px;
  font-family:var(--ff-ui);
  font-size:.88rem;
  color:var(--text-2);
}
.avis-author strong{color:var(--text);font-weight:600;}
.badge-google{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 10px;
  background:var(--bg);
  border-radius:999px;
  border:1px solid var(--border);
  font-size:.78rem;
  font-weight:500;
  color:var(--text-2);
}
.badge-google svg{width:14px;height:14px;}
.avis-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:28px;
  font-family:var(--ff-ui);
  font-weight:600;
  color:var(--accent);
  border-bottom:1px solid var(--accent);
  padding-bottom:2px;
}
.avis-link:hover{color:var(--accent-2);border-color:var(--accent-2);}

/* ===================== SERVICES — grid-asym ===================== */
.services-section{background:var(--bg);}
.svc-asym{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  margin-top:8px;
}
@media (min-width:760px){
  .svc-asym{
    grid-template-columns:repeat(6,1fr);
    gap:20px;
  }
  .svc-asym .c-asym{grid-column:span 2;}
  .svc-asym .c-asym--wide{grid-column:span 3;}
  .svc-asym .c-asym--lead{grid-column:span 4;}
}

/* ===================== REALISATIONS — gal-feat (1 grande + petites) ===================== */
.realisations-section{background:var(--surface);}
.gal-feat{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin-top:8px;
}
.gal-feat figure{
  margin:0;
  border-radius:14px;
  overflow:hidden;
  cursor:zoom-in;
  position:relative;
  aspect-ratio:4/3;
  background:var(--bg-alt);
}
.gal-feat figure img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  transition:transform .55s ease;
}
.gal-feat figure:hover img{transform:scale(1.04);}
.gal-feat .gal-feat__big{aspect-ratio:4/3;}
@media (min-width:760px){
  .gal-feat{
    grid-template-columns:repeat(4,1fr);
    grid-auto-rows:160px;
    gap:14px;
  }
  .gal-feat figure{aspect-ratio:auto;}
  .gal-feat .gal-feat__big{grid-column:span 2;grid-row:span 2;}
}
.realisations-cta{
  display:flex;
  justify-content:center;
  margin-top:32px;
}

/* ===================== FAQ ===================== */
.faq-section{background:var(--bg);}
.faq-list{
  margin:8px 0 0;
  padding:0;
  max-width:880px;
}
.faq-item{
  border-top:1px solid var(--border);
}
.faq-item:last-child{border-bottom:1px solid var(--border);}
.faq-trigger{
  display:flex;
  width:100%;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:22px 0;
  font-family:var(--ff-display);
  font-size:clamp(1.05rem,1.5vw,1.25rem);
  font-weight:600;
  color:var(--text);
  text-align:left;
  line-height:1.4;
}
.faq-trigger:hover{color:var(--accent);}
.faq-chevron{
  flex-shrink:0;
  width:24px;height:24px;
  display:grid;place-items:center;
  border-radius:50%;
  background:var(--bg-alt);
  color:var(--accent);
  transition:transform .3s ease,background .2s ease;
  margin-top:3px;
}
.faq-chevron::before{
  content:"";
  width:8px;height:8px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg) translate(-2px,-2px);
}
.faq-trigger[aria-expanded="true"] .faq-chevron{
  background:var(--accent);
  color:#fff;
  transform:rotate(180deg);
}
.faq-answer{
  margin:0;
  padding:0 0 22px;
  color:var(--text-2);
  line-height:1.65;
  font-size:.96rem;
  max-width:70ch;
}

/* ===================== ZONE + CARTE ===================== */
.zone-section{background:var(--surface);}
.zone-cols{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  margin-top:8px;
}
@media (min-width:900px){
  .zone-cols{grid-template-columns:1fr 1fr;gap:36px;align-items:start;}
}
.zone-info h3{font-family:var(--ff-display);font-size:1.05rem;margin:0 0 12px;color:var(--text);}
.zone-list{
  list-style:none;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 28px;
}
.zone-list li{
  padding:7px 14px;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:999px;
  font-family:var(--ff-ui);
  font-size:.86rem;
  color:var(--text-2);
}
.horaires-table{margin-top:18px;}
.horaires-table table{
  width:100%;
  border-collapse:collapse;
  font-family:var(--ff-ui);
  font-size:.94rem;
}
.horaires-table tr{border-bottom:1px solid var(--border);}
.horaires-table tr:last-child{border-bottom:0;}
.horaires-table td{
  padding:11px 0;
  color:var(--text-2);
}
.horaires-table td:first-child{
  color:var(--text);
  font-weight:500;
  text-transform:capitalize;
}
.horaires-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;}
.horaires-table tr.is-today{background:rgba(36,74,58,.06);}
.horaires-table tr.is-today td{color:var(--accent);font-weight:600;}
.open-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 13px;
  border-radius:999px;
  font-family:var(--ff-ui);
  font-size:.82rem;
  font-weight:600;
  margin-bottom:14px;
}
.open-badge--open{background:rgba(36,74,58,.10);color:var(--accent);}
.open-badge--closed{background:rgba(150,60,40,.12);color:#963c28;}
.open-badge .dot{
  width:8px;height:8px;
  border-radius:50%;
  background:currentColor;
  display:inline-block;
}
.map-wrapper{
  width:100%;
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--bg-alt);
  box-shadow:var(--shadow-sm);
}
.map-wrapper iframe{
  width:100%;
  height:340px;
  border:0;
  display:block;
}
@media (min-width:900px){
  .map-wrapper iframe{height:420px;}
}

/* ===================== A PROPOS ===================== */
.about-section{background:var(--bg);}
.about-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  align-items:start;
}
@media (min-width:900px){
  .about-grid{
    grid-template-columns:5fr 7fr;
    gap:56px;
    align-items:center;
  }
}
.about-media{
  width:100%;
  aspect-ratio:4/5;
  border-radius:22px 4px 22px 4px;
  overflow:hidden;
  background:var(--bg-alt);
}
.about-media img{width:100%;height:100%;object-fit:cover;display:block;}
.about-text h2{margin-bottom:.5em;}
.about-text p{font-size:1.02rem;line-height:1.7;color:var(--text-2);}
.about-text p:first-of-type::first-letter{
  font-family:var(--ff-display);
  font-size:3rem;
  font-weight:600;
  color:var(--accent);
  float:left;
  line-height:.85;
  padding:6px 10px 0 0;
}
.about-promise{
  margin-top:24px;
  padding:22px 24px;
  border-left:3px solid var(--accent-2);
  background:var(--surface);
  border-radius:0 14px 14px 0;
}
.about-promise strong{color:var(--accent);font-family:var(--ff-display);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;display:block;margin-bottom:6px;}
.about-promise p{margin:0;color:var(--text);font-style:italic;}

/* ===================== CONTACT ===================== */
.contact-section{
  background:#1A2C24;
  color:#F2EFE6;
}
.contact-section :where(h2,h3){color:#fff;}
.contact-section p{color:#D8D2C0;}
.contact-section .section-eyebrow{color:#E7C998;}
.contact-section .section-eyebrow::before{background:#E7C998;}
.contact-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
  margin-top:18px;
}
@media (min-width:900px){
  .contact-grid{grid-template-columns:1.05fr 1fr;gap:56px;align-items:start;}
}
.contact-info ul{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-direction:column;gap:18px;}
.contact-info li{
  display:flex;
  align-items:center;
  gap:14px;
}
.contact-info .ci-icon{
  width:42px;height:42px;
  border-radius:12px 4px 12px 4px;
  background:rgba(231,201,152,.16);
  color:#E7C998;
  display:grid;place-items:center;
  flex-shrink:0;
}
.contact-info .ci-icon svg{width:20px;height:20px;}
.contact-info .ci-label{
  display:block;
  font-family:var(--ff-ui);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#9C9683;
  margin-bottom:2px;
}
.contact-info .ci-val{color:#fff;font-size:1rem;font-family:var(--ff-body);font-weight:500;}
.contact-info .ci-val a{color:#fff;}
.contact-info .ci-val a:hover{color:#E7C998;}
.contact-actions{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:28px;
}
@media (min-width:560px){
  .contact-actions{flex-direction:row;flex-wrap:wrap;}
  .contact-actions .btn{width:auto;}
}
.contact-form-wrap .form{background:#F2EFE6;color:var(--text);}
.contact-form-wrap label{color:var(--text-2);}

/* ===================== LIGHTBOX ===================== */
.lightbox{
  position:fixed;inset:0;
  z-index:1400;
  background:rgba(15,18,16,.94);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.lightbox img{
  max-width:92vw;
  max-height:84vh;
  object-fit:contain;
  border-radius:6px;
  box-shadow:0 30px 60px rgba(0,0,0,.5);
}
.lb-close,.lb-prev,.lb-next{
  position:absolute;
  width:48px;height:48px;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  color:#fff;
  display:grid;place-items:center;
  border:0;
  cursor:pointer;
  transition:background .2s ease;
}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:rgba(255,255,255,.24);}
.lb-close{top:18px;right:18px;}
.lb-prev{left:14px;top:50%;transform:translateY(-50%);}
.lb-next{right:14px;top:50%;transform:translateY(-50%);}
.lb-close svg,.lb-prev svg,.lb-next svg{width:22px;height:22px;}

/* ===================== SECTION INTRO (heading wrap) ===================== */
.section-head{
  max-width:680px;
  margin:0 0 24px;
}
.section-head h2{margin:0 0 .35em;}
.section-head p{
  color:var(--text-2);
  font-size:1.02rem;
  margin:0;
  line-height:1.6;
}
.contact-section .section-head p{color:#D8D2C0;}
.section-head--center{margin-left:auto;margin-right:auto;text-align:center;}
