:root{
  --forest:#304d3b; --sage:#718c78; --terra:#c9785c; --cream:#f5f1e8;
  --paper:#fcfbf8; --ink:#303432; --gold:#c9a56a; --shadow:0 12px 30px rgba(36,56,45,.09);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}
a{color:inherit;text-decoration:none}.container{width:min(1180px,92%);margin:auto}
.topbar{height:76px;background:rgba(252,251,248,.96);display:flex;align-items:center;justify-content:space-between;padding:0 max(4vw,24px);position:sticky;top:0;z-index:20;border-bottom:1px solid #e9e6df}
.brand{display:flex;gap:12px;align-items:center;color:var(--forest)}.brand .logo{font-size:35px}.brand strong{display:block;font-size:19px;letter-spacing:.04em}.brand small{display:block;color:#555}
nav{display:flex;gap:30px;font-weight:650}nav a:hover{color:var(--terra)}.menu{display:none;border:0;background:none;font-size:25px}
.hero{min-height:500px;display:grid;align-items:center;background:linear-gradient(90deg,rgba(23,45,33,.78),rgba(23,45,33,.12)),url("images/hero.jpg") center/cover,linear-gradient(135deg,#55765d,#9db1a0)}
.hero-overlay{width:min(1180px,92%);margin:auto;color:white}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:13px;font-weight:750}.hero h1{font-size:clamp(44px,6vw,78px);line-height:.98;margin:12px 0 18px;max-width:780px}.hero p{font-size:20px;max-width:620px}
.button{display:inline-flex;gap:16px;align-items:center;background:var(--terra);color:white;padding:14px 21px;border-radius:10px;font-weight:750;margin-top:12px}.button:hover{filter:brightness(.94)}
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:24px}.quick>a{background:white;border-radius:14px;padding:20px;display:flex;align-items:center;gap:15px;box-shadow:var(--shadow)}.quick b{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#e5ece5;color:var(--forest);font-size:25px}.quick strong,.quick small{display:block}.quick small{color:#6d716e;margin-top:3px}
.two-cols{display:grid;grid-template-columns:1.25fr .85fr;gap:44px;padding:52px 0}.section-title{display:flex;justify-content:space-between;align-items:end;gap:15px}.section-title h2,.infos h2{color:var(--forest);font-size:30px;margin:0 0 20px}.section-title a{color:var(--terra);font-size:14px;margin-bottom:22px}
.news,.event{background:white;border-radius:13px;padding:13px;margin-bottom:13px;box-shadow:var(--shadow)}.news{display:grid;grid-template-columns:155px 1fr;gap:18px}.news time{font-size:13px;color:#747975}.news h3,.event h3{margin:5px 0;font-size:18px;color:#244232}.news p,.event p{margin:4px 0;color:#646965}.placeholder{height:108px;border-radius:9px;display:grid;place-items:center;color:white;font-weight:850;letter-spacing:.12em}.photo-road{background:linear-gradient(135deg,#728a7a,#344c3c)}.photo-party{background:linear-gradient(135deg,#c9785c,#70483b)}.photo-cat{background:linear-gradient(135deg,#b7a58d,#675c4d);font-size:35px}
.event{display:grid;grid-template-columns:74px 1fr;gap:16px;padding:18px}.date{border-radius:10px;background:#edf2ed;display:grid;place-items:center;padding:7px;color:var(--forest)}.date span{font-size:12px}.date b{font-size:28px}.date.terracotta{background:#f6e6df;color:#b65e42}
.gallery-section{padding:0 0 54px}.intro{color:#70746f;margin-top:-12px}.gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.gallery-card{border:0;min-height:175px;border-radius:12px;cursor:pointer;background-size:cover;background-position:center;position:relative;overflow:hidden;box-shadow:var(--shadow)}.gallery-card:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(20,30,24,.65))}.gallery-card span{position:absolute;left:13px;bottom:11px;color:white;font-weight:750;z-index:2}.g1{background-image:url("images/gallery-1.jpg"),linear-gradient(135deg,#e69b70,#4c6b74)}.g2{background-image:url("images/gallery-2.jpg"),linear-gradient(135deg,#d9b6bb,#728e79)}.g3{background-image:url("images/gallery-3.jpg"),linear-gradient(135deg,#91a277,#536f5c)}.g4{background-image:url("images/gallery-4.jpg"),linear-gradient(135deg,#e7d9c7,#7e9b77)}.g5{background-image:url("images/gallery-5.jpg"),linear-gradient(135deg,#d8e5e7,#536c7b)}
.infos{background:var(--cream);padding:42px 0}.info-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px}.info-grid a{background:rgba(255,255,255,.72);padding:20px 10px;border-radius:13px;text-align:center}.info-grid b{display:block;color:var(--forest);font-size:28px;margin-bottom:8px}.info-grid span{font-size:14px;font-weight:650}
.contact{background:linear-gradient(110deg,#254a36,#718c78);color:white;padding:48px 0}.contact-inner{display:flex;justify-content:space-between;align-items:center;gap:30px}.contact h2{font-size:30px;margin:0}.contact p{margin:5px 0}.button.light{background:white;color:var(--forest);margin:0}
footer{background:#1f4534;color:#eaf0eb;padding:27px 0}.footer-inner{display:grid;grid-template-columns:1fr auto 1fr;gap:25px;align-items:center;font-size:13px}.footer-inner>div:last-child{text-align:right}.footer-inner small{display:block;opacity:.75}
dialog{border:0;border-radius:16px;padding:18px;max-width:min(800px,90vw);box-shadow:0 25px 70px #0006}.viewer-image{width:70vw;max-width:740px;height:55vh;border-radius:10px;background:linear-gradient(135deg,#718c78,#304d3b);background-size:cover;background-position:center}.close{float:right;border:0;background:none;font-size:30px;cursor:pointer}dialog p{text-align:center;font-weight:700}
@media(max-width:850px){nav{display:none;position:absolute;top:76px;left:0;right:0;background:white;padding:22px;flex-direction:column;gap:16px}nav.open{display:flex}.menu{display:block}.brand small{display:none}.quick{grid-template-columns:1fr 1fr}.two-cols{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}.info-grid{grid-template-columns:repeat(2,1fr)}.footer-inner{grid-template-columns:1fr;text-align:center}.footer-inner>div:last-child{text-align:center}.contact-inner{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.hero{min-height:520px}.hero h1{font-size:43px}.quick{grid-template-columns:1fr}.news{grid-template-columns:110px 1fr}.gallery{grid-template-columns:1fr}.gallery-card{min-height:220px}}
/* ============================================================
   GALERIE PRIVÉE
   ============================================================ */

.private-gallery-card {
  width: 100%;
  max-width: 510px;
  padding: 13px;

  display: grid;
  grid-template-columns: 155px 1fr;
  gap: 18px;
  align-items: center;

  background: #ffffff;
  border-radius: 13px;
  box-shadow: var(--shadow);
}

.private-gallery-icon {
  width: 155px;
  height: 108px;

  display: grid;
  place-items: center;

  border-radius: 9px;
  background: linear-gradient(135deg,#728a7a,#344c3c);

  color: white;
  font-size: 28px;
}

.private-gallery-info {
  min-width: 0;
}

.private-gallery-label {
  margin: 0 0 3px;

  color: #747975;

  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
}

.private-gallery-info h3 {
  margin: 2px 0;

  color: #244232;

  font-size: 18px;
  line-height: 1.3;
}

.private-gallery-info p {
  margin: 0 0 8px;

  color: #747975;

  font-size: 13px;
}

.private-gallery-link {
  display: inline-block;

  color: var(--terra);

  font-size: 13px;
  font-weight: 750;

  text-decoration: none;
  white-space: nowrap;
}

.private-gallery-link:hover {
  color: var(--forest);
  text-decoration: underline;
}


/* MOBILE */

@media(max-width:520px) {

  .private-gallery-card {
    grid-template-columns: 100px 1fr;
  }

  .private-gallery-icon {
    width: 100px;
    height: 90px;
  }

}

/* Galerie privée : une seule colonne pleine largeur */
#gallery-list {
  display: block;
}

#gallery-list .private-gallery-card {
  width: 100%;
  max-width: 510px;
}

/* Événement simple : titre sur une seule ligne */
.event.event-simple {
  display: block;
  padding: 18px;
}

.event.event-simple h3 {
  display: block;
  margin: 0;
  white-space: nowrap;
}
.welcome-news {
  display: block;
  text-align: center;
  padding: 24px;
}

.welcome-news h3 {
  margin: 0;
  font-size: 20px;
}

.welcome-smile {
  margin: 8px 0 0 !important;
  font-size: 28px;
  line-height: 1;
}
.hero{
  min-height:500px;
  display:grid;
  align-items:center;
  background:
    linear-gradient(
      90deg,
      rgba(20,35,27,.68) 0%,
      rgba(20,35,27,.28) 45%,
      rgba(20,35,27,.04) 100%
    ),
  url("images/hero.webp") center 60% / cover no-repeat;
}