/* ==== Base typographique & couleurs (charte TAT) ==== */
:root{
  --green:#145223;
  --green-600:#0f3e1a;
  --yellow:#ffc107;
  --bg:#ffffff;
  --muted:#f6f7f8;
  --text:#2b2b2b;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Poppins', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color:var(--text); background:var(--bg); line-height:1.6;
}
.skip-link{position:absolute; left:-9999px}
.skip-link:focus{position:static; padding:.5rem 1rem; background:var(--yellow); color:#000}
.container{max-width:1120px; margin-inline:auto; padding:0 1rem}
.section{padding:3.5rem 0}
.section.alt{background:var(--muted)}
.section-header{text-align:center; margin-bottom:1.25rem}
.section-header h2{color:var(--green); margin:0 0 .5rem}
.site-header{position:sticky; top:0; z-index:10; background:var(--green); color:#fff}
.header-grid{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.5rem 0}
.brand img{display:block}
.site-nav .nav-toggle{display:none; background:transparent; border:2px solid #fff; color:#fff; padding:.4rem .6rem; border-radius:.5rem}
.menu{display:flex; gap:1rem; list-style:none; margin:0; padding:0}
.menu a{color:#fff; text-decoration:none; font-weight:600}
.menu a:hover, .menu a[aria-current="page"]{color:var(--yellow)}
.hero{position:relative; min-height:520px; display:grid; align-items:stretch}
.hero-media{position:relative; isolation:isolate}
.carousel{position:relative; height:520px; overflow:hidden}
.carousel-viewport{position:relative; width:100%; height:100%}
.slide{position:absolute; inset:0; opacity:0; transition:opacity .8s ease-in-out}
.slide.is-active{opacity:1}
.slide img{width:100%; height:100%; object-fit:cover}
.slide video {width: 100%; height: 100%; object-fit: cover}
.carousel-controls{position:absolute; inset:auto 0 1rem 0; display:flex; justify-content:space-between; padding:0 1rem; pointer-events:none}
.carousel-controls button{pointer-events:auto; background:rgba(0,0,0,.5); border:none; color:#fff; padding:.5rem .6rem; border-radius:.5rem}
.carousel-dots{position:absolute; left:50%; transform:translateX(-50%); bottom:.75rem; display:flex; gap:.5rem}
.carousel-dots button{width:.75rem; height:.75rem; border-radius:50%; border:2px solid #fff; background:transparent}
.carousel-dots button[aria-selected="true"]{background:#fff}
.hero-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.25)); display:flex; align-items:center}
.hero-title{color:#fff; font-size:clamp(1.6rem, 2.5vw + 1rem, 2.6rem); margin:0 0 .5rem}
.hero-subtitle{color:#fff; max-width:60ch}
.hero-ctas{margin-top:1rem; display:flex; gap:.75rem}
.btn{display:inline-block; border-radius:.6rem; padding:.7rem 1.1rem; text-decoration:none; border:1.5px solid transparent; font-weight:600}
.btn.primary{background:var(--yellow); color:#000}
.btn:not(.primary){color:#fff; border-color:#fff}
.grid-2{display:grid; grid-template-columns:1.5fr 1fr; gap:2rem}
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem}
.card{background:#fff; border-radius:.8rem; padding:1rem; box-shadow:0 2px 10px rgba(0,0,0,.06)}
.key-points{padding-left:1.2rem}
.partners{display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; align-items:center; justify-items:center}
.partner img{display:block; filter:grayscale(20%)}
.news{display:grid; grid-template-columns:repeat(2,1fr); gap:1rem}
.news-item{background:#fff; border-left:4px solid var(--green); padding:1rem; border-radius:.5rem}
.contact-form{background:#fff; padding:1rem; border-radius:.8rem; box-shadow:0 2px 10px rgba(0,0,0,.06)}
.field{display:grid; gap:.35rem; margin-bottom:.8rem}
input, textarea{font:inherit; padding:.7rem .8rem; border-radius:.5rem; border:1px solid #d6d6d6}
input:focus, textarea:focus{outline:2px solid var(--green); border-color:transparent}
.form-status{min-height:1.2rem; margin-top:.5rem}
.map-wrap iframe{width:100%; height:340px; border:0; border-radius:.8rem; box-shadow:0 2px 10px rgba(0,0,0,.06)}
.site-footer{background:var(--green); color:#fff; padding:1.2rem 0; margin-top:2rem}
.footer-grid{display:flex; align-items:center; justify-content:space-between}
.footer-nav{list-style:none; display:flex; gap:1rem; margin:0; padding:0}
.footer-nav a{color:#fff; text-decoration:none}
@media (max-width: 960px){
  .grid-2{grid-template-columns:1fr}
  .cards{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 600px){
  .site-nav .nav-toggle{display:inline-block}
  .menu{display:none; flex-direction:column; gap:.75rem; background:var(--green); padding:1rem; position:absolute; right:1rem; top:60px; border-radius:.8rem}
  .menu.open{display:flex}
  .cards{grid-template-columns:1fr}
  .news{grid-template-columns:1fr}
}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
