/* HERO-EDITORIAL-CENTRE */
.hero-centre{max-width:1000px;margin:0 auto;text-align:center;padding:clamp(48px,8vw,110px) 24px clamp(28px,4vw,48px);}
.hero-centre__eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--ff-body);text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;color:var(--accent);margin-bottom:18px;font-weight:500;}
.hero-centre__eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);}
.hero-centre__title{font-family:var(--ff-display);font-size:clamp(2.6rem,7vw,5.2rem);line-height:1.02;color:var(--text);font-weight:600;letter-spacing:-0.012em;}
.hero-centre__title em{font-style:italic;color:var(--accent);}
.hero-centre__sub{font-size:clamp(1rem,1.6vw,1.18rem);color:var(--text-2);margin:22px auto 28px;max-width:58ch;line-height:1.55;}
.hero-centre__cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;}
.hero-centre__usps{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:20px;}
.hero-centre__usp{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--bg));color:var(--accent-deep);font-size:.86rem;font-family:var(--ff-ui);font-weight:500;}
.hero-centre__usp svg{width:14px;height:14px;color:var(--accent);}
.hero-centre__band{width:100%;aspect-ratio:21/9;border-radius:16px;overflow:hidden;margin-top:clamp(28px,5vw,56px);box-shadow:var(--shadow-lg);position:relative;}
.hero-centre__band img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-centre__band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 70%,rgba(46,42,32,0.18));pointer-events:none;}
@media (max-width:768px){
  .hero-centre{padding:calc(var(--header-h-mobile) + 28px) 20px 24px;}
  .hero-centre__band{aspect-ratio:16/10;}
  .hero-centre__cta{flex-direction:column;width:100%;align-items:stretch;}
  .hero-centre__cta .btn{width:100%;}
}

/* Dispo line */
.dispo-line{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:.88rem;color:var(--text-2);font-family:var(--ff-ui);}
.dispo-dot{width:9px;height:9px;border-radius:50%;background:var(--ok);position:relative;}
.dispo-dot::before{content:"";position:absolute;inset:-3px;border-radius:50%;background:var(--ok);opacity:0.35;animation:pulse 2.2s ease-out infinite;}
.dispo-dot.is-closed{background:#aa5a3a;}
.dispo-dot.is-closed::before{background:#aa5a3a;}
@keyframes pulse{0%{transform:scale(1);opacity:0.5;}100%{transform:scale(2);opacity:0;}}
@media (prefers-reduced-motion:reduce){.dispo-dot::before{animation:none;}}

/* SECTION REALISATIONS (galerie masonry teaser) */
.realisations-section{background:var(--surface);padding:64px 0;}
@media (min-width:768px){.realisations-section{padding:96px 0;}}
.realisations-head{display:grid;gap:20px;align-items:end;grid-template-columns:1fr;margin-bottom:36px;}
@media (min-width:768px){.realisations-head{grid-template-columns:1fr auto;}}
.realisations-head .section-lede{margin:0;}
.realisations-cta-row{display:flex;flex-wrap:wrap;gap:10px;}
.gal-masonry{column-count:3;column-gap:14px;}
.gal-masonry .gal-item{break-inside:avoid;margin:0 0 14px;position:relative;cursor:zoom-in;border-radius:12px;overflow:hidden;display:block;box-shadow:var(--shadow-sm);}
.gal-masonry img{width:100%;height:auto;display:block;transition:transform .5s ease;}
.gal-masonry .gal-item:hover img{transform:scale(1.04);}
.gal-tag{position:absolute;top:12px;left:12px;background:rgba(247,241,225,0.92);backdrop-filter:blur(6px);color:var(--text);padding:5px 10px;border-radius:999px;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;font-family:var(--ff-ui);font-weight:500;}
@media (max-width:900px){.gal-masonry{column-count:2;}}
@media (max-width:560px){.gal-masonry{column-count:1;}}
@media (prefers-reduced-motion:reduce){.gal-masonry img{transition:none;}.gal-masonry .gal-item:hover img{transform:none;}}

/* SECTION SERVICES (grid-3 stripe cards) */
.services-section .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:900px){.services-section .svc-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.services-section .svc-grid{grid-template-columns:1fr;}}

/* A propos section */
.about-section{background:var(--surface);}
.about-grid{display:grid;grid-template-columns:1fr;gap:36px;align-items:center;}
@media (min-width:900px){.about-grid{grid-template-columns:1.05fr .95fr;gap:64px;}}
.about-media{aspect-ratio:4/5;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-lg);}
.about-media img{width:100%;height:100%;object-fit:cover;}
.about-lead{font-family:var(--ff-display);font-style:italic;font-size:clamp(1.15rem,2.2vw,1.5rem);line-height:1.4;color:var(--text);margin:0 0 18px;}
.about-lead em{font-style:italic;color:var(--accent);}
.about-text{color:var(--text-2);font-size:1rem;line-height:1.7;margin:0 0 14px;}
.about-points{margin-top:20px;display:flex;flex-direction:column;gap:11px;}
.about-points li{display:flex;align-items:flex-start;gap:11px;font-size:.96rem;color:var(--text);}
.about-points li svg{width:18px;height:18px;color:var(--accent);flex:0 0 18px;margin-top:3px;}
.about-sign{margin-top:24px;font-family:var(--ff-display);font-style:italic;font-size:1.05rem;color:var(--accent);}

