/* ===== RÉALISATIONS CSS ===== */

.page-hero{background:var(--dark);padding:3.5rem 0;text-align:center}
.page-hero .section-title{color:#fff;margin-bottom:.75rem}
.page-hero .section-title em{color:rgba(255,255,255,.82)}
.page-hero .eyebrow{color:var(--accent)}
.page-hero .section-desc{color:rgba(255,255,255,.55);margin:.75rem auto 0}

/* GRILLE INDEX */
.real-index{padding:4rem 0 5rem;background:var(--white)}
.real-index__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:3rem}

.real-cat-card{border-radius:var(--r-xl);overflow:hidden;background:var(--white);box-shadow:var(--shadow-sm);transition:box-shadow var(--t) var(--ease),transform var(--t) var(--ease);text-decoration:none;display:block}
.real-cat-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.real-cat-card__img{aspect-ratio:4/3;overflow:hidden;position:relative;background:var(--ph)}
.real-cat-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.real-cat-card:hover .real-cat-card__img img{transform:scale(1.04)}
.real-cat-card__img--soon{display:flex;align-items:center;justify-content:center;color:var(--muted)}
.real-cat-card__img--soon svg{opacity:.4}
.real-cat-card__overlay{position:absolute;inset:0;background:rgba(45,59,54,0);display:flex;align-items:center;justify-content:center;transition:background var(--t) var(--ease)}
.real-cat-card:hover .real-cat-card__overlay{background:rgba(45,59,54,.25)}
.real-cat-card__overlay span{opacity:0;background:var(--white);color:var(--dark);font-size:.8rem;font-weight:600;padding:.45rem 1rem;border-radius:var(--r);transition:opacity var(--t)}
.real-cat-card:hover .real-cat-card__overlay span{opacity:1}
.real-cat-card__body{padding:1rem 1.25rem 1.25rem}
.real-cat-card__title{display:block;font-size:1rem;font-weight:600;color:var(--dark);margin-bottom:.3rem}
.real-cat-card__link{display:block;font-size:.8rem;font-weight:500;color:var(--accent)}
.real-cat-card--soon{opacity:.7;pointer-events:none}
.real-cat-card__soon-label{display:block;font-size:.78rem;color:var(--muted);font-style:italic}

/* BARRE DÉCOUVRIR AUSSI */
.discover-bar{background:var(--white);border-bottom:1px solid var(--border);padding:.85rem 0;position:sticky;top:107px;z-index:90}
.discover-bar .container{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.discover-bar__label{font-size:.75rem;font-weight:600;color:var(--muted);margin-right:.25rem;white-space:nowrap;flex-shrink:0}
.discover-chip{padding:.35rem .9rem;border-radius:99px;font-size:.78rem;font-weight:400;border:1.5px solid var(--border);background:var(--white);color:var(--muted);cursor:pointer;white-space:nowrap;text-decoration:none;transition:all var(--t) var(--ease);display:inline-block}
.discover-chip:hover{border-color:var(--accent);color:var(--accent)}
.discover-chip--current{background:var(--dark);border-color:var(--dark);color:var(--white);font-weight:500}

/* HERO CATÉGORIE */
.cat-hero{background:var(--dark);padding:3rem 0}
.cat-hero .eyebrow{color:var(--accent)}
.cat-hero__title{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3rem);font-weight:400;color:var(--white);line-height:1.05;letter-spacing:-.02em;margin-bottom:.75rem}
.cat-hero__title em{font-style:italic;color:rgba(255,255,255,.82)}
.cat-hero__desc{font-size:.95rem;color:rgba(255,255,255,.55);line-height:1.7;max-width:520px}

/* CHANTIERS */
.chantiers-section{padding:4rem 0 5rem;background:var(--bg)}

.photo-grid{display:grid;gap:.75rem}
.photo-grid--1{grid-template-columns:1fr}
.photo-grid--2{grid-template-columns:1fr 1fr}
.photo-grid--3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}
.photo-grid--4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}

