/* Refonte sobre (SDN III) : compléments communs aux pages (menu mobile, formulaires, états de retour) */
:root{--gx:28px}
*,*::before,*::after{box-sizing:border-box}
img{max-width:100%}
button{font-family:inherit}
[hidden]{display:none !important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
section[id],div[id="passes"],div[id="top"]{scroll-margin-top:12px}

/* ---- menu mobile ---- */
.burger{display:none;width:48px;height:48px;border-radius:50%;border:2px solid #fff;background:transparent;align-items:center;justify-content:center;cursor:pointer;padding:0;color:#fff;transition:background-color .18s ease,border-color .18s ease}
.burger:hover{background:#5B2A63;border-color:#5B2A63}
.burger:active{background:#3F1B46;border-color:#3F1B46}
.burger svg{width:24px;height:24px;display:block}
.burger .x{display:none}
header.nav.open .burger .bars{display:none}
header.nav.open .burger .x{display:block}
.mnav{display:none;background:#012D38;border-top:1px solid rgba(255,255,255,.18);padding:6px 20px 24px}
.mnav a:not(.btn){display:block;padding:15px 4px;font-family:'Sora',sans-serif;font-weight:600;font-size:15px;letter-spacing:.05em;text-transform:uppercase;color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}
.mnav a:not(.btn):hover{color:#FFC83D}
.mnav .btn{margin-top:18px;width:100%;box-sizing:border-box}
header.nav.open .mnav{display:block}
@media (max-width:860px){
  header.nav .menu{display:none !important}
  header.nav > div:first-child > .btn{display:none !important}
  .burger{display:inline-flex}
  header.nav > div:first-child{flex-wrap:nowrap !important}
}

/* ---- retours de formulaire ---- */
.fb{padding:12px 14px;border-radius:12px;font-size:15px;line-height:1.45}
.fb.err{background:#FBE6E4;border:1.5px solid #E7A39C;color:#8F1F17}
.fb.ok{background:#E8F6F8;border:1.5px solid #18B6CE;color:#04262C}
.fld .req-err,.fld input:user-invalid,.fld select:user-invalid,.fld textarea:user-invalid{border-color:#C0392B}
button[disabled]{opacity:.65;cursor:progress}
.banner{position:relative;z-index:70;padding:16px 20px;text-align:center;font-size:16px;line-height:1.5}
.banner.success{background:#E8F6F8;color:#04262C;border-bottom:2px solid #18B6CE}
.banner.cancel{background:#FBEFC9;color:#3b2c00;border-bottom:2px solid #D9A621}
.minor{border:1.5px solid #D9A621;background:#FFF8E1;border-radius:16px;padding:18px 18px 16px;display:flex;flex-direction:column;gap:14px}
.minor .lab{font-weight:700}
.sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

@media (max-width:860px){.pass-wide{grid-template-columns:1fr !important;gap:18px !important;align-items:start !important}}

@media (max-width:860px){.film-card{grid-template-columns:1fr !important}.film-card img{min-height:200px !important;max-height:260px;height:auto !important}}
@media (max-width:520px){.film-offers{grid-template-columns:1fr !important}}


/* ---- carte SDN Experience : couverture du film + fond or ---- */
.exp-card{padding:0 !important;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.9fr);overflow:hidden;background:linear-gradient(135deg,#EDC14A 0%,#D9A621 100%);border-color:#B8860B;color:#1b1400}
.exp-card:hover{border-color:#5B2A63}
.exp-img{width:100%;height:100%;min-height:260px;object-fit:cover;object-position:center;display:block}
.exp-body{padding:28px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;min-width:0}
.exp-main{min-width:0}
.exp-main ul{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:15px;line-height:1.45}
.exp-main li{padding-left:26px;position:relative}
.exp-main li::before{content:'';position:absolute;left:2px;top:.45em;width:12px;height:7px;border-left:2.5px solid #012D38;border-bottom:2.5px solid #012D38;transform:rotate(-45deg)}
.exp-date{display:inline-block;margin-top:12px;font-family:'IBM Plex Mono',monospace;font-size:13px;background:rgba(255,255,255,.6);color:#3F1B46;border-radius:6px;padding:4px 10px}
.exp-buy{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.exp-buy .price{color:#012D38}
.exp-card .btn-outline{border-color:#012D38;color:#012D38;background:rgba(255,255,255,.35)}
.exp-card .btn-outline:hover{background:#5B2A63;border-color:#5B2A63;color:#fff}
@media (max-width:980px){.exp-card{grid-template-columns:1fr}.exp-img{height:auto;min-height:0;max-height:300px;aspect-ratio:16/9}.exp-body{grid-template-columns:1fr;gap:18px}}

/* ---- mobile : reprend les réglages de la maquette 390 px ---- */
@media (max-width:620px){
  :root{--gx:20px}
  .hero2{gap:28px}
  .grid2,.grid3,.grid4,.row2,.chks.cols{gap:14px}
  .side{min-height:210px}
  .md{padding:20px 12px}
  .h2{font-size:26px !important}
  .price{font-size:32px}
  .lead{font-size:16px}
  .totop{right:14px;bottom:14px}
  .infos > div{border-right:0 !important;border-bottom:1px solid #E2DCC9}
  .infos > div:last-child{border-bottom:0}
  .row{grid-template-columns:1fr !important;gap:6px !important}
  .row .chipcell{grid-column:1 !important}
  .ph-hero{background-position:60% center !important}
  .vidfull{min-height:0 !important}
  .vidfull .play{width:68px !important;height:68px !important;margin:-34px 0 0 -34px !important}
}

/* ---- partenaires : toute la tuile est cliquable ---- */
.logos > div{position:relative}
.logos a::after{content:"";position:absolute;inset:0;border-radius:16px}
.logos a:focus-visible{outline:none}
.logos a:focus-visible::after{outline:3px solid #D9A621;outline-offset:3px}

/* ---- cartes « Participer » : toute la carte est cliquable ---- */
#participer .card{position:relative;cursor:pointer}
#participer .link.stretch::before{content:"";position:absolute;inset:0;z-index:1}
#participer .card:focus-within{outline:3px solid #D9A621;outline-offset:3px}
#participer .link.stretch:focus-visible{outline:none}

/* ---- photos d'en-tête : cadrage stable quand la page se réduit (ratio fixe, sujet centré) ---- */
@media (max-width:980px){
  .side{min-height:0 !important;aspect-ratio:16/10;max-height:460px;width:100%}
}
@media (max-width:620px){
  .side{aspect-ratio:4/3;max-height:none}
}

/* ---- pied de page : newsletter + liens légaux ---- */
.fright{flex:0 1 500px;min-width:0}
.frow{display:flex;gap:36px}
@media (max-width:620px){.frow{flex-wrap:wrap}}
.nl-block{margin-top:30px;max-width:420px}
.nl-sub{margin:0;font-size:14px;line-height:1.5;color:#BFE7EE}
.nl{display:flex;gap:8px;margin-top:12px}
.nl input[type=email]{flex:1;min-width:0;min-height:46px;border-radius:999px;border:1.5px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;padding:0 18px;font:inherit;font-size:15px}
.nl input[type=email]::placeholder{color:#9FB8BF}
.nl input[type=email]:focus{outline:none;border-color:#18B6CE;box-shadow:0 0 0 3px rgba(24,182,206,.25)}
.nl button{flex:none;min-height:46px;min-width:52px;border-radius:999px;border:0;background:#18B6CE;color:#04262C;font-weight:700;font-size:18px;cursor:pointer;transition:background-color .18s ease}
.nl button:hover{background:#FFC83D}.nl button:active{background:#D9A621}
.nl-block .fb{margin-top:10px;font-size:14px}
.legal{display:inline-flex;flex-wrap:wrap;gap:6px 18px}
.legal a{color:#BFE7EE;font-size:13px;border-bottom:1px solid rgba(191,231,238,.4)}
.legal a:hover{color:#FFC83D;border-color:#FFC83D}

/* ---- pied de page : logos « Ils accompagnent la 3e édition » (blancs, fond transparent, sur toute la largeur) ---- */
.acc{max-width:1100px;margin:34px auto 0;padding-top:26px;border-top:1px solid rgba(255,255,255,.18)}
.acc-t{font-family:'Sora',sans-serif;font-weight:600;font-size:15px;color:#fff}
.acc-g{display:flex;flex-wrap:wrap;align-items:center;gap:22px 38px;margin-top:18px}
.acc-g a,.acc-g span{display:flex;align-items:center;opacity:.9;transition:opacity .18s ease,transform .18s ease}
.acc-g a:hover{opacity:1;transform:translateY(-2px)}
.acc-g img{height:30px;width:auto;max-width:170px;object-fit:contain;display:block}
.acc-g img.t{height:46px;max-width:120px}
.acc-g img.tr{height:30px;max-width:160px}
@media (max-width:620px){.acc-g img.tr{height:24px;max-width:120px}}
.acc-m{margin-top:22px}
.acc-l{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.acc-m .acc-g{margin-top:12px}
@media (max-width:620px){.acc-g{gap:18px 26px}.acc-g img{height:26px;max-width:130px}.acc-g img.t{height:38px;max-width:96px}}
