:root{
  --brand:#a4413d;          /* ロゴ(#e98887)を暗くした深紅。見出しラベル／ブランドの柱 */
  --brand-vivid:#d1544f;    /* 桜木町の識別色。ロゴと同系で、白文字が乗るまで濃くした */
  --logo:#e98887;           /* ロゴ原本の色。淡い面・罫にだけ使う */
  --blue:#6b90c8;           /* 関内の識別色。ロゴのくすみに合わせて彩度を落とした */
  --blue-deep:#40679f;
  --ink:#413a3b;            /* 本文。無彩色グレーにしない */
  --label:#9b9192;
  --line:#e9e3e2;
  --bg:#ffffff;
  --bg2:#faf7f6;            /* 地。わずかに赤みを通す */
  --veil:rgba(233,136,135,.06);   /* ロゴ色のベール */
  --footer:#f4f1f0;
  --dark:#2e2226;           /* UI文字・ナビ */
  --head:#4b2a29;           /* 見出し。黒でも濃紺でもなく、ロゴと地続きの濃い赤茶 */
  --deep:#1c1417;           /* ダーク帯 */

  --serif:"Cinzel", "Times New Roman", serif;
  --en:"Inter", "Noto Sans JP", system-ui, sans-serif;
  --jp:"Noto Sans JP", system-ui, sans-serif;

  --spade:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 116'><path d='M50 4C50 4 8 40 8 68c0 15 11 26 25 26 7 0 13-3 17-8-1 12-5 20-11 24h22c-6-4-10-12-11-24 4 5 10 8 17 8 14 0 25-11 25-26C92 40 50 4 50 4z' fill='black'/></svg>");
  --heart:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><path d='M50 92C50 92 6 60 6 33 6 18 17 7 31 7c9 0 16 5 19 12 3-7 10-12 19-12 14 0 25 11 25 26 0 27-44 59-44 59z' fill='black'/></svg>");
  --diamond:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 116'><path d='M50 3 88 58 50 113 12 58z' fill='black'/></svg>");
  --club:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 116'><path d='M50 6c-13 0-23 10-23 22 0 4 1 8 3 11-3-2-7-3-11-3-13 0-23 10-23 23s10 23 23 23c9 0 17-5 21-13-1 14-6 23-12 27h44c-6-4-11-13-12-27 4 8 12 13 21 13 13 0 23-10 23-23s-10-23-23-23c-4 0-8 1-11 3 2-3 3-7 3-11 0-12-10-22-23-22z' fill='black'/></svg>");
  --container:1336px;
  --pad:32px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--jp);color:var(--ink);background:var(--bg);line-height:2;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--pad)}

/* ===== 見出し（ROOTS様式: 英字大 + 日本語ラベル#999 を下に） ===== */
.sect{padding:100px 0 70px;position:relative;overflow:hidden}
.sect--tight{padding:86px 0 70px}
.sect::before{content:"";position:absolute;top:-10%;width:62vw;height:120%;pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(233,136,135,.09) 0%, rgba(233,136,135,0) 62%)}
.sect:nth-of-type(odd)::before{left:-14vw}
.sect:nth-of-type(even)::before{right:-14vw}
.sect > *:not(.cdeco):not(.cbubble){position:relative;z-index:1}
.h-en{font-family:var(--en);font-weight:700;font-size:13px;line-height:1;letter-spacing:.34em;
  color:var(--brand-vivid);display:flex;align-items:center;gap:11px}
.h-en::before{content:"";width:13px;height:15px;flex:0 0 13px;background:var(--brand-vivid);
  -webkit-mask:var(--spade) center/contain no-repeat;mask:var(--spade) center/contain no-repeat}
.h-en::after{content:"";width:26px;height:1px;background:currentColor;opacity:.45;flex:0 0 26px;margin-left:-3px}
.h-lb{font-family:var(--jp);font-size:clamp(27px,3.2vw,40px);font-weight:900;line-height:1.45;
  color:var(--head);margin-top:16px;letter-spacing:.02em}
.h-jp{font-size:clamp(26px,3.2vw,40px);font-weight:900;line-height:1.5;color:var(--head);letter-spacing:.02em}
.h-jp em,.h-lb em{font-style:normal;color:var(--brand);
  background-image:linear-gradient(rgba(233,136,135,.32), rgba(233,136,135,.32));
  background-repeat:no-repeat;background-size:100% .22em;background-position:0 .88em}
.h-en--blue{color:var(--blue-deep)}
.h-en--blue::before{background:var(--blue-deep)}
.h-en--light::after{opacity:.35}
.h-en--light{color:#fff}
.h-en--light::before{background:var(--brand-vivid)}
.h-lb--light{color:#fff}
.lead{font-size:16px;line-height:2;color:var(--ink)}

/* ===== ヘッダー ===== */
.hd{position:fixed;inset:0 0 auto 0;z-index:120;height:78px;display:flex;align-items:center;
  background:transparent;border-bottom:1px solid transparent;
  transition:background .35s ease, border-color .35s ease, box-shadow .35s ease}
.hd.show{background:rgba(255,255,255,.97);backdrop-filter:blur(10px);
  border-bottom-color:var(--line);box-shadow:0 1px 2px rgba(21,22,28,.05)}
.hd .wrap{display:flex;align-items:center;width:100%;gap:30px}
.hd__brand{display:flex;align-items:center;gap:12px}
.hd__mark{height:44px;width:auto}
.hd__name{font-family:var(--serif);font-size:17.5px;font-weight:700;letter-spacing:.07em;color:#fff;
  transition:color .3s;white-space:nowrap}
.hd.show .hd__name{color:var(--dark)}
.hd__nav{display:flex;gap:30px;margin-left:auto;align-items:center}
.hd__nav a{font-size:14.5px;font-weight:500;color:#fff;position:relative;padding:6px 0;transition:color .3s}
.hd.show .hd__nav a{color:var(--dark)}
.hd__nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:right .3s}
.hd__nav a:hover::after{right:0}
.hd__call{position:relative}
.hd__tel{display:inline-flex;align-items:center;gap:8px;background:var(--brand-vivid);color:#fff;
  height:46px;padding:0 20px;border-radius:8px;font-size:14px;font-weight:700;
  border:0;cursor:pointer;font-family:var(--jp);transition:opacity .25s}
.hd__tel:hover{opacity:.88}
.hd__tel svg{width:15px;height:15px;fill:currentColor}
.hd__caret{width:13px !important;height:13px !important;margin-left:2px;opacity:.8;transition:transform .25s}
.hd__call:hover .hd__caret,.hd__call.open .hd__caret{transform:rotate(180deg)}
.hd__menu{position:absolute;right:0;top:calc(100% + 10px);min-width:284px;
  background:#fff;border-radius:10px;padding:8px;
  box-shadow:0 2px 6px rgba(21,22,28,.08), 0 16px 40px rgba(21,22,28,.16);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .22s ease, transform .22s ease, visibility .22s}
.hd__call:hover .hd__menu,.hd__call.open .hd__menu{opacity:1;visibility:visible;transform:none}
.hd__menu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.hd__menu a{display:block;padding:13px 16px;border-radius:7px;border-left:3px solid transparent;
  transition:background .2s}
.hd__menu a:hover{background:var(--bg2)}
.hd__menu-red{border-left-color:var(--brand-vivid) !important}
.hd__menu-blue{border-left-color:var(--blue-deep) !important}
.hd__menu-name{display:block;font-size:14px;font-weight:700;color:var(--dark);letter-spacing:.04em}
.hd__menu-num{display:block;font-family:var(--en);font-size:19px;font-weight:700;color:var(--dark);
  letter-spacing:.01em;line-height:1.35;margin-top:2px}
.hd__menu-red .hd__menu-num{color:var(--brand-vivid)}
.hd__menu-blue .hd__menu-num{color:var(--blue-deep)}
.hd__menu-time{display:block;font-size:12.5px;color:var(--label);margin-top:3px;letter-spacing:.02em}
.burger{display:none}

/* ===== ヒーロー ===== */
.hero{position:relative;height:100svh;min-height:620px;max-height:960px;overflow:hidden;background:#0b0c10}
.hero__media{position:absolute;inset:0;overflow:hidden}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 58%;
  transform:scale(1.02);animation:kb 34s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1.01)}to{transform:scale(1.08)}}
.hero__scrim{position:absolute;inset:0;
  background:
    radial-gradient(ellipse 58% 58% at 42% 52%, rgba(11,12,16,.2) 0%, rgba(11,12,16,.58) 68%, rgba(11,12,16,.8) 100%),
    linear-gradient(to bottom, rgba(11,12,16,.88) 0%, rgba(11,12,16,.42) 16%, transparent 34%),
    linear-gradient(to top, rgba(11,12,16,.66) 0%, transparent 36%)}
.hero__center{position:absolute;left:50%;top:50%;transform:translate(-50%,-56%);z-index:3;width:100%;
  padding:0 24px;display:flex;flex-direction:column;align-items:center;gap:26px}
.hero__center::before{content:"";position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);
  width:min(56vw,660px);aspect-ratio:1;border-radius:50%;z-index:-1;pointer-events:none;
  background:radial-gradient(circle, rgba(11,12,16,.74) 0%, rgba(11,12,16,.5) 42%, rgba(11,12,16,0) 72%)}
.hero__logo{width:min(27vw,308px);height:auto;filter:drop-shadow(0 6px 28px rgba(0,0,0,.6))}
.hero__tag{text-align:center;white-space:nowrap;font-size:inherit;font-weight:400}
.hero__tag b{display:block;font-size:clamp(17px,1.7vw,22px);font-weight:700;color:#fff;letter-spacing:.06em;
  text-shadow:0 2px 14px rgba(0,0,0,.5)}
.hero__tag span{display:block;font-family:var(--jp);font-size:13px;font-weight:500;letter-spacing:.3em;
  color:rgba(255,255,255,.78);margin-top:14px}

/* ヒーロー下部の2店舗バー（Ace pocket 固有。「入口はふたつ」を最初に見せる） */
.hero__shops{position:absolute;left:0;right:0;bottom:0;z-index:4;display:grid;grid-template-columns:1fr 1fr}
.hshop{position:relative;padding:30px 44px 32px;display:block;overflow:hidden;
  transition:padding-bottom .3s ease}
.hshop::before{content:"";position:absolute;inset:0;transition:opacity .3s}
.hshop--red::before{background:linear-gradient(rgba(158,63,59,.93), rgba(148,55,51,.96))}
.hshop--blue::before{background:linear-gradient(rgba(52,88,136,.93), rgba(45,78,124,.96))}
.hshop:hover::before{opacity:.86}
.hshop > *{position:relative;z-index:2}
.hshop__en{display:block;font-family:var(--serif);font-size:20px;font-weight:700;letter-spacing:.1em;color:#fff;line-height:1}
.hshop__jp{display:block;font-size:13.5px;color:rgba(255,255,255,.82);margin-top:9px;letter-spacing:.06em}
.hshop__row{display:flex;align-items:center;gap:16px;margin-top:14px;flex-wrap:wrap}
.hshop__time{font-family:var(--en);font-size:13.5px;color:rgba(255,255,255,.94);letter-spacing:.01em}
.hshop__note{display:block;margin-top:4px;font-family:var(--jp);font-size:12.5px;color:rgba(255,255,255,.78);letter-spacing:0}
.hshop__tel{display:inline-flex;align-items:center;gap:7px;font-family:var(--en);font-size:14px;font-weight:700;color:#fff}
.hshop__tel svg{width:13px;height:13px;fill:currentColor}
.hshop__go{position:absolute;right:40px;top:50%;transform:translateY(-50%);z-index:2;
  width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.55);
  display:flex;align-items:center;justify-content:center;transition:background .25s}
.hshop__go svg{width:13px;height:13px;fill:#fff}
.hshop:hover .hshop__go{background:rgba(255,255,255,.18)}
.cta-red{background:var(--brand-vivid)}
.cta-blue{background:var(--blue-deep)}

/* ===== はじめての方へ ===== */
/* 画面の左下からホールカード2枚が覗く（ポーカーのモチーフ。装飾のための装飾にしない） */
.deck{position:absolute;left:-118px;bottom:-70px;width:326px;height:auto;
  pointer-events:none;z-index:0;opacity:.34;transform:rotate(-5deg)}
.intro{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.intro__txt .h-jp{margin-bottom:30px}
.intro__tile{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:601/464;display:block;
  box-shadow:0 2px 6px rgba(21,22,28,.08), 0 18px 40px rgba(21,22,28,.12)}
.intro__tile img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.intro__tile:hover img{transform:scale(1.05)}
.intro__tile::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 46%, rgba(11,12,16,.72))}
.intro__cap{position:absolute;left:32px;right:32px;bottom:30px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px}
.intro__cap b{color:#fff;font-size:20px;font-weight:700;letter-spacing:.02em}
.arrow{flex:0 0 auto;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.2);
  border:1px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;transition:background .25s,border-color .25s}
.arrow svg{width:15px;height:15px;fill:#fff}
.intro__tile:hover .arrow{background:var(--brand-vivid);border-color:var(--brand-vivid)}

/* ===== INFORMATION ===== */
.info{background:var(--bg2)}
.info::before{display:none}
.info__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:44px}
.news{border-top:1px solid var(--line)}
.news a{display:grid;grid-template-columns:120px 1fr 48px;gap:24px;align-items:center;
  padding:26px 0;border-bottom:1px solid var(--line);transition:padding-left .3s}
.news a:hover{padding-left:10px}
.news time{font-family:var(--en);font-size:13px;font-weight:500;color:var(--label);letter-spacing:.04em}
.news p{font-size:16px;font-weight:500;color:var(--dark);line-height:1.75}
.news .arrow{width:44px;height:44px;background:transparent;border-color:var(--line)}
.news .arrow svg{fill:var(--dark)}
.news a:hover .arrow{background:var(--brand-vivid);border-color:var(--brand-vivid)}
.news a:hover .arrow svg{fill:#fff}
.link-more{display:inline-flex;align-items:center;gap:14px;font-size:14px;font-weight:700;color:var(--dark)}
.link-more .arrow{width:44px;height:44px;background:var(--brand);border-color:var(--brand)}
.link-more:hover .arrow{background:var(--brand-vivid);border-color:var(--brand-vivid)}

/* ===== GAMES ===== */
.games{display:grid;grid-template-columns:390px 1fr;gap:56px;align-items:start}
.games__txt{position:relative}
.games__txt::after{content:"";position:absolute;right:6px;bottom:-30px;width:124px;height:144px;
  background:rgba(233,136,135,.13);pointer-events:none;
  -webkit-mask:var(--spade) center/contain no-repeat;mask:var(--spade) center/contain no-repeat}
.games__tiles{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tile{position:relative;overflow:hidden;aspect-ratio:1/.66;display:block;border-radius:12px}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.3,1)}
.tile:hover img{transform:scale(1.06)}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 34%, rgba(11,12,16,.82))}
.tile__cap{position:absolute;left:28px;right:28px;bottom:26px;z-index:2}
.tile__cap b{display:block;font-size:19px;font-weight:700;color:#fff;letter-spacing:.02em;margin-bottom:7px}
.tile__cap span{display:block;font-size:13.5px;color:rgba(255,255,255,.82);line-height:1.7}
.games__txt .lead{margin:26px 0 34px}

/* ===== POKER ROOMS ===== */
.rooms__grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:52px}
.room{position:relative;overflow:hidden;border-radius:16px;aspect-ratio:1/.82;display:flex;align-items:center;justify-content:center;text-align:center;
  box-shadow:0 2px 6px rgba(21,22,28,.1), 0 20px 44px rgba(21,22,28,.14)}