.photo-item{border-radius:var(--r-lg);overflow:hidden;position:relative;display:block}
.photo-item--tall{grid-row:1/3}
.photo-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease)}
.photo-grid--1 .photo-item img{aspect-ratio:16/9}
.photo-grid--2 .photo-item img{aspect-ratio:4/3}
.photo-grid--3 .photo-item--tall img{aspect-ratio:auto;min-height:280px}
.photo-grid--3 .photo-item:not(.photo-item--tall) img{aspect-ratio:1}
.photo-grid--4 .photo-item img{aspect-ratio:1}
.photo-item:hover img{transform:scale(1.03)}

.chantier{margin-bottom:0}
.chantier-sep{display:flex;align-items:center;gap:.75rem;margin:2.5rem 0}
.chantier-sep__line{flex:1;height:1px;background:var(--border)}
.chantier-sep__dot{width:6px;height:6px;border-radius:50%;background:var(--accent-b);flex-shrink:0}

/* AVANT / APRÈS */
.avant-apres{position:relative;border-radius:var(--r-lg);overflow:hidden;cursor:col-resize;user-select:none;max-width:480px;margin:0 auto}
.avant-apres__img{width:100%;display:block;aspect-ratio:9/16;object-fit:cover}
.avant-apres__after{position:absolute;inset:0;overflow:hidden}
.avant-apres__after img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.avant-apres__handle{position:absolute;top:0;bottom:0;width:3px;background:var(--white);cursor:col-resize;transform:translateX(-50%)}
.avant-apres__handle::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:50%;background:var(--white);box-shadow:var(--shadow)}
.avant-apres__handle::after{content:'⟨ ⟩';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.75rem;color:var(--dark);font-weight:700;line-height:1}
.avant-apres__label-before,.avant-apres__label-after{position:absolute;bottom:1rem;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:rgba(45,59,54,.7);color:#fff;padding:.35rem .85rem;border-radius:99px;cursor:zoom-in;display:inline-flex;align-items:center;gap:.35rem;transition:background .2s var(--ease);z-index:2}
.avant-apres__label-before:hover,.avant-apres__label-after:hover{background:rgba(26,122,69,.9)}
.avant-apres__label-before svg,.avant-apres__label-after svg{flex-shrink:0;opacity:.85}
.avant-apres__label-before{left:1rem}
.avant-apres__label-after{right:1rem}

/* CTA BAS */
.cat-cta{padding:3rem 0;text-align:center;background:var(--white)}
.cat-cta p{font-size:.9rem;color:var(--muted);margin-bottom:1.25rem}

/* LIGHTBOX */
.lightbox {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .22s ease;
}
.lightbox--visible { opacity: 1; }
.lightbox__overlay {
  position: absolute; inset: 0;
  background: rgba(6,14,8,.94);
  cursor: zoom-out;
}
.lightbox__inner {
  position: relative; z-index: 1;
  max-width: min(1100px, 92vw);
  display: flex; flex-direction: column; align-items: center; gap: .75rem;
}
.lightbox__img {
  max-width: 100%; max-height: 88vh;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 32px 80px rgba(0,0,0,.6);
  display: block;
}
.lightbox__close {
  position: absolute; top: -3rem; right: 0;
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,.15);
  color: #fff; display: flex; align-items: center; justify-content: center;
  cursor: pointer; border: none; transition: background .18s;
}
.lightbox__close:hover { background: rgba(255,255,255,.28); }
.lightbox__caption {
  font-size: .8rem; color: rgba(255,255,255,.45);
  text-align: center; max-width: 600px;
}

/* RESPONSIVE */
@media(max-width:768px){
  .real-index__grid{grid-template-columns:1fr 1fr}
  .photo-grid--3{grid-template-columns:1fr;grid-template-rows:auto}
  .photo-grid--3 .photo-item--tall{grid-row:auto}
  .photo-grid--4{grid-template-columns:1fr 1fr}
  .discover-bar{top:107px}
}
@media(max-width:480px){
  .real-index__grid{grid-template-columns:1fr}
  .photo-grid--2,.photo-grid--4{grid-template-columns:1fr}
}
