/* Activity details use the existing Chosei room photo / facts / story hierarchy. */
.bub-site-page .activity-reference-detail { --content: 1060px; font-family: Inter, var(--font-ja); }
.bub-site-page .activity-reference-detail .activity-c-hero { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-bottom: 24px; }
.bub-site-page .activity-reference-detail .activity-c-gallery-shell { position: relative; }
.bub-site-page .activity-reference-detail .activity-c-gallery-shell > .swiper-indicator-container { display: none; }
.activity-reference-side-photo { display: none; }
.bub-site-page .activity-reference-detail .activity-c-gallery { aspect-ratio: 3 / 2; border-radius: 0; }
/* These two legacy leather photos include a white matte around the photograph. */
.activity-c-gallery-shell :is(.chosei-room-listing-photo, .activity-reference-side-photo):has(> img:is([src$="/95cf7afc75576890295f96b8.png"], [src$="/5710b09fb7c1e5620b8b266c.png"], [data-activity-original-src$="/95cf7afc75576890295f96b8.png"], [data-activity-original-src$="/5710b09fb7c1e5620b8b266c.png"])) { overflow: hidden; }
.activity-c-gallery-shell :is(.chosei-room-listing-photo, .activity-reference-side-photo) > img:is([src$="/95cf7afc75576890295f96b8.png"], [src$="/5710b09fb7c1e5620b8b266c.png"], [data-activity-original-src$="/95cf7afc75576890295f96b8.png"], [data-activity-original-src$="/5710b09fb7c1e5620b8b266c.png"]) { transform: scale(1.18); transform-origin: center; }
.bub-site-page .activity-reference-detail .activity-c-gallery-open { right: 12px; bottom: 12px; min-width: 52px; min-height: 44px; margin: 0; padding: 8px; gap: 0; border: 0; border-radius: 8px; background: transparent; color: #fff; }
.bub-site-page .activity-reference-detail .activity-c-gallery-open > .ic,
.bub-site-page .activity-reference-detail .chosei-room-gallery-open-label { display: none; }
.bub-site-page .activity-reference-detail .chosei-room-gallery-count { display: block; padding: 5px 12px; border-radius: 6px; background: #0009; font: 500 12px/16px var(--font-num); }
.bub-site-page .activity-reference-detail .chosei-room-gallery-count strong { font-weight: 700; }
/* Same type scale as the Chosei room detail: h1 28/38 → 32/44, h2 22/32 → 24/34 (main.* outranks chosei-detail-tone). */
.bub-site-page main.activity-reference-detail h1 { margin: 0; font-size: 28px; line-height: 38px; letter-spacing: 0; }
.bub-site-page main.activity-reference-detail h2 { font-size: 22px; line-height: 32px; letter-spacing: 0; }
.bub-site-page .activity-reference-detail .activity-reference-back { position: absolute; z-index: 2; top: 20px; left: 20px; display: grid; place-items: center; width: 44px; height: 44px; min-height: 44px; margin: 0; border-radius: 50%; background: var(--paper); color: var(--ink); }
.activity-reference-back .ic { width: 24px; height: 24px; }
.bub-site-page .activity-reference-facility { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--ink); font-size: 14px; line-height: 22px; font-weight: 500; text-decoration: none; }
.activity-reference-facility .ic { width: 16px; height: 16px; color: var(--muted); }
.bub-site-page .activity-reference-detail .activity-reference-facility { min-height: 44px; margin: -12px 0 4px; color: var(--muted); font-size: 14px; font-weight: 400; }
.bub-site-page .activity-reference-detail .activity-reference-facility.is-experience { gap: 4px; color: var(--ink); font-size: 15px; font-weight: 700; }
.bub-site-page .activity-reference-detail .activity-reference-facility.is-experience .ic:first-child { color: var(--ink); }
.bub-site-page .activity-reference-detail .activity-c-hero-copy > .activity-c-hero-lead { margin: 12px 0 0; color: var(--ink); font-size: 16px; line-height: 26px; font-weight: 400; }
.bub-site-page .activity-reference-detail .activity-reference-overview { display: flex; flex-wrap: wrap; gap: 12px 20px; margin: 20px 0 0; padding: 16px 0 0; border-top: 1px solid var(--line); }
.bub-site-page .activity-reference-detail .activity-reference-overview { display: flex; flex-wrap: wrap; gap: 12px 20px; margin: 20px 0 0; padding: 16px 0 0; border-top: 1px solid var(--line); }
/* この体験ができる施設: the facility to stay at, with its availability, under the facts (たまき FB⑤). */
.bub-site-page .activity-reference-detail .activity-reference-stay { display: grid; gap: 12px; margin: 16px 0 0; padding: 16px; border-radius: var(--radius-media, 8px); background: var(--surface, #f3f2ee); }
.bub-site-page .activity-reference-detail .activity-reference-stay-text { display: grid; gap: 2px; min-width: 0; }
.bub-site-page .activity-reference-detail .activity-reference-stay-label { margin: 0; color: rgb(47 47 47 / 70%); font-size: 12px; line-height: 18px; }
.bub-site-page .activity-reference-detail .activity-reference-stay-name { display: inline-flex; align-items: center; gap: 4px; width: fit-content; color: var(--ink); font-size: 17px; line-height: 26px; font-weight: 700; text-decoration: none; }
.bub-site-page .activity-reference-detail .activity-reference-stay-name .ic { width: 16px; height: 16px; }
.bub-site-page .activity-reference-detail .activity-reference-stay-note { margin: 0; color: rgb(47 47 47 / 84%); font-size: 13px; line-height: 20px; }
.bub-site-page .activity-reference-detail .activity-reference-stay-action { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 10px 16px; border-radius: 999px; background: var(--ink); color: var(--paper); font-size: 14px; line-height: 20px; font-weight: 700; text-decoration: none; -webkit-tap-highlight-color: transparent; }
.bub-site-page .activity-reference-detail .activity-reference-stay-action .ic { width: 16px; height: 16px; }
.bub-site-page .activity-reference-detail .activity-reference-stay-action:active { opacity: .86; }
@media (min-width: 768px) {
  .bub-site-page .activity-reference-detail .activity-reference-stay { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 16px 20px; }
}
@media (hover: hover) {
  .bub-site-page .activity-reference-detail .activity-reference-stay-name:hover { text-decoration: underline; text-underline-offset: 3px; }
  .bub-site-page .activity-reference-detail .activity-reference-stay-action:hover { opacity: .9; }
}
.activity-reference-overview > div { min-width: 0; max-width: 100%; }
.activity-reference-overview dt { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.bub-site-page .activity-reference-detail .activity-reference-overview dd { display: flex; align-items: flex-start; gap: 8px; margin: 0; color: var(--ink); font-size: 16px; line-height: 24px; font-weight: 600; overflow-wrap: anywhere; }
.activity-reference-overview .ic { flex: 0 0 20px; width: 20px; height: 20px; margin-top: 2px; color: var(--muted); }
.bub-site-page .activity-reference-program .season-availability-note { margin: 12px 0 0; color: var(--muted); font-size: 14px; line-height: 22px; }
.bub-site-page .activity-reference-facts { display: grid; gap: 12px; margin: 20px 0 0; }
.activity-reference-facts > div { display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 12px; align-items: start; }
.bub-site-page .activity-reference-facts dt { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 14px; line-height: 22px; font-weight: 700; }
.bub-site-page .activity-reference-facts dd { margin: 0; color: var(--ink); font-size: 14px; line-height: 22px; font-weight: 400; overflow-wrap: anywhere; white-space: pre-line; }
.activity-reference-facts .ic { flex: 0 0 20px; width: 20px; height: 20px; }
.activity-reference-facts dt:not(:has(.ic)) { padding-left: 28px; }
body.bub-site-page .activity-reference-detail :is(h1, h2, h3) { letter-spacing: 0; }
body.bub-site-page .activity-reference-facts :is(dt, dd) { font-size: 14px; line-height: 22px; }
.bub-site-page .activity-reference-detail .activity-reference-participation-note { margin: 0 0 24px; font-size: 16px; line-height: 26px; }
.bub-site-page .activity-reference-detail .activity-c-experience-feature { grid-template-columns: minmax(0, 1fr); gap: 20px; }
.bub-site-page .activity-reference-detail .activity-c-experience-feature > img { aspect-ratio: auto; height: auto; max-height: 560px; object-fit: contain; }
.bub-site-page .activity-reference-detail .activity-c-experience-copy > p { margin: 0; color: var(--ink); font-size: 16px; line-height: 26px; }
.bub-site-page .activity-detail-pilot-page.activity-reference-detail .activity-c-section { padding-block: 32px; }
.bub-site-page .activity-reference-detail .activity-c-experience-feature.is-text-only { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.bub-site-page .activity-reference-detail .is-text-only .activity-c-experience-points:first-child { margin-top: 0; }
.bub-site-page .activity-reference-detail .activity-c-experience-points { margin-top: 24px; padding-top: 0; border: 0; gap: 0; }
.bub-site-page .activity-reference-detail .activity-c-experience-points li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 16px; padding-block: 16px; border-top: 1px solid var(--line); }
.bub-site-page .activity-reference-detail .activity-c-experience-points span { padding-top: 2px; font-size: 14px; line-height: 22px; font-weight: 600; color: var(--muted); }
.bub-site-page .activity-reference-detail .activity-c-experience-points strong { font-size: 16px; line-height: 26px; font-weight: 400; }
.bub-site-page .activity-reference-detail .activity-c-practical-groups { grid-template-columns: minmax(0, 1fr); gap: 28px; }
.bub-site-page .activity-reference-detail .activity-c-practical-groups section { padding: 0; border: 0; }
.bub-site-page .activity-reference-detail .activity-c-practical-groups .activity-reference-preparation { padding: 20px; background: var(--surface-subtle); }
.bub-site-page .activity-reference-detail .activity-c-practical-groups h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 16px; line-height: 24px; }
.activity-reference-detail .activity-c-practical-groups h3 .ic { flex: 0 0 20px; width: 20px; height: 20px; }
.bub-site-page .activity-reference-detail .activity-reference-conditions .activity-reference-facts { margin: 0; gap: 0; }
.bub-site-page .activity-reference-detail .activity-reference-conditions .activity-reference-facts > div { grid-template-columns: 118px minmax(0, 1fr); gap: 12px; padding-block: 14px; border-bottom: 1px solid var(--line); }
.bub-site-page .activity-reference-detail .activity-reference-conditions dt { color: var(--muted); font-weight: 400; }
.bub-site-page .activity-reference-detail .activity-reference-conditions dd { font-size: 16px; line-height: 24px; font-weight: 500; }
.bub-site-page .activity-reference-detail .activity-reference-notes { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.bub-site-page .activity-reference-detail .activity-reference-notes li { padding: 0; font-size: 16px; line-height: 26px; overflow-wrap: anywhere; }
.bub-site-page .activity-reference-detail .activity-reference-notes li::before { content: none; }
.bub-site-page .activity-reference-detail .activity-reference-notes li + li { padding-top: 12px; border-top: 1px solid var(--line); }
.bub-site-page .activity-reference-detail .activity-reference-conditions > :is(.activity-reference-notes, .activity-reference-participation-note) { margin: 16px 0 0; font-size: 14px; line-height: 22px; }
.bub-site-page .activity-reference-detail .activity-reference-conditions > .activity-reference-participation-note { padding-left: 12px; border-left: 2px solid var(--ink); color: var(--ink); }
.bub-site-page .activity-reference-detail .activity-c-related-rail { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); gap: 0; overflow: visible; padding: 0; }
.bub-site-page .activity-reference-detail .activity-c-related-card { display: grid; grid-template-columns: 88px minmax(0, 1fr) 20px; align-items: center; gap: 16px; padding-block: 20px; border-bottom: 1px solid var(--line); }
.bub-site-page .activity-reference-detail .activity-c-related-card > img { width: 88px; aspect-ratio: 4 / 3; border-radius: 8px; }
.bub-site-page .activity-reference-detail .activity-c-related-copy { margin: 0; min-width: 0; }
.bub-site-page .activity-reference-detail .activity-c-related-copy strong { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 16px; line-height: 24px; }
.bub-site-page .activity-reference-detail .activity-c-related-copy small { display: block; margin-top: 8px; color: var(--muted); font-size: 14px; line-height: 22px; }
.bub-site-page .activity-reference-detail .activity-c-mobile-booking strong { font: 700 14px/22px Inter, var(--font-ja); color: var(--ink); }
.bub-site-page .activity-reference-detail .activity-c-mobile-booking > div > span { font: 400 12px/18px Inter, var(--font-ja); }
.bub-site-page .activity-reference-detail .activity-c-mobile-booking > :is(a, button) { min-height: 52px; border-radius: 6px; font-size: 16px; line-height: 22px; }
.activity-reference-detail :is(a, button):focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }

.bub-site-page .activity-reference-detail.has-no-image .activity-c-hero { padding-top: 16px; }
.bub-site-page .activity-reference-inline-back { display: flex; align-items: center; gap: 8px; min-height: 44px; width: fit-content; margin-bottom: 16px; color: var(--muted); font-size: 14px; line-height: 22px; }
.bub-site-page .activity-reference-detail .activity-c-related-card.has-no-image { grid-template-columns: minmax(0, 1fr) 20px; }
.bub-site-page [data-season-program-info] { cursor: default; }
.bub-site-page [data-season-program-info] > :is(svg, .season-b-schedule-card-arrow) { display: none; }
.bub-site-page .season-program-info-copy { grid-column: 1 / -1; margin: 8px 0 0; font-size: 14px; line-height: 22px; color: var(--muted); }

/* Season programs share the detail introduction while keeping the day schedule. */
.bub-site-page .activity-reference-program .season-detail-hero-media { min-width: 0; }
.bub-site-page .activity-reference-program .season-detail-hero { padding-top: 0; }
.bub-site-page .activity-reference-program .season-detail-hero-copy { display: block; }
.bub-site-page .activity-reference-program .season-detail-hero-copy .action-buttons { margin-top: 24px; }
.bub-site-page .activity-reference-program .season-highlight-story h3 { font-size: 18px; line-height: 28px; }
.bub-site-page .activity-reference-program .season-highlight-story p { font-size: 16px; line-height: 26px; }
.bub-site-page .activity-reference-program .season-b-schedule-note { color: var(--ink); font-size: 14px; line-height: 22px; }

/* Seasonal programs share detail typography across the hero and all sections. */
html:has(.activity-season-refined) { scroll-padding-top: 0; }
body.bub-site-page .activity-season-refined { --season-nav-top: 0px; --season-nav-height: 48px; }
body.bub-site-page .activity-season-refined .section { width: min(calc(100% - 40px), 1060px); padding-block: 40px; }
body.bub-site-page .activity-season-refined .section-heading { margin-bottom: 24px; }
body.bub-site-page .activity-season-refined .section-heading h2 { margin: 0; font-size: 22px; line-height: 32px; }
body.bub-site-page .activity-season-refined :is(#season-highlights, #schedule, #season-activities-b) { scroll-margin-top: calc(var(--season-nav-top) + var(--season-nav-height)); }
.season-refined-nav { position: sticky; top: var(--season-nav-top); z-index: 20; display: flex; justify-content: center; min-height: var(--season-nav-height); border-bottom: 1px solid var(--line); background: var(--paper); }
.season-refined-nav a { position: relative; display: grid; place-items: center; flex: 1; min-width: 0; max-width: 200px; min-height: 48px; padding: 8px 4px; color: var(--muted); font-size: 14px; line-height: 20px; font-weight: 500; text-decoration: none; }
.season-refined-nav a[aria-current] { color: var(--ink); font-weight: 700; }
.season-refined-nav a[aria-current]::after { content: ''; position: absolute; bottom: -1px; width: 40px; height: 2px; background: var(--ink); }
body.bub-site-page .activity-season-refined [hidden] { display: none !important; }
.season-featured-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.season-featured-controls { display: flex; flex: 0 0 auto; }
.season-featured-controls button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: var(--ink); cursor: pointer; }
.season-featured-controls button:disabled { opacity: .3; cursor: default; }
.season-featured-controls .ic { width: 20px; height: 20px; }
.season-featured-rail { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: calc(100% - 60px); gap: 16px; margin: 0 -20px; padding: 0 20px 4px; list-style: none; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 20px; scrollbar-width: none; }
.season-featured-rail::-webkit-scrollbar { display: none; }
.season-featured-rail.is-single { grid-auto-columns: 100%; margin-inline: 0; padding-inline: 0; }
.season-featured-rail > li { min-width: 0; scroll-snap-align: start; }
.season-featured-card { display: flex; flex-direction: column; gap: 12px; height: 100%; min-width: 0; color: var(--ink); text-decoration: none; }
.season-featured-card > img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; border-radius: 8px; object-fit: cover; }
body.bub-site-page .season-featured-card h3 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0; font-size: 18px; line-height: 26px; font-weight: 700; }
body.bub-site-page .season-featured-card .season-featured-description { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: -4px 0 0; font-size: 16px; line-height: 26px; color: var(--muted); }
.season-featured-card .season-refined-meta { align-items: center; margin: auto 0 0; }
.season-featured-card .season-refined-meta > .ic { width: 18px; height: 18px; margin-left: auto; color: var(--ink); }
.season-featured-card:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
.season-featured-controls button:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
body.bub-site-page .activity-season-refined .season-b-schedule-section { padding: 0; background: var(--paper); border-block: 1px solid var(--line); }
body.bub-site-page .activity-season-refined .season-b-schedule-heading-row { display: block; margin-bottom: 24px; }
body.bub-site-page .activity-season-refined .season-b-schedule-heading-row .section-heading { margin-bottom: 12px; }
body.bub-site-page .activity-season-refined .season-schedule-note { margin: 0; font-size: 14px; line-height: 22px; color: var(--muted); }
body.bub-site-page .activity-season-refined .season-b-day-navigation { position: static; display: flex; gap: 24px; margin-bottom: 20px; scroll-margin-top: calc(var(--season-nav-top) + var(--season-nav-height) + 16px); }
body.bub-site-page .activity-season-refined .season-b-day-tab { display: grid; place-items: center; min-width: 72px; min-height: 44px; padding: 8px 12px; color: var(--muted); }
body.bub-site-page .activity-season-refined .season-b-day-tab[aria-selected="true"] { background: transparent; color: var(--ink); }
body.bub-site-page .activity-season-refined .season-b-day-tab strong { font-size: 16px; line-height: 24px; font-family: inherit; }
body.bub-site-page .activity-season-refined .season-b-schedule-panel { scroll-margin-top: calc(var(--season-nav-top) + var(--season-nav-height) + 16px); }
body.bub-site-page .activity-season-refined .season-b-schedule-day-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; padding: 0 0 16px; }
body.bub-site-page .activity-season-refined .season-b-schedule-day-heading strong { font-size: 14px; line-height: 22px; font-weight: 500; }
.season-day-range { font: 400 12px/20px var(--font-num); color: var(--muted); }
body.bub-site-page .activity-season-refined .season-b-schedule-slot { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: start; gap: 12px; padding-block: 16px; }
body.bub-site-page .activity-season-refined .season-b-schedule-slot > time { display: block; margin: 0; padding-top: 2px; color: var(--muted); font: 500 14px/22px var(--font-num); font-variant-numeric: tabular-nums; }
body.bub-site-page .activity-season-refined .season-b-schedule-choice-heading { display: block; padding: 0 0 10px; border: 0; }
body.bub-site-page .activity-season-refined .season-b-schedule-choice-heading strong { font-size: 14px; line-height: 22px; color: var(--muted); font-weight: 500; }
body.bub-site-page .activity-season-refined .season-b-schedule-card { min-height: 0; padding: 12px 0; background: none; border: 0; }
body.bub-site-page .activity-season-refined .season-b-schedule-card + .season-b-schedule-card { border-top: 1px solid var(--line); }
body.bub-site-page .activity-season-refined .season-b-schedule-slot .season-refined-experience { display: grid; grid-template-columns: 80px minmax(0, 1fr) 12px; gap: 10px; align-items: center; min-height: 72px; padding: 0; }
body.bub-site-page .activity-season-refined .season-b-schedule-slot .season-refined-experience > img { display: block; width: 80px; height: 72px; object-fit: cover; border-radius: 6px; }
body.bub-site-page .activity-season-refined .season-b-schedule-slot .season-refined-experience.has-no-image { grid-template-columns: minmax(0, 1fr) 12px; }
body.bub-site-page .activity-season-refined .season-b-schedule-choice .season-b-schedule-card { padding-block: 12px; }
body.bub-site-page .activity-season-refined .season-b-schedule-choice .season-b-schedule-card:first-child { padding-top: 0; }
body.bub-site-page .activity-season-refined .season-b-schedule-choice .season-b-schedule-card:last-child { padding-bottom: 0; }
body.bub-site-page .activity-season-refined .season-b-schedule-card-copy { gap: 6px; }
body.bub-site-page .activity-season-refined .season-b-schedule-card-copy > strong { color: var(--ink); font-size: 16px; line-height: 24px; overflow-wrap: anywhere; }
body.bub-site-page .activity-season-refined .season-b-schedule-card-arrow .ic { width: 12px; height: 16px; }
body.bub-site-page .activity-season-refined .season-refined-experience .season-b-schedule-card-copy > strong { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.season-refined-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; color: var(--muted); font-size: 13px; line-height: 20px; }
.season-refined-meta > span { display: inline-flex; align-items: center; gap: 4px; }
.season-refined-meta .ic { flex: 0 0 16px; width: 16px; height: 16px; }
/* Long experiences: the card's end time, and a note in each later slot it runs into. */
.season-refined-continues { display: grid; gap: 4px; margin: 0 0 10px; }
:is(.season-refined-until, .season-refined-continue) { display: inline-flex; align-items: flex-start; gap: 4px; color: var(--muted); font-size: 13px; line-height: 20px; font-weight: 500; }
.season-refined-until { flex-wrap: wrap; column-gap: 8px; white-space: nowrap; }
.season-refined-until > span { color: var(--muted); font-weight: 400; }
:is(.season-refined-until, .season-refined-continue) .ic { flex: 0 0 16px; width: 16px; height: 16px; margin-top: 2px; }
body.bub-site-page .activity-season-refined .season-b-schedule-slot .season-refined-operation { display: block; min-height: 0; padding: 0; color: var(--muted); }
body.bub-site-page .activity-season-refined .season-refined-operation strong { font-size: 16px; line-height: 24px; font-weight: 500; color: var(--ink); }
body.bub-site-page .activity-season-refined .season-refined-operation .season-b-schedule-card-meta { font-size: 13px; line-height: 20px; }
.season-refined-arrival-note { color: var(--muted); font-size: 12px; line-height: 20px; }
.season-day-next { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 52px; margin-top: 16px; padding: 12px 0; border-block: 1px solid var(--line); background: transparent; color: var(--ink); font-size: 14px; line-height: 22px; font-weight: 600; }
.season-day-next .ic { width: 18px; height: 18px; }
.season-refined-nav a:focus-visible, .season-day-next:focus-visible { outline: 2px solid var(--ink); outline-offset: -3px; }
body.bub-site-page .activity-season-refined .destination-season-activity-index { border: 0; padding: 0; }
body.bub-site-page .activity-season-refined .destination-season-activity-index > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto 20px; gap: 12px; align-items: center; min-height: 56px; padding: 12px 0; border-block: 1px solid var(--line); list-style: none; font-size: 16px; line-height: 24px; }
body.bub-site-page .activity-season-refined .destination-season-activity-index > summary::-webkit-details-marker { display: none; }
body.bub-site-page .activity-season-refined .destination-season-activity-index > summary::after { content: none; }
body.bub-site-page .activity-season-refined .destination-season-activity-index > summary strong { font-size: 14px; line-height: 22px; font-weight: 400; }
body.bub-site-page .activity-season-refined .destination-season-activity-index > summary .ic { width: 20px; height: 20px; transform: rotate(90deg); }
body.bub-site-page .activity-season-refined .destination-season-activity-index[open] > summary .ic { transform: rotate(-90deg); }
body.bub-site-page .activity-season-refined .destination-season-activity-row { grid-template-columns: 88px minmax(0, 1fr) 16px; gap: 12px; min-height: 104px; padding: 16px 0; text-decoration: none; }
body.bub-site-page .activity-season-refined .destination-season-activity-row[data-season-program-info] { display: block; min-height: 0; color: var(--muted); }
body.bub-site-page .activity-season-refined .destination-season-activity-row[data-season-program-info] > img { display: none; }
body.bub-site-page .activity-season-refined .destination-season-activity-row[data-season-program-info] > .ic { display: none; }
body.bub-site-page .activity-season-refined .destination-season-activity-row[data-season-program-info] strong { font-size: 14px; font-weight: 500; }
body.bub-site-page .activity-season-refined .destination-season-activity-row > img { width: 88px; height: 66px; border-radius: 8px; object-fit: cover; }
body.bub-site-page .activity-season-refined .destination-season-activity-row strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 16px; line-height: 24px; }
body.bub-site-page .activity-season-refined .destination-season-activity-row .season-program-info-copy { display: none; }
body.bub-site-page .activity-season-refined .destination-season-activity-row > span { gap: 8px; }
body.bub-site-page .activity-season-refined .season-related-section { padding: 0; background: var(--surface-subtle); }
/* ほかの季節: the 滞在をもっと見る photo cards — photo, name in bold, the dates quietly below — two across. */
body.bub-site-page .activity-season-refined .season-related-grid { display: grid; grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; margin: 0; padding: 0; overflow: visible; }
body.bub-site-page .activity-season-refined .season-related-grid .live-activity-card { display: flex; flex-direction: column; gap: 0; min-width: 0; padding: 0; border: 0; background: transparent; color: var(--ink); text-decoration: none; }
body.bub-site-page .activity-season-refined .season-related-grid .live-card-image { display: block; width: 100%; aspect-ratio: 4 / 5; border-radius: var(--radius-media); overflow: hidden; }
body.bub-site-page .activity-season-refined .season-related-grid .live-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.bub-site-page .activity-season-refined .season-related-grid .live-card-body { display: block; margin: 12px 0 0; padding: 0; }
body.bub-site-page .activity-season-refined .season-related-grid h3 { margin: 0; font-size: 16px; line-height: 24px; font-weight: 700; }
body.bub-site-page .activity-season-refined .season-related-grid .status-pill { display: block; margin-top: 4px; padding: 0; border: 0; background: none; color: var(--muted); font-size: 13px; line-height: 20px; }
body.bub-site-page .activity-season-refined .season-related-grid :is(.live-copy, .live-activity-card > .ic) { display: none; }
body.bub-site-page .activity-season-refined .season-mobile-booking > div { min-width: 0; }
body.bub-site-page .activity-season-refined .season-mobile-booking strong { font-size: 14px; line-height: 22px; }
body.bub-site-page .activity-season-refined .season-mobile-booking span { font-size: 12px; line-height: 18px; }
body.bub-site-page .activity-season-refined .season-mobile-booking > a { min-height: 52px; border-radius: 6px; font-size: 16px; line-height: 22px; }

