:root{--accent:#e63946;--text:#111;--muted:#666}
*{box-sizing:border-box}
body{font-family:Inter,system-ui,Arial,sans-serif;margin:0;color:var(--text);background:#fff}
.container{max-width:1200px;margin:0 auto;padding:0 1rem}
.topbar{border-bottom:1px solid #eee;background:#fff;position:sticky;top:0;z-index:50}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;padding:0.25rem 0}
.brand{font-weight:700;text-decoration:none;color:inherit;font-size:1.05rem}
.nav-right{display:flex;gap:0rem;align-items:center}
.menu{position:relative}
.menu-btn, .plain-btn{
  background:transparent;border:0;padding:0.5rem 0.75rem;border-radius:6px;cursor:pointer;font-size:0.95rem;padding:0.5rem 1rem;color:var(--text);text-decoration:none;
}
.menu-btn:hover, .plain-btn:hover{background:rgba(0,0,0,0.04)}
.dropdown{
  position:absolute;right:0;top:calc(100% + 8px);min-width:180px;background:#fff;border:1px solid #e6e6e6;border-radius:8px;padding:0.5rem 0;box-shadow:0 6px 18px rgba(0,0,0,0.08);display:none;
}
.dropdown a{display:block;padding:0.5rem 1rem;color:var(--text);text-decoration:none}
.dropdown a:hover{background:rgba(0,0,0,0.03)}
.dropdown[aria-hidden="false"]{display:block}

.hero-home{ position:relative; min-height:70vh; display:flex; align-items:center; color:#fff; overflow:hidden; }
.hero-bg{
  position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%;
}
.hero-bg img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; filter:contrast(1.02) saturate(1.02); }

/* overlay */
.hero-home::before{
  content:""; position:absolute; inset:0; background:linear-gradient(rgba(0,0,0,0.35), rgba(0,0,0,0.45)); z-index:1;
}

/* contenu au-dessus */
.hero-inner{ position:relative; z-index:2; width:100%; }
.hero-content{ margin:0 auto; text-align:center; max-width:1200px; padding:2rem 2rem; }


.hero-content h1 {
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin: 0 0 0.5rem;
  font-size: clamp(2rem, 6vw, 5.2rem); /* min, responsive, max */
  max-width: 95%;
  word-break: break-word;
  text-wrap: balance;
  text-shadow: 0 6px 18px rgba(0,0,0,0.45);
}


/* footer : s'assurer qu'il n'est pas en position absolue et qu'il a du padding */
.site-footer,
footer {
  position: relative; /* annule absolute/fixed si présent */
  clear: both;
  padding: 2.5rem 1rem;
  margin-top: 2rem;
  background: var(--footer-bg, #fafafa);
  color: var(--footer-color, #222);
  z-index: 10;
}


.index-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr; /* mobile fallback */
}

@media (min-width: 700px) {
  .index-grid {
    grid-template-columns: repeat(2, 1fr); /* exactement 2 colonnes */
  }
}

.index-grid .card,
.index-grid img.responsive-img {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}


/* --- Grille responsive --- */
.container { max-width:1200px; margin:1rem auto; padding:0 1.5rem; box-sizing:border-box; }
.season-gallery .grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  column-gap: 0.6rem;
  row-gap: 0.75rem;
  width: 100%;
  max-width: 900px; /* laisse la grille s'étendre dans le container */
  margin: auto auto;
  justify-items: center;
}

@media (min-width: 1200px) {
  .season-gallery .grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  }
}


.season-gallery .grid .card {
  max-width: none; margin: 0;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 2rem !important;
  box-sizing: border-box !important;
}

/* Card et image */
.card { overflow:hidden; border-radius:8px; background:transparent; }
.card-link { display:block; color:inherit; text-decoration:none; }
.responsive-img,
.card picture img {
  aspect-ratio: 1 / 1;
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
  border-radius: 3px;
}


/* Caption sous vignette */
.card .caption { margin: .5rem; font-size: .95rem; color:var(--text); display: none; }

/* --- Lightbox overlay --- */
.lightbox {
  display:none;
  position:fixed;
  inset:0;
  z-index:2000;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}
.lightbox[aria-hidden="false"] { display:flex; pointer-events:auto; }

/* Backdrop */
.lightbox-backdrop { position:absolute; inset:0; background:rgba(0,0,0,0.7); }

/* Panel */
.lightbox-panel {
  position:relative;
  z-index:2;
  width:calc(100% - 2rem);
  max-width:1200px;
  margin:auto;
  display:flex;
  gap:1rem;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
}

/* Media area */
.lb-media { flex:1 1 auto; text-align:center; padding:1rem; }
.lb-media img { width:100%; height:auto; max-height:92vh; object-fit:contain; display:block; margin:0 auto; border-radius:6px; }
.lb-caption { margin-top:.5rem; color:#fff; font-size:1rem; text-align:center; }

/* Controls */
.lb-close, .lb-prev, .lb-next {
  background:rgba(0,0,0,0.5); color:#fff; border:0; padding:.5rem .75rem; border-radius:6px; cursor:pointer;
}
.lb-close { position:absolute; top:.6rem; right:.6rem; z-index:3; }
.lb-prev, .lb-next { font-size:1.6rem; }

/* Mobile tweaks */
@media (max-width:700px) {
  .lightbox-panel { flex-direction:column; gap:.5rem; }
  .lb-prev, .lb-next { position:relative; }
}

/* Safety overrides to avoid conflicts */
.season-gallery .grid img.responsive-img {
  aspect-ratio: 1/1 !important;
  width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
}