@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url('lib/fonts/anton-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url('lib/fonts/anton-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 900;font-display:swap;src:url('lib/fonts/archivo-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 900;font-display:swap;src:url('lib/fonts/archivo-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* Le Bonheur d'Asie — styles.css v2 · 契约：DESIGN.md（海报盛宴 L'Affiche Gourmande） */
:root{--banner-h:0px;--red-deep:#C1271F;--ink:#141414;--paper:#F4F1E8;--red:#D42B24;--yellow:#FFD91C;--soft:#6B665C;
  --dsoft:#CFC9BC;--dmute:#8d887d;--dline:#35322c}
*{margin:0;padding:0;box-sizing:border-box}
html{overflow-x:clip}
body{background:var(--ink);color:var(--paper);font-family:'Archivo',system-ui,'PingFang SC',sans-serif;line-height:1.55;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
::selection{background:var(--yellow);color:var(--ink)}
.anton{font-family:'Anton',Impact,'PingFang SC',sans-serif;font-weight:400}

.skip{position:fixed;left:-999px;top:10px;z-index:200;background:var(--yellow);color:var(--ink);font-weight:700;padding:12px 20px}
.skip:focus{left:10px}

/* ---------- 按钮 ---------- */
.btn{display:inline-block;background:var(--red);color:#fff;font-weight:700;text-transform:uppercase;font-size:14px;
  letter-spacing:.05em;padding:15px 28px;border:none;cursor:pointer;font-family:inherit;text-align:center}
.btn{box-shadow:0 0 0 rgba(0,0,0,0);transition:background .2s,color .2s,transform .12s,box-shadow .12s}
.btn:hover{background:var(--yellow);color:var(--ink);transform:translate(-2px,-2px);box-shadow:4px 4px 0 rgba(20,20,20,.85)}
.btn:active{transform:translate(0,0);box-shadow:0 0 0 rgba(0,0,0,0)}
.btn.ghost{background:transparent;border:2px solid rgba(244,241,232,.4);color:var(--paper)}
.btn.ghost:hover{border-color:var(--yellow);color:var(--yellow);background:transparent}
.btn.ghost.onpaper{border-color:var(--ink);color:var(--ink)}
.btn.ghost.onpaper:hover{background:var(--yellow);border-color:var(--ink);color:var(--ink)}
.btn.dark{background:var(--ink);color:var(--paper)}
.btn.dark:hover{background:var(--red);color:#fff}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;
  padding:14px 24px;color:#fff;transition:background .3s,color .3s}
.nav.solid{background:var(--ink);border-bottom:2px solid var(--yellow)}
.nav .brand{font-family:'Anton',sans-serif;font-size:19px;letter-spacing:.04em;text-transform:uppercase}
.nav ul{display:flex;gap:26px;list-style:none;font-weight:700;font-size:13.5px;text-transform:uppercase;letter-spacing:.06em}
.nav ul a{opacity:.85}
.nav ul a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}
.nav-right{display:flex;align-items:center;gap:18px}
.langsw{display:flex;gap:0;border:1.5px solid #fff}
.langsw button{border:none;background:none;font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.06em;
  padding:6px 11px;cursor:pointer;color:#fff}
.langsw button.on{background:var(--paper);color:var(--ink)}
.burger{display:none;width:44px;height:44px;border:2px solid #fff;background:none;cursor:pointer;position:relative;z-index:90}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:#fff;transition:.3s}
.burger span:nth-child(1){top:14px}.burger span:nth-child(2){top:20px}.burger span:nth-child(3){top:26px}
.burger.open span:nth-child(1){top:20px;transform:rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){top:20px;transform:rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:80;background:var(--paper);color:var(--ink);display:flex;flex-direction:column;
  justify-content:center;gap:0;padding:60px 28px;opacity:0;pointer-events:none;transition:opacity .3s}
.mnav.open{opacity:1;pointer-events:auto}
.mnav a.link{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:38px;padding:16px 0;border-bottom:3px solid var(--ink);
  opacity:0;transform:translateY(16px);transition:opacity .4s,transform .4s}
.mnav.open a.link{opacity:1;transform:none}
.mnav.open a.link:nth-child(2){transition-delay:.05s}.mnav.open a.link:nth-child(3){transition-delay:.1s}
.mnav.open a.link:nth-child(4){transition-delay:.15s}.mnav.open a.link:nth-child(5){transition-delay:.2s}
.mnav .tel{margin-top:28px;font-weight:700;font-size:17px;color:var(--red-deep)}

/* ---------- hero 视频 ---------- */
.hero{position:relative;height:100vh;overflow:hidden;background:var(--ink)}
.hero video,.hero .fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,20,20,.88) 0%,rgba(20,20,20,.22) 45%,rgba(20,20,20,.62) 88%,rgba(20,20,20,.78) 100%);pointer-events:none}
.hero .inner{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:flex-end;
  max-width:1280px;margin:0 auto;padding:0 24px 46px;pointer-events:none}
.hero .inner a,.hero .inner button,.hero .inner .disc{pointer-events:auto}
.hero h1{font-family:'Anton',sans-serif;text-transform:uppercase;line-height:.88;letter-spacing:.005em;
  font-size:clamp(64px,13.5vw,210px)}
.hero h1 .ln{display:block;overflow:hidden;padding-top:.14em;margin-top:-.14em}
.hero h1 .ln span{display:inline-block;will-change:transform}
.hero h1 .l2 span{color:var(--red);-webkit-text-stroke:2px var(--red);text-shadow:0 3px 24px rgba(20,20,20,.55)}
.hero h1 .l1 span{text-shadow:0 3px 24px rgba(20,20,20,.45)}
.hero .kick{font-weight:700;letter-spacing:.3em;text-transform:uppercase;font-size:13px;color:var(--yellow);margin-bottom:18px;text-shadow:0 2px 14px rgba(20,20,20,.6)}
.hero .row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-top:26px;flex-wrap:wrap}
.hero .row p{max-width:46ch;font-size:16.5px;color:var(--dsoft);font-weight:400}
.hero .row p b{color:var(--paper)}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap}
.hero .disc{position:absolute;right:4vw;top:16vh;width:172px;height:172px;z-index:4;will-change:transform}
.hero .disc svg{width:100%;height:100%;overflow:visible}
.hero .disc .center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.hero .disc .center b{font-family:'Anton',sans-serif;font-size:40px;color:var(--yellow)}
.hero .disc .center small{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--paper)}
.vidtoggle{position:absolute;right:24px;bottom:24px;z-index:5;width:44px;height:44px;border:2px solid rgba(244,241,232,.5);
  background:rgba(20,20,20,.55);color:var(--paper);font-size:16px;cursor:pointer}
.vidtoggle:hover{border-color:var(--yellow);color:var(--yellow)}
.openchip{display:inline-block;margin-left:12px;background:var(--yellow);color:var(--ink);font-size:11.5px;font-weight:700;
  letter-spacing:.08em;padding:3px 10px;vertical-align:1px}
.openchip.closed{background:transparent;border:1.5px solid var(--yellow);color:var(--yellow)}
.openchip[hidden]{display:none}
.scrolldown{position:absolute;left:24px;top:50%;z-index:4;writing-mode:vertical-rl;font-size:11px;letter-spacing:.4em;
  text-transform:uppercase;color:var(--dmute)}

/* ---------- marquee ---------- */
.marq{background:var(--yellow);color:var(--ink);overflow:hidden;padding:12px 0;border-top:3px solid var(--ink);position:relative;z-index:5}
.marq .track{display:flex;white-space:nowrap;width:max-content;font-family:'Anton',sans-serif;font-size:22px;
  text-transform:uppercase;letter-spacing:.04em;will-change:transform}
.marq span{padding:0 20px;border-right:3px solid var(--ink)}

/* ---------- 通用标题 ---------- */
.h2{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(40px,6vw,84px);line-height:.95}
.h2 .out{color:transparent;-webkit-text-stroke:1.5px var(--ink)}
.h2 .outp{color:transparent;-webkit-text-stroke:1.5px var(--paper)}
.tagy{background:var(--yellow);color:var(--ink);padding:1px 7px;font-weight:700}

/* ---------- stations ---------- */
.stations{background:var(--paper);color:var(--ink);padding:110px 0 90px;position:relative}
.stations .in{max-width:1280px;margin:0 auto;padding:0 24px;position:relative}
.stations .lead{font-weight:600;font-size:16px;margin-top:14px;max-width:52ch}
.st{display:grid;grid-template-columns:110px 1fr 1.1fr;gap:34px;align-items:center;border-top:3px solid var(--ink);
  padding:44px 0;position:relative}
.st:last-child{border-bottom:3px solid var(--ink)}
.st .no{font-family:'Anton',sans-serif;font-size:66px;color:var(--red);line-height:1}
.st h3{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(26px,3vw,42px);line-height:1;letter-spacing:.01em}
.st p{font-size:15.5px;margin-top:12px;max-width:44ch;color:#3d3a33}
.st .ph{height:300px;overflow:hidden;border:3px solid var(--ink);position:relative}
.st .ph img{width:100%;height:130%;object-fit:cover;will-change:transform}
.st .zh{position:absolute;right:24px;top:-30px;font-family:Georgia,'PingFang SC',serif;font-size:120px;line-height:1;
  color:transparent;-webkit-text-stroke:1.4px rgba(20,20,20,.34);pointer-events:none;user-select:none}

/* ---------- prix 影院 + 卡 ---------- */
.prixzoom{background:var(--ink);position:relative}
.prixzoom .stage{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;position:relative}
.prixzoom .giant{font-family:'Anton',sans-serif;color:var(--paper);font-size:clamp(120px,24vw,380px);line-height:1;will-change:transform;letter-spacing:-.01em}
.prixzoom .giant sup{font-size:.32em;color:var(--yellow)}
.prixzoom .sub{font-weight:700;text-transform:uppercase;letter-spacing:.26em;font-size:clamp(12px,1.4vw,17px);color:var(--yellow);margin-top:14px}
.prixzoom .hint{position:absolute;bottom:30px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:#8d887d}
.prix{background:var(--ink);padding:0 24px 110px}
.prix .in{max-width:1280px;margin:0 auto}
.prix .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.prix .card{border:3px solid var(--paper);padding:30px 28px;will-change:transform;transition:transform .15s,box-shadow .15s}
.prix .card:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--yellow)}
.prix .card.hot{background:var(--red);border-color:var(--red)}
.prix .card .lab{font-weight:700;text-transform:uppercase;font-size:13.5px;letter-spacing:.06em}
.prix .card .n{font-family:'Anton',sans-serif;font-size:78px;line-height:1.05;font-variant-numeric:tabular-nums}
.prix .card .n sup{font-size:.42em}
.prix .card p{font-size:14px;margin-top:8px;opacity:.8}
.prix .note{margin-top:24px;font-size:14.5px;font-weight:600;color:var(--dsoft)}
.prix .note b{background:var(--yellow);color:var(--ink);padding:1px 7px}

.prix .card.receive{animation:cardflash .8s ease-out 1}
@keyframes cardflash{0%{box-shadow:0 0 0 var(--yellow)}30%{box-shadow:8px 8px 0 var(--yellow)}100%{box-shadow:0 0 0 rgba(0,0,0,0)}}

/* ---------- carte 单点区（首页） ---------- */
.carte{background:var(--paper);color:var(--ink);padding:110px 24px;border-top:3px solid var(--ink)}
.carte .in{max-width:1280px;margin:0 auto}
.carte .note0{font-weight:600;font-size:16px;margin-top:14px;max-width:60ch}
.carte .cols{display:grid;grid-template-columns:1fr 1fr;gap:0 60px;margin-top:46px}
.carte .colh{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:22px;letter-spacing:.03em;
  border-bottom:3px solid var(--ink);padding-bottom:10px;margin-bottom:6px}
.carte .menu-group+.menu-group{margin-top:30px}
.carte .mi{display:flex;align-items:baseline;gap:10px;padding:12px 0;border-bottom:1px solid #D8D2C2;font-size:15.5px}
.carte .mi .nm{font-weight:600}
.carte .mi .dots{flex:1;border-bottom:2px dotted rgba(20,20,20,.45);transform:translateY(-4px)}
.carte .mi .pr{font-family:'Anton',sans-serif;font-size:19px;white-space:nowrap}
.carte .more{margin-top:40px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.carte .more span{font-size:14px;color:#3d3a33;font-weight:600}

/* ---------- 照片墙 ---------- */
.wall{background:var(--paper);padding:0 0 110px;color:var(--ink);overflow:hidden}
.wall .in{max-width:1280px;margin:0 auto;padding:0 24px}
.wall .h2{padding-top:110px}
.wall .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:50px}
.wall .col{display:grid;gap:18px;will-change:transform;align-content:start}
.wall .col:nth-child(2){margin-top:60px}
.wall figure,.wall button.gfig{border:3px solid var(--ink);overflow:hidden;position:relative;padding:0;background:none;cursor:zoom-in;display:block;width:100%}
.wall img{width:100%;height:300px;object-fit:cover;transition:transform .6s}
.wall .gfig:hover img{transform:scale(1.04)}
.wall figcaption,.wall .gcap{position:absolute;left:0;bottom:0;background:var(--paper);font-weight:700;font-size:12.5px;
  text-transform:uppercase;letter-spacing:.05em;padding:6px 12px;border-top:3px solid var(--ink);border-right:3px solid var(--ink);color:var(--ink)}

/* ---------- 灯箱 ---------- */
.lightbox{position:fixed;inset:0;z-index:95;background:rgba(20,20,20,.92);display:flex;align-items:center;justify-content:center;padding:40px;opacity:0;pointer-events:none;transition:opacity .3s}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox img{max-width:min(1100px,92vw);max-height:86vh;width:auto;height:auto;border:3px solid var(--paper)}
.lightbox .lb-close,.lightbox .lb-nav{position:absolute;width:46px;height:46px;border:2px solid var(--paper);
  background:var(--ink);color:var(--paper);font-size:20px;cursor:pointer;z-index:2}
.lightbox .lb-close{top:22px;right:26px}
.lightbox .lb-nav{top:50%;transform:translateY(-50%)}
.lightbox .lb-prev{left:22px}.lightbox .lb-next{right:22px}
.lb-count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:var(--paper);font-size:13px;
  letter-spacing:.2em;background:var(--ink);border:2px solid var(--paper);padding:6px 16px}

/* ---------- infos ---------- */
.infos{background:var(--ink);padding:110px 24px 90px}
.infos .in{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.2fr .8fr;gap:60px}
.infos .hrow{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--dline);font-size:15.5px;gap:12px}
.infos .hrow b{font-weight:700;text-transform:uppercase;font-size:14px;letter-spacing:.06em}
.infos .hrow span:last-child{color:var(--dmute)}
.infos .tel{display:inline-block;font-family:'Anton',sans-serif;font-size:clamp(40px,5vw,64px);margin-top:28px;color:var(--paper)}
.infos .tel:hover{color:var(--yellow)}
.infos .addr{color:var(--dmute);font-size:15px;margin-top:8px;max-width:46ch}
.infos .addr b{color:var(--paper)}
.infos .maplink{display:inline-block;margin-top:16px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--yellow);border-bottom:2px solid rgba(255,217,28,.4);padding-bottom:3px}
.infos .maplink:hover{border-color:var(--yellow)}
.mapbox{margin-top:30px;border:3px solid var(--paper);height:260px;position:relative;overflow:hidden}
.mapbox iframe{width:100%;height:100%;border:0;filter:grayscale(.25) contrast(1.05)}
.mapbox .map-consent{position:absolute;inset:0;background:rgba(20,20,20,.94);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:14px;text-align:center;padding:20px}
.mapbox .map-consent p{font-size:13.5px;color:var(--dmute);max-width:40ch}
.infos aside{border:3px solid var(--paper);padding:34px 30px;align-self:start}
.infos aside h3{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:28px;margin-bottom:8px}
.infos aside p{font-size:14.5px;color:var(--dmute);margin-bottom:26px}
.infos aside .btn{display:block;margin-bottom:12px;width:100%}
.infos aside .telline{text-align:center;font-size:14px;color:var(--dmute);margin-top:4px}
.infos aside .telline a{color:var(--yellow);font-weight:700}

