/* HERO IMMERSIF (impose da_engine HERO-IMMERSIF) */
.hero-immersif{position:relative;min-height:clamp(540px,80vh,760px);display:flex;align-items:flex-end;
  padding:clamp(28px,6vw,72px) 24px;border-radius:0 0 var(--r-lg) var(--r-lg);overflow:hidden;margin-bottom:32px;}
.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(31,53,49,0.25) 0%,rgba(31,53,49,0.55) 45%,rgba(31,53,49,0.82) 100%);}
.hero-immersif__inner{position:relative;z-index:2;max-width:780px;color:#fff;width:100%;}
.hero-immersif__inner .eyebrow{color:#C8DDD8;}
.hero-immersif__title{font-family:var(--ff-display);font-size:clamp(2.1rem,6vw,4.4rem);line-height:1.04;color:#fff;font-weight:500;letter-spacing:-0.015em;}
.hero-immersif__title em{font-style:italic;color:#C8DDD8;position:relative;}
.hero-immersif__title em::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.18em;
  background:rgba(108,168,155,0.45);z-index:-1;border-radius:2px;}
.hero-immersif__sub{font-size:clamp(1rem,1.7vw,1.2rem);opacity:.94;margin:18px 0 24px;max-width:54ch;line-height:1.55;color:#E8F0EC;}
.hero-immersif__usps{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;}
.hero-immersif__usps .chip{background:rgba(255,255,255,0.12);color:#fff;border-color:rgba(255,255,255,0.20);}
.hero-immersif__usps .chip svg{color:var(--accent-2);}
.hero-immersif__cta{display:flex;flex-direction:column;gap:12px;margin-bottom:18px;}
.hero-immersif__meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;}

@media (min-width:560px){
  .hero-immersif__cta{flex-direction:row;flex-wrap:wrap;}
  .hero-immersif__cta .btn{width:auto;}
}
@media (max-width:559px){
  .hero-immersif__cta .btn{width:100%;}
}
@media (max-width:768px){
  .hero-immersif{min-height:82vh;padding:calc(var(--header-h-mobile) + 28px) 20px 36px;border-radius:0;}
}

/* STATS STRIP */
.stats-strip{background:var(--bg-alt);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:28px 0;}
.stats-grid{display:grid;grid-template-columns:1fr;gap:24px;text-align:center;}
.stat-item{display:flex;flex-direction:column;align-items:center;gap:4px;}
.stat-num{font-family:var(--ff-display);font-size:clamp(1.9rem,4.5vw,2.6rem);font-weight:500;color:var(--accent);line-height:1;}
.stat-label{font-family:var(--ff-ui);text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;color:var(--text-2);font-weight:500;}
@media (min-width:640px){
  .stats-grid{grid-template-columns:repeat(3,1fr);gap:18px;}
  .stat-item{border-right:1px solid var(--border);padding:8px 12px;}
  .stat-item:last-child{border-right:none;}
}

/* AVIS SINGLE (impose layout.avis=single) */
.avis-section{background:var(--bg);}
.avis-section h2{text-align:center;margin-bottom:42px;}
.avis-single{max-width:780px;margin:0 auto;text-align:center;padding:0 8px;}
.avis-single__stars{display:inline-flex;gap:4px;margin-bottom:18px;}
.avis-single__stars svg{width:22px;height:22px;color:var(--star);}
.avis-single__quote{font-family:var(--ff-display);font-style:italic;font-size:clamp(1.25rem,3vw,1.85rem);line-height:1.45;color:var(--text);margin-bottom:22px;font-weight:400;letter-spacing:-0.005em;}
.avis-single__quote::before{content:"\201C";font-family:var(--ff-display);font-size:1.4em;color:var(--accent);line-height:0;vertical-align:-.15em;margin-right:6px;}
.avis-single__quote::after{content:"\201D";font-family:var(--ff-display);font-size:1.4em;color:var(--accent);line-height:0;vertical-align:-.15em;margin-left:4px;}
.avis-single__author{font-family:var(--ff-ui);font-weight:600;color:var(--text);}
.avis-single__author-date{display:block;font-weight:400;color:var(--text-mute);font-size:.86rem;margin-top:2px;}

.avis-others{display:grid;grid-template-columns:1fr;gap:18px;margin-top:42px;}
.avis-mini{padding:22px;background:var(--bg-alt);border-radius:var(--r-md);border:1px solid var(--border);}
.avis-mini__stars{display:inline-flex;gap:2px;margin-bottom:10px;}
.avis-mini__stars svg{width:14px;height:14px;color:var(--star);}
.avis-mini__text{font-family:var(--ff-body);font-size:.94rem;color:var(--text-2);line-height:1.55;margin-bottom:10px;font-style:italic;}
.avis-mini__author{font-family:var(--ff-ui);font-size:.84rem;color:var(--text-mute);}
.avis-mini__author strong{color:var(--text);font-weight:600;}
@media (min-width:768px){.avis-others{grid-template-columns:1fr 1fr;}}
.avis-link{display:inline-flex;align-items:center;gap:6px;margin-top:28px;font-family:var(--ff-ui);font-size:.92rem;color:var(--accent);text-decoration:none;font-weight:500;}
.avis-link svg{width:14px;height:14px;}
.avis-link-wrap{text-align:center;margin-top:22px;}

/* SERVICES alt-rows */
.svc-alt{display:flex;flex-direction:column;gap:48px;}
.svc-alt__row{display:grid;grid-template-columns:1fr;gap:20px;align-items:center;}
.svc-alt__media{width:100%;aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;background:var(--bg-alt);}
.svc-alt__media img{width:100%;height:100%;object-fit:cover;}
.svc-alt__media--icon{display:grid;place-items:center;}
.svc-alt__media--icon svg{width:50%;height:50%;color:var(--accent);opacity:.6;}
.svc-alt__num{font-family:var(--ff-display);font-style:italic;color:var(--accent);font-size:1.05rem;margin-bottom:10px;letter-spacing:0.02em;}
.svc-alt__title{font-family:var(--ff-display);font-size:clamp(1.4rem,2.8vw,1.85rem);margin-bottom:14px;color:var(--text);font-weight:500;}
.svc-alt__desc{font-family:var(--ff-body);color:var(--text-2);font-size:1rem;line-height:1.62;margin-bottom:14px;}
.svc-alt__pts{margin:0;padding:0;list-style:none;}
.svc-alt__pts li{padding-left:24px;position:relative;margin-bottom:6px;font-size:.94rem;color:var(--text-2);}
.svc-alt__pts li::before{content:"";position:absolute;left:0;top:.55em;width:14px;height:1.5px;background:var(--accent);}

@media (min-width:768px){
  .svc-alt{gap:72px;}
  .svc-alt__row{grid-template-columns:1fr 1fr;gap:48px;}
  .svc-alt__row:nth-child(even) .svc-alt__media{order:-1;}
}

/* REALISATIONS masonry (impose layout.gallery=masonry) */
.gal-masonry{column-count:1;column-gap:14px;}
.gal-item{margin:0 0 14px;border-radius:var(--r-md);overflow:hidden;break-inside:avoid;cursor:pointer;background:var(--bg-alt);transition:transform var(--t-fast);}
.gal-item img{width:100%;height:auto;display:block;transition:transform var(--t-base);}
.gal-item:hover img{transform:scale(1.04);}
@media (prefers-reduced-motion:reduce){.gal-item:hover img{transform:none;}}
@media (min-width:560px){.gal-masonry{column-count:2;}}
@media (min-width:900px){.gal-masonry{column-count:3;}}

.realisations-cta{text-align:center;margin-top:36px;}

/* FAQ */
.faq-list{margin:0 auto;padding:0;max-width:760px;list-style:none;}
.faq-item{border-bottom:1px solid var(--border);}
.faq-item:first-child{border-top:1px solid var(--border);}
.faq-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:20px 4px;text-align:left;font-family:var(--ff-display);font-size:clamp(1.05rem,2vw,1.25rem);font-weight:500;color:var(--text);}
.faq-trigger:hover{color:var(--accent);}
.faq-chevron{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  background:var(--accent-soft);color:var(--primary);transition:transform var(--t-fast);font-size:.9rem;line-height:1;}
.faq-trigger[aria-expanded="true"] .faq-chevron{transform:rotate(45deg);background:var(--accent);color:#fff;}
.faq-answer{padding:0 4px 22px;color:var(--text-2);font-size:.96rem;line-height:1.65;max-width:64ch;}
.faq-answer[hidden]{display:none;}

/* CONTACT */
.contact-section{background:var(--bg-alt);border-radius:var(--r-xl) var(--r-xl) 0 0;}
.contact-grid{display:grid;grid-template-columns:1fr;gap:32px;}
.contact-info h2{margin-bottom:14px;}
.contact-lead{color:var(--text-2);font-size:1.02rem;line-height:1.6;margin-bottom:26px;max-width:46ch;}
.contact-card{background:var(--primary);color:#fff;border-radius:var(--r-lg);padding:32px 26px;}
.contact-card h3{color:#fff;font-family:var(--ff-display);margin-bottom:8px;font-size:1.5rem;font-weight:500;}
.contact-card p{color:#C8DDD8;font-size:.92rem;margin-bottom:22px;}
.contact-tel{font-family:var(--ff-display);font-style:italic;font-size:clamp(1.6rem,4vw,2.2rem);color:#fff;text-decoration:none;display:block;margin-bottom:14px;line-height:1.05;letter-spacing:-0.01em;}
.contact-tel:hover{color:var(--accent-2);text-decoration:none;}
.contact-actions{display:flex;flex-direction:column;gap:10px;margin-top:14px;}
.contact-meta{margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,0.10);font-family:var(--ff-ui);font-size:.86rem;color:#B8CCC6;}
.contact-meta strong{color:#fff;font-weight:500;}
.contact-meta-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px;}
.contact-meta-row svg{flex-shrink:0;width:16px;height:16px;color:var(--accent-2);margin-top:3px;}

.horaires-table{margin-top:14px;width:100%;border-collapse:collapse;font-family:var(--ff-ui);font-size:.86rem;}
.horaires-table th,.horaires-table td{padding:7px 0;border-bottom:1px solid rgba(255,255,255,0.10);text-align:left;color:#C8DDD8;font-weight:400;}
.horaires-table td:last-child{text-align:right;color:#fff;}
.horaires-table tr.is-today th,.horaires-table tr.is-today td{color:#fff;font-weight:600;}
.horaires-table tr.is-today th::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#4ade80;margin-right:8px;vertical-align:middle;}
.horaires-table tr.is-closed td{color:#8FA5A0;}

/* FORM */
.contact-form{display:flex;flex-direction:column;gap:14px;}
.form-row{display:flex;flex-direction:column;gap:6px;}
.form-row label{font-family:var(--ff-ui);font-size:.82rem;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.06em;}
.form-row input,.form-row textarea{padding:13px 14px;border-radius:var(--r-sm);border:1.5px solid var(--border);
  background:var(--bg);color:var(--text);transition:border-color var(--t-fast);min-height:46px;}
.form-row textarea{min-height:120px;resize:vertical;font-family:inherit;}
.form-row input:focus,.form-row textarea:focus{outline:none;border-color:var(--accent);}
.form-msg{font-family:var(--ff-ui);font-size:.88rem;padding:10px 14px;border-radius:var(--r-sm);}
.form-msg.is-ok{background:color-mix(in srgb,var(--accent) 18%,var(--bg));color:var(--primary);}
.form-msg.is-err{background:#FCE7E7;color:#9A2A2A;}

@media (min-width:880px){
  .contact-grid{grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
}

/* MAP iframe (zone integrée dans contact) */
.zone-bonus{margin-top:30px;}
.map-wrapper{position:relative;width:100%;padding-top:54%;border-radius:var(--r-md);overflow:hidden;background:var(--bg-alt);}
.map-wrapper iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* SECTION HEAD */
.section-head{text-align:center;max-width:680px;margin:0 auto 36px;}
.section-head p{color:var(--text-2);font-size:1.02rem;margin-top:8px;}

/* REALISATIONS PAGE */
.page-head{padding-top:36px;padding-bottom:24px;text-align:center;}
.page-head h1{margin-bottom:12px;}
.page-head p{color:var(--text-2);max-width:580px;margin:0 auto;font-size:1.02rem;}
.page-back{display:inline-flex;align-items:center;gap:6px;font-family:var(--ff-ui);font-size:.9rem;color:var(--text-2);text-decoration:none;margin-bottom:14px;}
.page-back:hover{color:var(--accent);}
.page-back svg{width:14px;height:14px;}
