/* YORU — système commun des maquettes validées du 05/10 (référence : docs/maquettes-inspire/) :
 * typo (Marcellus + Cormorant italique), apparitions .fx/.fxc, fonds animés, néons cyan + rose, sections de l’accueil restaurant */
:root{--rose:#d6aa52;--italique:"Cormorant Garamond",serif}
/* sans JS : tout reste visible */
html:not(.js) .fx,html:not(.js) .fxc{opacity:1!important;transform:none!important;clip-path:none!important}
html:not(.js) .fxc img,html:not(.js) .cu-rang .fx img{transform:none!important}
html:not(.js) .st .w,html:not(.js) .st .neon{opacity:1!important;transform:none!important}

/* Maquette inspirée du site en ligne, DA nuit / bleu / néon cyan */
:root{--italique:"Cormorant Garamond",serif}
body{background:var(--nuit)}
main{background:var(--nuit);color:#fff}
main em{font-family:var(--italique);font-style:italic;font-weight:400}
main h2{font-size:clamp(44px,4.8vw,72px);line-height:1.02}
main h2 em{color:var(--glacier)}
.lbl{display:block;font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:#b9cde3;margin-bottom:26px}
.lbl b{color:var(--elec);font-weight:700}
.lbl--centre{text-align:center}
main p{color:#c9d6e6}
/* hero */
.h-yoru{position:relative;height:100vh;height:100svh;min-height:640px;overflow:hidden;display:grid;place-items:center;text-align:center}
.h-yoru .vues{position:absolute;inset:0}
.h-yoru .vues img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.h-voile{position:absolute;inset:0;background:radial-gradient(ellipse at center,#04050655,#040506d9 75%),linear-gradient(#04050699,#04050600 30%,#040506cc)}
.h-centre{position:relative;z-index:2}
.h-mot{display:flex;justify-content:center;gap:.12em;font-family:var(--display);font-weight:400;font-size:clamp(110px,17vw,260px);line-height:.9;letter-spacing:.02em;text-shadow:0 0 60px #3fd7ff40}
.h-mot span{display:inline-block;animation:monte 1.2s cubic-bezier(.2,.7,.2,1) both}.h-mot span:nth-child(2){animation-delay:.08s}.h-mot span:nth-child(3){animation-delay:.16s}.h-mot span:nth-child(4){animation-delay:.24s}
@keyframes monte{from{opacity:0;transform:translateY(40px)}}
.h-centre p{margin:24px auto 0;font-size:16px;letter-spacing:.06em;color:#dbe7f3}.h-centre p em{font-size:22px;letter-spacing:0}
.h-actions{display:flex;gap:14px;justify-content:center;margin-top:34px;flex-wrap:wrap}
.h-cote{position:absolute;top:50%;z-index:2;font-size:11px;letter-spacing:.3em;color:#ffffff99;writing-mode:vertical-rl}
.h-cote--g{left:28px;transform:translateY(-50%) rotate(180deg)}.h-cote--d{right:28px;transform:translateY(-50%)}
.badge{position:absolute;right:6vw;bottom:8vh;z-index:3;width:132px;height:132px;display:grid;place-items:center}
.badge svg{position:absolute;inset:0;width:100%;height:100%;animation:tourne 18s linear infinite;fill:#dbe7f3;font-size:12.5px;letter-spacing:3px;font-weight:700}
.badge span{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-family:var(--kanji);font-size:17px;line-height:1.05;color:var(--nuit);background:var(--elec);box-shadow:0 0 30px #3fd7ff88}
@keyframes tourne{to{transform:rotate(360deg)}}
.h-scroll{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:2;font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:#ffffffa0;display:flex;flex-direction:column;align-items:center;gap:10px}
.h-scroll i{width:1px;height:40px;background:linear-gradient(var(--elec),transparent)}
/* statement */
.statement{padding:150px 0 0;overflow:hidden}
.st{max-width:var(--wrap);margin:0 auto;padding:0 40px;font-size:clamp(64px,9.5vw,150px);line-height:.98;color:#fff}
.st em{font-family:var(--italique);font-style:italic}
.st .st-or{color:var(--glacier)}
.neon{font-family:var(--kanji);font-style:normal;color:var(--elec);text-shadow:0 0 18px #3fd7ff,0 0 60px #3fd7ffaa;font-size:.9em}
.defile2{margin-top:120px;border-top:1px solid #ffffff1f;border-bottom:1px solid #ffffff1f;padding:22px 0;overflow:hidden}
.defile2>div{display:flex;gap:36px;width:max-content;animation:defile2 40s linear infinite;font-family:var(--italique);font-style:italic;font-size:34px;color:#dbe7f3;white-space:nowrap}
.defile2 i{font-style:normal;color:var(--elec);font-size:18px;align-self:center}
@keyframes defile2{to{transform:translateX(-50%)}}
/* expérience */
.exp{padding:150px 0}
.exp-grille{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.exp-texte p{margin-top:22px;max-width:50ch}.exp-texte p em{color:#fff;font-size:1.1em}
.chiffres{display:flex;gap:56px;margin-top:48px;padding-top:30px;border-top:1px solid #ffffff1f}
.chiffres dt{font-family:var(--display);font-size:40px;color:var(--elec)}
.chiffres dd{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#b9cde3;margin-top:6px}
.collage{position:relative;height:640px}
.collage figure{position:absolute;margin:0;overflow:hidden;border-radius:4px;box-shadow:0 40px 80px #000a}
.collage img{width:100%;height:100%;object-fit:cover}
.c1{left:6%;top:0;width:58%;height:68%}
.c2{right:0;top:30%;width:44%;height:42%;outline:1px solid #3fd7ff40;outline-offset:8px}
.c3{left:0;bottom:0;width:46%;height:36%}
.c-jp{position:absolute;right:4%;top:2%;writing-mode:vertical-rl;font-family:var(--kanji);color:var(--elec);letter-spacing:.4em;font-size:15px}
/* bande */
.bande{overflow:hidden;padding:6px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.bande-piste{display:flex;gap:6px;width:max-content;animation:ruban 70s linear infinite}
@keyframes ruban{to{transform:translateX(-50%)}}
.bande figure{margin:0;width:min(22vw,320px);aspect-ratio:3/4;overflow:hidden;flex:none}
.bande img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .6s;filter:brightness(.8)}
.bande figure:hover img{transform:scale(1.07);filter:none}
/* cuisine */
.cuisine{padding:150px 0}
.cu-tete{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:60px}
.fleches{display:flex;gap:10px}.fleches button{width:54px;height:54px;border-radius:50%;border:1px solid #ffffff59;background:transparent;color:#fff;font-size:20px;cursor:pointer;transition:.3s}.fleches button:hover{background:#fff;color:var(--nuit)}
.cu-rang{display:flex;gap:34px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:0 max(40px,calc((100vw - 84rem)/2 + 40px)) 10px;scroll-padding-inline:max(40px,calc((100vw - 84rem)/2 + 40px));scrollbar-width:none}
.cu-rang::-webkit-scrollbar{display:none}
.cu-rang article{flex:0 0 380px;scroll-snap-align:start}
.cu-rang figure{position:relative;margin:0 0 26px;aspect-ratio:4/5;overflow:hidden;border-radius:4px}
.cu-rang img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.cu-rang article:hover img{transform:scale(1.05)}
.cu-k{position:absolute;right:18px;bottom:10px;font-family:var(--kanji);font-size:64px;color:#ffffffd9;text-shadow:0 4px 30px #000}
.cu-rang .lbl{margin-bottom:10px;color:var(--elec)}
.cu-rang h3{font-family:var(--italique);font-style:italic;font-size:36px;font-weight:400}
.cu-rang p{margin-top:10px;font-size:16px}
/* carte */
.menu-t{padding:150px 0;background:var(--abysse)}
.mt-tete{margin-bottom:50px}
.mt-liste{list-style:none;border-top:1px solid #ffffff24;margin-bottom:46px}
.mt-liste a{display:grid;grid-template-columns:76px 1fr auto 40px;align-items:center;gap:26px;padding:16px 0;border-bottom:1px solid #ffffff24;transition:padding .4s,background .4s}
.mt-liste a:hover{padding-left:14px;background:#ffffff08}
.mt-liste img{width:76px;height:56px;object-fit:cover;border-radius:3px}
.mt-liste span{font-family:var(--italique);font-style:italic;font-size:30px}
.mt-liste small{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:#b9cde3}
.mt-liste i{font-style:normal;color:var(--elec);font-size:20px}
/* bar */
.bar-t{padding:150px 0}
.bar-grille{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:center}
.bar-photo{margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:4px;box-shadow:0 40px 80px #000a}
.bar-photo img{width:100%;height:100%;object-fit:cover}
.bar-t p{margin-top:22px;max-width:52ch}
.bar-liste{list-style:none;margin-top:34px}
.bar-liste li{display:flex;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid #ffffff1f}
.bar-liste span{font-family:var(--italique);font-style:italic;font-size:26px}
.bar-liste i{flex:1}.bar-liste b{color:var(--elec);font-weight:500}
.tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.tags span{font-size:11px;letter-spacing:.24em;text-transform:uppercase;border:1px solid #ffffff3d;border-radius:999px;padding:9px 16px;color:#dbe7f3}
/* galerie */
.gal{padding:150px 0;background:var(--abysse)}
.mosaique{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;grid-auto-flow:dense;gap:8px;margin-bottom:46px}
.mosaique figure{margin:0;overflow:hidden;border-radius:3px}
.mosaique img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.mosaique figure:hover img{transform:scale(1.06)}
.m0{grid-column:span 2;grid-row:span 2}.m5{grid-column:span 2}
/* réservation */
.resa-t{padding:150px 0;text-align:center;background:radial-gradient(ellipse 60% 70% at 50% 40%,#13171f,var(--nuit) 75%)}
.resa-t .lbl{margin-bottom:22px}
.resa-info{margin:22px auto 0;font-size:14px;letter-spacing:.08em;color:#b9cde3}.resa-info a{color:#fff}
.resa-form{display:flex;gap:14px;justify-content:center;align-items:end;flex-wrap:wrap;margin:44px auto 10px;max-width:860px}
.resa-form label{display:flex;flex-direction:column;gap:8px;text-align:left;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#b9cde3}
.resa-form select,.resa-form input{height:56px;min-width:170px;padding:0 16px;border-radius:4px;border:1px solid #ffffff3d;background:#ffffff0d;color:#fff;font:500 16px var(--texte);color-scheme:dark}
/* grand YORU 夜 */
.geant{background:var(--nuit);text-align:center;padding:60px 0 10px;overflow:hidden}
.geant>div{font-family:var(--display);font-size:clamp(90px,19vw,300px);line-height:.9;white-space:nowrap;color:transparent;-webkit-text-stroke:1px #3fd7ff66;background:linear-gradient(0deg,#3fd7ff calc((var(--p,0) - .12) * 320%),transparent calc((var(--p,0) - .12) * 320% + 1%));-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 calc(var(--p,0)*24px) #3fd7ff66)}
.geant span{font-family:var(--kanji)}
@media (max-width:900px){
  .h-cote{display:none}.badge{width:104px;height:104px;right:16px;bottom:90px}.badge span{width:50px;height:50px;font-size:14px}
  .h-mot{font-size:23vw;gap:.04em}.h-scroll{display:none}.badge{bottom:22px}.h-centre{padding:0 20px 60px}
  .statement{padding-top:90px}.st{padding:0 20px;font-size:17vw}.defile2{margin-top:70px}.defile2>div{font-size:24px}
  .exp,.cuisine,.menu-t,.bar-t,.gal,.resa-t{padding:90px 0}
  .exp-grille,.bar-grille{grid-template-columns:1fr;gap:50px}
  .chiffres{gap:28px}.chiffres dt{font-size:30px}.chiffres dd{font-size:9px}
  .collage{height:420px}
  .bande figure{width:46vw}
  .cu-tete{display:block;margin-bottom:34px}.fleches{display:none}
  .cu-rang{padding:0 20px 10px;scroll-padding-inline:20px;gap:16px}.cu-rang article{flex-basis:78vw}.cu-rang h3{font-size:30px}
  .mt-liste a{grid-template-columns:60px 1fr 24px;gap:16px}.mt-liste small{display:none}.mt-liste img{width:60px;height:46px}.mt-liste span{font-size:23px}
  .mosaique{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.m0,.m5{grid-column:span 2}
  .resa-form{flex-direction:column;align-items:stretch}.resa-form select,.resa-form input{width:100%}
}
@media (prefers-reduced-motion:reduce){.badge svg,.defile2>div,.h-mot span{animation:none}}
/* ---------- rose du logo + finitions ---------- */
:root{--rose:#d6aa52}
::selection{background:var(--rose);color:#fff}
/* grain de film, très léger, sur toute la page */
body::after{content:"";position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}
/* étiquettes : le numéro en rose */
.lbl b{color:var(--rose)!important;text-shadow:0 0 12px #d6aa5266}
/* hero : néon bicolore sur YORU, ligne LED cyan → rose, badge rose, un faisceau rose */
.h-mot{text-shadow:-2px 0 0 #d6aa525c,2px 0 0 #3fd7ff5c,0 0 60px #3fd7ff40}
.h-led{background:linear-gradient(90deg,transparent,#3fd7ff,#d6aa52,#3fd7ff,transparent);box-shadow:0 0 16px #d6aa52aa}
.lbl--centre{color:#f3e2b5!important}
.badge span{background:var(--rose);color:#fff;box-shadow:0 0 30px #d6aa52aa}
.badge span{animation:pulse-r 2.6s ease-in-out infinite}@keyframes pulse-r{50%{box-shadow:0 0 0 10px #d6aa5226,0 0 56px #d6aa52}}
.faisceaux i:nth-child(2){background:linear-gradient(90deg,transparent,#d6aa5212,transparent)}
.btn--elec:hover{box-shadow:0 0 0 6px #d6aa5233,0 0 50px #d6aa5277!important}
/* phrase : le 夜 en néon rose, comme le logo */
.st .neon.on{color:var(--rose);text-shadow:0 0 18px #d6aa52,0 0 60px #d6aa52aa,0 0 120px #d6aa5255}
.fond>.kanji-geant{-webkit-text-stroke:1px #d6aa5233;filter:drop-shadow(0 0 30px #d6aa5222)}
.defile--contour span::after{color:var(--rose);text-shadow:0 0 12px var(--rose)}
/* expérience : 夜 rose, un cadre rose sur le collage */
.chiffres div:first-child dt{color:var(--rose);text-shadow:0 0 16px #d6aa5288}
.c2{outline-color:#d6aa5266!important}
.c1::after{content:"";position:absolute;inset:14px;border:1px solid #3fd7ff55;pointer-events:none}
.c-jp{color:var(--rose)}
/* cuisine : lueur rose dans le fond, kanji rose au survol, contour bicolore */
.aurore i:nth-child(3){background:#d6aa52;opacity:.14}
.cu-rang article:hover .cu-k{color:var(--rose);text-shadow:0 0 22px #d6aa52}
.trace::before{background:conic-gradient(from var(--ang),#3fd7ff00 0 58%,#3fd7ff 72%,#d6aa52 84%,#fff 88%,#d6aa5200 94%)!important}
/* carte : kanji et deux coins en rose */
.mt-kanji{color:var(--rose);text-shadow:0 0 12px #d6aa52}
.mt-panneau .c1,.mt-panneau .c4{border-color:var(--rose);box-shadow:0 0 10px #d6aa5288}
/* cocktails : les prix s'allument en rose */
.bar-liste li.on b{color:var(--rose);text-shadow:0 0 14px #d6aa52}
.tags span:hover{border-color:var(--rose);color:#fff;box-shadow:0 0 18px #d6aa5255}
/* filets de séparation néon */
.neon-sep{display:flex;align-items:center;gap:22px;padding:0 max(40px,calc((100vw - 84rem)/2 + 40px));background:var(--nuit);height:90px}
.neon-sep i{flex:1;height:1px;background:linear-gradient(90deg,transparent,#3fd7ff99)}
.neon-sep i:last-child{background:linear-gradient(90deg,#d6aa5299,transparent)}
.neon-sep span{font-family:var(--kanji);color:var(--rose);font-size:18px;text-shadow:0 0 14px var(--rose)}
/* grand YORU 夜 : le 夜 se remplit en rose */
.geant>div span{-webkit-text-stroke:1px #d6aa5288}
.geant>div span{background:linear-gradient(0deg,#d6aa52 calc((var(--p,0) - .12) * 320%),transparent calc((var(--p,0) - .12) * 320% + 1%));-webkit-background-clip:text;background-clip:text;color:transparent}
@media (max-width:900px){.neon-sep{height:60px;padding:0 20px}}
@media (prefers-reduced-motion:reduce){.badge span{animation:none}}

/* carte : carte de luxe centrée, verre bleu nuit sur le marbre blanc */
.menu-t .wrap{display:flex;justify-content:center}
.mt-panneau{position:relative;width:100%;max-width:1040px;text-align:center;color:#fff;background:linear-gradient(160deg,#0e1117f2,#040506e6);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:4px;padding:76px 80px 70px;box-shadow:0 50px 120px #0e111759,0 0 0 1px #3fd7ff59,inset 0 0 0 9px #0e1117,inset 0 0 0 10px #3fd7ff38,inset 0 0 80px #3fd7ff12}
.mt-panneau .coin{position:absolute;width:34px;height:34px;border:1px solid var(--elec);box-shadow:0 0 10px #3fd7ff88}
.mt-panneau .c1{left:20px;top:20px;border-right:0;border-bottom:0}.mt-panneau .c2{right:20px;top:20px;border-left:0;border-bottom:0}
.mt-panneau .c3{left:20px;bottom:20px;border-right:0;border-top:0}.mt-panneau .c4{right:20px;bottom:20px;border-left:0;border-top:0}
.mt-panneau .mt-tete{margin-bottom:46px}
.mt-panneau .lbl{color:#cfe0f0!important;margin-bottom:10px}.mt-panneau .lbl b{color:var(--elec)!important}
.mt-kanji{display:block;font-family:var(--kanji);font-size:15px;letter-spacing:.6em;color:var(--elec);text-shadow:0 0 12px #3fd7ff;margin:4px 0 14px}
.mt-panneau h2{color:#fff!important}.mt-panneau h2 em{color:var(--glacier)!important}
.mt-panneau .mt-tete p{margin:14px auto 0;color:#cfdced;font-size:18px}
.mt-panneau .mt-liste{display:grid;grid-template-columns:1fr 1fr;column-gap:56px;text-align:left;border:0!important;margin-bottom:48px}
.mt-panneau .mt-liste a{grid-template-columns:58px auto 1fr auto;gap:18px;padding:18px 0;border-bottom:1px solid #ffffff1f!important}
.mt-panneau .mt-liste a:hover{background:#3fd7ff0d;padding-left:10px}
.mt-panneau .mt-liste img{width:58px;height:58px;border-radius:50%;box-shadow:0 0 0 1px #3fd7ff55}
.mt-panneau .mt-liste span{color:#fff!important;font-size:27px!important;font-weight:500;line-height:1.15}
.mt-panneau .mt-liste .pts{align-self:center;transform:translateY(7px);border-bottom:1px dotted #ffffff40;height:0}
.mt-panneau .mt-liste small{color:var(--elec)!important;font-size:12px;font-weight:700;letter-spacing:.18em}
.mt-panneau .mt-liste a::after{background:var(--elec)!important;box-shadow:0 0 12px var(--elec)!important}
.mt-panneau .mt-liste a:hover span{color:var(--glacier)!important}
.clair .fond-voile--clair{background:radial-gradient(ellipse 60% 70% at 50% 50%,#ffffff00,#ffffff66)}
@media (max-width:900px){.mt-panneau{padding:52px 24px 46px;box-shadow:0 30px 70px #0e111759,0 0 0 1px #3fd7ff59,inset 0 0 0 7px #0e1117,inset 0 0 0 8px #3fd7ff38}.mt-panneau .coin{width:22px;height:22px}.mt-panneau .c1,.mt-panneau .c3{left:12px}.mt-panneau .c2,.mt-panneau .c4{right:12px}.mt-panneau .c1,.mt-panneau .c2{top:12px}.mt-panneau .c3,.mt-panneau .c4{bottom:12px}
  .mt-panneau .mt-liste{grid-template-columns:1fr}.mt-panneau .mt-liste a{grid-template-columns:48px 1fr auto;gap:14px}.mt-panneau .mt-liste .pts{display:none}.mt-panneau .mt-liste small{display:block;font-size:10px;letter-spacing:.14em}.mt-panneau .mt-liste img{width:48px;height:48px}.mt-panneau .mt-liste span{font-size:22px!important}}

/* ---------- typographie ---------- */
main p{font-size:19px;line-height:1.75;color:#dbe6f2;max-width:52ch}
main h2{font-size:clamp(46px,5vw,76px);line-height:1.04;letter-spacing:.005em}
main h2 em{font-size:1.1em;line-height:.95;letter-spacing:0}
.lbl{font-size:13px;letter-spacing:.3em;color:#cfe0f0}
.h-centre p{font-size:18px;letter-spacing:.08em;color:#eef5fb;text-shadow:0 2px 20px #040506}
.h-centre p em{display:block;margin-top:6px;font-size:28px;letter-spacing:.01em;color:#fff}
.h-centre .lbl{font-size:13px}
.st{text-shadow:0 4px 40px #040506cc}
.exp-texte p{font-size:19px}.exp-texte p em{font-size:1.15em}
.chiffres dt{font-size:46px}.chiffres dd{font-size:13px;letter-spacing:.22em;color:#cfe0f0}
.cu-rang p{font-size:17px;line-height:1.65;color:#d3dfeb}
.cu-rang h3{font-size:38px;line-height:1.05}
.cu-rang .lbl{font-size:12px;margin-bottom:12px}
.mt-liste span{font-size:32px}.mt-liste small{font-size:13px;letter-spacing:.2em}
.clair .mt-liste span{color:var(--abysse);font-weight:500}.clair .mt-liste small{color:#3c4c63}.clair .lbl{color:#3c4c63}
.clair .fond-voile--clair{background:linear-gradient(#ffffffd9,#ffffffa6 50%,#ffffffd9)}
.bar-liste span{font-size:30px}.bar-liste b{font-size:18px}
.bar-t p,.resa-t p{text-shadow:0 2px 18px #040506}
.tags span{font-size:12px;padding:10px 18px}
.resa-info{font-size:16px!important;max-width:none!important;color:#dbe6f2!important}
.resa-form label{font-size:12px}
@media (max-width:900px){.st{font-size:13.5vw}.h-centre p{font-size:15px;letter-spacing:.04em}main p{font-size:17px}main h2{font-size:42px}.h-centre p em{font-size:23px}.mt-liste span{font-size:24px}.cu-rang h3{font-size:31px}.bar-liste span{font-size:25px}.chiffres dt{font-size:34px}.chiffres dd{font-size:11px}}

/* ---------- fonds stylés ---------- */
.fond{position:relative;overflow:hidden;isolation:isolate}
.fond>*{position:relative;z-index:2}
.fond>.fond-led{position:absolute;inset:0;width:100%;height:100%;z-index:0;background:var(--nuit)}
.fond>.fond-voile{position:absolute;inset:0;z-index:1;background:linear-gradient(#040506d9,#04050680 50%,#040506d9)}
.fond>.fond-voile--st{background:radial-gradient(ellipse 70% 70% at 30% 45%,#040506e0,#04050666 75%),linear-gradient(#040506,#04050600 20%)}
.fond>.kanji-geant{position:absolute;right:-6vw;top:40%;transform:translateY(-50%);z-index:1;font-family:var(--kanji);font-size:52vw;line-height:1;color:transparent;-webkit-text-stroke:1px #3fd7ff38;pointer-events:none;filter:drop-shadow(0 0 30px #3fd7ff22)}
.fond>.exp-fond{position:absolute;inset:-12%;z-index:0}.exp-fond img{width:100%;height:100%;object-fit:cover;filter:blur(30px) brightness(.32) saturate(1.4)}
.fond>.exp-halo{position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 78% 42%,#3fd7ff2e,transparent 42%),radial-gradient(circle at 10% 90%,#0b3a8c66,transparent 50%),linear-gradient(#040506,#04050600 16%,#04050600 84%,#040506)}
.cuisine{background:var(--nuit)}
.fond>.aurore{position:absolute;inset:0;z-index:0;overflow:hidden}
.aurore i{position:absolute;width:62vw;height:62vw;border-radius:50%;filter:blur(100px);animation:derive 24s ease-in-out infinite alternate}
.aurore i:nth-child(1){background:#0b3a8c;left:-14vw;top:-18vw;opacity:.6}
.aurore i:nth-child(2){background:#2a9bd8;right:-18vw;top:18%;opacity:.3;animation-duration:30s}
.aurore i:nth-child(3){background:#3fd7ff;left:28%;bottom:-36vw;opacity:.18;animation-duration:19s}
@keyframes derive{to{transform:translate(9vw,7vw) scale(1.18)}}
.fond>.kanji-contour{position:absolute;left:-3vw;bottom:-7vw;z-index:1;font-family:var(--kanji);font-size:30vw;line-height:1;color:transparent;-webkit-text-stroke:1px #ffffff1f;pointer-events:none}
.gal{background:var(--nuit)}
/* la carte sur marbre blanc */
.menu-t.clair{background:#fff;color:var(--abysse)}
.fond>.fond-voile--clair{background:linear-gradient(#ffffffc4,#ffffff70 50%,#ffffffc4)}
.clair .fond-led{background:#fff}
.clair h2{color:var(--abysse)}.clair h2 em{color:var(--cobalt)}
.clair .lbl{color:var(--gris)}.clair .lbl b{color:var(--cobalt)}
.clair .mt-liste{border-top-color:#0e111726}.clair .mt-liste a{border-bottom-color:#0e111726}
.clair .mt-liste a:hover{background:#0e11170a}.clair .mt-liste a:hover span{color:var(--cobalt)}
.clair .mt-liste small{color:var(--gris)}.clair .mt-liste i{color:var(--cobalt)}
.clair .mt-liste a::after{background:var(--cobalt);box-shadow:none}
.clair .btn--fil{color:var(--abysse);border-color:var(--abysse);background:#ffffff80}.clair .btn--fil:hover{background:var(--abysse);color:#fff}
@media (max-width:900px){.fond>.kanji-geant{font-size:90vw;top:30%}.fond>.kanji-contour{font-size:56vw}}
@media (prefers-reduced-motion:reduce){.aurore i{animation:none}}

/* ---------- couche d'effets ---------- */
.fx{opacity:0;transform:translateY(42px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform 1.1s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.fx.vu{opacity:1;transform:none}
.fxc{clip-path:inset(100% 0 0 0);transition:clip-path 1.3s cubic-bezier(.65,0,.25,1) var(--d,0ms)}
.fxc.vu{clip-path:inset(0)}
.fxc img{transform:scale(1.25);transition:transform 1.8s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}.fxc.vu img{transform:scale(1)}
.cu-rang .fx img{transform:scale(1.18);transition:transform 1.6s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}.cu-rang .fx.vu img{transform:scale(1)}
.cu-rang article:hover .cu-k{color:var(--elec);text-shadow:0 0 22px #3fd7ff}
/* hero : photo qui respire, faisceaux, néon qui s'allume lettre par lettre, recul au défilement */
.h-yoru .vues img.on{animation:respire 9s ease-out both}
@keyframes respire{from{transform:scale(1.12)}to{transform:scale(1)}}
.h-centre{transform:translateY(calc(max(0, var(--p,.5) - .5) * -300px));opacity:calc(1 - max(0, var(--p,.5) - .5) * 3)}
.h-mot span{animation:allume-l 2.2s steps(1) both}
.h-mot span:nth-child(1){animation-delay:.3s}.h-mot span:nth-child(2){animation-delay:.55s}.h-mot span:nth-child(3){animation-delay:.8s}.h-mot span:nth-child(4){animation-delay:1.05s}
@keyframes allume-l{0%{opacity:0;text-shadow:none}10%{opacity:1;text-shadow:0 0 30px #3fd7ff}14%{opacity:.2}20%{opacity:1}24%{opacity:.4}30%,100%{opacity:1;text-shadow:0 0 40px #3fd7ff66,0 0 90px #3fd7ff33}}
/* YORU du hero en néon jaune pâle qui s'allume lettre par lettre (21/10) */
.h-mot{color:#fff6cf;text-shadow:0 0 6px #ffe98a,0 0 18px #ffdd55cc,0 0 42px #ffd23f88,0 0 90px #ffc8264d}
.h-mot span{animation-name:allume-or}
@keyframes allume-or{0%{opacity:0;text-shadow:none}10%{opacity:1;text-shadow:0 0 8px #fff0a0,0 0 30px #ffdd55}14%{opacity:.2}20%{opacity:1}24%{opacity:.4}30%,100%{opacity:1;text-shadow:0 0 6px #ffe98a,0 0 18px #ffdd55cc,0 0 42px #ffd23f88,0 0 90px #ffc8264d}}
.h-led{width:min(520px,60vw);height:2px;margin:18px auto 0;background:linear-gradient(90deg,transparent,#3fd7ff,transparent);box-shadow:0 0 16px #3fd7ff;transform:scaleX(0);animation:led-l 1.6s 1.3s cubic-bezier(.65,0,.25,1) forwards}
@keyframes led-l{to{transform:scaleX(1)}}
.faisceaux{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.faisceaux i{position:absolute;top:-20%;width:16vw;height:140%;background:linear-gradient(90deg,transparent,#3fd7ff14,transparent);transform-origin:50% 0;animation:balaie 11s ease-in-out infinite alternate}
.faisceaux i:nth-child(1){left:12%;transform:rotate(18deg)}.faisceaux i:nth-child(2){left:44%;animation-duration:14s;animation-delay:-4s}.faisceaux i:nth-child(3){left:74%;transform:rotate(-16deg);animation-duration:9s}
@keyframes balaie{0%{transform:rotate(-18deg);opacity:.4}100%{transform:rotate(18deg);opacity:1}}
.badge span{animation:pulse 2.6s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 10px #3fd7ff22,0 0 50px #3fd7ff}}
/* phrase : les mots s'allument au défilement, le néon grésille */
.st .w{opacity:0;transform:translateY(.35em);transition:opacity .7s,transform .9s cubic-bezier(.2,.7,.2,1);display:inline-block}
.st .w.on{opacity:1;transform:none}
.st .neon{opacity:0;text-shadow:none}
.st .neon.on{opacity:1;animation:gresille 1.6s steps(1) both;text-shadow:0 0 18px #3fd7ff,0 0 60px #3fd7ffaa}
@keyframes gresille{0%{opacity:0}8%{opacity:1}12%{opacity:.25}18%{opacity:1}22%{opacity:.4}28%,100%{opacity:1}}
.statement .defile{margin-top:120px}
/* collage : profondeur (chaque photo à sa vitesse) */
.collage figure{transform:translateY(calc((var(--p,.5) - .5) * var(--v,0px)))}
/* cocktails : chaque ligne s'allume */
.bar-liste li b{transition:text-shadow .6s,color .6s;color:#b9cde3}.bar-liste li.on b{color:var(--elec);text-shadow:0 0 14px #3fd7ff}
/* bar et réservation : mur LED animé derrière */
.bar-t,.resa-t{position:relative;overflow:hidden}
.bar-t canvas,.resa-t canvas{position:absolute;inset:0;width:100%;height:100%;background:var(--nuit)}
.bar-voile{position:absolute;inset:0;background:linear-gradient(90deg,#040506,#040506cc 45%,#04050666)}
.bar-t>.wrap,.resa-t>.wrap{position:relative;z-index:2}
/* carte : la ligne s'éclaire au survol */
.mt-liste a{position:relative;overflow:hidden}
.mt-liste a::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--elec);box-shadow:0 0 12px var(--elec);transform:scaleX(0);transform-origin:0 50%;transition:transform .7s cubic-bezier(.65,0,.25,1)}
.mt-liste a:hover::after{transform:scaleX(1)}
.mt-liste a:hover img{transform:scale(1.15)}.mt-liste img{transition:transform .6s}
.mt-liste a:hover span{color:var(--glacier)}
@media (prefers-reduced-motion:reduce){.fx,.fxc,.st .w{opacity:1!important;transform:none!important;clip-path:none!important}.bande-piste,.faisceaux i,.h-mot span,.h-led{animation:none!important}.h-led{transform:none}}
html.fige .fx,html.fige .fxc{opacity:1;transform:none;clip-path:none}html.fige .st .w{opacity:1;transform:none}

/* rangée Cuisine : ne capte plus le défilement vertical (pavé tactile en diagonale) */
@media (min-width:901px){.cu-rang{overflow-x:hidden!important;scroll-snap-type:none!important}}
@media (max-width:900px){.cu-rang,.formules{scroll-snap-type:x proximity!important;overscroll-behavior-x:contain}}

/* ---------- carte : plus de rose ---------- */
.mt-panneau{box-shadow:0 50px 120px #0e111759,0 0 0 1px #d6aa5259,inset 0 0 0 9px #0e1117,inset 0 0 0 10px #3fd7ff38,inset 0 0 90px #d6aa5214!important;
  background:radial-gradient(ellipse 70% 40% at 50% 100%,#d6aa521f,transparent 70%),radial-gradient(ellipse 60% 40% at 50% 0%,#3fd7ff14,transparent 70%),linear-gradient(160deg,#0e1117f2,#040506e6)!important}
.mt-panneau h2 em{color:var(--rose)!important;text-shadow:0 0 18px #d6aa52aa,0 0 50px #d6aa5255}
.mt-panneau .mt-liste small{color:var(--rose)!important;text-shadow:0 0 10px #d6aa5266}
.mt-panneau .mt-liste .pts{border-bottom-color:#d6aa5255!important}
.mt-panneau .mt-liste img{box-shadow:0 0 0 1px #d6aa5266,0 0 14px #d6aa5233!important;transition:box-shadow .4s,transform .6s}
.mt-panneau .mt-liste a:hover img{box-shadow:0 0 0 2px var(--rose),0 0 22px #d6aa52aa!important}
.mt-panneau .mt-liste a::after{background:linear-gradient(90deg,#3fd7ff,#d6aa52)!important;box-shadow:0 0 12px #d6aa52!important}
.mt-panneau .mt-liste a:hover span{color:#f3e2b5!important}
.mt-panneau .mt-liste a:hover{background:#d6aa520d!important}
.mt-panneau .btn--elec{background:linear-gradient(90deg,#3fd7ff,#d6aa52)!important;border-color:transparent!important;color:#fff!important;text-shadow:0 1px 8px #0e111788;box-shadow:0 0 0 6px #d6aa5226,0 0 40px #d6aa5266!important}
/* YORU CLUB juste au-dessus du pied de page */
.descente{margin-bottom:0}
/* rangée Cuisine : contours LED qui tournent en permanence ; défilement piloté par la page sur ordinateur */
.cu-rang .trace::before{opacity:1;animation:tour 3.2s linear infinite}
.cu-rang .trace:nth-child(2n)::before{animation-delay:-1.6s}
@media (min-width:901px){.cu-rang{scroll-behavior:auto!important}}
/* mots-clés (bar, privatiser) : simple ligne de texte, pas des boutons */
.tags{display:block!important;margin:26px 0 0!important;padding:0!important;font-size:17px!important;line-height:1.7;color:#dbe6f2}
.tags span{white-space:nowrap;display:inline!important;border:0!important;border-radius:0!important;padding:0!important;background:none!important;box-shadow:none!important;
  font-family:var(--italique);font-style:italic;font-size:21px!important;letter-spacing:0!important;text-transform:none!important;color:#fff}
.tags span:not(.tags-lbl)+span::before{content:"·";margin:0 .5em;color:var(--rose);font-style:normal}
.tags .tags-lbl{font-family:var(--texte);font-style:normal;font-size:13px!important;letter-spacing:.24em!important;text-transform:uppercase!important;color:#cfe0f0;margin-right:.6em}
.tags span:hover{border:0!important;box-shadow:none!important}
.cl-privat .tags span{color:#fff}.cl-privat .tags span+span::before{color:#fff}
/* réservation simplifiée : un seul grand bouton */
.resa-bouton{margin:40px 0 10px;display:flex;justify-content:center}
.btn--grand{min-height:68px;padding:0 54px;font-size:19px;letter-spacing:.03em}
.resa-info a{white-space:nowrap}

/* Parking Maine (21/10) : offre partenaire façon flyer — salle en fond, tout en or, « 3 h · 5 € » en grand, sans cadre */
.parking{position:relative;overflow:hidden;padding:150px 0;text-align:center;color:#fff;background:#050505}
.parking-fond,.parking-fond picture,.parking-fond img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.parking-voile{position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 55%,#050505d9,#050505a6 75%),linear-gradient(#050505f2,#05050573 30%,#05050580 70%,#050505f7)}
.parking-in{position:relative;z-index:2}
.parking .lbl{margin-bottom:18px}
.parking h2{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(56px,8vw,112px);line-height:1;letter-spacing:.04em;text-transform:uppercase;
  background:linear-gradient(115deg,#a9781f,#e6c47a 30%,#f6dc94 48%,#c9a24a 70%,#e3bd62);-webkit-background-clip:text;background-clip:text;color:transparent}
.parking-acc{margin:22px auto 0;max-width:44ch;text-wrap:balance;font-size:20px;letter-spacing:.14em;text-transform:uppercase;line-height:1.6;color:#f1ebdf}
.parking-offre{display:flex;justify-content:center;align-items:center;gap:44px;margin:52px auto 0}
.po-g{display:grid;justify-items:end;text-align:right;gap:4px}
.po-g span{font-size:18px;letter-spacing:.16em;text-transform:uppercase;color:#f1ebdf}
.po-g .po-des{color:#e6c47a;font-weight:600}
.po-g b{font-family:var(--display);font-weight:400;font-size:72px;line-height:1;color:#fff}
.po-prix{white-space:nowrap;letter-spacing:-.02em;font-family:var(--display);font-size:clamp(110px,13vw,170px);line-height:.9;background:linear-gradient(115deg,#a9781f,#e6c47a 35%,#f6dc94 50%,#c9a24a 75%);-webkit-background-clip:text;background-clip:text;color:transparent}
.parking-cond{margin:48px auto 0;max-width:52ch;font-size:17px;line-height:1.7;color:#cfc6b3}
.parking-cond b{font-weight:600;color:#e6c47a}
@media (max-width:900px){
  .parking{padding:80px 0}
  .parking-acc{font-size:16px;letter-spacing:.08em}
  .parking-offre{gap:22px;margin-top:36px}
  .po-g span{font-size:14px;letter-spacing:.08em}
  .po-g b{font-size:50px}
  .po-prix{font-size:96px}
  .parking-cond{font-size:16px;margin-top:32px}
}

/* Expérience : collage épuré (21/10) — une grande photo, trois petites dessous ; coins arrondis, sans cadre ni décalage */
.collage.collage--epure{height:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-self:center}
.collage--epure figure{position:relative;inset:auto;width:auto;height:auto;margin:0;overflow:hidden;border-radius:18px;outline:0!important;box-shadow:0 30px 60px #000a;transform:none!important}
.collage--epure figure::after{display:none!important}
.collage--epure .cg-grande{grid-column:1/-1;aspect-ratio:16/10}
.collage--epure .cg-petite{aspect-ratio:1}
.collage--epure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.collage--epure figure:hover img{transform:scale(1.04)}

/* Parking Maine plus compact (21/10, « c'est trop gros ») */
.parking{padding:90px 0}
.parking h2{font-size:clamp(40px,4.6vw,64px)}
.parking-acc{margin-top:14px;font-size:15px;letter-spacing:.12em}
.parking-offre{gap:26px;margin-top:32px}
.po-g span{font-size:14px;letter-spacing:.12em}
.po-g b{font-size:44px}
.po-prix{font-size:clamp(70px,7vw,96px)}
.parking-cond{margin-top:28px;font-size:15px;line-height:1.6}
@media (max-width:900px){
  .parking{padding:56px 0}
  .parking h2{font-size:38px}
  .parking-acc{font-size:15px;letter-spacing:.06em}
  .parking-offre{gap:16px;margin-top:24px}
  .po-g span{font-size:15px;letter-spacing:.04em}
  .po-g b{font-size:36px}
  .po-prix{font-size:64px}
  .parking-cond{font-size:15px;margin-top:20px}
}

/* Expérience (21/10, d'après la maquette reçue) : grande photo lumineuse au centre, titre sur trois lignes */
@media (min-width:901px){
  .exp{min-height:max(900px,100vh);display:flex;flex-direction:column;justify-content:center;padding:140px 0 110px}
  .exp>.wrap{width:100%}
  /* infos chiffrées juste sous le texte, en italique, qui défilent jusqu'à leur valeur à l'arrivée */
  .exp-infos{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;column-gap:clamp(30px,3.4vw,58px);margin-top:54px;width:max-content;max-width:calc(100vw - 120px)}
  .exp-infos div{display:grid;gap:12px;align-content:start}
  .exp-infos b{font-family:var(--italique);font-style:italic;font-weight:500;font-size:clamp(50px,4.6vw,74px);line-height:.9;letter-spacing:-.01em;color:transparent;background:linear-gradient(170deg,#fff3d1,#e7c873 45%,#b8892f);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 4px 24px #000c)}
  .exp-infos span{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:#dfe7f0;text-shadow:0 2px 14px #000;max-width:14em;line-height:1.7}
  /* la salle, lumineuse, fondue dans la nuit sur ses bords */
  .fond>.exp-scene{position:absolute;top:0;bottom:0;left:30vw;right:0;margin:0;z-index:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 24%,#000 80%,transparent),linear-gradient(transparent,#000 10%,#000 78%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 24%,#000 80%,transparent),linear-gradient(transparent,#000 10%,#000 78%,transparent);mask-composite:intersect}
  .exp-scene img{width:100%;height:100%;object-fit:cover;object-position:50% 38%;filter:saturate(1.12) contrast(1.05);animation:exp-zoom 9s cubic-bezier(.2,.7,.2,1) both}
  .es-reflet{position:absolute;inset:0;background:linear-gradient(105deg,transparent 42%,#fff4 50%,#ffe9b82e 53%,transparent 61%) no-repeat;background-size:260% 100%;mix-blend-mode:soft-light;animation:es-reflet 8s cubic-bezier(.5,0,.3,1) infinite}
  /* lueurs ambrées sur les bords, comme des lanternes hors champ */
  .fond>.exp-lueurs{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#05070be6 0,#05070bb3 calc((100vw - 1344px) / 2 + 560px),transparent calc((100vw - 1344px) / 2 + 880px)),radial-gradient(28vw 40vh at 4% 70%,#c9822e40,transparent 70%),radial-gradient(22vw 50vh at 98% 55%,#d6913a3d,transparent 70%),radial-gradient(30vw 30vh at 50% 100%,#000c,transparent 70%)}
  .fond>.es-jp{position:absolute;right:2.6vw;top:50%;translate:0 -60%;z-index:2;writing-mode:vertical-rl;font-family:var(--kanji);font-size:17px;letter-spacing:.7em;color:#e7c873;text-shadow:0 0 18px #000}
  .fond>.exp-scroll{position:absolute;left:2.4vw;bottom:150px;z-index:2;writing-mode:vertical-rl;display:flex;align-items:center;gap:16px;font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:#ffffff99}
  .exp-scroll i{width:14px;height:14px;border-radius:50%;background:radial-gradient(#e7c873 0 2px,transparent 3px);box-shadow:inset 0 0 0 1px #ffffff66}
  /* texte : titre sur trois lignes, un paragraphe, lien rond */
  .exp-grille{display:block}
  .exp-texte{max-width:600px}
  .exp-texte h2{font-size:clamp(76px,7.2vw,118px);line-height:.96;max-width:6.4em;text-shadow:0 4px 40px #0009}
  .exp-texte p{font-size:clamp(19px,1.45vw,22px);line-height:1.75;max-width:26em;text-shadow:0 2px 18px #000}
  .exp-lien{display:inline-flex;align-items:center;gap:22px;margin-top:38px;font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:#e7c873}
  .exp-lien span{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-size:20px;letter-spacing:0;color:#fff;box-shadow:inset 0 0 0 1px #e7c873aa;transition:background .4s,color .4s}
  .exp-lien:hover span{background:#e7c873;color:#0a0a0a}
  .exp .chiffres{display:none}
}
@media (min-width:901px) and (max-width:1320px){
  .fond>.es-jp,.fond>.exp-scroll{display:none}
}
/* Parking : offre centrée sur un axe — « à partir de 18 h », puis « 3 h de parking pour seulement », puis le prix (21/10) */
.parking .parking-offre{flex-direction:column;gap:10px}
.parking .po-g{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:14px;row-gap:6px;text-align:center}
.parking .po-g .po-des{flex-basis:100%}
.parking .po-prix{margin-top:4px}
@keyframes exp-zoom{from{scale:1.14}to{scale:1}}
@keyframes es-reflet{0%{background-position:130% 0}55%,100%{background-position:-30% 0}}
@media (prefers-reduced-motion:reduce){.exp-scene img,.es-reflet{animation:none!important}}

/* Infos pratiques en bas de l'accueil (21/10) : quatre blocs teintés + le plan, repris de la page contact */
.infos-t{position:relative;padding:130px 0 140px;background:radial-gradient(ellipse 60% 70% at 70% 40%,#13171f,var(--nuit) 75%)}
.infos-t h2{margin:18px 0 50px}
.inf-grille{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;align-items:stretch}
.inf-blocs{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.inf-blocs .v-bloc{display:flex;flex-direction:column;gap:10px}
.inf-blocs .v-bloc h3{margin:0 0 6px}
.inf-gros{margin:0;font-family:var(--italique);font-style:italic;font-size:30px;line-height:1.15;color:#fff}
.inf-gros a,.inf-petit a{color:inherit}
.inf-gros a:hover,.inf-petit a:hover{color:#e7c873}
.inf-petit{margin:0;font-size:16px;color:#cfd8e3}
.inf-blocs .c-heures{margin-top:4px;font-size:16px}
.inf-plan{min-height:420px;border-radius:22px;overflow:hidden;box-shadow:0 40px 90px #000c}
.inf-plan iframe{display:block;width:100%;height:100%;min-height:420px;border:0;filter:grayscale(.35) invert(.9) hue-rotate(180deg) contrast(.9)}
.inf-lien{display:inline-flex;align-items:center;gap:20px;margin-top:44px;font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:#e7c873}
.inf-lien span{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:19px;letter-spacing:0;color:#fff;box-shadow:inset 0 0 0 1px #e7c873aa;transition:background .4s,color .4s}
.inf-lien:hover span{background:#e7c873;color:#0a0a0a}
@media (max-width:900px){
  .infos-t{padding:70px 0 80px}
  .infos-t h2{margin:14px 0 28px}
  .inf-grille,.inf-blocs{grid-template-columns:1fr;gap:12px}
  .inf-gros{font-size:24px}
  .inf-lien{margin-top:28px}
}

/* effets de fond sur tout le site (21/10) — calque posé dans chaque section, sous le contenu (assets/js/fond.js) */
.bgfx-hote{position:relative;isolation:isolate}
.bgfx{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.bgfx--sur{mix-blend-mode:screen}
.bgfx canvas{position:absolute;left:0;top:0;width:100%;height:100%}
.bgfx i{position:absolute;width:min(70vw,900px);aspect-ratio:1;border-radius:50%;opacity:.9;will-change:transform}
.bgfx .o1{left:-18%;top:-25%;background:radial-gradient(circle,#3fd7ff3d,#2a9bd81a 40%,transparent 68%);animation:bgfx-a calc(26s + var(--j) * 6s) ease-in-out infinite alternate}
.bgfx .o2{right:-20%;bottom:-30%;background:radial-gradient(circle,#c9a24a47,#c9a24a14 42%,transparent 68%);animation:bgfx-b calc(30s + var(--j) * 5s) ease-in-out infinite alternate}
@keyframes bgfx-a{to{transform:translate(28vw,18vh) scale(1.15)}}
@keyframes bgfx-b{to{transform:translate(-26vw,-16vh) scale(1.2)}}
@media (prefers-reduced-motion:reduce){.bgfx i{animation:none}}

/* Accueil, bloc carte sur ordinateur (22/10) : 6 grandes cartes photo en 3 colonnes alignées — photo qui zoome, numéro et kanji dorés, nom en italique, flèche */
@media (min-width:901px){
  .menu-t .mt-panneau{max-width:1180px;padding:76px 64px 64px}
  .menu-t .mt-panneau .mt-liste{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-bottom:52px}
  .menu-t .mt-panneau .mt-liste a{position:relative;display:block;aspect-ratio:4/5;padding:0!important;border:0!important;border-radius:22px;overflow:hidden;background:#05070b;box-shadow:0 30px 70px #000b;transition:transform .7s cubic-bezier(.2,.7,.2,1),box-shadow .7s}
  .menu-t .mt-panneau .mt-liste a:hover{padding:0!important;background:#05070b!important;transform:translateY(-8px);box-shadow:0 44px 90px #000d,0 0 50px #d6aa5226}
  .menu-t .mt-panneau .mt-liste a::after{content:"";display:block;position:absolute;inset:0;height:auto;width:auto;transform:none!important;z-index:1;background:linear-gradient(#05070b8c,#05070b00 24%,#05070b00 46%,#05070bd9 78%,#05070bfa)!important;box-shadow:none!important}
  .menu-t .mt-panneau .mt-liste img{position:absolute;inset:0;width:100%!important;height:100%!important;border-radius:0!important;object-fit:cover;box-shadow:none!important;transform:scale(1.04);transition:transform 1.4s cubic-bezier(.2,.7,.2,1)!important}
  .menu-t .mt-panneau .mt-liste a:hover img{transform:scale(1.12)!important;box-shadow:none!important}
  .mt-num{position:absolute;left:24px;top:22px;z-index:2;font-family:var(--display);font-weight:400;font-size:14px;letter-spacing:.24em;color:#e7c873;text-shadow:0 2px 10px #000}
  .mt-jp{position:absolute;right:20px;top:18px;z-index:2;writing-mode:vertical-rl;font-family:var(--kanji);font-style:normal;font-size:20px!important;letter-spacing:.3em;color:#f3e2b5!important;text-shadow:0 2px 14px #000}
  .menu-t .mt-panneau .mt-liste span{position:absolute;left:24px;right:70px;bottom:24px;z-index:2;text-align:left;font-size:31px!important;line-height:1.05;color:#fff!important;text-shadow:0 2px 18px #000}
  .menu-t .mt-panneau .mt-liste a:hover span{color:#f3e2b5!important}
  .mt-fl{position:absolute;right:20px;bottom:22px;z-index:2;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:17px;color:#fff;box-shadow:inset 0 0 0 1px #e7c873aa;transition:background .4s,color .4s}
  .menu-t .mt-panneau .mt-liste a:hover .mt-fl{background:#e7c873;color:#0a0a0a}
}
