/* =========================================================
   SCHOOL RIDER CAMP — V1.4
   Identité : crème / brun / vert forêt
   Aucun font externe : compatible RGPD sans consentement
========================================================= */

:root{
  --cream:#f5efe3;
  --cream-2:#fffaf2;
  --paper:#fffdf8;
  --brown:#51270f;
  --brown-2:#7a4724;
  --brown-3:#a87343;
  --forest:#29452f;
  --forest-2:#3f6545;
  --green:#7ea544;
  --ink:#241c17;
  --muted:#766b61;
  --line:rgba(81,39,15,.16);
  --shadow:0 24px 70px rgba(30,22,16,.14);
  --radius:22px;
  --container:min(1180px, calc(100% - 44px));
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--cream-2);
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
body.menu-open,
body.modal-open{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
strong{font-weight:800}
::selection{background:var(--green);color:#fff}

.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
}
.skip-link{
  position:fixed;left:16px;top:-80px;z-index:9999;background:#fff;color:#111;
  padding:12px 16px;border-radius:8px;transition:.2s
}
.skip-link:focus{top:16px}

.container{width:var(--container);margin-inline:auto}
.section{padding:110px 0}
.section-cream{background:var(--cream)}
.section-white{background:var(--paper)}
.section-forest{background:var(--forest);color:#fff}
.eyebrow{
  margin:0 0 13px;
  color:var(--brown-2);
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.19em;
  text-transform:uppercase;
}
.eyebrow.light{color:#d9e9c7}
h1,h2,h3{
  margin:0;
  font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  font-weight:400;
  line-height:.98;
  letter-spacing:.01em;
}
h1{font-size:clamp(2rem,3.2vw,3.25rem)}
h2{font-size:clamp(1.55rem,2.2vw,2.25rem)}
h3{font-size:clamp(1.08rem,1.35vw,1.4rem)}
p{margin:0 0 1.05em}
.section-head{max-width:780px;margin-bottom:54px}
.section-head>p:last-child{max-width:690px;margin-top:18px;color:var(--muted)}
.section-head-light>p:last-child{color:rgba(255,255,255,.74)}

.btn{
  min-height:50px;
  display:inline-flex;align-items:center;justify-content:center;
  gap:10px;
  padding:0 22px;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:900;
  font-size:.88rem;
  letter-spacing:.04em;
  transition:transform .2s,background .2s,color .2s,border-color .2s;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:#6d9137}
.btn-dark{background:var(--brown);color:#fff}
.btn-ghost{border-color:rgba(255,255,255,.46);color:#fff;background:rgba(255,255,255,.06);backdrop-filter:blur(5px)}
.btn-ghost:hover{background:#fff;color:var(--brown)}

/* Header */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:1000;
  padding:10px 0;
  transition:background .3s,box-shadow .3s,padding .3s;
}
.site-header.scrolled{
  background:rgba(255,250,242,.96);
  box-shadow:0 7px 30px rgba(34,24,17,.09);
  backdrop-filter:blur(12px);
  padding:6px 0;
}
.nav-wrap{
  width:min(1320px,calc(100% - 32px));margin:auto;
  display:flex;align-items:center;gap:22px
}
.brand{
  width:118px;height:92px;display:grid;place-items:center;
  flex:0 0 auto;transition:.25s
}
.brand img{width:112px;max-height:88px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.18))}
.site-header.scrolled .brand{width:96px;height:76px}
.site-header.scrolled .brand img{width:90px;max-height:72px;filter:none}
.site-nav{
  margin-left:auto;display:flex;align-items:center;gap:clamp(12px,1.3vw,22px)
}
.site-nav a{
  color:#fff;font-size:.73rem;font-weight:900;letter-spacing:.04em;
  text-transform:uppercase;white-space:nowrap;position:relative
}
.site-nav a:not(.nav-cta)::after{
  content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--green);transition:.2s
}
.site-nav a:not(.nav-cta):hover::after{right:0}
.site-header.scrolled .site-nav a{color:var(--ink)}
.site-nav .nav-cta{
  padding:11px 17px;border-radius:999px;background:var(--green);color:#fff!important
}
.nav-toggle{display:none;margin-left:auto;background:none;border:0;padding:8px}
.nav-toggle span:not(.sr-only){display:block;width:27px;height:2px;background:#fff;margin:6px 0;transition:.25s}
.site-header.scrolled .nav-toggle span:not(.sr-only){background:var(--brown)}

/* Hero */
.hero{
  min-height:100svh;
  position:relative;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:#203528;
}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-shade{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(26,24,17,.88) 0%,rgba(40,29,20,.62) 40%,rgba(25,35,25,.19) 72%,rgba(20,29,21,.28) 100%),
    linear-gradient(180deg,rgba(0,0,0,.58),transparent 30%,rgba(0,0,0,.22));
}
.hero-content{
  position:relative;z-index:2;width:var(--container);margin:auto;
  padding:150px 0 80px;
  display:grid;grid-template-columns:minmax(0,1fr);
  gap:0;align-items:center
}
.hero-copy{color:#fff;max-width:820px}
.hero-copy h1{text-transform:uppercase;max-width:900px}
.hero-lead{font-size:clamp(1.05rem,1.6vw,1.35rem);max-width:700px;margin:26px 0 32px;color:rgba(255,255,255,.86)}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-logo-card{
  background:rgba(255,250,242,.92);
  border:1px solid rgba(255,255,255,.45);
  box-shadow:var(--shadow);
  border-radius:50%;
  aspect-ratio:1;
  display:grid;place-items:center;
  padding:9%;
  max-width:420px;
  justify-self:end;
  transform:rotate(2deg);
  backdrop-filter:blur(8px)
}
.hero-logo-card img{width:100%}
.hero-logo-card p{margin:0;color:var(--brown);font-weight:900;font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;text-align:center}
.scroll-cue{
  position:absolute;z-index:3;left:50%;bottom:28px;transform:translateX(-50%);
  width:30px;height:48px;border:1px solid rgba(255,255,255,.55);border-radius:999px
}
.scroll-cue span{position:absolute;left:50%;top:9px;width:4px;height:9px;border-radius:10px;background:#fff;transform:translateX(-50%);animation:scroll 1.8s infinite}
@keyframes scroll{0%{opacity:0;transform:translate(-50%,0)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,18px)}}

/* Intro */
.intro-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center
}
.intro-copy h2{margin-bottom:30px;color:var(--brown)}
.intro-copy p{font-size:1.03rem}
.intro-media{position:relative;padding:0 0 70px 50px}
.photo-card{margin:0;background:#fff;padding:10px;border-radius:var(--radius);box-shadow:var(--shadow)}
.photo-card img{width:100%;border-radius:calc(var(--radius) - 9px);object-fit:cover}
.photo-card-main img{aspect-ratio:4/3}
.photo-card-main figcaption{font-size:.78rem;font-weight:700;color:var(--muted);padding:10px 7px 2px}
.photo-card-float{
  position:absolute;width:42%;left:0;bottom:0;transform:rotate(-3deg);padding:7px
}
.photo-card-float img{aspect-ratio:4/5}
.vacaf-strip{
  margin-top:90px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:34px 0;
  display:grid;grid-template-columns:190px 1fr;gap:42px;align-items:center
}
.vacaf-logo{background:#fff;border-radius:16px;padding:20px}
.vacaf-logo img{width:100%;max-height:100px}
.vacaf-strip h3{color:var(--brown);margin-bottom:12px}
.vacaf-strip p:last-child{margin:0;max-width:770px}

/* Stories */
.story-grid{display:grid;gap:34px}
.story-card{
  display:grid;grid-template-columns:1.15fr .85fr;
  min-height:440px;background:var(--cream);border-radius:var(--radius);overflow:hidden
}
.story-card.reverse{grid-template-columns:.85fr 1.15fr}
.story-card.reverse .story-image{order:2}
.story-image img{width:100%;height:100%;object-fit:cover}
.story-body{padding:clamp(34px,5vw,72px);display:flex;flex-direction:column;justify-content:center}
.story-number{font-family:Impact,sans-serif;font-size:1rem;color:var(--green);letter-spacing:.1em}
.story-body h3{margin:7px 0 24px;color:var(--brown)}
.story-body p:last-child{margin-bottom:0}

/* Dates */
.dates-layout{display:grid;grid-template-columns:1fr minmax(290px,.48fr);gap:6vw;align-items:start}
.date-list{border-top:1px solid rgba(255,255,255,.25)}
.date-row{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:21px 0;border-bottom:1px solid rgba(255,255,255,.2)
}
.date-row time{font-family:Impact,sans-serif;font-size:clamp(1.2rem,1.7vw,1.65rem);letter-spacing:.02em}
.date-row span{padding:8px 12px;background:var(--green);border-radius:999px;font-weight:900;font-size:.82rem;white-space:nowrap}
.activity-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.activity-pills span{border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:8px 13px;font-size:.77rem;font-weight:800}
.poster{
  position:relative;border:0;background:none;padding:0;border-radius:16px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.32)
}
.poster img{width:100%;transition:transform .35s}
.poster:hover img{transform:scale(1.025)}
.poster span{
  position:absolute;left:14px;right:14px;bottom:14px;background:rgba(34,25,17,.88);color:#fff;
  padding:11px;border-radius:10px;font-weight:900;font-size:.8rem;backdrop-filter:blur(5px)
}

/* Tarifs */
.tariff-layout{display:grid;grid-template-columns:1fr .75fr;gap:7vw;align-items:center}
.tariff-copy h2{color:var(--brown);margin-bottom:25px}
.tariff-copy>p{max-width:650px}
.tariff-note{display:flex;gap:17px;align-items:flex-start;border-left:4px solid var(--green);padding:12px 0 12px 18px;margin:28px 0}
.tariff-note strong{color:var(--forest);font-size:1.2rem}
.tariff-note span{color:var(--muted)}
.tariff-placeholder{
  min-height:480px;border:1px dashed rgba(81,39,15,.35);border-radius:var(--radius);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:40px;background:linear-gradient(145deg,#fffaf2,#efe2cf);box-shadow:var(--shadow)
}
.tariff-placeholder::before{content:"€";font-family:Impact,sans-serif;font-size:7rem;color:rgba(81,39,15,.09);line-height:1}
.tariff-kicker{font-size:.76rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--green)}
.tariff-placeholder strong{font-family:Impact,sans-serif;font-size:1.55rem;color:var(--brown)}
.tariff-placeholder p{margin:5px 0 18px}
.tariff-placeholder small{max-width:350px;color:var(--muted)}

/* Centre */
.centre-section{position:relative;min-height:780px;display:grid;align-items:center;overflow:hidden}
.centre-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.centre-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,42,30,.94),rgba(25,42,30,.73) 58%,rgba(25,42,30,.35))}
.centre-inner{position:relative;z-index:2;color:#fff;padding:110px 0}
.centre-copy{max-width:700px}
.centre-copy h2{font-size:clamp(1.9rem,2.8vw,2.85rem);text-transform:uppercase}
.centre-copy p{font-size:1.08rem;max-width:650px;margin-top:22px}
.centre-stats{
  margin-top:65px;display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,.3);border-bottom:1px solid rgba(255,255,255,.3)
}
.centre-stats div{padding:28px 24px;border-right:1px solid rgba(255,255,255,.24)}
.centre-stats div:last-child{border-right:0}
.centre-stats strong{display:block;font-family:Impact,sans-serif;font-size:clamp(2.3rem,4vw,4rem);color:#d9e9c7;line-height:1}
.centre-stats span{display:block;margin-top:8px;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.centre-signature{font-family:Georgia,serif;font-style:italic;font-size:1.6rem;margin:32px 0 0;text-align:right}

/* Project */
.project-intro{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:start;margin-bottom:52px}
.project-intro h2{color:var(--brown)}
.project-intro>div:last-child{padding-top:26px}
.project-gallery{display:grid;grid-template-columns:1.45fr .55fr;grid-template-rows:1fr 1fr;gap:14px}
.project-gallery button{border:0;padding:0;background:none;overflow:hidden;border-radius:16px}
.project-gallery img{width:100%;height:100%;object-fit:cover;transition:.35s}
.project-gallery button:hover img{transform:scale(1.025)}
.project-main{grid-row:1 / 3;min-height:530px}
.project-small{min-height:258px}

/* Partners */
.partners-section{background:#efe5d4}
.partners-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.partner-card{
  min-height:240px;background:#fff;border-radius:18px;padding:28px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  border:1px solid rgba(81,39,15,.08)
}
.partner-card img{max-width:180px;max-height:115px;object-fit:contain}
.partner-card span{font-size:.75rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* Contact */
.contact-section{background:var(--brown);color:#fff}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:start}
.contact-copy h2{font-size:clamp(1.8rem,2.5vw,2.55rem);margin-bottom:20px}
.contact-copy>p{color:rgba(255,255,255,.78)}
.contact-lines{display:grid;gap:13px;margin:32px 0}
.contact-lines a{display:flex;align-items:center;gap:14px}
.contact-icon{width:42px;height:42px;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:grid;place-items:center;font-weight:900}
.contact-lines small{display:block;color:#d4b99e;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}
.contact-lines a>span:last-child{font-weight:900}
.docs{margin-top:38px;padding-top:28px;border-top:1px solid rgba(255,255,255,.18)}
.docs>p{text-transform:uppercase;font-size:.7rem;font-weight:900;letter-spacing:.15em;color:#d4b99e}
.docs a{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.14);font-weight:800}
.contact-form{background:var(--cream-2);color:var(--ink);border-radius:var(--radius);padding:clamp(26px,4vw,48px)}
.form-head{margin-bottom:25px}
.form-head strong{display:block;font-family:Impact,sans-serif;font-size:1.25rem;color:var(--brown);font-weight:400}
.form-head span{color:var(--muted);font-size:.9rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-form label:not(.check):not(.hp){display:block;margin-bottom:14px}
.contact-form label>span:first-child{display:block;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px}
.contact-form input,.contact-form textarea,.contact-form select{
  width:100%;border:1px solid rgba(81,39,15,.17);background:#fff;border-radius:11px;
  padding:13px 14px;outline:none;color:var(--ink);transition:.2s
}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(126,165,68,.12)}
.contact-form textarea{resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.78rem;color:var(--muted);margin:6px 0 20px}
.check input{width:16px;height:16px;margin-top:3px}
.hp{position:absolute!important;left:-99999px!important}
.btn-submit{border:0;width:100%}
.form-status{min-height:24px;margin:12px 0 0;font-size:.82rem;font-weight:800}
.form-status.success{color:#477832}
.form-status.error{color:#a13025}

/* Footer */
.site-footer{background:#1a1511;color:#fff;padding:42px 0}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;align-items:center}
.footer-brand{display:flex;align-items:center;gap:18px}
.footer-brand img{width:108px;padding:0}
.footer-brand p{margin:0;color:rgba(255,255,255,.65);font-size:.82rem}
.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px;font-size:.82rem;font-weight:800}
.footer-legal{text-align:right;font-size:.78rem;color:rgba(255,255,255,.55)}
.footer-legal button{background:none;border:0;padding:2px 0 2px 12px;color:inherit}
.footer-legal p{margin:8px 0 0}

/* Top */
.back-top{
  position:fixed;right:20px;bottom:20px;z-index:800;
  width:48px;height:48px;border:0;border-radius:50%;background:var(--green);color:#fff;
  font-size:1.35rem;box-shadow:0 12px 30px rgba(0,0,0,.2);
  opacity:0;pointer-events:none;transform:translateY(10px);transition:.25s
}
.back-top.show{opacity:1;pointer-events:auto;transform:none}

/* Lightbox & modal */
.lightbox,.modal{
  position:fixed;inset:0;z-index:2000;background:rgba(12,10,8,.86);
  display:flex;align-items:center;justify-content:center;padding:30px;
  opacity:0;visibility:hidden;transition:.2s
}
.lightbox.open,.modal.open{opacity:1;visibility:visible}
.lightbox img{max-height:88vh;max-width:min(92vw,1100px);border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lightbox-close,.modal-close{
  position:absolute;right:22px;top:18px;border:0;background:#fff;color:#111;border-radius:50%;
  width:43px;height:43px;font-size:1.7rem;line-height:1
}
.modal-box{position:relative;background:var(--cream-2);width:min(760px,100%);max-height:85vh;overflow:auto;border-radius:20px;padding:52px}
.modal-box .modal-close{position:sticky;float:right;top:0;margin-top:-36px;margin-right:-36px;background:var(--brown);color:#fff}
.modal-content h2{color:var(--brown);margin-bottom:24px}

/* Reveal */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}

/* Responsive */
@media (max-width:1120px){
  .site-nav{gap:10px}
  .site-nav a{font-size:.66rem}
  .centre-stats{grid-template-columns:repeat(2,1fr)}
  .centre-stats div:nth-child(2){border-right:0}
  .centre-stats div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.24)}
}
@media (max-width:960px){
  :root{--container:min(100% - 34px,1180px)}
  .section{padding:82px 0}
  .nav-toggle{display:block;position:relative;z-index:1002}
  .site-nav{
    position:fixed;inset:0 0 0 auto;width:min(86vw,390px);
    background:var(--cream-2);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
    padding:90px 40px;gap:18px;transform:translateX(105%);transition:.3s;box-shadow:-20px 0 60px rgba(0,0,0,.2)
  }
  .site-nav.open{transform:none}
  .site-nav a,.site-header.scrolled .site-nav a{color:var(--brown);font-size:1rem}
  .site-nav .nav-cta{margin-top:10px}
  .nav-toggle.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .nav-toggle.active span:nth-child(2){opacity:0}
  .nav-toggle.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  .site-header:not(.scrolled) .nav-toggle.active span:not(.sr-only){background:var(--brown)}

  .hero-content{grid-template-columns:1fr;padding-top:130px}
  .hero-logo-card{display:none}
  .hero-copy{max-width:760px}
  .intro-grid,.tariff-layout,.project-intro,.contact-grid{grid-template-columns:1fr}
  .intro-media{max-width:680px;margin:auto}
  .vacaf-strip{grid-template-columns:150px 1fr}
  .story-card,.story-card.reverse{grid-template-columns:1fr}
  .story-card.reverse .story-image{order:0}
  .story-image img{aspect-ratio:16/9}
  .dates-layout{grid-template-columns:1fr}
  .poster{max-width:500px;margin:auto}
  .project-intro>div:last-child{padding-top:0}
  .project-gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .project-main{grid-column:1/3;grid-row:auto;min-height:400px}
  .project-small{min-height:230px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/3}
}
@media (max-width:650px){
  :root{--container:calc(100% - 28px)}
  .section{padding:68px 0}
  h1{font-size:clamp(1.95rem,8.5vw,2.75rem)}
  h2{font-size:clamp(1.55rem,6.5vw,2.1rem)}
  .hero{min-height:760px}
  .hero-content{padding-top:125px}
  .hero-lead{font-size:1rem}
  .hero-actions{display:grid}
  .hero-actions .btn{width:100%}
  .scroll-cue{display:none}
  .intro-media{padding-left:24px;padding-bottom:50px}
  .photo-card-float{width:44%}
  .vacaf-strip{grid-template-columns:1fr;gap:22px;margin-top:65px}
  .vacaf-logo{max-width:170px}
  .story-body{padding:30px 24px}
  .date-row{align-items:flex-start;flex-direction:column;gap:9px}
  .date-row time{font-size:1.55rem}
  .centre-section{min-height:auto}
  .centre-inner{padding:82px 0}
  .centre-stats{grid-template-columns:1fr 1fr;margin-top:44px}
  .centre-stats div{padding:20px 10px}
  .centre-stats span{font-size:.68rem}
  .centre-signature{text-align:left;font-size:1.25rem}
  .project-gallery{display:grid;grid-template-columns:1fr}
  .project-main{grid-column:auto;min-height:260px}
  .project-small{min-height:220px}
  .partners-grid{grid-template-columns:1fr}
  .partner-card{min-height:190px}
  .form-row{grid-template-columns:1fr;gap:0}
  .contact-form{padding:25px 20px}
  .footer-grid{grid-template-columns:1fr;text-align:left}
  .footer-brand{grid-column:auto}
  .footer-links{grid-template-columns:1fr}
  .footer-legal{text-align:left}
  .footer-legal button{padding-left:0;padding-right:12px}
  .modal-box{padding:35px 22px}
  .modal-box .modal-close{margin-right:-8px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .reveal{opacity:1;transform:none}
}

.hero-copy{max-width:900px}


/* =========================================================
   V1.3 — RGPD + Leaflet
========================================================= */

.legal-content h3{
  margin:30px 0 10px;
  color:var(--brown);
  font-family:Arial,Helvetica,sans-serif;
  font-size:1rem;
  font-weight:900;
  line-height:1.3;
}
.legal-content p,.legal-content li{font-size:.92rem;color:#4c433b}
.legal-content ul{padding-left:20px}
.legal-content a{text-decoration:underline}

.map-block{
  margin-top:72px;
  display:grid;
  grid-template-columns:.38fr .62fr;
  gap:34px;
  align-items:stretch;
}
.map-copy{
  padding:34px 0;
  color:#fff;
}
.map-copy h3{
  color:#fff;
  font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  font-size:1.8rem;
  margin-bottom:15px;
}
.map-copy p{color:rgba(255,255,255,.76)}
.map-note{font-size:.78rem;max-width:340px}
.map-route{
  display:inline-flex;
  margin-top:8px;
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:4px;
}
.map-shell{
  position:relative;
  min-height:380px;
  border-radius:var(--radius);
  overflow:hidden;
  background:#e8dfd2;
  box-shadow:0 24px 65px rgba(0,0,0,.18);
}
.leaflet-map{position:absolute;inset:0;z-index:1}
.map-consent{
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:12px;
  padding:35px;
  background:
    linear-gradient(rgba(245,239,227,.93),rgba(245,239,227,.93)),
    repeating-linear-gradient(45deg,#e7dece 0,#e7dece 9px,#efe7da 9px,#efe7da 18px);
  color:var(--ink);
}
.map-consent.hidden{display:none}
.map-consent strong{
  font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  font-size:1.8rem;
  color:var(--brown);
}
.map-consent span{max-width:510px;color:var(--muted);font-size:.88rem}

/* Leaflet popup cohérente avec la charte */
.schoolcamp-popup strong{color:#51270f;font-size:1rem}
.schoolcamp-popup span{font-size:.8rem;color:#6f645b}

.cookie-banner{
  position:fixed;
  inset:auto 16px 16px 16px;
  z-index:3000;
  opacity:0;
  visibility:hidden;
  transform:translateY(18px);
  transition:.25s;
}
.cookie-banner.show{opacity:1;visibility:visible;transform:none}
.cookie-banner-inner{
  width:min(1180px,100%);
  margin:auto;
  display:grid;
  grid-template-columns:1fr auto;
  gap:28px;
  align-items:center;
  padding:20px 22px;
  background:#fffaf2;
  color:var(--ink);
  border:1px solid rgba(81,39,15,.16);
  border-radius:18px;
  box-shadow:0 20px 70px rgba(20,15,11,.23);
}
.cookie-banner strong{display:block;color:var(--brown);font-size:1rem;margin-bottom:4px}
.cookie-banner p{margin:0;color:var(--muted);font-size:.8rem;max-width:690px}
.cookie-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.btn-cookie-secondary{
  background:#fff;
  border-color:rgba(81,39,15,.2);
  color:var(--brown);
}

.cookie-modal{
  position:fixed;
  inset:0;
  z-index:3100;
  background:rgba(15,12,9,.78);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  transition:.2s;
}
.cookie-modal.open{opacity:1;visibility:visible}
.cookie-modal-box{
  position:relative;
  width:min(680px,100%);
  max-height:86vh;
  overflow:auto;
  padding:40px;
  border-radius:20px;
  background:var(--cream-2);
  box-shadow:0 30px 90px rgba(0,0,0,.35);
}
.cookie-modal-box h2{font-size:2rem;color:var(--brown);margin-bottom:25px}
.cookie-modal-close{
  position:absolute;
  right:18px;
  top:16px;
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:var(--brown);
  color:#fff;
  font-size:1.5rem;
}
.cookie-choice{
  display:grid;
  grid-template-columns:1fr auto;
  gap:25px;
  align-items:center;
  padding:20px 0;
  border-top:1px solid var(--line);
}
.cookie-choice strong{display:block;color:var(--brown);margin-bottom:5px}
.cookie-choice p{font-size:.8rem;color:var(--muted);margin:0}
.always-on{
  font-size:.7rem;
  font-weight:900;
  color:var(--forest);
  background:#e4ecd7;
  border-radius:999px;
  padding:7px 10px;
}
.cookie-modal-actions{margin-top:20px;text-align:right}

.switch{position:relative;width:52px;height:30px;display:inline-block}
.switch input{opacity:0;width:0;height:0}
.slider{
  position:absolute;inset:0;border-radius:999px;background:#c9c1b7;transition:.2s
}
.slider::before{
  content:"";
  position:absolute;
  width:22px;height:22px;
  left:4px;top:4px;
  border-radius:50%;
  background:#fff;
  transition:.2s;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}
.switch input:checked + .slider{background:var(--green)}
.switch input:checked + .slider::before{transform:translateX(22px)}

.privacy-fab{
  position:fixed;
  left:16px;
  bottom:16px;
  z-index:890;
  border:1px solid rgba(255,255,255,.3);
  background:rgba(35,27,21,.92);
  color:#fff;
  border-radius:999px;
  padding:9px 13px;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.05em;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}

@media (max-width:900px){
  .map-block{grid-template-columns:1fr}
  .map-copy{padding-bottom:0}
  .cookie-banner-inner{grid-template-columns:1fr}
  .cookie-actions{justify-content:flex-start}
}
@media (max-width:600px){
  .map-shell{min-height:320px}
  .cookie-banner{inset:auto 8px 8px 8px}
  .cookie-banner-inner{padding:16px}
  .cookie-actions{display:grid;grid-template-columns:1fr}
  .cookie-actions .btn{width:100%}
  .cookie-modal-box{padding:32px 20px}
  .cookie-choice{gap:12px}
  .privacy-fab{left:10px;bottom:10px}
}


/* =========================================================
   V1.4 — MODALES LEGALES + CARTE
========================================================= */

/* Modale plus propre et mieux structurée */
.modal{
  padding:28px;
  background:rgba(20,14,10,.74);
  backdrop-filter:blur(8px);
}
.modal-box{
  position:relative;
  width:min(900px,100%);
  max-height:88vh;
  overflow:auto;
  padding:58px 56px 46px;
  border-radius:24px;
  background:#fffaf2;
  box-shadow:0 34px 100px rgba(0,0,0,.38);
  border:1px solid rgba(81,39,15,.12);
}
.modal-box .modal-close{
  position:absolute !important;
  float:none !important;
  top:16px !important;
  right:16px !important;
  margin:0 !important;
  z-index:5;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:var(--brown);
  color:#fff;
  font-size:1.45rem;
  line-height:1;
  box-shadow:0 6px 18px rgba(81,39,15,.24);
}
.modal-box .modal-close:hover{
  background:#351506;
  transform:scale(1.04);
}
.modal-content{
  padding-right:0;
}
.legal-content{
  max-width:760px;
  margin:0 auto;
}
.legal-content > .eyebrow{
  margin-bottom:8px;
}
.legal-content > h2{
  max-width:620px;
  margin:0 70px 30px 0;
  color:var(--brown);
  font-size:clamp(1.9rem,3vw,2.7rem);
  line-height:1;
}
.legal-content h3{
  margin:30px 0 10px;
  padding-top:20px;
  border-top:1px solid rgba(81,39,15,.12);
  color:var(--brown);
  font-family:Arial,Helvetica,sans-serif;
  font-size:.98rem;
  font-weight:900;
  line-height:1.35;
}
.legal-content p,
.legal-content li{
  font-size:.91rem;
  line-height:1.7;
  color:#51483f;
}
.legal-content ul{
  margin:8px 0 22px;
  padding-left:20px;
}
.legal-content li + li{
  margin-top:4px;
}
.legal-content a{
  color:var(--brown-2);
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:3px;
}

/* Scrollbar discrète dans la modale */
.modal-box{
  scrollbar-width:thin;
  scrollbar-color:rgba(81,39,15,.35) transparent;
}
.modal-box::-webkit-scrollbar{width:8px}
.modal-box::-webkit-scrollbar-track{background:transparent}
.modal-box::-webkit-scrollbar-thumb{
  background:rgba(81,39,15,.28);
  border-radius:999px;
}

/* Carte */
.map-shell{
  background:#e8dfd2;
}
.leaflet-map{
  background:#e8dfd2;
}

/* Mobile */
@media (max-width:650px){
  .modal{
    padding:10px;
  }
  .modal-box{
    width:100%;
    max-height:92vh;
    padding:52px 22px 30px;
    border-radius:18px;
  }
  .modal-box .modal-close{
    top:10px !important;
    right:10px !important;
    width:38px;
    height:38px;
  }
  .legal-content > h2{
    margin-right:46px;
    font-size:1.85rem;
  }
}