.room img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.3,1)}
.room:hover img{transform:scale(1.06)}
.room::after{content:"";position:absolute;inset:0}
/* 桜木町の写真が明るい内装に変わったので、中間のベールを濃くして白文字を読めるようにする */
.room--red::after{background:linear-gradient(rgba(11,12,16,.78) 0%, rgba(116,42,40,.76) 40%, rgba(11,12,16,.9) 100%)}
.room--blue::after{background:linear-gradient(rgba(11,12,16,.78) 0%, rgba(34,60,98,.76) 40%, rgba(11,12,16,.9) 100%)}
.room__in{position:relative;z-index:2;padding:32px}
.room__en{font-family:var(--serif);font-weight:700;font-size:clamp(28px,3.4vw,46px);line-height:1.1;color:#fff;letter-spacing:.06em}
.room__jp{font-size:14px;color:rgba(255,255,255,.86);margin-top:14px;letter-spacing:.06em}
.room__hr{width:38px;height:2px;margin:26px auto;background:var(--brand-vivid)}
.room--blue .room__hr{background:var(--blue)}
.room__data{font-family:var(--en);font-size:13.5px;color:rgba(255,255,255,.9);line-height:2;letter-spacing:.02em}
.room__data em{font-style:normal;font-family:var(--jp)}
.room__note{font-style:normal;font-family:var(--jp);font-size:13px;color:rgba(255,255,255,.72)}
.room__more{display:inline-flex;align-items:center;gap:10px;margin-top:26px;height:46px;padding:0 24px;
  border:1px solid rgba(255,255,255,.6);border-radius:8px;color:#fff;font-size:13.5px;font-weight:700;transition:background .25s,border-color .25s}
.room__more svg{width:13px;height:13px;fill:#fff}
.room--red .room__more:hover{background:var(--brand-vivid);border-color:var(--brand-vivid)}
.room--blue .room__more:hover{background:var(--blue-deep);border-color:var(--blue-deep)}

/* ===== PRICE ===== */
.price{background:linear-gradient(180deg, var(--veil) 0%, rgba(233,136,135,.02) 60%, #fff 100%)}
.price__grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:52px;align-items:stretch}
.price__col{background:#fff;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 1px 2px rgba(21,22,28,.05), 0 10px 28px rgba(21,22,28,.07)}
.price__col h3{font-family:var(--en);font-size:15px;font-weight:700;letter-spacing:.14em;
  padding:28px 32px 20px;border-bottom:2px solid}
.price--red h3{color:var(--brand-vivid);border-color:var(--brand-vivid)}
.price--blue h3{color:var(--blue-deep);border-color:var(--blue-deep)}
.price__col h3 em{display:block;font-style:normal;font-family:var(--jp);font-size:12px;font-weight:500;color:var(--label);letter-spacing:.06em;margin-top:7px}
.price__col dl{padding:0 32px;flex:1}
.price__row{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--line)}
.price__row:last-child{border-bottom:none;padding-bottom:26px}
.price__row dt{font-size:14.5px;font-weight:500;color:var(--dark);line-height:1.65}
.price__row dt small{display:block;font-size:12.5px;color:var(--label);font-weight:400;margin-top:3px;line-height:1.6}
.price__row dd{font-family:var(--en);font-size:15px;font-weight:600;color:var(--dark);text-align:right;line-height:1.85;letter-spacing:.01em;white-space:nowrap}
.price__hl{margin:0;padding:24px 32px;background:rgba(233,136,135,.09);border-top:1px solid var(--line)}
.price--blue .price__hl{background:rgba(64,103,159,.07)}
.price__hl span{display:block;font-size:13.5px;color:var(--label);margin-bottom:6px}
.price__hl b{font-family:var(--en);font-size:24px;font-weight:700;color:var(--brand-vivid);letter-spacing:.01em}
.price--blue .price__hl b{color:var(--blue-deep)}
.price__note{margin-top:40px;font-size:13px;color:var(--label);line-height:1.9}

/* ===== ABOUT ===== */
.about{position:relative;padding:104px 0 96px;background:var(--deep);overflow:hidden}
.about__spade{position:absolute;right:60px;top:50%;transform:translateY(-50%);width:300px;height:auto;
  opacity:.06;pointer-events:none}
.about__body{margin-top:44px;font-size:17px;line-height:2.3;color:rgba(255,255,255,.9)}
.about__body em{font-style:normal;font-family:var(--en);font-size:13px;letter-spacing:.3em;
  color:rgba(255,255,255,.45);display:block;margin-top:28px}

/* ===== フッター ===== */
.ft{background:var(--footer);padding:76px 0 0}
.ft__top{display:grid;grid-template-columns:260px 1fr;gap:56px;align-items:start}
.ft__logo{width:132px}
.ft__shops{display:grid;gap:38px}
.ft__shop b{font-family:var(--en);font-size:15px;font-weight:700;color:var(--dark);letter-spacing:.06em}
.ft__shop .sns{display:inline-flex;gap:12px;margin-left:12px;transform:translateY(3px)}
.ft__shop .sns a{width:18px;height:18px;display:block;opacity:.7;transition:opacity .25s}
.ft__shop .sns a:hover{opacity:1}
.ft__shop .sns svg{width:100%;height:100%;fill:var(--dark)}
.ft__shop p{font-size:14px;color:var(--dark);margin-top:9px;line-height:1.85}
.ft__shop small{display:block;font-size:13.5px;color:var(--label);margin-top:4px;line-height:1.8}
.ft__tel{font-family:var(--en);font-size:14px;font-weight:600;letter-spacing:.02em}
.ft__note{grid-column:2;font-size:13.5px;color:var(--label);margin-top:26px;line-height:1.9}
.ft__bottom{margin-top:76px;border-top:1px solid #e2e0dd;padding:26px 0 34px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.ft__links{display:flex;gap:26px;flex-wrap:wrap}
.ft__links a{font-size:13.5px;color:var(--dark);transition:color .25s}
.ft__links a:hover{color:var(--brand-vivid)}
.ft__cr{font-family:var(--en);font-size:12.5px;color:var(--label);letter-spacing:.02em}

/* ===== SP固定バー ===== */
.spbar{display:none}

/* ===== フェード ===== */
.fade{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}
.fade.in{opacity:1;transform:none}

/* ===== レスポンシブ ===== */
@media (max-width:1180px){
  .games{grid-template-columns:1fr;gap:40px}
  .hshop{padding:24px 30px 26px}
  .hshop__go{right:24px}
}
@media (max-width:900px){
  :root{--pad:26px}
  .sect{padding:62px 0 46px}
  .intro{grid-template-columns:1fr;gap:36px}
  .price__grid{grid-template-columns:1fr;gap:24px}
  .ft__top{grid-template-columns:1fr;gap:36px}
  .ft__note{grid-column:1;margin-top:0}
}
@media (max-width:720px){
  .hd{transform:none;height:64px}
  .hd__nav,.hd__call{display:none}
  .burger{display:flex;flex-direction:column;gap:5px;margin-left:auto;background:none;border:0;padding:8px;cursor:pointer}
  .burger span{display:block;width:22px;height:2px;background:var(--dark)}
  .hero{height:100svh;padding-top:64px}
  .hero__center{transform:translate(-50%,-58%);gap:20px}
  .hero__logo{width:min(48vw,210px)}
  .hero__tag b{font-size:16.5px}
  .hero__tag span{font-size:12px;letter-spacing:.16em;margin-top:12px}
  .hero__shops{bottom:70px;grid-template-columns:1fr 1fr}
  .hshop{padding:15px 16px 16px}
  .hshop__en{font-size:14px;letter-spacing:.06em}
  .hshop__jp{font-size:12.5px;margin-top:6px;line-height:1.55}
  .hshop__row{margin-top:9px;gap:6px;flex-direction:column;align-items:flex-start}
  .hshop__time{font-size:12px;line-height:1.6}
  .hshop__tel{display:none}
  .hshop__sub{display:none}
  .hshop__go{display:none}
  .hd__mark{height:38px}
  .hd__name{font-size:15px}
  .burger span{background:#fff}
  .hd.show .burger span{background:var(--dark)}
  .games__tiles{grid-template-columns:1fr;gap:12px}
  .rooms__grid{gap:16px}
  .intro__cap{left:20px;right:20px;bottom:22px}
  .intro__cap b{font-size:16px}
  .arrow{width:42px;height:42px}
  .deck{left:auto;right:-96px;bottom:auto;top:-22px;width:296px;opacity:.29;transform:rotate(8deg)}
  .games__txt::after{width:84px;height:98px;right:0;bottom:-14px;opacity:.85}
  .rooms__grid{grid-template-columns:1fr}
  /* 比率で高さを決めると中身が増えたとき下だけ切れる（英字見出しとボタンが消えていた）→ 中身なりに */
  .room{aspect-ratio:auto;min-height:330px}
  .price__col h3{padding:24px 22px 18px}
  .price__col dl{padding:0 22px}
  .price__hl{padding:22px 22px}
  .price__row{grid-template-columns:1fr;gap:6px;padding:18px 0}
  .price__row dt{font-size:14px}
  .price__row dd{font-size:14.5px;text-align:right;white-space:normal}
  .games__tiles{grid-template-columns:1fr}
  .news a{grid-template-columns:1fr;gap:8px;padding:20px 0}
  .news .arrow{display:none}
  .about{padding:62px 0 56px}
  .about__body{font-size:15.5px;line-height:2.15}
  .spbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:110;
    padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line)}
  .spbar a{display:flex;align-items:center;justify-content:center;gap:7px;height:50px;border-radius:8px;color:#fff;font-weight:700;font-size:14px}
  .spbar svg{width:14px;height:14px;fill:currentColor}
  /* 店舗ページは自分の店の1本だけ（他店の番号を並べない） */
  .spbar--solo{grid-template-columns:1fr}
  .spbar--solo a{gap:10px;height:52px}
  .spbar__n{font-size:14px}
  .spbar__t{font-family:var(--en);font-size:17px;font-weight:700;letter-spacing:.01em}
  .ft{padding-bottom:76px}
}

/* ============================================================
   下層ページ共通
   ============================================================ */
.page{background:var(--deep);position:relative;overflow:hidden;padding:132px 0 70px}
.page__cards{position:absolute;right:-70px;top:-40px;width:360px;opacity:.13;pointer-events:none;transform:rotate(6deg)}
.page .wrap{position:relative;z-index:1}
.page__lb{font-family:var(--jp);font-size:clamp(28px,3.4vw,44px);font-weight:900;line-height:1.4;
  color:#fff;margin-top:16px;letter-spacing:.02em}
.page__lead{margin-top:26px;font-size:15.5px;line-height:2.1;color:rgba(255,255,255,.78);max-width:44em}
.crumb{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--label);
  padding:22px 0 0;letter-spacing:.04em}
.crumb a:hover{color:var(--brand-vivid)}
.crumb span{opacity:.5}

/* ===== アンバサダー ===== */
.amb{padding-top:104px;padding-bottom:40px;position:relative;overflow:hidden}
.amb__intro{max-width:46em}
.amb__intro .lead{margin-top:24px}
.amb__list{margin-top:76px;display:grid;gap:96px}
.amb__item{display:grid;grid-template-columns:minmax(0,440px) 1fr;gap:64px;align-items:center}
.amb__item:nth-child(even){grid-template-columns:1fr minmax(0,440px)}
.amb__item:nth-child(even) .amb__photo{order:2}
.amb__photo{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:3/4;
  box-shadow:0 3px 8px rgba(21,22,28,.1), 0 24px 54px rgba(21,22,28,.16)}
.amb__photo img{width:100%;height:100%;object-fit:cover;object-position:50% 4%;
  transition:transform .9s cubic-bezier(.2,.7,.3,1)}
.amb__item:hover .amb__photo img{transform:scale(1.04)}
.amb__badge{position:absolute;left:0;top:26px;z-index:2;
  background:var(--brand-vivid);color:#fff;font-family:var(--en);font-size:12.5px;font-weight:700;
  letter-spacing:.2em;padding:8px 16px 8px 20px;border-radius:0 6px 6px 0}
.amb--blue .amb__badge{background:var(--blue-deep)}
.amb__en{font-family:var(--serif);font-size:13px;font-weight:700;letter-spacing:.26em;color:var(--brand)}
.amb--blue .amb__en{color:var(--blue-deep)}
.amb__name{font-size:clamp(28px,3vw,38px);font-weight:900;color:var(--head);line-height:1.35;margin-top:12px;letter-spacing:.02em}
.amb__name small{display:block;font-family:var(--en);font-size:13px;font-weight:500;color:var(--label);
  letter-spacing:.16em;margin-top:10px}
.amb__meta{margin-top:24px;border-top:1px solid var(--line);display:grid;gap:0}
.amb__row{display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:baseline;
  padding:14px 0;border-bottom:1px solid var(--line)}
.amb__row dt{font-size:11.5px;color:var(--label);letter-spacing:.08em;font-weight:500}
.amb__row dd{font-size:14.5px;color:var(--ink);line-height:1.8}
.amb__text{margin-top:24px;font-size:15px;line-height:2.05;color:var(--ink)}
.amb__sns{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}
.amb__sns a{display:inline-flex;align-items:center;gap:9px;height:44px;padding:0 20px;
  border:1px solid var(--line);border-radius:8px;font-size:13px;font-weight:700;color:var(--dark);
  transition:background .25s,border-color .25s,color .25s}
.amb__sns a:hover{background:var(--dark);border-color:var(--dark);color:#fff}
.amb__sns svg{width:14px;height:14px;fill:currentColor}
.amb__note{margin-top:84px;padding:26px 30px;background:var(--bg2);border-radius:12px;
  font-size:13px;line-height:1.95;color:var(--label)}

/* ===== 下層のCTA ===== */
.pcta{background:var(--bg2);padding:78px 0}
.pcta__in{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.pcta h2{font-size:clamp(22px,2.4vw,30px);font-weight:900;color:var(--head);line-height:1.55}
.pcta p{margin-top:14px;font-size:14.5px;color:var(--ink)}
.pcta__btns{display:grid;gap:12px}
.pcta__btns a{display:flex;align-items:center;justify-content:space-between;gap:26px;
  min-width:310px;height:66px;padding:0 24px;border-radius:10px;color:#fff;transition:opacity .25s}
.pcta__btns a:hover{opacity:.9}
.pcta__btns .n{font-size:12.5px;font-weight:700;letter-spacing:.06em}
.pcta__btns .t{font-family:var(--en);font-size:21px;font-weight:700;letter-spacing:.01em}

@media (max-width:900px){
  .page{padding:96px 0 52px}
  .amb__item,.amb__item:nth-child(even){grid-template-columns:1fr;gap:30px}
  .amb__item:nth-child(even) .amb__photo{order:0}
  .amb__list{gap:70px;margin-top:56px}
  .pcta__in{grid-template-columns:1fr;gap:26px}
  .pcta__btns a{min-width:0}
}
@media (max-width:720px){
  .page__cards{width:230px;right:-80px;opacity:.1}
  .amb{padding-top:72px;padding-bottom:30px}
  .amb__note{margin-top:56px;padding:22px}
}

/* ===== RESULTS（実績） ===== */
.results{background:var(--bg2)}
.results__grid{display:grid;grid-template-columns:minmax(0,400px) 1fr;gap:64px;align-items:start;margin-top:52px}
.results__photo{border-radius:16px;overflow:hidden;
  box-shadow:0 3px 8px rgba(21,22,28,.1), 0 22px 50px rgba(21,22,28,.15)}
.results__photo img{width:100%;height:auto;display:block;transition:transform .9s cubic-bezier(.2,.7,.3,1)}
.results__photo:hover img{transform:scale(1.03)}
.results__list{margin-top:34px;border-top:1px solid var(--line)}
.results__row{display:grid;grid-template-columns:132px 1fr;gap:22px;align-items:baseline;
  padding:17px 0;border-bottom:1px solid var(--line)}
.results__row dt{font-family:var(--en);font-size:14.5px;font-weight:700;color:var(--head);letter-spacing:.02em}
.results__row dd{font-size:14px;color:var(--ink);line-height:1.7}
.results__row dd b{font-weight:700;color:var(--brand-vivid)}
.results__row dd span{display:block;font-size:12px;color:var(--label);margin-top:3px}
.results__note{margin-top:22px;font-size:13.5px;color:var(--label)}

/* ===== 主催イベント ===== */
.event{background:var(--deep);color:#fff}
.event::before{display:none}
.event__grid{display:grid;grid-template-columns:1fr minmax(0,460px);gap:60px;align-items:center;margin-top:50px}
.event__lead{font-size:16px;line-height:2.05;color:rgba(255,255,255,.86)}
.event__meta{margin-top:32px;border-top:1px solid rgba(255,255,255,.16)}
.event__row{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:baseline;
  padding:15px 0;border-bottom:1px solid rgba(255,255,255,.16)}
.event__row dt{font-size:13px;color:rgba(255,255,255,.5);letter-spacing:.08em}
.event__row dd{font-size:14.5px;color:#fff;line-height:1.75}
.link-more--light{color:#fff;margin-top:34px}
.link-more--light .arrow{background:var(--brand-vivid);border-color:var(--brand-vivid)}
.event__banners{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.event__banners img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;
  box-shadow:0 3px 10px rgba(0,0,0,.35);transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.event__banners img:hover{transform:translateY(-4px)}

@media (max-width:900px){
  .results__grid{grid-template-columns:1fr;gap:34px}
  .event__grid{grid-template-columns:1fr;gap:36px}
  .results__row{grid-template-columns:1fr;gap:5px;padding:15px 0}
}
@media (max-width:720px){
  .event__banners{gap:12px}
}


/* ===== メインアンバサダー ===== */
.amb__main{display:grid;grid-template-columns:minmax(0,460px) 1fr;gap:64px;align-items:center;margin-top:56px}
.amb__main .amb__photo{aspect-ratio:980/1256}
.amb__main .amb__photo img{object-position:50% 50%}
.amb__crown{display:inline-flex;align-items:center;gap:9px;background:var(--head);color:#fff;
  font-family:var(--en);font-size:12.5px;font-weight:700;letter-spacing:.18em;padding:9px 18px;border-radius:6px}
.amb__title{margin-top:22px;font-size:clamp(30px,3.4vw,44px);font-weight:900;color:var(--head);line-height:1.3;letter-spacing:.02em}
.amb__sub{margin-top:12px;font-size:14px;color:var(--label);letter-spacing:.06em}
.amb__award{margin-top:26px;padding:22px 26px;border-radius:12px;background:var(--veil);
  border-left:3px solid var(--brand-vivid)}
.amb__award span{display:block;font-family:var(--en);font-size:11.5px;font-weight:700;letter-spacing:.16em;color:var(--brand);margin-bottom:8px}
.amb__award b{display:block;font-size:19px;font-weight:900;color:var(--head);line-height:1.5}
.amb__award small{display:block;font-size:12.5px;color:var(--label);margin-top:6px}

/* ===== 女性アンバサダー（集合） ===== */
.ambg{margin-top:96px}
.ambg__photo{margin-top:36px;max-width:620px;margin-left:auto;margin-right:auto;border-radius:16px;overflow:hidden;
  box-shadow:0 3px 8px rgba(21,22,28,.1), 0 22px 50px rgba(21,22,28,.15)}
.ambg__photo img{width:100%;height:auto;display:block}
.ambg__cap{margin-top:20px;font-size:13px;color:var(--label);line-height:1.9}

@media (max-width:900px){
  .amb__main{grid-template-columns:1fr;gap:32px}
  .ambg{margin-top:64px}
}

/* ===== 初心者講習パック（チケット） ===== */
/* 白い箱に詰めない。1枚のチケットとして、半券／本券をミシン目で分ける */
.pack{position:relative;margin-top:44px;display:grid;grid-template-columns:minmax(0,214px) 1fr;
  background:rgba(233,136,135,.13);border-radius:12px;
  box-shadow:0 2px 6px rgba(21,22,28,.06), 0 16px 38px rgba(21,22,28,.10)}
/* ミシン目の上下にあく穴 */
.pack::before,.pack::after{content:"";position:absolute;left:214px;transform:translateX(-50%);
  width:18px;height:18px;border-radius:50%;background:#fff;z-index:2}
.pack::before{top:-9px}
.pack::after{bottom:-9px}
/* 半券（左） */
.pack__l{position:relative;padding:32px 26px 30px}
.pack__l::after{content:"";position:absolute;right:-1px;top:8px;bottom:8px;width:2px;
  background-image:linear-gradient(rgba(160,29,38,.34) 52%, transparent 52%);
  background-size:2px 9px;background-repeat:repeat-y}
.pack__lb{font-family:var(--en);font-size:12px;font-weight:700;letter-spacing:.26em;color:var(--brand);
  display:flex;align-items:center;gap:9px}
.pack__lb::before{content:"";width:11px;height:13px;background:var(--brand);
  -webkit-mask:var(--spade) center/contain no-repeat;mask:var(--spade) center/contain no-repeat}
.pack__name{margin-top:14px;font-size:15px;font-weight:900;color:var(--head);letter-spacing:.02em;line-height:1.5}
.pack__price{margin-top:8px;font-family:var(--en);font-size:46px;font-weight:700;color:var(--brand-vivid);
  line-height:1;letter-spacing:-.01em}
.pack__price .y{font-size:26px;font-weight:600;margin-right:3px;vertical-align:.1em}
.pack__both{margin-top:20px;font-size:13.5px;line-height:1.75;color:var(--ink)}
.pack__both b{display:inline-block;font-weight:900;color:var(--brand);font-size:14.5px;margin-top:3px;
  background-image:linear-gradient(rgba(233,136,135,.5), rgba(233,136,135,.5));
  background-repeat:no-repeat;background-size:100% .3em;background-position:0 .88em}
/* 本券（右） */
.pack__r{padding:16px 30px 16px 34px;display:flex;flex-direction:column;justify-content:center}
.pack__row{display:grid;grid-template-columns:86px 1fr;gap:18px;align-items:baseline;
  padding:15px 0;border-bottom:1px solid rgba(160,29,38,.15)}
.pack__row:last-child{border-bottom:none}
.pack__row dt{font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--brand)}
.pack__row dd{font-size:14.5px;color:var(--head);font-weight:500;line-height:1.6}

/* ===== 関内店のトーナメント ===== */
.trn{margin-top:82px}
.trn__head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap}
.trn__ap{max-width:26em;font-size:13.5px;line-height:1.9;color:var(--ink)}
.trn__ap b{font-family:var(--en);font-size:16px;font-weight:700;color:var(--blue-deep)}
.trn__grid{margin-top:36px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.trn__card{background:#fff;border-radius:12px;padding:26px 24px 24px;border:1px solid var(--line);
  transition:transform .3s ease, box-shadow .3s ease}
.trn__card:hover{transform:translateY(-3px);box-shadow:0 2px 6px rgba(21,22,28,.06), 0 16px 34px rgba(21,22,28,.1)}
.trn__card--hl{background:linear-gradient(180deg, rgba(64,103,159,.055), #fff);border-color:rgba(64,103,159,.28)}
.trn__en{font-family:var(--en);font-size:15px;font-weight:700;line-height:1.45;color:var(--blue-deep);letter-spacing:.04em}
.trn__en small{display:block;font-size:12.5px;font-weight:500;color:var(--label);letter-spacing:.06em;margin-top:3px}
.trn__price{margin-top:16px;font-family:var(--en);font-size:26px;font-weight:700;color:var(--head);line-height:1}
.trn__price span{font-family:var(--jp);font-size:14px;font-weight:700;margin-left:3px}
.trn__txt{margin-top:14px;font-size:13.5px;line-height:1.85;color:var(--ink)}
.trn__txt small{display:block;font-size:13px;color:var(--label);margin-top:6px}
.trn__note{margin-top:26px;font-size:13.5px;color:var(--label)}

@media (max-width:900px){
  .trn__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .pack{grid-template-columns:1fr}
  .pack::before,.pack::after{display:none}
  .pack__l{padding:24px 22px 22px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px 16px}
  .pack__l::after{right:14px;left:14px;top:auto;bottom:-1px;width:auto;height:2px;
    background-image:linear-gradient(90deg, rgba(160,29,38,.34) 52%, transparent 52%);
    background-size:9px 2px;background-repeat:repeat-x}
  .pack__lb{grid-column:1/-1}
  .pack__name{margin-top:4px}
  .pack__price{margin-top:0;font-size:36px;text-align:right}
  .pack__both{grid-column:1/-1;margin-top:10px}
  .pack__r{padding:6px 22px}
  .pack__row{grid-template-columns:76px 1fr;gap:12px;padding:12px 0}
  .pack__row dd{font-size:13.5px}
  .trn{margin-top:56px}
  .trn__grid{grid-template-columns:1fr;gap:12px}
}

/* ===== Q&A ===== */
.qa{background:var(--bg2)}
.qa__list{margin-top:44px;border-top:1px solid var(--line)}
.qa__item{border-bottom:1px solid var(--line)}
.qa__q{width:100%;display:flex;align-items:flex-start;gap:16px;background:none;border:0;cursor:pointer;
  font-family:var(--jp);font-size:16px;font-weight:700;color:var(--head);text-align:left;
  line-height:1.7;padding:24px 44px 24px 0;position:relative;transition:color .25s}
.qa__q:hover{color:var(--brand)}
.qa__mk{flex:0 0 auto;font-family:var(--en);font-size:15px;font-weight:700;color:var(--brand-vivid);
  line-height:1.75}
.qa__q i{position:absolute;right:4px;top:29px;width:15px;height:15px}
.qa__q i::before,.qa__q i::after{content:"";position:absolute;background:var(--brand);
  transition:transform .3s ease, opacity .3s ease}
.qa__q i::before{left:0;top:7px;width:15px;height:1.5px}
.qa__q i::after{left:6.75px;top:0;width:1.5px;height:15px}
.qa__item.open .qa__q i::after{transform:scaleY(0);opacity:0}
.qa__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .38s cubic-bezier(.2,.7,.3,1)}
.qa__item.open .qa__a{grid-template-rows:1fr}
.qa__a > div{overflow:hidden}
.qa__a p{padding:0 44px 26px 31px;font-size:14.5px;line-height:2;color:var(--ink)}
.qa__a b{font-weight:700;color:var(--head)}

/* ===== ACCESS ===== */
.access__grid{margin-top:52px;display:grid;grid-template-columns:1fr 1fr;gap:32px}
.acc{background:#fff;border-radius:14px;overflow:hidden;
  box-shadow:0 2px 6px rgba(21,22,28,.06), 0 14px 34px rgba(21,22,28,.09)}
.acc__map{position:relative;aspect-ratio:16/9;background:var(--bg2)}
.acc__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.acc__body{padding:26px 28px 28px;border-top:3px solid}
.acc--red .acc__body{border-color:var(--brand-vivid)}
.acc--blue .acc__body{border-color:var(--blue-deep)}
.acc__en{font-family:var(--serif);font-size:16px;font-weight:700;letter-spacing:.14em}
.acc--red .acc__en{color:var(--brand-vivid)}
.acc--blue .acc__en{color:var(--blue-deep)}
.acc__name{font-size:13px;color:var(--label);margin-top:6px;letter-spacing:.04em}
.acc__meta{margin-top:20px;border-top:1px solid var(--line)}
.acc__row{display:grid;grid-template-columns:76px 1fr;gap:18px;align-items:baseline;
  padding:14px 0;border-bottom:1px solid var(--line)}
.acc__row dt{font-size:13px;color:var(--label);letter-spacing:.08em;font-weight:500}
.acc__row dd{font-size:14px;color:var(--head);line-height:1.75}
.acc__row dd small{display:block;margin-top:7px;font-size:13px;font-weight:700;color:var(--brand-vivid);line-height:1.7}
.shop--blue .acc__row dd small{color:var(--blue-deep)}
.acc__tel{display:inline-block;margin-top:20px;font-family:var(--en);font-size:23px;font-weight:700;
  color:var(--head);letter-spacing:.01em;transition:color .25s}
.acc--red .acc__tel:hover{color:var(--brand-vivid)}
.acc--blue .acc__tel:hover{color:var(--blue-deep)}

/* ===== RECRUIT ===== */
.rec{background:var(--bg2)}
.rec__head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;flex-wrap:wrap}
.rec__lead{max-width:28em;font-size:14.5px;line-height:2;color:var(--ink)}
.rec__lead b{font-weight:900;color:var(--brand)}
.rec__grid{margin-top:46px;display:grid;grid-template-columns:1fr minmax(0,330px);gap:40px;align-items:start}
.rec__table{background:#fff;border-radius:14px;padding:8px 30px;
  box-shadow:0 2px 6px rgba(21,22,28,.05), 0 12px 30px rgba(21,22,28,.07)}
.rec__row{display:grid;grid-template-columns:104px 1fr;gap:22px;align-items:baseline;
  padding:20px 0;border-bottom:1px solid var(--line)}
.rec__row:last-child{border-bottom:none}
.rec__row dt{font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--brand)}
.rec__row dd{font-size:14.5px;color:var(--head);line-height:1.75}
.rec__row dd small{display:block;font-size:12px;color:var(--label);margin-top:5px;line-height:1.7}
.rec__row dd b{font-weight:900}
.rec__pay{font-family:var(--en);font-size:22px;color:var(--brand-vivid);letter-spacing:.01em}
.rec__cta{background:var(--deep);border-radius:14px;padding:28px 26px 26px;display:grid;gap:11px}
.rec__cta-t{font-size:15px;font-weight:700;color:#fff;line-height:1.75;margin-bottom:6px}
.rec__cta a{display:flex;align-items:center;justify-content:space-between;gap:20px;
  height:62px;padding:0 22px;border-radius:10px;color:#fff;transition:opacity .25s}
.rec__cta a:hover{opacity:.9}
.rec__cta .n{font-size:12px;font-weight:700;letter-spacing:.06em}
.rec__cta .t{font-family:var(--en);font-size:19px;font-weight:700}
.rec__cta-n{font-size:13px;color:rgba(255,255,255,.55);margin-top:4px}

@media (max-width:900px){
  .access__grid{grid-template-columns:1fr;gap:24px}
  .rec__grid{grid-template-columns:1fr;gap:26px}
}
@media (max-width:720px){
  .qa__q{font-size:15px;padding:20px 38px 20px 0;gap:12px}
  .qa__a p{padding:0 34px 22px 27px;font-size:14px}
  .acc__body{padding:22px 22px 24px}
  .acc__row{grid-template-columns:68px 1fr;gap:14px}
  .rec__table{padding:6px 22px}
  .rec__row{grid-template-columns:1fr;gap:6px;padding:16px 0}
}

/* ============================================================
   店舗詳細ページ
   ============================================================ */
.shop .hd{position:sticky}
/* ヒーロー */
.shero{position:relative;height:60svh;min-height:430px;max-height:620px;overflow:hidden;background:var(--deep);
  display:flex;align-items:center;padding-bottom:76px}
.shero__media{position:absolute;inset:0}
.shero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 54%;
  transform:scale(1.02);animation:kb 34s ease-in-out infinite alternate}
.shero__scrim{position:absolute;inset:0;
  background:linear-gradient(102deg, rgba(11,12,16,.9) 0%, rgba(11,12,16,.72) 42%, rgba(11,12,16,.4) 76%, rgba(11,12,16,.5) 100%),
             linear-gradient(to bottom, rgba(11,12,16,.62) 0%, transparent 30%)}
.shero__in{position:relative;z-index:2;width:100%;padding-top:60px}
.shero__logo{display:block;width:min(14vw,150px);height:auto;margin-bottom:18px;
  filter:drop-shadow(0 6px 24px rgba(0,0,0,.55))}
.shero__en{font-family:var(--serif);font-size:clamp(27px,4.4vw,58px);font-weight:700;letter-spacing:.08em;
  color:#fff;line-height:1;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.shero__name{margin-top:16px;font-size:15px;font-weight:500;color:rgba(255,255,255,.86);letter-spacing:.08em}
.shero__name span{display:inline-block}
.shero__name span:first-child::after{content:"\3000"}
.shero__catch{margin-top:26px;font-size:clamp(18px,2.3vw,28px);font-weight:900;color:#fff;letter-spacing:.03em;
  text-shadow:0 2px 16px rgba(0,0,0,.5)}
.shero__bar{position:absolute;left:0;right:0;bottom:0;z-index:2;
  background:rgba(11,12,16,.62);backdrop-filter:blur(6px);border-top:1px solid rgba(255,255,255,.16)}
.shop--red .shero__bar{border-top-color:var(--brand-vivid)}
.shop--blue .shero__bar{border-top-color:var(--blue)}
.shero__bar-in{display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding-top:17px;padding-bottom:17px;flex-wrap:wrap}
.shero__time{font-family:var(--en);font-size:14px;color:rgba(255,255,255,.92);letter-spacing:.02em}
.shero__note{display:block;margin-top:5px;font-family:var(--jp);font-size:13px;color:rgba(255,255,255,.76);letter-spacing:0}
.shop--red .shero{padding-bottom:100px}
.shero__tel{display:inline-flex;align-items:center;gap:9px;font-family:var(--en);font-size:20px;font-weight:700;color:#fff}
.shero__tel svg{width:15px;height:15px;fill:currentColor}
.shop .crumb{padding-top:26px}

/* この店について */
.sfeat{display:grid;grid-template-columns:1fr minmax(0,440px);gap:64px;align-items:start}
.sfeat__txt .lead{margin-top:26px}
.sfeat__pts{display:grid;gap:14px}
.spt{background:#fff;border-radius:12px;padding:20px 22px;border:1px solid var(--line);
  display:grid;grid-template-columns:38px 1fr;gap:4px 14px;align-items:baseline}
.spt__n{grid-row:1/3;font-family:var(--en);font-size:15px;font-weight:700;color:var(--brand-vivid);line-height:1.5}
.shop--blue .spt__n{color:var(--blue-deep)}
.spt b{font-size:15px;font-weight:900;color:var(--head);letter-spacing:.02em}
.spt span{font-size:14.5px;color:var(--ink);line-height:1.8}

/* 遊べるゲーム */
.sgame{background:var(--bg2)}
.sgame__grid{margin-top:46px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sgame__card{background:#fff;border-radius:12px;padding:28px 26px;border:1px solid var(--line);
  transition:transform .3s ease, box-shadow .3s ease}
.sgame__card:hover{transform:translateY(-3px);box-shadow:0 2px 6px rgba(21,22,28,.06), 0 16px 34px rgba(21,22,28,.1)}
.sgame__en{font-family:var(--en);font-size:12.5px;font-weight:700;letter-spacing:.2em;color:var(--brand-vivid)}
.shop--blue .sgame__en{color:var(--blue-deep)}
.sgame__name{margin-top:12px;font-size:18px;font-weight:900;color:var(--head);letter-spacing:.02em}
.sgame__txt{margin-top:14px;font-size:14px;line-height:1.95;color:var(--ink)}

/* 料金 */
.sprice__wrap{margin-top:48px;background:#fff;border-radius:14px;overflow:hidden;
  box-shadow:0 2px 6px rgba(21,22,28,.05), 0 12px 30px rgba(21,22,28,.08)}
.sprice__list{padding:8px 34px}
.sprice__row{display:grid;grid-template-columns:1fr auto;gap:26px;align-items:baseline;
  padding:21px 0;border-bottom:1px solid var(--line)}
.sprice__row:last-child{border-bottom:none}
.sprice__row dt{font-size:15px;font-weight:500;color:var(--head);line-height:1.65}
.sprice__row dt small{display:block;font-size:12.5px;color:var(--label);font-weight:400;margin-top:4px;line-height:1.65}
.sprice__row dd{font-family:var(--en);font-size:15.5px;font-weight:600;color:var(--head);text-align:right;
  line-height:1.85;white-space:nowrap}
.sprice__hl{padding:24px 34px;background:rgba(233,136,135,.09);border-top:1px solid var(--line)}
.sprice__hl--blue{background:rgba(64,103,159,.07)}
.sprice__hl span{display:block;font-size:13.5px;color:var(--label);margin-bottom:7px}
.sprice__hl b{font-family:var(--en);font-size:26px;font-weight:700;color:var(--brand-vivid);letter-spacing:.01em}
.sprice__hl--blue b{color:var(--blue-deep)}
.sprice__note{margin-top:26px;font-size:13.5px;color:var(--label);line-height:1.9}

/* アクセス */
.saccess__grid{margin-top:48px;display:grid;grid-template-columns:1fr minmax(0,440px);gap:44px;align-items:start}
.saccess__map{border-radius:14px;overflow:hidden;aspect-ratio:16/10;background:var(--bg2);
  box-shadow:0 2px 6px rgba(21,22,28,.06), 0 12px 30px rgba(21,22,28,.09)}
.saccess__map iframe{width:100%;height:100%;border:0;display:block}
.saccess__meta{border-top:1px solid var(--line)}
.saccess__tel{font-family:var(--en);font-size:21px;font-weight:700;color:var(--head)}
.saccess__x{font-family:var(--en);font-size:14px;font-weight:600;color:var(--brand-vivid)}
.shop--blue .saccess__x{color:var(--blue-deep)}

/* もうひとつの店＋CTA */
.sother{background:var(--bg2)}
.sother__in{display:grid;grid-template-columns:1fr minmax(0,360px);gap:32px;align-items:stretch}
.sother__card{position:relative;display:block;background:#fff;border-radius:14px;padding:34px 36px 36px;
  border:1px solid var(--line);transition:transform .3s ease, box-shadow .3s ease}
.sother__card:hover{transform:translateY(-3px);box-shadow:0 2px 6px rgba(21,22,28,.06), 0 18px 40px rgba(21,22,28,.11)}
.sother__lb{display:block;font-size:12.5px;font-weight:700;letter-spacing:.14em;color:var(--label)}
.sother__en{display:block;margin-top:14px;font-family:var(--serif);font-size:26px;font-weight:700;letter-spacing:.08em}
.shop--red .sother__en{color:var(--blue-deep)}
.shop--blue .sother__en{color:var(--brand-vivid)}
.sother__name{display:block;margin-top:8px;font-size:13.5px;color:var(--label)}
.sother__txt{display:block;margin-top:16px;font-size:14.5px;line-height:1.9;color:var(--ink);max-width:30em}
.sother__card .arrow{position:absolute;right:32px;bottom:32px;border-color:var(--line)}
.sother__card .arrow svg{fill:var(--head)}
.shop--red .sother__card:hover .arrow{background:var(--blue-deep);border-color:var(--blue-deep)}
.shop--blue .sother__card:hover .arrow{background:var(--brand-vivid);border-color:var(--brand-vivid)}
.sother__card:hover .arrow svg{fill:#fff}
.sother__cta{background:var(--deep);border-radius:14px;padding:30px 28px;display:grid;gap:12px;align-content:center}
.sother__cta-t{font-size:16px;font-weight:700;color:#fff;line-height:1.75}
.sother__cta a{display:flex;align-items:center;justify-content:space-between;gap:20px;
  height:64px;padding:0 22px;border-radius:10px;color:#fff;transition:opacity .25s}
.sother__cta a:hover{opacity:.9}
.sother__cta .n{font-size:13px;font-weight:700;letter-spacing:.06em}
.sother__cta .t{font-family:var(--en);font-size:20px;font-weight:700}
.sother__cta-n{font-size:13px;color:rgba(255,255,255,.55);line-height:1.7}

@media (max-width:900px){
  .sfeat{grid-template-columns:1fr;gap:34px}
  .sgame__grid{grid-template-columns:1fr;gap:14px}
  .saccess__grid{grid-template-columns:1fr;gap:28px}
  .sother__in{grid-template-columns:1fr}
}
@media (max-width:720px){
  .shero{height:auto;min-height:0;max-height:none;padding:86px 0 0;display:block}
  .shero__in{padding-top:0;padding-bottom:62px}
  .shop--red .shero{padding-bottom:0}
  .shop--red .shero__in{padding-bottom:98px}
  .shero__logo{width:104px;margin-bottom:12px}
  .shero__catch{margin-top:18px}
  .shero__bar-in{padding-top:14px;padding-bottom:14px;gap:8px;flex-direction:column;align-items:flex-start}
  .shero__time{font-size:13.5px}
  .sprice__list{padding:6px 22px}
  .sprice__row{grid-template-columns:1fr;gap:7px;padding:17px 0}
  .sprice__row dd{text-align:left;white-space:normal}
  .sprice__hl{padding:22px}
  .sother__card{padding:26px 24px 28px}
  .sother__card .arrow{position:static;margin-top:20px}
}

/* 下層ページのヘッダーは常に白（トップのようにスクロールで切り替えない） */
.shop .hd, .sub .hd{position:sticky;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);
  border-bottom-color:var(--line);box-shadow:0 1px 2px rgba(21,22,28,.05);transform:none}
.shop .hd .hd__nav a, .sub .hd .hd__nav a{color:var(--dark)}
.shop .hd .hd__name, .sub .hd .hd__name{color:var(--dark)}
.shop .burger span, .sub .burger span{background:var(--dark)}

/* ===== 店内ギャラリー ===== */
.gal{background:var(--bg2)}
.gal__grid{margin-top:46px;display:grid;gap:14px}
.gal__grid--5{grid-template-columns:repeat(4,1fr)}
.gal__grid--3{grid-template-columns:repeat(3,1fr)}
.gal__item{margin:0;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:#fff;
  box-shadow:0 1px 3px rgba(21,22,28,.06), 0 8px 22px rgba(21,22,28,.08)}
.gal__item--lg{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.gal__item img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .9s cubic-bezier(.2,.7,.3,1)}
.gal__item:hover img{transform:scale(1.05)}

/* ===== 一日の流れ ===== */
.sched__list{margin-top:44px;list-style:none;border-top:1px solid var(--line)}
.sched__list li{display:grid;grid-template-columns:150px 190px 1fr;gap:24px;align-items:baseline;
  padding:20px 0;border-bottom:1px solid var(--line)}
.sched__t{font-family:var(--en);font-size:15px;font-weight:700;color:var(--brand-vivid);letter-spacing:.01em}
.shop--blue .sched__t{color:var(--blue-deep)}
.sched__list b{font-size:15.5px;font-weight:900;color:var(--head);letter-spacing:.02em}
.sched__d{font-size:14px;color:var(--ink);line-height:1.85}
.sched__hl{background:linear-gradient(90deg, rgba(233,136,135,.1), transparent 72%)}
.sched__note{margin-top:22px;font-size:13.5px;color:var(--label)}

/* ===== 来店の流れ ===== */
.flow__grid{margin-top:46px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.flow__step{position:relative;background:#fff;border-radius:12px;padding:26px 24px 24px;border:1px solid var(--line)}
.flow__step::after{content:"";position:absolute;right:-11px;top:50%;transform:translateY(-50%);
  width:7px;height:7px;border:solid var(--line);border-width:2px 2px 0 0;rotate:45deg;z-index:2}
.flow__step:last-child::after{display:none}
.flow__n{display:block;font-family:var(--en);font-size:12px;font-weight:700;letter-spacing:.16em;color:var(--brand-vivid)}
.shop--blue .flow__n{color:var(--blue-deep)}
.flow__step b{display:block;margin-top:12px;font-size:15.5px;font-weight:900;color:var(--head);line-height:1.5}
.flow__step span:not(.flow__n){display:block;margin-top:11px;font-size:13.5px;line-height:1.9;color:var(--ink)}

/* ===== 設備・サービス ===== */
.fac{background:var(--bg2)}
.fac__grid{margin-top:44px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.fac__item{background:#fff;padding:24px 26px}
.fac__item b{display:flex;align-items:center;gap:9px;font-size:14.5px;font-weight:900;color:var(--head);letter-spacing:.02em}
.fac__item b::before{content:"";width:11px;height:13px;flex:0 0 11px;background:var(--brand-vivid);
  -webkit-mask:var(--spade) center/contain no-repeat;mask:var(--spade) center/contain no-repeat}
.shop--blue .fac__item b::before{background:var(--blue-deep)}
.fac__item span{display:block;margin-top:9px;font-size:14.5px;line-height:1.85;color:var(--ink)}

@media (max-width:900px){
  .gal__grid--5,.gal__grid--3{grid-template-columns:repeat(2,1fr)}
  .gal__item--lg{grid-column:span 2;grid-row:auto;aspect-ratio:4/3}
  .flow__grid{grid-template-columns:1fr 1fr}
  .flow__step::after{display:none}
  .fac__grid{grid-template-columns:1fr 1fr}
  .sched__list li{grid-template-columns:130px 1fr;gap:6px 18px}
  .sched__d{grid-column:2}
}
@media (max-width:720px){
  .gal__grid--5,.gal__grid--3{grid-template-columns:1fr 1fr;gap:10px}
  .flow__grid{grid-template-columns:1fr;gap:12px}
  .fac__grid{grid-template-columns:1fr}
  .sched__list li{grid-template-columns:1fr;gap:4px;padding:17px 0}
  .sched__d{grid-column:1}
}


/* ============================================================
   トランプ風カード
   四隅にランクとスート、内側に二重罫。ポーカールームのカード語彙
   ============================================================ */
.tcard{position:relative;background:#fff;border-radius:11px;border:1px solid var(--line);
  transition:transform .34s cubic-bezier(.2,.7,.3,1), box-shadow .34s ease}
.tcard:hover{transform:translateY(-5px) rotate(-.5deg);
  box-shadow:0 3px 8px rgba(21,22,28,.07), 0 22px 46px rgba(21,22,28,.14)}
/* 内側の細い罫（トランプの二重枠） */
.tc__frame{position:absolute;inset:7px;border:1px solid rgba(160,29,38,.13);border-radius:6px;
  pointer-events:none}
.shop--blue .tc__frame, .trn .tc__frame{border-color:rgba(64,103,159,.16)}
/* 四隅のランク＋スート */
.tc{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:center;gap:3px;
  color:var(--brand-vivid);line-height:1}
.shop--blue .tc, .trn .tc{color:var(--blue-deep)}
.tc b{font-family:var(--en);font-size:13.5px;font-weight:700;letter-spacing:0;line-height:1}
.tc i{display:block;width:10.5px;height:12px;background:currentColor;
  -webkit-mask:var(--spade) center/contain no-repeat;mask:var(--spade) center/contain no-repeat}
.tc[data-s="heart"] i{-webkit-mask-image:var(--heart);mask-image:var(--heart)}
.tc[data-s="diamond"] i{-webkit-mask-image:var(--diamond);mask-image:var(--diamond)}
.tc[data-s="club"] i{-webkit-mask-image:var(--club);mask-image:var(--club)}
.tc--tl{top:15px;left:16px}
.tc--br{bottom:15px;right:16px;transform:rotate(180deg)}
/* 中身はランク表記を避けて内側に寄せる */
.tcard > *:not(.tc):not(.tc__frame){position:relative;z-index:1}

/* 適用先ごとの余白調整（四隅のランクと本文がぶつからないよう広めに取る） */
.trn__card.tcard{padding:52px 30px 54px}
.sgame__card.tcard{padding:54px 30px 56px}
.spt.tcard{padding:46px 26px 48px;grid-template-columns:1fr;gap:0}
.spt.tcard .spt__n{display:none}
.flow__step.tcard{padding:50px 26px 52px}
.flow__step.tcard .flow__n{display:none}
.flow__step.tcard b{margin-top:0}

/* ============================================================
   背景: カード裏面の菱形格子（セクションの地に薄く敷く）
   ============================================================ */
.lattice{position:relative}
.lattice::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    repeating-linear-gradient(45deg, rgba(160,29,38,.055) 0 1px, transparent 1px 15px),
    repeating-linear-gradient(-45deg, rgba(160,29,38,.055) 0 1px, transparent 1px 15px);
  -webkit-mask-image:radial-gradient(ellipse 78% 62% at 50% 50%, #000 0%, transparent 78%);
  mask-image:radial-gradient(ellipse 78% 62% at 50% 50%, #000 0%, transparent 78%)}
.lattice > *:not(.cdeco):not(.cbubble){position:relative;z-index:1}
.shop--blue .lattice::after{
  background-image:
    repeating-linear-gradient(45deg, rgba(64,103,159,.06) 0 1px, transparent 1px 15px),
    repeating-linear-gradient(-45deg, rgba(64,103,159,.06) 0 1px, transparent 1px 15px)}
/* ダーク帯の上では白い格子 */
.event.lattice::after, .about.lattice::after{
  background-image:
    repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 1px, transparent 1px 16px),
    repeating-linear-gradient(-45deg, rgba(255,255,255,.05) 0 1px, transparent 1px 16px)}

@media (max-width:720px){
  .tc--tl{top:11px;left:12px}
  .tc--br{bottom:11px;right:12px}
  .tc b{font-size:12.5px}
  .tc i{width:8px;height:9px}
  .tc__frame{inset:5px}
}

/* ============================================================
   桜木町店 = ポップ寄せ（関内店はシックのまま）
   丸みを大きく／赤を鮮やかに／地に淡いピンクを増やす
   ============================================================ */
.pop{--brand-vivid:#ff4850}
.pop .tcard{border-radius:20px}
.pop .tc__frame{inset:9px;border-radius:13px;border-color:rgba(255,72,80,.16)}
.pop .gal__item{border-radius:20px}
.pop .sprice__wrap,.pop .saccess__map,.pop .sother__card,.pop .sother__cta,.pop .rec__cta{border-radius:22px}
.pop .fac__grid{border-radius:20px}
.pop .shero__tel,.pop .cta-red,.pop .cta-blue,.pop .sother__cta a{border-radius:999px}
.pop .link-more .arrow,.pop .arrow{border-radius:50%}
.pop .sect{padding:94px 0 68px}
/* 地に淡いピンクの面を増やす */
.pop .sgame,.pop .fac{background:#fdf4f2}
.pop .staff{background:#fff}
.pop .sched__hl{background:linear-gradient(90deg, rgba(255,72,80,.13), transparent 74%)}
/* 見出しの下に小さなハートを散らす */
.pop .h-lb{position:relative;display:inline-block}
.pop .h-lb::after{content:"";position:absolute;right:-30px;top:2px;width:17px;height:17px;
  background:rgba(255,72,80,.34);
  -webkit-mask:var(--heart) center/contain no-repeat;mask:var(--heart) center/contain no-repeat}

/* ===== スタッフ（キャラクター） ===== */
.staff__head{max-width:44em}
.staff__head .lead{margin-top:24px}
.staff__row{margin-top:46px;background:linear-gradient(180deg,#fff7f5,#fff);
  border-radius:24px;padding:30px 30px 22px;border:1px solid rgba(255,72,80,.14)}
.staff__row img{width:100%;height:auto;display:block}
.staff__pts{margin-top:32px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.staff__pt{background:#fff7f5;border-radius:18px;padding:22px 24px;border:1px solid rgba(255,72,80,.15)}
.staff__pt b{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:900;color:var(--head)}
.staff__pt b::before{content:"";width:13px;height:13px;flex:0 0 13px;background:var(--brand-vivid);
  -webkit-mask:var(--heart) center/contain no-repeat;mask:var(--heart) center/contain no-repeat}
.staff__pt span{display:block;margin-top:8px;font-size:14.5px;color:var(--ink);line-height:1.8}

@media (max-width:900px){
  .staff__pts{grid-template-columns:1fr;gap:12px}
  .staff__row{padding:20px 16px 14px;border-radius:18px}
}
@media (max-width:720px){
  .pop .h-lb::after{right:-24px;width:14px;height:14px}
  .staff__img{padding:14px 12px 6px;border-radius:18px}
}

/* ===== キャラクターを各所に散らす（桜木町のみ） ===== */
.sect--deco{position:relative;overflow:hidden}
.cdeco{position:absolute;z-index:1;pointer-events:none;user-select:none;
  -webkit-mask-image:linear-gradient(to bottom,#000 72%,rgba(0,0,0,.35) 92%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 72%,rgba(0,0,0,.35) 92%,transparent 100%)}
.cdeco--hero{right:5.5%;bottom:46px;width:164px;z-index:3}
.cdeco--feat{left:88px;right:auto;bottom:56px;width:142px;opacity:.96}
.cdeco--sched{right:2%;top:64px;width:118px}
.cdeco--fac{right:-10px;top:40px;width:126px}
.cdeco img,.cdeco{display:block}
img.cdeco{height:auto}

/* ===== ブランドバナー（先方の1枚絵をそのまま） ===== */
.cbanner{padding:0 0 96px;background:#fff}
.cbanner__in{background:linear-gradient(180deg,#fff7f5,#fff);border-radius:26px;
  padding:26px 28px 14px;border:1px solid rgba(255,72,80,.16);
  box-shadow:0 2px 6px rgba(21,22,28,.05), 0 18px 44px rgba(21,22,28,.09)}
.cbanner__in img{width:100%;height:auto;display:block;border-radius:14px}

@media (max-width:1180px){
  .cdeco--hero{width:132px;right:3%}
  .cdeco--feat,.cdeco--fac{width:110px}
  .cdeco--sched{width:100px}
}
@media (max-width:900px){
  .cdeco--feat,.cdeco--sched,.cdeco--fac{display:none}
  .cdeco--hero{width:104px;right:16px;bottom:74px}
}
@media (max-width:720px){
  .cdeco--hero{width:88px;right:10px;bottom:96px}
  .cbanner{padding-bottom:64px}
  .cbanner__in{padding:16px 16px 8px;border-radius:20px}
}

/* ============================================================
   桜木町 = ポップを骨格から（色を変えるだけでは足りない）
   ・カードは太い枠＋オフセット影（影をぼかさない）
   ・見出しを大きく、下に手描きの波線
   ・地にドット
   ・キャラに吹き出し
   ============================================================ */
.pop{
  --pop-line:rgba(255,72,80,.34);
  --pop-shadow:rgba(255,72,80,.16);
  --wave:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='108' height='22' viewBox='0 0 108 22'><path d='M50 4C50 4 8 40 8 68c0 15 11 26 25 26 7 0 13-3 17-8-1 12-5 20-11 24h22c-6-4-10-12-11-24 4 5 10 8 17 8 14 0 25-11 25-26C92 40 50 4 50 4z' fill='%232a1719' transform='translate(4,2) scale(0.155)'/><path d='M50 92C50 92 6 60 6 33 6 18 17 7 31 7c9 0 16 5 19 12 3-7 10-12 19-12 14 0 25 11 25 26 0 27-44 59-44 59z' fill='%23ff4850'   transform='translate(31,3.6) scale(0.17)'/><path d='M50 3 88 58 50 113 12 58z'   fill='%23ff4850'   transform='translate(59,2) scale(0.155)'/><path d='M50 6c-13 0-23 10-23 22 0 4 1 8 3 11-3-2-7-3-11-3-13 0-23 10-23 23s10 23 23 23c9 0 17-5 21-13-1 14-6 23-12 27h44c-6-4-11-13-12-27 4 8 12 13 21 13 13 0 23-10 23-23s-10-23-23-23c-4 0-8 1-11 3 2-3 3-7 3-11 0-12-10-22-23-22z'  fill='%232a1719' transform='translate(82,2) scale(0.155)'/></svg>");
}
/* --- カード: 枠を太く、影はぼかさずオフセット --- */
.pop .tcard,
.pop .staff__pt,
.pop .fac__item,
.pop .sgame__card,
.pop .spt,
.pop .flow__step{
  border:2px solid var(--pop-line);
  box-shadow:5px 6px 0 var(--pop-shadow);
}
.pop .tcard:hover,
.pop .sgame__card:hover{transform:translateY(-4px) rotate(-.7deg);
  box-shadow:8px 10px 0 rgba(255,72,80,.22)}
.pop .fac__grid{background:transparent;border:0;gap:14px;border-radius:0}
.pop .fac__item{border-radius:18px;background:#fff}
.pop .tc__frame{border-color:rgba(255,72,80,.22)}

/* --- 見出し: 大きく、下に波線 --- */
.pop .h-lb,.pop .h-jp{font-size:clamp(30px,3.9vw,48px);letter-spacing:.01em}
.pop .h-lb{padding-bottom:16px;background-image:var(--wave);
  background-repeat:repeat-x;background-position:0 100%;background-size:42px 10px}
.pop .h-lb::after{top:6px}
/* 英字ラベルを太く、罫を長く */
.pop .h-en{font-size:13.5px;letter-spacing:.3em;gap:10px}
.pop .h-en::after{width:42px;height:2px;opacity:.55}
.pop .h-en::before{width:15px;height:17px}

/* --- 地にドット --- */
.pop .dots{position:relative}
.pop .dots::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(circle, rgba(255,72,80,.14) 2px, transparent 2px);
  background-size:22px 22px;
  -webkit-mask-image:linear-gradient(#000 0%, transparent 62%);
  mask-image:linear-gradient(#000 0%, transparent 62%)}
.pop .dots > *:not(.cdeco):not(.cbubble){position:relative;z-index:1}

/* --- キャラの吹き出し --- */
.cbubble{position:absolute;z-index:4;background:#fff;border:2px solid var(--pop-line);
  border-radius:16px;padding:11px 16px;font-size:13.5px;font-weight:900;color:var(--head);
  line-height:1.55;white-space:nowrap;box-shadow:4px 5px 0 var(--pop-shadow)}
.cbubble::after{content:"";position:absolute;left:26px;bottom:-9px;width:14px;height:14px;
  background:#fff;border-right:2px solid var(--pop-line);border-bottom:2px solid var(--pop-line);
  transform:rotate(45deg) skew(-6deg,-6deg)}
.cbubble--hero{right:9%;bottom:216px}
.cbubble--feat{left:212px;right:auto;bottom:186px}

/* --- 価格・数字をもっと立てる --- */
.pop .sprice__hl b{font-size:30px}
.pop .sched__t{font-weight:800}

@media (max-width:900px){
  .cbubble--feat{display:none}
  .cbubble--hero{right:14px;bottom:auto;top:96px;font-size:12px;padding:9px 13px}
}
@media (max-width:720px){
  .pop .tcard,.pop .staff__pt,.pop .fac__item,.pop .sgame__card,.pop .spt,.pop .flow__step{
    box-shadow:4px 5px 0 var(--pop-shadow)}
  .cbubble--hero{display:none}
  .pop .h-lb--wave{background-size:86px 18px;padding-bottom:15px}
  .pop .h-lb,.pop .h-jp{font-size:clamp(26px,7.2vw,34px)}
}

/* ============================================================
   桜木町: リズムをつける
   ・色を3色に（赤=主／黄=お得／ミント=安心）意味で使い分ける
   ・地を5種で回し、同じ地を2回続けない
   ・見出しの強調を3種で回す（波線／マーカー／囲み）
   ============================================================ */
.pop{
  --pop-red:#ff4850;
  --pop-yel:#f5b73c;
  --pop-mint:#5cbfb2;
  --marker:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='12' viewBox='0 0 40 12'><path d='M1 8 C 10 3, 30 3, 39 7' fill='none' stroke='%23f5b73c' stroke-width='7' stroke-linecap='round' opacity='0.5'/></svg>");
}
/* --- 地のリズム（上から: 白→ピンク→クリーム→白→ダーク→ミント→クリーム→白→ピンク） --- */
.pop .staff{background:#fff6f3}
.pop .gal{background:#fffaf1}
.pop .sgame{background:#fff}
.pop .fac{background:#fffaf1}
.pop .saccess{background:#fff6f3}
.pop .sother{background:#fff6f3}
.pop .cbanner{background:#fff}

/* --- 一日の流れ = ダーク帯（ここで一段締める） --- */
.pop .sched{background:#2a1719;color:rgba(255,255,255,.9)}
.pop .sched .h-lb{color:#fff}
.pop .sched .h-en{color:var(--pop-yel)}
.pop .sched .h-en::before{background:var(--pop-yel)}
.pop .sched .h-lb::after{background:rgba(255,255,255,.3)}
.pop .sched__list{border-top-color:rgba(255,255,255,.18)}
.pop .sched__list li{border-bottom-color:rgba(255,255,255,.14)}
.pop .sched__list b{color:#fff}
.pop .sched__d{color:rgba(255,255,255,.76)}
.pop .sched__t{color:var(--pop-yel)}
.pop .sched__note{color:rgba(255,255,255,.45)}
.pop .sched__hl{background:linear-gradient(90deg, rgba(245,183,60,.2), transparent 76%)}
.pop .sched .cdeco{filter:drop-shadow(0 8px 22px rgba(0,0,0,.5))}

/* --- 来店の流れ = ミント（安心の色） --- */
.pop .flow{background:#f2faf8}
.pop .flow .h-en,.pop .flow .h-en::before{color:var(--pop-mint);background-color:transparent}
.pop .flow .h-en::before{background:var(--pop-mint)}
.pop .flow__step{border-color:rgba(92,191,178,.42);box-shadow:5px 6px 0 rgba(92,191,178,.2)}
.pop .flow__n{color:var(--pop-mint)}
.pop .flow .tc{color:var(--pop-mint)}
.pop .flow .tc__frame{border-color:rgba(92,191,178,.26)}

/* --- 設備 = イエロー（お得・サービスの色） --- */
.pop .fac .h-en,.pop .fac .h-en::before{color:#d99a1f}
.pop .fac .h-en::before{background:#d99a1f}
.pop .fac__item{border-color:rgba(245,183,60,.5);box-shadow:5px 6px 0 rgba(245,183,60,.24)}
.pop .fac__item b::before{background:var(--pop-yel)}

/* --- 料金のハイライトもイエローに寄せる --- */
.pop .sprice__hl{background:linear-gradient(135deg, rgba(245,183,60,.16), rgba(255,72,80,.07))}

/* --- 見出しの強調を3種で回す --- */
.pop .h-lb{background-image:none;padding-bottom:0}          /* 既定は素 */
.pop .h-lb--wave{padding-bottom:17px;background-image:var(--wave);
  background-repeat:repeat-x;background-position:0 100%;background-size:108px 22px}
.pop .h-lb--mark{padding-bottom:10px;background-image:var(--marker);
  background-repeat:repeat-x;background-position:0 100%;background-size:40px 12px}
.pop .h-lb--box{display:inline-block;padding:14px 22px;border:2px solid var(--pop-red);
  border-radius:16px;box-shadow:5px 6px 0 rgba(255,72,80,.16);background:#fff}
.pop .sched .h-lb--box{border-color:var(--pop-yel);box-shadow:5px 6px 0 rgba(245,183,60,.26);
  background:rgba(255,255,255,.06)}

@media (max-width:720px){
  .pop .h-lb--box{padding:11px 16px;border-radius:13px}
}

/* ============================================================
   LPらしさ: ベタ塗りの訴求帯と、途中に挟むCTA
   淡い面ばかりだと「パキッと」しない。濃い面と白抜きで殴る
   ============================================================ */
.punch{background:var(--pop-red);position:relative;overflow:hidden}
.punch::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle, rgba(255,255,255,.11) 2px, transparent 2px);
  background-size:24px 24px}
.punch__in{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);
  gap:0;padding-top:38px;padding-bottom:40px}
.punch__item{padding:6px 34px;text-align:center;border-right:1px solid rgba(255,255,255,.28)}
.punch__item:last-child{border-right:0}
.punch__item b{display:block;font-size:13.5px;font-weight:700;letter-spacing:.14em;
  color:rgba(255,255,255,.88)}
.punch__big{display:block;margin-top:10px;font-family:var(--en);font-size:clamp(30px,3.4vw,42px);
  font-weight:700;color:#fff;line-height:1.15;letter-spacing:-.01em}
.punch__big em{font-style:normal;font-family:var(--jp);font-size:.5em;font-weight:900;margin-left:2px}
.punch__item small{display:block;margin-top:12px;font-size:13.5px;color:rgba(255,255,255,.82);line-height:1.7}

/* --- 途中に挟むCTA --- */
.midcta{background:#2a1719;position:relative;overflow:hidden}
.midcta::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    repeating-linear-gradient(45deg, rgba(255,255,255,.045) 0 1px, transparent 1px 16px),
    repeating-linear-gradient(-45deg, rgba(255,255,255,.045) 0 1px, transparent 1px 16px)}
.midcta__in{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;
  gap:36px;padding-top:40px;padding-bottom:40px;flex-wrap:wrap}
.midcta__in--stack{display:grid;grid-template-columns:1fr;justify-items:center;justify-content:center;text-align:center;gap:20px}
.midcta__in--stack .midcta__note{margin-top:0;max-width:660px}
.midcta__in--stack .midcta__note b{display:block;margin-bottom:2px;font-size:15.5px;font-weight:900;color:#fff}
.brsp{display:none}
.midcta__lead{font-size:clamp(19px,2.1vw,26px);font-weight:900;color:#fff;line-height:1.6;letter-spacing:.02em}
.midcta__note{margin-top:9px;font-size:14px;color:rgba(255,255,255,.7);line-height:1.8}
.midcta__btn{display:inline-flex;align-items:center;gap:12px;background:var(--pop-red);color:#fff;
  height:70px;padding:0 30px;border-radius:999px;box-shadow:5px 6px 0 rgba(255,255,255,.16);
  transition:transform .25s ease, box-shadow .25s ease}
.midcta__btn:hover{transform:translate(-2px,-2px);box-shadow:7px 8px 0 rgba(255,255,255,.2)}
.midcta__btn svg{width:17px;height:17px;fill:currentColor}
.midcta__btn .n{font-size:13px;font-weight:700;letter-spacing:.06em}
.midcta__btn .t{font-family:var(--en);font-size:24px;font-weight:700;letter-spacing:.01em}

@media (max-width:900px){
  .punch__in{grid-template-columns:1fr;gap:0;padding-top:8px;padding-bottom:12px}
  .punch__item{border-right:0;border-bottom:1px solid rgba(255,255,255,.28);padding:20px 0;
    display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 16px;text-align:left}
  .punch__item:last-child{border-bottom:0}
  .punch__item b{grid-column:1}
  .punch__big{grid-column:2;grid-row:1/3;margin-top:0;font-size:22px;white-space:nowrap}
  .punch__item small{grid-column:1;margin-top:4px;font-size:13px;line-height:1.65}
  .pop .sect{padding:64px 0 48px}
  .ft{padding-top:60px}
  .pcta{padding:58px 0}
  .brsp{display:inline}
  .midcta__in{flex-direction:column;align-items:flex-start;gap:22px;padding-top:34px;padding-bottom:34px}
  .midcta__in--stack{justify-items:center;gap:16px;padding-top:30px;padding-bottom:30px}
  .midcta__btn{width:100%;justify-content:center;height:64px;padding:0 20px;white-space:nowrap}
  .midcta__btn .n{display:none}
  .midcta__btn .t{font-size:22px}
}

/* ダーク帯の見出し下線は白いスートに */
.pop .sched .h-lb--wave,.pop .midcta .h-lb--wave{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='108' height='22' viewBox='0 0 108 22'><path d='M50 4C50 4 8 40 8 68c0 15 11 26 25 26 7 0 13-3 17-8-1 12-5 20-11 24h22c-6-4-10-12-11-24 4 5 10 8 17 8 14 0 25-11 25-26C92 40 50 4 50 4z' fill='%23ffffff' transform='translate(4,2) scale(0.155)'/><path d='M50 92C50 92 6 60 6 33 6 18 17 7 31 7c9 0 16 5 19 12 3-7 10-12 19-12 14 0 25 11 25 26 0 27-44 59-44 59z' fill='%23ff6b72'   transform='translate(31,3.6) scale(0.17)'/><path d='M50 3 88 58 50 113 12 58z'   fill='%23ff6b72'   transform='translate(59,2) scale(0.155)'/><path d='M50 6c-13 0-23 10-23 22 0 4 1 8 3 11-3-2-7-3-11-3-13 0-23 10-23 23s10 23 23 23c9 0 17-5 21-13-1 14-6 23-12 27h44c-6-4-11-13-12-27 4 8 12 13 21 13 13 0 23-10 23-23s-10-23-23-23c-4 0-8 1-11 3 2-3 3-7 3-11 0-12-10-22-23-22z'  fill='%23ffffff' transform='translate(82,2) scale(0.155)'/></svg>")}

/* ============================================================
   桜木町のヒーロー: キャラを主役にした明るい構成
   ============================================================ */
.shero--chara{height:auto;min-height:0;max-height:none;display:block;overflow:visible;
  background:linear-gradient(180deg,#fff6f3 0%, #fffaf7 62%, #fff 100%);
  padding:120px 0 0;position:relative}
.shero--chara::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle, rgba(255,72,80,.13) 2px, transparent 2px);
  background-size:24px 24px;
  -webkit-mask-image:linear-gradient(#000 0%, transparent 58%);
  mask-image:linear-gradient(#000 0%, transparent 58%)}
.shero--chara .shero__media,.shero--chara .shero__scrim{display:none}
.shero--chara .shero__in{position:relative;z-index:2;padding-top:0;text-align:center}
.shero--chara .shero__en{color:var(--pop-red);text-shadow:none}
.shero--chara .shero__name{color:var(--label);margin-top:14px}
.shero--chara .shero__catch{color:var(--head);text-shadow:none;margin-top:20px;
  font-size:clamp(21px,2.8vw,34px)}
.shero__cast{position:relative;z-index:2;max-width:1020px;margin:26px auto 0;padding:0 24px}
.shero__cast img{width:100%;height:auto;display:block}
.shero--chara .shero__bar{position:relative;background:#2a1719;border-top:0;margin-top:-2px}
.shero--chara .shero__bar-in{justify-content:space-between}

@media (max-width:720px){
  .shero--chara{padding:88px 0 0}
  .shero--chara .shero__catch{margin-top:14px}
  .shero__cast{margin-top:18px;padding:0 14px}
}

/* ============================================================
   セクションを並べ替えたので、地のリズムを組み直す（同じ地を2回続けない）
   桜木町: 白→クリーム→暗→淡ピンク→白→暗→ミント→暗→クリーム→白→淡ピンク→白→淡ピンク
   関内  : 白→オフ白→白→オフ白→暗→白→オフ白→白→オフ白→白
   ============================================================ */
.pop .sprice{background:#fffaf1}
.pop .gal{background:#fff}

.shop--blue .sprice{background:var(--bg2)}
.shop--blue .sgame{background:#fff}
.shop--blue .sresult{background:var(--bg2)}
.shop--blue .flow{background:#fff}
.shop--blue .fac{background:var(--bg2)}
.shop--blue .gal{background:#fff}
.shop--blue .saccess{background:var(--bg2)}
.shop--blue .sother{background:#fff}

/* ============================================================
   公式X（毎日更新）— タイムラインの窓
   埋め込みが読めなくても、下のボタンが導線として残る作りにする
   ============================================================ */
.xfeed{background:var(--bg2)}
.xfeed__head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;flex-wrap:wrap}
.xfeed__lead{max-width:30em;font-size:14.5px;line-height:2;color:var(--ink)}
.xfeed__grid{margin-top:46px;display:grid;grid-template-columns:1fr 1fr;gap:28px}
.xfeed__col{background:#fff;border-radius:14px;overflow:hidden;
  box-shadow:0 2px 6px rgba(21,22,28,.05), 0 12px 30px rgba(21,22,28,.08);
  display:flex;flex-direction:column}
.xfeed__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 22px;border-bottom:3px solid}
.xfeed__col--red .xfeed__bar{border-color:var(--brand-vivid)}
.xfeed__col--blue .xfeed__bar{border-color:var(--blue-deep)}
.xfeed__en{font-family:var(--serif);font-size:15px;font-weight:700;letter-spacing:.14em}
.xfeed__col--red .xfeed__en{color:var(--brand-vivid)}
.xfeed__col--blue .xfeed__en{color:var(--blue-deep)}
.xfeed__id{display:inline-flex;align-items:center;gap:7px;font-family:var(--en);font-size:13.5px;
  font-weight:600;color:var(--label);transition:color .25s}
.xfeed__id svg{width:12px;height:12px;fill:currentColor}
.xfeed__id:hover{color:var(--dark)}
/* タイムラインの窓。読み込み前はフォールバックのリンクが中央に出る */
.xfeed__box{flex:1;min-height:220px;padding:4px 10px 0;
  display:flex;align-items:center;justify-content:center}
.xfeed__box iframe{width:100% !important}
.xfeed__box > a.twitter-timeline{font-size:13.5px;color:var(--label);padding:40px 0}
.xfeed__more{display:flex;align-items:center;justify-content:center;gap:9px;
  margin:0 18px 18px;height:50px;border-radius:999px;font-size:13.5px;font-weight:700;color:#fff;
  transition:opacity .25s}
.xfeed__more:hover{opacity:.88}
.xfeed__more svg{width:14px;height:14px;fill:currentColor}
.xfeed__col--red .xfeed__more{background:var(--brand-vivid)}
.xfeed__col--blue .xfeed__more{background:var(--blue-deep)}

@media (max-width:900px){
  .xfeed__grid{grid-template-columns:1fr;gap:20px}
}

/* ===== 店舗ページのX（1店舗ぶん・左テキスト＋右タイムライン） ===== */
.xfeed--single .xfeed__single{display:grid;grid-template-columns:1fr minmax(0,470px);gap:56px;align-items:start}
.xfeed--single .xfeed__lead{margin-top:26px;max-width:26em;font-size:15px;line-height:2.05;color:var(--ink)}
.xfeed--single .xfeed__note{margin-top:16px;font-size:13.5px;color:var(--label);line-height:1.9}
.xfeed--single .xfeed__more{display:inline-flex;width:auto;margin:26px 0 0;padding:0 26px;height:52px}
.xfeed--single .xfeed__col{margin:0}
/* 桜木町（ポップ）＝白地に赤枠 */
.xfeed--red{background:#fff}
.xfeed--red .xfeed__col{border:2px solid rgba(255,72,80,.28);box-shadow:5px 6px 0 rgba(255,72,80,.16);border-radius:20px}
.xfeed--red .xfeed__more{background:var(--brand-vivid);border-radius:999px}
/* 関内（シック）＝ダーク帯に白いカードを浮かせる */
.xfeed--blue{background:var(--deep)}
.xfeed--blue .h-lb{color:#fff}
.xfeed--blue .h-en--light::before{background:var(--blue)}
.xfeed--blue .h-en--light::after{background:rgba(255,255,255,.4)}
.xfeed--blue .xfeed__lead{color:rgba(255,255,255,.86)}
.xfeed--blue .xfeed__note{color:rgba(255,255,255,.45)}
.xfeed--blue .xfeed__col{box-shadow:0 4px 12px rgba(0,0,0,.3), 0 20px 44px rgba(0,0,0,.34)}
.xfeed--blue .xfeed__more{background:var(--blue-deep);border-radius:8px}

@media (max-width:900px){
  .xfeed--single .xfeed__single{grid-template-columns:1fr;gap:30px}
  .xfeed--single .xfeed__more{width:100%;justify-content:center}
}

/* ============================================================
   トップページの地のリズム（同じ地を2回続けない）
   暗→白→オフ白→白→オフ白→白→ベール→オフ白→白→暗→オフ白→白→暗
   ============================================================ */
body:not(.shop):not(.sub) .xfeed{background:#fff}
body:not(.shop):not(.sub) #games{background:var(--bg2)}
body:not(.shop):not(.sub) .results{background:#fff}
body:not(.shop):not(.sub) .access{background:var(--bg2)}
body:not(.shop):not(.sub) .rec{background:#fff}

/* ===== 自前APIで取れたときの最新投稿リスト ===== */
.xfeed__box.is-loaded{display:block;padding:6px 18px 14px;align-items:stretch}
.xpost{list-style:none;margin:0;padding:0}
.xpost__item{border-bottom:1px solid var(--line)}
.xpost__item:last-child{border-bottom:0}
.xpost__link{display:block;padding:15px 4px;transition:background .2s}
.xpost__link:hover{background:rgba(0,0,0,.02)}
.xpost__time{display:block;font-family:var(--en);font-size:11.5px;font-weight:600;color:var(--label);letter-spacing:.03em}
.xpost__text{margin-top:7px;font-size:13.5px;line-height:1.85;color:var(--head);
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.xpost__media{display:block;margin-top:10px;border-radius:8px;overflow:hidden;max-height:150px}
.xpost__media img{width:100%;height:auto;display:block}
.xfeed--blue .xpost__text{color:var(--head)}

/* ============================================================
   SPの文字サイズ（2026-09-11 先方指摘）
   「太字はあと2〜3px、説明文は1〜2px」「見出しと本文が同じ大きさで見づらい」
   → 見出しは本文より必ず2px以上大きくする。ここが最終の上書き
   ============================================================ */
@media (max-width:900px){
  /* --- 見出し・太字 --- */
  .spt b{font-size:18px}
  .staff__pt b{font-size:18px}
  .fac__item b{font-size:17.5px}
  .punch__item b{font-size:16px}
  .sched li b{font-size:18px}
  .sched__t{font-size:16px}
  .midcta__note b{font-size:18px}
  .sother__cta-t{font-size:18px}
  .sgame__name{font-size:20px}
  .qa__q{font-size:17px}
  .price__col h3{font-size:17px}
  .tile__cap b{font-size:21px}
  .results__row dt{font-size:16.5px}
  .rec__lead b{font-size:16.5px}
  .pack__both b{font-size:16.5px}
  .ft__shop b{font-size:16.5px}
  .intro__cap b{font-size:17.5px}
  .trn__ap b{font-size:17.5px}
  .trn__price span{font-size:15.5px}
  .hd__nav a{font-size:16px}
  .hd__menu-name{font-size:15.5px}
  .hd__tel{font-size:15px}
  .acc__row dt,.pack__row dt,.rec__row dt,.event__row dt{font-size:14px}
  .link-more{font-size:15px}
  .room__more{font-size:15px}
  .xfeed__more{font-size:15px}
  .spbar a{font-size:15px}
  .spbar__n{font-size:15px}
  .results__row dd b,.rec__row dd b,.ft__note b{font-size:1.05em}

  /* --- 説明文・本文 --- */
  .spt span{font-size:15.5px}
  .staff__pt span{font-size:15.5px}
  .fac__item span{font-size:15.5px}
  .sgame__txt{font-size:15.5px}
  .punch__item small{font-size:14.5px}
  .sched__d{font-size:15px}
  .midcta__note{font-size:15px}
  .acc__row dd{font-size:15px}
  .lead{font-size:16.5px}
  .sprice__row dt{font-size:16px}
  .sprice__row dd{font-size:16.5px}
  .price__row dt{font-size:15px}
  .price__row dd{font-size:15.5px}
  .sprice__row dt small,.price__row dt small{font-size:13.5px}
  .sprice__hl span,.price__hl span{font-size:14.5px}
  .sother__cta-n{font-size:14.5px}
  .xfeed__lead{font-size:15.5px}
  .about__body{font-size:16px}
  .ft__links a{font-size:14.5px}
  .ft__shop small{font-size:14.5px}
  .ft__shop p{font-size:15px}
  .ft__note{font-size:14.5px}
  .crumb{font-size:14px}
  .hd__menu-time{font-size:13.5px}
  .shero__time{font-size:14.5px}
  .shero__note{font-size:14px}
  .sprice__note,.sched__note,.trn__note,.results__note{font-size:14.5px}
  .xfeed--single .xfeed__note,.xfeed__note{font-size:14.5px}
  .pack__both{font-size:14.5px}
  .pack__row dd{font-size:15px}
  .rec__row dd,.event__row dd{font-size:15.5px}
  .rec__row dd small{font-size:13px}
  .results__row dd{font-size:15px}
  .results__row dd span{font-size:13px}
  .trn__ap{font-size:14.5px}
  .trn__txt{font-size:14.5px}
  .trn__txt small{font-size:14px}
  .trn__en small{font-size:13.5px}
  .room__data{font-size:15px}
  .room__note{font-size:14px}
  .tile__cap span{font-size:15px}
  .hshop__jp{font-size:13.5px}
  .hshop__time{font-size:13px}
  .hshop__note{font-size:13px}
  .qa__a p{font-size:15px}
  .news time{font-size:13.5px}
  .acc__name{font-size:14px}
  .amb__sub{font-size:15px}
  .hero__tag span{font-size:13px}
  .price__col h3 em{font-size:13px}
  .tc b{font-size:13.5px}
}

@media (max-width:900px){
  /* 見出しを大きくした分、本文との間を空ける */
  .spt{gap:8px 14px}
  .fac__item span{margin-top:11px}
  .staff__pt span{margin-top:10px}
  .sgame__txt{margin-top:12px}
}

/* 訴求帯: 1行見出し＋説明文の形（2026-09-11 先方モックに合わせて数字の段組みから変更） */
.punch__item .punch__ttl{display:block;font-size:clamp(21px,1.9vw,27px);font-weight:900;color:#fff;
  line-height:1.3;letter-spacing:.02em}
.punch__item--ttl small{display:block;margin-top:12px;font-size:14px;font-weight:700;
  color:rgba(255,255,255,.92);line-height:1.8}
@media (max-width:900px){
  .punch__item--ttl{display:block;padding:18px 0;text-align:left}
  .punch__item .punch__ttl{font-size:23px}
  .punch__item--ttl small{margin-top:8px;font-size:14.5px;line-height:1.7}
  .shero__catch{letter-spacing:.01em}
  .brpc{display:none}
}
.punch__item--ttl small span{display:inline-block}

@media (max-width:900px){
  /* 先方モック（2026-09-11）に合わせ、カード見出しをさらに一段大きく */
  .spt > b{font-size:20px;line-height:1.4}
  .staff__pt b{font-size:20px}
  .fac__item b{font-size:19px}
  .sgame__name{line-height:1.4}
}

/* ============================================================
   先方モックの見出しサイズ・太さを忠実に（2026-09-13 水沼さん指示）
   モックは430pt幅の端末。390pt幅でも1行に収まるよう vw で追従させる
   ============================================================ */
/* PC側も太さと大きさを一段上げて、SPとの落差をなくす */
.spt > b{font-size:18px;font-weight:900}
.staff__pt b{font-size:19px;font-weight:900}
.fac__item b{font-size:17px;font-weight:900}
.sprice__row dt{font-size:17px;font-weight:900}
.sprice__row dd{font-weight:700}
.price__row dt{font-weight:900}
.price__row dd{font-weight:700}

@media (max-width:900px){
  /* 赤い訴求帯: 見出し約30px・説明文は太字15.5px */
  .punch__item .punch__ttl{font-size:clamp(26px,7.4vw,32px);letter-spacing:0;line-height:1.25}
  .punch__item--ttl small{font-size:15.5px;font-weight:700;margin-top:10px}
  .punch__item--ttl{padding:20px 0}
  /* キャッチ: 390pxで1行、430pxで20px */
  .shero__catch{font-size:clamp(17px,4.65vw,21px);font-weight:900;letter-spacing:0}
  /* この店について: 見出し約24px */
  .spt > b{font-size:clamp(20px,5.6vw,24px);font-weight:900;line-height:1.35;letter-spacing:0}
  .spt span:not(.spt__n){font-size:15.5px}
  .spt{gap:10px 14px}
  /* スタッフ欄: 見出し約27px */
  .staff__pt b{font-size:clamp(22px,6vw,27px);font-weight:900;line-height:1.3}
  .staff__pt span{font-size:15.5px;margin-top:12px}
  /* 設備: 見出し約22px */
  .fac__item b{font-size:clamp(19px,5.2vw,22px);font-weight:900}
  /* ゲーム: 見出し約21px */
  .sgame__name{font-size:clamp(19px,4.9vw,21px);font-weight:900}
  /* 料金表: 見出し約22px・太字900、金額は太字700 */
  .sprice__row dt{font-size:clamp(19px,5.1vw,22px);font-weight:900;line-height:1.4}
  .sprice__row dd{font-size:17px;font-weight:700}
  .sprice__row{gap:9px}
  .price__row dt{font-size:clamp(18px,4.8vw,21px);font-weight:900}
  .price__row dd{font-size:16.5px;font-weight:700}
}

.sprice__row dt .nb,.price__row dt .nb{display:inline-block}


/* ============================================================
   関内ページのアンバサダー（2026-09-24 先方指示で新設）
   写真は比率が違うので object-fit で切らず、列幅で高さを寄せる
   ============================================================ */
.kamb__grid{margin-top:46px;display:grid;grid-template-columns:minmax(0,.8fr) 1fr;gap:26px;align-items:start}
.kamb__card{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease}
.kamb__card:hover{transform:translateY(-3px);box-shadow:0 2px 6px rgba(21,22,28,.06), 0 16px 34px rgba(21,22,28,.1)}
.kamb__photo{display:block;overflow:hidden;background:var(--bg2)}
.kamb__photo img{width:100%;height:auto;display:block;transition:transform .5s ease}
.kamb__card:hover .kamb__photo img{transform:scale(1.03)}
.kamb__body{display:block;padding:22px 24px 26px}
.kamb__lb{display:block;font-family:var(--en);font-size:12px;font-weight:700;letter-spacing:.2em;color:var(--blue-deep)}
.kamb__body b{display:block;margin-top:10px;font-size:20px;font-weight:900;color:var(--head);letter-spacing:.02em}
.kamb__txt{display:block;margin-top:10px;font-size:14.5px;line-height:1.85;color:var(--ink)}
.kamb__more{margin-top:34px}
.shop--blue .link-more .arrow{background:var(--blue-deep);border-color:var(--blue-deep)}
.shop--blue .link-more:hover .arrow{background:var(--blue);border-color:var(--blue)}
@media (max-width:900px){
  .kamb__grid{grid-template-columns:1fr;gap:18px}
  .kamb__body b{font-size:22px}
  .kamb__txt{font-size:15.5px}
  .kamb__lb{font-size:12.5px}
}

.event__row dt{white-space:nowrap}
@media (max-width:900px){
  .event__row{gap:14px}
}

/* ============================================================
   両店の最新情報（公式X）— 2026-09-24
   X公式の埋め込みタイムラインは syndication が全アカウントで429を返すため使えない
   （NASA等の大手でも同じ＝X側の制限。IPやアカウントの問題ではない）
   タイムラインの代わりに、毎日更新していることが伝わる誘導カードにした
   ============================================================ */
.gal__grid--1{grid-template-columns:1fr}
.gal__item--solo{max-width:940px;margin-left:auto;margin-right:auto}

.xn__head{display:grid;grid-template-columns:1fr minmax(0,420px);gap:40px;align-items:end}
.xn__lead{font-size:15px;line-height:2;color:var(--ink)}
.xn__grid{margin-top:46px;display:grid;grid-template-columns:1fr 1fr;gap:22px}
.xn__card{display:grid;gap:0;padding:30px 30px 28px;border-radius:14px;background:#fff;
  border:1px solid var(--line);position:relative;overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease}
.xn__card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px}
.xn__card--red::before{background:var(--brand-vivid)}
.xn__card--blue::before{background:var(--blue-deep)}
.xn__card:hover{transform:translateY(-3px);box-shadow:0 2px 6px rgba(21,22,28,.06), 0 16px 34px rgba(21,22,28,.1)}
.xn__top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.xn__en{font-family:var(--serif);font-size:19px;font-weight:700;letter-spacing:.1em}
.xn__card--red .xn__en{color:var(--brand-vivid)}
.xn__card--blue .xn__en{color:var(--blue-deep)}
.xn__live{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;
  color:var(--label);letter-spacing:.04em}
.xn__live i{width:8px;height:8px;border-radius:50%;background:#35c46a;
  box-shadow:0 0 0 3px rgba(53,196,106,.2);animation:xnpulse 1.8s ease-in-out infinite}
@keyframes xnpulse{0%,100%{opacity:1}50%{opacity:.35}}
.xn__jp{display:block;margin-top:12px;font-size:21px;font-weight:900;color:var(--head);letter-spacing:.02em}
.xn__id{display:inline-flex;align-items:center;gap:7px;margin-top:7px;font-family:var(--en);
  font-size:13.5px;font-weight:600;color:var(--label)}
.xn__id svg{width:12px;height:12px;fill:currentColor}
.xn__list{display:grid;gap:9px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.xn__list span{position:relative;padding-left:20px;font-size:14.5px;line-height:1.7;color:var(--ink)}
.xn__list span::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:2px;
  background:var(--brand-vivid);transform:rotate(45deg)}
.xn__card--blue .xn__list span::before{background:var(--blue-deep)}
.xn__btn{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:24px;height:54px;
  border-radius:999px;color:#fff;font-size:15px;font-weight:700;letter-spacing:.02em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28), inset 0 -3px 0 rgba(0,0,0,.18), 0 6px 16px rgba(21,22,28,.18)}
.xn__btn svg{width:15px;height:15px;fill:currentColor}
.xn__card--red .xn__btn{background:var(--brand-vivid)}
.xn__card--blue .xn__btn{background:var(--blue-deep)}

@media (max-width:900px){
  .xn__head{grid-template-columns:1fr;gap:18px;align-items:start}
  .xn__lead{font-size:15.5px}
  .xn__lead br{display:none}
  .xn__grid{margin-top:32px;grid-template-columns:1fr;gap:16px}
  .xn__card{padding:24px 22px 24px}
  .xn__en{font-size:18px}
  .xn__jp{font-size:22px}
  .xn__list span{font-size:15.5px}
  .xn__btn{height:56px;font-size:16px}
}

/* 店舗ページは自店の1枚だけ（2026-09-24 先方訂正）。横に広げて2カラムで使う */
.xn__grid--solo{grid-template-columns:1fr}
.xn__grid--solo .xn__card{grid-template-columns:1fr 1fr;column-gap:44px;padding:34px 36px 30px;align-content:start}
.xn__grid--solo .xn__top{grid-column:1;grid-row:1}
.xn__grid--solo .xn__jp{grid-column:1;grid-row:2}
.xn__grid--solo .xn__id{grid-column:1;grid-row:3;justify-self:start}
.xn__grid--solo .xn__list{grid-column:2;grid-row:1/5;margin-top:0;padding-top:0;padding-left:44px;
  border-top:0;border-left:1px solid var(--line);align-content:center}
.xn__grid--solo .xn__btn{grid-column:1;grid-row:4;margin-top:26px}
@media (max-width:900px){
  .xn__grid--solo .xn__card{grid-template-columns:1fr;padding:24px 22px 24px}
  .xn__grid--solo .xn__top,.xn__grid--solo .xn__jp,.xn__grid--solo .xn__id,
  .xn__grid--solo .xn__list,.xn__grid--solo .xn__btn{grid-column:1;grid-row:auto}
  .xn__grid--solo .xn__list{margin-top:20px;padding-top:20px;padding-left:0;
    border-top:1px solid var(--line);border-left:0}
}

/* ============================================================
   関内: ヒーローのバナー2枚 ＋ GTO Wizard（2026-09-27 先方支給）
   ============================================================ */
.shero__badges{position:absolute;right:max(24px,calc((100% - var(--container))/2 + var(--pad)));
  top:50%;transform:translateY(calc(-50% - 34px));z-index:3;
  /* 幅だけで決めると、画面が横長のときバナーがヒーローより高くなりヘッダーに潜る。
     ヒーローの高さ（60svh）にも連動させて必ず収める */
  width:min(36vw,420px,38svh);display:grid;gap:12px}
.shero__badges img{width:100%;height:auto;display:block;border-radius:10px;
  box-shadow:0 4px 12px rgba(0,0,0,.4), 0 18px 40px rgba(0,0,0,.45)}
.shero__badges img:last-child{width:78%;justify-self:end}

.gtow__grid{margin-top:46px;display:grid;grid-template-columns:minmax(0,1.05fr) 1fr;gap:52px;align-items:center}
.gtow__media img{width:100%;height:auto;display:block;border-radius:14px;
  box-shadow:0 3px 8px rgba(21,22,28,.12), 0 20px 46px rgba(21,22,28,.16)}
.gtow__lb{font-family:var(--en);font-size:15px;font-weight:700;letter-spacing:.2em;color:#3ecf5b}
.gtow__txt .lead{margin-top:14px}
.gtow__box{margin-top:26px;background:var(--deep);border-radius:14px;padding:24px 26px;
  border-left:4px solid #3ecf5b}
.gtow__box-t{font-size:18px;font-weight:900;color:#fff;letter-spacing:.02em}
.gtow__box-d{margin-top:10px;font-size:14.5px;line-height:1.95;color:rgba(255,255,255,.82)}
.gtow__box-d b{color:#8ff0a2;font-weight:700}
.gtow__note{margin-top:18px;font-size:13.5px;line-height:1.9;color:var(--label)}

@media (max-width:900px){
  .shero__badges{right:14px;top:10px;transform:none;width:52%;max-width:300px;gap:8px}
  .shero__badges img{border-radius:8px}
  .shero__badges img:last-child{width:70%}
  .gtow__grid{grid-template-columns:1fr;gap:26px;margin-top:32px}
  .gtow__lb{font-size:14px}
  .gtow__box{padding:20px 20px}
  .gtow__box-t{font-size:19px}
  .gtow__box-d{font-size:15.5px}
  .gtow__note{font-size:14.5px}
}
