/* YORU — sections des pages (porte, accueils, lieu, contact, légal) */

/* ---------- Porte ---------- */
body.porte-corps{background:#000;overflow:hidden;color:#fff}.porte{position:relative;display:flex;height:100vh;height:100svh}.moitie{position:relative;flex:1;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:0 5.5vw 10vh;transition:flex 1s cubic-bezier(.7,0,.2,1)}.moitie:hover{flex:1.3}
/* photos de chaque côté : fondu entre deux vues */
.moitie .photo{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.1);transition:opacity 1s ease,transform 5s linear,filter 1s}.moitie .photo.on{opacity:1;transform:scale(1)}.porte:hover .moitie:not(:hover) .photo{filter:brightness(.45) saturate(.7)}.g::after,.d::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none}.g::after{background:linear-gradient(#06183d33,#06183d00 30%,#06183d99 62%,#06183df2)}.d::after{background:linear-gradient(#0003,#0000 30%,#000a 62%,#000f)}.moitie>*:not(.photo):not(.faisceau){position:relative;z-index:2}.d{align-items:flex-end;text-align:right}.moitie .jp{font-size:20px}.g .jp{color:var(--glacier)}.d .jp{color:var(--elec)}.moitie .mot{font-family:var(--display);font-size:clamp(56px,6.5vw,116px);line-height:.92;margin:10px 0 18px;text-shadow:0 4px 40px #0009;overflow:hidden;padding-bottom:.06em}.moitie .mot span{display:inline-block}html.js .moitie .mot span{animation:monte 1.1s cubic-bezier(.2,.8,.2,1) both}.g .mot span{animation-delay:.55s}.d .mot span{animation-delay:.75s}
@keyframes monte{from{transform:translateY(105%)}}.d .mot{text-shadow:0 0 40px #3fd7ff88}.moitie .info{font-size:19px;color:#e3eef8;max-width:30ch;margin-bottom:30px}.moitie .btn{font-size:19px;padding:22px 48px}html.js .moitie .jp,html.js .moitie .info,html.js .moitie .btn-l{animation:apparait .9s cubic-bezier(.2,.8,.2,1) both}.g .jp{animation-delay:.45s}.g .info{animation-delay:.8s}.g .btn-l{animation-delay:.95s}.d .jp{animation-delay:.65s}.d .info{animation-delay:1s}.d .btn-l{animation-delay:1.15s}
@keyframes apparait{from{opacity:0;transform:translateY(24px)}}
/* entrée : les deux moitiés glissent l'une vers l'autre */
html.js .g{animation:depuis-g 1.1s cubic-bezier(.7,0,.2,1) both}html.js .d{animation:depuis-d 1.1s cubic-bezier(.7,0,.2,1) both}
@keyframes depuis-g{from{transform:translateX(-100%)}}
@keyframes depuis-d{from{transform:translateX(100%)}}
/* choix : la moitié touchée s'ouvre en grand avant d'entrer */
.porte.choix .moitie{transition:flex .7s cubic-bezier(.7,0,.2,1),opacity .5s}.porte.choix .moitie.choisie{flex:8}.porte.choix .moitie:not(.choisie){opacity:.3}.porte.choix .sceau{opacity:0;transform:translate(-50%,-50%) scale(.4);transition:all .5s}
/* faisceaux du club */
.faisceau{position:absolute;top:-10%;width:2px;height:120%;z-index:1;background:linear-gradient(#bff4ff,#3fd7ff 30%,#3fd7ff00 80%);box-shadow:0 0 14px #3fd7ff;opacity:.45;mix-blend-mode:screen;transform-origin:50% 0;animation:balaye 6s ease-in-out infinite alternate;pointer-events:none}.faisceau.f1{left:30%;--r:-18deg}.faisceau.f2{left:72%;--r:16deg;animation-duration:7.5s;animation-delay:-2s}
@keyframes balaye{from{transform:rotate(calc(var(--r) - 20deg))}to{transform:rotate(calc(var(--r) + 20deg))}}.sceau{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;width:150px;height:150px;border-radius:50%;background:#fff url(/assets/img/logo.png) center/134px no-repeat;box-shadow:0 0 0 3px #3fd7ff,0 0 40px #3fd7ff,0 0 110px #3fd7ff88;animation:allume 2.2s steps(1) .9s both}
@keyframes allume{0%{box-shadow:none;opacity:.2}12%{box-shadow:0 0 0 2px #3fd7ff,0 0 30px #3fd7ff;opacity:1}18%{box-shadow:none;opacity:.5}26%,100%{box-shadow:0 0 0 3px #3fd7ff,0 0 40px #3fd7ff,0 0 110px #3fd7ff88;opacity:1}}.sceau::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1.5px solid #3fd7ff;opacity:0;animation:onde 2.8s ease-out 2.4s infinite}
@keyframes onde{0%{transform:scale(.85);opacity:.8}100%{transform:scale(1.45);opacity:0}}.porte-corps>.marque{position:absolute;left:50%;top:5vh;transform:translateX(-50%);z-index:5;font-family:var(--display);font-size:16px;letter-spacing:.7em;padding:12px 16px 12px 26px;border-radius:999px;background:#0009;backdrop-filter:blur(10px);white-space:nowrap;border:1px solid #ffffff2e;animation:apparait .9s ease 1.2s both}.porte-corps>.langue{position:absolute;right:24px;top:24px;z-index:6;font-size:15px;font-weight:700;background:#0009;padding:9px 16px;border-radius:999px;border:1px solid #ffffff2e}.diag{display:none}

/* bouton de langue de la porte : « FR · EN » sur ordinateur, seulement l'autre langue sur mobile */
.porte-corps>.langue .l-mob{display:none}
/* ---------- Mobile : deux moitiés coupées en biais, logo au centre de la coupe ---------- */
@media (max-width:900px){
  .porte{flex-direction:column}
  .moitie,.moitie:hover{flex:none;padding:0 22px}
  .g{height:50svh;padding-bottom:9svh}
  .d{height:50svh;padding-top:9svh;padding-bottom:30px;align-items:flex-start;text-align:left}
  .porte.choix .moitie{transition:height .7s cubic-bezier(.7,0,.2,1),clip-path .7s cubic-bezier(.7,0,.2,1),opacity .5s}
  .porte.choix .moitie.choisie{flex:none}
  .porte.vers-g .g{height:100svh}
  .porte.vers-d .g{height:0}
  .porte.vers-d .d{height:100svh}
  .porte.choix .diag{opacity:0;transition:opacity .3s}
  html.js .g{animation-name:depuis-haut}html.js .d{animation-name:depuis-bas}
  @keyframes depuis-haut{from{transform:translateY(-100%)}}
  @keyframes depuis-bas{from{transform:translateY(100%)}}
  .moitie .jp{font-size:15px}
  .moitie .mot{font-size:58px;margin:2px 0 6px}
  .moitie .info{display:block;font-size:15.5px;margin-bottom:16px;max-width:none}
  .moitie .btn{font-size:16px;padding:15px 30px}
  .d .info{color:#cfe3f5}
  /* ligne LED sur la coupe : droite, au centre de l'écran, logo posé dessus */
  .diag{display:block;position:absolute;left:0;right:0;top:calc(50svh - 1.5px);height:3px;z-index:4;pointer-events:none;background:linear-gradient(90deg,#3fd7ff,#bff4ff 50%,#3fd7ff);filter:drop-shadow(0 0 6px #3fd7ff) drop-shadow(0 0 14px #3fd7ff);animation:apparait .6s ease 1s both}
  .sceau{top:50svh;width:96px;height:96px;background-size:86px}
  .porte-corps>.langue{top:18px;right:14px;font-size:14px;padding:0;width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
  .porte-corps>.langue .l-web{display:none}.porte-corps>.langue .l-mob{display:inline}
  .faisceau.f1{left:62%}.faisceau.f2{left:88%}
  .g::after{background:linear-gradient(#06183d30,#06183d9e 28%,#06183dad 62%,#06183de0)}
  .g .mot,.g .info,.g .jp{text-shadow:0 2px 18px #06183d}
  .d::after{background:linear-gradient(#0000 10%,#0009 45%,#000e 80%)}
}
@media (prefers-reduced-motion:reduce){.moitie .photo{transition:opacity .3s}}
/* photos en <img> (tailles choisies par le navigateur, voir outils/blocs.mjs img()) */
img.photo{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- Pages claires (lieu, contact, légal) ---------- */.bandeau-page{position:relative;overflow:hidden;background:#000;color:#fff;padding:170px 0 74px}.bandeau-page canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.75}.bandeau-page::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#06183dee,#06183d99 60%,#06183d55)}.bandeau-page .wrap{position:relative;z-index:2}.bandeau-page .jp{color:var(--elec);font-size:20px}.bandeau-page h1{font-size:clamp(56px,7vw,104px);line-height:1.02;margin:10px 0 16px}.bandeau-page p{font-size:20px;color:#d6e4f2;max-width:48ch}

/* Le lieu : grille éditoriale + visionneuse */
.galerie-lieu{padding:80px 0 110px}.grille-lieu{display:grid;grid-template-columns:repeat(6,1fr);gap:20px}.grille-lieu figure{grid-column:span 3;position:relative}.grille-lieu .g-0{grid-column:span 4}.grille-lieu .g-1{grid-column:span 2}.grille-lieu .g-2{grid-column:span 2}.grille-lieu .g-3{grid-column:span 4}.g-ouvrir{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;border-radius:22px;overflow:hidden;aspect-ratio:4/3}.grille-lieu .g-1 .g-ouvrir,.grille-lieu .g-2 .g-ouvrir{aspect-ratio:3/4.5}.g-ouvrir img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.g-ouvrir:hover img{transform:scale(1.05)}.grille-lieu figcaption{position:absolute;left:18px;bottom:16px;font-family:var(--display);font-size:24px;color:#fff;text-shadow:0 2px 20px #000c;pointer-events:none}.lieu-club{position:relative;min-height:62vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;background:#000}.lieu-club .photo{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.45)}.lieu-club .contenu{position:relative;z-index:2;padding:80px 20px}.lieu-club p{font-size:20px;color:#d6e4f2;margin:6px auto 30px;max-width:42ch}.visionneuse{width:100vw;height:100svh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#000f;color:#fff}.visionneuse::backdrop{background:#000}.visionneuse figure{position:absolute;inset:70px 80px 70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.visionneuse img{max-width:100%;max-height:calc(100% - 50px);object-fit:contain;border-radius:12px;animation:v-entre .45s cubic-bezier(.2,.8,.2,1)}
@keyframes v-entre{from{opacity:0;transform:scale(.96)}}.visionneuse figcaption{font-family:var(--display);font-size:24px}.visionneuse button{position:absolute;z-index:2;width:54px;height:54px;border-radius:50%;border:1px solid #ffffff59;background:#0008;color:#fff;font-size:22px;cursor:pointer}.v-fermer{top:16px;right:16px}.v-prec{left:16px;top:50%;transform:translateY(-50%)}.v-suiv{right:16px;top:50%;transform:translateY(-50%)}.v-compte{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-size:15px;color:#cfe3f5}

/* Contact */
.contact{padding:80px 0 110px}.grille-contact{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:stretch;margin-bottom:40px}.c-infos dl{border-top:1px solid var(--trait)}.c-infos dl div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--trait)}.c-infos dt{font-family:var(--display);font-size:22px;color:var(--abysse)}.c-infos dd{color:var(--gris)}.c-infos dd a{color:var(--cobalt);font-weight:700}.c-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.c-plan{border-radius:24px;overflow:hidden;box-shadow:0 30px 60px #06183d26;height:440px;background:#dfe7ef}.c-plan iframe{width:100%;height:100%;border:0;filter:saturate(.8)}

/* Légal */
.legal{padding:70px 0 110px}.legal-corps{max-width:860px}.legal-corps h2{font-size:32px;color:var(--abysse);margin:44px 0 14px}.legal-corps p,.legal-corps li{color:var(--gris);font-size:18px}.legal-corps ul{padding-left:22px;margin:10px 0}.legal-corps a{color:var(--cobalt);font-weight:700}.legal-corps .maj{margin-top:44px;font-size:15px;font-style:italic}

@media (max-width:900px){.bandeau-page{padding:118px 0 44px}.bandeau-page h1{font-size:50px}.bandeau-page p{font-size:17px}.galerie-lieu{padding:30px 0 70px}.grille-lieu{grid-template-columns:1fr;gap:14px}.grille-lieu figure,.grille-lieu .g-0,.grille-lieu .g-1,.grille-lieu .g-2,.grille-lieu .g-3{grid-column:auto}.g-ouvrir,.grille-lieu .g-1 .g-ouvrir,.grille-lieu .g-2 .g-ouvrir{aspect-ratio:4/5;border-radius:18px}.grille-lieu figcaption{font-size:22px}.visionneuse figure{inset:70px 0 80px}.visionneuse img{border-radius:0}.v-prec,.v-suiv{top:auto;bottom:14px;transform:none}.contact{padding:40px 0 70px}.grille-contact{grid-template-columns:1fr;gap:28px}.c-infos dl div{grid-template-columns:1fr;gap:4px;padding:16px 0}.c-plan{height:320px}.legal{padding:40px 0 70px}.legal-corps h2{font-size:26px;margin-top:34px}.legal-corps p,.legal-corps li{font-size:17px}
}
@media (min-width:901px){.grille-lieu figure:last-child{grid-column:1/-1}.grille-lieu figure:last-child .g-ouvrir{aspect-ratio:21/8}}
