/* ══════════════════════════════════════════════════
   GALERIE PHOTOS — Mobile-first
══════════════════════════════════════════════════ */

.gallery-hero {
  background:linear-gradient(145deg,#0f1128 0%,#1a1d3b 50%,#2d1060 100%);
  padding:clamp(90px,12vw,130px) 0 clamp(50px,7vw,80px);
  position:relative;overflow:hidden;
}
.gallery-hero::before { content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:32px 32px;pointer-events:none; }
.gh-orb { position:absolute;border-radius:50%;pointer-events:none; }
.gh-orb-1 { width:500px;height:500px;top:-180px;right:-100px;background:radial-gradient(circle,rgba(130,190,96,.18),transparent 70%); }
.gh-orb-2 { width:360px;height:360px;bottom:-80px;left:-60px; background:radial-gradient(circle,rgba(54,162,206,.16),transparent 70%); }
.gh-label { display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.7);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:7px 18px;border-radius:50px;margin-bottom:20px; }
.gallery-hero h1 { font-family:var(--font-heading);font-size:clamp(1.9rem,5vw,3.2rem);font-weight:800;color:#fff;line-height:1.15;margin-bottom:16px; }
.gallery-hero-sub { font-size:clamp(.9rem,1.8vw,1.05rem);color:rgba(255,255,255,.7);line-height:1.8;max-width:520px; }
.gh-breadcrumb { display:flex;align-items:center;gap:8px;margin-top:24px;font-size:.78rem;color:rgba(255,255,255,.4);flex-wrap:wrap; }
.gh-breadcrumb a { color:rgba(255,255,255,.55);text-decoration:none; }
.gh-breadcrumb a:hover { color:#fff; }

/* Filtres */
.gallery-filters { padding:clamp(20px,3vw,28px) 0;background:#fff;border-bottom:1px solid var(--c-border);position:sticky;top:70px;z-index:50; }
.gf-inner { display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.gf-tag { display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:50px;font-family:var(--font-heading);font-size:.78rem;font-weight:700;border:1.5px solid var(--c-border);background:#fff;color:var(--c-text);cursor:pointer;transition:all .2s;text-decoration:none;white-space:nowrap; }
.gf-tag:hover,.gf-tag.active { background:var(--c-navy);color:#fff;border-color:var(--c-navy); }
.gf-tag.active { background:var(--grad-main);border-color:transparent; }

/* Section galerie */
.section-gallery { padding:clamp(40px,6vw,72px) 0;background:var(--c-light); }

/* Masonry-like grid */
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:200px;
  gap:clamp(8px,1.5vw,14px);
}

/* Items avec différentes tailles */
.gi-item {
  border-radius:14px;overflow:hidden;position:relative;
  cursor:pointer;
  background:linear-gradient(135deg,rgba(78,43,134,.1),rgba(54,162,206,.07));
}
.gi-item.gi-wide  { grid-column:span 2; }
.gi-item.gi-tall  { grid-row:span 2; }
.gi-item.gi-large { grid-column:span 2;grid-row:span 2; }

.gi-item img {
  width:100%;height:100%;object-fit:cover;
  transition:transform .4s ease;display:block;
}
.gi-item:hover img { transform:scale(1.05); }

/* Placeholder quand pas d'image */
.gi-placeholder {
  width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;color:rgba(78,43,134,.25);
  background:linear-gradient(135deg,rgba(78,43,134,.06),rgba(54,162,206,.04));
}
.gi-placeholder i { font-size:2rem; }
.gi-placeholder span { font-family:var(--font-heading);font-size:.72rem;font-weight:600;text-align:center;padding:0 12px; }

/* Overlay au hover */
.gi-overlay {
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(26,29,59,.85),transparent 50%);
  opacity:0;transition:opacity .3s;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(14px,2vw,20px);
}
.gi-item:hover .gi-overlay { opacity:1; }
.gi-cat {
  font-family:var(--font-heading);font-size:.68rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.6);
  margin-bottom:4px;
}
.gi-title { font-family:var(--font-heading);font-size:clamp(.8rem,1.5vw,.92rem);font-weight:700;color:#fff;line-height:1.35; }
.gi-zoom {
  position:absolute;top:12px;right:12px;
  width:32px;height:32px;border-radius:50%;
  background:rgba(255,255,255,.15);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:.75rem;
  opacity:0;transition:opacity .3s,transform .3s;
  transform:scale(.7);
}
.gi-item:hover .gi-zoom { opacity:1;transform:scale(1); }

/* Lightbox */
.lightbox {
  position:fixed;inset:0;z-index:9999;
  background:rgba(15,12,40,.95);
  display:none;
  align-items:center;justify-content:center;
  padding:20px;
  backdrop-filter:blur(8px);
}
.lightbox.open { display:flex; }
.lb-inner { position:relative;max-width:1000px;width:100%;max-height:90vh; }
.lb-img {
  width:100%;max-height:80vh;object-fit:contain;
  border-radius:16px;display:block;
}
.lb-placeholder {
  width:100%;height:500px;max-height:70vh;
  background:linear-gradient(135deg,rgba(78,43,134,.15),rgba(54,162,206,.1));
  border-radius:16px;
  display:flex;align-items:center;justify-content:center;flex-direction:column;
  gap:14px;color:rgba(255,255,255,.4);font-family:var(--font-heading);
}
.lb-placeholder i { font-size:3.5rem; }
.lb-caption {
  text-align:center;margin-top:16px;
  font-family:var(--font-heading);color:rgba(255,255,255,.7);font-size:.88rem;
}
.lb-close {
  position:fixed;top:20px;right:20px;
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.1rem;cursor:pointer;
  transition:background .2s;
}
.lb-close:hover { background:rgba(239,68,68,.6); }
.lb-nav {
  position:absolute;top:50%;transform:translateY(-50%);
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1rem;cursor:pointer;transition:background .2s;
}
.lb-nav:hover { background:rgba(255,255,255,.2); }
.lb-prev { left:-60px; }
.lb-next { right:-60px; }

/* Charger plus */
.load-more-wrap { text-align:center;margin-top:clamp(32px,5vw,48px); }

/* Stats galerie */
.gallery-stats {
  display:flex;gap:0;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);border-radius:14px;
  overflow:hidden;margin-top:32px;max-width:400px;
}
.gst-item { flex:1;padding:14px;text-align:center;border-right:1px solid rgba(255,255,255,.08); }
.gst-item:last-child { border-right:none; }
.gst-val { font-family:var(--font-heading);font-size:1.3rem;font-weight:800;color:#fff; }
.gst-lbl { font-size:.66rem;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.04em;margin-top:2px; }

/* RESPONSIVE */
@media (max-width:1199px) { .gallery-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:991px) {
  .gallery-grid { grid-template-columns:repeat(3,1fr);grid-auto-rows:160px; }
  .lb-prev { left:-50px; }
  .lb-next { right:-50px; }
  .gallery-filters { top:60px; }
}
@media (max-width:767px) {
  .gallery-grid { grid-template-columns:repeat(2,1fr);grid-auto-rows:150px; }
  .gi-item.gi-wide,.gi-item.gi-large { grid-column:span 1; }
  .gi-item.gi-tall,.gi-item.gi-large { grid-row:span 1; }
  .lb-prev,.lb-next { display:none; }
  .lb-inner { max-height:85vh; }
  .gf-tag { padding:6px 14px;font-size:.74rem; }
}
@media (max-width:480px) {
  .gallery-grid { grid-template-columns:repeat(2,1fr);grid-auto-rows:130px;gap:6px; }
  .gi-overlay { padding:10px; }
  .gi-title { font-size:.76rem; }
}