@media (max-width: 359px) {
  body.bub-site-page .activity-season-refined .season-mobile-booking > a { font-size: 14px; white-space: nowrap; }
  body.bub-site-page .activity-season-refined .season-b-schedule-slot { grid-template-columns: 40px minmax(0, 1fr); gap: 10px; }
  body.bub-site-page .activity-season-refined .season-b-schedule-slot .season-refined-experience { grid-template-columns: 64px minmax(0, 1fr) 12px; gap: 8px; }
  body.bub-site-page .activity-season-refined .season-b-schedule-slot .season-refined-experience > img { width: 64px; height: 64px; }
}
@media (max-width: 767px) {
  body.bub-site-page:has(.activity-reference-detail) > .header { display: none; }
  body.bub-site-page .activity-reference-detail { padding-top: 0; }
  body.bub-site-page .activity-season-refined .activity-c-gallery { border-radius: 0; }
  .bub-site-page .activity-reference-detail .activity-c-hero { width: 100%; margin: 0; }
  .bub-site-page .activity-reference-detail .activity-c-hero-copy { padding-inline: 20px; }
}
@media (min-width: 768px) {
  body.bub-site-page .activity-season-refined { --season-nav-top: var(--header-height); }
  body.bub-site-page .activity-season-refined .section { padding-block: 56px; }
  .season-featured-rail { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; overflow: visible; }
  .season-featured-rail.is-single { grid-template-columns: minmax(0, 1fr); max-width: 338px; }
  body.bub-site-page .activity-season-refined .activity-c-gallery-shell.has-single-photo { grid-template-columns: minmax(0, 1fr); }
  body.bub-site-page .activity-season-refined #schedule > .section { max-width: 920px; }
  body.bub-site-page .activity-season-refined .season-b-schedule-slot { grid-template-columns: 64px minmax(0, 1fr); gap: 24px; padding-block: 20px; }
  body.bub-site-page .activity-season-refined .season-b-schedule-slot > time { font-size: 14px; }
  body.bub-site-page .activity-season-refined .season-b-schedule-slot .season-refined-experience { grid-template-columns: 96px minmax(0, 1fr) 16px; gap: 16px; }
  body.bub-site-page .activity-season-refined .season-b-schedule-slot .season-refined-experience > img { width: 96px; }
  body.bub-site-page .activity-season-refined .season-b-schedule-card-copy > strong { font-size: 16px; line-height: 24px; }
  body.bub-site-page .activity-season-refined .season-b-schedule-choice .season-b-schedule-card:nth-child(2) { padding-top: 0; border-top: 0; }
  .bub-site-page .activity-reference-detail .activity-c-hero { width: min(calc(100% - 40px), 1060px); margin: 28px auto 0; gap: 28px; }
  .bub-site-page .activity-reference-detail .activity-c-gallery { aspect-ratio: 2 / 1; max-height: 420px; }
  .bub-site-page .activity-reference-detail .activity-c-gallery-shell:has(.activity-reference-side-photo) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .bub-site-page .activity-reference-detail .activity-c-gallery-shell:has(.activity-reference-side-photo) .activity-c-gallery { aspect-ratio: 3 / 2; max-height: none; }
  .activity-reference-side-photo { display: block; grid-column: 2; grid-row: 1; min-width: 0; padding: 0; border: 0; aspect-ratio: 3 / 2; border-radius: 0; overflow: hidden; background: var(--surface-subtle); }
  .activity-reference-side-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
  /* The copy spans the column so its rule meets the photo edge; the lead keeps a readable measure. */
  .bub-site-page .activity-reference-detail .activity-c-hero-copy { max-width: none; padding: 0; }
  .bub-site-page .activity-reference-detail .activity-c-hero-copy > .activity-c-hero-lead { max-width: 760px; }
  .bub-site-page main.activity-reference-detail h1 { font-size: 32px; line-height: 44px; }
  .bub-site-page main.activity-reference-detail h2,
  body.bub-site-page .activity-season-refined .section-heading h2 { font-size: 24px; line-height: 34px; }
  .bub-site-page .activity-reference-detail .activity-c-container { max-width: 1060px; }
  .bub-site-page .activity-detail-pilot-page.activity-reference-detail .activity-c-section { padding-block: 48px; }
  .bub-site-page .activity-reference-detail .activity-c-readable { margin-inline: auto; max-width: 1060px; }
  .bub-site-page .activity-reference-detail .activity-c-experience-feature { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
  .bub-site-page .activity-reference-detail .activity-c-practical-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; align-items: start; }
  .bub-site-page .activity-reference-detail .activity-c-related-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
}

