@charset "utf-8";
html{ --tab-h:44px; }
html:has(.p-shop){ scroll-padding-top:calc(var(--hd-h) + var(--tab-h) + 8px); }
html:has(body[data-hd="hidden"].p-shop){ scroll-padding-top:calc(var(--tab-h) + 8px); }
.p-shop{
--t-cap:14px; --t-body:17px; --t-lead:19px;
--t-h:24px;  --t-n:20px;   --t-n2:28px; --t-n3:40px;
--plane:#fff; --plane2:var(--bg-sub);
--neutral:rgba(28,28,28,.10); --neutral2:rgba(28,28,28,.30);
--off:#F2EFEC; --off-ink:#5C5C5C;          /* 4.71:1 = AA */
--tab-h:44px;
font-size:var(--t-body);
}
.p-shop .read,.p-shop .sec-sm p{ font-size:var(--t-body); line-height:1.75; letter-spacing:.01em; }
.p-shop .read + .read{ margin-top:14px; }
.p-shop h1{ font-size:26px; line-height:1.35; }
.p-shop .lead{ font-size:var(--t-lead); line-height:1.6; color:#3A3A3A; }
.num{ font-family:var(--numf,var(--mono)); font-variant-numeric:tabular-nums lining-nums;
font-weight:700; letter-spacing:-.01em; overflow-wrap:normal; white-space:nowrap; }
.sec-sm{ padding-block:40px; }
.sec-sm.heavy{ padding-block:56px; }
.tint{ background:var(--plane2) url(img/paper-96.webp) repeat; background-size:96px 96px;
margin-inline:calc(var(--pad) * -1); padding-inline:var(--pad); --plane:var(--plane2); }
.sec-sm + .sec-sm::before{ content:none; }              /* 斜線帯を殺す */
.sh{ display:flex; align-items:center; gap:9px; margin-bottom:12px; text-align:left; flex-wrap:wrap; }
.sh h2{ font-size:var(--t-h); line-height:1.3; letter-spacing:.01em; font-weight:700; padding-left:0;
flex:1 1 auto; min-width:0; }
.sh .sh-lead{ flex:0 0 100%; margin:2px 0 0; }
.sh h2::before,.sh h2::after{ content:none; }           /* 飾り罫・菱形を殺す */
.sh-ic{ width:22px; height:22px; flex:0 0 auto; fill:none;
stroke:var(--accent-fill); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.route .mv{ width:14px; height:14px; flex:0 0 auto; fill:none;
stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.sh-lead{ margin:0 0 16px; font-size:var(--t-cap); line-height:1.7; color:var(--ink-mute); }
h4.sub{ margin:22px 0 6px; font-size:16px; font-weight:700; line-height:1.5;
padding-left:9px; border-left:3px solid var(--accent); }
.stab{ position:sticky; top:var(--hd-h); z-index:30; display:flex;
overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none;
background:var(--bg); border-bottom:1px solid var(--rule); }
.stab::-webkit-scrollbar{ display:none; }
.stab{ mask-image:linear-gradient(90deg,#000 calc(100% - 20px),transparent); }
.stab a{ flex:0 0 auto; display:grid; place-items:center; min-height:var(--tab-h);
padding:0 14px; font-size:var(--t-cap); color:var(--ink-mute);
text-decoration:none; white-space:nowrap; box-shadow:inset 0 -2px 0 transparent; }
.stab a[aria-current]{ color:var(--ink); font-weight:700; box-shadow:inset 0 -2px 0 var(--accent-fill); }
.cover{ position:relative; margin-inline:calc(var(--pad) * -1); }
.cover img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.cover.pair{ display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.cover::after{ content:""; position:absolute; inset:auto 0 0; height:132px; pointer-events:none;
background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.30) 42%,rgba(0,0,0,.72)); }
.cover figcaption{ position:absolute; inset:0; z-index:1; color:#fff; pointer-events:none; }
.cv-meta{ position:absolute; left:16px; bottom:12px; font-size:var(--t-cap); font-weight:600; letter-spacing:.02em; }
.cv-fresh{ position:absolute; right:10px; top:10px; font-size:var(--t-cap);
background:rgba(0,0,0,.42); padding:4px 8px; }
.shop-hd{ padding-top:18px; }
.payline{ display:flex; flex-wrap:wrap; align-items:baseline; gap:0 .16em; margin-top:14px; }
.payline .k{ font-size:var(--t-cap); font-weight:700; }
.payline b{ position:relative; font-size:var(--t-n3); line-height:1; color:var(--accent-ink); flex:0 0 auto; }
.payline b::before{ content:""; position:absolute; inset:auto 0 2px; height:10px; z-index:-1;
background:url(img/foil-band.webp) no-repeat left bottom/100% 10px; }
.payline .u{ font-size:18px; font-weight:700; }
.payhint{ margin-top:6px; font-size:var(--t-cap); line-height:1.7; color:var(--ink-mute); }
.wage-none{ margin-top:8px; font-size:var(--t-lead); font-weight:700; line-height:1.5; }
.hd-cta2{ display:grid; gap:8px; margin-top:16px; }
.hd-cta2 .btn small{ display:block; font-size:12px; font-weight:400; letter-spacing:.02em; opacity:.94; }
.subrow{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.subrow a,.subrow button{ min-height:44px; display:grid; place-items:center;
border:1px solid var(--rule-strong); border-radius:var(--r-sm); background:none;
font-size:13px; text-decoration:none; cursor:pointer; }
.facts{ display:grid; grid-template-columns:repeat(3,1fr); margin-top:18px;
border-block:1px solid var(--rule); }
.facts li{ padding:12px 0 12px 12px; border-left:1px solid var(--rule); }
.facts li:first-child{ border-left:0; padding-left:0; }
.facts b{ font-size:var(--t-n2); line-height:1.05; color:var(--accent-ink); }
.facts span{ font-size:14px; font-weight:700; color:var(--accent-ink); }
.facts em{ display:block; margin-top:3px; font-style:normal; font-size:13px; color:var(--ink-mute); }
.fig{ margin-top:18px; }
.fig-k{ font-size:15px; font-weight:700; margin-bottom:10px; }
.fig-n{ margin-top:8px; font-size:var(--t-cap); line-height:1.7; color:var(--ink-mute); }
.bar{ height:12px; background:var(--neutral); }
.bar i{ display:block; height:100%; width:var(--w); background:var(--neutral2); transform-origin:left center; }
.bar i.on{ background:var(--accent-fill); }
.ded > div{ display:grid; grid-template-columns:1fr auto; align-items:baseline;
column-gap:14px; padding-block:9px; }
.ded > div + div{ border-top:1px solid var(--rule); }
.ded dt{ font-size:var(--t-cap); color:var(--ink-mute); }
.ded dd{ font-size:var(--t-n); color:var(--accent-ink); }
.ded dd span{ font-size:13px; font-weight:400; color:var(--ink); margin-left:1px; }
.ded .net{ border-top:2px solid var(--ink); }
.ded .net dt{ color:var(--ink); font-weight:700; }
.ded .net dd{ font-size:var(--t-n2); }
.dedbar{ display:flex; height:14px; margin-top:12px; background:var(--neutral); }
.dedbar i{ display:block; width:var(--w); }
.dedbar .n{ background:var(--accent-fill); }
.dedbar .d{ background:var(--neutral2); }
.bk > div{ display:grid; grid-template-columns:1fr auto; align-items:baseline;
column-gap:12px; row-gap:5px; padding-block:7px; }
.bk dt{ font-size:var(--t-cap); color:var(--ink-mute); }
.bk dd{ font-size:var(--t-n); color:var(--accent-ink); }
.bk dd span{ font-size:13px; font-weight:400; color:var(--ink); }
.bk > div{ display:grid; grid-template-columns:1fr auto; align-items:baseline; column-gap:12px; }
.bk dt{ grid-column:1; grid-row:1; }
.bk dd{ grid-column:2; grid-row:1; white-space:nowrap; }
.bk dd .bar{ display:block; height:8px; margin-top:6px;
position:absolute; left:0; right:0; }
.bk > div{ position:relative; padding-bottom:16px; }
.bk dd .bar{ bottom:2px; }
.pay3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--rule);
border:1px solid var(--rule); }
.pay3 b{ white-space:normal; overflow-wrap:anywhere; }
.pay3 li{ background:var(--plane); padding:12px 10px; }
.pay3 b{ display:block; font-size:var(--t-n); color:var(--accent-ink); }
.pay3 span{ font-size:13px; color:var(--ink-mute); }
.dial{ display:grid; grid-template-columns:repeat(24,1fr); gap:1px; height:38px; }
.dial i{ background:var(--neutral); }
.dial i.on{ background:var(--accent-fill); }
.dial i.op{ background:repeating-linear-gradient(135deg,var(--accent-fill) 0 3px,transparent 3px 6px); }
.dial-x{ display:flex; justify-content:space-between; margin-top:4px; font-size:13px; color:var(--ink-mute); }
.week{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-top:14px; }
.week li{ min-height:46px; display:grid; place-items:center; font-size:15px; font-weight:700;
border:1px solid var(--rule); }
.week li.off{ background:var(--off); color:var(--off-ink); border-color:transparent; font-weight:400; }
.gauge{ display:grid; grid-template-columns:repeat(4,1fr); gap:2px; }
.gauge span{ min-height:42px; display:grid; place-items:center; font-size:13px;
background:var(--neutral); color:var(--ink-mute); }
.gauge span.on{ background:var(--accent-fill); color:#fff; font-weight:700; }
.bring li{ display:flex; align-items:flex-start; gap:8px; padding-block:7px; font-size:15px; line-height:1.6; }
.bring li + li{ border-top:1px solid var(--rule); }
.bring svg{ width:17px; height:17px; margin-top:3px; flex:0 0 auto; fill:var(--accent-fill); }
.bring .jt{ font-size:13px; color:var(--ink-mute); border:0; padding-block:2px; }
.seats{ display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.seats li{ background:var(--plane2); padding:14px 12px; }
.seats li.w2{ grid-column:1 / -1; }
.seats b{ font-size:var(--t-n2); color:var(--accent-ink); }
.seats span{ font-size:14px; font-weight:700; color:var(--accent-ink); }
.seats em{ display:block; margin-top:2px; font-style:normal; font-size:13px; color:var(--ink-mute); }
.mkt{ margin-top:16px; }
.mkt-b{ display:flex; align-items:flex-end; gap:2px; height:88px; border-bottom:1px solid var(--rule-strong); }
.mkt-b i{ flex:1; height:var(--h); background:var(--neutral); display:block; }
.mkt-b i.me{ background:var(--accent-fill); position:relative; }
.mkt-b i.me::after{ content:""; position:absolute; left:50%; translate:-50% 0; top:-9px;
border:4px solid transparent; border-top-color:var(--accent-fill); }
.mkt-x{ display:flex; justify-content:space-between; font-size:13px; color:var(--ink-mute); padding-top:3px; }
.mkt figcaption{ font-size:var(--t-cap); line-height:1.7; color:var(--ink-mute); margin-top:6px; text-wrap:pretty; }
.mkt figcaption b{ font-size:var(--t-n); color:var(--accent-ink); padding-inline:2px; }
.mkt figcaption span{ display:block; }
.kvs > div{ display:grid; grid-template-columns:1fr auto; align-items:baseline; column-gap:16px; padding:12px; }
.kvs > div:nth-of-type(2n){ background:var(--plane2); }
.tint .kvs > div:nth-of-type(2n){ background:rgba(255,255,255,.6); }
.kvs dt{ font-size:var(--t-cap); color:var(--ink-mute); }
.kvs dd{ font-size:16px; line-height:1.7; text-align:right; }
.kvs dd .v{ display:block; }
.kvs dd b{ font-size:var(--t-n); color:var(--accent-ink); }
.kvs dd .note-sm{ display:block; margin-top:6px; font-size:13px; color:var(--ink-mute); }
.note-alert,.note-ok{ margin-top:10px; padding:12px 14px; border-radius:var(--r-sm);
font-size:var(--t-cap); line-height:1.8; }
.note-alert{ background:var(--alert-bg,#FDF6F4); border:1px solid var(--alert); }
.note-ok{ background:var(--plane2); border:1px solid var(--rule); }
.note-alert p + p,.note-ok p + p{ margin-top:6px; }
.hint{ margin-top:16px; padding:14px; background:var(--plane); border:1px solid var(--accent); }
.hint b{ display:block; font-size:var(--t-cap); color:var(--accent-ink); margin-bottom:4px; }
.hint p{ font-size:var(--t-cap); line-height:1.8; }
.cond h3{ font-size:var(--t-cap); font-weight:700; color:var(--ink-mute); margin:16px 0 7px; letter-spacing:.04em; }
.cond h3:first-child{ margin-top:0; }
.chips{ display:flex; flex-wrap:wrap; gap:5px; }
.chips li{ display:inline-flex; align-items:center; gap:5px; padding:7px 11px;
border-radius:var(--r-sm); font-size:var(--t-cap); line-height:1.3;
background:var(--off); color:var(--off-ink); }
.chips li.on{ background:var(--accent-bg); color:var(--accent-ink); font-weight:700; }
.chips svg{ width:14px; height:14px; flex:0 0 auto; fill:currentColor; opacity:.55; }
.chips li.on svg{ opacity:1; }
.route{ display:grid; grid-template-columns:1fr 1fr; gap:14px 2px; margin-inline:calc(var(--pad) * -1); }
.route li{ position:relative; }
.route img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.route .ph0{ aspect-ratio:4/3; background:var(--plane2); }
.route .no{ position:absolute; left:6px; top:6px; z-index:1; width:24px; height:24px;
background:url(img/no-24.webp) no-repeat 0 0/auto 24px;
background-position:calc(var(--i) * -24px) 0; }
.route .no.txt{ background:var(--accent-fill); color:#fff; display:grid; place-items:center;
font-size:12px; font-weight:700; }
.route figcaption{ padding:6px 10px 0; font-size:var(--t-cap); line-height:1.6; }
.route figcaption b{ font-weight:700; color:var(--accent-ink); margin-right:5px; }
.walk{ display:grid; grid-auto-flow:column; gap:2px; height:10px; margin-top:10px; }
.walk i{ background:var(--accent-fill); }
.band{ margin:0 calc(var(--pad) * -1); }
.band img{ width:100%; aspect-ratio:var(--band-ar,16/9); object-fit:cover; }
.band figcaption{ padding:6px var(--pad) 0; font-size:13px; color:var(--ink-mute); }
.pair2{ display:grid; grid-template-columns:1fr 1fr; gap:2px; margin:18px calc(var(--pad) * -1); }
.pair2 img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.sheet{ margin-inline:calc(var(--pad) * -1); }
.sheet-g{ display:grid; grid-template-columns:repeat(var(--sheet-col,3),1fr); gap:2px; }
.sheet img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.cap{ margin-top:8px; font-size:13px; color:var(--ink-mute); }
.near{ display:flex; gap:8px; overflow-x:auto; overscroll-behavior-x:contain;
scroll-snap-type:x proximity; scrollbar-width:none;
margin-inline:calc(var(--pad) * -1); padding-inline:var(--pad); }
.near::-webkit-scrollbar{ display:none; }
.near li{ flex:0 0 168px; scroll-snap-align:start; }
.near a{ text-decoration:none; display:block; }
.near img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.near b{ display:block; margin-top:6px; font-size:var(--t-cap); font-weight:700; line-height:1.4; }
.near .m{ font-size:12px; color:var(--ink-mute); }
.near .p{ font-size:var(--t-cap); color:var(--accent-ink); }
.cnt{ margin-top:8px; font-size:13px; color:var(--ink-mute); }
.rd{ position:relative; }
.rd-c{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.rd-b{ position:relative; max-height:194px; overflow:hidden; }
.rd-b::after{ content:""; position:absolute; inset:auto 0 0; height:76px;
background:linear-gradient(rgba(255,255,255,0),var(--plane)); }
.rd-c:checked ~ .rd-b{ max-height:none; }
.rd-c:checked ~ .rd-b::after{ content:none; }
.rd-t{ display:flex; align-items:center; justify-content:center; width:max-content;
min-height:44px; margin:10px auto 0; padding:0 20px;
border:1px solid var(--accent); border-radius:var(--r-sm);
font-size:15px; font-weight:700; color:var(--accent-ink); cursor:pointer; }
.rd-c:checked ~ .rd-t{ display:none; }
.rd-c:focus-visible ~ .rd-t{ outline:2px solid var(--accent-ink); outline-offset:2px; }
.colophon{ margin-top:32px; padding:16px; background:var(--plane2); font-size:13px;
line-height:1.8; color:var(--ink-mute); }
.colophon dt{ display:inline; font-weight:700; }
.colophon dd{ display:inline; }
.colophon > div + div{ margin-top:4px; }
.p-shop .btn,.chips li,.rd-t,.near li,.stab a,.subrow a,.subrow button{
transition:transform .08s ease, background-color .08s ease; }
.p-shop .btn:active,.rd-t:active,.near li:active,.subrow a:active,.subrow button:active{
transform:scale(.985); }
.rd-t:active,.subrow a:active,.subrow button:active{ background:var(--accent-bg); }
@supports (animation-timeline:view()){
@media (prefers-reduced-motion:no-preference){
.fig,.band,.pair2,.sheet{ animation:sp-in linear both;
animation-timeline:view(); animation-range:entry 0% entry 28%; }
@keyframes sp-in{ from{ opacity:.001; translate:0 10px } to{ opacity:1; translate:0 } }
.bar i,.dedbar i{ animation:sp-w linear both;
animation-timeline:view(); animation-range:entry 14% cover 22%; }
@keyframes sp-w{ from{ scale:0 1 } to{ scale:1 1 } }
}
}
@media (min-width:1080px){
.p-shop{ --t-h:28px; --t-n3:44px; }
.wrap.shop-2col{ max-width:1200px; }
.shop-2col{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:0 56px; align-items:start; }
.shop-2col .shop-title{ grid-column:1 / -1; grid-row:1; }
.shop-2col .shop-rail{ grid-column:2; grid-row:2; position:sticky;
top:calc(var(--hd-h) + var(--tab-h) + 16px); align-self:start; }
.rail-toc{ display:grid; gap:2px; padding:14px 0; border-top:2px solid var(--ink); }
.shop-2col .shop-main{ grid-column:1; grid-row:2; min-width:0; }
.shop-2col > section[id="apply"]{ grid-column:1 / -1; grid-row:3; }
.shop-main .read,.shop-main .sec-sm > p{ max-width:34em; }
.cover{ margin-inline:0; }
.cover img{ max-width:768px; margin-inline:auto; }
.band,.route,.sheet,.pair2{ margin-inline:0; }
.route,.sheet-g{ grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
.tint{ margin-inline:0; padding-inline:24px; }
.seats{ grid-template-columns:repeat(4,1fr); }
.ded,.bk,.dial,.week,.gauge{ max-width:560px; }
.rail-toc a{ display:flex; align-items:center; min-height:40px; font-size:15px;
text-decoration:none; border-left:3px solid transparent; padding-left:10px; }
.rail-toc a[aria-current]{ border-left-color:var(--accent-fill); font-weight:700; }
.shop-rail .payline b{ font-size:32px; }
.cta{ display:none; }
}
.p-shop .sh2{ font-size:var(--t-n); font-weight:700; line-height:1.4;
margin:22px 0 8px; letter-spacing:.01em; }
.p-shop .sh2:first-child{ margin-top:0; }
.p-shop .pay-notes{ margin-top:12px; font-size:var(--t-cap); line-height:1.75; color:var(--ink-mute); }
.ded-w{ margin-block:18px; }
.fig-s{ margin:14px 0 6px; font-size:var(--t-cap); font-weight:700; color:var(--ink-mute);
letter-spacing:.02em; }
.fig-s:first-of-type{ margin-top:6px; }
.stab{ transition:top var(--e-ui, .2s); }
body[data-hd="hidden"] .stab{ top:0; }
.rail-toc{ display:none; }
@media (min-width:1080px){ .rail-toc{ display:grid; } }
.rail-toc a[aria-current]{ border-left-color:var(--accent-fill); font-weight:700; color:var(--ink); }
.dl-table .only dd .none{ color:var(--ink-mute); font-size:var(--t-cap); }
.bk dt:empty::before{ content:"（項目名の記載なし）"; color:var(--ink-mute); font-size:var(--t-cap); }
.cover figcaption span{ text-shadow:0 1px 3px rgba(0,0,0,.75); }
.sheet .cnt{ padding:8px var(--pad) 0; }
.qa-l{ margin:8px 0 0; padding-left:1.1em; }
.qa-l li{ margin-bottom:5px; line-height:1.75; list-style:disc; }
.route.route-bare{ display:block; }
.route-bare li{ position:relative; padding:10px var(--pad) 10px 34px; border-bottom:1px solid var(--neutral); }
.route-bare li:last-child{ border-bottom:0; }
.route-bare .no{ top:10px; left:0; }
.route-bare figcaption{ padding:0; }
.route img.wide{ aspect-ratio:16/9; object-fit:cover; align-self:center; }
.bk-raw > div{ display:grid; grid-template-columns:minmax(0,1fr); padding-bottom:9px; }
.bk-raw dt{ grid-column:1; grid-row:1; }
.bk-raw dd{ grid-column:1; grid-row:2; white-space:normal; text-align:left;
font-size:var(--t-cap); color:var(--ink); font-weight:400; margin-top:2px; }
.ded-x{ margin-top:10px; padding-top:10px; border-top:1px solid var(--neutral); }
.ded-x dd{ white-space:normal; font-size:var(--t-cap); font-weight:400; }
.crumb{ mask-image:linear-gradient(90deg,#000 calc(100% - 18px),transparent); }
.extnote{ margin:14px 0 6px; font-size:var(--t-cap); line-height:1.7; color:var(--ink-mute); }
@media (min-width:1080px){
.stab{ mask-image:none; justify-content:center; }
.stab{ padding-inline:max(16px, calc((100vw - 1200px) / 2 + 16px)); justify-content:flex-start; }
.stab a{ padding:0 18px; font-size:15px; }
.stab a:first-of-type{ padding-left:0; }
}