:root{
  --vert:#345b2d;
  --vert2:#243d20;
  --creme:#fffaf0;
  --or:#c8922d;
  --texte:#2d2a26;
  --gris:#6a665f;
  --blanc:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  background:var(--creme);
  color:var(--texte);
  line-height:1.55;
}
header{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(255,250,240,.97);
  border-bottom:1px solid #ded7ca;
  backdrop-filter:blur(8px);
}
.nav{
  max-width:1180px;
  margin:auto;
  padding:12px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.brand{
  font-family:Georgia,serif;
  font-weight:700;
  color:var(--vert);
  font-size:1.06rem;
  text-decoration:none;
}
nav{display:flex;gap:16px;flex-wrap:wrap}
nav a{
  text-decoration:none;
  color:var(--texte);
  font-weight:700;
  font-size:.92rem;
  padding:4px 0;
}
nav a:hover, nav a.active{color:var(--vert);border-bottom:2px solid var(--vert)}
.hero{background:#dce6df;line-height:0}
.hero img{display:block;width:100%;height:auto}
.intro,.section{padding:42px 18px}
.container{max-width:1120px;margin:auto}
.intro{max-width:960px;margin:auto;text-align:center}
h1,h2{font-family:Georgia,serif;color:var(--vert);line-height:1.15}
h1{font-size:clamp(2rem,4vw,3.1rem);margin:0 0 10px}
h2{font-size:clamp(1.7rem,3vw,2.4rem);text-align:center;margin:0 0 18px}
h3{color:var(--vert)}
.date{font-size:1.2rem;font-weight:700;color:#8a5d1c;margin-bottom:10px}
.buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:11px;margin-top:22px}
.btn{
  display:inline-block;
  padding:12px 18px;
  border-radius:999px;
  text-decoration:none;
  font-weight:700;
  border:2px solid var(--vert);
  color:var(--vert);
  background:#fff;
}
.btn.primary{background:var(--vert);color:#fff}
.alt{background:#eef4e9}
.page-title{
  padding:42px 18px 16px;
  text-align:center;
}
.page-title p{max-width:760px;margin:8px auto 0}
.searchbox{max-width:760px;margin:0 auto 22px;position:relative}
.searchbox input{
  width:100%;
  padding:15px 18px;
  border:1px solid #bcb5aa;
  border-radius:14px;
  font-size:1rem;
  background:white;
}
.result-count{text-align:center;color:var(--gris);margin:10px 0 24px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{
  background:#fff;
  border:1px solid #e4ded3;
  border-radius:16px;
  padding:18px;
  box-shadow:0 5px 16px rgba(0,0,0,.04);
  display:flex;
  flex-direction:column;
}
.card h3{margin:0 0 7px;font-size:1.1rem}
.card p{margin:0 0 9px}
.city{font-size:.9rem;color:var(--gris);margin-top:auto!important;padding-top:7px}
.visit{display:inline-block;margin-top:11px;text-decoration:none;color:var(--vert);font-weight:700}
.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px}
.fact{
  background:#fff;
  border:1px solid #dfd8cc;
  border-radius:15px;
  padding:18px 12px;
  text-align:center;
}
.fact strong{display:block;color:var(--vert)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}
.partner-list,.legal{max-width:900px;margin:22px auto 0}
.partner-list ul{padding-left:22px}
.partner-list li{margin:8px 0}
.legal h3{margin-top:26px;margin-bottom:8px}
.legal p{margin-top:0}
.legal a,.partner-list a{color:var(--vert);font-weight:700}
.small-note{font-size:.92rem;color:var(--gris)}
footer{background:var(--vert2);color:#fff;text-align:center;padding:26px 18px;margin-top:30px}
.no-results{display:none;text-align:center;padding:28px;font-weight:700}

/* Compteur discret */
.stats-trigger{
  position:fixed;
  right:9px;
  bottom:8px;
  z-index:50;
  width:24px;
  height:24px;
  border:0;
  border-radius:50%;
  background:rgba(36,61,32,.12);
  color:rgba(36,61,32,.42);
  font-size:13px;
  line-height:24px;
  cursor:pointer;
  opacity:.38;
  transition:.2s ease;
}
.stats-trigger:hover,.stats-trigger:focus{opacity:1;background:rgba(36,61,32,.18)}
.stats-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:100;
  background:rgba(0,0,0,.46);
  padding:20px;
  align-items:center;
  justify-content:center;
}
.stats-modal.open{display:flex}
.stats-panel{
  width:min(560px,100%);
  max-height:80vh;
  overflow:auto;
  background:#fff;
  border-radius:16px;
  padding:22px;
  box-shadow:0 18px 50px rgba(0,0,0,.25);
}
.stats-panel h2{font-size:1.45rem;text-align:left;margin:0 0 12px}
.stats-close{float:right;border:0;background:transparent;font-size:22px;cursor:pointer;color:#666}
.stats-table{width:100%;border-collapse:collapse;margin-top:12px}
.stats-table th,.stats-table td{padding:9px 8px;border-bottom:1px solid #eee;text-align:left}
.stats-table th:last-child,.stats-table td:last-child{text-align:right}
.stats-note{font-size:.85rem;color:#6a665f;margin-top:12px}

@media(max-width:850px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .info-grid{grid-template-columns:repeat(2,1fr)}
  .cards{grid-template-columns:1fr}
}
@media(max-width:620px){
  .nav{align-items:flex-start;flex-direction:column;gap:8px}
  nav{gap:10px}
  nav a{font-size:.84rem}
  .grid{grid-template-columns:1fr}
  .intro,.section{padding:32px 14px}
  .hero img{width:100%;height:auto}
}
.stand{
  display:inline-block;
  align-self:flex-start;
  margin:0 0 10px!important;
  padding:5px 9px;
  border-radius:8px;
  background:#eef4e9;
  color:#345b2d;
  font-size:.9rem;
}


/* Décoration végétale — page Exposants */
body[data-page="exposants"] .page-title{
  position:relative; overflow:hidden; padding-top:38px; padding-bottom:22px;
  background:
    radial-gradient(circle at 8% 20%, rgba(52,91,45,.08) 0 3px, transparent 4px),
    radial-gradient(circle at 92% 32%, rgba(200,146,45,.10) 0 4px, transparent 5px);
}
.botanical-decoration{
  display:flex; justify-content:center; align-items:center; gap:10px;
  margin-bottom:8px; font-size:1.25rem;
}
.botanical-decoration span:nth-child(2){font-size:1.05rem}
.botanical-divider{
  width:150px; margin:12px auto 0; display:flex; align-items:center;
  justify-content:center; gap:8px; color:var(--or); font-family:Georgia,serif;
  font-size:1.2rem;
}
.botanical-divider::before,.botanical-divider::after{
  content:""; height:1px; flex:1;
  background:linear-gradient(to right,transparent,rgba(52,91,45,.45));
}
.botanical-divider::after{
  background:linear-gradient(to left,transparent,rgba(52,91,45,.45));
}
body[data-page="exposants"] .searchbox input{
  border:1px solid rgba(52,91,45,.32);
  box-shadow:0 4px 14px rgba(52,91,45,.07);
  padding-right:48px;
}
body[data-page="exposants"] .searchbox::before{
  content:"🌱"; position:absolute; right:15px; top:50%;
  transform:translateY(-50%); pointer-events:none; opacity:.7;
}
body[data-page="exposants"] .card{
  position:relative; overflow:hidden;
  border-top:3px solid rgba(52,91,45,.48);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
body[data-page="exposants"] .card::after{
  content:"🍃"; position:absolute; right:10px; top:8px;
  font-size:.9rem; opacity:.18;
}
body[data-page="exposants"] .card:hover{
  transform:translateY(-3px);
  box-shadow:0 9px 22px rgba(52,91,45,.10);
  border-top-color:var(--vert);
}
body[data-page="exposants"] .stand{
  background:linear-gradient(135deg,#eef4e9,#f8f3df);
}
body[data-page="exposants"] .visit::after{content:" 🌿";font-size:.8em}
@media(max-width:620px){
  .botanical-decoration{font-size:1.1rem}
  body[data-page="exposants"] .card:hover{transform:none}
}


/* Bloc GPS — Infos pratiques */
.gps-section{padding-top:10px}
.gps-card{
  max-width:760px;margin:0 auto;
  display:flex;gap:20px;align-items:flex-start;
  padding:22px 24px;border:1px solid rgba(52,91,45,.22);
  border-radius:18px;background:linear-gradient(135deg,#f7faF3,#fffaf0);
  box-shadow:0 7px 20px rgba(52,91,45,.07);
}
.gps-icon{font-size:2.2rem;line-height:1}
.gps-content{flex:1}
.gps-content h2{margin:0 0 8px;color:var(--vert)}
.gps-content p{margin:6px 0}
.gps-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}
.gps-button{
  display:inline-block;padding:11px 16px;border-radius:10px;
  background:var(--vert);color:#fff;text-decoration:none;font-weight:700;
}
.gps-button:hover{filter:brightness(.92)}
.gps-note{font-size:.86rem;color:var(--gris);margin-top:10px!important}
@media(max-width:620px){
  .gps-card{padding:18px;gap:12px}
  .gps-icon{font-size:1.8rem}
  .gps-buttons{flex-direction:column}
  .gps-button{text-align:center}
}


/* Avertissement circulation — Infos pratiques */
.access-warning{
  margin:16px 0;
  padding:14px 16px;
  border-left:4px solid #c8922d;
  border-radius:10px;
  background:#fff6dc;
  color:#3f3a2f;
}
.access-warning > strong{
  display:block;
  color:#75520f;
  font-family:Georgia,serif;
  font-size:1.05rem;
  margin-bottom:6px;
}
.access-warning p{
  margin:5px 0;
  line-height:1.45;
}
.gps-address{line-height:1.5}
.gps-intro{margin-top:14px!important}


/* Hero photo — page Exposants */
.exhibitors-hero{
  position:relative;
  min-height:360px;
  background:
    linear-gradient(90deg,rgba(255,250,240,.98) 0%,rgba(255,250,240,.84) 28%,rgba(255,250,240,.12) 55%,rgba(0,0,0,.06) 100%),
    url("chateau-loyere.jpg") center 46%/cover no-repeat;
  overflow:hidden;
  border-bottom:4px solid var(--vert);
}
.hero-overlay{
  min-height:360px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:38px clamp(24px,6vw,90px);
}
.hero-copy{
  max-width:520px;
  position:relative;
  z-index:2;
}
.hero-kicker{
  display:inline-block;
  color:#a84823;
  font-family:Georgia,serif;
  font-style:italic;
  font-size:clamp(1.05rem,2vw,1.5rem);
  margin-bottom:8px;
}
.hero-copy h1{
  margin:0;
  color:var(--vert2);
  font-family:Georgia,serif;
  font-size:clamp(3rem,7vw,6.6rem);
  line-height:.88;
  letter-spacing:-.04em;
}
.hero-copy p{
  margin:18px 0 0;
  font-weight:700;
  color:var(--vert);
  font-size:clamp(1rem,1.7vw,1.3rem);
}
.hero-flowers{
  position:absolute;
  right:-32px;
  bottom:-26px;
  display:flex;
  align-items:flex-end;
  gap:0;
  z-index:3;
  pointer-events:none;
}
.hero-flowers img{
  width:170px;
  height:170px;
  object-fit:cover;
  border-radius:50%;
  border:6px solid rgba(255,255,255,.92);
  box-shadow:0 10px 30px rgba(0,0,0,.17);
}
.hero-flowers img:nth-child(1){transform:translate(40px,15px) rotate(-8deg)}
.hero-flowers img:nth-child(2){transform:translate(10px,-22px) scale(.92)}
.hero-flowers img:nth-child(3){transform:translate(-20px,8px) scale(.88)}
.exhibitors-intro{
  padding-top:18px!important;
  padding-bottom:10px!important;
}
.exhibitors-intro p{
  max-width:760px;
  margin:0 auto;
  text-align:center;
  font-size:1.05rem;
}

body[data-page="exposants"]::after{
  content:"";
  display:block;
  height:115px;
  background:
    linear-gradient(rgba(22,86,54,.94),rgba(22,86,54,.94)),
    url("fleur-orange.jpg") left bottom/140px 140px no-repeat,
    url("fleur-jaune.jpg") center bottom/135px 135px no-repeat,
    url("fleur-violette.jpg") right bottom/140px 140px no-repeat;
}

@media(max-width:760px){
  .exhibitors-hero{min-height:300px;background-position:58% center}
  .hero-overlay{
    min-height:300px;
    align-items:flex-start;
    padding:28px 20px 120px;
    background:linear-gradient(90deg,rgba(255,250,240,.94),rgba(255,250,240,.64),rgba(255,250,240,.08));
  }
  .hero-copy{max-width:78%}
  .hero-flowers{right:-18px;bottom:-12px}
  .hero-flowers img{
    width:105px;
    height:105px;
    border-width:4px;
  }
}


/* Statistiques avancées */
.stats-panel{max-width:900px!important;max-height:88vh;overflow:auto}
.stats-panel h3{margin:24px 0 8px;color:var(--vert);font-family:Georgia,serif}
.stats-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:14px 0 18px;
}
.stats-summary div{
  padding:14px;
  border-radius:12px;
  background:#f3f7ee;
  border:1px solid rgba(52,91,45,.16);
}
.stats-summary strong{display:block;font-size:1.55rem;color:var(--vert2)}
.stats-summary span{font-size:.87rem;color:#6a665f}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.stats-privacy{
  margin-top:20px;
  padding:12px 14px;
  border-radius:10px;
  background:#fff7df;
  color:#62552f;
  font-size:.86rem;
}
@media(max-width:700px){
  .stats-grid,.stats-summary{grid-template-columns:1fr}
  .stats-panel{width:96vw!important}
}

/* ===== Accueil 2026 — version enrichie ===== */
body[data-page="accueil"]{background:#fffdf7}
body[data-page="accueil"] .home-header{
  background:#0e583f;
  border-bottom:0;
  color:#fff;
}
body[data-page="accueil"] .home-header .brand{color:#fff}
body[data-page="accueil"] .home-header nav a{color:#fff}
body[data-page="accueil"] .home-header nav a:hover,
body[data-page="accueil"] .home-header nav a.active{color:#ffe077;border-bottom-color:#ffe077}
body[data-page="accueil"] .home-hero{background:#d7ece6}
body[data-page="accueil"] .home-hero img{width:100%;height:auto}
.home-intro{padding:24px 18px 16px;text-align:center;background:#fffdf8}
.home-intro .container{max-width:980px}
.home-intro h1{font-size:clamp(2rem,3.8vw,3rem);margin-bottom:10px;color:#154c38}
.home-intro p{font-size:1.04rem;margin:0 auto;max-width:930px;color:#345044}
.home-keywords{margin-top:14px;font-family:Georgia,serif;font-style:italic;font-size:clamp(1.15rem,2.5vw,1.65rem);color:#0e583f}
.home-cards-wrap{padding:0 18px 26px;background:#fffdf8}
.home-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.home-card{background:#fff;border:1px solid #dce4dc;border-radius:8px;overflow:hidden;box-shadow:0 5px 16px rgba(16,79,55,.07)}
.home-card>img{width:100%;height:168px;object-fit:cover}
.home-card-body{padding:18px 20px 20px}
.home-card h2{font-size:1.45rem;text-align:left;margin:0 0 8px;color:#123f2f}
.home-card p{margin:0 0 16px;color:#44584e}
.home-button{display:inline-block;background:#0e583f;color:#fff;text-decoration:none;font-weight:700;padding:10px 16px;border-radius:5px}
.home-button:hover{background:#243d20}
.home-stats{background:linear-gradient(90deg,#edf1df,#f5f5e9);border-top:1px solid #dbe2d3;border-bottom:1px solid #dbe2d3}
.home-stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.home-stats-grid>div{padding:18px 12px;text-align:center;border-right:1px solid #cad3c5}
.home-stats-grid>div:last-child{border-right:0}
.home-stat-icon{display:block;font-size:1.7rem;margin-bottom:2px}
.home-stats strong{display:block;font-family:Georgia,serif;color:#123f2f;font-size:1.5rem;line-height:1.1}
.home-stats span:last-child{display:block;font-size:.9rem;color:#526157;margin-top:4px}
.home-media{background:#fff;padding-top:28px;padding-bottom:30px}
.home-media-grid{display:grid;grid-template-columns:1.08fr .72fr 1fr;gap:20px;align-items:start}
.home-chateau img{width:100%;height:255px;object-fit:cover;border-radius:8px;box-shadow:0 5px 16px rgba(0,0,0,.08)}
.home-media-copy h2,.home-gallery-block h2{font-size:1.45rem;text-align:left;margin:0 0 8px;color:#123f2f}
.home-media-copy p{margin:0 0 16px;color:#44584e}
.home-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.home-gallery img{width:100%;height:120px;object-fit:cover;border-radius:4px}
.home-practical{background:#fff;border-top:1px solid #dce4dc;padding:22px 18px}
.home-practical-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.home-practical-item{display:flex;gap:12px;padding:0 18px;border-right:1px solid #d6ddd5}
.home-practical-item:first-child{padding-left:0}
.home-practical-item:last-child{border-right:0}
.home-practical-icon{font-size:1.8rem}
.home-practical-item h3{margin:0 0 5px;color:#123f2f;font-family:Georgia,serif;font-size:1.05rem}
.home-practical-item p{margin:0;color:#43564c;font-size:.9rem}
.home-practical-item a{display:inline-block;margin-top:7px;color:#0e583f;font-weight:700;text-decoration:none}

@media(max-width:900px){
  .home-cards{grid-template-columns:1fr}
  .home-stats-grid{grid-template-columns:repeat(2,1fr)}
  .home-stats-grid>div:nth-child(2){border-right:0}
  .home-media-grid{grid-template-columns:1fr}
  .home-chateau img{height:auto}
  .home-gallery img{height:170px}
  .home-practical-grid{grid-template-columns:repeat(2,1fr);gap:20px}
  .home-practical-item{border-right:0;padding:0}
}
@media(max-width:620px){
  body[data-page="accueil"] .home-header .nav{align-items:flex-start}
  .home-intro{padding:20px 14px 12px}
  .home-cards-wrap{padding-left:14px;padding-right:14px}
  .home-stats-grid{grid-template-columns:1fr}
  .home-stats-grid>div{border-right:0;border-bottom:1px solid #cad3c5}
  .home-stats-grid>div:last-child{border-bottom:0}
  .home-gallery img{height:120px}
  .home-practical-grid{grid-template-columns:1fr}
}


/* ===== Page Photos ===== */
body[data-page="photos"]{background:#fffdf8}
.photos-hero{position:relative;min-height:420px;overflow:hidden;background:#173e30}
.photos-hero>img{width:100%;height:500px;object-fit:cover;display:block}
.photos-hero-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:52px max(5vw,24px);background:linear-gradient(180deg,rgba(9,44,31,.02) 30%,rgba(9,44,31,.78) 100%);color:white}
.photos-hero-overlay span{font-weight:700;letter-spacing:.04em}
.photos-hero-overlay h1{margin:5px 0 8px;color:white;font-size:clamp(2.3rem,5vw,4.5rem);text-shadow:0 2px 12px rgba(0,0,0,.28)}
.photos-hero-overlay p{margin:0;max-width:720px;font-size:1.08rem}
.photos-section{background:linear-gradient(#fffdf8,#f5f0e6)}
.photos-intro{text-align:center;max-width:820px;margin:0 auto 28px}
.photos-intro h2{margin-bottom:10px}
.photos-intro p{margin:0;color:var(--gris)}
.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.photo-card{margin:0;background:white;border:1px solid #e1dbcf;border-radius:14px;overflow:hidden;box-shadow:0 5px 16px rgba(0,0,0,.05)}
.photo-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.photo-open img{display:block;width:100%;height:220px;object-fit:cover;transition:transform .25s ease,filter .25s ease}
.photo-open:hover img{transform:scale(1.035);filter:saturate(1.05)}
.photo-card figcaption{padding:10px 12px 12px;font-size:.9rem;color:#4d514c;line-height:1.35}
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(4,18,13,.94);display:none;align-items:center;justify-content:center;padding:50px 80px}
.lightbox.open{display:flex}
body.lightbox-open{overflow:hidden}
.lightbox-figure{margin:0;max-width:min(1220px,88vw);max-height:88vh;text-align:center;color:white}
.lightbox-figure img{display:block;max-width:100%;max-height:78vh;margin:auto;border-radius:8px;box-shadow:0 16px 50px rgba(0,0,0,.45)}
.lightbox-figure figcaption{padding-top:12px;font-size:.96rem;color:#f2f2eb}
.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;border:0;background:rgba(255,255,255,.12);color:white;cursor:pointer;border-radius:50%;display:grid;place-items:center}
.lightbox-close{right:22px;top:18px;width:46px;height:46px;font-size:31px}
.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%);width:54px;height:54px;font-size:46px;line-height:1}
.lightbox-prev{left:18px}.lightbox-next{right:18px}
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:rgba(255,255,255,.22)}
@media(max-width:980px){.photo-grid{grid-template-columns:repeat(3,1fr)}.photo-open img{height:210px}}
@media(max-width:720px){.photos-hero>img{height:390px}.photos-hero-overlay{padding:28px 18px}.photo-grid{grid-template-columns:repeat(2,1fr);gap:9px}.photo-open img{height:175px}.photo-card figcaption{font-size:.82rem;padding:8px 9px 10px}.lightbox{padding:55px 12px 70px}.lightbox-prev,.lightbox-next{width:46px;height:46px;font-size:38px;top:auto;bottom:14px}.lightbox-prev{left:calc(50% - 58px)}.lightbox-next{right:calc(50% - 58px)}.lightbox-figure{max-width:96vw}.lightbox-figure img{max-height:72vh}}
@media(max-width:460px){.photo-grid{grid-template-columns:1fr 1fr}.photo-open img{height:145px}.photos-hero>img{height:330px}}

.home-gallery-button{margin-top:12px}

/* ===== Entête uniforme sur toutes les pages ===== */
.home-header{
  background:#0e583f;
  border-bottom:0;
  color:#fff;
}
.home-header .brand{color:#fff}
.home-header nav a{color:#fff}
.home-header nav a:hover,
.home-header nav a.active{
  color:#ffe077;
  border-bottom-color:#ffe077;
}
