.school-hero .hero-grid{
  grid-template-columns:minmax(0,.95fr) minmax(430px,1.05fr);
  gap:clamp(36px,5vw,72px);
}

.school-page .school-hero .school-hero-copy h1{
  max-width:760px;
  font-size:clamp(44px,4.8vw,68px);
  line-height:.96;
  text-transform:none;
  letter-spacing:0;
}

.school-hero-copy .lead{
  max-width:760px;
  font-size:clamp(17px,1.45vw,21px);
  line-height:1.45;
}

.school-hero-copy .hero-actions{
  gap:14px;
}

.school-hero-card{
  min-height:0;
  aspect-ratio:804 / 623;
  border-radius:22px;
  background:#b8defa;
  transform:rotate(.7deg);
}

.school-hero-card img{
  width:100%;
  height:100%;
  min-height:0;
  object-fit:cover;
  object-position:center;
}

.school-hero-badge{
  left:16px;
  right:16px;
  bottom:16px;
  display:flex;
  flex-wrap:wrap;
  gap:7px 12px;
  padding:13px 16px;
  border-radius:14px;
  background:rgba(255,255,255,.93);
  box-shadow:0 7px 0 rgba(21,43,75,.1);
  font-size:13px;
  line-height:1.15;
  backdrop-filter:blur(10px);
}

.school-hero-badge span{
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
}

.school-hero-badge span:not(:first-child)::before{
  content:"\2726";
  margin-right:11px;
  color:#ff4d12;
  font-size:11px;
}

@media(max-width:980px){
  .school-hero .hero-grid{
    grid-template-columns:1fr;
  }

  .school-page .school-hero .school-hero-copy h1{
    max-width:850px;
    font-size:clamp(42px,8vw,64px);
  }

  .school-hero-card{
    width:min(720px,100%);
    min-height:0;
    margin:0 auto;
  }

  .school-hero-card img{
    min-height:0;
  }
}

@media(max-width:620px){
  .school-page .school-hero .school-hero-copy h1{
    font-size:clamp(36px,10vw,54px);
    line-height:.98;
  }

  .school-hero-copy .lead{
    font-size:16px;
  }

  .school-hero-card{
    aspect-ratio:804 / 623;
    transform:rotate(.35deg);
  }

  .school-hero-card img{
    object-position:center;
  }

  .school-hero-badge{
    gap:6px 9px;
    padding:12px;
    font-size:12px;
  }

  .school-hero-badge span:not(:first-child)::before{
    margin-right:8px;
  }
}

/* ===== Modules page sortie scolaire (v3) ===== */

/* Accessibilite : focus clavier visible */
.school-page a:focus-visible,
.school-page button:focus-visible,
.school-page summary:focus-visible{
  outline:3px solid #ff4d12;
  outline-offset:3px;
  border-radius:8px;
}

/* Deroule en 4 etapes */
.process-grid.four{
  grid-template-columns:repeat(4,1fr);
}

/* Parcours / carte */
.route{
  background:var(--soft,#fff1cb);
}

.route-grid{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr);
  gap:clamp(28px,4vw,54px);
  align-items:center;
  margin-top:32px;
}

.route-copy p{
  margin:0;
  max-width:560px;
  font-size:clamp(16px,1.4vw,19px);
  line-height:1.5;
  font-weight:700;
}

.route-chips{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}

.route-chips span{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:0 17px;
  border-radius:999px;
  background:#fff;
  border:2px solid rgba(21,43,75,.1);
  box-shadow:0 5px 0 rgba(21,43,75,.06);
  font-size:14px;
  font-weight:900;
  text-transform:uppercase;
}

.route-note{
  margin-top:18px;
  font-size:14px;
  color:rgba(21,43,75,.72);
}

.route-map{
  border-radius:26px;
  overflow:hidden;
  background:#fff8e8;
  border:2px solid rgba(21,43,75,.1);
  box-shadow:0 18px 38px rgba(21,43,75,.14);
  transform:rotate(.6deg);
}

