/* ============== 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{font-family:var(--ff-ui);text-transform:uppercase;letter-spacing:0.22em;
  font-size:0.78rem;color:var(--accent);margin-bottom:18px;font-weight:600;display:inline-block;}
.hero-centre__title{font-family:var(--ff-display);font-size:clamp(2.1rem, 6.2vw, 4.6rem);
  line-height:1.04;color:var(--text);font-weight:600;letter-spacing:-0.012em;margin:0;}
.hero-centre__title em{font-style:italic;color:var(--accent);font-weight:500;}
.hero-centre__sub{font-family:var(--ff-body);font-size:clamp(1rem, 1.6vw, 1.15rem);color:var(--text-2);
  margin:20px auto 24px;max-width:54ch;line-height:1.55;}
.hero-centre__usps{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 auto 28px;}
.hero-centre__cta{display:flex;flex-direction:column;gap:12px;align-items:center;max-width:380px;margin:0 auto;}
.hero-centre__cta .btn{width:100%;}
@media (min-width: 560px){
  .hero-centre__cta{flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:none;}
  .hero-centre__cta .btn{width:auto;}
}
.hero-centre__rating{margin-top:22px;}
.hero-centre__band{width:100%;aspect-ratio:21/9;border-radius:14px;overflow:hidden;
  margin-top:clamp(28px,5vw,56px);position:relative;
  box-shadow:0 18px 50px rgba(15,25,21,0.18);}
.hero-centre__band img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-centre__band-tag{position:absolute;left:18px;bottom:14px;
  background:color-mix(in srgb, var(--surface-deep) 84%, transparent);color:var(--text-on-dark);
  padding:8px 14px;border-radius:999px;font-family:var(--ff-ui);font-size:0.78rem;font-weight:600;
  letter-spacing:0.04em;backdrop-filter:blur(6px);}
@media (max-width: 768px){
  .hero-centre{padding:calc(var(--header-h-mobile) + 28px) 20px 24px;}
  .hero-centre__band{aspect-ratio:16/10;}
}

/* ============== STATS STRIP ============== */
.stats-strip{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  padding:36px 0;}
.stats-grid{display:grid;grid-template-columns:1fr;gap:28px;text-align:center;}
@media (min-width: 700px){.stats-grid{grid-template-columns:repeat(3,1fr);gap:24px;}}
.stat-item{padding:0 12px;}
.stat-item + .stat-item{border-top:1px solid var(--border);padding-top:24px;}
@media (min-width: 700px){.stat-item + .stat-item{border-top:0;padding-top:0;border-left:1px solid var(--border);}}
.stat-number{display:block;font-family:var(--ff-display);font-size:clamp(2rem, 4vw, 2.6rem);
  color:var(--accent);font-weight:600;letter-spacing:-0.01em;line-height:1;margin-bottom:8px;}
.stat-label{display:block;font-family:var(--ff-ui);font-size:0.84rem;color:var(--text-2);
  letter-spacing:0.04em;}

/* ============== SERVICES (LAY-6 grid-asym) ============== */
.services{padding:60px 0;}
@media (min-width: 768px){.services{padding:88px 0;}}
.svc-asym{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;}
.svc-asym__card{grid-column:span 2;display:flex;flex-direction:column;gap:14px;
  background:color-mix(in srgb, var(--text) 4%, var(--bg));border-radius:22px 4px 22px 4px;
  padding:24px;min-height:200px;transition:transform var(--t-base), box-shadow var(--t-base);}
.svc-asym__card:nth-child(even){border-radius:4px 22px 4px 22px;}
.svc-asym__card--wide{grid-column:span 3;}
.svc-asym__card--lead{grid-column:span 4;background:var(--surface-deep);color:var(--text-on-dark);}
.svc-asym__card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,25,21,0.10);}
@media (max-width: 768px){.svc-asym{grid-template-columns:1fr;gap:14px;}
  .svc-asym__card,.svc-asym__card--wide,.svc-asym__card--lead{grid-column:1/-1;}}
.svc-num{font-family:var(--ff-display);font-style:italic;color:var(--accent);font-size:0.95rem;
  letter-spacing:0.04em;}