/* Keep the fixed cover within the shared Chosei detail layout and type scale. */
body.bub-site-page .has-season-cover .season-cover-media { display: block; }
body.bub-site-page .has-season-cover .season-cover-photo { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: var(--cover-fit-mobile, cover); object-position: var(--cover-focus-mobile, 50% 50%); border-radius: 0; }
body.bub-site-page .has-season-cover .season-cover-photo.is-season-artwork { background: var(--surface-subtle); }
body.bub-site-page .has-season-cover h1 { overflow-wrap: anywhere; }
body.bub-site-page .has-season-cover .activity-c-hero-copy > .activity-c-hero-lead { white-space: pre-line; }
@media (min-width: 768px) {
  body.bub-site-page .has-season-cover .season-cover-photo { aspect-ratio: 2 / 1; max-height: min(420px, 40svh); object-fit: var(--cover-fit, cover); object-position: var(--cover-focus-desktop, 50% 50%); border-radius: 12px; }
}

/* Season program design pass (2026-09-30): the sub-nav reads like Chosei's url-subnav (left-aligned to
 * the content edge, a 2px rule under the current item), every section shares one width, and rows that
 * start at the same time sit under one time label (polishSeasonProgram). */
body.bub-site-page .activity-season-refined .season-refined-nav { justify-content: flex-start; gap: 24px; padding-inline: max(20px, calc((100% - 1060px) / 2)); overflow-x: auto; scrollbar-width: none; }
body.bub-site-page .activity-season-refined .season-refined-nav::-webkit-scrollbar { display: none; }
body.bub-site-page .activity-season-refined .season-refined-nav a { flex: 0 0 auto; max-width: none; padding-inline: 0; border-bottom: 2px solid transparent; font-weight: 400; }
body.bub-site-page .activity-season-refined .season-refined-nav a[aria-current] { border-color: var(--ink); font-weight: 500; }
body.bub-site-page .activity-season-refined .season-refined-nav a[aria-current]::after { content: none; }
body.bub-site-page .activity-season-refined .season-b-schedule-slot-content.is-same-time { grid-column: 2; margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--line); }
@media (min-width: 768px) {
  body.bub-site-page .activity-season-refined #schedule > .section { max-width: 1060px; }
}

