/* Season detail 「1日の流れ」 (みっくん FB-35, scripts/season-story.mjs + assets/js/season-story.js).
   No season colour: a full-bleed photograph and one line, then four moments of the day while the section
   goes from HIZASHI to YOZORA. Hand-drawn masks and edges are the TOP activity wall's. */
body.bub-site-page .activity-season-refined { --season-story-ease: cubic-bezier(.2, .7, .2, 1); }

/* Hero: same height rule as the TOP hero (.ref-text-hero). */
body.bub-site-page[data-bub-page-family="season-detail"] .season-detail-hero.season-story-hero { position: relative; display: block; width: 100%; max-width: none; height: clamp(460px, 70svh, 640px); margin: 0; padding: 0; overflow: hidden; background: #0d0d0f; color: #fcfcfc; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero .season-story-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 52% 34%; transform-origin: 60% 40%; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgb(0 0 0 / 28%) 0%, rgb(0 0 0 / 0%) 22%, rgb(0 0 0 / 0%) 42%, rgb(0 0 0 / 74%) 100%); pointer-events: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero .season-story-back { z-index: 3; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero-inner { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; width: min(calc(100% - 40px), 1060px); margin-inline: auto; padding-bottom: 48px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-facility { position: absolute; top: 20px; right: 0; margin: 0; font-size: 12px; line-height: 1; font-weight: 500; opacity: .9; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero h1 { margin: 0; color: inherit; font-size: 46px; line-height: 1.1; font-weight: 700; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-line { margin: 12px 0 0; font-size: 15px; line-height: 1.8; font-weight: 500; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-top: 24px; padding-top: 16px; border-top: 1px solid rgb(252 252 252 / 28%); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-dates { margin: 0; font: 400 13px/1.6 var(--font-num); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-dates b { display: block; font: 500 15px/1.4 var(--font-num); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-count { display: flex; align-items: baseline; gap: 6px; margin: 0; font-size: 13px; line-height: 1; font-weight: 500; white-space: nowrap; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-count[hidden] { display: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-count b { font: 700 40px/.9 var(--font-num); letter-spacing: -.02em; }

/* The day */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story { --season-story-bg: #fcfcfc; --season-story-ink: #2f2f2f; --season-story-sub: rgb(47 47 47 / 68%); --season-story-line: rgb(47 47 47 / 16%); position: relative; padding: 56px 0 0; background: var(--season-story-bg); color: var(--season-story-ink); scroll-margin-top: var(--season-nav-height, 48px); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story::before, body.bub-site-page[data-bub-page-family="season-detail"] .season-story::after { content: ""; position: absolute; left: 0; right: 0; height: 18px; pointer-events: none; -webkit-mask: url('/assets/images/top-handdrawn-edge.png') center -72px / 140% 198px no-repeat; mask: url('/assets/images/top-handdrawn-edge.png') center -72px / 140% 198px no-repeat; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story::before { top: -17px; z-index: 4; background: var(--season-story-bg); } /* above the hero's darkened layers (z 2), or the torn edge turns grey (owner 10/12) */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story::after { bottom: -1px; background: var(--paper, #fcfcfc); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-wrap { width: min(calc(100% - 40px), 1060px); margin-inline: auto; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-head h2 { margin: 0; color: inherit; font-size: 30px; line-height: 1.5; font-weight: 700; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-head p { margin: 16px 0 0; color: var(--season-story-sub); font-size: 14px; line-height: 1.9; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-join { width: fit-content; max-width: 100%; margin: 24px 0 0; padding: 14px 16px; border-radius: 8px; background: #e7ecec; color: #2f2f2f; font-size: 13px; line-height: 22px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-join a { display: inline-flex; align-items: center; gap: 2px; margin-left: 6px; color: #2f2f2f; font-weight: 700; text-decoration: underline; text-decoration-color: rgb(47 47 47 / 30%); text-underline-offset: 3px; white-space: nowrap; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-join .ic { width: 14px; height: 14px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-grid { position: relative; margin-top: 40px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel { display: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-steps { display: grid; gap: 56px; margin: 0; padding: 0; list-style: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step { position: relative; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-visual { position: relative; width: calc(80% + 20px); margin-left: -20px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step:nth-child(even) .season-story-visual { margin-left: auto; margin-right: -20px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-art { overflow: hidden; overflow: clip; aspect-ratio: 5 / 4; -webkit-mask: var(--season-story-mask) center / 100% 100% no-repeat; mask: var(--season-story-mask) center / 100% 100% no-repeat; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-art img, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-sub img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-sub { position: absolute; right: -6%; bottom: -14%; width: 38%; aspect-ratio: 1; -webkit-mask: url('/assets/images/top-activities/freehand/mask-12.svg') center / 100% 100% no-repeat; mask: url('/assets/images/top-activities/freehand/mask-12.svg') center / 100% 100% no-repeat; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-time time { font: inherit; letter-spacing: inherit; color: inherit; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-time { margin: 16px 0 0; font: 700 40px/1 var(--font-num); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-copy { margin-top: 8px; max-width: 30em; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-copy h3 { margin: 0; color: inherit; font-size: 21px; line-height: 1.55; font-weight: 700; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-copy > p:not(.season-story-meta) { margin: 8px 0 0; color: var(--season-story-sub); font-size: 14px; line-height: 1.95; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--season-story-line); color: var(--season-story-sub); font-size: 12px; line-height: 1.6; font-weight: 500; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-meta a { color: var(--season-story-ink); text-decoration: underline; text-decoration-color: var(--season-story-line); text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-meta span + span::before, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-meta a + span::before { content: ""; display: inline-block; width: 3px; height: 3px; margin: 0 12px 2px 0; border-radius: 50%; background: currentColor; vertical-align: middle; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end { padding: 64px 0 72px; text-align: center; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-lead { margin: 0; font-size: 22px; line-height: 1.6; font-weight: 700; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count { display: flex; justify-content: center; align-items: baseline; gap: 8px; margin: 6px 0 0; font-size: 22px; line-height: 1; font-weight: 700; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count[hidden] { display: none; }
/* The days left in the TOP figures' weight, set straight. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count b { color: #d56e59; font: 700 72px/.9 var(--font-num); letter-spacing: -.02em; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-meta { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 18px; margin: 24px 0 0; color: var(--season-story-sub); font-size: 12px; line-height: 1.8; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-cta { display: inline-flex; align-items: center; gap: 12px; margin-top: 24px; padding: 16px 22px 16px 28px; border-radius: 999px; background: var(--season-story-ink); color: var(--season-story-bg); font-size: 15px; line-height: 1; font-weight: 700; text-decoration: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-cta .ic { width: 18px; height: 18px; }

/* The stay goes on: one line after the night's count, leading to day two. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-next { margin: 20px 0 0; color: var(--season-story-sub); font-size: 14px; line-height: 22px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-next a { display: inline-flex; align-items: center; gap: 2px; margin-left: 8px; color: var(--season-story-ink); font-weight: 700; text-decoration: underline; text-decoration-color: var(--season-story-line); text-underline-offset: 3px; white-space: nowrap; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-next .ic { width: 14px; height: 14px; }

/* Clock: the time of day follows the reading. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-clock { position: fixed; z-index: 30; left: 50%; bottom: calc(96px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 10px; padding: 8px 14px 8px 10px; border-radius: 999px; background: #2f2f2f; color: #fcfcfc; font: 400 13px/1 var(--font-num); opacity: 0; pointer-events: none; transform: translate(-50%, 12px); transition: opacity .4s, transform .4s cubic-bezier(.2, .7, .2, 1); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-clock.is-night { background: #fcfcfc; color: #2f2f2f; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-clock.is-on { opacity: 1; transform: translate(-50%, 0); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-dial { position: relative; width: 18px; height: 18px; border: 1.5px solid currentColor; border-radius: 50%; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-dial i { position: absolute; left: 50%; top: 50%; width: 1.5px; height: 6px; margin-left: -.75px; border-radius: 1px; background: currentColor; transform-origin: 50% 0; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-dial i:first-child { height: 5px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-clock b { font-weight: 500; font-variant-numeric: tabular-nums; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-clock em { font: normal 400 12px/1 var(--font-ja, inherit); opacity: .72; }

/* Motion (only once season-story.js runs) */
@media (prefers-reduced-motion: no-preference) {
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero .season-story-photo { animation: season-story-in 2.4s var(--season-story-ease) both, season-story-drift 22s ease-in-out 2.4s infinite alternate; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero-inner > * { animation: season-story-rise 1s var(--season-story-ease) both; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero-inner > h1 { animation-delay: .5s; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero-inner > .season-story-line { animation-delay: .65s; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero-inner > .season-story-foot { animation-delay: .8s; }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step :is(.season-story-visual, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-time, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-copy) { opacity: 0; transform: translateY(40px); transition: opacity .9s var(--season-story-ease), transform 1.1s var(--season-story-ease); }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step .season-story-time { transition-delay: .12s; }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step .season-story-copy { transition-delay: .22s; }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step.is-in :is(.season-story-visual, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-time, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-copy) { opacity: 1; transform: none; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-art img { transform: scale(1.08); transition: transform 1.6s var(--season-story-ease); }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step.is-in .season-story-art img { transform: none; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-sub { animation: season-story-float 7s ease-in-out infinite; }
}
@keyframes season-story-in { from { transform: scale(1.14); filter: brightness(.4); } to { transform: scale(1.04); filter: none; } }
@keyframes season-story-drift { from { transform: scale(1.04); } to { transform: scale(1.1) translate(-1.2%, -1%); } }
@keyframes season-story-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes season-story-float { 0%, 100% { translate: 0 0; } 25% { translate: 3px -4px; } 50% { translate: 0 -6px; } 75% { translate: -3px -2px; } }

@media (min-width: 768px) {
  body.bub-site-page[data-bub-page-family="season-detail"] .season-detail-hero.season-story-hero { width: 100%; min-height: 560px; height: min(72svh, 720px); }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero-inner { width: min(calc(100% - 40px), 1060px); padding-bottom: 72px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-facility { top: 32px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero h1 { font-size: 88px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-line { margin-top: 16px; font-size: 20px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-foot { margin-top: 32px; padding-top: 24px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-dates { font-size: 14px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-dates b { font-size: 18px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-count { font-size: 15px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-count b { font-size: 56px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story { padding-top: 96px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-wrap { width: min(calc(100% - 40px), 1060px); }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-head h2 { font-size: 40px; line-height: 1.4; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-head p { font-size: 15px; }
  /* Without the script the moments stay in one column; keep the photographs at a readable size. */
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-visual, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step:nth-child(even) .season-story-visual { max-width: 640px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-grid { margin-top: 72px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-steps { gap: 72px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-time { font-size: 56px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-copy h3 { font-size: 26px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-copy > p:not(.season-story-meta) { font-size: 15px; line-height: 2; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end { padding: 120px 0 112px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-lead { font-size: 30px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count { font-size: 30px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count b { font-size: 104px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-meta { font-size: 13px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-clock { left: auto; right: 48px; bottom: 40px; padding: 12px 20px 12px 14px; font-size: 15px; transform: translateY(12px); }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-clock.is-on { transform: none; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-dial { width: 22px; height: 22px; }
}

/* Moments lead to their slot; the schedule picks up the story's voice. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-slot, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-all { display: inline-flex; align-items: center; gap: 4px; margin-top: 14px; color: var(--season-story-ink); font-size: 13px; line-height: 20px; font-weight: 700; text-decoration: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-slot .ic, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-all .ic { width: 16px; height: 16px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-all { display: flex; justify-content: center; width: fit-content; margin: 20px auto 0; color: var(--season-story-sub); font-weight: 500; }
body.bub-site-page[data-bub-page-family="season-detail"] .has-season-story .season-b-schedule-slot { scroll-margin-top: calc(var(--season-nav-top, 0px) + var(--season-nav-height, 48px) + 24px); }
body.bub-site-page[data-bub-page-family="season-detail"] .has-season-story .season-b-schedule-slot:target { animation: season-story-mark 2.4s ease-out; }
@keyframes season-story-mark { 0%, 30% { background: #e7ecec; } 100% { background: transparent; } }
body.bub-site-page[data-bub-page-family="season-detail"] .has-season-story #schedule .season-b-schedule-heading-row .section-heading h2 { font-size: 30px; line-height: 1.5; font-weight: 700; }
body.bub-site-page[data-bub-page-family="season-detail"] .has-season-story #schedule .season-schedule-note { font-size: 14px; line-height: 1.9; }
@media (min-width: 768px) {
  body.bub-site-page[data-bub-page-family="season-detail"] .has-season-story #schedule .season-b-schedule-heading-row .section-heading h2 { font-size: 40px; line-height: 1.4; }
}
body.bub-site-page[data-bub-page-family="season-detail"] .has-season-story[data-season-story-list="scheduled"] #season-activities-b { display: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .has-season-story #other-seasons { scroll-margin-top: calc(var(--season-nav-top, 0px) + var(--season-nav-height, 48px)); }
/* Below 1024 the four-tab bar holds the bottom edge: the story keeps its 空室 button, the clock waits for desktop. */
@media (max-width: 1023px) {
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-clock { display: none; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-all { margin-top: 28px; }
}

/* Desktop: the moment on screen holds the left; the photographs run down the right. */
@media (min-width: 1024px) {
  /* The desktop header already carries the way back and the facility. */
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero :is(.season-story-back, .season-story-facility) { display: none; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 32px; align-items: end; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-head h2 { font-size: 52px; line-height: 1.38; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-head p { margin: 0 0 10px; }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 64px; margin-top: 80px; }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel { display: block; position: sticky; top: calc(50vh - 200px); align-self: start; height: 400px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel-item { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; opacity: 0; transform: translateY(24px); transition: opacity .6s var(--season-story-ease), transform .8s var(--season-story-ease); pointer-events: none; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel-item.is-on { opacity: 1; transform: none; pointer-events: auto; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-count-index { margin: 0 0 20px; color: var(--season-story-sub); font: 400 13px/1 var(--font-num); }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-count-index b { color: var(--season-story-ink); font-weight: 600; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel .season-story-time { margin: 0; font-size: 72px; line-height: 1; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel .season-story-copy { margin-top: 28px; max-width: 24em; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel .season-story-copy h3 { font-size: 32px; white-space: nowrap; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel .season-story-copy > p:not(.season-story-meta) { font-size: 16px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel .season-story-meta { font-size: 13px; }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-steps { gap: 40px; }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step > :is(.season-story-time, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-copy) { display: none; }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-visual, .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step:nth-child(even) .season-story-visual { width: 78%; margin: 0; }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step:nth-child(even) .season-story-visual { margin-left: 22%; }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-art { aspect-ratio: 4 / 3; }
  .has-season-story-motion body.bub-site-page[data-bub-page-family="season-detail"] .season-story-steps { grid-column: 2; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end { padding-top: 160px; }
}

/* ===== Owner, 2026-10-07 =====
 * あと◯日 once, in the night scene; the join note as a lead line with 「参加のしかた >」, not a grey box;
 * and each 「◯つから1つ」 time as /activity/'s いま開催中: the time and count on one line, the choices as
 * photo cards running across (four across on the web). */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero .season-story-count { display: none !important; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story .season-story-join { margin: 16px 0 0; padding: 0; border: 0; border-radius: 0; background: none; color: rgb(47 47 47 / 70%); font-size: 13px; line-height: 22px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story .season-story-join a { display: inline-flex; align-items: center; gap: 2px; margin-left: 4px; color: var(--ink); font-weight: 700; text-decoration: none; white-space: nowrap; }

body.bub-site-page[data-bub-page-family="season-detail"] .activity-season-refined .season-b-schedule-slot.is-choice, body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice { display: block; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice > time { display: inline; margin-right: 8px; font: 700 18px/26px var(--font-num), var(--font-ja); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-slot-content { display: contents; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-choice { display: contents; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-choice-heading { display: inline; margin: 0; padding: 0; border: 0; background: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-choice-heading strong { color: rgb(47 47 47 / 70%); font-size: 13px; line-height: 20px; font-weight: 500; }
/* The choice rail is a flex row, not a grid with % columns: iPhone Safari kept the grid row height from
 * while the day panel was hidden (0-wide columns), so returning to day 2 showed clipped photo strips (10/17). */
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-cards { display: flex; align-items: flex-start; gap: 10px; margin: 10px calc(var(--gutter, 20px) * -1) 0; padding: 0 var(--gutter, 20px) 2px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter, 20px); scrollbar-width: none; border: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-cards::-webkit-scrollbar { display: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-card { flex: 0 0 40%; display: flex; flex-direction: column; align-items: stretch; gap: 6px; min-width: 0; min-height: 0; margin: 0; padding: 0; border: 0; background: none; scroll-snap-align: start; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-card > img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 6px; object-fit: cover; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-card-copy { display: block; padding: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-card-copy strong { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 13px; line-height: 20px; font-weight: 500; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice :is(.season-refined-meta, .season-b-schedule-card-arrow) { display: none; }
@media (min-width: 768px) {
  body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-cards { display: grid; align-items: stretch; grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 12px 0 0; padding: 0; overflow: visible; scroll-snap-type: none; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-card > img { aspect-ratio: 16 / 10; border-radius: 12px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-card-copy strong { font-size: 14px; line-height: 21px; }
}

/* Web balance (owner, 2026-10-07: 「웹이 벨붕」): the page on the header's 1200 grid, the story head as
 * one column (title, then its line), each choice time in the schedule's own time column with its four
 * cards beside, and the other seasons four across, as /room/. */
@media (min-width: 1024px) {
  body.bub-site-page[data-bub-page-family="season-detail"] :is(.season-story-hero-inner, .season-story-wrap, #schedule > *, #other-seasons > *) { width: min(calc(100% - 64px), 1200px) !important; max-width: none !important; margin-inline: auto !important; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-refined-nav { padding-inline: max(32px, calc((100% - 1200px) / 2)) !important; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-head { display: block !important; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-head > p { max-width: none; margin-top: 12px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .activity-season-refined .season-b-schedule-slot.is-choice,
  body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice { display: grid !important; grid-template-columns: 64px minmax(0, 1fr); column-gap: 24px; align-items: baseline; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice > time { grid-column: 1; grid-row: 1 / 3; align-self: start; margin: 0; font-size: 15px; line-height: 22px; font-weight: 500; color: rgb(47 47 47 / 70%); }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-choice-heading { grid-column: 2; display: block; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-b-schedule-slot.is-choice .season-b-schedule-cards { grid-column: 2; }
  body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .live-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 24px !important; }
}

/* The day tabs and a slot land below the sticky header and season bar, and a panel reached by its
 * fragment shows no focus ring (owner iPhone check, 2026-10-08). */
body.bub-site-page [data-season-day-tabs] { scroll-margin-top: calc(var(--season-nav-top, var(--header-height, 56px)) + var(--season-nav-height, 52px) + 8px); }
body.bub-site-page [id^="season-b-day-"] { scroll-margin-top: calc(var(--season-nav-top, var(--header-height, 56px)) + var(--season-nav-height, 52px) + 12px); }
body.bub-site-page .season-b-schedule-panel:focus { outline: none; }

/* ===== One timeline (owner, 2026-10-11: 「레이아웃이 엉망, 정신사나움」) =====
 * Every time reads alike, as /activity/'s いま開催中: the time in bold in its own column (on phones a choice time
 * keeps its count on the time's line and its photos running across underneath). A time without a choice is a
 * title with at most one quiet line under it — no thumbnail, no empty card height, no rules between items; where
 * the evening splits, 子ども／大人 stand as labels before each title. */
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot { padding-block: 16px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot > time { color: var(--ink); font: 700 18px/26px var(--font-num), var(--font-ja); white-space: nowrap; padding: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) { display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 12px; align-items: start; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) > time { grid-column: 1; grid-row: 1 / span 4; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) > .season-b-schedule-slot-content { grid-column: 2; margin: 0; padding: 0; border: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) > .season-b-schedule-slot-content + .season-b-schedule-slot-content { margin-top: 10px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0; padding: 0; border: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card { min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; color: var(--ink); text-decoration: none; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card > img { display: none; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-copy { display: block; padding: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-copy strong { display: inline; font-size: 15px; line-height: 26px; font-weight: 700; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) :is(.season-program-info-copy, .season-refined-arrival-note) { display: block; margin: 2px 0 0; color: rgb(47 47 47 / 64%); font-size: 13px; line-height: 20px; font-weight: 400; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-arrow { display: none; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-arrow .ic { width: 14px; height: 14px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:not(a) .season-b-schedule-card-arrow { display: none; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-refined-meta:empty { display: none; }
/* 18:00 大人・子ども、それぞれの時間: the line, then each title with its label in front. */
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-choice { display: block; margin: 0; padding: 0; border: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-choice-heading { display: block; margin: 0 0 4px; padding: 0; border: 0; background: none; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-choice-heading strong { color: rgb(47 47 47 / 64%); font-size: 13px; line-height: 26px; font-weight: 500; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience] .season-refined-meta .ic { display: none; }
/* Each item as one wrapping line: the title with its chevron when it is a link, then its meta or line on its
   own row underneath; 子ども／大人 stand as a label in front. */
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 4px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-copy { display: contents; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-copy strong { order: 1; flex: 0 1 auto; min-width: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-arrow { order: 2; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card :is(.season-refined-meta, .season-refined-arrival-note, .season-program-info-copy, .season-refined-until) { order: 3; flex: 0 0 100%; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience] { column-gap: 8px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience] .season-refined-meta { order: 0; flex: 0 0 3.5em; margin: 0; color: rgb(47 47 47 / 64%); font-size: 12px; line-height: 26px; font-weight: 700; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience] .season-b-schedule-card-copy strong { flex: 1 1 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience]:is(a) .season-b-schedule-card-copy strong { flex: 0 1 auto; }
/* Choice times: the count on the time's line, the long-activity note under it, then the photos. */
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 10px; align-items: baseline; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice > time { grid-column: 1; grid-row: 1; margin: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-b-schedule-choice-heading { grid-column: 2; grid-row: 1; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-refined-continues { grid-column: 1 / -1; grid-row: 2; margin: 4px 0 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-b-schedule-cards { grid-column: 1 / -1; grid-row: 3; }
@media (min-width: 1024px) {
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot { padding-block: 20px; }
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) { grid-template-columns: 120px minmax(0, 1fr); column-gap: 24px; }
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice { grid-template-columns: 120px minmax(0, 1fr) !important; column-gap: 24px !important; }
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice > time { font-size: 18px; line-height: 26px; font-weight: 700; color: var(--ink); }
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-b-schedule-choice-heading { grid-column: 1; grid-row: 2; align-self: start; }
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-refined-continues { grid-column: 2; grid-row: 1; margin: 0 0 10px; }
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-b-schedule-cards { grid-column: 2; grid-row: 1 / span 3; margin-top: 0; }
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice:has(.season-refined-continues) .season-b-schedule-cards { grid-row: 2 / span 3; }
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience] { max-width: 640px; }
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-copy strong { font-size: 16px; }
}

/* ===== ほかの季節 as the season bars of /activity/ and TOP's いま開催中 (owner, 2026-10-11) =====
 * Each season its BUB-palette tint, name and dates, and its own cut-out before the chevron; one column on
 * phones, two on the web. A season page opens on its own photograph, so the bar only names the way in. */
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 8px !important; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a.live-activity-card { position: relative; display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: flex-start !important; gap: 12px; min-height: 88px; height: 88px; margin: 0; padding: 0 44px 0 20px !important; overflow: hidden; border: 0 !important; border-radius: 12px !important; box-shadow: none !important; background-repeat: no-repeat; background-position: right calc(40px + (88px - var(--art-w, 72px)) / 2) bottom 10px; background-size: var(--art-w, 72px) var(--art-h, 64px); color: var(--ink); text-decoration: none; -webkit-tap-highlight-color: transparent; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a .live-card-image { display: none !important; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a .live-card-body { display: flex !important; flex: 1 1 auto; flex-direction: column; justify-content: center; align-items: flex-start; gap: 2px; width: auto !important; min-width: 0; margin: 0 !important; padding: 0 !important; text-align: left !important; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a h3 { margin: 0 !important; font-size: 20px !important; line-height: 26px !important; font-weight: 700; letter-spacing: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a .status-pill { display: block; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; color: rgb(47 47 47 / 64%) !important; font: 500 12px/16px var(--font-num), var(--font-ja) !important; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a .live-copy { display: none !important; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a > .ic { display: block !important; position: absolute; right: 16px; top: 50%; width: 16px; height: 16px; margin: 0; transform: translateY(-50%); }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/summer/"] { background-color: #dae4f1; background-image: url('/assets/images/top-season/summer-cutout.webp'); }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/earlysummer/"] { background-color: #d5d9d2; background-image: url('/assets/images/top-season/earlysummer-cutout.webp'); }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/halloween/"] { background-color: #ece1d6; background-image: url('/assets/images/top-season/halloween-pumpkins-cutout.webp'); }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/holiday/"] { background-color: #f0d1cb; background-image: url('/assets/images/top-season/holiday-cutout.webp'); }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/winter/"] { background-color: #dfdad4; background-image: url('/assets/images/top-season/winter-cutout.webp'); }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/spring/"] { background-color: #ebdad6; background-image: url('/assets/images/top-season/spring-cutout.webp'); }
@media (hover: hover) and (pointer: fine) {
  body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a:hover h3 { text-decoration: underline; text-underline-offset: 3px; }
}
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
@media (min-width: 768px) {
  body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
}

/* ===== The schedule, quieter (owner, 2026-10-11: 「톤매너 지켜주면서 좀더 洗練」) =====
 * Hairline rules, one weight for titles, the lines under them in the page's muted grey, and a long activity's
 * end time as the small grey chip /activity/ uses instead of a clock icon and minutes. */
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot { border-color: rgb(47 47 47 / 10%) !important; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-copy strong { font-weight: 600; letter-spacing: .02em; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-b-schedule-card-copy strong { font-weight: 500; letter-spacing: .02em; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-b-schedule-choice-heading strong { color: rgb(47 47 47 / 64%); font-weight: 500; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-refined-until { display: inline-flex !important; align-items: center; gap: 0; width: max-content; margin-top: 4px; padding: 0 6px; border-radius: 4px; background: rgb(47 47 47 / 7%); color: rgb(47 47 47 / 80%); font-size: 11px; line-height: 18px; font-weight: 500; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-refined-until :is(.ic, span) { display: none !important; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-refined-continues { color: rgb(47 47 47 / 64%); font-size: 12px; line-height: 18px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-refined-continues .ic { width: 13px; height: 13px; }

/* ===== Times without a choice as blocks (owner, 2026-10-11: 「텍스트로만이 아니라」) =====
 * Each item is a soft block on the page's grey, as /activity/'s timeline blocks: its photograph when it has one,
 * the title and one quiet line, and a chevron when it leads to a page. Where the evening splits, the
 * 子ども／大人 label sits over each title and the two blocks stand side by side on the web. */
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-cards { gap: 8px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; row-gap: 2px; align-items: center; min-height: 56px; padding: 12px 14px; border-radius: 10px; background: rgb(47 47 47 / 4.5%); }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) { grid-template-columns: 56px minmax(0, 1fr) auto; padding: 10px 14px 10px 10px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card > img { display: block; grid-column: 1; grid-row: 1 / span 4; width: 56px; height: 56px; border-radius: 8px; object-fit: cover; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card > *:not(img, .season-b-schedule-card-arrow), body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-copy > * { grid-column: 1; order: 0; flex: none; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) > *:not(img, .season-b-schedule-card-arrow), body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) .season-b-schedule-card-copy > * { grid-column: 2; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-copy strong { text-decoration: none; font-size: 15px; line-height: 22px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) :is(.season-program-info-copy, .season-refined-arrival-note) { margin: 0; font-size: 12px; line-height: 18px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) a.season-b-schedule-card .season-b-schedule-card-arrow { display: flex; grid-column: -2; grid-row: 1 / span 4; color: rgb(47 47 47 / 56%); }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card-arrow .ic { width: 16px; height: 16px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-refined-meta:not(:empty) { display: flex; gap: 4px; margin: 0; color: rgb(47 47 47 / 64%); font-size: 12px; line-height: 18px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience] .season-refined-meta { order: -1; font-weight: 700; line-height: 18px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) a.season-b-schedule-card { transition: background-color var(--feedback-duration, .15s) ease; -webkit-tap-highlight-color: transparent; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) a.season-b-schedule-card:active { background: rgb(47 47 47 / 9%); }
@media (hover: hover) and (pointer: fine) {
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) a.season-b-schedule-card:hover { background: rgb(47 47 47 / 8%); }
}
@media (min-width: 768px) {
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; }
  body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience] { max-width: none; }
}
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card .season-b-schedule-card-copy strong { order: 0; text-decoration: none; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card :is(.season-program-info-copy, .season-refined-arrival-note, .season-refined-meta) { order: 1; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience] .season-b-schedule-card-copy .season-refined-meta { order: -1; }
/* With a photograph, the title and its line sit in the middle beside it. */
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) { grid-template-rows: 1fr auto auto auto 1fr; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) > img, body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) > .season-b-schedule-card-arrow { grid-row: 1 / -1; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) .season-b-schedule-card-copy strong { grid-row: 2; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) .season-refined-meta { grid-row: 3; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) :is(.season-program-info-copy, .season-refined-arrival-note) { grid-row: 4; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience]:has(> img) .season-refined-meta { grid-row: 2; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience]:has(> img) .season-b-schedule-card-copy strong { grid-row: 3; }
/* One line for every row (owner, 2026-10-11: 「시간이 블럭이랑 틀려서 벨런스 나쁨」): the time sits on the line of the
   first words beside it — a block's title, or 大人・子ども、それぞれの時間 where the evening splits — so with a
   photograph the title starts at its top too. */
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) > time { padding-top: 9px; }
.as(.season-b-schedule-choice-heading) > time { padding-top: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) { grid-template-rows: auto auto auto 1fr; padding: 12px 14px 12px 12px; align-items: start; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) .season-b-schedule-card-copy strong { grid-row: 1; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) .season-refined-meta { grid-row: 2; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) :is(.season-program-info-copy, .season-refined-arrival-note) { grid-row: 3; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience]:has(> img) .season-refined-meta { grid-row: 1; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) [data-schedule-audience]:has(> img) .season-b-schedule-card-copy strong { grid-row: 2; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) > .season-b-schedule-card-arrow { align-self: center; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card { min-height: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-choice-heading { padding-top: 8px !important; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot:not(.is-choice) .season-b-schedule-card:has(> img) { grid-template-rows: auto auto auto minmax(0, auto); align-content: start; }

/* ===== 1日の流れ, as clean as the schedule (owner, 2026-10-11: 「히어로부터… 제대로 洗練되게 밑에처럼」) =====
 * The photographs lose the torn freehand edge and the left/right offsets: one clean rounded 4:3 frame, the
 * column's full width, as the schedule's photo cards. The activity under each moment is a soft block with a
 * chevron, as the schedule's blocks; 「この時間のスケジュール」 stays a quiet text link beneath it. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-art { aspect-ratio: 5 / 4 !important; }
/* Special again (owner, 2026-10-11: 「심심함」): the BUB freehand edge stays, but every photograph is the same
   size on one axis — edge to edge on phones — and the time is set large, as a graphic. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-visual, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step:nth-child(even) .season-story-visual { width: calc(100% + 40px) !important; max-width: none !important; margin-left: -20px !important; margin-right: -20px !important; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-time { margin-top: 12px; font-size: 64px; letter-spacing: -.035em; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-copy h3 { font-size: 20px; line-height: 1.5; letter-spacing: .02em; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-copy > p:not(.season-story-meta) { margin-top: 6px; color: var(--season-story-sub); font-size: 14px; line-height: 1.8; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-meta { display: block; margin: 16px 0 0; padding: 0; border: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-meta a { display: flex; align-items: center; justify-content: space-between; gap: 12px; max-width: 360px; padding: 12px 14px; border-radius: 10px; background: color-mix(in srgb, var(--season-story-ink) 6%, transparent); color: var(--season-story-ink); font-size: 14px; line-height: 22px; font-weight: 600; letter-spacing: .02em; text-decoration: none; transition: background-color var(--feedback-duration, .15s) ease; -webkit-tap-highlight-color: transparent; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-meta a::after { content: ""; flex: none; width: 16px; height: 16px; background: currentColor; opacity: .56; -webkit-mask: url('/assets/icons/lucide/source/chevron-right.svg') center / contain no-repeat; mask: url('/assets/icons/lucide/source/chevron-right.svg') center / contain no-repeat; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-meta a:active { background: color-mix(in srgb, var(--season-story-ink) 11%, transparent); }
@media (hover: hover) and (pointer: fine) {
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-meta a:hover { background: color-mix(in srgb, var(--season-story-ink) 10%, transparent); }
}
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-slot { margin-top: 10px; color: var(--season-story-sub); font-size: 13px; font-weight: 500; }
@media (min-width: 768px) {
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-visual, body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step:nth-child(even) .season-story-visual { width: 100% !important; margin-inline: 0 !important; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-time { font-size: 80px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-copy h3 { font-size: 24px; }
}
@media (min-width: 1024px) {
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel .season-story-time { font-size: 112px; letter-spacing: -.04em; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel .season-story-copy h3 { font-size: 28px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel .season-story-copy > p:not(.season-story-meta) { font-size: 15px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-panel .season-story-meta { font-size: 14px; }
}

/* ===== The hero plays the day (owner, 2026-10-11) =====
 * Taller on phones; the four moments crossfade over the hero photograph, each drifting slowly, and the
 * time and what happens sit above the title with one thin bar per moment, as a story's progress. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-detail-hero.season-story-hero { height: clamp(520px, 84svh, 760px); }
/* A moment dips to dark before the next rises, so two photos never show through each other; a crossfade laid
 * one face over another at half strength, and the hero photograph showed through both (owner 10/12:
 * 「유령 나오겠다」). The hero photograph leaves the same way once the reel starts. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero .season-story-reel { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .45s ease-in, transform 0s linear .45s; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero .season-story-reel.is-on { opacity: 1; transform: scale(1.12); transition: opacity .8s ease-out .35s, transform 6.4s linear .35s; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero .season-story-reel.is-instant.is-on { transition: transform 6s linear; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero .season-story-photo { transition: opacity .45s ease-in; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero.is-playing .season-story-photo { opacity: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-now { display: grid; gap: 10px; margin: 0 0 18px; opacity: 0; transform: translateY(6px); transition: opacity .6s ease, transform .6s ease; animation: none !important; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero.is-playing .season-story-now { opacity: 1; transform: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-bars { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; width: min(100%, 220px); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-bars i { position: relative; display: block; height: 2px; overflow: hidden; border-radius: 1px; background: rgb(252 252 252 / 32%); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-bars i::after { content: ""; position: absolute; inset: 0; background: #fcfcfc; transform: scaleX(0); transform-origin: left; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-bars i.is-done::after { transform: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-bars i.is-on::after { transform: none; transition: transform 4.2s linear; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-now-label { display: flex; align-items: baseline; gap: 10px; font-size: 14px; line-height: 20px; font-weight: 500; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-now-label b { font: 700 22px/1 var(--font-num); letter-spacing: -.01em; }
@media (min-width: 768px) {
  body.bub-site-page[data-bub-page-family="season-detail"] .season-detail-hero.season-story-hero { height: clamp(560px, 82svh, 860px); }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-hero h1 { font-size: 72px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-line { font-size: 17px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-now-label { font-size: 15px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-now-label b { font-size: 26px; }
}

/* ===== The end of the day, tidied (owner, 2026-10-11) =====
 * One centred column on one rhythm: what the days count to, あと◯日 large, the season as a line with its first
 * and last day at its ends, the place and stay, the booking button, then day two as one line. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-lead { display: block; margin: 0; color: var(--season-story-sub); font-size: 14px; line-height: 1.6; font-weight: 500; letter-spacing: .04em; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-lead span { margin-left: 10px; font: 500 14px/1.6 var(--font-num), var(--font-ja); letter-spacing: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-lead em { display: none; font-style: normal; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-lead.is-counting span { display: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-lead.is-counting em { display: inline; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count { display: flex; flex-wrap: nowrap; justify-content: center; align-items: baseline; gap: 8px; margin: 4px 0 0; font-size: 22px; line-height: 1; font-weight: 700; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count b { font-size: 96px; line-height: 1; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-meta { display: block; margin: 20px 0 0; color: var(--season-story-sub); font-size: 13px; line-height: 1.6; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end .season-story-cta { margin-top: 32px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end .season-story-next { margin: 20px 0 0; color: var(--season-story-sub); font-size: 13px; line-height: 1.8; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end .season-story-next a { margin-left: 6px; color: var(--season-story-ink); font-weight: 700; }
@media (min-width: 768px) {
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-lead { font-size: 15px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count { font-size: 26px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count b { font-size: 128px; }
}

/* ===== Moments alive, as the hero (owner, 2026-10-11: 「밑에가 스페셜하지 않아」) =====
 * A moment's photograph keeps drifting slowly while it is on screen, and its time counts up from the moment
 * before as it arrives (assets/js/season-story.js), so the day is felt passing. */
@media (prefers-reduced-motion: no-preference) {
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-step.is-in .season-story-art img { animation: season-story-drift 14s ease-in-out infinite alternate; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-time.is-ticking { color: var(--season-story-sub); }
}
@keyframes season-story-drift { from { transform: scale(1.02); } to { transform: scale(1.12) translate(-1.5%, -1%); } }

/* The section bar waits under the hero, taking no room, and slides in once the hero is passed. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-refined-nav[data-reveal] { margin-bottom: calc(var(--season-nav-height, 48px) * -1 - 1px); opacity: 0; transform: translateY(-100%); pointer-events: none; transition: opacity .25s ease, transform .3s ease; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-refined-nav[data-reveal].is-shown { opacity: 1; transform: none; pointer-events: auto; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-refined-nav[data-reveal]:focus-within { opacity: 1; transform: none; pointer-events: auto; }

/* あと◯日, special: a soft lantern glow behind the number as it counts down, and the season as a thin line
   between its first and last day with today on it. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count { position: relative; isolation: isolate; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count b { position: relative; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count b::before { content: ""; position: absolute; left: 50%; top: 50%; z-index: -1; width: 2.2em; height: 2.2em; border-radius: 50%; background: radial-gradient(closest-side, rgb(213 110 89 / 30%), rgb(213 110 89 / 0%)); transform: translate(-50%, -50%) scale(.4); opacity: 0; transition: transform 1.6s ease, opacity 1.6s ease; pointer-events: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count.is-counted b::before { opacity: 1; transform: translate(-50%, -50%) scale(1); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-progress { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; width: min(100%, 280px); margin: 16px auto 0; color: var(--season-story-sub); font: 500 12px/1 var(--font-num), var(--font-ja); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-progress small { font: inherit; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-progress-track { position: relative; height: 2px; border-radius: 1px; background: var(--season-story-line); }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-progress-track i { position: absolute; inset: 0 auto 0 0; width: calc(var(--through) * 100%); border-radius: inherit; background: #d56e59; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-progress-track i::after { content: ""; position: absolute; right: -4px; top: 50%; width: 8px; height: 8px; border-radius: 50%; background: #d56e59; box-shadow: 0 0 0 4px rgb(213 110 89 / 22%); transform: translateY(-50%); }
/* Clip the edge-to-edge photographs at the screen, not at the column: clipping the column cut the freehand
   edge into straight sides (owner 10/12 「양옆이 짤림」). */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story { overflow-x: clip; }
body.bub-site-page [id^="season-b-day-"]:focus { outline: none; }

/* The same sizes as /activity/'s season bars (assets/css/activity-hub.css). */
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/halloween/"] { --art-w: 68px; --art-h: 62px; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/holiday/"] { --art-w: 54px; --art-h: 72px; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/winter/"] { --art-w: 71px; --art-h: 61px; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/spring/"] { --art-w: 82px; --art-h: 56px; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/earlysummer/"] { --art-w: 83px; --art-h: 63px; }
body.bub-site-page[data-bub-page-family="season-detail"] #other-seasons .season-related-grid > a[href$="/season/summer/"] { --art-w: 70px; --art-h: 68px; }

/* The family's planned stay (assets/js/family-plan.js): one line under the hero's dates; in the schedule the
   activity that suits the children carries おすすめ, and those they cannot join are quieter. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-plan { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 12px 0 0; font-size: 13px; line-height: 20px; font-weight: 500; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-plan a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-b-schedule-card { position: relative; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-b-schedule-recommendation:not([hidden]) { display: block; position: absolute; top: 6px; left: 6px; z-index: 1; padding: 2px 8px; border-radius: 999px; background: #2f2f2f; color: #fcfcfc; font-size: 11px; line-height: 18px; font-weight: 700; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-schedule-plan { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 6px 0 0; color: rgb(47 47 47 / 72%); font-size: 13px; line-height: 20px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-schedule-plan button { min-height: 32px; padding: 0; border: 0; background: none; color: var(--ink); font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* The family sticker on a photograph (assets/js/family-plan.js familyBadge; owner, 2026-10-12): 「2〜8歳もOK」
   in a white pill, 「おすすめ」 on the accent for the one picked at a time, and the age it needs where they cannot (the
   photo keeps its colour: greying read as 「unavailable」, owner 2026-10-12). */
body.bub-site-page[data-bub-page-family="season-detail"] .family-badge { position: absolute; left: 8px; bottom: 8px; z-index: 2; display: inline-flex; align-items: center; gap: 4px; height: 30px; padding: 0 10px 0 2px; border-radius: 999px; background: #fcfcfc; color: #2f2f2f; font-size: 12px; line-height: 1; font-weight: 700; letter-spacing: .02em; box-shadow: 0 2px 8px rgb(13 13 15 / 18%); pointer-events: none; }
body.bub-site-page[data-bub-page-family="season-detail"] .family-badge.is-pick { background: #d56e59; color: #fcfcfc; }
body.bub-site-page[data-bub-page-family="season-detail"] .family-badge.is-no { padding: 0 10px; background: #2f2f2f; color: #fcfcfc; font-weight: 500; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-card > .family-badge { top: 8px; bottom: auto; }

/* The hand-drawn mark instead of a face (owner, 2026-10-12). */
body.bub-site-page[data-bub-page-family="season-detail"] .family-badge { padding: 0 10px 0 8px; gap: 5px; height: 26px; }
body.bub-site-page[data-bub-page-family="season-detail"] .family-badge i { display: block; width: 10px; height: 10px; background: #d56e59; -webkit-mask: url('/assets/images/top-activities/freehand/mask-04.svg') center / contain no-repeat; mask: url('/assets/images/top-activities/freehand/mask-04.svg') center / contain no-repeat; }
body.bub-site-page[data-bub-page-family="season-detail"] .family-badge.is-pick i { background: #fcfcfc; }

/* Counters in BUB's own hand, as the みなかみ LP's 「あと◯日」 (owner 2026-10-13: 「카운터 이걸로 통일」). The logo's murmur
   face is thinner than Inter, so a size up. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-count b,
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count b { font-family: murmur, bubbub, cursive; font-weight: 400; letter-spacing: 0; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-count b { font-size: 52px; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count b { font-size: 120px; line-height: .9; }
@media (min-width: 768px) {
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-count b { font-size: 72px; }
  body.bub-site-page[data-bub-page-family="season-detail"] .season-story-end-count b { font-size: 164px; }
}
/* Stars and a far moon after dusk (season-sky.js, owner 10/12): a screen-tall canvas pinned inside the
   section, behind the day; it fades in as the section turns to YOZORA. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-sky { position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0; transition: opacity 1.8s ease; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story.is-night .season-sky { opacity: 1; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-sky canvas { position: sticky; top: 0; display: block; width: 100%; height: 100vh; height: 100lvh; }
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-wrap { position: relative; z-index: 1; }
/* A season still to come: the line shows its dates with no 「today」 dot on it yet. */
body.bub-site-page[data-bub-page-family="season-detail"] .season-story-progress.is-upcoming .season-story-progress-track i { display: none; }
/* A start date taken out of a schedule title (「6/16から」) sits under the name like 「17:30まで」. */
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-refined-from { display: inline-flex; align-items: center; width: max-content; margin-top: 4px; padding: 0 6px; border-radius: 4px; background: rgb(47 47 47 / 7%); color: rgb(47 47 47 / 80%); font-size: 11px; line-height: 18px; font-weight: 500; }
/* A choice with no photograph and no page of its own keeps the row's rhythm: a pale plate where the photo would
   be, then its name and tags like the others. */
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-b-schedule-card.has-no-image { flex-direction: column; justify-content: flex-start; }
body.bub-site-page[data-bub-page-family="season-detail"] #schedule .season-b-schedule-slot.is-choice .season-b-schedule-card.has-no-image::before { content: ""; display: block; width: 100%; aspect-ratio: 4 / 3; border-radius: 6px; background: #e7ecec; }