.svc-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  background:color-mix(in srgb, var(--accent) 14%, var(--bg));color:var(--accent);}
.svc-icon svg{width:22px;height:22px;}
.svc-asym__card h3{font-family:var(--ff-display);font-size:1.24rem;margin:0;color:var(--text);
  font-weight:600;letter-spacing:-0.01em;}
.svc-asym__card--lead h3{color:var(--text-on-dark);font-size:1.42rem;}
.svc-asym__card p{font-size:0.95rem;color:var(--text-2);margin:0;line-height:1.55;}
.svc-asym__card--lead p{color:color-mix(in srgb, var(--text-on-dark) 84%, transparent);}
.svc-asym__card--lead .svc-num{color:var(--accent-on-dark);}
.svc-asym__card--lead .svc-icon{background:color-mix(in srgb, var(--accent-on-dark) 16%, transparent);
  color:var(--accent-on-dark);}

/* ============== REALISATIONS (LAY-6 gallery grid-feat) ============== */
.gal-feat{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:12px;}
.gal-item{position:relative;cursor:pointer;border-radius:12px;overflow:hidden;background:var(--bg-alt);
  aspect-ratio:1/1;transition:transform var(--t-base);}
.gal-item:hover{transform:translateY(-3px);}
.gal-item img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .55s cubic-bezier(.2,.7,.2,1);}
.gal-item:hover img{transform:scale(1.04);}
.gal-feat__big{grid-column:span 2;grid-row:span 2;}
.gal-feat__big{aspect-ratio:auto;}
@media (max-width: 640px){
  .gal-feat{grid-template-columns:repeat(2,1fr);}
  .gal-feat__big{grid-column:span 2;grid-row:span 1;aspect-ratio:16/10;}
}
.gal-cta{margin-top:24px;text-align:center;}

/* ============== A PROPOS ============== */
.apropos{padding:60px 0;}
@media (min-width: 768px){.apropos{padding:88px 0;}}
.apropos-grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:center;}
@media (min-width: 900px){.apropos-grid{grid-template-columns:1.05fr 1fr;gap:56px;}}
.apropos-text h2{font-size:clamp(1.7rem, 3.6vw, 2.5rem);margin-bottom:18px;}
.apropos-text h2 em{font-style:italic;color:var(--accent);font-weight:500;}
.apropos-text p{font-size:1rem;line-height:1.65;color:var(--text-2);}
.apropos-text p:first-of-type::first-letter{font-family:var(--ff-display);font-size:3.2rem;
  float:left;line-height:0.9;padding:6px 10px 0 0;color:var(--accent);font-weight:600;font-style:italic;}
.apropos-points{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;list-style:none;padding:0;}
@media (max-width: 480px){.apropos-points{grid-template-columns:1fr;}}
.apropos-points li{display:flex;align-items:center;gap:10px;font-size:0.92rem;color:var(--text);
  background:color-mix(in srgb, var(--accent) 8%, var(--bg));padding:10px 14px;border-radius:10px;
  font-weight:500;}
.apropos-points li svg{color:var(--accent);flex-shrink:0;}
.apropos-photo{position:relative;}
.apropos-photo figure{width:100%;border-radius:22px 4px 22px 4px;overflow:hidden;
  box-shadow:0 18px 40px rgba(15,25,21,0.12);}
.apropos-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;}
.apropos-photo .photo-tag{position:absolute;left:18px;bottom:18px;background:var(--surface);
  padding:10px 16px;border-radius:999px;font-family:var(--ff-ui);font-size:0.8rem;
  color:var(--text);font-weight:600;box-shadow:0 8px 20px rgba(15,25,21,0.12);
  display:inline-flex;align-items:center;gap:6px;}
.apropos-photo .photo-tag svg{color:var(--accent);}

/* ============== AVIS (LAY-6 row-sep) ============== */
.avis{background:var(--bg-alt);padding:60px 0;}
@media (min-width: 768px){.avis{padding:88px 0;}}
.avis-rows{display:flex;flex-direction:column;}
.avis-rows__item{padding:26px 0;border-top:1px solid color-mix(in srgb, var(--text) 14%, transparent);
  display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:flex-start;}