/* AVIS section */
.avis-section{padding:64px 0;}
@media (min-width:768px){.avis-section{padding:96px 0;}}
.avis-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:900px){.avis-cards{grid-template-columns:1fr;}}
.avis-link{display:inline-flex;align-items:center;gap:8px;margin-top:28px;color:var(--accent-deep);font-family:var(--ff-ui);font-size:.94rem;font-weight:500;text-decoration:underline;text-underline-offset:4px;}

/* STATS section */
.stats-section{background:var(--surface-deep);color:#FBF7EB;padding:48px 0;}
.stats-section :where(h2,p,span,small){color:inherit;}
.stats-section .section-title{color:#FBF7EB;}
.stats-section .section-title em{color:var(--accent-on-dark);}
.stats-section .section-lede{color:rgba(251,247,235,0.75);}
.stats-strip{display:grid;grid-template-columns:1fr;gap:32px;margin-top:24px;}
@media (min-width:768px){.stats-strip{grid-template-columns:repeat(3,1fr);gap:36px;}}
.stats-section .stat{padding:18px 0;}
.stats-section .stat+.stat{border-top:1px solid rgba(232,225,208,0.14);padding-top:24px;}
@media (min-width:768px){
  .stats-section .stat+.stat{border-top:0;border-left:1px solid rgba(232,225,208,0.14);padding-left:36px;padding-top:18px;}
}

/* FAQ section */
.faq-list{display:flex;flex-direction:column;gap:12px;max-width:780px;margin:0 auto;}
.faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;text-align:left;font-family:var(--ff-display);font-size:1.08rem;color:var(--text);font-weight:600;line-height:1.3;}
.faq-q .chev{width:22px;height:22px;color:var(--accent);transition:transform .25s ease;flex:0 0 22px;}
.faq-item.is-open .chev{transform:rotate(180deg);}
.faq-a{padding:0 22px 0;max-height:0;overflow:hidden;transition:max-height .35s ease, padding .25s ease;color:var(--text-2);font-size:.98rem;line-height:1.65;}
.faq-item.is-open .faq-a{padding:0 22px 22px;max-height:560px;}
@media (prefers-reduced-motion:reduce){.faq-a,.faq-q .chev{transition:none;}}

/* CONTACT section */
.contact-section{background:var(--surface-deep);color:#FBF7EB;padding:64px 0;}
@media (min-width:768px){.contact-section{padding:96px 0;}}
.contact-section :where(h2,h3,p,a,span,small,strong,label){color:inherit;}
.contact-section .section-title{color:#FBF7EB;}
.contact-section .section-title em{color:var(--accent-on-dark);}
.contact-section .section-lede{color:rgba(251,247,235,0.75);}
.contact-section .field input,.contact-section .field select,.contact-section .field textarea{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.14);color:#FBF7EB;}
.contact-section .field input::placeholder,.contact-section .field textarea::placeholder{color:rgba(251,247,235,0.45);}
.contact-section .field label{color:rgba(251,247,235,0.7);}
.contact-grid{display:grid;grid-template-columns:1fr;gap:36px;}
@media (min-width:900px){.contact-grid{grid-template-columns:.95fr 1fr;gap:64px;align-items:start;}}
.contact-info{display:flex;flex-direction:column;gap:24px;}
.contact-coord{display:flex;align-items:center;gap:14px;}
.contact-coord__icon{width:42px;height:42px;border-radius:10px;background:rgba(200,216,138,0.14);color:var(--accent-on-dark);display:grid;place-items:center;flex:0 0 42px;}
.contact-coord__icon svg{width:20px;height:20px;}
.contact-coord__label{font-size:.78rem;color:rgba(251,247,235,0.62);text-transform:uppercase;letter-spacing:.14em;}
.contact-coord__value{font-family:var(--ff-display);font-size:1.18rem;color:#FBF7EB;line-height:1.3;}
.contact-coord__value a{color:#FBF7EB;}
.contact-cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;}
@media (max-width:560px){.contact-cta-row{flex-direction:column;}.contact-cta-row .btn{width:100%;}}
.horaires-table{margin-top:8px;border-radius:var(--r-lg);overflow:hidden;border:1px solid rgba(232,225,208,0.14);}
.horaires-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;font-size:.92rem;border-top:1px solid rgba(232,225,208,0.1);}
.horaires-row:first-child{border-top:0;}
.horaires-row.is-today{background:rgba(200,216,138,0.1);color:var(--accent-on-dark);font-weight:500;}
.horaires-row .day{text-transform:capitalize;}
.contact-map{aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;border:1px solid rgba(232,225,208,0.14);}
.contact-map iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.9) brightness(.95);}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(20,18,14,0.92);z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:24px;flex-direction:column;}
.lightbox.is-open{display:flex;}
.lightbox__img{max-width:min(100%, 1200px);max-height:80vh;border-radius:12px;box-shadow:var(--shadow-lg);}
.lightbox__close{position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,0.12);color:#fff;display:grid;place-items:center;cursor:pointer;}
.lightbox__close svg{width:22px;height:22px;}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,0.12);color:#fff;display:grid;place-items:center;cursor:pointer;}
.lightbox__nav svg{width:24px;height:24px;}
.lightbox__nav.prev{left:18px;}
.lightbox__nav.next{right:18px;}
@media (max-width:560px){.lightbox__nav{width:42px;height:42px;}.lightbox__nav.prev{left:8px;}.lightbox__nav.next{right:8px;}}

/* Modal mentions */
.modal{position:fixed;inset:0;background:rgba(20,18,14,0.7);z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:18px;}
.modal.is-open{display:flex;}
.modal__inner{background:var(--bg);max-width:680px;width:100%;max-height:88vh;overflow-y:auto;border-radius:16px;padding:32px 28px;position:relative;box-shadow:var(--shadow-lg);}
.modal__close{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;background:transparent;color:var(--text);display:grid;place-items:center;}
.modal__inner h3{font-family:var(--ff-display);font-size:1.6rem;margin-bottom:14px;color:var(--text);}
.modal__inner h4{font-family:var(--ff-ui);font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent-deep);margin:18px 0 6px;font-weight:500;}
.modal__inner p{font-size:.94rem;color:var(--text-2);line-height:1.65;margin-bottom:8px;}
