:root{
  --bg:#0b0f14;
  --panel:#0f1621;
  --text:#e9eef6;
  --muted:#b7c3d6;
  --accent:#ff3b30;
  --accent2:#ff7a18;
  --line:rgba(255,255,255,.10);
  --shadow: 0 10px 30px rgba(0,0,0,.45);
  --radius:18px;
  --max:1200px;
  --font: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font-family:var(--font); background: radial-gradient(1200px 600px at 10% 0%, rgba(255,59,48,.15), transparent 55%),
  radial-gradient(900px 600px at 90% 10%, rgba(255,122,24,.12), transparent 55%),
  var(--bg);
  color:var(--text);
}
a{color:inherit; text-decoration:none}
.container{width:100%;max-width:none;margin:0;padding:0 16px}
.site-header{
  position:sticky; top:0; z-index:50;
  background: rgba(11,15,20,.75);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:16px; flex-wrap:wrap}
.brand{display:flex; align-items:center; gap:12px; min-width:0}
.brand img{
  width:auto;
  height:90px;
  max-height:90px;
  border:none;
  border-radius:0;
  box-shadow:none;
}
.brand .name{
  max-width: 220px;font-weight:800; letter-spacing:.2px; line-height:1.1}
.brand .tag{font-size:12px; color:var(--muted)}
.nav{display:flex; align-items:center; gap:12px; flex:1; justify-content:flex-end; min-width:0}
.nav ul{list-style:none; margin:0; padding:0; display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end}
.nav li{position:relative}
.nav > ul > li > a{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 10px; border-radius:12px;
  color:var(--text); font-weight:650; font-size:13px;
  border:1px solid transparent;
}
.nav > ul > li > a:hover{background:rgba(255,255,255,.06); border-color: rgba(255,255,255,.08)}
.nav li .caret{font-size:11px; opacity:.75}
.dropdown{
  position:absolute; top:48px; left:0; min-width:260px;
  background: rgba(15,22,33,.92);
  border:1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding:10px;
  display:none;
}
.nav li:hover > .dropdown{display:block}
.dropdown a{
  display:block; padding:10px 10px; border-radius:12px;
  color:var(--text); font-weight:600; font-size:14px;
}
.dropdown a:hover{background:rgba(255,255,255,.06)}
.cta{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 14px; border-radius: 14px;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color:#0b0f14; font-weight:900; border:1px solid rgba(255,255,255,.10);
  box-shadow: 0 10px 25px rgba(255,59,48,.20);
}
.cta:hover{filter:brightness(1.05)}
.hero{padding-top:0; min-height:460px; display:flex; align-items:center; background: radial-gradient(1100px 520px at 25% 30%, rgba(255,120,0,.14), transparent 55%), radial-gradient(900px 520px at 75% 30%, rgba(0,130,255,.12), transparent 55%), linear-gradient(180deg, #070A10 0%, #05070C 100%); border-bottom:1px solid rgba(255,255,255,.06); position:relative;}
.hero:before{
  content:""; position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(11,15,20,.80) 0%, rgba(11,15,20,.55) 55%, rgba(11,15,20,.35) 100%);
  pointer-events:none;
  z-index:0;
}
.hero-inner{position:relative; padding:64px 0 z-index:1;}

/* Split hero: text left, stand plan right (desktop), stacked on mobile */
.hero-grid{display:grid;grid-template-columns:minmax(340px, 520px) 1fr;gap:22px;align-items:center;}
.hero-copy h1{margin:0 0 14px 0; font-size:44px; line-height:1.06; letter-spacing:-.6px; max-width: 820px}
.hero-copy p{margin:0 0 20px 0; color:var(--muted); font-size:17px; max-width: 720px}
.hero-visual{justify-self:stretch;width:100%;max-width:none;}
.stand-plan{background:rgba(10,14,24,.55);border:1px solid rgba(255,255,255,.10);border-radius:18px;padding:14px;box-shadow: 0 18px 55px rgba(0,0,0,.35);}
.stand-plan img{display:block;width:100%;height:auto;border-radius:12px;}
.stand-plan .stand-legend{display:block;margin-top:10px;border-radius:10px;max-height:150px;object-fit:contain;width:100%;}
.hero h1{margin:0 0 14px 0; font-size:44px; line-height:1.06; letter-spacing:-.6px; max-width: 820px}
.hero p{margin:0 0 20px 0; color:var(--muted); font-size:17px; max-width: 720px}
.hero-actions{display:flex; gap:12px; flex-wrap:wrap}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:12px 16px; border-radius: 14px;
  font-weight:800; font-size:14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
}
.btn:hover{background: rgba(255,255,255,.10)}
.btn.primary{background: linear-gradient(135deg, var(--accent), var(--accent2)); color:#0b0f14; border-color: rgba(255,255,255,.18)}
.section{padding:46px 0}
.grid-2{display:grid; grid-template-columns: 1.1fr .9fr; gap:22px}
.card{
  background: rgba(15,22,33,.78);
  border:1px solid rgba(255,255,255,.10);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding:22px;
}
.card h2{margin:0 0 12px 0; font-size:20px}
.card p{margin:0; color:var(--muted); line-height:1.55}
.president{
  display:grid; grid-template-columns: 140px 1fr; gap:18px; align-items:start;
}
.president img{width:140px; height:140px; object-fit:cover; border-radius: 16px; border:1px solid rgba(255,255,255,.12)}
.quicklinks{display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:12px}
.q{
  padding:12px 12px; border-radius: 14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  font-weight:800; font-size:14px;
}
.q:hover{background: rgba(255,255,255,.09)}
.ticker{
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(0,0,0,.55);
  overflow:hidden;
}
.ticker .track{
  display:flex; gap:38px;
  white-space:nowrap;
  padding:8px 0;
  animation: marquee 30s linear infinite;
}
.ticker .item{color:var(--text); opacity:.95; font-weight:800; font-size:14px}
.ticker .dot{opacity:.55}
@keyframes marquee{
  0% { transform: translateX(0);}
  100% { transform: translateX(-50%);}
}
.footer{padding:18px 0; color: var(--muted); font-size:13px}
.footer a{color: var(--text); opacity:.9}
.page-head{padding:32px 0 10px}
.breadcrumb{color:var(--muted); font-size:13px}
.page-title{font-size:32px; margin:8px 0 0 0}
.content{padding:18px 0 48px}
.content .card{padding:18px}
.list{margin:0; padding-left:18px; color:var(--muted); line-height:1.7}
@media (max-width: 980px){
  .grid-2{grid-template-columns: 1fr}
  .brand{min-width:auto}
  .nav ul{gap:2px; flex-wrap:wrap; justify-content:flex-end}
  .hero-grid{grid-template-columns: 1fr}
  .hero-visual{max-width: 740px; justify-self:start}
  .hero-copy h1{font-size:36px}
  .hero{min-height:480px}
  .president{grid-template-columns: 1fr}
  .president img{width:100%; height:220px}
  .quicklinks{grid-template-columns: 1fr}
}



/* --- Overrides (homepage fit without vertical scrollbar) --- */
:root{
  /* real header height (logo + padding) */
  --header-h: 130px;
}

/* Keep horizontal tidy; allow vertical scroll if user content grows */
body{ overflow-x:hidden; }

/* Make the home page comfortably fit in a laptop-height viewport */
body.home .hero{ min-height: 300px; }
body.home .hero-inner{ padding: 24px 0; }
body.home .hero-copy h1{ font-size: clamp(28px, 3.4vw, 44px); }
body.home .hero-copy p{ font-size: 16px; margin-bottom: 16px; }

/* Plan images: reduce vertical footprint */
body.home .stand-plan{ padding: 12px; display:flex; flex-direction:column; gap:12px; }
body.home .stand-plan .stand-legend{ max-height: 95px; margin: 0; object-fit: cover; }
body.home .stand-plan .stand-map{ width:100%; display:block; max-height: 200px; height: 200px; object-fit: fill; }

/* Section under hero: tighter so the bottom cards remain visible */
body.home .section{ padding: 18px 0; }
body.home .card{ padding: 16px; }

/* Extra tight for short screens */
@media (max-height: 820px){
  body.home .hero{ min-height: 270px; }
  body.home .hero-inner{ padding: 18px 0; }
  body.home .stand-plan .stand-legend{ max-height: 95px; margin: 0; object-fit: cover; }
  body.home .stand-plan .stand-map{ width:100%; display:block; max-height: 200px; height: 200px; object-fit: fill; }
  body.home .section{ padding: 14px 0; }
}

/* ===== Sections: titres cliquables ===== */
.section-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:6px 10px;
  border-radius:12px;
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
}
.section-link:hover{
  background: rgba(255,255,255,.08);
}
.section-link::after{
  content:"→";
  opacity:.9;
}




/* ===== Sections page fit screen (sans scroll, ticker visible) ===== */
body[data-page="sections"]{
  height: 100vh;
  overflow: hidden;           /* aucun scroll vertical/horizontal */
  display: flex;
  flex-direction: column;
}

/* Header / ticker / footer gardent leur taille, le main prend le reste */
body[data-page="sections"] .site-header{ flex: 0 0 auto; }
body[data-page="sections"] .ticker{ flex: 0 0 auto; }
body[data-page="sections"] .footer{ flex: 0 0 auto; }

body[data-page="sections"] main.sections-page{
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;           /* évite le scroll interne */
}

/* Compact layout */
body[data-page="sections"] .sections-card{ padding: 20px; }
body[data-page="sections"] .sections-intro{ margin: 0 0 14px 0; color: var(--muted); }

body[data-page="sections"] .sections-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

@media (max-width: 820px){
  body[data-page="sections"] .sections-grid{ grid-template-columns: 1fr; }
}

body[data-page="sections"] .section-tile{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding: 14px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10);
  font-weight: 850;
}

body[data-page="sections"] .section-tile:hover{ background: rgba(255,255,255,.08); }
body[data-page="sections"] .section-tile::after{ content:"→"; opacity:.9; }


/* ===== Home: placeholder (carte retirée) ===== */
.stand-placeholder{
  width:100%;
  height: 300px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.02);
}









/* ===== Plan interactif (RESET propre) ===== */
body[data-page="plan-interactif"]{
  height: 100vh;
  overflow: hidden;
}

/* IMPORTANT: sur cette page, le ticker doit rester visible et ne pas recouvrir le contenu */
body[data-page="plan-interactif"] .ticker{
  position: static !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
}

body[data-page="plan-interactif"] main.pi-main{
  padding: 12px 0;
}

body[data-page="plan-interactif"] .pi-wrap{
  height: 600px; /* sera remplacé par JS */
  display: flex;
  flex-direction: column;
  gap: 12px;
}

body[data-page="plan-interactif"] .pi-top,
body[data-page="plan-interactif"] .pi-bottom{
  height: 280px; /* sera remplacé par JS */
  overflow: hidden;
  padding: 12px;
}

body[data-page="plan-interactif"] .pi-legend{
  display:flex;
  justify-content:center;
  flex: 0 0 auto;
  margin-bottom: 10px;
}
body[data-page="plan-interactif"] .pi-legend-img{
  width: 100%;
  max-width: 980px;
  height: 90px;
  object-fit: cover;
  display:block;
}

body[data-page="plan-interactif"] .pi-map{
  position: relative;
  width: 100%;
  height: calc(100% - 100px); /* 90px legend + margin */
  border-radius: 16px;
  overflow: hidden;
}
body[data-page="plan-interactif"] .pi-map-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
  background: rgba(0,0,0,.10);
}

/* Hotspots invisibles alignés sur les numéros existants */
body[data-page="plan-interactif"] .pi-hotspot{
  position:absolute;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  transform: translate(-50%,-50%);
  border: 2px solid transparent;
  background: transparent;
  cursor: pointer;
}
body[data-page="plan-interactif"] .pi-hotspot:hover{
  border-color: rgba(255,255,255,.55);
  background: rgba(255,255,255,.06);
}
body[data-page="plan-interactif"] .pi-hotspot.is-active{
  border-color: rgba(255,115,0,.95);
  background: rgba(255,115,0,.14);
}

/* Gallery */
body[data-page="plan-interactif"] .pi-gallery-head{
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
}
body[data-page="plan-interactif"] .pi-gallery-hint{
  color: var(--muted);
  font-size: 14px;
}

body[data-page="plan-interactif"] .pi-gallery-grid{
  height: calc(100% - 42px);
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
}
@media (max-width: 1100px){
  body[data-page="plan-interactif"] .pi-gallery-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

body[data-page="plan-interactif"] .pi-gallery-card{
  margin: 0;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width: 0;
  aspect-ratio: 4 / 3;
  overflow:hidden;
  border-radius: 14px;
  border: 1px solid rgba(23,50,77,.12);
  background: rgba(248,250,252,.96);
}
body[data-page="plan-interactif"] .pi-gallery-img{
  display:block;
  width:100%;
  height:100%;
  object-fit: contain;
  object-position: center center;
  background: rgba(248,250,252,.96);
}
body[data-page="plan-interactif"] .pi-gallery-missing{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  padding:18px;
  text-align:center;
  color: var(--muted);
  font-weight:600;
}
body[data-page="plan-interactif"] .pi-gallery-empty{
  grid-column: 1 / -1;
  min-height: 180px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  text-align:center;
  border-radius:14px;
  border:1px dashed rgba(23,50,77,.18);
  background: rgba(248,250,252,.95);
  color: var(--muted);
  font-weight:600;
}

/* ===== Plan interactif (FULL WIDTH) ===== */
body[data-page="plan-interactif"] .container{
  max-width: none !important;
  width: 100% !important;
  padding-left: 18px;
  padding-right: 18px;
}

body[data-page="plan-interactif"] .pi-wrap{
  width: 100% !important;
}

body[data-page="plan-interactif"] .pi-legend-img{
  max-width: none !important; /* utilise toute la largeur disponible */
  height: 105px;              /* un peu plus lisible */
}


/* ===== Plan interactif: legend + plan full width (precis) ===== */
body[data-page="plan-interactif"] .pi-top{
  display: grid;
  grid-template-rows: 80px 1fr; /* legend then map */
  gap: 10px;
}

body[data-page="plan-interactif"] .pi-legend{
  margin: 0;                 /* remove bottom margin */
  justify-content: stretch;
  align-items: stretch;
}

body[data-page="plan-interactif"] .pi-legend-img{
  width: 100% !important;
  height: 80px !important;
  object-fit: fill !important;  /* force full width */
  display:block;
}

/* map uses all remaining width; fill the box */
body[data-page="plan-interactif"] .pi-map{
  height: 100% !important;
}

body[data-page="plan-interactif"] .pi-map-img{
  width: 100% !important;
  height: 100% !important;
  object-fit: fill !important; /* show entire image, may distort */
}


/* ===== Sections subpages (no scroll + contact) ===== */
body[data-page^="section-"]{
  height: 100vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

body[data-page^="section-"] main.section-page{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
}

body[data-page^="section-"] main.section-page > .container{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
}

body[data-page^="section-"] .section-card{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

body[data-page^="section-"] .section-head{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  margin-bottom: 12px;
}

body[data-page^="section-"] .section-person{
  display:flex;
  align-items:center;
  gap: 14px;
}

body[data-page^="section-"] .section-photo{
  width: 84px;
  height: 84px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.10);
  flex: 0 0 auto;
}
body[data-page^="section-"] .section-photo img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

body[data-page^="section-"] .section-contact{
  display:flex;
  flex-direction: column;
  gap: 6px;
}
body[data-page^="section-"] .section-contact-line{
  display:flex;
  gap: 10px;
  align-items:baseline;
}
body[data-page^="section-"] .section-contact-line .label{
  color: var(--muted);
  min-width: 86px;
  font-size: 13px;
}
body[data-page^="section-"] .section-contact-line .value{
  font-weight: 600;
}
body[data-page^="section-"] .section-contact-line .link{
  text-decoration: none;
  border-bottom: 1px dashed rgba(255,255,255,.35);
}

body[data-page^="section-"] .section-logo{
  width: 220px;
  height: 72px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
  flex: 0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 8px 10px;
}
body[data-page^="section-"] .section-logo img{
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  display:block;
}

body[data-page^="section-"] .section-body{
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden; /* pas de scroll */
  color: rgba(255,255,255,.86);
}

body[data-page^="section-"] .section-actions{
  padding-top: 14px;
}


/* Back button in section pages */
.section-back {
  margin-bottom: 20px;
}

.btn-back {
  display: inline-block;
  padding: 10px 18px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 8px;
  color: #fff;
  text-decoration: none;
  font-weight: 500;
  transition: 0.2s ease;
}

.btn-back:hover {
  background: rgba(255,255,255,0.18);
}


/* Home - hero right announcement image */
.hero-annonce{
  width: 100%;
  height: 100%;
  border-radius: 18px;
  overflow: hidden;
  background: rgba(0,0,0,0.25);
}

.hero-annonce-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: rgba(0,0,0,0.25);
}


/* HERO RIGHT — TAILLE STRICTE (ne doit jamais agrandir la mise en page) */
.hero-visual{
  height: 360px;          /* hauteur fixe de la zone image (ajuster si besoin) */
  max-height: 360px;
  overflow: hidden;
  border-radius: 18px;
  position: relative;
}

/* assure que le conteneur interne respecte la hauteur fixée */
.hero-visual > *,
.hero-annonce{
  width: 100%;
  height: 100%;
}

/* image forcée à remplir la zone sans la faire grandir */
.hero-annonce-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: rgba(0,0,0,0.25);
}


/* Home hero animated banner (canvas) */
.hero-annonce--canvas{position:relative; width:100%; height:100%; overflow:hidden;}
.hero-annonce--canvas canvas{display:block; width:100%; height:100%;}

