:root{--blue:#007fa6;--bright:#00a0d0;--ink:#242424;--muted:#646a70;--line:#dce3e7}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:#f4f5f6;color:var(--ink);font-family:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.7}
a{color:var(--blue);text-underline-offset:3px}
button{font:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #e49100;outline-offset:4px}
header{background:white;border-bottom:1px solid var(--line)}
.header-inner{max-width:1100px;margin:auto;display:flex;align-items:center;gap:24px;padding:22px 28px}
.logo{display:block}
.booking{margin-left:auto;font-size:12px;text-decoration:none;font-weight:bold}
main{max-width:1100px;padding:0 28px;margin:auto}
.intro{padding:48px 0 28px}
.eyebrow{font-size:11px;letter-spacing:2px;color:var(--blue);font-weight:700;margin:0 0 8px}
h1{font-size:36px;letter-spacing:.02em;margin:0 0 12px;line-height:1.4}
.intro>p:last-child{font-size:15px;color:var(--muted);margin:0}
.nav{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.nav a{background:white;border:1px solid var(--line);border-bottom:3px solid var(--bright);padding:15px 6px;text-align:center;text-decoration:none;font-weight:bold;font-size:14px;border-radius:4px}
.nav a:hover{background:#edfaff}
.overview{display:flex;justify-content:space-between;gap:14px;margin:18px 0 34px;font-size:12px;color:var(--muted);align-items:center}
.overview>a{white-space:nowrap}
.tag,.badge{display:inline-block;background:#e5f5fa;color:#006b8d;font-size:11px;font-weight:bold;padding:3px 9px;border-radius:3px}
.catalog{margin:0 0 48px;scroll-margin-top:22px}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:20px}
.section-heading h2{font-size:25px;line-height:1.4;margin:0}
.section-heading>span,.section-note{font-size:13px;color:var(--muted)}
.section-note{margin:-7px 0 20px}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.card{background:white;border:1px solid #e0e4e7;border-radius:5px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 5px #24394b05;scroll-margin-top:20px}
.card-media{height:210px;background:#edf0f3;position:relative}
.card-media img{width:100%;height:100%;object-fit:cover}
.card-media .badge{position:absolute;bottom:12px;left:16px;background:white;box-shadow:0 2px 7px #0002}
.card-body{padding:20px;display:flex;flex-direction:column;flex:1}
.card h3{font-size:19px;margin:0 0 8px;line-height:1.5}
.card-desc{font-size:13px;color:var(--muted);margin:0 0 14px;min-height:44px}
.inclusion{font-size:12px;margin:0 0 14px;padding:10px 12px;background:#f5f8f9;border-radius:3px;line-height:1.8}
.inclusion strong{color:#15664f}
.price-line{display:flex;align-items:baseline;gap:7px;margin-top:auto;padding-top:6px}
.price-line span{font-size:12px;color:var(--muted)}
.price-line strong{font-size:25px;color:var(--blue);letter-spacing:-.4px}
.primary{display:block;text-align:center;background:var(--bright);color:white;border:0;border-radius:4px;text-decoration:none;padding:12px 16px;font-weight:bold;font-size:14px;min-height:48px}
.card .primary{width:100%;margin-top:14px}
.card .text-button{width:100%;text-align:center;margin-top:4px}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.primary:hover{background:#0089b3}
.discovery{background:#e8f4f8;border:1px solid #d6e9ef;display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:20px;padding:26px;margin:0 0 48px;border-radius:5px}
.discovery h2{font-size:23px;line-height:1.5;margin:7px 0}
.small-label{font-size:12px;color:var(--blue);font-weight:bold}
.discovery p{font-size:12px;margin:10px 0;color:#4d6570}
.discovery a{background:white;border-radius:4px;overflow:hidden;text-decoration:none;font-size:12px;font-weight:bold;align-self:center}
.discovery img{width:100%;height:130px;object-fit:cover;display:block}
.discovery a span{display:block;padding:12px}
.help{background:white;padding:28px;border:1px solid var(--line);border-radius:5px}
.help h2{font-size:21px;margin:0 0 16px}
details{border-top:1px solid var(--line);padding:15px 0}
summary{cursor:pointer;font-size:14px;font-weight:bold;min-height:24px}
details p,details a{font-size:13px}
footer{font-size:11px;color:var(--muted);text-align:center;padding:35px 0 45px}
.footer-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:20px 0}
footer img{width:145px}
dialog{border:0;border-radius:8px;padding:0;width:min(640px,calc(100% - 24px));max-height:90dvh;color:var(--ink);box-shadow:0 12px 70px #102f4855}
dialog::backdrop{background:#172a3cd0}
body:has(dialog[open]){overflow:hidden}
.close{position:sticky;top:12px;float:right;margin:12px 12px -56px 0;width:44px;height:44px;border-radius:50%;background:white;border:1px solid var(--line);font-size:27px;z-index:2;box-shadow:0 2px 8px #0002}
.detail-hero{width:100%;height:185px;object-fit:cover}
.detail-body{padding:24px}
.detail-body h2{font-size:23px;line-height:1.45;margin:12px 0}
.detail-body .formal{font-size:11px;color:var(--muted);margin:0 0 14px}
.detail-body .prices{font-size:13px;color:var(--blue);font-weight:bold}
.notice{background:#fff8e9;border-left:3px solid #e5b144;padding:12px;font-size:13px;margin:16px 0}
.detail-body .primary{margin:16px 0 6px}
.handoff{font-size:11px;color:var(--muted);text-align:center}
.related-title{font-size:16px;margin:25px 0 12px}
.related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.related button{padding:0;text-align:left;background:white;border:1px solid var(--line);border-radius:4px;overflow:hidden;color:var(--ink)}
.related img{display:block;width:100%;height:75px;object-fit:cover}
.related span{display:block;padding:8px;font-size:11px;line-height:1.5}
.back{border:0;background:none;color:var(--blue);padding:10px 0;font-size:13px;text-decoration:underline}
.disabled{background:#ddd;color:#555;padding:14px;text-align:center}

@media(min-width:900px){#events .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
#events .card-media{height:160px}
#events h3{font-size:17px}
}

@media(max-width:600px){.header-inner{padding:16px;gap:12px;flex-wrap:wrap}
.booking{width:100%;font-size:11px;text-align:right}
main{padding:0 16px}
.intro{padding:30px 0 22px}
h1{font-size:25px}
.intro>p:last-child{font-size:13px}
.nav{grid-template-columns:repeat(2,1fr);gap:8px}
.nav a{font-size:12px;padding:12px 4px}
.overview{display:block;font-size:11px;margin:16px 0 30px}
.overview>a{display:inline-block;margin-top:12px}
.section-heading{display:block;margin-bottom:15px}
.section-heading h2{font-size:22px}
.section-heading>span{display:block;margin-top:7px;font-size:12px}
.cards{grid-template-columns:1fr;gap:16px}
.card-media{height:180px}
.card-body{padding:18px}
.card-desc{min-height:0}
.discovery{grid-template-columns:1fr 1fr;padding:18px;gap:12px}
.discovery>div{grid-column:1/-1}
.discovery h2{font-size:22px}
.discovery h2 br{display:none}
.discovery p br{display:none}
.discovery img{height:105px}
.discovery a span{font-size:11px;padding:9px}
.help{padding:20px}
.help h2{font-size:19px}
.detail-body{padding:18px}
.detail-body h2{font-size:21px}
.detail-hero{height:150px}
.related{gap:7px}
.related img{height:65px}
.related span{font-size:10px;padding:6px}
.catalog{margin-bottom:36px}
.section-note{font-size:12px}
.footer-links{gap:12px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
}

/* Keep text printed on official event and merchandise images intact. */
#events .card-media img,#goods .card-media img,.discovery img,.related img{object-fit:contain;background:#fff}


.nav button{background:white;border:1px solid var(--line);border-radius:4px;padding:16px 7px;color:var(--ink);font-weight:bold;font-size:14px;min-height:76px}
.nav button small{display:block;font-size:11px;font-weight:normal;color:var(--muted);margin-top:4px}
.nav button[aria-pressed="true"]{border:2px solid var(--bright);background:#e8f8fd;color:#006b8d}
.all-filter,.text-button{background:none;border:0;color:var(--blue);text-decoration:underline;padding:10px;font-size:13px}
.all-filter[aria-pressed="true"]{font-weight:bold;background:#e8f8fd}
.cancel-summary{font-size:12px;color:#40585f;border-top:1px solid #e4eaed;padding-top:10px;line-height:1.7}
.discovery button{padding:0;background:white;border:0;border-radius:4px;overflow:hidden;text-align:left;align-self:center;color:var(--blue)}
.discovery button span{display:block;padding:12px;font-size:12px;font-weight:bold}
.card-media img,.related img{object-fit:contain;background:white}
@media(max-width:600px){.nav button{font-size:12px;padding:12px 5px;min-height:70px}
.nav button small{font-size:10px}
.discovery button span{font-size:11px;padding:9px}
}


.seasonal{background:#fff;border:1px solid #dce3e7;border-radius:6px;padding:22px;margin:0 0 24px}
.seasonal h2{font-size:22px;margin:4px 0 16px}
.event-highlights{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.event-highlight{display:flex;gap:14px;border:1px solid #dce3e7;background:#f8fcfd;border-radius:5px;padding:12px;text-align:left;color:var(--ink);min-width:0}
.event-highlight img{width:120px;height:120px;object-fit:contain;align-self:center;background:white}
.event-highlight>span{flex:1;min-width:0}
.event-highlight strong,.event-highlight em,.event-highlight small,.event-cta{display:block}
.event-highlight strong{font-size:15px;line-height:1.5;margin:5px 0}
.event-highlight em{font-style:normal;font-size:13px;font-weight:bold;color:#a24d19}
.event-highlight small{font-size:12px;margin:6px 0}
.event-status{font-size:10px;color:#a24d19;background:#fff0dd;padding:3px 7px;border-radius:3px}
.event-cta{font-size:12px;color:var(--blue);margin-top:6px}
.event-footnote{font-size:11px;color:var(--muted);margin:12px 0 0}
.event-period{font-size:12px;font-weight:bold;color:#95470f;line-height:1.7;margin:0 0 12px}
@media(max-width:600px){.seasonal{padding:16px}
.seasonal h2{font-size:19px}
.event-highlights{gap:10px}
.event-highlight{display:block;padding:9px}
.event-highlight img{width:100%;height:85px}
.event-highlight strong{font-size:12px}
.event-highlight em{font-size:11px}
.event-highlight small{font-size:11px}
.event-cta{font-size:11px}
.event-highlight>span{display:block;margin-top:7px}
}


.ride-guide{background:#fff;border:1px solid var(--line);border-radius:6px;padding:22px;margin:0 0 24px}
.ride-guide h3{font-size:21px;line-height:1.5;margin:0 0 4px}
.ride-basis{font-size:13px;color:var(--muted);margin:0 0 16px}
.ride-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ride-option{border:1px solid var(--line);border-radius:5px;padding:18px;display:flex;flex-direction:column}
.ride-option-pass{background:#edf9fd;border-color:#b5deeb}
.ride-intent{font-size:12px;color:var(--muted)}
.ride-option h4{font-size:20px;margin:3px 0 10px}
.ride-option p{font-size:14px;margin:0 0 16px}
.ride-choice{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;box-sizing:border-box;border:1px solid var(--blue);background:white;color:var(--blue);border-radius:4px;padding:10px 8px;font-size:13px;font-weight:bold;min-height:44px;width:100%;margin-top:auto}
.ride-choice:hover{background:#e3f5fc}
.ride-option-pass .ride-choice{background:var(--blue);color:white}
.ride-option-pass .ride-choice:hover{background:#006888}
.ride-thresholds{display:flex;gap:20px;margin:0 0 14px}
.ride-thresholds>div{flex:1}
.ride-thresholds dt{font-size:12px;min-height:38px}
.ride-thresholds dt span{display:block;font-size:10px}
.ride-thresholds dd{font-size:14px;color:#006888;font-weight:bold;margin:2px 0 0;line-height:1.25}
.ride-thresholds dd strong{font-size:30px;letter-spacing:-.5px}
.ride-footnote{font-size:11px;color:var(--muted);margin:12px 0}
.ride-calculation{padding:12px 0 0}
.ride-calculation summary{font-size:12px;color:var(--blue)}
.ride-calculation p,.ride-calculation a{font-size:12px}
.ride-calculation table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}
.ride-calculation caption{text-align:left;font-size:11px;margin-bottom:8px;color:var(--muted)}
.ride-calculation th,.ride-calculation td{padding:9px 10px;border-bottom:1px solid var(--line)}
.ride-calculation thead{background:#f2f6f8}
.ride-calculation th small{display:block;font-size:10px;font-weight:normal}
@media(max-width:600px){.ride-guide{padding:16px}
.ride-guide h3{font-size:18px}
.ride-basis{font-size:12px}
.ride-options{grid-template-columns:1fr;gap:10px}
.ride-option{padding:14px}
.ride-option h4{font-size:18px;margin-bottom:8px}
.ride-option p{font-size:13px;margin-bottom:12px}
.ride-thresholds{gap:10px;margin-bottom:12px}
.ride-thresholds dd strong{font-size:29px}
.ride-calculation th,.ride-calculation td{padding:8px 5px}
}


.ride-option .ride-count-label{font-size:11px;color:var(--muted);margin:0 0 8px}
.stay-guidance{font-size:12px;line-height:1.7;margin:14px 0 0}
.stay-guidance strong,.stay-guidance span{display:block}
.stay-guidance span{font-size:11px;color:var(--muted);margin-top:4px}

/* Tabs share one neutral style; only the selected tab is highlighted. */
.nav button { background: white; color: var(--ink); border: 1px solid var(--line); border-radius: 8px; }
.nav button small { color: inherit; }
.nav button:hover { box-shadow: 0 3px 10px #172a3c20; }
.nav button[aria-pressed="true"] { background: #e8f8fd; color: #006b8d; border: 2px solid var(--bright); }
.nav button[aria-pressed="true"] small::before { content: "✓ 選択中 · "; }
.promotion-note { background: #fff5df; border-left: 4px solid #d99525; padding: 14px 16px; font-size: 13px; }
[hidden] { display: none !important; }
.nav { grid-template-columns: repeat(3, 1fr); }
.nav[data-count="2"] { grid-template-columns: repeat(2, 1fr); }
.ride-options { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 600px) {
  .ride-options { grid-template-columns: 1fr; }
}
/* Header follows the current /channel/tickets list: small logo, powered-by next to it, booking button below. */
header { box-shadow: 0 2px 4px #0000001a; border-bottom: 0; }
.header-inner { padding: 2px 28px; gap: 16px; flex-wrap: nowrap; justify-content: flex-start; }
.logo { width: auto; height: 56px; }
.powered { width: 133px; margin-left: 0; }
.booking-button { display: block; margin: 16px 0 0; padding: 10px; border: 2px solid var(--bright); border-radius: 4px; background: white; color: var(--bright); font-size: 16px; font-weight: bold; text-align: center; text-decoration: none; }
.booking-button:hover { background: #edfaff; }
.intro { padding: 24px 0 20px; }
.detail-hero { height: auto; object-fit: contain; background: #edf0f3; }
@media (max-width: 600px) {
  .header-inner { padding: 2px 12px; gap: 16px; }
  .intro { padding: 18px 0 16px; }
  .detail-hero { height: auto; }
}
