/* ROAD TO SELENE — independent cinematic chapter */
.road-portal{position:relative;isolation:isolate;overflow:hidden;min-height:510px;display:grid;place-items:center;padding:88px 20px 95px;background:#1e093a;color:#fff;text-align:center}
.road-portal-backdrop{position:absolute;z-index:-2;inset:-30px;background:linear-gradient(0deg,#110529ed 0%,#320a63d8 62%,#170934dd),url('./assets/stage-2.webp') center/cover;filter:saturate(1.4)}
.road-portal:after{content:'';position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at center,#ec3a9d3f 0,transparent 62%)}
.road-portal-inner{max-width:1000px;width:100%;position:relative}
.road-portal-prefix,.finale-connection{display:flex;justify-content:center;align-items:center;gap:16px;font-size:13px;letter-spacing:.23em;color:#ffe6fb;font-weight:700}
.road-portal-prefix span,.finale-connection span{height:1px;width:clamp(24px,8vw,105px);background:linear-gradient(90deg,transparent,#ffb3ed)}
.road-portal-prefix span:last-child,.finale-connection span:last-child{transform:scaleX(-1)}
.road-portal h2{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(47px,10vw,116px);letter-spacing:-.055em;line-height:.95;margin:28px 0 24px;text-shadow:0 4px 0 #551453,0 0 32px #e44bde}
.road-portal h2 span{color:#f6c0ff}
.road-portal-description{line-height:1.95;font-size:clamp(14px,1.5vw,20px);margin:0 auto 28px;font-weight:700}
.road-portal-path,.intro-waypoints{display:flex;justify-content:center;align-items:center;margin:18px auto 30px;gap:9px;font-family:'DM Sans',sans-serif;font-size:clamp(11px,1.7vw,20px);letter-spacing:-.035em;color:#fbd1ff;max-width:780px}
.road-portal-path i,.intro-waypoints i{display:block;height:1px;flex:1;background:linear-gradient(90deg,#cb91ff,#ff4dae)}
.road-portal-path strong,.intro-waypoints strong{padding:5px 10px;background:#ff227c;color:white;border-radius:3px;box-shadow:0 0 20px #ef36c4}
.road-portal-link,.finale-cta{display:inline-flex;align-items:center;justify-content:center;gap:30px;padding:16px 32px;border-radius:100px;background:linear-gradient(115deg,#fd288d,#e51673);border:2px solid #ffddf1;box-shadow:0 4px 0 #98125a,0 0 24px #f84aafbd;color:white;font-size:15px;font-weight:900;text-decoration:none;transition:translate .22s,box-shadow .22s}
.road-portal-link:hover,.finale-cta:hover{translate:0 -3px;box-shadow:0 7px 0 #98125a,0 0 32px #f84aaf}
.road-portal-prices{margin:19px 0 0;font-size:12px;letter-spacing:.06em;color:#f5d6ff}
.road-page{background:#120721;color:white}
.road-page .global-header{background:#160b29eb}
.road-page main{overflow:hidden}
.road-intro{isolation:isolate;position:relative;display:grid;place-items:center;min-height:690px;padding:118px 16px 92px;background:#201244;overflow:hidden;text-align:center}
.intro-ambient{position:absolute;z-index:-2;inset:-45px;background:linear-gradient(0deg,#1d0a42 0%,#211350ac 49%,#120e36d9 100%),url('./assets/hero-unified.webp') center 30%/cover;filter:blur(4px) saturate(1.35)}
.intro-rays{position:absolute;z-index:-1;inset:0;opacity:.85;pointer-events:none;background:radial-gradient(ellipse at 30% 0,#287bff87,transparent 52%),radial-gradient(ellipse at 76% 8%,#ff58cc72,transparent 53%),radial-gradient(ellipse at center,#e83cb426,transparent 75%)}
.intro-frame{width:100%;max-width:1040px;padding:20px;position:relative}
.intro-kicker{letter-spacing:.25em;font-weight:900;font-size:clamp(11px,1.3vw,16px);color:#ffd5f4;margin:0 0 18px}
.road-intro h1{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:900;line-height:.9;font-size:clamp(70px,12.4vw,171px);letter-spacing:-.08em;color:#fff;text-shadow:3px 4px 0 #f0299b,0 0 30px #fb5bdc,0 0 70px #e86ef3;margin:0 auto 20px}
.road-intro h1 span{color:#ffd9f5}
.intro-copy{font-family:'Zen Maru Gothic',sans-serif;font-weight:900;font-size:clamp(25px,3.3vw,43px);letter-spacing:.06em;margin:30px 0 15px}
.intro-explain{line-height:2;font-size:clamp(12px,1.4vw,16px);margin:0;color:#ffe4f8}
.intro-waypoints{max-width:680px;margin:35px auto 22px}
.intro-down{display:inline-flex;align-items:center;gap:18px;text-decoration:none;color:white;border-bottom:1px solid #fdb1e2;padding:8px 1px;font-size:13px;font-weight:800;letter-spacing:.1em}
.intro-gradient-edge{position:absolute;bottom:0;left:0;right:0;height:70px;background:linear-gradient(0deg,#faf0fa,transparent);pointer-events:none}
.road-facts{position:relative;z-index:1;background:#fff6fc;color:#a01a73;text-align:center;padding:33px 20px 36px;border-top:8px solid #ff90c9;border-bottom:6px solid #e28bd6}
.facts-heading{font-weight:900;letter-spacing:.10em;font-size:14px}.facts-heading span{font-size:11px;margin-left:12px;letter-spacing:0;color:#834b7e}
.facts-amount{display:flex;justify-content:center;align-items:center;gap:clamp(14px,4vw,65px);margin:18px auto 10px}
.facts-amount>span{display:flex;align-items:baseline;gap:10px;font-size:clamp(14px,1.8vw,20px);font-weight:800}
.facts-amount strong{font-family:'DM Sans',sans-serif;font-size:clamp(32px,5vw,59px);letter-spacing:-.07em;color:#f12188}
.facts-amount small{font-family:'Noto Sans JP',sans-serif;font-size:.36em;letter-spacing:0;margin-left:5px}
.facts-amount b{height:45px;width:1px;background:#e6b4d5}
.road-facts p{color:#78456a;font-size:clamp(11px,1.25vw,14px);margin:0}
.road-journey{position:relative;background:linear-gradient(180deg,#faf0fa 0%,#f3e8fd 12%,#f6ebff 78%,#ffeaf4 100%);color:#321646;padding:87px 6vw 25px;isolation:isolate}
.road-journey:before{content:'';z-index:-1;position:absolute;inset:0;background-image:radial-gradient(#f09ee26e 1px,transparent 1px);background-size:23px 23px;opacity:.42}
.journey-intro{text-align:center;max-width:850px;margin:auto auto 60px}.journey-intro span{color:#bf4c91;font-size:13px;font-weight:800;letter-spacing:.16em}.journey-intro h2{font-family:'Zen Maru Gothic',sans-serif;font-size:clamp(30px,4.8vw,56px);color:#d21a7d;letter-spacing:.02em;margin:10px 0}.journey-intro p{font-size:clamp(12px,1.4vw,16px);color:#7b4b75}
.journey-line{position:absolute;top:295px;bottom:0;left:calc(50% - 510px);width:4px;border-radius:15px;background:linear-gradient(180deg,#f0349e,#3a8efa 32%,#d83cdd 66%,#f14589);box-shadow:0 0 15px #f458b577;transform:translateX(0)}
#road-stops{max-width:1110px;position:relative;margin:auto}
.road-stop{--accent:#df2d8f;--accentLight:#fff0f8;position:relative;padding:0 0 74px 80px;scroll-margin-top:90px}
.road-stop.tone-blue{--accent:#3286e6;--accentLight:#e8f6ff}.road-stop.tone-rose{--accent:#eb5f94;--accentLight:#fff0f3}.road-stop.tone-violet{--accent:#9963d5;--accentLight:#f7edff}
.stop-spine{position:absolute;top:64px;left:10px;z-index:2;width:42px;height:42px;border-radius:50%;background:white;border:3px solid var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 7px #ffffffca,0 0 25px #c36dd599}
.spine-index{font-size:14px;color:var(--accent);font-family:'DM Sans',sans-serif;font-weight:900}
.spine-dot{position:absolute;inset:-9px;border:1px solid var(--accent);border-radius:50%;opacity:.5;animation:road-pulse 3.8s infinite}
.stop-content{min-height:363px;background:white;border-radius:14px;box-shadow:0 25px 60px #764a9547;display:grid;grid-template-columns:44% 56%;overflow:hidden;border:2px solid #ffffff}
.stop-art{min-height:365px;position:relative;isolation:isolate;overflow:hidden;background:#150b36}
.stop-art:before{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(130deg,#28044a55,#21053540),var(--show-art) center/cover;filter:contrast(1.03) saturate(1.5)}
.stop-art:after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,#17051e1a,#1c032c9c 80%),radial-gradient(ellipse at 65% 30%,transparent,#270c4888)}
.stop-art-glow{position:absolute;inset:-40%;background:radial-gradient(ellipse,#e64cff4f,transparent 55%);animation:ambient-sway 7s ease-in-out infinite alternate}
.stop-art-num{position:absolute;top:20px;left:24px;font-family:'DM Sans';color:#ffffffad;font-size:18px;font-weight:800;letter-spacing:.06em}.stop-art-num small{font-size:11px}
.stop-art-memo{position:absolute;right:20px;top:21px;border:1px solid #fff9;border-radius:30px;padding:6px 11px;font-size:11px;color:white;letter-spacing:.1em}
.stop-art-date{position:absolute;left:20px;bottom:11px;white-space:nowrap;font-family:Georgia,'Times New Roman',serif;font-size:clamp(76px,9vw,145px);font-weight:900;letter-spacing:-.065em;font-style:italic;color:white;line-height:1.15;text-shadow:2px 5px var(--accent),0 0 22px #dc66e9}
.stop-art-date small{font-size:.2em;font-family:'Zen Maru Gothic',sans-serif;letter-spacing:0}
.stop-details{padding:37px clamp(23px,3.5vw,52px) 36px;display:flex;flex-direction:column;align-items:flex-start;background:linear-gradient(145deg,white,var(--accentLight))}
.stop-supra{color:var(--accent);width:100%;display:flex;align-items:center;gap:13px;font-size:12px;font-weight:900;letter-spacing:.12em}.stop-supra-line{flex:1;height:1px;background:color-mix(in srgb,var(--accent) 30%,white)}
.stop-details h3{font-family:'Zen Maru Gothic',sans-serif;color:#291737;font-size:clamp(24px,3vw,39px);line-height:1.35;font-weight:900;margin:22px 0 6px}
.stop-date{color:var(--accent);font-weight:900;font-size:19px;margin:0}.stop-remark{color:#7e5f81;margin:12px 0 17px;font-size:13px}
.stop-prices{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%;border-top:1px solid #bca1c14a;border-bottom:1px solid #bca1c14a;padding:15px 0}
.stop-prices>div{display:flex;flex-direction:column;gap:1px;min-width:0}.stop-prices>div+div{border-left:1px solid #bd9cc174;padding-left:20px}.stop-prices span{font-size:11px;font-weight:800;color:#775276}.stop-prices strong{font-family:'DM Sans',sans-serif;font-size:clamp(26px,3vw,39px);color:var(--accent);letter-spacing:-.055em;white-space:nowrap}.stop-prices strong small{font-family:'Noto Sans JP',sans-serif;font-size:12px;margin-left:3px}
.stop-logistics{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:11px;margin:15px 0 17px;color:#745974}
.stop-ticket-button{color:var(--accent);border:1px solid var(--accent);padding:11px 20px;text-decoration:none;border-radius:50px;font-weight:900;font-size:12px;transition:all .25s}.stop-ticket-button:hover{background:var(--accent);color:white}
.stop-ticket-unset{font-size:12px;color:#7a6378;border:1px solid #c5b6c8;border-radius:50px;padding:9px 16px;background:#fff8;cursor:default}
.road-stop:nth-child(2) .stop-content,.road-stop:nth-child(4) .stop-content{grid-template-columns:56% 44%}.road-stop:nth-child(2) .stop-art,.road-stop:nth-child(4) .stop-art{order:2}.road-stop:nth-child(2) .stop-details,.road-stop:nth-child(4) .stop-details{order:1}
.road-finale{background:linear-gradient(180deg,#ffeaf4 0%,#eab6e9 12%,#210d4a 51%,#12051d 100%);position:relative;isolation:isolate;text-align:center;color:#fff;padding:115px 20px 118px;overflow:hidden}
.finale-ambient{position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(255,234,243,.88) 0%,rgba(110,33,123,.83) 48%,rgba(20,6,37,.95) 100%),url('./assets/hero-v49-desktop.webp') center 38%/cover no-repeat;opacity:.42;filter:none}
@media(max-width:640px){.finale-ambient{background:linear-gradient(180deg,rgba(255,234,243,.86) 0%,rgba(110,33,123,.82) 47%,rgba(20,6,37,.95) 100%),url('./assets/hero-v49-mobile.webp') center 34%/cover no-repeat;opacity:.4;}}
.finale-connection{color:#982470;font-size:14px;margin:0 auto 15px;font-weight:900}
.finale-five{font-family:'DM Sans';font-weight:900;font-size:clamp(55px,9vw,102px);line-height:1;color:#f72993;text-shadow:0 4px white,0 0 24px #e764d5}
.finale-five span{font-family:'Zen Maru Gothic',sans-serif;display:block;font-size:clamp(12px,2vw,21px);color:#6d1b76;text-shadow:none;letter-spacing:.2em;margin-top:3px}
.finale-overline{color:#fff;font-weight:900;letter-spacing:.18em;font-size:16px;margin:32px 0 12px;text-shadow:0 1px 7px #221039}
.road-finale h2{max-width:590px;margin:0 auto;filter:drop-shadow(0 0 22px #ff7bd5)}.road-finale h2 img{width:100%;height:auto;display:block}
.finale-venue{font-size:clamp(18px,3vw,29px);font-weight:900;line-height:1.7;text-shadow:0 2px 6px #1c103d}.finale-venue small{font-size:.56em;font-weight:700}
.finale-copy{margin:25px auto;line-height:2.1;font-size:clamp(13px,1.5vw,18px);font-weight:800}
.road-note-footer{text-align:center;padding:22px 13px;background:#130720;font-size:11px;color:#dfbed7}
.road-page footer a{color:#fff;text-decoration:none}.road-page footer a img{width:135px}
@keyframes road-pulse{50%{transform:scale(1.3);opacity:0}}@keyframes ambient-sway{to{transform:translateX(5%) translateY(-3%)}}
@media(min-width:1300px){.journey-line{left:calc(50% - 511px)}}
@media(max-width:1299px){.journey-line{left:calc(6vw + 19px)}}
@media(max-width:780px){.road-portal{min-height:430px;padding:75px 20px}.road-portal-description br{display:none}.road-intro{min-height:610px;padding:100px 14px 82px}.road-intro h1{font-size:clamp(60px,14vw,113px)}.road-journey{padding:74px 5vw 0}.journey-line{left:calc(5vw + 15px);top:255px}.road-stop{padding-left:51px;padding-bottom:55px}.stop-spine{width:32px;height:32px;left:0;top:29px}.spine-index{font-size:12px}.stop-content,.road-stop:nth-child(2) .stop-content,.road-stop:nth-child(4) .stop-content{grid-template-columns:1fr}.stop-art{height:240px;min-height:240px;order:0!important}.stop-details{order:1!important;padding:23px 24px 26px}.stop-art-date{font-size:clamp(64px,15vw,112px)}.stop-details h3{font-size:clamp(25px,5vw,32px);margin:12px 0}.road-portal-prefix{font-size:11px}.road-facts{padding:26px 8px}.facts-heading{font-size:12px}}
@media(max-width:460px){.road-portal-path,.intro-waypoints{gap:4px;font-size:12px}.road-portal-path i,.intro-waypoints i{min-width:3px}.road-portal h2{font-size:clamp(50px,11.4vw,72px)}.road-portal-link{gap:12px;padding:13px 20px;font-size:12px}.road-intro{min-height:565px}.road-intro h1{font-size:clamp(52px,14vw,75px)}.intro-explain br{display:none}.intro-copy{font-size:22px}.journey-intro{margin-bottom:40px}.journey-line{left:calc(5vw + 13px);top:228px}.road-stop{padding-left:45px}.stop-details{padding:21px 18px 23px}.stop-prices{gap:7px}.stop-prices>div+div{padding-left:13px}.stop-prices strong{font-size:29px}.stop-date{font-size:16px}.stop-art{min-height:203px;height:203px}.stop-art-date{font-size:65px}.stop-logistics{font-size:10px}.facts-amount{gap:12px}.facts-amount>span{gap:5px;flex-direction:column;align-items:center;font-size:12px}.facts-amount strong{font-size:36px}.facts-amount b{height:60px}.road-finale{padding:85px 20px 80px}.road-finale h2{max-width:340px}.road-finale .finale-connection{font-size:11px}}
@media(prefers-reduced-motion:reduce){.spine-dot,.stop-art-glow{animation:none!important}}


/* Ver.32 — ROAD TO SELENE / 公演共通料金を舞台チケット風の横長バンドで強調 */
.road-portal-ticket-band{
  position:relative;isolation:isolate;width:min(100%,690px);
  margin:18px auto 31px;padding:17px 28px 22px;
  border:1px solid rgba(255,221,249,.75);border-radius:5px;
  background:linear-gradient(115deg,rgba(73,25,107,.88),rgba(130,28,116,.85) 48%,rgba(55,26,105,.88));
  box-shadow:0 0 0 5px rgba(246,113,205,.14),inset 0 0 38px rgba(248,114,220,.14),0 15px 40px rgba(19,3,41,.35);
  overflow:hidden;
}
.road-portal-ticket-band::before{
  content:'';position:absolute;z-index:-1;pointer-events:none;inset:7px;
  border:1px solid rgba(255,228,250,.23);
}
.road-portal-ticket-title{
  display:flex;gap:12px;align-items:center;justify-content:center;
  margin:0 auto 12px;color:#ffe0fa;font-family:'Zen Maru Gothic',sans-serif;
}
.road-portal-ticket-title span{
  display:inline-block;padding:4px 9px;border:1px solid rgba(255,215,247,.78);
  color:#fff2fa;font-weight:900;font-size:11px;letter-spacing:.10em;
}
.road-portal-ticket-title strong{font-weight:900;font-size:14px;letter-spacing:.15em;}
.road-portal-ticket-duo{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);gap:16px;align-items:center}
.road-portal-ticket-tier{min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px}
.road-portal-ticket-tier>span{
  font-family:'Zen Maru Gothic',sans-serif;font-weight:900;
  font-size:clamp(12px,1.55vw,17px);letter-spacing:.09em;color:#fff;
}
.road-portal-ticket-tier strong{
  display:block;font-family:'DM Sans','Noto Sans JP',sans-serif;
  font-weight:900;font-size:clamp(34px,5.1vw,55px);line-height:1.15;
  letter-spacing:-.055em;white-space:nowrap;
}
.road-portal-ticket-tier strong small{
  font-family:'Noto Sans JP',sans-serif;font-size:.33em;letter-spacing:0;margin-left:5px;
}
.road-portal-ticket-front strong{color:#ffeac3;text-shadow:0 2px 0 #8e3765,0 0 22px rgba(255,214,133,.4)}
.road-portal-ticket-regular strong{color:#e7eeff;text-shadow:0 2px 0 #564494,0 0 22px rgba(170,210,255,.33)}
.road-portal-ticket-divider{height:75px;width:1px;background:linear-gradient(180deg,transparent,#ffdaf8,transparent)}
.road-portal .road-portal-link{position:relative;z-index:1}
@media(max-width:580px){
  .road-portal-ticket-band{margin:20px auto 27px;padding:15px 11px 19px}
  .road-portal-ticket-title{gap:8px;margin-bottom:11px}
  .road-portal-ticket-title span{font-size:9px;padding:3px 6px}
  .road-portal-ticket-title strong{font-size:12px;letter-spacing:.08em}
  .road-portal-ticket-duo{gap:7px}
  .road-portal-ticket-tier>span{font-size:12px;letter-spacing:.01em}
  .road-portal-ticket-tier strong{font-size:clamp(30px,8vw,40px)}
  .road-portal-ticket-tier strong small{margin-left:3px}
  .road-portal-ticket-divider{height:63px}
}
@media(max-width:350px){
  .road-portal-ticket-band{padding-left:8px;padding-right:8px}
  .road-portal-ticket-tier strong{font-size:29px}
}



/* ROAD TO SELENE 専用ページの特典告知（Ver.75） */
.facts-lottery{margin-top:10px !important;color:#9a1c70 !important;font-weight:800}
.facts-lottery strong{display:inline-block;padding:3px 9px;border-radius:999px;background:#fff;color:#d4187d;box-shadow:0 8px 18px rgba(212,24,125,.14)}

/* Ver.76 — a single prominent limited-kuji announcement, replacing the two old cards */
.road-portal-kuji {
  position:relative; isolation:isolate; overflow:hidden;
  width:min(100%,770px); margin:23px auto 29px;
  padding:22px 22px 20px;
  border:2px solid #ffdb9b; border-radius:20px;
  background:
    radial-gradient(ellipse at 50% -30%,rgba(255,249,225,.40),transparent 56%),
    radial-gradient(ellipse at 12% 95%,rgba(255,114,196,.36),transparent 65%),
    linear-gradient(117deg,#8c135d 0%,#d92189 46%,#8a136e 100%);
  box-shadow:0 0 0 5px rgba(255,135,207,.13),0 14px 42px rgba(14,2,35,.48),0 0 35px rgba(255,78,165,.27),inset 0 0 25px rgba(255,241,211,.09);
  text-align:center;
}
.road-portal-kuji::before {
  content:"";position:absolute;inset:7px;z-index:-1;border-radius:13px;
  border:1px solid rgba(255,245,208,.49);pointer-events:none;
}
.road-portal-kuji::after {
  content:"✦";position:absolute;z-index:-1;top:42px;right:6%;
  color:rgba(255,246,207,.35);font-size:48px;line-height:1;pointer-events:none;
}
.road-portal-kuji-eyebrow {
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:'Zen Maru Gothic','Noto Sans JP',sans-serif;
  font-size:clamp(11px,1.25vw,14px);font-weight:900;
  color:#fff4c9;letter-spacing:.12em;
}
.road-portal-kuji-eyebrow span{font-size:14px;color:#ffe69e}
.road-portal-kuji-title {
  font-family:'Zen Maru Gothic','Noto Sans JP',sans-serif;
  font-size:clamp(29px,4.8vw,48px);font-weight:900;line-height:1.2;
  color:#fff;letter-spacing:.02em;margin:13px 0 15px;
  text-shadow:0 3px 0 #a30f60,0 4px 17px rgba(50,0,69,.66);
}
.road-portal-kuji-title strong {
  color:#fff1ae;font-weight:900;
  text-shadow:0 3px 0 #9e125e,0 0 19px rgba(255,248,196,.38);
}
.road-portal-kuji-mobile-break{display:none}
.road-portal-kuji-bottom {
  display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap;
}
.road-portal-kuji-flag {
  display:inline-flex;align-items:center;justify-content:center;
  padding:6px 14px;border-radius:999px;
  color:#8d1155;background:#fff4c7;
  box-shadow:0 2px 10px rgba(73,2,45,.24);
  font-size:13px;font-weight:900;letter-spacing:.07em;
}
.road-portal-kuji-bottom p {
  margin:0;font-size:clamp(11px,1.3vw,14px);
  color:#fff8ff;font-weight:800;line-height:1.7;
}
@media(max-width:580px) {
  .road-portal-kuji{padding:19px 17px 18px;margin:18px auto 26px;border-radius:16px}
  .road-portal-kuji::before{inset:6px;border-radius:10px}
  .road-portal-kuji::after{font-size:36px;right:6%;top:48px}
  .road-portal-kuji-eyebrow{font-size:11px;letter-spacing:.07em;gap:5px}
  .road-portal-kuji-title{font-size:clamp(27px,7.8vw,36px);line-height:1.25;margin:10px 0 14px}
  .road-portal-kuji-mobile-break{display:block}
  .road-portal-kuji-bottom{gap:8px;flex-direction:column}
  .road-portal-kuji-flag{font-size:12px;padding:5px 13px}
  .road-portal-kuji-bottom p{max-width:290px;font-size:11px}
}
@media(max-width:355px){
  .road-portal-kuji-title{font-size:26px}
  .road-portal-kuji-eyebrow{font-size:10px}
}


/* Ver.77 — 4公演であることを視覚的に明確化 */
.road-portal-four{
  width:min(100%,780px);margin:0 auto 20px;padding:18px 18px 16px;
  border-radius:20px;
  background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.05));
  border:1px solid rgba(255,218,244,.32);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 40px rgba(18,3,39,.22);
  backdrop-filter:blur(4px);
}
.road-portal-four-heading,.intro-fourshows-heading{
  display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  margin-bottom:14px;text-align:center;
}
.road-portal-four-heading span,.intro-fourshows-heading span{
  display:inline-flex;align-items:center;justify-content:center;
  padding:5px 10px;border-radius:999px;
  background:rgba(255,70,165,.18);border:1px solid rgba(255,190,228,.42);
  color:#ffd8f0;font-size:11px;font-weight:900;letter-spacing:.13em;font-family:'DM Sans',sans-serif;
}
.road-portal-four-heading strong,.intro-fourshows-heading strong{
  color:#fff7fe;font-size:clamp(24px,4vw,32px);font-weight:900;letter-spacing:.08em;
  text-shadow:0 0 20px rgba(255,93,180,.32);
}
.road-portal-four-grid,.intro-fourshows-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;
}
.road-portal-four-card,.intro-fourshows-card{
  min-width:0;padding:12px 10px 13px;border-radius:16px;text-align:center;
  background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.08));
  border:1px solid rgba(255,236,248,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.road-portal-four-card span,.intro-fourshows-card span{
  display:block;color:#ffd3eb;font-size:11px;font-weight:800;letter-spacing:.09em;margin-bottom:6px;
}
.road-portal-four-card strong,.intro-fourshows-card strong{
  display:block;color:#fff;font-size:clamp(22px,3vw,28px);line-height:1;font-weight:900;
  font-family:'DM Sans',sans-serif;text-shadow:0 2px 0 #6d235d,0 0 18px rgba(255,118,189,.25);
}
.intro-fourshows{
  width:min(100%,780px);margin:18px auto 12px;padding:18px 18px 16px;border-radius:22px;
  background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.05));
  border:1px solid rgba(255,218,244,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 40px rgba(18,3,39,.18);
  backdrop-filter:blur(4px);
}
@media(max-width:780px){
  .road-portal-four,.intro-fourshows{padding:16px 14px 14px}
  .road-portal-four-grid,.intro-fourshows-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
}
@media(max-width:460px){
  .road-portal-four{margin-bottom:18px}
  .road-portal-four-heading{margin-bottom:12px;gap:8px}
  .road-portal-four-heading span,.intro-fourshows-heading span{font-size:10px;padding:4px 8px}
  .road-portal-four-heading strong,.intro-fourshows-heading strong{font-size:24px}
  .road-portal-four-card,.intro-fourshows-card{padding:11px 8px 12px;border-radius:14px}
  .road-portal-four-card span,.intro-fourshows-card span{font-size:10px;margin-bottom:5px}
  .road-portal-four-card strong,.intro-fourshows-card strong{font-size:24px}
  .intro-fourshows{margin-top:16px;margin-bottom:10px}
}


.stop-promo{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:12px 0 8px;padding:10px 14px;border-radius:16px;background:linear-gradient(135deg,#ffac33 0%,#ff4f9f 55%,#8f39ff 100%);border:1px solid rgba(255,255,255,.35);box-shadow:0 14px 34px rgba(255,92,138,.24), inset 0 1px 0 rgba(255,255,255,.34);color:#fff;max-width:max-content}
.stop-promo strong{display:inline-block;padding:4px 10px;border-radius:999px;background:rgba(32,5,57,.28);font-size:12px;letter-spacing:.08em;line-height:1.1}
.stop-promo span{font-size:13px;font-weight:800;line-height:1.35;text-shadow:0 1px 0 rgba(0,0,0,.16)}
@media(max-width:460px){.stop-promo{padding:9px 12px;gap:6px 8px}.stop-promo strong{font-size:11px}.stop-promo span{font-size:12px}}

/* v119: Shared show information, legible on mobile. */
.road-facts{max-width:1060px;margin:0 auto;box-sizing:border-box;text-align:center;padding:30px clamp(18px,4vw,50px) 34px}
.road-common-venue{display:flex;flex-direction:column;gap:5px;margin:20px 0 16px}
.road-common-label{font-size:12px;font-weight:900;letter-spacing:.1em;opacity:.72}
.road-common-venue>strong{font-family:'Zen Maru Gothic',sans-serif;font-size:clamp(23px,4.5vw,35px);line-height:1.4}
.road-common-times{display:grid;grid-template-columns:1fr 1fr;max-width:440px;margin:0 auto 23px;gap:10px}
.road-common-times>div{display:flex;flex-direction:column;gap:3px}
.road-common-times strong{font-size:clamp(28px,6vw,40px);line-height:1.2;letter-spacing:.02em;font-weight:900;font-variant-numeric:tabular-nums}
.road-common-tickets{border-top:1px solid rgba(255,255,255,.25);padding-top:20px}
.road-common-tickets .facts-amount{margin-top:8px}
.road-common-note{font-size:12px;opacity:.7;line-height:1.6;margin:15px 0 0}
@media(max-width:600px){.road-facts{padding:25px 16px 30px}.road-common-venue{margin:16px 0}.road-common-times{gap:8px}.road-common-times strong{font-size:30px}.road-common-label{font-size:11px}}