@media (min-width: 700px){.avis-rows__item{grid-template-columns:auto 1fr auto;gap:24px;align-items:center;}}
.avis-rows__item:last-child{border-bottom:1px solid color-mix(in srgb, var(--text) 14%, transparent);}
.avis-rows__num{font-family:var(--ff-display);font-style:italic;color:var(--accent);font-size:1.05rem;
  letter-spacing:0.04em;}
.avis-rows__body{min-width:0;}
.avis-rows__quote{font-family:var(--ff-display);font-size:clamp(1.05rem, 1.8vw, 1.3rem);
  line-height:1.4;color:var(--text);margin:0 0 12px;font-style:italic;font-weight:500;}
.avis-rows__quote::before{content:"\201C";color:var(--accent);font-size:1.4em;margin-right:4px;line-height:0;}
.avis-rows__meta{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;font-family:var(--ff-ui);
  font-size:0.85rem;color:var(--text-2);}
.avis-rows__author{font-weight:600;color:var(--text);}
.avis-rows__date{color:var(--text-mute);}
.avis-rows__stars{display:inline-flex;gap:2px;color:var(--star-gold);}
.avis-rows__stars svg{width:14px;height:14px;}
.avis-rows__badge{display:inline-flex;align-items:center;gap:6px;font-size:0.78rem;color:var(--text-2);
  padding:4px 10px;background:var(--surface);border-radius:999px;}
.avis-cta{margin-top:32px;text-align:center;}
.avis-cta a{color:var(--accent);text-decoration:none;font-family:var(--ff-ui);font-weight:600;
  font-size:0.95rem;display:inline-flex;align-items:center;gap:6px;
  border-bottom:1.5px solid color-mix(in srgb, var(--accent) 40%, transparent);padding-bottom:2px;
  transition:border-color var(--t-fast);}
.avis-cta a:hover{border-color:var(--accent);}

/* ============== FAQ ============== */
.faq{padding:60px 0;}
@media (min-width: 768px){.faq{padding:88px 0;}}
.faq-list{display:flex;flex-direction:column;gap:0;max-width:860px;margin:0 auto;list-style:none;padding:0;}
.faq-item{border-top:1px solid var(--border);}
.faq-item:last-child{border-bottom:1px solid var(--border);}
.faq-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:22px 4px;background:transparent;border:0;cursor:pointer;text-align:left;
  font-family:var(--ff-display);font-size:1.06rem;color:var(--text);font-weight:600;
  transition:color var(--t-fast);}
.faq-trigger:hover{color:var(--accent);}
.faq-chevron{position:relative;width:18px;height:18px;flex-shrink:0;}
.faq-chevron::before,.faq-chevron::after{content:"";position:absolute;background:var(--accent);
  border-radius:1px;}
.faq-chevron::before{top:50%;left:0;right:0;height:2px;transform:translateY(-50%);}
.faq-chevron::after{left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%);
  transition:transform var(--t-fast);}
.faq-trigger[aria-expanded="true"] .faq-chevron::after{transform:translateX(-50%) scaleY(0);}
.faq-answer{padding:0 4px 22px;color:var(--text-2);font-size:0.98rem;line-height:1.65;}
.faq-answer p{margin:0;}

/* ============== ZONE + CARTE ============== */
.zone{background:var(--surface);padding:60px 0;}
@media (min-width: 768px){.zone{padding:88px 0;}}
.zone-grid{display:grid;grid-template-columns:1fr;gap:32px;}
@media (min-width: 900px){.zone-grid{grid-template-columns:1fr 1.1fr;gap:48px;align-items:start;}}
.zone-info h3{font-family:var(--ff-display);font-size:1.06rem;text-transform:uppercase;
  letter-spacing:0.12em;color:var(--accent);font-weight:600;margin:0 0 14px;}
.zone-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px;}
.zone-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;
  background:color-mix(in srgb, var(--accent) 12%, var(--bg));color:var(--accent);
  font-family:var(--ff-ui);font-size:0.84rem;font-weight:600;}
.horaires-table{display:grid;grid-template-columns:1fr auto;gap:6px 18px;
  font-family:var(--ff-body);font-size:0.95rem;margin-bottom:22px;}