/* Home: avoid viewport overflow (no scroll on landing) */
body.home{
  overflow-x:hidden;
  height:100vh;
  display:flex;
  flex-direction:column;
}
body.home main{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
}
body.home .site-header,
body.home .ticker,
body.home .footer{flex:0 0 auto;}

/* Compact header on home to free vertical space */
body.home .header-inner{ padding:10px 0; }
body.home .brand img{ height:72px; max-height:72px; }

/* Layout: hero + info cards must fit in remaining viewport */
body.home .hero{ min-height:0; }
body.home .hero-inner{ padding: clamp(14px, 2.2vh, 24px) 0; }
body.home .hero-copy h1{ margin-bottom:10px; }
body.home .hero-copy p{ margin-bottom:12px; }

body.home .section{
  flex:1 1 auto;
  min-height:0;
  padding: clamp(8px, 1.6vh, 16px) 0;
  overflow:hidden;
}
body.home .section .grid-2{ height:100%; align-items:stretch; }
body.home .card{ padding: clamp(12px, 1.6vh, 18px); }
body.home .president{ grid-template-columns: 120px 1fr; gap:14px; }
body.home .president img{ width:120px; height:120px; }
body.home .quicklinks{ gap:8px; }
body.home .q{ padding:10px 10px; }


/* Tarifs: fit in viewport (no scroll) */
body.tarifs-page{
  overflow:hidden;
  height:100vh;
  display:flex;
  flex-direction:column;
}
body.tarifs-page main{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
}
body.tarifs-page .site-header,
body.tarifs-page .ticker,
body.tarifs-page .footer{flex:0 0 auto;}

.tarifs-main .page-head{ padding-top:18px; padding-bottom:12px; }
.tarifs-main .page-title{ margin:6px 0 6px; }
.tarifs-main .page-sub{ color:rgba(255,255,255,0.75); font-size:14px; }

.tarifs-wrap{
  flex:1 1 auto;
  min-height:0;
  padding-bottom:12px;
}

.tarifs-grid{
  height:100%;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
  align-content:stretch;
}

.tarif-card{
  display:grid;
  grid-template-columns: 86px 1fr;
  gap:12px;
  align-items:center;
  padding:12px;
  border-radius:18px;
  background: rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  box-shadow: 0 10px 24px rgba(0,0,0,0.28);
}

.tarif-card.no-media{ grid-template-columns: 1fr; }

.tarif-media{ width:86px; height:86px; display:flex; align-items:center; justify-content:center; }
.tarif-img{
  width:86px;
  height:86px;
  object-fit:contain;
  border-radius:16px;
  background: rgba(0,0,0,0.25);
  border:1px solid rgba(255,255,255,0.08);
}

.tarif-title{ font-size:16px; font-weight:800; letter-spacing:0.2px; }
.tarif-prices{ margin-top:6px; font-size:15px; color:rgba(255,255,255,0.82); }
.tarif-prices .price-line{ display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; }
.tarif-prices .price{ font-size:18px; font-weight:900; color:#fff; }

@media (max-width: 780px){
  .tarifs-grid{ grid-template-columns: 1fr; }
  body.tarifs-page{ overflow:auto; height:auto; }
  body.tarifs-page main{ min-height:auto; }
}



/* ===== Plan interactif — MODE SCROLL (petits écrans) =====
   Objectif: sur petits écrans, ne pas tasser le contenu dans 100vh/hauteurs fixes.
   On repasse en flux normal + scroll, tout en gardant la carte lisible.
*/
@media (max-width: 1024px), (max-height: 820px){
  body[data-page="plan-interactif"]{
    height: auto !important;
    min-height: 100vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  body[data-page="plan-interactif"] main.pi-main{
    padding: 12px 0 18px;
  }

  body[data-page="plan-interactif"] .pi-wrap{
    height: auto !important; /* annule la hauteur fixée par JS */
  }

  body[data-page="plan-interactif"] .pi-top,
  body[data-page="plan-interactif"] .pi-bottom{
    height: auto !important; /* annule la hauteur fixée par JS */
    overflow: visible !important;
  }

  /* Carte: garder le bon ratio pour que les hotspots restent alignés */
  body[data-page="plan-interactif"] .pi-map{
    height: auto !important;
    aspect-ratio: 1200 / 585; /* dimensions de plan-stand.jpg */
    overflow: visible !important;
  }

  body[data-page="plan-interactif"] .pi-map-img{
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    pointer-events: none; /* ne doit pas voler les clics des hotspots */
  }

  body[data-page="plan-interactif"] .pi-hotspot{
    z-index: 5;
  }

  /* Galerie: plus de hauteur contrainte */
  body[data-page="plan-interactif"] .pi-gallery-grid{
    height: auto !important;
  }

  body[data-page="plan-interactif"] .pi-gallery-card,
  body[data-page="plan-interactif"] .pi-gallery-img{
    min-height: 160px;
  }
}


.public-cal-plan-wrap{position:relative;overflow:hidden;aspect-ratio:1200/585}.public-cal-plan-img{width:100%;height:100%;object-fit:contain}.public-cal-plan-overlay{position:absolute;inset:0;width:100%;height:100%}


body[data-page="section-tld"] .section-body,
body[data-page="section-tld-photos"] .section-body{
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 6px;
}

body[data-page="section-tld"] .section-card,
body[data-page="section-tld-photos"] .section-card{
  max-height: calc(100vh - 170px);
}

body[data-page="section-tld"] .section-body::-webkit-scrollbar,
body[data-page="section-tld-photos"] .section-body::-webkit-scrollbar{
  width: 10px;
}

body[data-page="section-tld"] .section-body::-webkit-scrollbar-thumb,
body[data-page="section-tld-photos"] .section-body::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,.16);
  border-radius: 999px;
}

body[data-page="section-tld"] .section-body::-webkit-scrollbar-track,
body[data-page="section-tld-photos"] .section-body::-webkit-scrollbar-track{
  background: rgba(255,255,255,.04);
  border-radius: 999px;
}

body[data-page="section-tld"] .section-person,
body[data-page="section-tld-photos"] .section-person{
  align-items:flex-start;
}

body[data-page="section-tld"] .section-contact-wrap,
body[data-page="section-tld-photos"] .section-contact-wrap{
  display:flex;
  flex-direction:column;
  gap:18px;
}

body[data-page="section-tld"] .section-shortcuts,
body[data-page="section-tld-photos"] .section-shortcuts{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

body[data-page="section-tld"] .section-shortcut-btn,
body[data-page="section-tld-photos"] .section-shortcut-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding: 10px 18px;
  border-radius: 12px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.16);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  transition: .2s ease;
}

body[data-page="section-tld"] .section-shortcut-btn:hover,
body[data-page="section-tld-photos"] .section-shortcut-btn:hover{
  background: rgba(255,255,255,0.12);
  transform: translateY(-1px);
}

body[data-page="section-tld"] .section-body-readable,
body[data-page="section-tld-photos"] .section-body-readable{
  line-height: 1.7;
}

body[data-page="section-tld"] .section-body-readable h2,
body[data-page="section-tld"] .section-body-readable h3,
body[data-page="section-tld-photos"] .section-body-readable h2,
body[data-page="section-tld-photos"] .section-body-readable h3{
  margin: 0 0 14px;
}

body[data-page="section-tld"] .section-body-readable p,
body[data-page="section-tld-photos"] .section-body-readable p{
  margin: 0 0 16px;
  max-width: 1050px;
}

body[data-page="section-tld"] .section-body-readable ul,
body[data-page="section-tld-photos"] .section-body-readable ul{
  margin: 0 0 18px 22px;
}

body[data-page="section-tld"] .section-body-readable li,
body[data-page="section-tld-photos"] .section-body-readable li{
  margin: 0 0 8px;
}

@media (max-width: 900px){
  body[data-page="section-tld"] .section-head,
  body[data-page="section-tld-photos"] .section-head{
    flex-direction:column;
  }

  body[data-page="section-tld"] .section-person,
body[data-page="section-tld-photos"] .section-person{
    flex-direction:column;
    align-items:flex-start;
  }

  body[data-page="section-tld"] .section-logo,
  body[data-page="section-tld-photos"] .section-logo{
    width: 92px;
    max-width: 92px;
    height: 170px;
  }
}


body[data-page="section-tld"] .section-shortcut-btn.is-active,
body[data-page="section-tld-photos"] .section-shortcut-btn.is-active{
  background: rgba(255,255,255,0.16);
  border-color: rgba(255,255,255,0.26);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
}

body[data-page="section-tld-photos"] .section-body-readable{
  padding-bottom: 4px;
}

body[data-page="section-tld-photos"] .tld-media-grid{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
  align-items:start;
}

body[data-page="section-tld-photos"] .tld-media-card{
  display:flex;
  flex-direction:column;
  gap:8px;
}

body[data-page="section-tld-photos"] .tld-media-caption{
  font-size:.92rem;
  font-weight:700;
  color:#dfe7f4;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

body[data-page="section-tld-photos"] .tld-media-tile{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  aspect-ratio: 1 / 1;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.05);
  cursor:pointer;
  padding:0;
}

body[data-page="section-tld-photos"] .tld-media-tile img,
body[data-page="section-tld-photos"] .tld-media-tile video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

body[data-page="section-tld-photos"] .tld-media-tile.is-video::after{
  content:"VIDÉO";
  position:absolute;
  left:10px;
  bottom:10px;
  padding:4px 8px;
  border-radius:999px;
  font-size:.75rem;
  font-weight:800;
  background:rgba(0,0,0,.62);
  color:#fff;
}

body[data-page="section-tld-photos"] .tld-media-play{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%, -50%);
  width:54px;
  height:54px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.55);
  color:#fff;
  font-size:1.2rem;
  pointer-events:none;
}

body[data-page="section-tld-photos"] .tld-media-tile.is-empty{
  color:rgba(255,255,255,.55);
  font-weight:700;
  cursor:default;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
}

body[data-page="section-tld-photos"] .tld-media-card.is-empty .tld-media-caption{
  color:rgba(223,231,244,.72);
}

body.tld-lightbox-open{
  overflow:hidden;
}


body[data-page="section-tld-photos"] .tld-media-lightbox[hidden]{
  display:none !important;
}

body[data-page="section-tld-photos"] .tld-media-tile.is-empty{
  pointer-events:none;
}


body[data-page="section-tld-photos"] .tld-media-lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  background:rgba(3,8,18,.92);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}

body[data-page="section-tld-photos"] .tld-media-lightbox-inner{
  max-width:min(1200px, 96vw);
  max-height:92vh;
  width:100%;
  display:flex;
  flex-direction:column;
  gap:12px;
}

body[data-page="section-tld-photos"] .tld-media-lightbox-label{
  color:#fff;
  font-size:1.1rem;
  font-weight:800;
}

body[data-page="section-tld-photos"] .tld-media-lightbox-content{
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  overflow:hidden;
  background:#000;
  min-height:300px;
}

body[data-page="section-tld-photos"] .tld-media-lightbox-content img,
body[data-page="section-tld-photos"] .tld-media-lightbox-content video{
  max-width:100%;
  max-height:calc(92vh - 80px);
  width:auto;
  height:auto;
  display:block;
}

body[data-page="section-tld-photos"] .tld-media-lightbox-close{
  position:absolute;
  top:18px;
  right:22px;
  width:48px;
  height:48px;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:2rem;
  line-height:1;
  cursor:pointer;
}

@media (max-width: 1200px){
  body[data-page="section-tld-photos"] .tld-media-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 900px){
  body[data-page="section-tld-photos"] .tld-media-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  body[data-page="section-tld-photos"] .tld-media-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body[data-page="section-tld-photos"] .tld-media-lightbox{
    padding:14px;
  }
}


body[data-page="section-tld"] .section-logo,
body[data-page="section-tld-photos"] .section-logo{
  width: 72px !important;
  min-width: 72px !important;
  max-width: 72px !important;
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  padding: 0 !important;
  overflow: hidden !important;
  align-self: flex-start !important;
  justify-content: stretch !important;
  background: rgba(255,255,255,.04) !important;
}
body[data-page="section-tld"] .section-logo img,
body[data-page="section-tld-photos"] .section-logo img{
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: 100% !important;
  object-fit: fill !important;
  object-position: center center !important;
  display: block !important;
}

/* ===== Sections page: répartition verticale améliorée ===== */
body[data-page="sections"] main.sections-page{
  display: flex;
  flex-direction: column;
}

body[data-page="sections"] .page-head{
  flex: 0 0 auto;
  padding: 24px 0 12px;
}

body[data-page="sections"] .content{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  padding: 12px 0 24px;
  overflow: auto;
}

body[data-page="sections"] .sections-card{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 24px;
}

body[data-page="sections"] .sections-intro{
  margin: 0 0 18px 0;
}

body[data-page="sections"] .sections-grid{
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

body[data-page="sections"] .section-tile{
  min-height: 74px;
  padding: 18px 16px;
  transition: background .2s ease, transform .2s ease;
}

body[data-page="sections"] .section-tile:hover{
  transform: translateY(-1px);
}

@media (max-width: 820px){
  body[data-page="sections"] .content{
    overflow: visible;
  }

  body[data-page="sections"] .sections-grid{
    grid-template-columns: 1fr;
    grid-template-rows: none;
    grid-auto-rows: minmax(64px, auto);
  }
}

@media (max-height: 840px) and (min-width: 821px){
  body[data-page="sections"] .page-head{
    padding: 20px 0 10px;
  }

  body[data-page="sections"] .content{
    padding: 10px 0 18px;
  }

  body[data-page="sections"] .sections-card{
    padding: 20px;
  }

  body[data-page="sections"] .sections-intro{
    margin-bottom: 14px;
  }

  body[data-page="sections"] .section-tile{
    min-height: 64px;
    padding: 15px 14px;
  }
}

/* ===== Sections dédiées vides : lecture confortable ===== */
body[data-page^="section-"] .section-body-readable{
  line-height: 1.7;
}

body[data-page^="section-"] .section-body-readable h2{
  margin: 0 0 14px;
}

body[data-page^="section-"] .section-body-readable p{
  margin: 0 0 16px;
  max-width: 960px;
}

/* ===== Balltrap pages ===== */
body[data-page^="section-balltrap"] .section-body{
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 6px;
}

body[data-page^="section-balltrap"] .section-card{
  max-height: calc(100vh - 170px);
}

body[data-page^="section-balltrap"] .section-body::-webkit-scrollbar{ width: 10px; }
body[data-page^="section-balltrap"] .section-body::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,.16);
  border-radius: 999px;
}
body[data-page^="section-balltrap"] .section-body::-webkit-scrollbar-track{
  background: rgba(255,255,255,.04);
  border-radius: 999px;
}
body[data-page^="section-balltrap"] .section-person{ align-items:flex-start; }
body[data-page^="section-balltrap"] .section-contact-wrap{
  display:flex;
  flex-direction:column;
  gap:18px;
}
body[data-page^="section-balltrap"] .section-shortcuts{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
body[data-page^="section-balltrap"] .section-shortcut-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 18px;
  border-radius:12px;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.16);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  transition:.2s ease;
}
body[data-page^="section-balltrap"] .section-shortcut-btn:hover{
  background:rgba(255,255,255,0.12);
  transform:translateY(-1px);
}
body[data-page^="section-balltrap"] .section-shortcut-btn.is-active{
  background: rgba(255,255,255,0.16);
  border-color: rgba(255,255,255,0.26);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
}
body[data-page^="section-balltrap"] .section-body-readable{ line-height:1.7; }
body[data-page^="section-balltrap"] .section-body-readable h2,
body[data-page^="section-balltrap"] .section-body-readable h3{ margin:0 0 14px; }
body[data-page^="section-balltrap"] .section-body-readable p{ margin:0 0 16px; max-width:1050px; }
body[data-page^="section-balltrap"] .section-body-readable ul{ margin:0 0 18px 22px; }
body[data-page^="section-balltrap"] .section-body-readable li{ margin:0 0 8px; }
body[data-page^="section-balltrap"] .section-page-title{ margin-top:0; }
body[data-page^="section-balltrap"] .section-head-no-logo{ justify-content:flex-start; }

body[data-page="section-balltrap-calendrier"] .balltrap-calendar-body{
  display:flex;
  flex-direction:column;
  gap:18px;
}
body[data-page="section-balltrap-calendrier"] .balltrap-calendar-status{
  color:var(--muted,#8ea0bd);
  font-weight:700;
}
body[data-page="section-balltrap-calendrier"] .balltrap-calendar-list{
  display:flex;
  flex-direction:column;
  gap:18px;
}
body[data-page="section-balltrap-calendrier"] .balltrap-month-group{
  display:flex;
  flex-direction:column;
  gap:12px;
}
body[data-page="section-balltrap-calendrier"] .balltrap-month-group h3{
  margin:0;
  text-transform:capitalize;
}
body[data-page="section-balltrap-calendrier"] .balltrap-month-cards{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap:14px;
}
body[data-page="section-balltrap-calendrier"] .balltrap-date-card{
  border:1px solid rgba(255,255,255,.1);
  border-radius:16px;
  padding:16px 18px;
  background:rgba(7,15,28,.72);
  display:flex;
  flex-direction:column;
  gap:10px;
}
body[data-page="section-balltrap-calendrier"] .balltrap-date-day{
  font-weight:800;
  font-size:1rem;
  text-transform:capitalize;
}
body[data-page="section-balltrap-calendrier"] .balltrap-date-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
body[data-page="section-balltrap-calendrier"] .balltrap-date-time{
  color:var(--muted,#8ea0bd);
  font-weight:600;
}
body[data-page="section-balltrap-calendrier"] .balltrap-date-type{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:5px 10px;
  font-size:.76rem;
  font-weight:700;
  background:rgba(28,130,76,.16);
  color:#aef3c8;
}

body[data-page="section-balltrap-photos"] .section-intro,
body[data-page="section-balltrap-calendrier"] .section-intro{ margin-bottom: 4px; }
body[data-page="section-balltrap-photos"] .tld-media-grid{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
  align-items:start;
}

body[data-page="section-balltrap-photos"] .tld-media-card{
  display:flex;
  flex-direction:column;
  gap:8px;
}

body[data-page="section-balltrap-photos"] .tld-media-caption{
  font-size:.92rem;
  font-weight:700;
  color:#dfe7f4;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

body[data-page="section-balltrap-photos"] .tld-media-tile{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  aspect-ratio: 1 / 1;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.05);
  cursor:pointer;
  padding:0;
}

body[data-page="section-balltrap-photos"] .tld-media-tile img,
body[data-page="section-balltrap-photos"] .tld-media-tile video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

body[data-page="section-balltrap-photos"] .tld-media-tile.is-video::after{
  content:"VIDÉO";
  position:absolute;
  left:10px;
  bottom:10px;
  padding:4px 8px;
  border-radius:999px;
  font-size:.75rem;
  font-weight:800;
  background:rgba(0,0,0,.62);
  color:#fff;
}

body[data-page="section-balltrap-photos"] .tld-media-play{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%, -50%);
  width:54px;
  height:54px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.55);
  color:#fff;
  font-size:1.2rem;
  pointer-events:none;
}

