: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}
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}
.small-label{font-size:12px;color:var(--blue);font-weight:bold}
.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}
.primary:hover{background:#0089b3}
.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 img{width:145px}

@media(max-width:600px){.header-inner{padding:16px;gap:12px;flex-wrap:wrap}
main{padding:0 16px}
.intro{padding:30px 0 22px}
h1{font-size:25px}
.intro>p:last-child{font-size:13px}
.help{padding:20px}
.help h2{font-size:19px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
}

.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-footnote{font-size:11px;color:var(--muted);margin:12px 0 0}
@media(max-width:600px){.seasonal{padding:16px}
.seasonal h2{font-size:19px}
}

[hidden] { display: none !important; }
/* 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; }
@media (max-width: 600px) {
  .header-inner { padding: 2px 12px; gap: 16px; }
  .intro { padding: 18px 0 16px; }
}