.horaires-table .day{color:var(--text);font-weight:500;text-transform:capitalize;
  padding:8px 0;border-bottom:1px solid color-mix(in srgb, var(--text) 8%, transparent);}
.horaires-table .hours{color:var(--text-2);padding:8px 0;text-align:right;
  border-bottom:1px solid color-mix(in srgb, var(--text) 8%, transparent);}
.horaires-table .is-today .day{color:var(--accent);font-weight:700;}
.horaires-table .is-today .hours{color:var(--accent);font-weight:600;}
.horaires-table .is-closed .hours{color:var(--text-mute);font-style:italic;}
.dispo-line{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;
  background:color-mix(in srgb, var(--accent) 10%, var(--bg));font-family:var(--ff-ui);font-size:0.88rem;
  color:var(--text);font-weight:600;}
.dispo-dot{width:10px;height:10px;border-radius:50%;background:#48b56f;flex-shrink:0;
  box-shadow:0 0 0 3px rgba(72,181,111,0.22);}
.dispo-line.is-closed .dispo-dot{background:#c44b4b;box-shadow:0 0 0 3px rgba(196,75,75,0.22);}
.zone-map{width:100%;border-radius:14px;overflow:hidden;border:1px solid var(--border);
  background:var(--bg-alt);}
.zone-map iframe{width:100%;height:380px;border:0;display:block;}
@media (max-width: 700px){.zone-map iframe{height:300px;}}

/* ============== CONTACT ============== */
.contact{background:var(--surface-deep);color:var(--text-on-dark);padding:60px 0;}
@media (min-width: 768px){.contact{padding:88px 0;}}
.contact .sec-head h2{color:var(--text-on-dark);}
.contact .sec-head h2 em{color:var(--accent-on-dark);font-style:italic;font-weight:500;}
.contact .eyebrow{color:var(--accent-on-dark);}
.contact .sec-head p{color:color-mix(in srgb, var(--text-on-dark) 80%, transparent);}
.contact-grid{display:grid;grid-template-columns:1fr;gap:36px;}
@media (min-width: 900px){.contact-grid{grid-template-columns:1fr 1fr;gap:56px;}}
.contact-rows{display:flex;flex-direction:column;gap:14px;margin-bottom:24px;}
.contact-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;
  background:color-mix(in srgb, var(--text-on-dark) 6%, transparent);
  border:1px solid var(--border-on-dark);text-decoration:none;color:var(--text-on-dark);
  transition:background var(--t-fast), border-color var(--t-fast);}
.contact-row:hover{background:color-mix(in srgb, var(--text-on-dark) 10%, transparent);
  border-color:var(--accent-on-dark);}
.contact-row__icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  background:color-mix(in srgb, var(--accent-on-dark) 20%, transparent);color:var(--accent-on-dark);flex-shrink:0;}
.contact-row__icon svg{width:20px;height:20px;}
.contact-row__label{font-family:var(--ff-ui);font-size:0.76rem;text-transform:uppercase;
  letter-spacing:0.12em;color:color-mix(in srgb, var(--text-on-dark) 60%, transparent);}
.contact-row__value{font-family:var(--ff-display);font-size:1.04rem;color:var(--text-on-dark);
  font-weight:600;}
.contact-cta{display:flex;flex-direction:column;gap:12px;margin-top:8px;}
@media (min-width: 480px){.contact-cta{flex-direction:row;}.contact-cta .btn{flex:1;}}

.contact .form input,.contact .form select,.contact .form textarea{
  background:color-mix(in srgb, var(--text-on-dark) 4%, transparent);
  border:1px solid var(--border-on-dark);color:var(--text-on-dark);}
.contact .form input::placeholder,.contact .form textarea::placeholder{
  color:color-mix(in srgb, var(--text-on-dark) 55%, transparent);}
.contact .form label{color:var(--text-on-dark);}
.contact .form-note{color:color-mix(in srgb, var(--text-on-dark) 65%, transparent);}
.contact .form input:focus,.contact .form select:focus,.contact .form textarea:focus{
  border-color:var(--accent-on-dark);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-on-dark) 16%, transparent);}