body[data-page="section-balltrap-photos"] .tld-media-tile.is-empty{
  color:rgba(255,255,255,.55);
  font-weight:700;
  cursor:default;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
}

body[data-page="section-balltrap-photos"] .tld-media-card.is-empty .tld-media-caption{
  color:rgba(223,231,244,.72);
}

body.tld-lightbox-open{
  overflow:hidden;
}

body[data-page="section-balltrap-photos"] .tld-media-lightbox[hidden]{
  display:none !important;
}

body[data-page="section-balltrap-photos"] .tld-media-tile.is-empty{
  pointer-events:none;
}

body[data-page="section-balltrap-photos"] .tld-media-lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  background:rgba(3,8,18,.92);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}

body[data-page="section-balltrap-photos"] .tld-media-lightbox-inner{
  max-width:min(1200px, 96vw);
  max-height:92vh;
  width:100%;
  display:flex;
  flex-direction:column;
  gap:12px;
}

body[data-page="section-balltrap-photos"] .tld-media-lightbox-label{
  color:#fff;
  font-size:1.1rem;
  font-weight:800;
}

body[data-page="section-balltrap-photos"] .tld-media-lightbox-content{
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  overflow:hidden;
  background:#000;
  min-height:300px;
}

body[data-page="section-balltrap-photos"] .tld-media-lightbox-content img,
body[data-page="section-balltrap-photos"] .tld-media-lightbox-content video{
  max-width:100%;
  max-height:calc(92vh - 80px);
  width:auto;
  height:auto;
  display:block;
}

body[data-page="section-balltrap-photos"] .tld-media-lightbox-close{
  position:absolute;
  top:18px;
  right:22px;
  width:48px;
  height:48px;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:2rem;
  line-height:1;
  cursor:pointer;
}

body[data-page="section-balltrap-photos"] .balltrap-empty-state,
body[data-page="section-balltrap-calendrier"] .balltrap-empty-state{
  padding:18px 20px;
  border-radius:16px;
  border:1px dashed rgba(255,255,255,.18);
  background:rgba(255,255,255,.03);
  color:#d6deec;
}

@media (max-width: 1200px){
  body[data-page="section-balltrap-photos"] .tld-media-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 900px){
  body[data-page^="section-balltrap"] .section-head{ flex-direction:column; }
  body[data-page^="section-balltrap"] .section-person{ flex-direction:column; align-items:flex-start; }
  body[data-page="section-balltrap-photos"] .tld-media-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  body[data-page="section-balltrap-photos"] .tld-media-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body[data-page="section-balltrap-photos"] .tld-media-lightbox{
    padding:14px;
  }
}


/* ===== Alignement général + responsive mobile ===== */
html{min-height:100%;}
body{
  min-height:100svh;
  display:flex;
  flex-direction:column;
}

main{
  flex:1 0 auto;
  width:100%;
}

.site-header,
.ticker,
.footer{
  flex:0 0 auto;
}

.container{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 16px;
}

.nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:var(--text);
  font-weight:800;
  cursor:pointer;
}

.nav-toggle:hover{
  background:rgba(255,255,255,.1);
}

@media (max-width: 980px){
  body,
  body.home,
  body.tarifs-page,
  body[data-page="sections"],
  body[data-page="plan-interactif"],
  body[data-page^="section-"]{
    height:auto !important;
    min-height:100svh !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }

  .container{
    padding:0 12px;
  }

  .site-header{
    position:sticky;
    top:0;
  }

  .header-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    padding:10px 0;
  }

  .brand{
    min-width:0;
  }

  .brand img{
    height:64px;
    max-height:64px;
  }

  .brand .name{
    max-width:none;
    font-size:clamp(18px, 4.8vw, 28px);
  }

  .brand .tag{
    font-size:11px;
  }

  .nav-toggle{
    display:inline-flex;
  }

  .nav{
    display:none;
    grid-column:1 / -1;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:12px;
    padding-top:4px;
  }

  .nav.is-open{
    display:flex;
  }

  .nav ul{
    width:100%;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:8px;
  }

  .nav li,
  .nav > ul > li > a,
  .nav .cta{
    width:100%;
  }

  .nav > ul > li > a,
  .nav .cta{
    justify-content:center;
    min-height:44px;
  }

  .hero{
    min-height:auto !important;
  }

  .hero-inner,
  body.home .hero-inner{
    padding:18px 0 !important;
  }

  .hero-grid{
    grid-template-columns:1fr;
    gap:16px;
  }

  .hero-copy h1,
  .hero h1{
    font-size:clamp(30px, 9vw, 44px);
  }

  .hero-copy p,
  .hero p{
    font-size:15px;
  }

  .hero-visual{
    height:auto;
    max-height:none;
    aspect-ratio:16 / 9;
  }

  body.home .section,
  body[data-page="sections"] .content,
  body[data-page="plan-interactif"] .content,
  body[data-page^="section-"] .content{
    overflow:visible !important;
  }

  body[data-page="sections"] main.sections-page,
  body[data-page^="section-"] main.section-page,
  body[data-page="plan-interactif"] main.pi-main{
    overflow:visible !important;
  }

  body[data-page^="section-"] .section-card,
  body[data-page="section-tld"] .section-card,
  body[data-page="section-tld-photos"] .section-card,
  body[data-page^="section-balltrap"] .section-card{
    max-height:none !important;
  }

  body[data-page^="section-"] .section-body,
  body[data-page="section-tld"] .section-body,
  body[data-page="section-tld-photos"] .section-body,
  body[data-page^="section-balltrap"] .section-body{
    overflow:visible !important;
    padding-right:0 !important;
  }

  body[data-page="plan-interactif"] .pi-wrap{
    height:auto !important;
    display:flex;
    flex-direction:column;
  }

  body[data-page="plan-interactif"] .pi-top,
  body[data-page="plan-interactif"] .pi-bottom{
    height:auto !important;
    overflow:visible !important;
  }

  .grid-2,
  .public-cal-layout,
  body[data-page="sections"] .sections-grid{
    grid-template-columns:1fr !important;
  }

  .president{
    grid-template-columns:1fr;
  }

  .president img{
    width:100%;
    height:auto;
    max-height:280px;
  }

  .quicklinks{
    grid-template-columns:1fr;
  }

  .public-cal-card-head--split{
    flex-direction:column;
    align-items:flex-start;
  }

  .public-cal-nav{
    width:100%;
    justify-content:space-between;
  }

  .ticker .track{
    gap:24px;
    padding:10px 0;
    animation-duration:24s;
  }
}

@media (max-width: 640px){
  .brand{
    align-items:flex-start;
  }

  .brand .tag{
    display:none;
  }

  .page-head{
    padding:22px 0 8px;
  }

  .page-title{
    font-size:28px;
  }

  .card{
    padding:16px;
  }

  .hero-actions{
    flex-direction:column;
  }

  .hero-actions .btn{
    width:100%;
  }
}


/* ===== Final responsive/layout fixes (full width + ticker/footer at bottom) ===== */
html{
  min-height:100%;
}
body,
body.home,
body.tarifs-page,
body[data-page="sections"],
body[data-page="plan-interactif"],
body[data-page="travaux"],
body[data-page^="section-"]{
  min-height:100svh !important;
  height:auto !important;
  display:flex !important;
  flex-direction:column !important;
  overflow-x:hidden !important;
}

main,
body.home main,
body.tarifs-page main,
body[data-page="sections"] main.sections-page,
body[data-page="plan-interactif"] main.pi-main,
body[data-page="travaux"] main.works-page,
body[data-page^="section-"] main.section-page{
  flex:1 0 auto !important;
  width:100%;
}

.site-header,
.ticker,
.footer{
  flex:0 0 auto !important;
}

.container{
  width:100%;
  max-width:none !important;
  margin:0;
  padding-left:16px;
  padding-right:16px;
}

body[data-page="sections"] main.sections-page{
  display:flex !important;
  flex-direction:column !important;
  overflow:visible !important;
}

body[data-page="sections"] .content{
  flex:1 0 auto;
  padding-bottom:28px;
}

body[data-page^="section-"] main.section-page,
body[data-page^="section-"] main.section-page > .container,
body[data-page^="section-"] .section-card{
  min-height:0;
}

body[data-page^="section-"] .section-card{
  width:100%;
}

@media (max-width: 980px){
  .container{
    padding-left:12px;
    padding-right:12px;
  }

  .site-header{
    position:sticky;
    top:0;
    z-index:200;
  }

  .header-inner{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
  }

  .brand{
    min-width:0;
    gap:10px;
  }

  .brand img{
    height:58px;
    max-height:58px;
  }

  .brand .name{
    max-width:none;
    font-size:clamp(18px, 5.6vw, 28px);
  }

  .nav-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  .nav{
    display:none;
    grid-column:1 / -1;
    width:100%;
    margin-top:4px;
    padding:12px;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    background:rgba(11,15,20,.98);
    border:1px solid rgba(255,255,255,.10);
    border-radius:16px;
    box-shadow:0 16px 36px rgba(0,0,0,.35);
  }

  .nav.is-open{
    display:flex !important;
  }

  .nav ul{
    width:100%;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:8px;
  }

  .nav li,
  .nav > ul > li > a,
  .nav .cta{
    width:100%;
  }

  .nav > ul > li > a{
    justify-content:flex-start;
    min-height:44px;
    padding:12px 14px;
  }

  .nav .cta{
    justify-content:center;
    min-height:46px;
  }

  .dropdown,
  .nav li:hover > .dropdown{
    position:static;
    top:auto;
    left:auto;
    display:block;
    min-width:0;
    padding:6px 0 0 12px;
    background:transparent;
    border:0;
    box-shadow:none;
  }

  .hero-grid,
  .grid-2,
  .public-cal-layout,
  body[data-page="sections"] .sections-grid{
    grid-template-columns:1fr !important;
  }

  .hero-visual{
    height:auto !important;
    max-height:none !important;
    aspect-ratio:16 / 9;
  }

  body[data-page^="section-"] .section-head,
  body[data-page^="section-"] .section-person{
    flex-direction:column;
    align-items:flex-start;
  }

  body[data-page^="section-"] .section-logo{
    width:100% !important;
    min-width:0 !important;
    max-width:280px !important;
    margin-top:0 !important;
  }
}

@media (max-width: 640px){
  .brand .tag{
    display:none;
  }

  .hero-actions{
    flex-direction:column;
  }

  .hero-actions .btn,
  .quicklinks .q{
    width:100%;
  }

  .page-title{
    font-size:28px;
  }
}


/* ===== TEST THEME — pages généralistes en ambiance claire/photo ===== */
body.general-light-theme{
  --text:#183251;
  --muted:#4f6888;
  --line:rgba(36,72,117,.12);
  --panel:rgba(255,255,255,.62);
  --shadow:0 18px 44px rgba(57,90,132,.14);
  color:var(--text);
  background:
    linear-gradient(180deg, rgba(245,249,255,.58) 0%, rgba(236,244,255,.70) 32%, rgba(225,238,255,.90) 100%),
    radial-gradient(900px 520px at 12% 0%, rgba(255,255,255,.62), transparent 60%),
    radial-gradient(780px 420px at 88% 10%, rgba(255,189,128,.22), transparent 58%),
    url('../img/general-pages-bg.jpg') center top / cover fixed no-repeat,
    #dbe9f8;
}

body.general-light-theme .site-header{
  background:rgba(255,255,255,.68);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(35,67,106,.10);
  box-shadow:0 12px 26px rgba(86,116,154,.08);
}
body.general-light-theme .brand .name,
body.general-light-theme .brand .tag,
body.general-light-theme .nav > ul > li > a,
body.general-light-theme .page-title,
body.general-light-theme .card h2,
body.general-light-theme .card h3,
body.general-light-theme .card h4,
body.general-light-theme .hero-copy h1,
body.general-light-theme .hero h1,
body.general-light-theme .tarif-title,
body.general-light-theme .section-tile,
body.general-light-theme .public-cal-card-head h2,
body.general-light-theme .pi-gallery-title{
  color:var(--text);
}
body.general-light-theme .brand .tag,
body.general-light-theme .breadcrumb,
body.general-light-theme .hero-copy p,
body.general-light-theme .hero p,
body.general-light-theme .card p,
body.general-light-theme .list,
body.general-light-theme .page-sub,
body.general-light-theme .public-cal-card-head p,
body.general-light-theme .public-cal-plan-note,
body.general-light-theme .pi-gallery-hint{
  color:var(--muted);
}
body.general-light-theme .nav > ul > li > a:hover{
  background:rgba(255,255,255,.48);
  border-color:rgba(36,72,117,.10);
}
body.general-light-theme .dropdown{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(35,67,106,.12);
  box-shadow:0 18px 34px rgba(61,94,136,.14);
}
body.general-light-theme .dropdown a{color:var(--text);}
body.general-light-theme .dropdown a:hover{background:rgba(217,230,249,.65);}

body.general-light-theme .cta,
body.general-light-theme .btn.primary{
  color:#fff;
  box-shadow:0 12px 28px rgba(255,122,24,.24);
}
body.general-light-theme .btn,
body.general-light-theme .q,
body.general-light-theme .useful-link-action,
body.general-light-theme .docs-link,
body.general-light-theme .section-tile,
body.general-light-theme .public-cal-nav-btn{
  background:rgba(255,255,255,.70) !important;
  border:1px solid rgba(43,76,118,.16) !important;
  color:var(--text) !important;
  box-shadow:0 10px 22px rgba(83,113,151,.08);
}
body.general-light-theme .btn:hover,
body.general-light-theme .q:hover,
body.general-light-theme .useful-link-action:hover,
body.general-light-theme .docs-link:hover,
body.general-light-theme .section-tile:hover,
body.general-light-theme .public-cal-nav-btn:hover{
  background:rgba(255,255,255,.86) !important;
}
body.general-light-theme .hero{
  background:transparent;
  border-bottom:1px solid rgba(35,67,106,.08);
}
body.general-light-theme .hero:before{
  background:linear-gradient(90deg, rgba(245,249,255,.72) 0%, rgba(245,249,255,.44) 50%, rgba(245,249,255,.22) 100%);
}

body.general-light-theme .card,
body.general-light-theme .stand-plan,
body.general-light-theme .tarif-card,
body.general-light-theme .useful-link-card,
body.general-light-theme .useful-link-logo,
body.general-light-theme .adhesion-step,
body.general-light-theme .docs-category,
body.general-light-theme .docs-subcard,
body.general-light-theme .docs-note,
body.general-light-theme .docs-empty,
body.general-light-theme .public-cal-plan-card,
body.general-light-theme .public-cal-day-detail-card,
body.general-light-theme .public-cal-calendar-card,
body.general-light-theme .pi-top,
body.general-light-theme .pi-bottom{
  background:rgba(255,255,255,.54) !important;
  border:1px solid rgba(48,82,125,.14) !important;
  box-shadow:var(--shadow) !important;
  backdrop-filter:blur(10px);
}
body.general-light-theme .useful-link-card,
body.general-light-theme .adhesion-step,
body.general-light-theme .docs-category,
body.general-light-theme .docs-subcard,
body.general-light-theme .docs-note{
  background:rgba(255,255,255,.48) !important;
}
body.general-light-theme .adhesion-step p,
body.general-light-theme .useful-links-intro,
body.general-light-theme .useful-link-desc,
body.general-light-theme .useful-link-url,
body.general-light-theme .docs-intro,
body.general-light-theme .docs-category p,
body.general-light-theme .docs-empty,
body.general-light-theme .docs-note p,
body.general-light-theme .tarif-prices,
body.general-light-theme .public-cal-day-detail p,
body.general-light-theme .public-cal-status,
body.general-light-theme .pi-gallery-hint{
  color:var(--muted) !important;
}
body.general-light-theme .docs-fileext{
  background:rgba(24,50,81,.08);
  color:var(--text);
}
body.general-light-theme .public-cal-day-detail h3,
body.general-light-theme .public-cal-month-label,
body.general-light-theme .public-cal-weekdays span,
body.general-light-theme .public-cal-day-number,
body.general-light-theme .public-cal-legend .legend-chip,
body.general-light-theme .pi-gallery-title{
  color:var(--text);
}
body.general-light-theme .tarif-img,
body.general-light-theme .section-logo,
body.general-light-theme .useful-link-logo{
  background:rgba(255,255,255,.72) !important;
  border:1px solid rgba(48,82,125,.14) !important;
}
body.general-light-theme .list li{color:var(--muted);}
body.general-light-theme .page-head{padding-top:28px;}
body.general-light-theme .page-title{margin-top:6px;}