/* ---------- footer ---------- */
footer{background:var(--ink);border-top:1px solid var(--dline)}
footer .cols{max-width:1280px;margin:0 auto;padding:56px 24px 40px;display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:44px}
footer .bline{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(28px,3.4vw,54px);line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--paper)}
footer .brandcol p{font-size:13.5px;margin-top:14px;max-width:34ch;line-height:1.8;color:var(--dmute)}
footer h4{font-family:'Anton',sans-serif;text-transform:uppercase;color:var(--paper);font-size:15px;margin-bottom:16px;letter-spacing:.04em}
footer ul{list-style:none;display:grid;gap:10px;font-size:13.5px;color:var(--dmute)}
footer a:hover{color:var(--yellow)}
footer .legal{border-top:1px solid var(--dline);padding:20px 24px;display:flex;justify-content:space-between;align-items:center;
  font-size:12.5px;max-width:1280px;margin:0 auto;flex-wrap:wrap;gap:10px;color:var(--dmute)}

/* ---------- 移动底栏 ---------- */
.mbar{display:none;position:fixed;left:12px;right:12px;bottom:12px;z-index:70;gap:8px;
  background:var(--ink);border:2px solid var(--yellow);padding:8px;transform:translateY(140%);transition:transform .45s}
.mbar.show{transform:none}
.mbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:700;
  text-transform:uppercase;letter-spacing:.03em;color:var(--paper);padding:11px 6px}