.route-map svg{
  display:block;
  width:100%;
  height:auto;
}

/* FAQ */
.faq-list{
  max-width:880px;
  margin:36px auto 0;
  display:grid;
  gap:14px;
}

.faq-item{
  border-radius:18px;
  background:#fff;
  border:2px solid rgba(21,43,75,.1);
  box-shadow:0 7px 0 rgba(21,43,75,.06);
  overflow:hidden;
}

.faq-item summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:19px 22px;
}

.faq-item summary::-webkit-details-marker{
  display:none;
}

.faq-item summary h3{
  margin:0;
  font-size:clamp(17px,1.55vw,21px);
  line-height:1.22;
  text-transform:none;
  letter-spacing:0;
  font-weight:900;
}

.faq-item summary::after{
  content:"+";
  flex:0 0 auto;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--soft,#fff1cb);
  color:#ff4d12;
  font-size:24px;
  font-weight:900;
  line-height:1;
  transition:transform .25s ease,background .25s ease;
}

.faq-item[open] summary::after{
  transform:rotate(45deg);
  background:#ffa80b;
  color:#fff;
}

.faq-item p{
  margin:0;
  padding:0 22px 20px;
  max-width:760px;
  font-size:16px;
  line-height:1.5;
  font-weight:700;
  color:rgba(21,43,75,.88);
}

/* Logos confiance */
.trust-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-top:36px;
}

.trust-card{
  min-height:118px;
  display:grid;
  place-items:center;
  padding:20px;
  border-radius:18px;
  background:#fff;
  border:2px solid rgba(21,43,75,.08);
  box-shadow:0 7px 0 rgba(21,43,75,.05);
  transition:transform .22s ease;
}

.trust-card:hover{
  transform:translateY(-5px) rotate(-.4deg);
}

.trust-card img{
  max-height:76px;
  max-width:100%;
  width:auto;
  object-fit:contain;
}

/* Pele-mele photos */
.pelemele-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:36px;
}

.pelemele-grid .gallery-item{
  min-height:300px;
}

.pelemele-grid .gallery-item.wide{
  grid-column:span 2;
}

.pelemele-grid .gallery-item:nth-child(2n){
  transform:rotate(.7deg);
}

.pelemele-grid .gallery-item:nth-child(2n+1){
  transform:rotate(-.6deg);
}

/* CTA final */
.school-final-cta{
  align-items:center;
}

.school-final-cta .kicker{
  color:#fff;
}

.school-final-cta h2{
  max-width:620px;
}

.school-final-cta p{
  margin:14px 0 0;
  max-width:520px;
  font-size:17px;
  line-height:1.45;
  font-weight:700;
}

.cta-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:12px;
  flex:0 0 auto;
}

.cta-actions .page-cta{
  white-space:nowrap;
}

.page-cta.navy{
  background:#152b4b;
}

.page-cta.light{
  background:#fff;
  color:#152b4b;
}

@media(max-width:980px){
  .process-grid.four{
    grid-template-columns:1fr 1fr;
  }

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

  .route-map{
    width:min(640px,100%);
    margin:0 auto;
  }

  .trust-grid{
    grid-template-columns:repeat(3,1fr);
  }

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

  .pelemele-grid .gallery-item.wide{
    grid-column:span 2;
  }

  .cta-actions{
    width:100%;
    flex-direction:row;
    flex-wrap:wrap;
  }
}

@media(max-width:620px){
  .process-grid.four{
    grid-template-columns:1fr;
  }

  .trust-grid{
    grid-template-columns:1fr 1fr;
    gap:12px;
  }

  .trust-card{
    min-height:96px;
    padding:14px;
  }

  .trust-card img{
    max-height:60px;
  }

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

  .pelemele-grid .gallery-item.wide{
    grid-column:auto;
  }

  .pelemele-grid .gallery-item{
    min-height:250px;
  }

  .faq-item summary{
    padding:16px 18px;
  }

  .faq-item p{
    padding:0 18px 18px;
  }

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

  .cta-actions .page-cta{
    width:100%;
  }
}