body.general-light-theme .ticker{
  margin-top:auto;
  border-top:1px solid rgba(255,255,255,.16);
  border-bottom:1px solid rgba(255,255,255,.16);
  background:rgba(17,31,53,.92);
}
body.general-light-theme .ticker .item{color:#f6f9ff;}
body.general-light-theme .footer{
  color:#25405f;
  background:rgba(255,255,255,.18);
}
body.general-light-theme .footer a{color:#15304f;}

body.home.general-light-theme .hero-actions .btn{
  background:rgba(255,255,255,.76);
}
body.home.general-light-theme .quicklinks .q{
  background:rgba(255,255,255,.62);
}
body.home.general-light-theme .president img{
  border:1px solid rgba(48,82,125,.18);
}
body.general-light-theme .pi-hotspot{
  box-shadow:0 0 0 3px rgba(255,255,255,.72), 0 0 0 5px rgba(30,71,117,.18);
}
body.general-light-theme .public-cal-plan-overlay .plan-zone{
  filter:drop-shadow(0 0 10px rgba(255,255,255,.45));
}
body.general-light-theme .public-cal-day{
  background:rgba(255,255,255,.42);
  border:1px solid rgba(45,79,121,.12);
}
body.general-light-theme .public-cal-day.is-selected,
body.general-light-theme .public-cal-day.is-today{
  background:rgba(255,255,255,.80);
}
body.general-light-theme .public-cal-day.is-empty{
  background:rgba(255,255,255,.18);
}

@media (max-width: 980px){
  body.general-light-theme{
    background:
      linear-gradient(180deg, rgba(245,249,255,.72) 0%, rgba(230,241,255,.88) 100%),
      url('../img/general-pages-bg.jpg') center top / cover no-repeat,
      #dbe9f8;
  }
  body.general-light-theme .site-header{background:rgba(255,255,255,.78);}
}

/* ===== LIGHT PHOTO THEME — version fidèle à la maquette validée ===== */
body.general-light-theme{
  --text:#183252;
  --muted:#526884;
  --line:rgba(38,72,111,.14);
  --panel:rgba(255,255,255,.34);
  --shadow:0 18px 48px rgba(44,77,115,.18);
  position:relative;
  color:var(--text);
  background: url('../img/general-pages-bg.jpg') center top / cover fixed no-repeat #dbe4ee;
}
body.general-light-theme::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(247,250,255,.36) 0%, rgba(244,248,254,.24) 24%, rgba(239,245,252,.30) 100%),
    radial-gradient(980px 520px at 12% 0%, rgba(255,255,255,.52), transparent 62%),
    radial-gradient(880px 520px at 88% 8%, rgba(255,236,206,.34), transparent 56%),
    linear-gradient(180deg, rgba(234,242,250,.18) 0%, rgba(233,241,249,.08) 100%);
}
body.general-light-theme > *{
  position:relative;
  z-index:1;
}
body.general-light-theme .site-header{
  background:rgba(255,255,255,.54);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(28,58,97,.10);
  box-shadow:0 10px 28px rgba(83,111,145,.10);
}
body.general-light-theme .brand .name,
body.general-light-theme .brand .tag,
body.general-light-theme .nav > ul > li > a,
body.general-light-theme .page-title,
body.general-light-theme .card h2,
body.general-light-theme .card h3,
body.general-light-theme .card h4,
body.general-light-theme .hero-copy h1,
body.general-light-theme .hero h1,
body.general-light-theme .tarif-title,
body.general-light-theme .section-tile,
body.general-light-theme .public-cal-card-head h2,
body.general-light-theme .pi-gallery-title,
body.general-light-theme .q,
body.general-light-theme .btn,
body.general-light-theme .docs-link,
body.general-light-theme .useful-link-action,
body.general-light-theme .public-cal-nav-btn{
  color:var(--text);
}
body.general-light-theme .brand .tag,
body.general-light-theme .breadcrumb,
body.general-light-theme .hero-copy p,
body.general-light-theme .hero p,
body.general-light-theme .card p,
body.general-light-theme .list,
body.general-light-theme .page-sub,
body.general-light-theme .public-cal-card-head p,
body.general-light-theme .public-cal-plan-note,
body.general-light-theme .pi-gallery-hint,
body.general-light-theme .useful-link-desc,
body.general-light-theme .useful-link-url,
body.general-light-theme .docs-intro,
body.general-light-theme .docs-note p,
body.general-light-theme .docs-empty,
body.general-light-theme .tarif-prices,
body.general-light-theme .public-cal-day-detail p,
body.general-light-theme .public-cal-status{
  color:var(--muted);
}
body.general-light-theme .nav > ul > li > a{
  font-weight:700;
}
body.general-light-theme .nav > ul > li > a:hover{
  background:rgba(255,255,255,.30);
  border-color:rgba(38,72,111,.10);
}
body.general-light-theme .dropdown{
  background:rgba(255,255,255,.84);
  border:1px solid rgba(42,76,118,.14);
  box-shadow:0 18px 36px rgba(56,90,131,.14);
  backdrop-filter:blur(14px);
}
body.general-light-theme .dropdown a{color:var(--text);}
body.general-light-theme .dropdown a:hover{background:rgba(223,233,247,.60);}
body.general-light-theme .cta,
body.general-light-theme .btn.primary{
  color:#fff;
  background:linear-gradient(135deg, var(--accent), var(--accent2));
  border-color:rgba(255,255,255,.34);
  box-shadow:0 14px 30px rgba(255,122,24,.26);
}
body.general-light-theme .btn,
body.general-light-theme .q,
body.general-light-theme .useful-link-action,
body.general-light-theme .docs-link,
body.general-light-theme .section-tile,
body.general-light-theme .public-cal-nav-btn{
  background:rgba(255,255,255,.44) !important;
  border:1px solid rgba(41,76,118,.14) !important;
  box-shadow:0 10px 24px rgba(76,107,145,.10);
  backdrop-filter:blur(12px);
}
body.general-light-theme .btn:hover,
body.general-light-theme .q:hover,
body.general-light-theme .useful-link-action:hover,
body.general-light-theme .docs-link:hover,
body.general-light-theme .section-tile:hover,
body.general-light-theme .public-cal-nav-btn:hover{
  background:rgba(255,255,255,.58) !important;
}
body.general-light-theme .hero{
  background:transparent;
  border-bottom:1px solid rgba(32,65,103,.08);
}
body.general-light-theme .hero:before{
  background:linear-gradient(90deg, rgba(245,248,253,.60) 0%, rgba(245,248,253,.40) 40%, rgba(245,248,253,.16) 72%, rgba(245,248,253,.06) 100%);
}
body.general-light-theme .card,
body.general-light-theme .stand-plan,
body.general-light-theme .tarif-card,
body.general-light-theme .useful-link-card,
body.general-light-theme .useful-link-logo,
body.general-light-theme .adhesion-step,
body.general-light-theme .docs-category,
body.general-light-theme .docs-subcard,
body.general-light-theme .docs-note,
body.general-light-theme .docs-empty,
body.general-light-theme .public-cal-plan-card,
body.general-light-theme .public-cal-day-detail-card,
body.general-light-theme .public-cal-calendar-card,
body.general-light-theme .pi-top,
body.general-light-theme .pi-bottom{
  background:rgba(255,255,255,.38) !important;
  border:1px solid rgba(255,255,255,.30) !important;
  box-shadow:var(--shadow) !important;
  backdrop-filter:blur(16px);
}
body.general-light-theme .stand-plan{
  background:rgba(255,255,255,.28) !important;
}
body.general-light-theme .useful-link-card,
body.general-light-theme .adhesion-step,
body.general-light-theme .docs-category,
body.general-light-theme .docs-subcard,
body.general-light-theme .docs-note{
  background:rgba(255,255,255,.34) !important;
}
body.general-light-theme .tarif-img,
body.general-light-theme .section-logo,
body.general-light-theme .useful-link-logo{
  background:rgba(255,255,255,.50) !important;
  border:1px solid rgba(255,255,255,.36) !important;
}
body.general-light-theme .page-head{
  padding-top:28px;
}
body.general-light-theme .page-title{margin-top:6px;}
body.general-light-theme .page-head,
body.general-light-theme .content,
body.general-light-theme .section{
  background:transparent;
}
body.general-light-theme .ticker{
  margin-top:auto;
  border-top:1px solid rgba(255,255,255,.16);
  border-bottom:1px solid rgba(255,255,255,.16);
  background:rgba(17,31,53,.92);
}
body.general-light-theme .ticker .item{color:#f6f9ff;}
body.general-light-theme .footer{
  color:#1f3958;
  background:rgba(255,255,255,.16);
}
body.general-light-theme .footer a{color:#123150;}
body.home.general-light-theme .hero-actions .btn,
body.home.general-light-theme .quicklinks .q{
  background:rgba(255,255,255,.52) !important;
}
body.home.general-light-theme .president img{
  border:1px solid rgba(255,255,255,.34);
}
body.general-light-theme .pi-hotspot{
  box-shadow:0 0 0 3px rgba(255,255,255,.82), 0 0 0 5px rgba(28,71,117,.16);
}
body.general-light-theme .public-cal-plan-overlay .plan-zone{
  filter:drop-shadow(0 0 10px rgba(255,255,255,.42));
}
body.general-light-theme .public-cal-day{
  background:rgba(255,255,255,.30);
  border:1px solid rgba(45,79,121,.10);
}
body.general-light-theme .public-cal-day.is-selected,
body.general-light-theme .public-cal-day.is-today{
  background:rgba(255,255,255,.58);
}
body.general-light-theme .public-cal-day.is-empty{
  background:rgba(255,255,255,.16);
}

@media (max-width: 980px){
  body.general-light-theme{
    background:url('../img/general-pages-bg.jpg') center top / cover no-repeat #dbe4ee;
  }
  body.general-light-theme::before{
    background:
      linear-gradient(180deg, rgba(246,249,254,.44) 0%, rgba(240,245,252,.34) 100%),
      radial-gradient(620px 320px at 20% 0%, rgba(255,255,255,.56), transparent 70%),
      radial-gradient(620px 300px at 85% 10%, rgba(255,236,206,.26), transparent 68%);
  }
  body.general-light-theme .site-header{
    background:rgba(255,255,255,.64);
  }
  body.general-light-theme .hero:before{
    background:linear-gradient(180deg, rgba(246,249,254,.44) 0%, rgba(246,249,254,.18) 100%);
  }
}

/* ===== FINAL TUNING — pages généralistes plus lisibles ===== */
body.general-light-theme{
  background:url('../img/general-pages-bg.jpg') center top / cover fixed no-repeat #e7edf4;
}
body.general-light-theme::before{
  background:
    linear-gradient(180deg, rgba(249,251,254,.82) 0%, rgba(246,249,253,.74) 30%, rgba(242,247,252,.76) 100%),
    radial-gradient(920px 460px at 14% 0%, rgba(255,255,255,.62), transparent 64%),
    radial-gradient(920px 480px at 88% 8%, rgba(255,233,206,.30), transparent 58%);
}
body.general-light-theme .site-header{
  background:rgba(255,255,255,.82) !important;
  box-shadow:0 10px 26px rgba(70,99,132,.10);
}
body.general-light-theme .hero:before{
  background:linear-gradient(90deg, rgba(249,251,254,.88) 0%, rgba(249,251,254,.70) 38%, rgba(249,251,254,.34) 70%, rgba(249,251,254,.12) 100%) !important;
}
body.general-light-theme .card,
body.general-light-theme .stand-plan,
body.general-light-theme .tarif-card,
body.general-light-theme .useful-link-card,
body.general-light-theme .adhesion-step,
body.general-light-theme .docs-category,
body.general-light-theme .docs-subcard,
body.general-light-theme .docs-note,
body.general-light-theme .docs-empty,
body.general-light-theme .pi-top,
body.general-light-theme .pi-bottom{
  background:rgba(255,255,255,.86) !important;
  border:1px solid rgba(35,66,101,.10) !important;
  box-shadow:0 14px 34px rgba(52,82,116,.12) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
body.general-light-theme .useful-link-logo,
body.general-light-theme .tarif-img,
body.general-light-theme .section-logo{
  background:rgba(255,255,255,.92) !important;
  border:1px solid rgba(35,66,101,.10) !important;
}
body.general-light-theme .btn,
body.general-light-theme .q,
body.general-light-theme .useful-link-action,
body.general-light-theme .docs-link,
body.general-light-theme .section-tile,
body.general-light-theme .public-cal-nav-btn{
  background:rgba(255,255,255,.92) !important;
  border:1px solid rgba(35,66,101,.12) !important;
  box-shadow:0 8px 20px rgba(68,99,135,.10) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
body.general-light-theme .btn:hover,
body.general-light-theme .q:hover,
body.general-light-theme .useful-link-action:hover,
body.general-light-theme .docs-link:hover,
body.general-light-theme .section-tile:hover,
body.general-light-theme .public-cal-nav-btn:hover{
  background:rgba(255,255,255,.98) !important;
}
body.general-light-theme .footer{
  background:rgba(255,255,255,.32) !important;
}

/* Calendrier public : lisibilité renforcée */
body.general-light-theme .public-cal-plan-card,
body.general-light-theme .public-cal-day-detail-card,
body.general-light-theme .public-cal-calendar-card{
  background:rgba(255,255,255,.90) !important;
  border:1px solid rgba(35,66,101,.11) !important;
}
body.general-light-theme .public-cal-card-head h2,
body.general-light-theme .public-cal-month-label,
body.general-light-theme .public-cal-day-detail h3,
body.general-light-theme .public-cal-session-title{
  color:#183252 !important;
}
body.general-light-theme .public-cal-card-head p,
body.general-light-theme .public-cal-plan-note,
body.general-light-theme .public-cal-status,
body.general-light-theme .public-cal-session-time,
body.general-light-theme .public-cal-session-perm,
body.general-light-theme .public-cal-session-zones,
body.general-light-theme .public-cal-session-description-label{
  color:#546b86 !important;
}
body.general-light-theme .public-cal-grid-wrap{
  background:rgba(255,255,255,.82) !important;
  border:1px solid rgba(35,66,101,.12) !important;
}
body.general-light-theme .public-cal-weekdays span{
  color:#294565 !important;
  background:rgba(227,234,242,.90) !important;
}
body.general-light-theme .public-cal-day{
  background:rgba(255,255,255,.78) !important;
  color:#183252 !important;
  border-right:1px solid rgba(35,66,101,.10) !important;
  border-top:1px solid rgba(35,66,101,.10) !important;
}
body.general-light-theme .public-cal-day.is-blank,
body.general-light-theme .public-cal-day.is-empty{
  background:rgba(242,246,250,.72) !important;
}
body.general-light-theme .public-cal-day:hover:not(.is-blank),
body.general-light-theme .public-cal-day.is-selected{
  background:rgba(224,238,249,.96) !important;
}
body.general-light-theme .public-cal-day.is-today{
  background:rgba(232,242,251,.98) !important;
  box-shadow:inset 0 0 0 1px rgba(47,119,182,.48) !important;
}
body.general-light-theme .public-cal-day-num,
body.general-light-theme .public-cal-day-number{
  color:#183252 !important;
  font-weight:800 !important;
}
body.general-light-theme .public-cal-day.has-events .public-cal-day-num{
  color:#216c4b !important;
}
body.general-light-theme .public-cal-tag,
body.general-light-theme .public-cal-more{
  background:rgba(27,67,107,.08) !important;
  color:#284565 !important;
  border:1px solid rgba(27,67,107,.08);
}
body.general-light-theme .public-cal-session{
  background:rgba(248,250,253,.98) !important;
  border:1px solid rgba(35,66,101,.11) !important;
}
body.general-light-theme .public-cal-session-description{
  background:rgba(238,243,248,.92) !important;
  border:1px solid rgba(35,66,101,.08) !important;
}
body.general-light-theme .public-cal-session-description-text{
  color:#183252 !important;
}
body.general-light-theme .public-cal-session-type{
  background:rgba(28,130,76,.12) !important;
  color:#216c4b !important;
  border:1px solid rgba(28,130,76,.16);
}
body.general-light-theme .public-cal-session-zones span{
  background:rgba(27,67,107,.08) !important;
  color:#284565 !important;
}

/* ===== PAGE ÉVÈNEMENTS ===== */
.events-page-head{padding-bottom:18px}
.events-page .page-sub{
  max-width:860px;
  margin:12px 0 0;
  color:var(--muted);
  font-size:16px;
  line-height:1.7;
}
.events-shell{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:22px;
  align-items:start;
}
.events-main{
  display:grid;
  gap:22px;
}
.events-page .container,
.events-shell,
.events-main,
.events-grid,
.events-grid > *,
.events-card,
.events-card-head,
.events-card-head > div,
.events-card-body,
.club-event-item{
  min-width:0;
  max-width:100%;
}
.events-page h1,
.events-page h2,
.events-page h3,
.events-page p,
.events-page span,
.events-page a{
  overflow-wrap:anywhere;
}
.events-highlight{
  padding:24px !important;
}
.events-section-kicker,
.events-card-kicker{
  margin:0 0 6px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--accent2);
}
.events-featured-body > * + *{margin-top:14px}
.events-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.events-card{
  height:100%;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.events-card-head{
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.events-card-head h2,
.events-anchor-card h2,
.events-info-card h2,
.events-featured-body h2{
  margin:0;
}
.events-card-icon{
  width:44px;
  height:44px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:900;
  letter-spacing:.05em;
  background:linear-gradient(135deg, rgba(255,59,48,.18), rgba(255,122,24,.24));
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
  flex:0 0 auto;
}
.events-card-body,
.events-info-body{
  display:grid;
  gap:14px;
}
.events-side{
  display:grid;
  gap:18px;
  position:sticky;
  top:112px;
}
.events-anchor-card,
.events-info-card{padding:22px !important}
.events-anchor-list{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.events-anchor-list a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  font-weight:800;
}
.events-anchor-list a::after{
  content:"→";
  opacity:.72;
}
.events-anchor-list a:hover{
  background:rgba(255,255,255,.10);
}
.club-event-item{
  display:grid;
  gap:10px;
  padding:16px 18px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.04);
}
.club-event-item--featured{
  padding:18px 20px;
}
.club-event-item h2,
.club-event-item h3{
  margin:0;
  font-size:1.08rem;
}
.club-event-item p{
  margin:0;
  line-height:1.7;
}
.club-event-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.club-event-tag,
.club-event-date{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:6px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
}
.club-event-tag{
  background:linear-gradient(135deg, var(--accent), var(--accent2));
  color:#fff;
}
.club-event-date{
  background:rgba(255,255,255,.08);
  color:var(--muted);
  border:1px solid rgba(255,255,255,.10);
}
body.general-light-theme .events-page .page-sub,
body.general-light-theme .events-page .club-event-date,
body.general-light-theme .events-page .events-info-body .list,
body.general-light-theme .events-page .club-event-item p{
  color:var(--muted);
}
body.general-light-theme .events-card-icon{
  background:linear-gradient(135deg, rgba(255,122,24,.14), rgba(255,59,48,.16));
  border-color:rgba(35,66,101,.10);
  color:#17324d;
}
body.general-light-theme .events-anchor-list a,
body.general-light-theme .club-event-item{
  background:rgba(255,255,255,.74);
  border:1px solid rgba(35,66,101,.10);
  box-shadow:0 8px 20px rgba(69,99,134,.08);
}
body.general-light-theme .events-anchor-list a:hover{
  background:rgba(255,255,255,.92);
}
body.general-light-theme .club-event-date{
  background:rgba(244,247,251,.92);
  border-color:rgba(35,66,101,.10);
}
body.home.general-light-theme .hero-actions .btn.primary{
  background:linear-gradient(135deg, var(--accent), var(--accent2)) !important;
  border-color:rgba(255,255,255,.30) !important;
  color:#fff !important;
  box-shadow:0 14px 30px rgba(255,122,24,.28) !important;
}
body.home.general-light-theme .hero-actions .btn.primary:hover{
  filter:brightness(1.05);
}
@media (max-width: 1100px){
  .events-shell{grid-template-columns:1fr}
  .events-side{position:static}
}
@media (max-width: 980px){
  .events-grid{grid-template-columns:1fr}
  .events-highlight,
  .events-card{padding:18px !important}
  .events-card-head{gap:12px}
  .events-card-icon{width:40px;height:40px;border-radius:12px}
  .club-event-meta{align-items:flex-start}
}
@media (max-width: 640px){
  .events-page-head{padding-bottom:14px}
  .events-page .page-sub{font-size:15px;line-height:1.6}
  .events-highlight,
  .events-card{padding:16px !important}
  .events-card-head h2,
  .events-featured-body h2{font-size:1.05rem}
  .club-event-item,
  .club-event-item--featured{padding:14px 15px}
  .club-event-tag,
  .club-event-date{max-width:100%;white-space:normal;text-align:left}
}


/* --- Homepage: bouton photos / vidéos des derniers évènements --- */
.hero-actions-secondary{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:12px;
}
.hero-actions-secondary .btn{
  min-width:min(100%, 430px);
}
body.home.general-light-theme .hero-actions-secondary .btn{
  background:rgba(255,255,255,.90);
  border:1px solid rgba(35,66,101,.12);
  color:#17324d;
  box-shadow:0 10px 24px rgba(69,99,134,.08);
}
body.home.general-light-theme .hero-actions-secondary .btn:hover{
  background:rgba(255,255,255,.98);
}
body.home.general-light-theme .hero-actions-secondary .btn.btn-access-stands{
  background:linear-gradient(135deg, #78d6a6 0%, #49b777 100%) !important;
  border-color:rgba(255,255,255,.30) !important;
  color:#fff !important;
  box-shadow:0 14px 30px rgba(73,183,119,.24) !important;
}
body.home.general-light-theme .hero-actions-secondary .btn.btn-access-stands:hover{
  filter:brightness(1.05);
}

/* --- Page Photos & Vidéos des derniers évènements --- */
body[data-page="evenements-photos-videos"] .events-media-layout{
  padding:18px 0 48px;
  display:flex;
  flex-direction:column;
  gap:22px;
}
body[data-page="evenements-photos-videos"] .events-media-top{
  padding:22px;
}
body[data-page="evenements-photos-videos"] .events-media-intro{
  margin:0 0 18px 0;
  color:var(--muted);
  line-height:1.7;
  font-size:1.02rem;
}
body[data-page="evenements-photos-videos"] .events-media-slider{
  position:relative;
}
body[data-page="evenements-photos-videos"] .events-media-slider-stage{
  position:relative;
  height:clamp(300px, 52vw, 700px);
  min-height:300px;
  border-radius:22px;
  overflow:hidden;
  background:linear-gradient(180deg, #f8fbff 0%, #eef3f9 100%);
  border:1px solid rgba(35,66,101,.10);
  box-shadow:0 18px 38px rgba(69,99,134,.10);
}
body[data-page="evenements-photos-videos"] .events-media-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .65s ease;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
body[data-page="evenements-photos-videos"] .events-media-slide.is-active{
  opacity:1;
  z-index:1;
}
body[data-page="evenements-photos-videos"] .events-media-slide img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
}
body[data-page="evenements-photos-videos"] .events-media-slider-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  margin-top:14px;
}
body[data-page="evenements-photos-videos"] .events-media-slider-dots{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:0;
}
body[data-page="evenements-photos-videos"] .events-media-autoplay-toggle{
  appearance:none;
  border:1px solid rgba(35,66,101,.14);
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:#17324d;
  font:inherit;
  font-weight:700;
  padding:10px 16px;
  cursor:pointer;
  box-shadow:0 10px 20px rgba(69,99,134,.08);
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
body[data-page="evenements-photos-videos"] .events-media-autoplay-toggle:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 24px rgba(69,99,134,.12);
  background:#fff;
}
body[data-page="evenements-photos-videos"] .events-media-dot{
  width:11px;
  height:11px;
  border-radius:999px;
  border:none;
  background:rgba(23,50,77,.22);
  cursor:pointer;
  transition:transform .18s ease, background .18s ease;
}
body[data-page="evenements-photos-videos"] .events-media-dot.is-active{
  background:linear-gradient(135deg, var(--accent), var(--accent2));
  transform:scale(1.12);
}
body[data-page="evenements-photos-videos"] .events-media-empty{
  min-height:320px;
  border:1px dashed rgba(35,66,101,.16);
  border-radius:22px;
  background:rgba(255,255,255,.72);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:10px;
  padding:28px;
  color:var(--muted);
}
body[data-page="evenements-photos-videos"] .events-media-empty strong{
  color:#17324d;
  font-size:1.05rem;
}
body[data-page="evenements-photos-videos"] .events-media-videos-head h2{
  margin:0 0 8px 0;
  color:#17324d;
  font-size:1.7rem;
}
body[data-page="evenements-photos-videos"] .events-media-videos-head p{
  margin:0;
  color:var(--muted);
}
body[data-page="evenements-photos-videos"] .events-media-video-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
  margin-top:18px;
}
body[data-page="evenements-photos-videos"] .events-media-video-card{
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
body[data-page="evenements-photos-videos"] .events-media-video-card h3{
  margin:0;
  font-size:1.1rem;
  color:#17324d;
}
body[data-page="evenements-photos-videos"] .events-media-video-shell{
  border-radius:18px;
  overflow:hidden;
  background:#0f172a;
  border:1px solid rgba(15,23,42,.18);
}
body[data-page="evenements-photos-videos"] .events-media-video-shell video{
  display:block;
  width:100%;
  height:auto;
  min-height:220px;
  background:#0f172a;
}
body[data-page="evenements-photos-videos"] .events-media-video-empty{
  min-height:220px;
  border:1px dashed rgba(35,66,101,.16);
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:18px;
  color:var(--muted);
  background:rgba(255,255,255,.68);
  font-weight:600;
}
@media (max-width: 980px){
  body[data-page="evenements-photos-videos"] .events-media-slider-stage{
    height:clamp(280px, 56vw, 520px);
    min-height:280px;
  }
}
@media (max-width: 760px){
  body[data-page="evenements-photos-videos"] .events-media-video-grid{
    grid-template-columns:1fr;
  }
  body[data-page="evenements-photos-videos"] .events-media-slider-stage{
    height:clamp(240px, 58vw, 420px);
    min-height:240px;
  }
  body[data-page="evenements-photos-videos"] .events-media-slide{
    padding:10px;
  }
  body[data-page="evenements-photos-videos"] .events-media-slider-controls{
    flex-direction:column;
  }
  body[data-page="evenements-photos-videos"] .events-media-autoplay-toggle{
    width:100%;
    max-width:320px;
    text-align:center;
  }
}


/* ===== Travaux page ===== */
body[data-page="travaux"] .works-page{
  display:flex;
  flex-direction:column;
}
body[data-page="travaux"] .works-content{
  display:flex;
  flex-direction:column;
  gap:20px;
  padding-top:14px;
  padding-bottom:32px;
}
.works-hero-card{
  padding:0;
  overflow:hidden;
  background:linear-gradient(135deg,#f8fbff 0%,#fff6eb 100%);
}
.works-hero-copy{
  margin:0;
  padding:24px 28px;
  color:#44576b;
  line-height:1.75;
}
.works-sections{
  display:grid;
  gap:18px;
}
.works-section{
  padding:0;
  overflow:hidden;
  background:#ffffff;
}
.works-section-grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);
  align-items:stretch;
  gap:0;
}
.works-section-grid--reverse{
  grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);
}
.works-section-grid--reverse .works-copy{
  order:2;
}
.works-section-grid--reverse .works-media{
  order:1;
}
.works-section-grid.is-no-media,
.works-section-grid--reverse.is-no-media{
  grid-template-columns:1fr;
}
.works-copy{
  padding:28px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.works-section-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  padding:6px 12px;
  border-radius:999px;
  background:#fff1e8;
  color:#c65103;
  font-size:.8rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.works-section-title{
  margin:0;
  font-size:clamp(1.5rem,2vw,2rem);
  color:#17324d;
}
.works-section-copy{
  color:#44576b;
  line-height:1.8;
}
.works-section-copy > :first-child{margin-top:0}
.works-section-copy > :last-child{margin-bottom:0}
.works-section-copy ul,
.works-section-copy ol{
  margin:0;
  padding-left:1.25rem;
}
.works-media{
  min-height:300px;
  background:#f7fafc;
  border-left:1px solid #e4ebf2;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.works-section-grid--reverse .works-media{
  border-left:0;
  border-right:1px solid #e4ebf2;
}
.works-media img{
  display:block;
  width:100%;
  height:100%;
  max-height:340px;
  object-fit:contain;
  object-position:center center;
  border-radius:18px;
  background:#fff;
}
.works-media.is-empty{
  background:linear-gradient(180deg,#f8fbff 0%,#eef4fb 100%);
}
.works-media-placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:240px;
  width:100%;
  padding:24px;
  border:1px dashed #bfd1e3;
  border-radius:18px;
  text-align:center;
  color:#66788a;
  background:rgba(255,255,255,.7);
}
.works-media-placeholder strong{
  color:#17324d;
  font-size:1rem;
}

@media (max-width: 980px){
  body[data-page="travaux"] .works-content{
    gap:16px;
  }
  .works-section-grid,
  .works-section-grid--reverse,
  .works-section-grid.is-no-media,
  .works-section-grid--reverse.is-no-media{
    grid-template-columns:1fr;
  }
  .works-section-grid--reverse .works-copy,
  .works-section-grid--reverse .works-media{
    order:initial;
  }
  .works-media,
  .works-section-grid--reverse .works-media{
    border-left:0;
    border-right:0;
    border-top:1px solid #e4ebf2;
    min-height:220px;
  }
  .works-copy{
    padding:22px 20px;
  }
  .works-hero-copy{
    padding:22px 20px;
  }
}

@media (max-width: 640px){
  body[data-page="travaux"] .page-head{
    padding-bottom:6px;
  }
  body[data-page="travaux"] .works-content{
    padding-top:12px;
    padding-bottom:24px;
  }
  .works-copy{
    padding:18px 16px;
  }
  .works-hero-copy{
    padding:18px 16px;
    line-height:1.65;
  }
  .works-media,
  .works-section-grid--reverse .works-media{
    min-height:180px;
    padding:12px;
  }
  .works-media img{
    max-height:260px;
  }
  .works-section-title{
    font-size:1.35rem;
  }
}


/* ===== Contacts page + modal ===== */
.contacts-content{
  display:grid;
  gap:24px;
}
.contacts-intro-card{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
}
.contacts-intro-card p:last-child{margin-bottom:0}
.contacts-intro-actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
}
.contacts-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.contact-card{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.contact-card__header h2{
  margin:4px 0 0;
}
.contact-card__eyebrow{
  margin:0;
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#9a6a0a;
  font-weight:700;
}
.contact-card__list{
  display:grid;
  gap:12px;
  margin:0;
}
.contact-card__list div{
  padding:12px 14px;
  border-radius:14px;
  background:#f8f6f2;
}
.contact-card__list dt{
  margin:0 0 4px;
  font-size:.8rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#6b7280;
}
.contact-card__list dd{
  margin:0;
  font-weight:600;
  color:#161616;
  overflow-wrap:anywhere;
}
.contact-card__details{
  color:#3f3f46;
}
.contact-card__details p:last-child{margin-bottom:0}
.contact-card__actions{
  margin-top:auto;
}
.aim17-contact-modal-open{
  overflow:hidden;
}
.aim17-contact-modal[hidden]{
  display:none !important;
}
.aim17-contact-modal{
  position:fixed;
  inset:0;
  z-index:9999;
}
.aim17-contact-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.62);
}
.aim17-contact-modal__dialog{
  position:relative;
  z-index:1;
  width:min(760px, calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  overflow:auto;
  margin:14px auto;
  background:#fff;
  border-radius:24px;
  box-shadow:0 30px 80px rgba(15,23,42,.35);
  padding:28px;
}
.aim17-contact-modal__close{
  position:absolute;
  top:14px;
  right:14px;
  width:42px;
  height:42px;
  border:0;
  border-radius:999px;
  background:#f3f4f6;
  color:#111827;
  font-size:1.7rem;
  line-height:1;
  cursor:pointer;
}
.aim17-contact-modal__header{
  margin-bottom:20px;
  padding-right:48px;
}
.aim17-contact-modal__eyebrow{
  margin:0 0 6px;
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#9a6a0a;
  font-weight:700;
}
.aim17-contact-modal__header h2{
  margin:0 0 8px;
}
.aim17-contact-modal__target{
  margin:0;
  color:#4b5563;
}
.aim17-contact-form__honeypot{
  position:absolute;
  left:-9999px;
  opacity:0;
  pointer-events:none;
}
.aim17-contact-form__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.aim17-contact-form label{
  display:grid;
  gap:8px;
  font-weight:600;
  color:#111827;
}
.aim17-contact-form input,
.aim17-contact-form textarea{
  width:100%;
  border:1px solid #d1d5db;
  border-radius:14px;
  padding:12px 14px;
  font:inherit;
  background:#fff;
  color:#111827;
  box-sizing:border-box;
}
.aim17-contact-form textarea{
  min-height:160px;
  resize:vertical;
}
.aim17-contact-form__message{
  margin-top:16px;
}
.aim17-contact-form__status{
  min-height:24px;
  margin-top:14px;
  font-weight:600;
}
.aim17-contact-form__status.is-loading{color:#92400e}
.aim17-contact-form__status.is-success{color:#166534}
.aim17-contact-form__status.is-error{color:#b91c1c}
.aim17-contact-form__actions{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  margin-top:18px;
  flex-wrap:wrap;
}
.aim17-contact-form__actions .btn-secondary{
  background:#e5e7eb;
  color:#111827;
}
.aim17-contact-form__actions .btn-secondary:hover{
  background:#d1d5db;
}
@media (max-width: 900px){
  .contacts-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width: 720px){
  .contacts-intro-card{
    flex-direction:column;
  }
  .aim17-contact-modal__dialog{
    width:calc(100vw - 18px);
    max-height:calc(100vh - 18px);
    margin:9px auto;
    padding:20px 16px;
    border-radius:18px;
  }
  .aim17-contact-form__grid{
    grid-template-columns:1fr;
  }
}


/* Contacts page compact layout */
.contacts-page .page-head{
  margin-bottom:16px;
}
.contacts-page .page-title{
  margin-bottom:10px;
}
.contacts-content{
  gap:16px;
}
.contacts-intro-card{
  align-items:center;
  gap:16px;
  padding:18px 20px;
}
.contacts-intro-copy,
.contacts-intro-copy p{
  margin:0;
}
.contacts-intro-copy{
  font-size:1rem;
  line-height:1.45;
}
.contacts-intro-actions .btn{
  white-space:nowrap;
}
.contacts-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.contact-card.card{
  padding:18px;
  gap:12px;
  min-height:0;
}
.contact-card__header{
  display:grid;
  gap:4px;
}
.contact-card__header h2{
  margin:0;
  font-size:1.25rem;
  line-height:1.2;
}
.contact-card__eyebrow{
  font-size:.72rem;
}
.contact-card__list{
  gap:8px;
}
.contact-card__list div{
  padding:10px 12px;
  border-radius:12px;
}
.contact-card__list dt{
  font-size:.72rem;
  margin:0 0 2px;
}
.contact-card__list dd{
  font-size:.98rem;
  line-height:1.35;
}
.contact-card__details{
  font-size:.92rem;
  line-height:1.4;
}
.contact-card__details p{
  margin:0;
}
.contact-card__actions .btn{
  width:100%;
  justify-content:center;
  padding:12px 14px;
}
@media (max-width: 1350px){
  .contacts-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (max-width: 1040px){
  .contacts-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 720px){
  .contacts-intro-card{
    flex-direction:column;
    align-items:stretch;
  }
  .contacts-intro-actions .btn{
    width:100%;
    justify-content:center;
  }
  .contacts-grid{
    grid-template-columns:1fr;
  }
}

/* ===== Plan interactif — validation intégrée ===== */
body[data-page="plan-interactif"]{
  height:auto !important;
  min-height:100vh;
  overflow-y:auto !important;
  overflow-x:hidden !important;
}

body[data-page="plan-interactif"] main.pi-main{
  padding:12px 0 18px !important;
}

body[data-page="plan-interactif"] .pi-site{
  display:grid;
  grid-template-rows:auto 1fr;
  gap:10px;
}

body[data-page="plan-interactif"] .pi-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:10px 12px;
}

body[data-page="plan-interactif"] .pi-title-block{
  min-width:0;
}

body[data-page="plan-interactif"] .pi-page-title{
  margin:0;
  font-size:clamp(18px,1.9vw,30px);
  line-height:1.1;
}

body[data-page="plan-interactif"] .pi-page-subtitle{
  margin:4px 0 0;
  font-size:13px;
  color:var(--muted);
}

body[data-page="plan-interactif"] .pi-picker{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
  max-width:min(640px,44vw);
}

body[data-page="plan-interactif"] .pi-pick{
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid #bdd0eb;
  background:#f7fbff;
  color:var(--text);
  font-size:15px;
  font-weight:800;
  cursor:pointer;
  transition:.12s ease;
}

body[data-page="plan-interactif"] .pi-pick:hover{
  transform:translateY(-1px);
  border-color:var(--primary);
}

body[data-page="plan-interactif"] .pi-pick.is-active{
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
}

body[data-page="plan-interactif"] .pi-content{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,58%) minmax(360px,42%);
  gap:10px;
}

body[data-page="plan-interactif"] .pi-plan-panel,
body[data-page="plan-interactif"] .pi-photos-panel{
  min-width:0;
  min-height:0;
  overflow:hidden;
  padding:10px 12px;
}

body[data-page="plan-interactif"] .pi-plan-panel{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:8px;
}

body[data-page="plan-interactif"] .pi-photos-panel{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:8px;
}

body[data-page="plan-interactif"] .pi-panel-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  min-width:0;
}

body[data-page="plan-interactif"] .pi-panel-head h2{
  margin:0;
  font-size:clamp(18px,2vw,26px);
  line-height:1.05;
}

body[data-page="plan-interactif"] .pi-panel-head p,
body[data-page="plan-interactif"] .pi-gallery-subtitle{
  margin:4px 0 0;
  font-size:13px;
  color:var(--muted);
}

body[data-page="plan-interactif"] .pi-stand-badge{
  white-space:nowrap;
  border-radius:999px;
  background:#edf5ff;
  border:1px solid #c9dcf6;
  padding:7px 11px;
  font-weight:800;
  font-size:13px;
}

body[data-page="plan-interactif"] .pi-plan-stage{
  min-height:0;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

body[data-page="plan-interactif"] .pi-plan-frame{
  position:relative;
  width:100%;
  max-width:100%;
  aspect-ratio:2048 / 1115;
  margin:0 auto;
}

body[data-page="plan-interactif"] .pi-plan-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain !important;
  border-radius:12px;
  border:1px solid #cfd9e7;
  background:#fff;
}

body[data-page="plan-interactif"] .pi-marker{
  position:absolute;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  width:clamp(24px,2.8vw,42px);
  aspect-ratio:1;
  border-radius:999px;
  border:3px solid rgba(255,255,255,.98);
  background:rgba(15,99,216,.18);
  box-shadow:0 0 0 3px rgba(15,99,216,.55);
  color:#fff;
  font-weight:900;
  font-size:clamp(13px,1vw,20px);
  text-shadow:0 1px 2px rgba(0,0,0,.45);
  pointer-events:none;
}

body[data-page="plan-interactif"] .pi-marker.is-multi{
  width:clamp(20px,2.1vw,32px);
  background:rgba(22,48,79,.15);
  box-shadow:0 0 0 2px rgba(22,48,79,.45);
}

body[data-page="plan-interactif"] .pi-legend{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:12px;
  color:var(--muted);
}

body[data-page="plan-interactif"] .pi-gallery-title{
  margin:0;
}

body[data-page="plan-interactif"] .pi-photo-grid{
  min-height:0;
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  grid-template-rows:repeat(2, minmax(0,1fr));
  gap:8px;
}

body[data-page="plan-interactif"] .pi-photo-card{
  min-height:0;
  margin:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fbff;
}

body[data-page="plan-interactif"] .pi-photo-card figcaption{
  padding:7px 10px 6px;
  border-bottom:1px solid #e3ebf5;
  font-weight:800;
  font-size:13px;
}

body[data-page="plan-interactif"] .pi-photo-box{
  min-height:0;
  padding:6px;
  display:flex;
  align-items:center;
  justify-content:center;
}

body[data-page="plan-interactif"] .pi-gallery-img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain !important;
  border-radius:10px;
  background:#fff;
}

body[data-page="plan-interactif"] .pi-gallery-missing{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  border-radius:10px;
  background:#fff;
  color:var(--muted);
  font-weight:700;
  padding:18px;
  text-align:center;
}

@media (max-width: 1360px){
  body[data-page="plan-interactif"] .pi-content{
    grid-template-columns:minmax(0,56%) minmax(320px,44%);
  }
  body[data-page="plan-interactif"] .pi-pick{
    width:34px;
    height:34px;
    font-size:14px;
  }
}

@media (max-width: 1024px){
  body[data-page="plan-interactif"] .pi-toolbar,
  body[data-page="plan-interactif"] .pi-content{
    grid-template-columns:1fr;
  }

  body[data-page="plan-interactif"] .pi-picker{
    justify-content:flex-start;
    max-width:none;
  }

  body[data-page="plan-interactif"] .pi-stand-badge{
    white-space:normal;
  }
}

@media (max-width: 700px){
  body[data-page="plan-interactif"] .pi-panel-head,
  body[data-page="plan-interactif"] .pi-legend{
    flex-direction:column;
    align-items:flex-start;
  }

  body[data-page="plan-interactif"] .pi-photo-grid{
    grid-template-columns:1fr;
    grid-template-rows:none;
  }

  body[data-page="plan-interactif"] .pi-photo-card{
    min-height:220px;
  }
}


/* --- Homepage: bouton accès aux stands sous Photos / Vidéos --- */
.hero-actions-secondary{
  flex-direction:column;
  align-items:flex-start;
}
.hero-actions-secondary .btn{
  width:min(100%, 460px);
  min-width:0;
}

/* --- Page Accès aux stands --- */
body[data-page="acces-stands"] .access-page-head,
body[data-page="acces-stands"] .access-page-content{
  max-width:1240px;
  margin:0 auto;
}
body[data-page="acces-stands"] .access-page-intro{
  max-width:980px;
  line-height:1.72;
  color:#5e6f84;
}
body[data-page="acces-stands"] .access-pill-row,
body[data-page="acces-stands"] .tag-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
body[data-page="acces-stands"] .access-pill-row{
  margin-top:24px;
}
body[data-page="acces-stands"] .access-pill{
  display:inline-flex;
  align-items:center;
  padding:10px 14px;
  border-radius:999px;
  background:linear-gradient(180deg,#16355d 0%,#24558d 100%);
  color:#fff;
  font-size:.95rem;
  font-weight:700;
  box-shadow:0 12px 28px rgba(24,49,86,.16);
}
body[data-page="acces-stands"] .access-page-content{
  display:flex;
  flex-direction:column;
  gap:30px;
}
body[data-page="acces-stands"] .section-title{
  margin:0 0 14px;
  font-size:1.9rem;
  color:#17324d;
}
body[data-page="acces-stands"] .section-intro,
body[data-page="acces-stands"] .access-section-text,
body[data-page="acces-stands"] .access-overview-body,
body[data-page="acces-stands"] .access-direction-body,
body[data-page="acces-stands"] .access-rule-body,
body[data-page="acces-stands"] .access-stand-body,
body[data-page="acces-stands"] .access-practical-body{
  color:#5e6f84;
  line-height:1.72;
}
body[data-page="acces-stands"] .access-overview-grid,
body[data-page="acces-stands"] .access-direction-grid,
body[data-page="acces-stands"] .access-rules-grid,
body[data-page="acces-stands"] .access-stands-grid{
  display:grid;
  gap:22px;
}
body[data-page="acces-stands"] .access-overview-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
body[data-page="acces-stands"] .access-direction-grid,
body[data-page="acces-stands"] .access-rules-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
body[data-page="acces-stands"] .access-stands-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
body[data-page="acces-stands"] .access-overview-card,
body[data-page="acces-stands"] .access-direction-card,
body[data-page="acces-stands"] .access-rule-card,
body[data-page="acces-stands"] .access-stand-card,
body[data-page="acces-stands"] .access-practical-card{
  background:rgba(255,255,255,.95);
  border:1px solid rgba(200,211,225,.95);
  border-radius:28px;
  box-shadow:0 12px 30px rgba(17,24,39,.08);
  padding:28px;
}
body[data-page="acces-stands"] .access-overview-card{
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:16px;
  align-items:start;
}
body[data-page="acces-stands"] .access-overview-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  border-radius:18px;
  background:linear-gradient(135deg,#153e75 0%,#2457a6 100%);
  color:#fff;
  font-weight:900;
  font-size:1.2rem;
}
body[data-page="acces-stands"] .access-overview-card h2,
body[data-page="acces-stands"] .access-rule-card h3,
body[data-page="acces-stands"] .access-direction-card h3,
body[data-page="acces-stands"] .access-stand-card h3,
body[data-page="acces-stands"] .access-practical-card h3{
  margin:0 0 10px;
  color:#153e75;
}
body[data-page="acces-stands"] .access-overview-card h2{
  font-size:1.4rem;
}
body[data-page="acces-stands"] .access-direction-card h3,
body[data-page="acces-stands"] .access-rule-card h3,
body[data-page="acces-stands"] .access-practical-card h3{
  font-size:1.55rem;
}
body[data-page="acces-stands"] .access-stand-card h3{
  font-size:1.1rem;
  margin-bottom:12px;
}
body[data-page="acces-stands"] .access-stand-card{
  min-height:238px;
}
body[data-page="acces-stands"] .access-stand-summary{
  margin:0;
  color:#6b7280;
  font-size:1rem;
}
body[data-page="acces-stands"] .access-direction-card ul,
body[data-page="acces-stands"] .access-rule-card ul,
body[data-page="acces-stands"] .access-practical-card ul{
  margin:0;
}
body[data-page="acces-stands"] .clean,
body[data-page="acces-stands"] .access-bullets{
  margin:0;
  padding-left:18px;
}
body[data-page="acces-stands"] .clean li + li,
body[data-page="acces-stands"] .access-bullets li + li{
  margin-top:6px;
}
body[data-page="acces-stands"] .twin{
  position:relative;
  overflow:hidden;
}
body[data-page="acces-stands"] .twin::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:6px;
  border-radius:20px 0 0 20px;
}
body[data-page="acces-stands"] .twin.access::before{ background:#f59e0b; }
body[data-page="acces-stands"] .twin.safety::before{ background:#2563eb; }
body[data-page="acces-stands"] .list-box{
  margin-top:14px;
  padding:14px 16px;
  border-radius:14px;
  border:1px solid #dbe3ee;
}
body[data-page="acces-stands"] .list-box.access-box{ background:#fffaf0; }
body[data-page="acces-stands"] .list-box.safety-box{ background:#f8fbff; }
body[data-page="acces-stands"] .tag{
  display:inline-flex;
  align-items:center;
  padding:7px 14px;
  border-radius:999px;
  font-size:.84rem;
  font-weight:800;
}
body[data-page="acces-stands"] .t-open{ background:#d8f3df; color:#0b6b42; }
body[data-page="acces-stands"] .t-encadre{ background:#dbeafe; color:#1d4ed8; }
body[data-page="acces-stands"] .t-resa{ background:#fef3c7; color:#a15307; }
body[data-page="acces-stands"] .t-validation{ background:#ede9fe; color:#6d28d9; }
body[data-page="acces-stands"] .t-alert{ background:#fee2e2; color:#a11a1a; }
body[data-page="acces-stands"] .callout{
  background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);
}
body[data-page="acces-stands"] .access-practical-body p{
  margin:0;
}
@media (max-width: 1100px){
  body[data-page="acces-stands"] .access-overview-grid,
  body[data-page="acces-stands"] .access-stands-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 900px){
  body[data-page="acces-stands"] .access-direction-grid,
  body[data-page="acces-stands"] .access-rules-grid,
  body[data-page="acces-stands"] .access-overview-grid,
  body[data-page="acces-stands"] .access-stands-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width: 640px){
  body[data-page="acces-stands"] .page-title{ font-size:2rem; }
  body[data-page="acces-stands"] .access-overview-card{ grid-template-columns:1fr; }
  body[data-page="acces-stands"] .access-overview-card,
  body[data-page="acces-stands"] .access-direction-card,
  body[data-page="acces-stands"] .access-rule-card,
  body[data-page="acces-stands"] .access-stand-card,
  body[data-page="acces-stands"] .access-practical-card{ padding:22px; border-radius:22px; }
  body[data-page="acces-stands"] .section-title,
  body[data-page="acces-stands"] .access-direction-card h3,
  body[data-page="acces-stands"] .access-rule-card h3,
  body[data-page="acces-stands"] .access-practical-card h3{ font-size:1.4rem; }
  body[data-page="acces-stands"] .access-stand-card{ min-height:0; }
}

/* ===== Téléphones : menu mobile plus clair pour améliorer la lisibilité ===== */
@media (max-width: 640px){
  body.general-light-theme .nav{
    background:rgba(255,255,255,.96);
    border:1px solid rgba(28,58,97,.12);
    box-shadow:0 16px 34px rgba(83,111,145,.16);
    backdrop-filter:blur(14px);
  }

  body.general-light-theme .nav > ul > li > a{
    background:rgba(244,248,253,.78);
    border:1px solid rgba(38,72,111,.08);
  }

  body.general-light-theme .nav > ul > li > a:hover{
    background:rgba(232,240,250,.96);
    border-color:rgba(38,72,111,.12);
  }

  body.general-light-theme .dropdown,
  body.general-light-theme .nav li:hover > .dropdown{
    background:transparent;
    box-shadow:none;
    border:0;
  }
}


/* Section 200 Mètres */
body[data-page^="section-200m"] .section-card{
  max-height: calc(100vh - 170px);
}
body[data-page^="section-200m"] .section-body{
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:10px;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}

body[data-page^="section-200m"] .section-body::-webkit-scrollbar{ width: 10px; }
body[data-page^="section-200m"] .section-body::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,.16);
  border-radius: 999px;
}
body[data-page^="section-200m"] .section-body::-webkit-scrollbar-track{
  background: rgba(255,255,255,.04);
  border-radius: 999px;
}
body[data-page^="section-200m"] .section-person{ align-items:flex-start; }
body[data-page^="section-200m"] .section-contact-wrap{
  display:flex;
  flex-direction:column;
  gap:18px;
}
body[data-page^="section-200m"] .section-shortcuts{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
body[data-page^="section-200m"] .section-shortcut-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 18px;
  border-radius:12px;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.16);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  transition:.2s ease;
}
body[data-page^="section-200m"] .section-shortcut-btn:hover{
  background:rgba(255,255,255,0.12);
  transform:translateY(-1px);
}
body[data-page^="section-200m"] .section-shortcut-btn.is-active{
  background: rgba(255,255,255,0.16);
  border-color: rgba(255,255,255,0.26);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
}
body[data-page^="section-200m"] .section-body-readable{ line-height:1.7; }
body[data-page^="section-200m"] .section-body-readable h2,
body[data-page^="section-200m"] .section-body-readable h3{ margin:0 0 14px; }
body[data-page^="section-200m"] .section-body-readable p{ margin:0 0 16px; max-width:1050px; }
body[data-page^="section-200m"] .section-body-readable ul{ margin:0 0 18px 22px; }
body[data-page^="section-200m"] .section-body-readable li{ margin:0 0 8px; }
body[data-page^="section-200m"] .section-page-title{ margin-top:0; }
body[data-page^="section-200m"] .section-head-no-logo{ justify-content:flex-start; }

body[data-page="section-200m-calendrier"] .balltrap-calendar-body{
  display:flex;
  flex-direction:column;
  gap:18px;
}
body[data-page="section-200m-calendrier"] .balltrap-calendar-status{
  color:var(--muted,#8ea0bd);
  font-weight:700;
}
body[data-page="section-200m-calendrier"] .balltrap-calendar-list{
  display:grid;
  gap:20px;
}
body[data-page="section-200m-calendrier"] .balltrap-month-group{
  display:grid;
  gap:12px;
}
body[data-page="section-200m-calendrier"] .balltrap-month-group h3{
  margin:0;
  font-size:1.1rem;
}
body[data-page="section-200m-calendrier"] .balltrap-month-cards{
  display:grid;
  gap:14px;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
}
body[data-page="section-200m-calendrier"] .balltrap-date-card{
  border:1px solid rgba(255,255,255,0.1);
  background:rgba(255,255,255,0.04);
  border-radius:16px;
  padding:16px;
  display:grid;
  gap:10px;
}
body[data-page="section-200m-calendrier"] .balltrap-date-day{
  font-weight:700;
  font-size:1rem;
  text-transform:capitalize;
}
body[data-page="section-200m-calendrier"] .balltrap-date-meta{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
body[data-page="section-200m-calendrier"] .balltrap-date-time{
  color:#fff;
  font-weight:600;
}
body[data-page="section-200m-calendrier"] .balltrap-date-type{
  color:var(--muted,#8ea0bd);
  font-size:.95rem;
}

body[data-page="section-200m-photos"] .section-intro,
body[data-page="section-200m-calendrier"] .section-intro{ margin-bottom: 4px; }
body[data-page="section-200m-photos"] .tld-media-grid{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
  align-items:start;
}
body[data-page="section-200m-photos"] .tld-media-card{
  display:flex;
  flex-direction:column;
}
body[data-page="section-200m-photos"] .tld-media-caption{
  min-height: 1.6em;
  margin: 0 0 10px 0;
  padding: 0 4px;
  font-size: 14px;
  line-height: 1.25;
  font-weight: 700;
  color: rgba(255,255,255,0.92);
  text-align: left;
  overflow-wrap: anywhere;
}
body[data-page="section-200m-photos"] .tld-media-tile{
  position:relative;
  appearance:none;
  border:1px solid rgba(255,255,255,0.12);
  background:rgba(255,255,255,0.04);
  border-radius:18px;
  padding:0;
  overflow:hidden;
  aspect-ratio:1/1;
  cursor:pointer;
}
body[data-page="section-200m-photos"] .tld-media-tile img,
body[data-page="section-200m-photos"] .tld-media-tile video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
body[data-page="section-200m-photos"] .tld-media-tile.is-video::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0.08), rgba(0,0,0,0.42));
}
body[data-page="section-200m-photos"] .tld-media-play{
  position:absolute;
  inset:auto auto 14px 14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:999px;
  background:rgba(0,0,0,0.55);
  color:#fff;
  font-size:18px;
  font-weight:700;
}
body[data-page="section-200m-photos"] .tld-media-tile.is-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(255,255,255,0.34);
  font-weight:700;
}
body[data-page="section-200m-photos"] .tld-media-card.is-empty .tld-media-caption{
  visibility:hidden;
  margin-bottom:0;
  min-height:0;
  padding:0;
}
body[data-page="section-200m-photos"] .tld-media-lightbox[hidden]{
  display:none !important;
}
body[data-page="section-200m-photos"] .tld-media-lightbox{
  position:fixed;
  inset:0;
  z-index:80;
  background:rgba(3,8,16,0.88);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}
body[data-page="section-200m-photos"] .tld-media-lightbox-inner{
  width:min(1180px, 100%);
  max-height:100%;
  display:grid;
  gap:14px;
}
body[data-page="section-200m-photos"] .tld-media-lightbox-label{
  font-size:1rem;
  font-weight:700;
  color:#fff;
}
body[data-page="section-200m-photos"] .tld-media-lightbox-content{
  min-height:160px;
  max-height:calc(100vh - 160px);
  display:flex;
  align-items:center;
  justify-content:center;
}
body[data-page="section-200m-photos"] .tld-media-lightbox-content img,
body[data-page="section-200m-photos"] .tld-media-lightbox-content video{
  max-width:100%;
  max-height:calc(100vh - 190px);
  border-radius:20px;
  display:block;
}
body[data-page="section-200m-photos"] .tld-media-lightbox-close{
  position:absolute;
  top:22px;
  right:22px;
  width:46px;
  height:46px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.16);
  background:rgba(255,255,255,0.08);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
body[data-page="section-200m-photos"] .balltrap-empty-state,
body[data-page="section-200m-calendrier"] .balltrap-empty-state{
  border:1px dashed rgba(255,255,255,0.16);
  border-radius:16px;
  padding:18px;
  color:var(--muted,#8ea0bd);
  background:rgba(255,255,255,0.03);
}

@media (max-width: 900px){
  body[data-page^="section-200m"] .section-person{
    flex-direction:column;
    align-items:flex-start;
  }
  body[data-page="section-200m-photos"] .tld-media-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  body[data-page="section-200m-photos"] .tld-media-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body[data-page="section-200m-photos"] .tld-media-lightbox{
    padding:16px;
  }
}

/* Section TAR */
body[data-page^="section-tar"] .section-card{
  max-height: calc(100vh - 170px);
}
body[data-page^="section-tar"] .section-body{
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:10px;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}
body[data-page^="section-tar"] .section-body::-webkit-scrollbar{ width: 10px; }
body[data-page^="section-tar"] .section-body::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,.16);
  border-radius: 999px;
}
body[data-page^="section-tar"] .section-body::-webkit-scrollbar-track{
  background: rgba(255,255,255,.04);
  border-radius: 999px;
}
body[data-page^="section-tar"] .section-person{ align-items:flex-start; }
body[data-page^="section-tar"] .section-contact-wrap{
  display:flex;
  flex-direction:column;
  gap:18px;
}
body[data-page^="section-tar"] .section-shortcuts{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
body[data-page^="section-tar"] .section-shortcut-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 18px;
  border-radius:12px;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.16);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  transition:.2s ease;
}
body[data-page^="section-tar"] .section-shortcut-btn:hover{
  background:rgba(255,255,255,0.12);
  transform:translateY(-1px);
}
body[data-page^="section-tar"] .section-shortcut-btn.is-active{
  background: rgba(255,255,255,0.16);
  border-color: rgba(255,255,255,0.26);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
}
body[data-page^="section-tar"] .section-body-readable{ line-height:1.7; }
body[data-page^="section-tar"] .section-body-readable h2,
body[data-page^="section-tar"] .section-body-readable h3,
body[data-page^="section-tar"] .section-body-readable h4{ margin:0 0 14px; }
body[data-page^="section-tar"] .section-body-readable p{ margin:0 0 16px; max-width:1050px; }
body[data-page^="section-tar"] .section-body-readable ul{ margin:0 0 18px 22px; }
body[data-page^="section-tar"] .section-body-readable li{ margin:0 0 8px; }
body[data-page^="section-tar"] .section-page-title{ margin-top:0; }
body[data-page^="section-tar"] .section-head-no-logo{ justify-content:flex-start; }
body[data-page^="section-tar"] .tar-layout-stack{
  display:grid;
  gap:22px;
}
body[data-page^="section-tar"] .tar-block,
body[data-page^="section-tar"] .tar-day-card{
  border:1px solid rgba(255,255,255,0.10);
  background:rgba(255,255,255,0.04);
  border-radius:18px;
  padding:20px;
}
body[data-page="section-tar"] .tar-block{
  background:rgba(255,255,255,0.035);
}
body[data-page^="section-tar"] .tar-intro-grid,
body[data-page^="section-tar"] .tar-competition-grid,
body[data-page^="section-tar"] .tar-training-grid{
  display:grid;
  gap:18px;
}
body[data-page="section-tar"] .tar-intro-grid{
  grid-template-columns:minmax(0, 1.35fr) minmax(260px, .9fr);
  align-items:start;
}
body[data-page="section-tar"] .tar-hero-figure,
body[data-page="section-tar"] .tar-illustration-card{
  margin:0;
}
body[data-page="section-tar"] .tar-hero-figure img,
body[data-page="section-tar"] .tar-illustration-card img{
  width:100%;
  display:block;
  border-radius:16px;
  object-fit:cover;
}
body[data-page="section-tar"] .tar-hero-figure figcaption,
body[data-page="section-tar"] .tar-illustration-card figcaption{
  margin-top:10px;
  color:var(--muted,#8ea0bd);
  font-size:.95rem;
}
body[data-page="section-tar"] .tar-info-grid,
body[data-page="section-tar"] .tar-link-grid,
body[data-page="section-tar"] .tar-illustration-grid{
  display:grid;
  gap:16px;
}
body[data-page="section-tar"] .tar-info-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
body[data-page="section-tar"] .tar-info-card{
  border:1px solid rgba(255,255,255,0.10);
  background:rgba(255,255,255,0.03);
  border-radius:16px;
  padding:18px;
}
body[data-page="section-tar"] .tar-info-card h4{
  margin-bottom:10px;
}
body[data-page="section-tar"] .tar-highlight-list{
  display:grid;
  gap:8px;
  padding-left:18px;
}
body[data-page="section-tar"] .tar-illustration-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
body[data-page="section-tar"] .tar-link-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
body[data-page="section-tar"] .tar-link-card{
  display:grid;
  gap:8px;
  text-decoration:none;
  color:#fff;
  border:1px solid rgba(255,255,255,0.12);
  background:rgba(255,255,255,0.03);
  border-radius:16px;
  padding:18px;
  transition:.2s ease;
}
body[data-page="section-tar"] .tar-link-card:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,0.08);
}
body[data-page="section-tar"] .tar-link-card span,
body[data-page="section-tar"] .tar-credit-note{
  color:var(--muted,#8ea0bd);
}
body[data-page="section-tar-competition"] .tar-competition-grid,
body[data-page="section-tar-entrainements"] .tar-training-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
body[data-page="section-tar-competition"] .tar-competition-card,
body[data-page="section-tar-entrainements"] .tar-day-card{
  display:grid;
  gap:10px;
}
body[data-page="section-tar-competition"] .tar-calendar-list,
body[data-page="section-tar-competition"] .tar-results-list{
  display:grid;
  gap:12px;
  list-style:none;
  margin:0;
  padding:0;
}
body[data-page="section-tar-competition"] .tar-simple-entry{
  border:1px solid rgba(255,255,255,0.10);
  background:rgba(255,255,255,0.03);
  border-radius:14px;
  padding:14px 16px;
}
body[data-page="section-tar-competition"] .tar-simple-entry strong{
  display:block;
  margin-bottom:4px;
}
body[data-page="section-tar-competition"] .tar-simple-entry-muted,
body[data-page="section-tar-entrainements"] .tar-day-card p strong + span,
body[data-page="section-tar-entrainements"] .tar-day-card .muted{
  color:var(--muted,#8ea0bd);
}
body[data-page="section-tar-photos"] .section-intro{ margin-bottom:4px; }
body[data-page="section-tar-photos"] .tld-media-grid{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap:16px;
  align-items:start;
}
body[data-page="section-tar-photos"] .tld-media-card{
  display:flex;
  flex-direction:column;
}
body[data-page="section-tar-photos"] .tld-media-caption{
  min-height:1.6em;
  margin:0 0 10px 0;
  padding:0 4px;
  font-size:14px;
  line-height:1.25;
  font-weight:700;
  color:rgba(255,255,255,0.92);
  text-align:left;
  overflow-wrap:anywhere;
}
body[data-page="section-tar-photos"] .tld-media-tile{
  position:relative;
  appearance:none;
  border:1px solid rgba(255,255,255,0.12);
  background:rgba(255,255,255,0.04);
  border-radius:18px;
  padding:0;
  overflow:hidden;
  aspect-ratio:1/1;
  cursor:pointer;
}
body[data-page="section-tar-photos"] .tld-media-tile img,
body[data-page="section-tar-photos"] .tld-media-tile video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
body[data-page="section-tar-photos"] .tld-media-tile.is-video::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0.08), rgba(0,0,0,0.42));
}
body[data-page="section-tar-photos"] .tld-media-play{
  position:absolute;
  inset:auto auto 14px 14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:999px;
  background:rgba(0,0,0,0.55);
  color:#fff;
  font-size:18px;
  font-weight:700;
}
body[data-page="section-tar-photos"] .tld-media-tile.is-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(255,255,255,0.34);
  font-weight:700;
}
body[data-page="section-tar-photos"] .tld-media-card.is-empty .tld-media-caption{
  visibility:hidden;
  margin-bottom:0;
  min-height:0;
  padding:0;
}
body[data-page="section-tar-photos"] .tld-media-lightbox[hidden]{
  display:none !important;
}
body[data-page="section-tar-photos"] .tld-media-lightbox{
  position:fixed;
  inset:0;
  z-index:80;
  background:rgba(3,8,16,0.88);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}
body[data-page="section-tar-photos"] .tld-media-lightbox-inner{
  width:min(1180px, 100%);
  max-height:100%;
  display:grid;
  gap:14px;
}
body[data-page="section-tar-photos"] .tld-media-lightbox-label{
  font-size:1rem;
  font-weight:700;
  color:#fff;
}
body[data-page="section-tar-photos"] .tld-media-lightbox-content{
  min-height:160px;
  max-height:calc(100vh - 160px);
  display:flex;
  align-items:center;
  justify-content:center;
}
body[data-page="section-tar-photos"] .tld-media-lightbox-content img,
body[data-page="section-tar-photos"] .tld-media-lightbox-content video{
  max-width:100%;
  max-height:calc(100vh - 190px);
  border-radius:20px;
  display:block;
}
body[data-page="section-tar-photos"] .tld-media-lightbox-close{
  position:absolute;
  top:22px;
  right:22px;
  width:46px;
  height:46px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.16);
  background:rgba(255,255,255,0.08);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
body[data-page="section-tar-photos"] .balltrap-empty-state,
body[data-page="section-tar-competition"] .balltrap-empty-state{
  border:1px dashed rgba(255,255,255,0.16);
  border-radius:16px;
  padding:18px;
  color:var(--muted,#8ea0bd);
  background:rgba(255,255,255,0.03);
}

@media (max-width: 980px){
  body[data-page="section-tar"] .tar-intro-grid,
  body[data-page="section-tar"] .tar-info-grid,
  body[data-page="section-tar"] .tar-illustration-grid,
  body[data-page="section-tar"] .tar-link-grid,
  body[data-page="section-tar-competition"] .tar-competition-grid,
  body[data-page="section-tar-entrainements"] .tar-training-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 900px){
  body[data-page^="section-tar"] .section-person{
    flex-direction:column;
    align-items:flex-start;
  }
  body[data-page="section-tar-photos"] .tld-media-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  body[data-page="section-tar-photos"] .tld-media-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body[data-page="section-tar-photos"] .tld-media-lightbox{
    padding:16px;
  }
}

@media (max-width: 980px){
  body[data-page^="section-tar"],
  body[data-page^="section-200m"]{
    height:auto;
    min-height:100vh;
    overflow-x:hidden;
    overflow-y:auto;
    display:block;
  }

  body[data-page^="section-tar"] main.section-page,
  body[data-page^="section-tar"] main.section-page > .container,
  body[data-page^="section-200m"] main.section-page,
  body[data-page^="section-200m"] main.section-page > .container{
    display:block;
    min-height:0;
  }

  body[data-page^="section-tar"] .section-card,
  body[data-page^="section-200m"] .section-card{
    max-height:none !important;
  }

  body[data-page^="section-tar"] .section-body,
  body[data-page^="section-200m"] .section-body{
    overflow:visible !important;
    padding-right:0 !important;
    scrollbar-gutter:auto;
  }

  body[data-page^="section-tar"] .section-shortcuts,
  body[data-page^="section-200m"] .section-shortcuts{
    width:100%;
    flex-direction:column;
    align-items:stretch;
  }

  body[data-page^="section-tar"] .section-shortcut-btn,
  body[data-page^="section-200m"] .section-shortcut-btn{
    width:100%;
  }

  body[data-page^="section-tar"] .section-contact-line,
  body[data-page^="section-200m"] .section-contact-line{
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
  }

  body[data-page^="section-tar"] .section-contact-line .label,
  body[data-page^="section-200m"] .section-contact-line .label{
    min-width:0;
  }

  body[data-page^="section-tar"] .section-contact-line .value,
  body[data-page^="section-200m"] .section-contact-line .value{
    overflow-wrap:anywhere;
  }
}


/* === Chasse & Armes anciennes : styles alignés sur TAR === */
body[data-page^="section-chasse"] .section-body,
body[data-page^="section-armes-anciennes"] .section-body{
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:10px;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}
body[data-page^="section-chasse"] .section-body::-webkit-scrollbar,
body[data-page^="section-armes-anciennes"] .section-body::-webkit-scrollbar{ width:10px; }
body[data-page^="section-chasse"] .section-body::-webkit-scrollbar-thumb,
body[data-page^="section-armes-anciennes"] .section-body::-webkit-scrollbar-thumb{ background: rgba(255,255,255,.16); border-radius:999px; }
body[data-page^="section-chasse"] .section-body::-webkit-scrollbar-track,
body[data-page^="section-armes-anciennes"] .section-body::-webkit-scrollbar-track{ background: rgba(255,255,255,.04); border-radius:999px; }
body[data-page^="section-chasse"] .section-person,
body[data-page^="section-armes-anciennes"] .section-person,
body[data-page^="section-tsv"] .section-person{ align-items:flex-start; }
body[data-page^="section-chasse"] .section-contact-wrap,
body[data-page^="section-armes-anciennes"] .section-contact-wrap,
body[data-page^="section-tsv"] .section-contact-wrap{ display:flex; flex-direction:column; gap:18px; }
body[data-page^="section-chasse"] .section-shortcuts,
body[data-page^="section-armes-anciennes"] .section-shortcuts,
body[data-page^="section-tsv"] .section-shortcuts{ display:flex; flex-wrap:wrap; gap:12px; }
body[data-page^="section-chasse"] .section-shortcut-btn,
body[data-page^="section-armes-anciennes"] .section-shortcut-btn,
body[data-page^="section-tsv"] .section-shortcut-btn{
  display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 18px;
  border-radius:12px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.16);
  color:#fff; text-decoration:none; font-weight:700; transition:.2s ease;
}
body[data-page^="section-chasse"] .section-shortcut-btn:hover,
body[data-page^="section-armes-anciennes"] .section-shortcut-btn:hover,
body[data-page^="section-tsv"] .section-shortcut-btn:hover{ background:rgba(255,255,255,0.12); transform:translateY(-1px); }
body[data-page^="section-chasse"] .section-shortcut-btn.is-active,
body[data-page^="section-armes-anciennes"] .section-shortcut-btn.is-active,
body[data-page^="section-tsv"] .section-shortcut-btn.is-active{ background: rgba(255,255,255,0.16); border-color: rgba(255,255,255,0.26); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08); }
body[data-page^="section-chasse"] .section-body-readable,
body[data-page^="section-armes-anciennes"] .section-body-readable,
body[data-page^="section-tsv"] .section-body-readable{ line-height:1.7; }
body[data-page^="section-chasse"] .section-body-readable h2,
body[data-page^="section-chasse"] .section-body-readable h3,
body[data-page^="section-chasse"] .section-body-readable h4,
body[data-page^="section-armes-anciennes"] .section-body-readable h2,
body[data-page^="section-armes-anciennes"] .section-body-readable h3,
body[data-page^="section-armes-anciennes"] .section-body-readable h4,
body[data-page^="section-tsv"] .section-body-readable h2,
body[data-page^="section-tsv"] .section-body-readable h3,
body[data-page^="section-tsv"] .section-body-readable h4{ margin:0 0 14px; }
body[data-page^="section-chasse"] .section-body-readable p,
body[data-page^="section-armes-anciennes"] .section-body-readable p,
body[data-page^="section-tsv"] .section-body-readable p{ margin:0 0 16px; max-width:1050px; }
body[data-page^="section-chasse"] .section-body-readable ul,
body[data-page^="section-armes-anciennes"] .section-body-readable ul,
body[data-page^="section-tsv"] .section-body-readable ul{ margin:0 0 18px 22px; }
body[data-page^="section-chasse"] .section-body-readable li,
body[data-page^="section-armes-anciennes"] .section-body-readable li,
body[data-page^="section-tsv"] .section-body-readable li{ margin:0 0 8px; }
body[data-page^="section-chasse"] .section-page-title,
body[data-page^="section-armes-anciennes"] .section-page-title,
body[data-page^="section-tsv"] .section-page-title{ margin-top:0; }
body[data-page^="section-chasse"] .section-head-no-logo,
body[data-page^="section-armes-anciennes"] .section-head-no-logo,
body[data-page^="section-tsv"] .section-head-no-logo{ justify-content:flex-start; }
body[data-page^="section-chasse"] .tar-layout-stack,
body[data-page^="section-armes-anciennes"] .tar-layout-stack,
body[data-page^="section-tsv"] .tar-layout-stack{ display:grid; gap:22px; }
body[data-page^="section-chasse"] .tar-block,
body[data-page^="section-chasse"] .tar-day-card,
body[data-page^="section-armes-anciennes"] .tar-block,
body[data-page^="section-armes-anciennes"] .tar-day-card,
body[data-page^="section-tsv"] .tar-block,
body[data-page^="section-tsv"] .tar-day-card{
  border:1px solid rgba(255,255,255,0.10); background:rgba(255,255,255,0.04); border-radius:18px; padding:20px;
}
body[data-page="section-chasse"] .tar-block,
body[data-page="section-armes-anciennes"] .tar-block,
body[data-page="section-tsv"] .tar-block{ background:rgba(255,255,255,0.035); }
body[data-page^="section-chasse"] .tar-intro-grid,
body[data-page^="section-chasse"] .tar-competition-grid,
body[data-page^="section-chasse"] .tar-training-grid,
body[data-page^="section-armes-anciennes"] .tar-intro-grid,
body[data-page^="section-armes-anciennes"] .tar-competition-grid,
body[data-page^="section-armes-anciennes"] .tar-training-grid,
body[data-page^="section-tsv"] .tar-intro-grid,
body[data-page^="section-tsv"] .tar-competition-grid,
body[data-page^="section-tsv"] .tar-training-grid{ display:grid; gap:18px; }
body[data-page="section-chasse"] .tar-intro-grid,
body[data-page="section-armes-anciennes"] .tar-intro-grid,
body[data-page="section-tsv"] .tar-intro-grid{ grid-template-columns:minmax(0, 1.35fr) minmax(260px,.9fr); align-items:start; }
body[data-page="section-chasse"] .tar-hero-figure,
body[data-page="section-chasse"] .tar-illustration-card,
body[data-page="section-armes-anciennes"] .tar-hero-figure,
body[data-page="section-armes-anciennes"] .tar-illustration-card,
body[data-page="section-tsv"] .tar-hero-figure,
body[data-page="section-tsv"] .tar-illustration-card{ margin:0; }
body[data-page="section-chasse"] .tar-hero-figure img,
body[data-page="section-chasse"] .tar-illustration-card img,
body[data-page="section-armes-anciennes"] .tar-hero-figure img,
body[data-page="section-armes-anciennes"] .tar-illustration-card img,
body[data-page="section-tsv"] .tar-hero-figure img,
body[data-page="section-tsv"] .tar-illustration-card img{ width:100%; display:block; border-radius:16px; object-fit:cover; }
body[data-page="section-chasse"] .tar-hero-figure figcaption,
body[data-page="section-chasse"] .tar-illustration-card figcaption,
body[data-page="section-armes-anciennes"] .tar-hero-figure figcaption,
body[data-page="section-armes-anciennes"] .tar-illustration-card figcaption,
body[data-page="section-tsv"] .tar-hero-figure figcaption,
body[data-page="section-tsv"] .tar-illustration-card figcaption{ margin-top:10px; color:var(--muted,#8ea0bd); font-size:.95rem; }
body[data-page="section-chasse"] .tar-info-grid,
body[data-page="section-chasse"] .tar-link-grid,
body[data-page="section-chasse"] .tar-illustration-grid,
body[data-page="section-armes-anciennes"] .tar-info-grid,
body[data-page="section-armes-anciennes"] .tar-link-grid,
body[data-page="section-armes-anciennes"] .tar-illustration-grid,
body[data-page="section-tsv"] .tar-info-grid,
body[data-page="section-tsv"] .tar-link-grid,
body[data-page="section-tsv"] .tar-illustration-grid{ display:grid; gap:16px; }
body[data-page="section-chasse"] .tar-info-grid,
body[data-page="section-armes-anciennes"] .tar-info-grid,
body[data-page="section-tsv"] .tar-info-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
body[data-page="section-chasse"] .tar-info-card,
body[data-page="section-armes-anciennes"] .tar-info-card,
body[data-page="section-tsv"] .tar-info-card{ border:1px solid rgba(255,255,255,0.10); background:rgba(255,255,255,0.03); border-radius:16px; padding:18px; }
body[data-page="section-chasse"] .tar-info-card h4,
body[data-page="section-armes-anciennes"] .tar-info-card h4,
body[data-page="section-tsv"] .tar-info-card h4{ margin-bottom:10px; }
body[data-page="section-chasse"] .tar-highlight-list,
body[data-page="section-armes-anciennes"] .tar-highlight-list,
body[data-page="section-tsv"] .tar-highlight-list{ display:grid; gap:8px; padding-left:18px; }
body[data-page="section-chasse"] .tar-illustration-grid,
body[data-page="section-armes-anciennes"] .tar-illustration-grid,
body[data-page="section-tsv"] .tar-illustration-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
body[data-page="section-chasse"] .tar-link-grid,
body[data-page="section-armes-anciennes"] .tar-link-grid,
body[data-page="section-tsv"] .tar-link-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
body[data-page="section-chasse"] .tar-link-card,
body[data-page="section-armes-anciennes"] .tar-link-card,
body[data-page="section-tsv"] .tar-link-card{
  display:grid; gap:8px; text-decoration:none; color:#fff; border:1px solid rgba(255,255,255,0.12);
  background:rgba(255,255,255,0.03); border-radius:16px; padding:18px; transition:.2s ease;
}
body[data-page="section-chasse"] .tar-link-card:hover,
body[data-page="section-armes-anciennes"] .tar-link-card:hover,
body[data-page="section-tsv"] .tar-link-card:hover{ transform:translateY(-1px); background:rgba(255,255,255,0.08); }
body[data-page="section-chasse"] .tar-link-card span,
body[data-page="section-chasse"] .tar-credit-note,
body[data-page="section-armes-anciennes"] .tar-link-card span,
body[data-page="section-armes-anciennes"] .tar-credit-note,
body[data-page="section-tsv"] .tar-link-card span,
body[data-page="section-tsv"] .tar-credit-note{ color:var(--muted,#8ea0bd); }
body[data-page="section-chasse-reglage"] .tar-training-grid,
body[data-page="section-chasse-conseils"] .tar-competition-grid,
body[data-page="section-armes-anciennes-competition"] .tar-competition-grid,
body[data-page="section-armes-anciennes-entrainements"] .tar-training-grid,
body[data-page="section-tsv-entrainements"] .tar-training-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
body[data-page="section-chasse-reglage"] .tar-day-card,
body[data-page="section-chasse-conseils"] .tar-competition-card,
body[data-page="section-armes-anciennes-competition"] .tar-competition-card,
body[data-page="section-armes-anciennes-entrainements"] .tar-day-card,
body[data-page="section-tsv-entrainements"] .tar-day-card{ display:grid; gap:10px; }
body[data-page="section-chasse-conseils"] .tar-simple-entry,
body[data-page="section-armes-anciennes-competition"] .tar-simple-entry,
body[data-page="section-tsv-documents"] .tar-simple-entry{ border:1px solid rgba(255,255,255,0.10); background:rgba(255,255,255,0.03); border-radius:14px; padding:14px 16px; }
body[data-page="section-chasse-conseils"] .tar-simple-entry strong,
body[data-page="section-armes-anciennes-competition"] .tar-simple-entry strong,
body[data-page="section-tsv-documents"] .tar-simple-entry strong{ display:block; margin-bottom:4px; }
body[data-page="section-chasse-photos"] .section-intro,
body[data-page="section-armes-anciennes-photos"] .section-intro,
body[data-page="section-tsv-photos"] .section-intro{ margin-bottom:4px; }
body[data-page="section-chasse-photos"] .tld-media-grid,
body[data-page="section-armes-anciennes-photos"] .tld-media-grid,
body[data-page="section-tsv-photos"] .tld-media-grid{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; align-items:start; }
body[data-page="section-chasse-photos"] .tld-media-card,
body[data-page="section-armes-anciennes-photos"] .tld-media-card,
body[data-page="section-tsv-photos"] .tld-media-card{ display:flex; flex-direction:column; }
body[data-page="section-chasse-photos"] .tld-media-caption,
body[data-page="section-armes-anciennes-photos"] .tld-media-caption,
body[data-page="section-tsv-photos"] .tld-media-caption{ min-height:1.6em; margin:0 0 10px 0; padding:0 4px; font-size:14px; line-height:1.25; font-weight:700; color:rgba(255,255,255,0.92); text-align:left; overflow-wrap:anywhere; }
body[data-page="section-chasse-photos"] .tld-media-tile,
body[data-page="section-armes-anciennes-photos"] .tld-media-tile,
body[data-page="section-tsv-photos"] .tld-media-tile{ position:relative; appearance:none; border:1px solid rgba(255,255,255,0.12); background:rgba(255,255,255,0.04); border-radius:18px; padding:0; overflow:hidden; aspect-ratio:1/1; cursor:pointer; }
body[data-page="section-chasse-photos"] .tld-media-tile img,
body[data-page="section-chasse-photos"] .tld-media-tile video,
body[data-page="section-armes-anciennes-photos"] .tld-media-tile img,
body[data-page="section-armes-anciennes-photos"] .tld-media-tile video,
body[data-page="section-tsv-photos"] .tld-media-tile img,
body[data-page="section-tsv-photos"] .tld-media-tile video{ width:100%; height:100%; display:block; object-fit:cover; }
body[data-page="section-chasse-photos"] .tld-media-tile.is-video::after,
body[data-page="section-armes-anciennes-photos"] .tld-media-tile.is-video::after,
body[data-page="section-tsv-photos"] .tld-media-tile.is-video::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.08), rgba(0,0,0,0.42)); }
body[data-page="section-chasse-photos"] .tld-media-play,
body[data-page="section-armes-anciennes-photos"] .tld-media-play,
body[data-page="section-tsv-photos"] .tld-media-play{ position:absolute; inset:auto auto 14px 14px; z-index:2; display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:999px; background:rgba(0,0,0,0.55); color:#fff; font-size:18px; font-weight:700; }
body[data-page="section-chasse-photos"] .tld-media-tile.is-empty,
body[data-page="section-armes-anciennes-photos"] .tld-media-tile.is-empty,
body[data-page="section-tsv-photos"] .tld-media-tile.is-empty{ display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.34); font-weight:700; }
body[data-page="section-chasse-photos"] .tld-media-card.is-empty .tld-media-caption,
body[data-page="section-armes-anciennes-photos"] .tld-media-card.is-empty .tld-media-caption,
body[data-page="section-tsv-photos"] .tld-media-card.is-empty .tld-media-caption{ visibility:hidden; margin-bottom:0; min-height:0; padding:0; }
body[data-page="section-chasse-photos"] .tld-media-lightbox[hidden],
body[data-page="section-armes-anciennes-photos"] .tld-media-lightbox[hidden],
body[data-page="section-tsv-photos"] .tld-media-lightbox[hidden]{ display:none !important; }
body[data-page="section-chasse-photos"] .tld-media-lightbox,
body[data-page="section-armes-anciennes-photos"] .tld-media-lightbox,
body[data-page="section-tsv-photos"] .tld-media-lightbox{ position:fixed; inset:0; z-index:80; background:rgba(3,8,16,0.88); display:flex; align-items:center; justify-content:center; padding:28px; }
body[data-page="section-chasse-photos"] .tld-media-lightbox-inner,
body[data-page="section-armes-anciennes-photos"] .tld-media-lightbox-inner,
body[data-page="section-tsv-photos"] .tld-media-lightbox-inner{ max-width:min(92vw, 1280px); width:100%; max-height:100%; display:grid; gap:14px; }
body[data-page="section-chasse-photos"] .tld-media-lightbox-label,
body[data-page="section-armes-anciennes-photos"] .tld-media-lightbox-label,
body[data-page="section-tsv-photos"] .tld-media-lightbox-label{ color:#fff; font-weight:700; }
body[data-page="section-chasse-photos"] .tld-media-lightbox-content,
body[data-page="section-armes-anciennes-photos"] .tld-media-lightbox-content,
body[data-page="section-tsv-photos"] .tld-media-lightbox-content{ background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.12); border-radius:20px; padding:10px; min-height:240px; display:flex; align-items:center; justify-content:center; }
body[data-page="section-chasse-photos"] .tld-media-lightbox-content img,
body[data-page="section-chasse-photos"] .tld-media-lightbox-content video,
body[data-page="section-armes-anciennes-photos"] .tld-media-lightbox-content img,
body[data-page="section-armes-anciennes-photos"] .tld-media-lightbox-content video,
body[data-page="section-tsv-photos"] .tld-media-lightbox-content img,
body[data-page="section-tsv-photos"] .tld-media-lightbox-content video{ max-width:100%; max-height:78vh; border-radius:14px; }
body[data-page="section-chasse-photos"] .tld-media-lightbox-close,
body[data-page="section-armes-anciennes-photos"] .tld-media-lightbox-close,
body[data-page="section-tsv-photos"] .tld-media-lightbox-close{ position:absolute; top:18px; right:18px; border:none; background:rgba(255,255,255,0.10); color:#fff; width:44px; height:44px; border-radius:999px; font-size:28px; line-height:1; cursor:pointer; }
body.tld-lightbox-open, body.aa-lightbox-open, body.tsv-lightbox-open{ overflow:hidden; }
@media (max-width: 980px){
  body[data-page="section-chasse"] .tar-info-grid,
  body[data-page="section-chasse"] .tar-link-grid,
  body[data-page="section-chasse"] .tar-illustration-grid,
  body[data-page="section-chasse"] .tar-intro-grid,
  body[data-page="section-chasse-reglage"] .tar-training-grid,
  body[data-page="section-chasse-conseils"] .tar-competition-grid,
  body[data-page="section-chasse-photos"] .tld-media-grid,
  body[data-page="section-armes-anciennes"] .tar-info-grid,
  body[data-page="section-armes-anciennes"] .tar-link-grid,
  body[data-page="section-armes-anciennes"] .tar-illustration-grid,
  body[data-page="section-armes-anciennes"] .tar-intro-grid,
  body[data-page="section-armes-anciennes-competition"] .tar-competition-grid,
  body[data-page="section-armes-anciennes-entrainements"] .tar-training-grid,
  body[data-page="section-armes-anciennes-photos"] .tld-media-grid,
  body[data-page="section-tsv"] .tar-info-grid,
  body[data-page="section-tsv"] .tar-link-grid,
  body[data-page="section-tsv"] .tar-illustration-grid,
  body[data-page="section-tsv"] .tar-intro-grid,
  body[data-page="section-tsv-entrainements"] .tar-training-grid,
  body[data-page="section-tsv-photos"] .tld-media-grid{ grid-template-columns:1fr; }
}