.mbar a.main{background:var(--red);color:#fff}
.mbar a:not(.main){border:1px solid var(--dline)}
.mbar .ic{width:15px;height:15px}

/* ---------- cookie 条 ---------- */
.cookie-bar{position:fixed;left:16px;bottom:16px;z-index:85;max-width:430px;background:var(--paper);color:var(--ink);
  border:3px solid var(--ink);padding:22px 24px;transform:translateY(calc(100% + 32px));opacity:0;visibility:hidden;pointer-events:none;transition:transform .5s,opacity .2s,visibility 0s linear .5s}
.cookie-bar.show{transform:none;opacity:1;visibility:visible;pointer-events:auto;transition:transform .5s,opacity .2s}
.cookie-bar p{font-size:13.5px;color:#3d3a33;margin-bottom:16px}
.cookie-bar p a{color:var(--red-deep);text-decoration:underline}
.cookie-bar .row2{display:flex;gap:10px}
.cookie-bar .btn{padding:11px 18px;font-size:13px;flex:1}

/* ---------- 公告 ---------- */
.notice-banner{position:fixed;top:0;left:0;right:0;z-index:75;background:var(--red);color:#fff;font-size:14px;font-weight:600;
  padding:10px 48px;display:none;align-items:center;justify-content:center;gap:14px;text-align:center}
.notice-banner.show{display:flex}
.notice-banner button{background:none;border:none;color:#fff;font-size:16px;cursor:pointer;position:absolute;right:16px;top:50%;transform:translateY(-50%)}
body.has-banner .nav{top:var(--banner-h)}
.notice-modal{position:fixed;inset:0;z-index:96;background:rgba(20,20,20,.6);display:none;align-items:center;justify-content:center;padding:24px}
.notice-modal.open{display:flex}
.notice-modal .card{background:var(--paper);color:var(--ink);border:3px solid var(--ink);max-width:520px;width:100%;padding:44px 40px;position:relative}
.notice-modal .card h3{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:26px;margin-bottom:14px}
.notice-modal .card p{font-size:15px;color:#3d3a33}
.notice-modal .card .nclose{position:absolute;top:14px;right:14px;width:38px;height:38px;border:2px solid var(--ink);background:none;font-size:16px;cursor:pointer;color:var(--ink)}

/* ---------- 功能弹窗 ---------- */
.fmodal{position:fixed;inset:0;z-index:92;background:rgba(20,20,20,.7);display:none;align-items:center;justify-content:center;padding:24px}
.fmodal.open{display:flex}
.fmodal .frame{background:var(--paper);color:var(--ink);border:3px solid var(--ink);overflow:hidden;width:min(560px,94vw);height:min(720px,88vh);display:flex;flex-direction:column}
.fmodal.wide .frame{width:min(860px,96vw);height:min(780px,90vh)}
.fmodal .fhead{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:3px solid var(--ink);background:var(--yellow)}
.fmodal .fhead .ft{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:18px;letter-spacing:.02em}
.fmodal .fhead .fbtns{display:flex;gap:8px}
.fmodal .fhead button,.fmodal .fhead a.fullopen{width:38px;height:38px;border:2px solid var(--ink);background:var(--paper);
  font-size:15px;cursor:pointer;color:var(--ink);display:inline-flex;align-items:center;justify-content:center}
.fmodal .fhead button:hover,.fmodal .fhead a.fullopen:hover{background:var(--ink);color:var(--paper)}
.fmodal iframe{flex:1;width:100%;border:0;background:#fff}
.fmodal .ffallback{padding:14px;text-align:center;font-size:14px;color:#3d3a33;border-top:3px solid var(--ink)}
.fmodal .ffallback a{color:var(--red);text-decoration:underline}

/* ---------- 子页面（carte/faq/legal/404 共用） ---------- */
.subpage{background:var(--paper);color:var(--ink);min-height:100vh}
.subpage .nav{mix-blend-mode:normal;background:var(--paper);color:var(--ink);border-bottom:3px solid var(--ink)}
.subpage .nav .langsw{border-color:var(--ink)}
.subpage .nav .langsw button{color:var(--ink)}
.subpage .nav .langsw button.on{background:var(--ink);color:var(--paper)}
.subpage .burger{border-color:var(--ink)}
.subpage .burger span{background:var(--ink)}
.carte-hero{padding:150px 24px 30px;max-width:1080px;margin:0 auto}
.carte-hero .back,.legal-wrap .back,.faq-wrap .back{display:inline-block;margin-bottom:24px;font-size:13px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--red-deep)}
.carte-hero .back:hover,.legal-wrap .back:hover,.faq-wrap .back:hover{text-decoration:underline}
.carte-hero p.intro{margin-top:16px;color:#3d3a33;max-width:56ch;font-weight:600}
.carte-wrap{max-width:1080px;margin:0 auto;padding:20px 24px 110px;display:grid;gap:26px}
.cat{border:3px solid var(--ink);padding:34px 38px;position:relative;background:var(--paper)}
.cat h3{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:24px;margin-bottom:6px;display:flex;align-items:center;gap:14px}
.cat h3 .zh{font-family:Georgia,'PingFang SC',serif;font-size:13px;color:var(--red-deep);letter-spacing:.4em;-webkit-text-stroke:0}
.cat .catdesc{font-size:13.5px;color:var(--soft);margin-bottom:12px}
.cat .items{margin-top:14px}
.cat .item{display:flex;justify-content:space-between;gap:18px;align-items:baseline;padding:10px 0;border-bottom:1px solid #D8D2C2;font-size:15px}
.cat .item:last-child{border-bottom:none}
.cat .item .nm{font-weight:600}
.cat .item .dots{flex:1;border-bottom:2px dotted rgba(20,20,20,.4);transform:translateY(-4px)}
.cat .item .pr{font-family:'Anton',sans-serif;font-size:17px;white-space:nowrap}
.cat .item.hid{display:none}
.cat.expanded .item.hid{display:flex}
.cat .cat-toggle{margin-top:16px;background:none;border:2px solid var(--ink);color:var(--ink);
  padding:10px 20px;font-size:13px;font-weight:700;text-transform:uppercase;cursor:pointer;font-family:inherit}
.cat .cat-toggle:hover{background:var(--yellow)}
.legal-wrap{max-width:840px;margin:0 auto;padding:150px 24px 100px}
.legal-wrap h1{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(30px,4vw,50px);margin-bottom:36px}
.legal-wrap h2{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:20px;margin:38px 0 12px}
.legal-wrap p,.legal-wrap li{font-size:15px;color:#3d3a33;margin-bottom:12px}
.legal-wrap ul{padding-left:22px}
.legal-wrap a{color:var(--red-deep);text-decoration:underline}
.legal-wrap .todo{background:var(--yellow);border:1px dashed var(--ink);padding:2px 8px;color:var(--ink);font-size:13.5px;font-weight:600}
.legal-wrap .seal{display:none}
.faq-wrap{max-width:880px;margin:0 auto;padding:150px 24px 100px}
.faq-wrap h1{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(30px,4vw,50px);margin-bottom:14px}
.faq-wrap .sub{color:#3d3a33;margin-bottom:44px;max-width:56ch;font-weight:600}
.faq-wrap .seal,.faq-wrap h1 .seal{display:none}
.faq{border:3px solid var(--ink);padding:26px 30px;margin-bottom:16px;background:var(--paper)}
.faq h2{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:17.5px;margin-bottom:8px;letter-spacing:.01em}
.faq p{font-size:15px;color:#3d3a33}
.faq a{color:var(--red-deep);text-decoration:underline}
.subfoot{border-top:3px solid var(--ink);padding:20px 24px;display:flex;justify-content:space-between;
  font-size:13px;color:var(--soft);flex-wrap:wrap;gap:8px;background:var(--paper)}
.subfoot a:hover{color:var(--red)}

/* ---------- 404 ---------- */
.nf{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:40px 24px;position:relative;overflow:hidden;background:var(--paper);color:var(--ink)}
.nf .ghost404{position:absolute;font-family:'Anton',sans-serif;font-size:min(50vw,460px);color:transparent;
  -webkit-text-stroke:2px rgba(20,20,20,.08);top:50%;left:50%;transform:translate(-50%,-54%);pointer-events:none;user-select:none}
.nf h1{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(34px,5vw,58px);margin:22px 0 10px}
.nf h1 em{font-style:normal;color:var(--red)}
.nf p{color:#3d3a33;max-width:46ch;margin-bottom:30px;font-weight:600}

/* ---------- 焦点可见（海报语言） ---------- */
:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}

/* ---------- 減動效 ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ---------- 响应式 ---------- */
@media(max-width:920px){
  .nav{padding:12px 16px}
  .nav ul{display:none}
  .nav-right .btn{display:none}
  .burger{display:block}
  .hero .inner{padding:0 20px 100px}
  .hero h1{font-size:clamp(56px,17vw,120px)}
  .hero .kick .openchip{display:block;width:max-content;margin:8px 0 0}
  .hero .veil{background:linear-gradient(to top,rgba(20,20,20,.92) 0%,rgba(20,20,20,.42) 45%,rgba(20,20,20,.66) 88%,rgba(20,20,20,.8) 100%)}
  .st .zh{top:6px;font-size:64px}
  .hero .disc{width:120px;height:120px;right:5vw;top:12vh}
  .hero .disc .center b{font-size:28px}
  .scrolldown{display:none}
  .vidtoggle{right:16px;bottom:88px}
  .st{grid-template-columns:1fr;gap:14px;padding:34px 0}
  .st .no{font-size:44px}
  .st .ph{height:220px}
  .st .zh{font-size:80px;top:-20px}
  .prix .grid{grid-template-columns:1fr}
  .prix .card.hot{transform:scale(1.02);box-shadow:6px 6px 0 var(--yellow)}
  .carte{padding:70px 20px}
  .carte .cols{grid-template-columns:1fr;gap:26px}
  .wall .cols{grid-template-columns:1fr 1fr}
  .wall .col{display:contents}
  .wall img{height:180px}
  .infos{padding:70px 20px}
  .infos .in{grid-template-columns:1fr;gap:40px}
  footer .cols{grid-template-columns:1fr 1fr;padding:44px 20px 30px;gap:34px}
  footer .legal{padding:20px 20px calc(20px + 74px + env(safe-area-inset-bottom));flex-direction:column;text-align:center}
  .mbar{display:flex}
  .cookie-bar{left:12px;right:12px;top:auto;bottom:max(calc(12px + 66px + env(safe-area-inset-bottom)),28svh);max-width:none;max-height:70svh;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .fmodal{padding:10px}
  .fmodal .frame,.fmodal.wide .frame{width:100%;height:94vh}
  .notice-banner{padding:10px 44px 10px 16px;font-size:13px}
  .carte-hero{padding:130px 20px 20px}
  .carte-wrap{padding:16px 20px 90px}
  .cat{padding:26px 22px}
  .legal-wrap,.faq-wrap{padding:120px 20px 80px}
}
@media(max-width:560px){
  footer .cols{grid-template-columns:1fr}
}