.school-final-cta h2{
  font-size:clamp(32px,3.8vw,54px);
}

/* ===== v4 : icones filaires (style anniversaire), video, avis ===== */

.line-icons .feature-card{
  min-height:0;
  border:0;
  box-shadow:none;
  background:transparent;
  padding:18px 12px;
  text-align:center;
}

.line-icons .feature-card:hover{
  transform:none;
}

.line-icons .feature-icon{
  width:clamp(104px,10vw,146px);
  height:clamp(104px,10vw,146px);
  margin:0 auto 18px;
  border-radius:0;
  background:transparent;
  color:var(--ink,#152b4b);
  display:block;
  font-size:0;
  transform:rotate(-2deg);
  transition:transform .28s cubic-bezier(.2,.8,.2,1);
}

.line-icons .feature-card:nth-child(even) .feature-icon{transform:rotate(2deg)}
.line-icons .feature-card:hover .feature-icon{transform:rotate(2deg) scale(1.05)}
.line-icons .feature-card:nth-child(even):hover .feature-icon{transform:rotate(-2deg) scale(1.05)}

.line-icons .feature-icon svg{width:100%;height:100%;overflow:visible}

.line-icons .feature-icon path,
.line-icons .feature-icon circle,
.line-icons .feature-icon rect{
  fill:none;
  stroke:var(--ink,#152b4b);
  stroke-width:5;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.line-icons .feature-icon .accent{stroke:#ff4d12;stroke-width:7}
.line-icons .feature-icon .spark{stroke:#ffa80b;stroke-width:6}

.line-icons .feature-card h3{
  margin:0 0 8px;
  font-size:clamp(22px,2.1vw,29px);
  line-height:1;
  text-transform:none;
}

.line-icons .feature-card p{
  max-width:250px;
  margin:0 auto;
  font-size:15px;
  line-height:1.45;
  font-weight:600;
}

/* Bande video "Comment ca se passe ?" (adaptee de la home) */
.video-band{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,380px);
  grid-template-areas:"copy media" "steps media";
  align-items:center;
  gap:26px 50px;
  padding:clamp(28px,4vw,46px);
  border-radius:24px;
  background:#ffe4a8;
  color:var(--ink,#152b4b);
  position:relative;
  overflow:hidden;
}

.video-band::before{
  content:"";
  position:absolute;
  inset:auto -12% -42% 46%;
  height:60%;
  border-radius:100% 0 0 0;
  background:#fff0d6;
  opacity:.92;
  pointer-events:none;
}

.video-band-copy,.video-band-frame,.video-band-steps{position:relative;z-index:1}

.video-band-copy{grid-area:copy;align-self:end;max-width:640px}
.video-band-copy .kicker{display:inline-block;margin-bottom:8px}
.video-band-copy h2{margin:0 0 16px}

.video-band-copy p{
  margin:0;
  max-width:600px;
  font-size:clamp(16px,1.4vw,20px);
  line-height:1.42;
  font-weight:700;
}

.video-band-copy p+p{margin-top:10px}

.video-band-copy .btn{margin-top:22px}

.video-band-frame{
  grid-area:media;
  width:min(100%,360px);
  justify-self:end;
  border-radius:22px;
  overflow:hidden;
  background:var(--ink,#152b4b);
  box-shadow:0 22px 44px rgba(21,43,75,.18);
  transform:rotate(1deg);
}

.video-band-frame video{
  display:block;
  width:100%;
  aspect-ratio:9/16;
  height:auto;
  object-fit:contain;
  background:#152b4b;
}

.video-band-steps{
  grid-area:steps;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:6px;
}

.video-step{
  min-height:86px;
  border-radius:16px;
  padding:12px 13px;
  background:rgba(255,253,248,.78);
  border:2px solid rgba(21,43,75,.10);
  box-shadow:0 5px 0 rgba(21,43,75,.08);
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:10px;
}

.video-step span{
  font-family:"Gabarito","DM Sans",sans-serif;
  font-weight:900;
  font-size:clamp(30px,2.8vw,40px);
  line-height:.8;
  color:#ff4d12;
}

.video-step strong{
  font-size:clamp(13px,1vw,15px);
  line-height:1.14;
  font-weight:700;
  text-transform:uppercase;
}

/* Avis clients (captures) */
.avis-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:36px;
}

.avis-card{
  border-radius:18px;
  background:#fff;
  border:2px solid rgba(21,43,75,.1);
  box-shadow:0 7px 0 rgba(21,43,75,.06);
  padding:14px;
  display:grid;
  place-items:center;
}

.avis-card img{
  width:100%;
  height:auto;
  display:block;
}

.avis-card:nth-child(2n){transform:rotate(.5deg)}
.avis-card:nth-child(2n+1){transform:rotate(-.5deg)}

@media (max-width:980px){
  .video-band{
    grid-template-columns:1fr;
    grid-template-areas:"copy" "media" "steps";
    padding:28px;
    gap:26px;
  }
  .video-band-frame{justify-self:center;transform:none}
  .video-band-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .video-step{min-height:0}
}

@media (max-width:620px){
  .video-band-steps{grid-template-columns:1fr}
  .avis-grid{grid-template-columns:1fr;gap:14px}
}

/* ===== v5 : fond degrade + arc de cercle par univers (modele hub EVJF/EVG) ===== */
.hero-arc{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 74% 24%, rgba(184,222,250,.55), transparent 26%),
    linear-gradient(180deg,#ffffff 0%,#fff0d6 100%) !important;
}

.hero-arc::before{content:none !important}

.hero-arc::after{
  content:"";
  position:absolute;
  left:-5%;
  right:-5%;
  bottom:-110px;
  height:260px;
  background:var(--arc,#ffa80b);
  border-radius:50% 50% 0 0/100% 100% 0 0;
  z-index:0;
}

.hero-arc>*{position:relative;z-index:1}

.arc-rose{--arc:#ffd8e9}
.arc-sky{--arc:#b8defa}
.arc-navy{--arc:#152b4b}
.arc-yellow{--arc:#ffa80b}
.arc-lime{--arc:#ffe4a8}
.arc-green{--arc:#78ae4b}
.arc-orange{--arc:#ff4d12}

@media(max-width:620px){
  .hero-arc::after{bottom:-130px;height:200px}
}

/* ===== v6 : section reservation 2 colonnes + polish EVJF ===== */
.resa-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,400px);
  gap:clamp(30px,5vw,70px);
  align-items:center;
  margin-top:10px;
}

.resa-copy .section-title{text-align:left;margin-bottom:18px}
.resa-copy .kicker{display:inline-block}

.resa-points{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:14px;
  max-width:480px;
}

.resa-points li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:clamp(16px,1.35vw,18px);
  line-height:1.35;
  font-weight:700;
}

.resa-points li::before{
  content:"\2713";
  flex:0 0 auto;
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#ff4d12;
  color:#fff;
  font-size:14px;
  font-weight:900;
  margin-top:1px;
}

.resa-trust{
  margin-top:22px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  border-radius:999px;
  background:#fff;
  border:2px solid rgba(21,43,75,.1);
  box-shadow:0 5px 0 rgba(21,43,75,.06);
  font-weight:900;
  font-size:14px;
}

.resa-trust .pc-stars{font-size:15px}

/* Titre de la section process (fond navy) : blanc, prioritaire sur headings-unified */
.school-page main .process .section-title,
.team-page main .process .section-title,
.evjf-page main .process .section-title,
.birthday-page main .process .section-title{color:#fff}

/* ============================================================
   Panneau final unifie : un seul bloc navy qui reunit le CTA
   principal et les liens croises (calme, une seule couleur de fond)
   ============================================================ */
.final-panel{
  width:min(1180px,calc(100% - 36px));
  margin:0 auto 82px;
  border-radius:28px;
  padding:clamp(30px,4vw,52px);
  background:#152b4b;
  color:#fff;
}

.final-panel .kicker{
  color:#ffa80b;
  font-family:"Shantell Sans","Comic Sans MS",cursive;
  font-weight:700;
  font-size:clamp(17px,1.8vw,22px);
  line-height:1.08;
  text-transform:none;
  letter-spacing:0;
}

/* fallback autonome : le panneau reste correct meme sans internal-pages.css */
.final-panel .page-cta{
  position:relative;
  overflow:hidden;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 25px;
  border:0;
  border-radius:999px;
  background:#ff4d12;
  color:#fff;
  text-decoration:none;
  font-weight:900;
  font-size:13px;
  text-transform:uppercase;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.14);
  transition:transform .22s ease,filter .22s ease,box-shadow .22s ease;
}

.final-panel .page-cta:hover{transform:translateY(-3px);filter:saturate(1.08)}

.fp-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(24px,4vw,48px);
}

.fp-copy h2{
  margin:6px 0 0;
  max-width:560px;
  color:#fff;
  font-family:"Gabarito",sans-serif;
  font-weight:900;
  font-size:clamp(34px,4vw,56px);
  line-height:.94;
  letter-spacing:0;
  text-transform:none;
  text-wrap:balance;
}

.fp-copy p{
  margin:16px 0 0;
  max-width:520px;
  color:rgba(255,255,255,.82);
  font-size:17px;
  line-height:1.5;
  font-weight:700;
}

.fp-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:12px;
  flex:0 0 auto;
}

.fp-actions .page-cta{white-space:nowrap}

.page-cta.ghost{
  background:transparent;
  color:#fff;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.42);
}

.page-cta.ghost:hover{
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.7);
  filter:none;
}

.fp-sep{
  display:flex;
  align-items:center;
  gap:16px;
  margin:clamp(28px,3.4vw,40px) 0 18px;
}

.fp-sep::before,
.fp-sep::after{
  content:"";
  flex:1;
  height:2px;
  border-radius:2px;
  background:rgba(255,255,255,.14);
}

.fp-sep span{
  color:#ffa80b;
  font-family:"Shantell Sans","Comic Sans MS",cursive;
  font-weight:700;
  font-size:clamp(17px,1.7vw,21px);
  white-space:nowrap;
}

.fp-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.fp-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border-radius:18px;
  padding:18px 20px;
  background:rgba(255,255,255,.06);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.12);
  color:#fff;
  text-decoration:none;
  transition:background .22s ease,box-shadow .22s ease,transform .22s ease;
}

.fp-link:hover{
  background:rgba(255,255,255,.11);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.24);
  transform:translateY(-3px);
}

.fp-link-copy{display:grid;gap:5px;min-width:0}

.fp-link-copy strong{
  font-family:"Gabarito",sans-serif;
  font-weight:900;
  font-size:clamp(19px,1.8vw,23px);
  line-height:1;
}

.fp-link-copy small{
  color:rgba(255,255,255,.72);
  font-size:14px;
  line-height:1.4;
  font-weight:700;
}

.fp-go{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:999px;
  background:#ff4d12;
  color:#fff;
  font-size:19px;
  font-weight:900;
  transition:transform .22s ease;
}

.fp-link:hover .fp-go{transform:translateX(4px)}

@media(max-width:980px){
  .resa-grid{grid-template-columns:1fr;gap:30px}
  .resa-copy .section-title{text-align:left}
  .resa-grid .pc-solo,.resa-grid .pc-item{max-width:420px;margin:0 auto;width:100%}
  .fp-head{flex-direction:column;align-items:flex-start}
  .fp-actions{width:100%;flex-direction:row;flex-wrap:wrap}
  .fp-actions .page-cta{flex:1 1 auto}
  .fp-links{grid-template-columns:1fr}
}

@media(max-width:620px){
  .final-panel{width:calc(100% - 24px);padding:26px 20px 24px}
  .fp-actions{flex-direction:column}
  .fp-actions .page-cta{width:100%;white-space:normal}
  .fp-sep span{white-space:normal;text-align:center}
}
