/*
Theme Name: VS Challenge KL
Theme URI: https://www.myweekendplan.net/vschallenge/
Author: Newnormz
Description: Lightweight custom theme for VS Challenge KL (AEON Fantasy Malaysia x Bandai Namco). Gutenberg-first: page content is edited with the block editor, header/footer via Customizer, Menus and Widgets, activities via ACF.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
License: Proprietary
Text Domain: vs-challenge
*/

@font-face{font-family:'Zen Kaku Gothic New';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/zen-kaku-400-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:'Zen Kaku Gothic New';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/zen-kaku-400-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:'Zen Kaku Gothic New';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/zen-kaku-500-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:'Zen Kaku Gothic New';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/zen-kaku-500-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:'Zen Kaku Gothic New';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/zen-kaku-700-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:'Zen Kaku Gothic New';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/zen-kaku-700-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:'Zen Kaku Gothic New';font-style:normal;font-weight:900;font-display:swap;src:url(../fonts/zen-kaku-900-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:'Zen Kaku Gothic New';font-style:normal;font-weight:900;font-display:swap;src:url(../fonts/zen-kaku-900-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;}



:root { --red:#ec4f4a; --yellow:#fecb20; --teal:#01a7b7; --pink:#f492b9; --panel:#eeeeef; --corp-red:#e60000; }

* { margin:0; padding:0; box-sizing:border-box; }
body { position:relative; display:block; width:100%; font-family:'Zen Kaku Gothic New',sans-serif; font-size:16px; font-weight:600; line-height:1.3; color:#000; background:#fff; }
img { width:100%; height:auto; vertical-align:bottom; font-size:0; line-height:1; outline:none; }
ul li { list-style-type:none; }
h1,h2,h3,h4,h5,h6 { line-height:1; }
a { color:var(--red); text-decoration:underline; }
@media screen and (min-width:801px) { a { transition:.3s ease-out; } a:hover { opacity:.6; } }
.sp { display:block; } .pc { display:none; }
@media screen and (min-width:801px) { .sp { display:none; } .pc { display:block; } }

/* ---------- Section heading bar (h2) ---------- */
h2 {
  display:flex; align-items:center;
  margin:0 5% 0 -6px; padding:5px 10px 5px 16px;
  border:4px solid #000; border-left:none;
  font-size:6vw; color:#000; font-weight:900;
  box-shadow:4px 4px 0 #000; overflow:hidden;
}
h2 img { display:block; width:10%; margin-right:10px; }
@media screen and (min-width:801px) {
  h2 { margin:0 40px 0 -6px; padding:12px 16px 12px 22px; font-size:30px; border:6px solid #000; border-left:none; }
  h2 img { width:40px; }
}

/* ---------- Static patterned background ---------- */
.wrapCol, section, #lNav { background:var(--panel) url(../img/bg_main.svg) repeat; background-attachment:fixed; background-size:cover; }

/* ---------- Header ---------- */
#header { position:fixed; top:0; left:0; width:100%; height:60px; padding:10px; background:#000; z-index:110; }
#header .imgTitle a { color:#fff; text-decoration:none; font-weight:900; display:block; }
#header .imgTitle a img { float:left; width:140px; }
#header #lang { position:absolute; top:10px; right:60px; margin:0; }
#header #menu { position:absolute; top:10px; right:10px; margin:0; }

/* language dropdown */
.lang-btn { display:flex; align-items:center; gap:6px; height:38px; padding:0 10px; background:#000; color:#fff; border:1px solid #fff; border-radius:8px; font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
.lang-btn svg { width:16px; height:16px; fill:#fff; }
.lang-btn .chev { width:8px; height:8px; border-right:1.5px solid #fff; border-bottom:1.5px solid #fff; transform:rotate(45deg) translate(-2px,-2px); transition:.2s; }
#lang.open .chev { transform:rotate(-135deg) translate(-2px,-2px); }
.lang-list { display:none; position:absolute; top:44px; right:0; min-width:150px; background:#111; border:1px solid #fff; border-radius:8px; overflow:hidden; }
#lang.open .lang-list { display:block; }
.lang-list button { display:block; width:100%; padding:10px 14px; background:none; border:none; color:#fff; font:inherit; font-size:14px; text-align:left; cursor:pointer; }
.lang-list button:hover, .lang-list button.on { background:#333; }

/* MENU button */
#header #menu .hum { width:40px; height:38px; color:#fff; border:1px solid #fff; border-radius:3px; font-size:10px; text-align:center; cursor:pointer; }
#header #menu .hum p { line-height:1.3; }
#header #menu .hum > div { position:relative; margin:0; margin-top:3px; }
#header #menu .hum > div > div { display:block; position:absolute; left:10%; width:80%; height:1px; background:#fff; transition:.3s; }
#header #menu .hum > div > div:nth-child(1) { top:0; }
#header #menu .hum > div > div:nth-child(2) { top:6px; }
#header #menu .hum > div > div:nth-child(3) { top:12px; }
#header #menu.open .hum > div > div:nth-child(1) { top:6px; transform:rotate(315deg); }
#header #menu.open .hum > div > div:nth-child(2) { width:0; left:50%; }
#header #menu.open .hum > div > div:nth-child(3) { top:6px; transform:rotate(-315deg); }
#header #menu .inner { position:fixed; top:60px; right:0; width:80%; height:100vh; margin:0; padding:5% 5% 15% 5%; background:var(--panel) url(../img/bg_main.svg) repeat; background-attachment:fixed; background-size:cover; border-left:6px solid #000; transition:.3s; transform:translatex(100%); overflow-y:scroll; }
@media screen and (min-width:801px) { #header #menu .inner { max-width:400px; padding:40px; } }
#header #menu .inner ul li { margin-bottom:.5em; line-height:1.2; }
#header #menu .inner ul li a { font-weight:900; color:#000; text-decoration:none; }
#header #menu .inner ul.gnavi { font-size:4vw; }
@media screen and (min-width:801px) { #header #menu .inner ul.gnavi { font-size:24px; } }
#header #menu .inner ul.gnavi > li { padding:0 0 .2em; border-bottom:1px solid rgba(0,0,0,.3); }
#header #menu .inner ul.gnavi > li > a { display:flex; align-items:center; cursor:pointer; color:#000; transition:.3s; }
#header #menu .inner ul.gnavi > li > a:before { content:""; display:block; flex:none; width:20px; height:20px; margin-right:10px; background:center/contain no-repeat; }
@media screen and (min-width:801px) { #header #menu .inner ul.gnavi > li > a:before { width:30px; height:30px; } }
#header #menu .inner ul.snsnavi { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; width:100%; margin:10px 0 0; }
#header #menu .inner ul.snsnavi li { width:49%; margin-top:0; margin-bottom:5px; }
#header #menu .inner ul.snsnavi li.insta a { background:#ff0096; }
#header #menu .inner ul.snsnavi li.wa a { background:#06c755; }
#header #menu .inner ul.snsnavi li a { display:block; width:100%; padding:.3em 1em; color:#fff; background:#000; font-size:4vw; text-decoration:none; text-align:center; }
@media screen and (min-width:801px) { #header #menu .inner ul.snsnavi li a { font-size:18px; transition:.3s; } }
#header #menu .inner ul.cnavi { margin:2% 0 5% 0; }
#header #menu .inner ul.cnavi li { box-shadow:3px 3px 0 #000; }
#header #menu .inner ul.cnavi li a { position:relative; display:block; padding:.3em 1em; background:var(--yellow); border:3px solid #000; text-align:center; }
#header #menu .inner ul.cnavi li a:after { position:absolute; top:calc(50% - .2em); right:2%; width:.6em; height:.6em; background:url(../img/ico_arrow.svg) no-repeat; background-size:contain; mix-blend-mode:difference; content:""; }
@media screen and (min-width:801px) {
  #header #menu .inner ul.cnavi li { transition:.3s; }
  #header #menu .inner ul.cnavi li:hover { transform:translate(3px,3px); box-shadow:0 0 0 #000; }
  #header #menu .inner ul.cnavi li:hover a { opacity:1; }
}
#header #menu.open .inner { transform:translatex(0%); }

/* ---------- Hero: fixed, static video ---------- */
#movieArea { position:relative; top:0; right:0; left:0; bottom:0; overflow:hidden; z-index:-1; }
@media screen and (max-width:801px) { #movieArea { position:absolute; width:100%; height:100vh; min-height:560px; } }
@media screen and (min-width:801px) { #movieArea { position:fixed; } }
#movieArea #movie { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:177.777777778vh; height:56.25vw; min-height:100%; min-width:100%; border:0; pointer-events:none; }
#movieArea video#movie { top:0; left:0; transform:none; object-fit:cover; width:100%; height:100%; min-width:0; min-height:0; }
#movieArea #movieMask { position:absolute; top:0; width:100%; height:100%; background:rgba(0,0,0,.38); }
.hero { position:relative; height:100vh; min-height:560px; display:flex; align-items:center; justify-content:center; text-align:center; padding:60px 5% 60px; }
.hero-inner { max-width:1100px; color:#fff; }
.hero h1 { font-size:clamp(30px,4.6vw,66px); font-weight:900; line-height:1.08; color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.45); }
.hero p { margin-top:18px; font-size:clamp(15px,1.5vw,20px); line-height:1.6; }
.hero .cta { display:flex; justify-content:center; gap:16px; margin-top:32px; flex-wrap:wrap; }
.btn { position:relative; display:inline-block; padding:16px 52px 16px 32px; font-size:20px; font-weight:900; text-decoration:none; color:#000; background:var(--yellow); border:3px solid #000; box-shadow:4px 4px 0 #000; }
.btn.white { background:#fff; }
.btn::after { position:absolute; top:calc(50% - .3em); right:16px; width:.6em; height:.6em; background:url(../img/ico_arrow.svg) no-repeat; background-size:contain; filter:brightness(0); content:""; }
@media screen and (min-width:801px) { .btn:hover { transform:translate(4px,4px); box-shadow:0 0 0 #000; opacity:1; } }

/* ---------- Heading bar styles (Block Styles on the Heading block) ---------- */
h2 { background:#fecb20; }
h2.is-style-vs-yellow { background:#fecb20; }
h2.is-style-vs-coral { background:var(--red); }
h2.is-style-vs-white { background:#fff; }
h2.is-style-vs-mint { background:#84d0c4; }
h2.is-style-vs-pink { background:var(--pink); }
h2.is-style-vs-black, .wp-block-heading.is-style-vs-black { justify-content:center; margin:0 !important; background:#000; color:#fff; box-shadow:none; }
h2::before { content:none; }
h2[class*="vs-icon-"]::before, h2.wp-block-heading[class*="vs-icon-"]::before { content:""; display:block; flex:none; width:10%; max-width:40px; aspect-ratio:1; margin-right:10px; background:center/contain no-repeat; }
.vs-icon-home::before { background-image:url(../img/ico_tit_home.jpg) !important; }
.vs-icon-attention::before { background-image:url(../img/ico_tit_attention.jpg) !important; }
.vs-icon-news::before { background-image:url(../img/ico_tit_news.jpg) !important; }
.vs-icon-shop::before { background-image:url(../img/ico_tit_shop.jpg) !important; }
.vs-icon-insta::before { background-image:url(../img/ico_tit_insta.jpg) !important; }
.vs-icon-facility::before { background-image:url(../img/ico_tit_facility.jpg) !important; }
.vs-icon-contact::before { background-image:url(../img/ico_tit_contact.jpg) !important; }
.vs-icon-point::before { background-image:url(../img/ico_tit_point.jpg) !important; }
.vs-icon-activity::before { background-image:url(../img/ico_tit_activity.jpg) !important; }
#header #menu .inner ul.gnavi .vs-icon-home > a:before { background-image:url(../img/ico_tit_home.jpg); }
#header #menu .inner ul.gnavi .vs-icon-attention > a:before { background-image:url(../img/ico_tit_attention.jpg); }
#header #menu .inner ul.gnavi .vs-icon-news > a:before { background-image:url(../img/ico_tit_news.jpg); }
#header #menu .inner ul.gnavi .vs-icon-shop > a:before { background-image:url(../img/ico_tit_shop.jpg); }
#header #menu .inner ul.gnavi .vs-icon-facility > a:before { background-image:url(../img/ico_tit_facility.jpg); }
#header #menu .inner ul.gnavi .vs-icon-contact > a:before { background-image:url(../img/ico_tit_contact.jpg); }
#header #menu .inner ul.gnavi .vs-icon-activity > a:before { background-image:url(../img/ico_tit_activity.jpg); }
#header #menu .inner ul.gnavi .vs-icon-point > a:before { background-image:url(../img/ico_tit_point.jpg); }
#header #menu .inner ul.gnavi .vs-icon-insta > a:before { background-image:url(../img/ico_tit_insta.jpg); }
/* the icon class also lands on the <li>; never draw the heading icon there */
li[class*="vs-icon-"]::before { content:none !important; }
li[class*="vs-icon-"] { display:block; }
body.admin-bar #header { top:32px; }
body.admin-bar #header #menu .inner, body.admin-bar .mobile-nav { top:92px; }
@media screen and (max-width:782px) { body.admin-bar #header { top:46px; } body.admin-bar #header #menu .inner { top:106px; } }

/* ---------- Page wrappers ---------- */
body { padding-top:0; }
body.vs-inner { padding-top:60px; }
.vs-page > *:first-child { margin-top:0; }
main article { display:block; }
section.wp-block-group { position:relative; }
.wp-block-group.is-layout-flow > *, .wp-block-group__inner-container > * { margin-block-start:0; margin-block-end:0; }
.wp-block-group__inner-container { display:contents; }
figure { margin:0; }
.vs-titlebar { margin:40px 40px 0 -6px; }
.vs-single { padding:80px 5% 60px; max-width:1000px; margin:0 auto; line-height:1.7; }
.vs-single .vs-back { margin-top:40px; }

/* ---------- Buttons block (JP "Learn more" black button) ---------- */
.wp-block-buttons.vs-btn2 { margin-top:40px; padding:0 5%; justify-content:center; text-align:center; }
.wp-block-buttons.vs-btn2 .wp-block-button { width:100%; }
.wp-block-buttons.vs-btn2 .wp-block-button__link { position:relative; display:block; padding:20px; text-align:center; background:#000; color:#fff; font-size:4.2vw; font-weight:600; line-height:1.3; text-decoration:none; border-radius:0; }
@media screen and (min-width:801px) { .wp-block-buttons.vs-btn2 .wp-block-button { width:auto; } .wp-block-buttons.vs-btn2 .wp-block-button__link { display:inline-block; padding:20px 60px 20px 40px; font-size:24px; } }
.wp-block-buttons.vs-btn2 .wp-block-button__link:after { position:absolute; top:calc(50% - .4em); right:15px; width:1em; height:1em; background:url(../img/ico_arrow.svg) no-repeat; background-size:contain; content:""; }
@media screen and (min-width:801px) { .wp-block-buttons.vs-btn2 .wp-block-button__link:after { width:.6em; } }
.wp-block-buttons.vs-btn2 .wp-block-button__link:hover { opacity:.6; }

/* ---------- About teaser (home) ---------- */
#about { position:relative; margin-top:0; padding:0 0 20px; }
@media screen and (min-width:801px) { #about { padding:0 0 60px; } }
#about > p, #about > .wp-block-group__inner-container > p { margin-top:10px; padding:0 5%; line-height:1.5; }
@media screen and (min-width:801px) { #about > p, #about > .wp-block-group__inner-container > p { margin:1em 0 0; padding:20px 5% 0; font-size:16px; text-align:center; } }

/* ---------- Location ---------- */
#shop { position:relative; padding:2% 0 10%; }
@media screen and (min-width:801px) { #shop { padding:10px 0 60px; } }
#shop .catch { margin-bottom:2%; font-size:5vw; font-weight:900; text-align:center; }
@media screen and (min-width:801px) { #shop .catch { margin-bottom:10px; font-size:40px; } }
#shop ul.vs-loc { margin-top:calc(20px + 5%); padding:0 5%; }
@media screen and (min-width:801px) { #shop ul.vs-loc { display:flex; flex-wrap:wrap; margin-top:20px; padding:0 40px; } }
#shop ul.vs-loc li { position:relative; margin-top:3%; box-shadow:6px 6px 0 #000; border:4px solid #000; background:#fff; }
@media screen and (min-width:801px) {
  #shop ul.vs-loc li { width:48%; margin-top:12px; border:6px solid #000; transition:.3s; }
  #shop ul.vs-loc li:hover { transform:translate(6px,6px); box-shadow:0 0 0 #000; }
  #shop ul.vs-loc li:hover a { opacity:1; }
}
@media screen and (min-width:1400px) { #shop ul.vs-loc li { width:32%; } }
#shop ul.vs-loc li a { position:relative; display:flex; height:100%; text-decoration:none; }
#shop ul.vs-loc li a:before { position:absolute; top:0; right:0; width:6%; height:100%; background:var(--red); border-left:6px solid #000; content:""; }
#shop ul.vs-loc li a:after { position:absolute; top:38%; right:2%; width:3%; height:100%; background:url(../img/ico_arrow.svg) no-repeat; background-size:contain; content:""; }
#shop ul.vs-loc .pregecture { display:flex; flex:none; align-items:center; justify-content:center; white-space:nowrap; min-width:5em; margin:0; padding:0 .8em .2em; background:var(--red); font-size:.8em; color:#fff; }
#shop ul.vs-loc .shopName { margin:0; padding:2% 2%; font-size:3.5vw; font-weight:900; color:#000; line-height:1.3em; }
#shop ul.vs-loc .shopName small { display:block; font-size:.8em; font-weight:600; }
@media screen and (min-width:801px) { #shop ul.vs-loc .shopName { display:block; align-self:center; padding:5px 10px; font-size:1.3vw; line-height:1.3em; } }
@media screen and (min-width:1400px) { #shop ul.vs-loc .shopName { font-size:.9vw; } }
.ph { display:inline-block; margin-left:8px; padding:1px 6px; background:#fff3f2; border:1.5px dashed var(--red); color:var(--red); font-size:.7em; font-weight:700; text-transform:uppercase; vertical-align:middle; font-style:normal; }
#shop p.more { margin:40px auto 60px; padding:0 5%; font-size:7vw; font-weight:900; text-align:center; }
@media screen and (min-width:801px) { #shop p.more { margin:40px auto 0; font-size:60px; } }

/* ---------- News cards (block: News cards) ---------- */
#news, #inNews { position:relative; padding:5% 0; background:var(--teal); overflow:hidden; border-bottom:4px solid #000; }
@media screen and (min-width:801px) { #news { padding:30px 0; border-bottom:6px solid #000; } #inNews { border-bottom:6px solid #000; } }
#inNews { padding:80px 0 60px; }
#news:before, #inNews:before { position:absolute; top:0; left:0; width:100%; height:100%; background:url(../img/bg_main.svg) repeat; background-attachment:fixed; background-size:cover; opacity:.1; z-index:0; content:""; }
#news h2, #inNews h2 { position:relative; z-index:1; }
ul.vs-cards { position:relative; z-index:1; display:grid; grid-template-columns:1fr; gap:20px; margin-top:20px; padding:0 5%; }
@media screen and (min-width:801px) { ul.vs-cards { grid-template-columns:repeat(4,1fr); gap:20px 2.5%; margin:30px auto; padding:0 40px; } ul.vs-cards.cols-3 { grid-template-columns:repeat(3,1fr); gap:20px; margin:20px 0 10px; } }
@media screen and (min-width:1400px) { ul.vs-cards:not(.cols-3) { grid-template-columns:repeat(5,1fr); gap:20px 1.2%; } }
ul.vs-cards > li { border:4px solid #000; background:#fff; box-shadow:6px 6px 0 #000; }
@media screen and (min-width:801px) { ul.vs-cards > li { border:6px solid #000; transition:.3s; } ul.vs-cards > li:hover { transform:translate(6px,6px); box-shadow:0 0 0 #000; } ul.vs-cards > li:hover a { opacity:1; } }
ul.vs-cards > li a { display:block; height:100%; color:#000; text-decoration:none; }
.slideImg { position:relative; aspect-ratio:16/9; background:#000; overflow:hidden; }
.slideImg img { width:100%; height:100%; object-fit:cover; }
.slideImg .art { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; font-weight:900; padding:8px; line-height:1.2; }
ul.vs-cards li .inner { position:relative; padding:5%; }
ul.vs-cards li .inner .date { font-size:.8em; color:#555; }
ul.vs-cards li .inner .date.new:before { position:absolute; top:0; left:0; padding:.2em .5em; font-size:.8em; line-height:1; background:var(--red); color:#fff; content:"NEW"; }
ul.vs-cards li .inner .news_title { margin-top:10px; font-size:16px; line-height:1.3; }
.art-black { background:#000; color:#fecb20; font-size:min(2.2vw,30px); }
.art-coral { background:var(--red); color:#fff; font-size:min(2.2vw,30px); }
.art-green { background:#25d366; color:#fff; font-size:min(2.2vw,30px); }
.art-weekday, .art-weekend { background:repeating-linear-gradient(135deg,#1a1a1a 0 14px,#222 14px 28px); color:#fecb20; font-size:min(3.4vw,44px); letter-spacing:.02em; }
.art-rules { background:#111; }
.art-rules .burst { display:flex; align-items:center; justify-content:center; width:70%; aspect-ratio:1; background:#f5a200; clip-path:polygon(50% 0,58% 12%,72% 4%,74% 19%,90% 16%,86% 31%,100% 36%,90% 48%,100% 60%,86% 66%,90% 82%,74% 81%,72% 96%,58% 88%,50% 100%,42% 88%,28% 96%,26% 81%,10% 82%,14% 66%,0 60%,10% 48%,0 36%,14% 31%,10% 16%,26% 19%,28% 4%,42% 12%); color:#fff; font-size:min(1.7vw,26px); font-weight:900; line-height:1; text-shadow:2px 2px 0 #000; }
@media (max-width:801px) { .art-black, .art-coral, .art-green { font-size:5vw; } .art-weekday, .art-weekend { font-size:7vw; } .art-rules .burst { font-size:5vw; } }

/* ---------- Instagram / feed (Gutenberg group + images) ---------- */
#insta { position:relative; padding:10% 0; border-bottom:4px solid #000; }
@media screen and (min-width:801px) { #insta { padding:60px 0; border-bottom:6px solid #000; } }
.feed { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; padding:5%; }
@media screen and (min-width:801px) { .feed { grid-template-columns:repeat(4,1fr); padding:40px; } }
.feed .tile { background:#fff; }
.feed .tile img { aspect-ratio:1; object-fit:cover; }
.feed .tile p { padding:12px; font-size:13px; font-weight:500; line-height:1.4; }

/* ---------- About page (JP more.html) ---------- */
#more { position:relative; margin-top:0; padding:0 0 20px; }
#more h2 { margin-top:60px; }
#more p { margin-top:1em; padding:0 5%; line-height:1.5; }
#more p.about { margin-top:20px; text-align:center; font-size:5.3vw; font-weight:900; line-height:1.3; }
@media screen and (min-width:801px) { #more p { padding:0 40px; } #more p.about { font-size:42px; } }
#more h2 + p { margin-top:20px; }
#more ul.stars { padding:0 5%; list-style:none; }
#more ul.stars li { margin-top:.4em; }
@media screen and (min-width:801px) { #more ul.stars { padding:0 40px; } }
.wp-block-columns.sliders { display:flex; flex-wrap:nowrap !important; gap:10px; margin:20px 0 60px; padding:0 5%; overflow-x:auto; scroll-snap-type:x mandatory; }
.wp-block-columns.sliders > .wp-block-column { flex:1 0 80% !important; scroll-snap-align:center; }
@media screen and (min-width:801px) { .wp-block-columns.sliders { padding:0 40px; overflow:visible; gap:10px; } .wp-block-columns.sliders > .wp-block-column { flex:1 1 0 !important; } }
#about.more { margin-top:0; padding-top:60px; }
ul.moreSlider { display:grid; grid-template-columns:1fr; gap:20px; margin:20px 0 0; padding:0 5%; }
@media screen and (min-width:801px) { ul.moreSlider { grid-template-columns:repeat(3,1fr); padding:20px 40px 0; } }
ul.moreSlider li { margin:0 0 6px; border:4px solid #000; background:#fff; box-shadow:6px 6px 0 #000; }
@media screen and (min-width:801px) { ul.moreSlider li { border:6px solid #000; transition:.3s; } ul.moreSlider li:hover { transform:translate(6px,6px); box-shadow:0 0 0 #000; } }
ul.moreSlider .title { margin:0; padding:5px 10px; font-size:5vw; font-weight:900; }
@media screen and (min-width:801px) { ul.moreSlider .title { font-size:24px; } }
ul.moreSlider img { aspect-ratio:16/9; object-fit:cover; }
ul.moreSlider .explanation { margin:0; padding:5px 10px 10px; }
#about.more p.notice { margin-top:30px; text-align:center; font-weight:500; padding:0 5%; }

/* ---------- Activities page (JP shop.css #inActivity) ---------- */
#inActivity { position:relative; padding:80px 0 60px; overflow:hidden; border-bottom:4px solid #000; }
@media screen and (min-width:801px) { #inActivity { border-bottom:6px solid #000; } }
#inActivity > p.intro, #inActivity > .wp-block-group__inner-container > p.intro { max-width:1000px; margin:5% auto 0; padding:0 5%; line-height:1.5; }
@media screen and (min-width:801px) { #inActivity > p.intro, #inActivity > .wp-block-group__inner-container > p.intro { margin:40px auto 0; padding:0 40px; } }
#inActivity ul.actList { display:flex; flex-wrap:wrap; max-width:1000px; margin:5% auto 0; padding:0 5%; }
@media screen and (max-width:801px) { #inActivity ul.actList { justify-content:space-between; } }
@media screen and (min-width:801px) { #inActivity ul.actList { margin:30px auto 0; padding:0 40px; } }
#inActivity .actList li { display:flex; align-items:center; margin-top:.5em; }
@media screen and (max-width:801px) { #inActivity .actList li { width:48%; } }
@media screen and (min-width:801px) { #inActivity .actList li { margin-right:1em; } }
#inActivity .actList li span { display:block; flex:none; min-width:20px; height:20px; padding:0 4px; margin-right:5px; text-align:center; color:#fff; background:#000; border-radius:11px; line-height:18px; font-size:11px; }
@media screen and (min-width:801px) { #inActivity .actList li span { min-width:22px; height:22px; font-size:12px; line-height:20px; } }
#inActivity .actList li a { display:block; color:#000; text-decoration:none; line-height:1.3; font-size:3vw; }
@media screen and (min-width:801px) { #inActivity .actList li a { font-size:14px; } }
#inActivity ul.actDetail { display:grid; grid-template-columns:1fr; gap:20px; margin-top:40px; padding:0 5%; }
@media screen and (min-width:801px) { #inActivity ul.actDetail { grid-template-columns:repeat(3,1fr); gap:20px 2%; padding:0 40px; } }
@media screen and (min-width:1400px) { #inActivity ul.actDetail { grid-template-columns:repeat(4,1fr); gap:20px 1.3%; } }
#inActivity .actDetail > li { display:flex; flex-direction:column; border:4px solid #000; box-shadow:6px 6px 0 #000; background:#fff; scroll-margin-top:80px; }
#inActivity .actDetail > li .title { display:flex; justify-content:space-between; align-items:stretch; font-size:5vw; font-weight:900; }
@media screen and (min-width:801px) { #inActivity .actDetail > li .title { font-size:24px; } }
#inActivity .actDetail > li .title span { display:flex; justify-content:center; align-items:center; flex:none; min-width:2em; padding:0 .3em; background:#e73079; color:#fff; }
#inActivity .actDetail > li .title p { flex:1; margin:0; padding:5px; line-height:1.3; }
#inActivity .actDetail > li .title .new { background:var(--red); color:#fff; font-size:.5em; padding:0 .6em; width:auto; }
#inActivity .actDetail > li img { aspect-ratio:16/9; object-fit:cover; }
#inActivity .actDetail > li .noimg { display:flex; align-items:center; justify-content:center; aspect-ratio:16/9; background:#000; color:#fecb20; font-weight:900; text-align:center; padding:10px; font-size:1.1em; }
#inActivity .actDetail > li .explanation { margin:0; padding:10px; line-height:1.3; }
#inActivity .actDetail > li .inner { display:flex; align-items:center; margin:0; margin-top:auto; padding:10px; background:#000; font-size:3.2vw; }
@media screen and (min-width:801px) { #inActivity .actDetail > li .inner { font-size:11px; } }
@media screen and (min-width:1400px) { #inActivity .actDetail > li .inner { font-size:13px; } }
#inActivity .actDetail > li .inner .parNum { margin:0 1em 0 0; color:#fff; line-height:1.2; }
#inActivity .actDetail > li .inner .limit { display:flex; margin:0; }
#inActivity .actDetail > li .inner .limit li { margin:0 0 0 5px; padding:.2em .5em; background:#fecb20; text-align:center; border-radius:5px; line-height:1.2; }
#inActivity .actDetail > li .conditionsBtn { position:relative; margin:0; }
#inActivity .actDetail > li .conditionsBtn a { position:relative; display:block; padding:.2em; background:#e73079; text-align:center; text-decoration:none; color:#fff; }
#inActivity .actDetail > li .conditionsBtn a:hover { opacity:1; background:#c81f66; }
#inActivity > p.notice, #inActivity > .wp-block-group__inner-container > p.notice { margin:5% auto 0; padding:0 5%; font-size:.8em; font-weight:500; line-height:1.6; max-width:1200px; }
@media screen and (min-width:801px) { #inActivity > p.notice, #inActivity > .wp-block-group__inner-container > p.notice { margin:40px auto 0; padding:0 40px; } }
.pop { display:none; position:fixed; inset:0; z-index:200; background:rgba(30,30,30,.9); overflow-y:auto; padding:60px 16px; }
.pop.open { display:block; }
.pop .conditions { position:relative; max-width:540px; margin:0 auto; padding:5%; background:#fff; border:4px solid #000; }
@media screen and (min-width:801px) { .pop .conditions { padding:20px; } }
.pop .conditions .title { padding:.5em; font-size:24px; font-weight:900; background:#000; color:#fff; text-align:center; line-height:1.3; }
.pop .conditions .subTit { margin-top:.5em; font-size:24px; text-align:center; font-weight:900; }
.pop .conditions .notes { margin:.5em 0; font-size:.75em; line-height:1.4; font-weight:700; }
.pop .conditions dl dt, .pop .conditions dl dd { font-size:.9em; }
.pop .conditions dl dt { padding:.3em .8em; background:rgba(231,48,121,.3); line-height:1.3; }
.pop .conditions dl dd { padding:.3em 0; line-height:1.3; }
.pop .conditions dl dd:not(:last-child) { margin-bottom:.6em; }
.pop .conditions dl dd .notice { display:block; font-size:.8em; }
.pop .x { position:fixed; top:14px; right:16px; width:44px; height:44px; background:#fff; border:3px solid #000; font-size:22px; font-weight:900; cursor:pointer; z-index:201; }

/* ---------- Pricelist + rules (News page) ---------- */
#pricing, #rules, #inFaq { position:relative; padding:60px 0; border-bottom:4px solid #000; }
#inFaq { padding:80px 0 60px; }
@media screen and (min-width:801px) { #pricing, #rules, #inFaq { border-bottom:6px solid #000; } }
#pricing > p, #rules > p, #pricing > .wp-block-group__inner-container > p, #rules > .wp-block-group__inner-container > p { margin:20px 5% 0; line-height:1.5; }
@media screen and (min-width:801px) { #pricing > p, #rules > p, #pricing > .wp-block-group__inner-container > p, #rules > .wp-block-group__inner-container > p { margin:30px 40px 0; } }
.wp-block-columns.price-grid, .wp-block-columns.rule-grid { gap:24px; margin:20px 0 0; padding:0 5%; }
@media screen and (min-width:801px) { .wp-block-columns.price-grid, .wp-block-columns.rule-grid { padding:0 40px; } }
.wp-block-column.price-card { border:6px solid #000; background:#fff; box-shadow:6px 6px 0 #000; }
.price-card h3 { padding:12px 16px; margin:0; font-size:22px; font-weight:900; border-bottom:6px solid #000; }
.price-card.wd h3 { background:#f0428f; color:#fff; }
.price-card.we h3 { background:#3aa8f0; color:#fff; }
.price-card figure.wp-block-table { margin:0; }
.price-card table { width:100%; border-collapse:collapse; }
.price-card td { padding:14px 16px; font-weight:900; border:0; border-bottom:1px solid #ddd; }
.price-card td:last-child { text-align:right; }
.wp-block-column.rule-box { border:6px solid #000; background:#fff; box-shadow:6px 6px 0 #000; }
.rule-box h3 { padding:.5em .8em; margin:0; background:#000; color:#fff; font-size:22px; font-weight:900; }
.rule-box ul { padding:14px 18px 6px; list-style:none; }
.rule-box li { position:relative; padding:.5em 0 .5em 1.4em; line-height:1.5; border-bottom:1px dashed #ccc; }
.rule-box li:last-child { border-bottom:none; }
.rule-box li:before { content:""; position:absolute; left:0; top:1.05em; width:.5em; height:.5em; background:var(--red); border:2px solid #000; }

/* ---------- FAQ (core Details blocks) ---------- */
.faq-list { max-width:1000px; margin:30px auto 0; padding:0 5%; }
@media screen and (min-width:801px) { .faq-list { margin-top:40px; padding:0 40px; } }
.faq-list .wp-block-details { margin-top:20px; border:4px solid #000; background:#fff; box-shadow:6px 6px 0 #000; }
@media screen and (min-width:801px) { .faq-list .wp-block-details { border:6px solid #000; } }
.faq-list .wp-block-details summary { display:flex; align-items:stretch; cursor:pointer; list-style:none; font-size:4.2vw; font-weight:900; line-height:1.3; }
@media screen and (min-width:801px) { .faq-list .wp-block-details summary { font-size:20px; } }
.faq-list .wp-block-details summary::-webkit-details-marker { display:none; }
.faq-list .wp-block-details summary::before { content:"Q"; display:flex; align-items:center; justify-content:center; flex:none; width:2em; background:#e73079; color:#fff; }
.faq-list .wp-block-details summary::after { content:"+"; margin-left:auto; display:flex; align-items:center; padding:0 .8em; font-size:1.4em; }
.faq-list .wp-block-details[open] summary::after { content:"–"; }
.faq-list .wp-block-details[open] summary { border-bottom:4px solid #000; }
.faq-list .wp-block-details summary { padding:0; }
.faq-list .wp-block-details > p { padding:14px 18px; line-height:1.6; font-weight:500; }
.faq-list .wp-block-details > p a { font-weight:900; }
#contact { position:relative; padding:60px 0; }
#contact > p, #contact > .wp-block-group__inner-container > p { margin:20px 5% 0; line-height:1.5; }
@media screen and (min-width:801px) { #contact > p, #contact > .wp-block-group__inner-container > p { margin:30px 40px 0; text-align:center; } }
#contact .wp-block-buttons { justify-content:center; gap:16px; margin-top:30px; padding:0 5%; }
#contact .wp-block-button__link { position:relative; display:inline-block; padding:20px 60px 20px 40px; background:#000; color:#fff; font-size:20px; text-decoration:none; border-radius:0; }
#contact .wp-block-button__link:after { position:absolute; top:calc(50% - .3em); right:15px; width:.6em; height:.6em; background:url(../img/ico_arrow.svg) no-repeat; background-size:contain; content:""; }
#contact .is-style-vs-wa .wp-block-button__link, #contact .vs-wa .wp-block-button__link { background:#25d366; color:#000; }
#contact .vs-wa .wp-block-button__link:after { filter:brightness(0); }
.slideImg .art i { font-style:normal; font-size:.5em; margin-top:6px; color:#fff; font-weight:700; }
.sns_new a.wa, .sns_new a.fb, .sns_new a.yt, .sns_new a.threads { display:flex; align-items:center; justify-content:center; aspect-ratio:1; border-radius:50%; }
.sns_new a.wa { background:#25d366; } .sns_new a.fb { background:#1877f2; } .sns_new a.yt { background:#f00; }
.sns_new a.threads { background:#000; border:2px solid #fff; }
.sns_new a.wa svg, .sns_new a.fb svg, .sns_new a.yt svg, .sns_new a.threads svg { width:56%; fill:#fff; }
#header #menu .inner ul.snsnavi li.tiktok a, #header #menu .inner ul.snsnavi li.threads a { background:#000; }
#header #menu .inner ul.snsnavi li.fb a { background:#1877f2; }
#header #menu .inner ul.snsnavi li.yt a { background:#f00; }

/* ---------- Home blocks from the client copy: teaser, pricing, member ---------- */
h2.is-style-vs-green { background:#06c755; }
.vs-blk { position:relative; padding:0 0 40px; border-bottom:4px solid #000; }
@media screen and (min-width:801px) { .vs-blk { border-bottom:6px solid #000; } }
.vs-blk p { margin:20px 5% 0; line-height:1.5; }
@media screen and (min-width:801px) { .vs-blk p { margin:30px 40px 0; } }
.vs-blk.center p { text-align:center; }
#pricing { padding:20px 0 60px; }
.vs-pricing { padding:0 5%; }
@media screen and (min-width:801px) { .vs-pricing { padding:0 40px; } }
.vs-pricing ul.tab { display:flex; flex-wrap:wrap; margin:30px 0 0; padding:0; }
.vs-pricing ul.tab li { flex:1 1 auto; padding:12px 20px; text-align:center; border:4px solid #000; background:#fff; color:#000; font-weight:900; cursor:pointer; transition:.3s; }
.vs-pricing ul.tab li + li { margin-left:-4px; }
.vs-pricing ul.tab li[data-tab="wd"].active, .vs-pricing ul.tab li[data-tab="wd"]:hover { background:#00b0f0; }
.vs-pricing ul.tab li[data-tab="we"].active, .vs-pricing ul.tab li[data-tab="we"]:hover { background:#92d050; }
.vs-pricing .price-panel { margin-top:0; margin-top:-4px; border:6px solid #000; background:#fff; box-shadow:6px 6px 0 #000; }
.js .vs-pricing .price-panel { display:none; }
.js .vs-pricing .price-panel.active { display:block; }
.vs-pricing table { width:100%; border-collapse:collapse; }
.vs-pricing td { padding:14px 16px; font-weight:900; border:0; border-bottom:1px solid #ddd; vertical-align:middle; }
.vs-pricing tr:last-child td { border-bottom:0; }
.vs-pricing td:not(:first-child), .vs-pricing th:not(:first-child) { width:22%; text-align:center; white-space:nowrap; }
.vs-pricing thead th { padding:12px 10px; font-weight:900; border-bottom:4px solid #000; }
.vs-pricing thead th.c1 { background:#d9d9d9; }
.vs-pricing thead th.c2 { background:#ff6b9d; }
.vs-pricing td:not(:first-child) { font-size:1.3em; }
.vs-pricing td small { font-size:.8em; }
.vs-pricing td small { display:block; margin-top:2px; font-weight:500; }
.vs-pricing p.note { margin:16px 0 0; font-size:.85em; font-weight:500; }
.vs-pricing p.ota { margin:10px 0 0; }
.vs-pricing p.ota a { font-weight:900; }
.wp-block-buttons.vs-wa-btn { justify-content:center; margin-top:30px; padding:0 5%; }
.wp-block-button.vs-wa .wp-block-button__link { position:relative; display:inline-block; padding:20px 60px 20px 40px; background:#06c755; color:#000; font-size:20px; font-weight:900; border:3px solid #000; border-radius:0; box-shadow:4px 4px 0 #000; text-decoration:none; transition:.3s; }
.wp-block-button.vs-wa .wp-block-button__link:after { position:absolute; top:calc(50% - .3em); right:15px; width:.6em; height:.6em; background:url(../img/ico_arrow.svg) no-repeat; background-size:contain; filter:brightness(0); content:""; }
@media screen and (min-width:801px) { .wp-block-button.vs-wa .wp-block-button__link:hover { transform:translate(4px,4px); box-shadow:0 0 0 #000; opacity:1; } }
.pop .conditions .vsub { margin:14px 0 6px; padding:.3em .8em; background:#000; color:#fff; font-weight:900; text-align:center; }
#goTop { opacity:0; visibility:hidden; transition:opacity .3s; }
#goTop.show { opacity:1; visibility:visible; }

.wp-block-group.rule-box { margin:20px 5% 0; border:6px solid #000; background:#fff; box-shadow:6px 6px 0 #000; }
@media screen and (min-width:801px) { .wp-block-group.rule-box { margin:30px 40px 0; } }
.rule-box ul { margin:0; }
#inFaq p.rule-note { margin:16px 5% 0; font-size:.85em; font-weight:500; }
@media screen and (min-width:801px) { #inFaq p.rule-note { margin:16px 40px 0; } }
#inFaq h2 ~ h2 { margin-top:60px; }
#shop p.closing { margin-top:16px; padding:0 5%; text-align:center; font-size:16px; line-height:1.5; }
.wp-block-buttons.vs-btn2 { gap:16px; }

.wp-block-buttons { display:flex; flex-wrap:wrap; gap:16px; }
#inActivity p.notice + p.notice { margin-top:10px; }

.linkSpace { position:relative; margin:0; padding:5%; background:#fff; background-image:none; text-align:center; }
@media screen and (min-width:801px) { .linkSpace { padding:40px; } }
.linkSpace a { position:relative; display:block; padding:20px 11% 20px 5%; text-align:center; background:#000; color:#fff; font-size:4vw; text-decoration:none; width:100%; }
@media screen and (min-width:801px) { .linkSpace a { display:inline-block; padding:20px 60px 20px 40px; width:auto; font-size:24px; } }
.linkSpace a:after { position:absolute; top:calc(50% - .3em); right:15px; width:1em; height:1em; background:url(../img/ico_arrow.svg) no-repeat; background-size:contain; content:""; }
@media screen and (min-width:801px) { .linkSpace a:after { width:.6em; } }

.sns_new { display:flex; justify-content:center; align-items:center; margin:0; padding:5%; background:#000; }
@media screen and (min-width:801px) { .sns_new { padding:20px; } }
.sns_new li { width:12vw; }
@media screen and (min-width:801px) { .sns_new li { width:50px; } }
.sns_new li + li { margin:0 0 0 6%; }
@media screen and (min-width:801px) { .sns_new li + li { margin:0 0 0 20px; } }
.sns_new li a { display:block; text-align:center; opacity:1; }
.sns_new li a:hover { opacity:.5; }
.sns_new .wa { display:flex; align-items:center; justify-content:center; aspect-ratio:1; border-radius:50%; background:#25d366; }
.sns_new .wa svg { width:56%; fill:#fff; }

/* ---------- Footer (Bandai Namco common footer, as on JP) ---------- */
#footer { position:relative; margin-top:0; }
#footer.fixedItem { padding-bottom:60px; }
#common_page_footer { position:relative; overflow:hidden; background:#333; font-size:14px; font-weight:400; padding-bottom:25px; box-shadow:0 20vh 0 0 #333; }
#common_page_footer::before { content:""; display:block; height:3px; background:var(--corp-red); margin:0 -20px; }
.footer_nav.service { position:relative; z-index:1; display:flex; flex-wrap:wrap; max-width:1200px; margin:0 auto; padding:0 0 2.5em; }
.footer_nav.service::before { content:""; width:calc(100vw + 100%); height:100%; background:#f3f3f3; position:absolute; left:50%; top:0; transform:translate(-50%,0); z-index:-1; }

.footer_nav_inner { width:25%; position:relative; margin:0; padding:0; }
.footer_nav_inner > dd { display:block; margin:0; padding:4px; overflow:hidden; }
.footer_nav_inner .widget { position:relative; }
.footer_nav_inner .ft-title { position:relative; display:block; margin:2.5em 0 0; padding:.5em 0 .5em 2.2em; font-weight:bold; font-size:1em; line-height:1.5; color:#333; }
.footer_nav_inner .ft-title::before { content:""; display:block; position:absolute; left:0; top:calc(50% - .85em); width:1.7em; height:1.7em; background:no-repeat 0 0 / contain; }
.footer_nav_inner:nth-child(1) .ft-title::before { background-image:url(../img/ico_spot.svg); }
.footer_nav_inner:nth-child(2) .ft-title::before { background-image:url(../img/ico_am.svg); }
.footer_nav_inner:nth-child(3) .ft-title::before { background-image:url(../img/ico_event02.svg); }
.footer_nav_inner:nth-child(4) .ft-title::before { background-image:url(../img/ico_sns.svg); }
.footer_nav_inner ul { position:relative; padding:0; }
.footer_nav_inner ul::before { content:""; display:block; height:100%; width:0; border-left:1px solid #ccc; position:absolute; top:0; left:.85em; }
.footer_nav_inner li { display:block; padding:0 2em 0 2.3em; color:#333; }
.footer_nav_inner li a { display:inline-block; position:relative; padding:.5em 0 .5em 1em; font-size:1em; line-height:1.5; color:#333; text-decoration:none; }
.footer_nav_inner li a:hover { text-decoration:underline; opacity:1; }
.footer_nav_inner li a::before { content:""; width:6px; height:6px; position:absolute; border-right:2px solid var(--corp-red); border-bottom:2px solid var(--corp-red); top:calc(1.25em - 3px); left:0; transform:rotate(-45deg); }
.footer_nav_inner p:not(.ft-title) { font-size:1em; line-height:1.5; padding-left:2.3em; }
.footer_nav_inner .textwidget { padding:0; }

ul.footer_nav { position:relative; z-index:1; display:flex; flex-wrap:wrap; justify-content:center; max-width:1200px; margin:0 auto; padding:20px 0 0; border-bottom:1px solid #666; }
ul.footer_nav li { padding:0 1em; font-size:1em; }
ul.footer_nav a { display:inline-block; padding:.5em 0; color:#fff; text-decoration:none; }
ul.footer_nav a:hover { text-decoration:underline; opacity:1; }
ul.footer_nav .icon a::after { content:"\00a0"; display:inline-block; width:1em; margin-left:.2em; background:url(../img/ico_target-blank_w.svg) no-repeat center / contain; }
.footer_copyright { margin-top:25px; text-align:center; color:#fff; }
.footer_copyright li { font-size:.857em; line-height:2; }
.footer_copyright li small { display:inline-block; margin:0 .3em; }
.footer_groupLogo a { display:block; margin:0 auto; padding:5px; width:170px; }
.footer_groupLogo + li { margin-top:10px; }

/* fixed ticket bar + top button */
.webTicket { position:fixed; display:flex; justify-content:center; align-items:center; bottom:0; width:100%; height:60px; margin:0; background:var(--yellow); border:4px solid #000; z-index:100; }
@media screen and (min-width:801px) { .webTicket { border:6px solid #000; } }
.webTicket a { display:flex; justify-content:center; align-items:center; width:100%; padding:10px; text-decoration:none; color:#000; font-size:20px; font-weight:900; }
.webTicket a img { display:block; width:15%; max-width:90px; margin-right:10px; }
@media screen and (min-width:801px) { .webTicket a img { width:60px; } }
.webTicket a:hover { opacity:1; }
#goTop { position:fixed; right:5px; bottom:65px; display:flex; justify-content:center; align-items:center; width:3.5em; height:3.5em; background:#fff; border:3px solid #000; border-radius:100%; font-size:12px; font-weight:900; color:#000; cursor:pointer; z-index:101; text-decoration:none; }

@media screen and (max-width:800px) {
  .footer_nav_inner { width:50%; }
  .footer_nav.service { padding:0 5% 2em; }
}
@media screen and (max-width:520px) {
  .footer_nav_inner { width:100%; }
  .btn { display:block; }
  .hero .cta { flex-direction:column; align-items:stretch; }
}


.vs-floormap { max-width:1100px; margin:30px auto 0; padding:0 5%; }
@media screen and (min-width:801px) { .vs-floormap { padding:0 40px; } }
.vs-floormap .map-wrap { position:relative; background:#fff; border:4px solid #000; box-shadow:6px 6px 0 #000; padding:2%; }
.vs-floormap .map-in { position:relative; }
.vs-floormap .map-wrap img { display:block; width:100%; height:auto; }
.vs-floormap .plot { position:absolute; display:block; border:2px solid transparent; transition:border-color .15s, background .15s; }
.vs-floormap .plot:hover, .vs-floormap .plot:focus-visible { border-color:#fecb20; background:rgba(254,203,32,.35); outline:none; }
.vs-floormap .plot span { position:absolute; left:50%; bottom:100%; transform:translateX(-50%); padding:2px 8px; margin-bottom:4px; background:#000; color:#fecb20; font-size:12px; font-weight:900; white-space:nowrap; opacity:0; pointer-events:none; z-index:2; }
.vs-floormap .plot:hover span, .vs-floormap .plot:focus-visible span { opacity:1; }
@media screen and (max-width:801px) { .vs-floormap .plot span { display:none; } }
#common_page_footer { padding-bottom:90px; }
.footer_copyright .footer_company, .footer_copyright .footer_credit { margin-top:4px; }
.footer_copyright .footer_credit small { opacity:.85; }
.footer_copyright .footer_credit a { color:#fff; text-decoration:underline; }
#inActivity .actDetail > li { cursor:pointer; }
@media screen and (min-width:801px) { #inActivity .actDetail > li { transition:.3s; } #inActivity .actDetail > li:hover { transform:translate(6px,6px); box-shadow:0 0 0 #000; } }
.footer_groupLogo { margin-bottom:6px; }
.footer_groupLogo .logo-card { display:inline-block; margin:0 auto; padding:10px 22px; background:#fff; border-radius:16px; }
.footer_groupLogo .logo-card img { display:block; width:130px; height:auto; }

/* WhatsApp off: hide the WhatsApp-only member sign-up block (returns when WhatsApp is ticked in Customize). */
body.vsc-wa-off #member { display:none; }