/* Schedule density (owner, 2026-09-30: too much empty space). The slot grid had a row gap on top of the
 * same-time divider, choice cards sat 6px apart in two columns, and rows ran the full content width.
 * One rhythm now: 14px between a row's blocks, 16px (20px desktop) row padding, a readable 820px list. */
body.bub-site-page .activity-season-refined .season-b-schedule-slot { row-gap: 0; padding-block: 14px; }
body.bub-site-page .activity-season-refined .season-b-schedule-slot-content.is-same-time { margin-top: 14px; padding-top: 14px; }
body.bub-site-page .activity-season-refined .season-b-schedule-choice-heading { padding-bottom: 8px; }
body.bub-site-page .activity-season-refined .season-b-schedule-day-heading { padding-bottom: 12px; }
body.bub-site-page .activity-season-refined .season-b-day-navigation { margin-bottom: 12px; }
body.bub-site-page .activity-season-refined .season-day-next { margin-top: 8px; }
@media (min-width: 768px) {
  body.bub-site-page .activity-season-refined .season-b-schedule-slot { padding-block: 16px; }
  body.bub-site-page .activity-season-refined .season-b-schedule-choice .season-b-schedule-cards { column-gap: 24px; row-gap: 12px; } /* space above each row rule, as below it */
  body.bub-site-page .activity-season-refined .season-b-schedule-choice .season-b-schedule-card { padding-block: 0; }
  body.bub-site-page .activity-season-refined .season-b-schedule-choice .season-b-schedule-card:nth-child(n + 3) { padding-top: 12px; }
}
@media (min-width: 768px) {
  body.bub-site-page .activity-season-refined .season-related-grid { gap: 24px; }
  body.bub-site-page .activity-season-refined .season-related-grid .live-card-image { aspect-ratio: 16 / 9; }
  body.bub-site-page .activity-season-refined .season-related-grid h3 { font-size: 18px; line-height: 28px; }
  body.bub-site-page .activity-season-refined .season-related-grid .status-pill { font-size: 14px; line-height: 22px; }
}
@media (hover: hover) {
  body.bub-site-page .activity-season-refined .season-related-grid .live-activity-card:hover img { opacity: .92; }
  body.bub-site-page .activity-season-refined .season-related-grid .live-activity-card:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
}
.bub-site-page .activity-participation-guide { margin: 20px 0 0; font-size: 14px; line-height: 1.8; color: var(--ink, #2f2f2f); }
.bub-site-page .activity-reference-detail .activity-reference-stay { background: transparent; padding: 16px 0; border-top: 1px solid #e7ecec; border-radius: 0; }
.bub-site-page .activity-reference-detail .activity-reference-stay-action { white-space: normal; text-align: center; }
.bub-site-page main[data-season-mood] { --season-feedback-color: #7d9891; }
.bub-site-page main[data-season-mood="halloween"] { --season-feedback-color: #d99a5b; }
.bub-site-page main[data-season-mood="christmas"] { --season-feedback-color: #d56e59; }
.bub-site-page main[data-season-mood] .season-detail-hero-copy h1 { text-decoration: underline; text-decoration-color: var(--season-feedback-color); text-decoration-thickness: 4px; text-underline-offset: 10px; }
.bub-site-page main[data-season-mood] .season-featured-card { border-bottom: 3px solid var(--season-feedback-color); }
.bub-site-page main[data-season-mood="christmas"] .season-refined-nav { border-bottom-color: #7d9891; }

/* ===== TOP's tone (owner, 2026-10-07), as the room pages =====
 * Space instead of hairlines; the child / adult points as two short blocks; 参加前の確認 in TOP's closing
 * grey band (the notes without their own box); ほかの体験 as /activity/'s photo cards, two across. */
.bub-site-page main.activity-reference-detail .activity-reference-summary { margin-top: 12px; padding-top: 0; border-top: 0; }
.bub-site-page main.activity-reference-detail .activity-c-section-heading h2 { font-size: 22px; line-height: 32px; font-weight: 700; }
.bub-site-page main.activity-reference-detail .activity-c-section-heading p { margin-top: 8px; color: rgb(47 47 47 / 85%); font-size: 15px; line-height: 26px; }
.bub-site-page main.activity-reference-detail .activity-c-experience-points { display: grid; gap: 16px; margin-top: 16px; padding: 0; border: 0; }
.bub-site-page main.activity-reference-detail .activity-c-experience-points li { display: grid; grid-template-columns: none; gap: 2px; padding: 0; border: 0; }
.bub-site-page main.activity-reference-detail .activity-c-experience-points li span { color: rgb(47 47 47 / 60%); font-size: 13px; line-height: 20px; font-weight: 500; }
.bub-site-page main.activity-reference-detail .activity-c-experience-points li strong { color: var(--ink); font-size: 15px; line-height: 26px; font-weight: 500; }

.bub-site-page main.activity-reference-detail .activity-c-practical { position: relative; margin-top: 56px; background: var(--surface-subtle); }
.bub-site-page main.activity-reference-detail .activity-c-practical::before { content: ""; position: absolute; left: 0; right: 0; top: -17px; height: 18px; background: var(--surface-subtle); 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; }
.bub-site-page main.activity-reference-detail .activity-reference-facts > div { padding-block: 6px; border: 0; }
.bub-site-page main.activity-reference-detail .activity-reference-facts dt { color: rgb(47 47 47 / 70%); font-weight: 500; }
.bub-site-page main.activity-reference-detail .activity-reference-preparation { margin-top: 20px; padding: 0; border: 0; border-radius: 0; background: none; }
.bub-site-page main.activity-reference-detail .activity-reference-preparation h3 { font-size: 15px; line-height: 22px; }
.bub-site-page main.activity-reference-detail .activity-reference-notes li { color: rgb(47 47 47 / 85%); font-size: 14px; line-height: 24px; }
.bub-site-page main.activity-reference-detail .activity-c-related { margin-top: 0; }

.bub-site-page main.activity-reference-detail .activity-c-related-rail { display: grid; grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; margin: 16px 0 0; padding: 0; overflow: visible; border: 0; }
.bub-site-page main.activity-reference-detail .activity-c-related-item { min-width: 0; padding: 0; border: 0; }
.bub-site-page main.activity-reference-detail .activity-c-related-card { display: block; min-height: 0; padding: 0; border: 0; color: var(--ink); text-decoration: none; }
.bub-site-page main.activity-reference-detail .activity-c-related-card > img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 8px; object-fit: cover; }
.bub-site-page main.activity-reference-detail .activity-c-related-card > svg { display: none; }
.bub-site-page main.activity-reference-detail .activity-c-related-copy { display: grid; gap: 2px; padding: 10px 0 0; }
.bub-site-page main.activity-reference-detail .activity-c-related-copy strong { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 15px; line-height: 22px; font-weight: 700; }
.bub-site-page main.activity-reference-detail .activity-c-related-copy small { color: rgb(47 47 47 / 70%); font-size: 13px; line-height: 20px; }
@media (min-width: 768px) {
  .bub-site-page main.activity-reference-detail .activity-c-section-heading h2 { font-size: 24px; line-height: 34px; }
  .bub-site-page main.activity-reference-detail .activity-c-experience-points { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: none; }
  .bub-site-page main.activity-reference-detail .activity-c-practical { margin-top: 72px; }
  .bub-site-page main.activity-reference-detail .activity-c-related-rail { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
}
.bub-site-page main.activity-reference-detail .activity-reference-overview { border-top: 0; padding-top: 0; }
.bub-site-page main.activity-reference-detail .activity-reference-facts > div,
.bub-site-page main.activity-reference-detail .activity-reference-facts > div::after { border-bottom: 0 !important; }
/* The web on the header's 1200 grid, as the season pages. */
@media (min-width: 1024px) {
  .bub-site-page main.activity-reference-detail :is(.activity-c-hero, .activity-c-container) { width: min(calc(100% - 64px), 1200px) !important; max-width: none !important; margin-inline: auto !important; }
}
@media (min-width: 1024px) { .bub-site-page main.activity-reference-detail .activity-c-related .activity-c-section-heading.activity-c-readable { margin-inline: 0; max-width: none; } }

/* ===== Activity details, app layout (owner, 2026-10-07; prototyped on /chosei/activity/jack-o-lantern/, built by scripts/activity-app-layout.mjs) =====
 * App-like: the season page's hero (full photo, white title and icons, brush edge), then one 12px photo,
 * children / adults in two short lines, the facts as one grouped list of cells (the time cell opens the
 * season's schedule), a note, and the season as the next step. Web: photo left, the rest right. */
.bub-site-page main.activity-app .activity-reference-summary,
.bub-site-page main.activity-app :is(.activity-reference-side-photo, .swiper-indicator-container, .activity-c-gallery-open) { display: none !important; }
.bub-site-page main.activity-app .activity-c-hero { position: relative; }
.bub-site-page main.activity-app .activity-c-gallery-shell { position: relative; display: block !important; aspect-ratio: auto !important; height: clamp(420px, 60svh, 520px) !important; overflow: hidden; border-radius: 0; }
.bub-site-page main.activity-app .activity-c-gallery-shell :is(.activity-c-gallery, .chosei-room-listing-photo) { height: 100% !important; }
.bub-site-page main.activity-app .activity-c-gallery-shell img { width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 60%; border-radius: 0; }
.bub-site-page main.activity-app .activity-c-gallery-shell::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgb(0 0 0 / 25%) 0%, rgb(0 0 0 / 0%) 24%, rgb(0 0 0 / 0%) 38%, rgb(0 0 0 / 74%) 100%); pointer-events: none; }
.bub-site-page main.activity-app .activity-c-gallery-shell::before { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; z-index: 3; height: 18px; background: var(--paper); 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; }
.bub-site-page main.activity-app .activity-c-hero-copy { position: absolute; left: 0; right: 0; bottom: 52px; z-index: 2; width: min(calc(100% - 40px), 1200px); margin: 0 auto; padding: 0; pointer-events: none; }
.bub-site-page main.activity-app .activity-c-hero-copy :is(a, a span, p, h1) { color: #fcfcfc !important; }
.bub-site-page main.activity-app .activity-c-hero-copy a { pointer-events: auto; }
.bub-site-page main.activity-app .activity-c-hero-copy :is(.ic, svg) { color: #fcfcfc !important; stroke: #fcfcfc; }
.bub-site-page main.activity-app .activity-c-hero-copy h1 { margin: 6px 0 0; font-size: 34px; line-height: 1.25; font-weight: 700; }
.bub-site-page main.activity-app .activity-c-hero-lead { margin: 10px 0 0; opacity: .92; font-size: 15px; line-height: 1.8; font-weight: 500; }

.bub-site-page main.activity-app .activity-c-hero { padding-bottom: 0 !important; }
.bub-site-page main.activity-app .activity-app-body { padding-top: 24px !important; }
.bub-site-page main.activity-app .activity-app-photo { margin: 0; }
.bub-site-page main.activity-app .activity-app-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 12px; object-fit: cover; }
.bub-site-page main.activity-app .activity-app-points { display: grid; gap: 12px; margin: 20px 0 0; }
.bub-site-page main.activity-app .activity-app-points > div { display: grid; gap: 2px; }
.bub-site-page main.activity-app .activity-app-points dt { color: rgb(47 47 47 / 60%); font-size: 13px; line-height: 20px; font-weight: 500; }
.bub-site-page main.activity-app .activity-app-points dd { margin: 0; color: var(--ink); font-size: 16px; line-height: 26px; font-weight: 700; }
.bub-site-page main.activity-app .activity-app-cells { margin: 24px 0 0; padding: 0; list-style: none; overflow: hidden; border-radius: 12px; background: var(--surface-subtle); }
.bub-site-page main.activity-app .activity-app-cells li { position: relative; }
.bub-site-page main.activity-app .activity-app-cells li + li::before { content: ""; position: absolute; top: 0; left: 50px; right: 0; border-top: 1px solid rgb(47 47 47 / 8%); }
.bub-site-page main.activity-app .activity-app-cells :is(li, li > a, li > button) { display: grid; grid-template-columns: 20px 48px minmax(0, 1fr) auto; align-items: center; column-gap: 12px; min-height: 52px; padding: 0 16px; color: var(--ink); text-decoration: none; }
.bub-site-page main.activity-app .activity-app-cells li:has(> :is(a, button)) { display: block; padding: 0; }
.bub-site-page main.activity-app .activity-app-cells li > button { width: 100%; margin: 0; border: 0; background: none; font: inherit; text-align: left; cursor: pointer; }
.bub-site-page main.activity-app .activity-app-cells li > :is(a, button) { padding-block: 10px; }
.bub-site-page main.activity-app .activity-app-cells .ic { width: 20px; height: 20px; color: rgb(47 47 47 / 60%); }
.bub-site-page main.activity-app .activity-app-cells em { color: rgb(47 47 47 / 60%); font-size: 13px; line-height: 20px; font-style: normal; font-weight: 500; }
.bub-site-page main.activity-app .activity-app-cells span { display: grid; gap: 0; }
.bub-site-page main.activity-app .activity-app-cells strong { font-size: 15px; line-height: 22px; font-weight: 700; }
.bub-site-page main.activity-app .activity-app-cells li.is-time strong { font: 700 20px/26px var(--font-num), var(--font-ja); }
.bub-site-page main.activity-app .activity-app-cells small { color: rgb(47 47 47 / 70%); font-size: 12px; line-height: 18px; }
.bub-site-page main.activity-app .activity-app-cells :is(a, button) .ic:last-child { width: 16px; height: 16px; }
.bub-site-page main.activity-app .activity-app-notes { display: grid; gap: 4px; margin: 10px 0 0; padding: 0; list-style: none; color: rgb(47 47 47 / 70%); font-size: 13px; line-height: 20px; }
.bub-site-page main.activity-app .activity-app-copy { display: grid; gap: 12px; margin: 20px 0 0; }
.bub-site-page main.activity-app .activity-app-copy p { margin: 0; color: var(--ink); font-size: 15px; line-height: 1.9; }
.bub-site-page main.activity-app .activity-app-season-caption { margin: 20px 0 0; color: rgb(47 47 47 / 70%); font-size: 12px; line-height: 18px; font-weight: 500; }
.bub-site-page main.activity-app .activity-app-season-caption ~ .activity-app-season { height: 72px; margin-top: 8px; }
.bub-site-page main.activity-app .activity-app-season-caption ~ .activity-app-season img { width: 72px; height: 68px; }
.bub-site-page main.activity-app .activity-app-season { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 88px; margin-top: 20px; padding: 0 16px 0 20px; overflow: hidden; border-radius: 12px; background: #ece1d6; color: var(--ink); text-decoration: none; }
.bub-site-page main.activity-app .activity-app-season[data-season="summer"] { background: #dae4f1; }
.bub-site-page main.activity-app .activity-app-season[data-season="earlysummer"] { background: #d5d9d2; }
.bub-site-page main.activity-app .activity-app-season[data-season="holiday"] { background: #f0d1cb; }
.bub-site-page main.activity-app .activity-app-season[data-season="winter"] { background: #dfdad4; }
.bub-site-page main.activity-app .activity-app-season[data-season="spring"] { background: #ebdad6; }
.bub-site-page main.activity-app .activity-app-season > span { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 10px; min-width: 0; }
.bub-site-page main.activity-app .activity-app-season strong { white-space: nowrap; }
.bub-site-page main.activity-app .activity-app-season small { flex: 0 0 100%; color: rgb(47 47 47 / 70%); font-size: 12px; line-height: 18px; font-weight: 500; }
.bub-site-page main.activity-app .activity-app-season strong { font-size: 20px; line-height: 28px; font-weight: 700; }
.bub-site-page main.activity-app .activity-app-season em { color: rgb(47 47 47 / 70%); font: 500 13px/20px var(--font-num), var(--font-ja); font-style: normal; }
.bub-site-page main.activity-app .activity-app-season img { flex: none; width: 84px; height: 80px; margin-right: -4px; object-fit: contain; object-position: center bottom; }
/* ほかの体験: phones swipe a rail (cards keep one size); web fits the cards to the row */
.bub-site-page main.activity-app .activity-c-related { padding-top: 48px; }
.bub-site-page main.activity-app .activity-c-related-rail { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 46%; gap: 12px; margin-inline: -20px; padding: 0 20px 4px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 20px; scrollbar-width: none; }
.bub-site-page main.activity-app .activity-c-related-rail::-webkit-scrollbar { display: none; }
.bub-site-page main.activity-app .activity-c-related-item { scroll-snap-align: start; }
.bub-site-page main.activity-app .activity-c-related-card > img { border-radius: 12px; }
.bub-site-page main.activity-app .activity-c-related-copy strong { text-wrap: pretty; word-break: auto-phrase; }
.bub-site-page main.activity-app .activity-c-related-card:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; border-radius: 12px; }
@media (hover: hover) and (pointer: fine) {
  .bub-site-page main.activity-app .activity-c-related-card:hover .activity-c-related-copy strong { text-decoration: underline; text-underline-offset: 4px; }
}
/* Web (owner 10/7 「웹이 밤티」): the room / 食事 detail grammar — photos as a mosaic on the 1200 grid (no stretched
 * full-bleed photo, no overlay), the title under it, then the story on the left and a sticky panel on the right. */
@media (min-width: 768px) {
  .bub-site-page main.activity-app { --c: min(calc(100% - 64px), 1200px); display: grid; grid-template-columns: 1fr calc(var(--c) * 7 / 12 - 28px) 48px calc(var(--c) * 5 / 12 - 20px) 1fr; align-content: start; }
  .bub-site-page main.activity-app > * { grid-column: 1 / -1; min-width: 0; }
  /* Its wrappers are display: contents, so their padding is gone: a page without 「ほかの体験」 ended flush on the
   * footer (owner, 2026-10-16). Same 48px as under the related rail. */
  .bub-site-page main.activity-app:not(:has(.activity-c-related-rail)) { padding-bottom: 48px; }
  .bub-site-page main.activity-app > :is(.activity-c-hero, .activity-app-body),
  .bub-site-page main.activity-app .activity-app-body > .activity-c-container,
  .bub-site-page main.activity-app .activity-app-grid,
  .bub-site-page main.activity-app .activity-app-side { display: contents !important; }
  .bub-site-page main.activity-app .activity-c-gallery-shell { grid-column: 2 / 5; grid-row: 1; width: 100% !important; max-width: none !important; height: 460px !important; margin: 24px 0 0 !important; border-radius: 12px; }
  .bub-site-page main.activity-app .activity-c-gallery-shell::after,
  .bub-site-page main.activity-app .activity-c-gallery-shell::before,
  .bub-site-page main.activity-app .activity-reference-back { display: none !important; }
  .bub-site-page main.activity-app .activity-c-gallery { display: grid !important; grid-template-columns: 2fr 1fr !important; grid-template-rows: 1fr 1fr; gap: 8px; width: 100% !important; height: 100% !important; transform: none !important; overflow: hidden; }
  .bub-site-page main.activity-app .activity-c-gallery > .chosei-room-listing-photo { display: block !important; width: auto !important; height: auto !important; min-height: 0; margin: 0; }
  .bub-site-page main.activity-app .activity-c-gallery > .chosei-room-listing-photo:first-child { grid-row: 1 / -1; }
  .bub-site-page main.activity-app .activity-c-gallery > .chosei-room-listing-photo:nth-child(n+4) { display: none !important; }
  .bub-site-page main.activity-app .activity-c-gallery:not(:has(> :nth-child(3))) > :nth-child(2) { grid-row: 1 / -1; }
  .bub-site-page main.activity-app .activity-c-gallery:not(:has(> :nth-child(2))) { grid-template-columns: 1fr !important; }
  .bub-site-page main.activity-app .activity-c-gallery-shell .activity-c-gallery-open { display: inline-flex !important; position: absolute; right: 16px; bottom: 16px; z-index: 2; }
  .bub-site-page main.activity-app .activity-c-hero-copy { position: static; grid-column: 2; grid-row: 2; width: auto; margin: 32px 0 0; pointer-events: auto; }
  .bub-site-page main.activity-app .activity-c-hero-copy :is(a, a span, p, h1) { color: var(--ink) !important; }
  .bub-site-page main.activity-app .activity-c-hero-copy :is(.ic, svg) { color: var(--ink) !important; stroke: currentColor; }
  .bub-site-page main.activity-app .activity-c-hero-copy h1 { margin-top: 8px; font-size: 36px; line-height: 1.3; }
  .bub-site-page main.activity-app .activity-c-hero-lead { margin-top: 12px; color: rgb(47 47 47 / 80%) !important; font-size: 16px; opacity: 1; }
  .bub-site-page main.activity-app .activity-app-photo { display: none; }
  .bub-site-page main.activity-app .activity-app-copy { grid-column: 2; grid-row: 3; align-self: start; margin: 40px 0 0; }
  .bub-site-page main.activity-app .activity-app-copy p { font-size: 16px; }
  .bub-site-page main.activity-app .activity-app-points { grid-column: 2; grid-row: 3; align-self: start; gap: 20px; margin: 40px 0 0; }
  .bub-site-page main.activity-app .activity-app-points dd { font-size: 20px; line-height: 30px; }
  /* Not sticky: the panel's containing block is the whole page (its wrappers are display: contents), so a
   * panel with two seasons stayed stuck and slid over 「ほかの体験」 (owner, 2026-10-09). */
  .bub-site-page main.activity-app .activity-app-panel { grid-column: 4; grid-row: 2 / 4; align-self: start; position: static; margin-top: 32px; }
  .bub-site-page main.activity-app .activity-app-panel .activity-app-cells { margin-top: 0; }
  .bub-site-page main.activity-app .activity-app-season { height: 96px; margin-top: 20px; padding: 0 16px 0 24px; }
  .bub-site-page main.activity-app .activity-app-season img { width: 104px; height: 96px; margin-right: -8px; }
  .bub-site-page main.activity-app .activity-app-season-caption ~ .activity-app-season { height: 80px; }
  .bub-site-page main.activity-app .activity-app-season-caption ~ .activity-app-season img { width: 84px; height: 76px; }
  .bub-site-page main.activity-app .activity-c-related { padding-top: 96px; }
  .bub-site-page main.activity-app .activity-c-related-rail { --n: 3; grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 24px; margin-inline: 0; padding: 0; overflow: visible; }
  .bub-site-page main.activity-app .activity-c-related-rail:has(> :nth-child(4)) { --n: 4; }
  .bub-site-page main.activity-app .activity-c-related-rail:has(> :nth-child(5)) { --n: 5; }
}
.bub-site-page main.activity-app .activity-app-panel { margin-top: 24px; }
.bub-site-page main.activity-app .activity-app-panel > :first-child { margin-top: 0; }
@media (max-width: 767px) { .bub-site-page main.activity-app .activity-app-side > .activity-app-panel:first-child { margin-top: 0; } }
@media (min-width: 768px) {
  /* The panel's extra height goes to the story row, so the title stays with its lead. */
  .bub-site-page main.activity-app { grid-template-rows: auto auto 1fr; }
  .bub-site-page main.activity-app .activity-app-panel { margin-top: 32px; }
  .bub-site-page main.activity-app .activity-app-points dd { font-size: 18px; line-height: 30px; }
}
/* Same scrim and letter shadow as the plan pages, so the title reads on any photo. */
.bub-site-page main.activity-app .activity-c-gallery-shell::after { background: linear-gradient(180deg, rgb(0 0 0 / 22%) 0%, rgb(0 0 0 / 0%) 18%, rgb(0 0 0 / 0%) 30%, rgb(0 0 0 / 38%) 52%, rgb(0 0 0 / 74%) 100%); }
.bub-site-page main.activity-app .activity-c-hero-copy :is(a, h1, p) { text-shadow: 0 1px 12px rgb(0 0 0 / 45%), 0 1px 2px rgb(0 0 0 / 30%); }
@media (min-width: 768px) { .bub-site-page main.activity-app .activity-c-hero-copy :is(a, h1, p) { text-shadow: none; } }

/* Live 動画・企業コラボ on activity details (どしし FB, 2026-10-08): only where the live page had them. */
.bub-site-page main.activity-app :is(.activity-app-videos, .activity-app-collab) { margin-top: 40px; }
.bub-site-page main.activity-app .activity-app-video-list { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 16px; }
.bub-site-page main.activity-app .activity-app-video { position: relative; width: min(100%, 300px); aspect-ratio: var(--video-ratio, 9 / 16); overflow: hidden; border-radius: var(--radius-media, 8px); background: var(--ink); }
.bub-site-page main.activity-app .activity-app-video :is(button, iframe) { display: block; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; background: none; cursor: pointer; }
.bub-site-page main.activity-app .activity-app-video img { width: 100%; height: 100%; object-fit: cover; }
.bub-site-page main.activity-app .activity-app-video-icon { position: absolute; top: 50%; left: 50%; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: rgb(255 255 255 / 92%); color: var(--ink); transform: translate(-50%, -50%); }
.bub-site-page main.activity-app .activity-app-video-icon svg { width: 24px; height: 24px; margin-left: 3px; }
.bub-site-page main.activity-app .activity-app-collab-body { display: grid; gap: 16px; margin-top: 16px; }
.bub-site-page main.activity-app .activity-app-collab-photo { margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-media, 8px); background: #fff; aspect-ratio: 4 / 3; }
.bub-site-page main.activity-app .activity-app-collab-photo img { width: 100%; height: 100%; object-fit: contain; }
.bub-site-page main.activity-app .activity-app-collab-copy { display: grid; gap: 10px; color: rgb(47 47 47 / 85%); font-size: 15px; line-height: 26px; }
.bub-site-page main.activity-app .activity-app-collab-copy h3 { color: var(--ink); font-size: 17px; line-height: 26px; font-weight: 700; }
.bub-site-page main.activity-app .activity-app-collab-copy p { margin: 0; }
.bub-site-page main.activity-app .activity-app-collab-more { display: grid; gap: 10px; }
.bub-site-page main.activity-app .activity-app-collab-more summary { color: var(--ink); font-size: 14px; line-height: 22px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; list-style: none; }
.bub-site-page main.activity-app .activity-app-collab-more summary::-webkit-details-marker { display: none; }
.bub-site-page main.activity-app .activity-app-collab-more[open] summary { display: none; }
@media (min-width: 768px) {
  .bub-site-page main.activity-app .activity-app-collab-body { grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 32px; align-items: start; }
}

/* 体験ページの枠 (owner, 2026-10-09; scripts/activity-frame.mjs). */
.bub-site-page main.activity-app .activity-frame-kinds { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; }
.bub-site-page main.activity-app .activity-frame-kinds span { padding: 2px 10px; border-radius: 999px; background: rgb(252 252 252 / 22%); color: #fcfcfc; font-size: 12px; line-height: 20px; font-weight: 700; text-shadow: none; }
.bub-site-page main.activity-app .activity-frame-kinds + h1 { margin-top: 8px; }
.bub-site-page main.activity-app .activity-frame-kinds span.is-status { background: var(--color-muchu, #d56e59) !important; color: #fcfcfc !important; }
.bub-site-page main.activity-app[data-activity-frame] .activity-c-hero-copy > .activity-c-hero-lead { font-size: 16px; font-weight: 700; }
.bub-site-page main.activity-app :is(.activity-frame-flow, .activity-frame-photos, .activity-frame-who) { margin: 40px 0 0; }
.bub-site-page main.activity-app :is(.activity-frame-facts, .activity-frame-flow, .activity-frame-photos, .activity-frame-who) h2 { margin: 0 0 14px; color: var(--ink); font-size: 20px; line-height: 28px; font-weight: 700; }
.bub-site-page main.activity-app .activity-frame-flow ol { display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; }
/* 参加のしかた's steps (/about/), standing: a round Inter numeral each, a line between. SAON circles, the last one
 * HIKARI (owner, 2026-10-09: grey was too faint, black too hard). */
.bub-site-page main.activity-app .activity-frame-flow li { position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr); column-gap: 14px; align-items: start; }
.bub-site-page main.activity-app .activity-frame-flow li:not(:last-child)::before { content: ""; position: absolute; top: 40px; bottom: -16px; left: 17px; width: 2px; background: rgb(195 183 170 / 70%); }
.bub-site-page main.activity-app .activity-frame-flow i { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #ece1d6; color: var(--ink); font: 700 16px/1 var(--font-num), var(--font-ja); font-style: normal; }
.bub-site-page main.activity-app .activity-frame-flow li:last-child i { background: #c09e66; color: var(--paper); }
.bub-site-page main.activity-app .activity-frame-flow span { display: grid; gap: 2px; padding-top: 0; color: var(--ink); font-size: 15px; line-height: 24px; }
.bub-site-page main.activity-app .activity-frame-flow b { color: var(--ink); font-size: 14px; line-height: 20px; font-weight: 700; }
.bub-site-page main.activity-app .activity-frame-photos > div { display: grid; grid-template-columns: 3fr 2fr; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 8px; aspect-ratio: 5 / 3.4; }
.bub-site-page main.activity-app .activity-frame-photos figure { position: relative; min-height: 0; margin: 0; overflow: hidden; border-radius: 12px; background: var(--surface-subtle); }
.bub-site-page main.activity-app .activity-frame-photos figure.is-lead { grid-row: 1 / -1; }
.bub-site-page main.activity-app .activity-frame-photos img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bub-site-page main.activity-app .activity-frame-photos figcaption { position: absolute; left: 8px; bottom: 8px; padding: 2px 8px; border-radius: 999px; background: rgb(252 252 252 / 92%); color: var(--ink); font-size: 11px; line-height: 18px; font-weight: 700; }
.bub-site-page main.activity-app .activity-frame-photos .is-missing { display: grid; place-items: center; border: 1.5px dashed rgb(47 47 47 / 20%); background: none; }
.bub-site-page main.activity-app .activity-frame-photos .is-missing span { display: grid; gap: 2px; color: rgb(47 47 47 / 60%); font-size: 12px; line-height: 18px; font-weight: 700; text-align: center; }
.bub-site-page main.activity-app .activity-frame-photos .is-missing small { font-size: 11px; font-weight: 500; }
.bub-site-page main.activity-app .activity-frame-who > div { display: grid; gap: 10px; }
.bub-site-page main.activity-app .activity-frame-who > div > div { display: grid; grid-template-columns: 76px minmax(0, 1fr); column-gap: 14px; min-height: 92px; padding: 0 16px 0 12px; overflow: hidden; border-radius: 12px; background: var(--surface-subtle); }
.bub-site-page main.activity-app .activity-frame-who > div > div > span { align-self: center; min-width: 0; padding: 14px 0; }
.bub-site-page main.activity-app .activity-frame-who > div > div > img { align-self: end; width: 76px; height: auto; margin-top: 10px; }
.bub-site-page main.activity-app .activity-frame-who .is-child { background: #ece1d6; }
/* Adults only: a father and a mother, the second tucked a little behind the first (owner, 2026-10-13). */
.bub-site-page main.activity-app .activity-frame-who .is-pair { grid-template-columns: 112px minmax(0, 1fr); }
.bub-site-page main.activity-app .activity-frame-who-pair { display: flex; align-self: end; margin-top: 10px; }
.bub-site-page main.activity-app .activity-frame-who-pair img { width: 68px; height: auto; }
.bub-site-page main.activity-app .activity-frame-who-pair img:first-child { position: relative; z-index: 1; }
.bub-site-page main.activity-app .activity-frame-who-pair img + img { margin-left: -24px; }
.bub-site-page main.activity-app .activity-frame-who .is-pair p { margin-top: 0; }
.bub-site-page main.activity-app .activity-frame-who b { color: rgb(47 47 47 / 60%); font-size: 12px; line-height: 18px; font-weight: 500; letter-spacing: .04em; }
.bub-site-page main.activity-app .activity-frame-who p { margin: 2px 0 0; color: var(--ink); font-size: 16px; line-height: 26px; font-weight: 700; }
.bub-site-page main.activity-app .activity-frame-who p > span { display: inline-block; }
.bub-site-page main.activity-app .activity-frame-after > .activity-app-notes { margin-top: 14px; }
@media (min-width: 768px) {
  .bub-site-page main.activity-app .activity-frame-kinds { margin-top: 14px; }
  .bub-site-page main.activity-app .activity-frame-kinds span { background: var(--surface-subtle); color: var(--ink) !important; }
  .bub-site-page main.activity-app[data-activity-frame] .activity-c-hero-copy > .activity-c-hero-lead { font-size: 18px; line-height: 30px; color: var(--ink) !important; }
  .bub-site-page main.activity-app[data-activity-frame] .activity-app-panel { grid-row: 2; }
  .bub-site-page main.activity-app .activity-frame-story { grid-column: 2; grid-row: 3; align-self: start; }
  .bub-site-page main.activity-app .activity-frame-after { grid-column: 4; grid-row: 3; align-self: start; }
  .bub-site-page main.activity-app :is(.activity-frame-flow, .activity-frame-photos, .activity-frame-who) { margin-top: 56px; }
  .bub-site-page main.activity-app :is(.activity-frame-facts, .activity-frame-flow, .activity-frame-photos, .activity-frame-who) h2 { margin-bottom: 18px; font-size: 22px; line-height: 32px; }
  .bub-site-page main.activity-app .activity-frame-flow span { font-size: 16px; line-height: 26px; }
}
/* Web: the title gets a row of its own under the photos (owner, 2026-10-13). Below it two rows, each with a
 * heading on both sides so they line up: 「こんな体験」 beside 「参加の目安」, then 「写真」 beside 「子どもも、大人も」. */
@media (min-width: 768px) {
  .bub-site-page main.activity-app[data-activity-frame] { grid-template-rows: auto auto auto auto 1fr; }
  .bub-site-page main.activity-app[data-activity-frame] .activity-c-hero-copy { grid-column: 2 / 5; }
  .bub-site-page main.activity-app[data-activity-frame] .activity-frame-story { display: contents; }
  .bub-site-page main.activity-app[data-activity-frame] .activity-frame-flow { grid-column: 2; grid-row: 3; align-self: start; }
  .bub-site-page main.activity-app[data-activity-frame] .activity-frame-photos { grid-column: 2; grid-row: 4; align-self: start; }
  .bub-site-page main.activity-app[data-activity-frame] .activity-frame-facts { grid-column: 4; grid-row: 3; align-self: start; margin-top: 56px; }
  .bub-site-page main.activity-app[data-activity-frame] .activity-frame-facts > .activity-app-panel { margin-top: 0; }
  .bub-site-page main.activity-app[data-activity-frame] .activity-frame-after { grid-row: 4; }
}
/* A phone shows the facts first, under the same kind of heading as the sections after it (owner, 2026-10-13). */
@media (max-width: 767px) {
  .bub-site-page main.activity-app .activity-app-side > .activity-frame-facts:first-child > .activity-app-panel { margin-top: 0; }
}
/* 写真はイメージです (owner, 2026-10-13): one quiet line under the 写真 photographs. */
.bub-site-page main.activity-app .activity-frame-image-note { margin: 10px 0 0; color: rgb(47 47 47 / 60%); font-size: 12px; line-height: 18px; }
/* A long lead's remainder follows こんな体験 on framed pages (activity-frame.mjs placeLeadCopy). */
.bub-site-page main.activity-app .activity-frame-flow .activity-app-copy { grid-column: auto; grid-row: auto; margin: 24px 0 0; }

/* The pair is a span, which the text rule above centres; it stands on the card's bottom edge like the single
   cut-outs (owner, 2026-10-15: the pair floated). */
.bub-site-page main.activity-app .activity-frame-who > div > div > span.activity-frame-who-pair { align-self: end; align-items: flex-end; padding: 0; }
.bub-site-page main.activity-app .activity-frame-who-pair img { display: block; }

/* 目安 rows: the same space above and below every row's text and room at the sides, as on the room pages
   (owner, 2026-10-17). */
.bub-site-page main.activity-app .activity-app-cells :is(li, li > a, li > button) { min-height: 0; padding: 14px 20px; box-sizing: border-box; }
.bub-site-page main.activity-app .activity-app-cells li:has(> :is(a, button)) { padding: 0; }
.bub-site-page main.activity-app .activity-app-cells li + li::before { left: 20px; right: 20px; }
.bub-site-page main.activity-app .activity-app-cells span { gap: 2px; }
