/* Mobile-first activity catalog. Shared room/food hub styles stay unchanged. */
.bub-site-page .activity-index-page { padding-top: var(--header-height); font-family: Inter, var(--font-ja); }
.activity-inner { width: min(calc(100% - var(--gutter) * 2), var(--content)); margin-inline: auto; }
.activity-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 16px; padding-block: 24px; }
.activity-heading h1 { font-size: 28px; line-height: 40px; }
.activity-heading-count { flex-shrink: 0; color: var(--muted); font-size: 16px; line-height: 24px; font-weight: 400; font-variant-numeric: tabular-nums; }
.activity-heading-count strong { margin-right: 4px; color: var(--ink); font-size: 24px; line-height: 32px; font-weight: 600; }
.activity-filter-open > [data-activity-condition] { min-width: 0; overflow-wrap: anywhere; }
.activity-sheet-fields .activity-rainy-notice { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 22px; }
.activity-toolbar { position: sticky; top: var(--header-height); z-index: 25; background: var(--paper); }
/* Search and 絞り込み side by side; the condition reads inside the button from 768px, on phones it is the list heading's. */
.activity-toolbar-row { display: flex; align-items: center; gap: 8px; padding-block: 12px; }
.activity-index-page:has(#activity-search:not(:placeholder-shown)) .activity-now { display: none; }
.activity-filter-open { display: flex; align-items: center; justify-content: center; gap: 8px; flex-shrink: 0; min-height: 44px; padding: 0 14px; border: 1px solid rgb(47 47 47 / 24%); border-radius: 8px; background: var(--paper); color: var(--ink); text-align: left; font-size: 14px; line-height: 22px; font-weight: 700; }
.activity-filter-open > [data-activity-condition] { display: none; }
.activity-filter-open[data-filtered] { max-width: 50%; border-color: var(--ink); }
.activity-filter-open[data-filtered] > [data-activity-condition] { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.activity-filter-open[data-filtered] .activity-filter-action { font-size: 0; gap: 0; }
.activity-filter-open[data-filtered] .activity-filter-action .ic { width: 16px; height: 16px; }
.activity-filter-action { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; }
/* The season sits in 「いま開催中」 above and in 絞り込み: no separate 「◯◯だけ」 chip (owner, 2026-10-06). */
.activity-genres .activity-season-chip { display: none; }
.activity-genres { display: flex; gap: 20px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; border-bottom: 1px solid var(--line); }
.activity-genres::-webkit-scrollbar { display: none; }
.activity-genres button { flex: 0 0 auto; white-space: nowrap; min-width: 0; min-height: 48px; padding: 12px 2px; border-bottom: 2px solid transparent; background: transparent; font-size: 14px; line-height: 22px; font-weight: 400; color: var(--muted); }
.activity-genres button[aria-pressed="true"] { border-bottom-color: var(--ink); color: var(--ink); font-weight: 500; }
.activity-results { position: relative; padding-block: 16px 48px; scroll-margin-block: calc(var(--header-height) + 120px) 80px; }
.activity-results-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.activity-results-heading h2 { font-size: 22px; line-height: 30px; }
.activity-results-heading > span { flex-shrink: 0; font-size: 14px; line-height: 22px; color: var(--muted); }
.activity-results h2, .activity-destination-card { scroll-margin-block: 140px 80px; }
.activity-results-heading:has(+ .activity-period:not([hidden])) { margin-bottom: 8px; }
.activity-index-page .activity-period { margin: 0 0 20px; color: var(--muted); font-size: 14px; line-height: 22px; }
.bub-site-page .activity-index-page .activity-catalog-grid { display: grid; grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); gap: 0; overflow: visible; margin: 0; padding: 0; scroll-snap-type: none; }
.bub-site-page .activity-results .activity-destination-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); align-content: start; align-items: start; gap: 12px 16px; padding-block: 20px; border-bottom: 1px solid var(--line); text-decoration: none; }
.activity-card-media { position: relative; min-width: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius-media); }
.bub-site-page .activity-results .activity-card-media > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform var(--feedback-duration) ease; }
/* This source includes a white matte. Independent scale also survives active/reduced-motion transforms. */
.bub-site-page .activity-results .activity-card-media > img:is([src$="/3789740c46cd59b4b3b40ec6.png"], [data-activity-original-src$="/3789740c46cd59b4b3b40ec6.png"]) { scale: 1.26; }
.bub-site-page .activity-results .activity-card-season { display: inline-block; padding: 3px 7px; background: var(--paper); color: var(--ink); font-size: 12px; line-height: 18px; font-weight: 500; border-radius: 4px; }
.activity-card-media .activity-card-season { position: absolute; top: 8px; left: 8px; max-width: calc(100% - 16px); }
.activity-card-body > .activity-card-season { margin-bottom: 8px; }
.activity-card-media .activity-card-facility { position: absolute; top: 8px; left: 8px; max-width: calc(100% - 16px); padding: 3px 8px; border-radius: 4px; background: var(--paper); color: var(--ink); font-size: 12px; line-height: 18px; font-weight: 700; box-shadow: 0 1px 2px rgb(0 0 0 / 12%); }
.activity-card-media .activity-card-status { position: absolute; bottom: 8px; left: 8px; padding: 3px 8px; border-radius: 4px; background: var(--color-muchu, #d56e59); color: #fcfcfc; font-size: 12px; line-height: 18px; font-weight: 700; box-shadow: 0 1px 2px rgb(0 0 0 / 12%); }
.activity-card-body { min-width: 0; }
.bub-site-page .activity-results .activity-card-body h3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: 0; font-size: 18px; line-height: 26px; font-weight: 700; overflow-wrap: anywhere; }
.bub-site-page .activity-results .activity-card-body p { margin: 6px 0 0; font-size: 14px; line-height: 22px; color: var(--muted); }
.bub-site-page .activity-results .activity-card-body .activity-card-summary { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; color: var(--muted); }
.bub-site-page .activity-results .activity-card-body .activity-card-location { display: flex; align-items: center; gap: 4px; margin: 0 0 4px; }
.activity-card-location .ic { width: 14px; height: 14px; flex-shrink: 0; }
.activity-card-facts { grid-column: 1 / -1; min-width: 0; }
.bub-site-page .activity-results .activity-card-meta { display: flex; align-items: center; gap: 12px; min-width: 0; margin: 0; padding: 0; font-size: 14px; line-height: 22px; font-weight: 400; color: var(--muted); white-space: nowrap; }
.activity-card-meta > span { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.activity-card-meta > .activity-meta-period { gap: 8px; }
.activity-card-meta .ic { width: 14px; height: 14px; flex-shrink: 0; }
.activity-card-meta .activity-condition-compact { display: none; }
.bub-site-page .activity-results .activity-meta-condition.is-required { color: var(--ink); font-weight: 600; }
.activity-destination-card:active .activity-card-media > img { transform: scale(1.025); }
.activity-destination-card.has-no-image .activity-card-body { grid-column: 1 / -1; }
.activity-empty .activity-reset { display: flex; width: fit-content; text-align: left; }
.activity-destination-card:focus-visible, .activity-genres button:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.activity-more-row { display: grid; justify-items: center; gap: 12px; margin-top: 28px; }
.activity-more-row > span { font-size: 14px; line-height: 22px; color: var(--muted); }
.activity-more { min-height: 44px; width: 100%; padding: 11px 16px; border: 1px solid var(--ink); border-radius: 4px; background: transparent; font-size: 14px; line-height: 20px; font-weight: 400; }
.activity-programs { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--line); }
.activity-programs .activity-results-heading { margin-bottom: 8px; }
.activity-index-page .activity-program-note { margin: 0 0 20px; color: var(--muted); font-size: 14px; line-height: 24px; }
.activity-index-page .activity-catalog-note { margin: 32px 0 0; font-size: 14px; line-height: 22px; color: var(--muted); }
.activity-empty { padding-block: 16px 24px; }
.activity-reset { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 0; background: transparent; font-size: 14px; line-height: 22px; text-decoration: underline; text-underline-offset: 4px; }
.activity-support { padding-block: 40px; background: var(--surface); }
.activity-support h2 { margin-bottom: 20px; font-size: 22px; line-height: 30px; }
.activity-filter-dialog { position: fixed; inset: auto 0 0; width: 100%; max-width: 560px; max-height: calc(100dvh - 24px); margin: auto auto 0; padding: 0; border: 0; border-radius: 16px 16px 0 0; background: var(--paper); color: var(--ink); overflow: auto; overscroll-behavior: contain; font-family: Inter, var(--font-ja); }
.activity-filter-dialog::backdrop { background: rgb(47 47 47 / 45%); }
html:has(.activity-filter-dialog[open]) { overflow: hidden; }
.activity-sheet-header { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; border-bottom: 1px solid var(--line); background: var(--paper); }
.activity-sheet-header h2 { font-size: 20px; line-height: 28px; }
.activity-sheet-close { display: grid; place-items: center; width: 44px; height: 44px; margin-right: -10px; border-radius: 8px; background: transparent; }
.activity-sheet-fields { display: grid; grid-template-columns: minmax(0, 1fr); padding: 24px 20px 16px; }
.activity-sheet-fields > label, .activity-theme-options legend { padding: 0; margin-bottom: 8px; font-size: 14px; line-height: 22px; font-weight: 700; }
.activity-sheet-fields select { min-width: 0; width: 100%; min-height: 48px; margin-bottom: 24px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); font: inherit; font-size: 16px; line-height: 26px; }
.activity-theme-options { display: flex; flex-wrap: wrap; gap: 8px 16px; min-width: 0; margin: 0; padding: 0; border: 0; }
.activity-theme-options label { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; line-height: 22px; }
.activity-theme-options input { width: 18px; height: 18px; margin: 0; accent-color: var(--ink); }
.activity-sheet-footer { display: grid; gap: 8px; padding: 0 20px calc(16px + env(safe-area-inset-bottom)); }
.activity-sheet-footer p { min-height: 22px; margin-bottom: 8px; font-size: 14px; line-height: 22px; color: var(--muted); }
.activity-apply { min-height: 48px; padding: 12px 16px; border-radius: 8px; background: var(--ink); color: var(--paper); font-size: 16px; line-height: 24px; font-weight: 700; }
@media (min-width: 768px) {
  .activity-heading { gap: 24px; padding-block: 32px; }
  .activity-heading h1 { font-size: 36px; line-height: 48px; }
  .activity-heading-count { font-size: 18px; line-height: 28px; }
  .activity-heading-count strong { font-size: 28px; line-height: 38px; }
  .activity-results { padding-block: 24px 64px; scroll-margin-block-start: calc(var(--header-height) + 16px); }
  .activity-genres { gap: 28px; }
  .bub-site-page .activity-results .activity-destination-card { grid-template-columns: 200px minmax(0, 1fr); }
  .bub-site-page .activity-results .activity-card-body h3 { font-size: 18px; line-height: 28px; }
  .bub-site-page .activity-results .activity-card-body p { font-size: 14px; line-height: 24px; }
  .activity-more { width: min(100%, 360px); }
  .activity-filter-dialog { inset: 0; margin: auto; border-radius: 12px; }
}
@media (min-width: 1024px) {
  .activity-heading h1 { font-size: 36px; line-height: 48px; }
  .bub-site-page .activity-results .activity-catalog-grid .activity-destination-card { grid-template-columns: 240px minmax(0, 1fr); max-width: 840px; column-gap: 24px; }
  .bub-site-page .activity-results .activity-card-body h3 { font-size: 20px; line-height: 30px; }
  .bub-site-page .activity-results .activity-card-body p { font-size: 16px; line-height: 26px; }
}
@media (min-width: 1200px) {
  .bub-site-page .activity-index-page .activity-catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .bub-site-page .activity-results .activity-catalog-grid .activity-destination-card { grid-template-columns: 216px minmax(0, 1fr); }
}
@media (max-width: 359px) {
  .activity-heading h1 { font-size: 24px; line-height: 32px; }
  .bub-site-page .activity-results .activity-destination-card { gap: 12px; }
  .bub-site-page .activity-results .activity-catalog-grid .activity-card-body h3 { font-size: 16px; line-height: 24px; }
  .activity-card-meta .activity-condition-full { display: none; }
  .activity-card-meta .activity-condition-compact { display: inline; }
}
/* Compact photo grids make the range of experiences visible; program rows stay unchanged. */
.bub-site-page .activity-results [data-activity-individual-list] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; padding-top: 8px; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-destination-card { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr auto; gap: 8px; max-width: none; padding: 0; border-bottom: 0; }
.bub-site-page .activity-results [data-activity-individual-list] .has-no-image { grid-template-rows: 1fr auto; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-media { width: 100%; aspect-ratio: 4 / 3; border-radius: 8px; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-season { display: block; margin: 0 0 4px; padding: 0; background: transparent; color: var(--muted); border-radius: 0; font-size: 13px; line-height: 20px; font-weight: 400; }
.activity-card-title { display: flex; align-items: flex-start; gap: 6px; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-body h3 { display: block; flex: 1; min-width: 0; overflow: visible; font-size: 16px; line-height: 24px; font-weight: 500; -webkit-line-clamp: unset; word-break: keep-all; overflow-wrap: anywhere; }
@media (hover: hover) and (pointer: fine) {
  .activity-destination-card:hover .activity-card-body h3 { text-decoration: underline; text-underline-offset: 4px; }
}
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-meta { flex-wrap: wrap; gap: 2px 10px; white-space: normal; font-size: 13px; line-height: 20px; }
[data-activity-individual-list] .activity-card-facts { min-height: 42px; }
[data-activity-individual-list] .activity-card-meta > span { max-width: 100%; }
[data-activity-individual-list] .activity-card-meta .ic { width: 14px; height: 14px; }
[data-activity-individual-list] .activity-card-meta .activity-condition-full { display: inline; }
[data-activity-individual-list] .activity-card-meta .activity-condition-compact { display: none; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-meta-condition.is-required { font-weight: 500; }
@media (min-width: 768px) {
  .bub-site-page .activity-results [data-activity-individual-list] { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
  .bub-site-page .activity-results [data-activity-individual-list] .activity-card-body h3 { font-size: 18px; line-height: 28px; }
  .bub-site-page .activity-results [data-activity-individual-list] .activity-card-meta { font-size: 14px; line-height: 22px; }
  [data-activity-individual-list] .activity-card-facts { min-height: 46px; }
}
@media (min-width: 1024px) {
  .bub-site-page .activity-results [data-activity-individual-list] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (hover: hover) {
  [data-activity-individual-list] .activity-destination-card:hover .activity-card-media > img { opacity: .92; }
  [data-activity-individual-list] .activity-destination-card:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
  .activity-more:hover { background: var(--surface); }
}
@media (prefers-reduced-motion: reduce) {
  .bub-site-page .activity-results .activity-card-media > img { transition: none; }
  .activity-destination-card:active .activity-card-media > img { transform: none; }
}

/* ── Season programs (2026-09-30): 「いま開催中」 near the top shows the current (or next) season at each
 * facility; 季節カレンダー at the foot lists each facility's seasons under a facility tab. */
.activity-now { padding-block: 24px 28px; border-image: linear-gradient(var(--surface-subtle) 0 0) fill 0 / / 0 100vw; }
.activity-now-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.activity-now-label { margin: 0; padding: 0 8px; border-radius: 4px; background: #486860; color: var(--paper); font-size: 12px; line-height: 22px; font-weight: 700; }
.activity-now-heading h2 { font-size: 22px; line-height: 30px; }
.activity-now-place { font-size: 22px; line-height: 30px; font-weight: 700; margin-right: -6px; }
.activity-now-place[hidden] { display: none; }
.activity-now-period { margin: 0; color: var(--ink); font: 500 15px/24px var(--font-num), var(--font-ja); }
.activity-now-lead { margin: 6px 0 16px; color: rgb(47 47 47 / 84%); font-size: 14px; line-height: 22px; }
.activity-now-rail { display: grid; grid-auto-flow: column; grid-auto-columns: min(78%, 300px); gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding: 0 var(--gutter) 4px; }
.activity-now-rail::-webkit-scrollbar { display: none; }
.activity-now-card { display: flex; flex-direction: column; overflow: hidden; scroll-snap-align: start; border: 1px solid var(--line); border-radius: var(--radius-media); background: var(--paper); color: var(--ink); }
.activity-now-media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.activity-now-body { display: flex; flex: 1; flex-direction: column; padding: 12px 14px 14px; }
.activity-now-facility { display: flex; align-items: center; gap: 4px; margin: 0; color: rgb(47 47 47 / 70%); font-size: 12px; line-height: 18px; }
.activity-now-facility .ic { width: 14px; height: 14px; }
.activity-now-body h3 { margin-top: 2px; font-size: 18px; line-height: 26px; }
.activity-now-summary { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 2lh; margin: 6px 0 0; color: rgb(47 47 47 / 84%); font-size: 14px; line-height: 22px; word-break: auto-phrase; }
.activity-now-action { display: inline-flex; align-items: center; gap: 4px; margin-top: auto; padding-top: 12px; font-size: 13px; line-height: 20px; font-weight: 700; }
.activity-now-action .ic { width: 16px; height: 16px; }

/* 季節カレンダー: photo tiles, two across on phones, three on desktop. */
.activity-season-calendar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
.activity-season-tile { min-width: 0; }
.activity-season-media { position: relative; overflow: hidden; aspect-ratio: 4 / 3; border-radius: var(--radius-media); background: var(--surface); }
.activity-season-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.activity-season-badge { position: absolute; top: 8px; left: 8px; padding: 3px 8px; border-radius: 4px; background: #486860; color: var(--paper); font-size: 12px; line-height: 18px; font-weight: 500; }
.activity-season-body { padding-top: 10px; }
.activity-season-body h3 { font-size: 17px; line-height: 26px; }
.activity-season-period { margin: 0; color: rgb(47 47 47 / 70%); font: 500 13px/20px var(--font-num), var(--font-ja); }
/* Facility tabs: plain words with an underline under the chosen one; each tile below is one link. */
.activity-season-tabs { display: flex; gap: 24px; margin: 0 0 16px; border-bottom: 1px solid var(--line); }
.activity-season-tab { min-height: 44px; margin: 0 0 -1px; padding: 10px 0; border: 0; border-bottom: 2px solid transparent; background: none; color: rgb(47 47 47 / 60%); font: 500 15px/22px var(--font-ja); cursor: pointer; -webkit-tap-highlight-color: transparent; transition: color var(--feedback-duration) ease, border-color var(--feedback-duration) ease; }
.activity-season-tab[aria-selected="true"] { border-bottom-color: var(--ink); color: var(--ink); }
.activity-season-tab:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
a.activity-season-tile { display: block; color: var(--ink); text-decoration: none; -webkit-tap-highlight-color: transparent; }
@media (prefers-reduced-motion: no-preference) {
  .activity-season-media img { transition: transform var(--feedback-duration) ease; }
  a.activity-season-tile:active .activity-season-media img { transform: scale(1.025); }
}

/* Season bars, as TOP's 「いま開催中」 card (tint, name and dates, cut-out, chevron). One column on phones. */
.activity-season-calendar:has(.is-bar) { grid-template-columns: minmax(0, 1fr); gap: 8px; }
a.activity-season-tile.is-bar { display: flex; align-items: center; gap: 12px; height: 88px; padding: 0 16px 0 20px; overflow: hidden; border-radius: 12px; }
.activity-season-tile.is-bar .activity-season-copy { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.activity-season-tile.is-bar h3 { margin: 0; font-size: 20px; line-height: 26px; }
.activity-season-tile.is-bar .activity-season-period { margin-top: 2px; font-size: 12px; line-height: 16px; }
.activity-season-live { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 4px; font-size: 12px; line-height: 16px; font-weight: 500; }
.activity-season-live::before { content: ""; width: 8px; height: 8px; 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; }
/* The cut-outs as one set (owner, 2026-10-11: 「가타가타」): each sized for the same visual weight (opaque area,
   softened toward one height), all standing on one line 10px above the bar's foot and centred in one 88px slot
   before the chevron. */
.activity-season-art { flex: none; width: var(--art-w, 72px); height: var(--art-h, 64px); margin: 0 calc((88px - var(--art-w, 72px)) / 2) 10px; object-fit: contain; object-position: center bottom; align-self: flex-end; }
.activity-season-tile[data-season="halloween"] { --art-w: 68px; --art-h: 62px; }
.activity-season-tile[data-season="holiday"] { --art-w: 54px; --art-h: 72px; }
.activity-season-tile[data-season="winter"] { --art-w: 71px; --art-h: 61px; }
.activity-season-tile[data-season="spring"] { --art-w: 82px; --art-h: 56px; }
.activity-season-tile[data-season="earlysummer"] { --art-w: 83px; --art-h: 63px; }
.activity-season-tile[data-season="summer"] { --art-w: 70px; --art-h: 68px; }
.activity-season-tile.is-bar > .ic { flex: none; width: 16px; height: 16px; }
.activity-season-tile[data-season="summer"] { background: #dae4f1; }
.activity-season-tile[data-season="earlysummer"] { background: #d5d9d2; }
.activity-season-tile[data-season="halloween"] { background: #ece1d6; }
.activity-season-tile[data-season="holiday"] { background: #f0d1cb; }
.activity-season-tile[data-season="winter"] { background: #dfdad4; }
.activity-season-tile[data-season="spring"] { background: #ebdad6; }
@media (min-width: 768px) { .activity-season-calendar:has(.is-bar) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } }

@media (min-width: 768px) {
  .activity-now { padding-block: 32px 36px; }
  .activity-now-heading h2, .activity-now-place { font-size: 24px; line-height: 32px; }
  .activity-now-rail { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; overflow: visible; margin-inline: 0; padding: 0; }
  .activity-season-calendar { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
  .activity-season-media { aspect-ratio: 3 / 2; }
  .activity-season-body h3 { font-size: 18px; line-height: 28px; }
}

@media (hover: hover) {
  .activity-now-card:hover h3 { text-decoration: underline; text-underline-offset: 3px; }
  .activity-season-tab:hover:not([aria-selected="true"]) { color: var(--ink); }
  a.activity-season-tile:hover h3 { text-decoration: underline; text-underline-offset: 3px; }
}
.activity-now-lead, .activity-index-page .activity-program-note { text-wrap: pretty; word-break: auto-phrase; }

/* 滞在をもっと見る: two photo cards, as the plan pages' related stays (plan-tone.css .plan-related-card):
 * photo, the name in bold, then what it covers as a quiet list. Facilities stay in the navigation. */
.activity-support-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.activity-support-card { display: flex; flex-direction: column; color: var(--ink); }
.activity-support-card img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-media); }
.activity-support-card strong { margin-top: 12px; font-size: 16px; line-height: 24px; font-weight: 700; }
.activity-support-names { display: flex; flex-wrap: wrap; gap: 0 12px; margin-top: 4px; color: var(--muted); font-size: 13px; line-height: 20px; }
@media (min-width: 768px) {
  .activity-support-cards { gap: 24px; }
  .activity-support-card img { aspect-ratio: 4 / 3; }
  .activity-support-card strong { font-size: 18px; line-height: 28px; }
  .activity-support-names { font-size: 14px; line-height: 22px; }
  .activity-support h2 { font-size: 24px; line-height: 32px; }
}
@media (min-width: 1024px) {
  .activity-support { padding-block: 56px 64px; }
  .activity-support-card img { aspect-ratio: 16 / 9; } /* two cards across the full width stay a calm height */
}
@media (hover: hover) {
  .activity-support-card:hover img { opacity: .92; }
  .activity-support-card:hover strong { text-decoration: underline; text-underline-offset: 4px; }
}

/* Who it is for, before the season (家族みんなで・大人も・子どもが主役). */
.bub-site-page .activity-results .activity-card-audience { display: inline-block; margin-right: 6px; padding: 0 6px; border-radius: 4px; background: var(--surface, #f3f2ee); color: var(--ink); font-size: 11px; line-height: 18px; font-weight: 700; vertical-align: 1px; }

/* みっくん FB-36/44: how taking part works, under the heading, and one tap to what is on now. */
.activity-heading-note { margin-top: -8px; margin-bottom: 20px; color: rgb(47 47 47 / 85%); font-size: 13px; line-height: 22px; }
.activity-heading-note strong { color: var(--ink); font-weight: 700; }
.activity-heading-note a { display: inline-flex; align-items: center; gap: 2px; margin-left: 6px; color: var(--ink); font-weight: 700; text-decoration: underline; text-decoration-color: rgb(47 47 47 / 30%); text-underline-offset: 3px; white-space: nowrap; }
/* 「◯◯だけ」: narrows the list below to the running season (FB-44); a pill, so it reads as a toggle
   apart from the genre tabs it shares a row with. */
/* Search by name (らこ FB, 2026-10-06): across every facility and season. A quiet ASAMOYA field
   that sits with the list, not a bordered pill competing with the tabs. */
.activity-search { display: flex; flex: 1; min-width: 0; align-items: center; gap: 10px; padding: 0 14px; min-height: 44px; border-radius: 8px; background: #e7ecec; }
.activity-search[hidden] { display: none; }
.activity-search .ic { flex: none; width: 18px; height: 18px; color: rgb(47 47 47 / 56%); }
.activity-search input { flex: 1; min-width: 0; height: 44px; padding: 0; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: 16px; line-height: 24px; outline: none; -webkit-appearance: none; appearance: none; }
.activity-search input::placeholder { color: rgb(47 47 47 / 50%); }
.activity-search input::-webkit-search-decoration { -webkit-appearance: none; }
.activity-search input::-webkit-search-cancel-button { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; background: rgb(47 47 47 / 32%) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fcfcfc' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='m7 7 10 10M17 7 7 17'/%3E%3C/svg%3E") center / 10px no-repeat; cursor: pointer; }
.activity-search:focus-within { box-shadow: inset 0 0 0 1.5px var(--ink); }
/* Desktop: a shorter field on the list's left edge (the .activity-inner column). */
@media (min-width: 768px) {
  .activity-search { flex: 0 1 400px; }
  .activity-filter-open { gap: 16px; font-weight: 400; }
  .activity-filter-open > [data-activity-condition] { display: inline; color: rgb(47 47 47 / 72%); }
  .activity-filter-open[data-filtered] { max-width: none; }
  .activity-filter-open[data-filtered] > [data-activity-condition] { color: var(--ink); font-weight: 700; }
  .activity-filter-open[data-filtered] .activity-filter-action { font-size: inherit; gap: 6px; }
  .activity-filter-action { font-weight: 700; }
}

/* 滞在をもっと見る stays smaller than the activities above it on the web (owner, 2026-10-06), as on
   /locations/: the catalogue's four columns, two of them, shorter 3:2 photos. */
@media (min-width: 1024px) {
  .activity-support-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
  .activity-support-card img { aspect-ratio: 3 / 2; }
}

/* Web pass (owner, 2026-10-07). */
/* 1 · The six seasons on the catalogue's four columns, so no photo outsizes the experiences above. */
@media (min-width: 1024px) {
  .activity-season-calendar { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
}
/* 2 · The opening note at a readable measure, as TOP's leads. */
.activity-index-page .activity-heading-note { padding-right: max(0px, calc(min(100% - 40px, var(--content, 1200px)) - 640px)); text-wrap: pretty; word-break: auto-phrase; }

/* Page head in TOP's tone (owner, 2026-10-07). The how-it-works paragraph becomes three short promise
   chips with 「参加のしかた >」, the caveat a quiet line; search and 絞り込み are one family — the same
   grey fill, 12px corners and height — the search taking the room, 絞り込み at its end. */
.activity-index-page .activity-heading-note { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: -4px; margin-bottom: 16px; padding-right: 0; }
.activity-index-page .activity-heading-note > a { margin-left: 0; min-height: 32px; text-decoration: none; }
.activity-heading-caveat { flex-basis: 100%; margin: 0; color: rgb(47 47 47 / 64%); font-size: 12px; line-height: 18px; }
.activity-search { min-height: 52px; border-radius: 12px; }
.activity-search input { height: 52px; }
.activity-filter-open { min-height: 52px; border: 0; border-radius: 12px; background: #e7ecec; color: #2f2f2f; font-weight: 700; }
.activity-filter-open[data-filtered] { box-shadow: inset 0 0 0 1.5px #2f2f2f; }
.activity-toolbar-row { gap: 8px; }
@media (min-width: 768px) {
  .activity-search { flex: 1 1 auto; }
  .activity-filter-open { padding: 0 20px; }
}

/* 条件を変更 in the reservation dialog's tone (owner, 2026-10-07): 16px corners, fields on the BUB grey
   with 12px corners and no hard border, small bold labels, こだわり as pill choices (the chosen one in
   ink), a 52px 12px-round apply button and a quiet 条件を解除. CSS only; the form and its values stay. */
.activity-filter-dialog { border-radius: 16px 16px 0 0; }
.activity-sheet-header h2 { font-size: 20px; line-height: 30px; }
.activity-sheet-close { border-radius: 12px; }
.activity-sheet-fields > label, .activity-theme-options legend { margin-bottom: 6px; color: rgb(47 47 47 / 72%); font-size: 13px; line-height: 18px; }
.activity-sheet-fields select { min-height: 52px; margin-bottom: 20px; padding: 0 44px 0 16px; border: 1px solid transparent; border-radius: 12px; background: #eef1f1 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232f2f2f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 16px center / 20px no-repeat; font-weight: 500; -webkit-appearance: none; appearance: none; }
.activity-sheet-fields select:hover { border-color: rgb(47 47 47 / 16%); }
.activity-sheet-fields select:focus-visible { outline: 2px solid #2f2f2f; outline-offset: 2px; }
.activity-theme-options { gap: 8px; }
.activity-theme-options legend { width: 100%; }
.activity-theme-options label { position: relative; min-height: 40px; padding: 0 16px; border-radius: 999px; background: #eef1f1; font-weight: 700; cursor: pointer; transition: background-color var(--feedback-duration, 150ms) ease, color var(--feedback-duration, 150ms) ease; }
.activity-theme-options input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.activity-theme-options label:has(input:checked) { background: #2f2f2f; color: #fcfcfc; }
.activity-theme-options label:has(input:focus-visible) { outline: 2px solid #2f2f2f; outline-offset: 2px; }
.activity-rainy-notice { margin: 12px 0 0; padding: 10px 14px; border-radius: 12px; background: #eef1f1; font-size: 12px; line-height: 20px; text-wrap: pretty; word-break: auto-phrase; }
.activity-sheet-footer { padding-top: 8px; border-top: 1px solid var(--line); }
.activity-sheet-footer p { margin: 8px 0 4px; }
.activity-apply { min-height: 52px; border-radius: 12px; font-size: 15px; }
.activity-sheet-footer .activity-reset { min-height: 40px; color: rgb(47 47 47 / 72%); font-size: 14px; font-weight: 700; text-decoration: none; }
@media (min-width: 768px) { .activity-filter-dialog { border-radius: 16px; } }
/* As TOP's section heads (owner, 2026-10-07: pills, checks and a figures strip are not TOP's): one lead
   line in TOP's lead size and colour, 「参加のしかた >」 as TOP's bold chevron link, and the caveat as
   TOP's ※ note under 0円. */
.activity-index-page .activity-heading-note { display: block; margin-top: -8px; margin-bottom: 20px; padding-right: 0; }
.activity-lead { display: inline; margin: 0; color: rgb(47 47 47 / 85%); font-size: 14px; line-height: 24px; word-break: auto-phrase; }
.activity-index-page .activity-heading-note > a { display: inline-flex; align-items: center; gap: 2px; min-height: 0; margin-left: 8px; color: #2f2f2f; font-size: 14px; line-height: 24px; font-weight: 700; text-decoration: none; white-space: nowrap; vertical-align: baseline; }
.activity-heading-caveat { margin: 4px 0 0; color: rgb(47 47 47 / 64%); font-size: 11px; line-height: 18px; text-wrap: pretty; }
@media (min-width: 768px) {
  .activity-lead, .activity-index-page .activity-heading-note > a { font-size: 15px; line-height: 26px; }
  .activity-heading-caveat { font-size: 12px; }
}

/* Quality pass (owner, 2026-10-07). */
/* Card titles fold between phrases (360px left 「り」 alone). */
.bub-site-page .activity-results .activity-card-title h3 { line-break: strict; text-wrap: pretty; }
@media (max-width: 379px) { .bub-site-page .activity-results .activity-card-title h3 { font-size: 14px; line-height: 20px; } }
/* Photo cards carry no arrow (owner, 2026-10-10): the whole card is the link, the title underlines on hover. */
/* 参加のしかた keeps a 40px tap area without moving the line. */
.activity-index-page .activity-heading-note > a { padding-block: 8px; margin-block: -8px; }
/* さらに見る as the site's 12px-round buttons on the grey, not a 4px outline. */
.activity-more { min-height: 52px; border: 0; border-radius: 12px; background: #e7ecec; color: #2f2f2f; font-size: 15px; font-weight: 700; }
@media (min-width: 768px) { .activity-more { width: min(100%, 360px); } }
/* 季節のプログラム's facility tabs match いま開催中's: equal on phones, 160px on the web. */
.activity-season-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.activity-season-tab { min-height: 48px; padding: 0 8px; font-weight: 700; }
@media (min-width: 1024px) { .activity-season-tabs { grid-template-columns: repeat(3, 160px); } }

/* Card text as TOP's facility cards (owner, 2026-10-07: the grey audience chip is not TOP's). Title
   first, then one quiet line split by a hairline bar — 子どもが主役 | ハロウィン — as TOP's
   「千葉県 | 長生村」, and the age (推奨3歳〜) under it; a required condition (9歳以上限定) stays bold. */
.bub-site-page .activity-results [data-activity-individual-list] .activity-destination-card { display: flex; flex-wrap: wrap; align-content: flex-start; column-gap: 0; row-gap: 0; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-media { flex: 0 0 100%; margin-bottom: 10px; }
[data-activity-individual-list] .activity-card-body, [data-activity-individual-list] .activity-card-facts { display: contents; }
[data-activity-individual-list] .activity-card-title { order: 1; flex: 0 0 100%; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-season { order: 2; flex: 0 0 100%; display: block; margin: 4px 0 0; letter-spacing: 0; color: rgb(47 47 47 / 64%); font-size: 12px; line-height: 18px; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-audience { display: inline; margin: 0; padding: 0; border-radius: 0; background: none; color: inherit; font-size: inherit; font-weight: 400; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-audience::after { content: "|"; margin: 0 6px 0 5px; color: rgb(47 47 47 / 28%); }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-season { word-break: keep-all; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-stay { white-space: nowrap; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-stay::before { content: "|"; margin: 0 6px 0 5px; color: rgb(47 47 47 / 28%); }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-meta { order: 3; flex: 0 0 100%; display: block; margin: 2px 0 0; color: rgb(47 47 47 / 64%); font-size: 12px; line-height: 18px; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-meta-condition.is-required { color: #2f2f2f; font-weight: 700; }
@media (min-width: 768px) {
  .bub-site-page .activity-results [data-activity-individual-list] .activity-card-season,
  .bub-site-page .activity-results [data-activity-individual-list] .activity-card-meta { font-size: 13px; line-height: 20px; }
}
/* Exactly TOP's facility card type: title 16px bold, the info line 13px in body ink (not a faint grey). */
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-body h3 { font-weight: 700; }
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-season,
.bub-site-page .activity-results [data-activity-individual-list] .activity-card-meta { color: rgb(47 47 47 / 85%); font-size: 13px; line-height: 20px; }
/* 滞在をもっと見る on phones: 4:3 like the catalogue's cards, so the closing pair does not outsize them. */
@media (max-width: 1023px) { .activity-support-card img { aspect-ratio: 4 / 3; } }

/* One search bar, as booking apps (owner, 2026-10-07): a 48px round pill with the search field and a
   filter icon at its end; a dot marks narrowing in force, and the conditions show as chips below,
   × clearing each. Replaces the two separate grey blocks. */
.activity-toolbar-row { display: block; padding-block: 10px; }
.activity-searchbar { display: flex; align-items: center; gap: 4px; min-height: 48px; padding: 0 4px 0 0; border-radius: 999px; background: #e7ecec; }
.activity-searchbar:focus-within { box-shadow: inset 0 0 0 1.5px #2f2f2f; }
.activity-searchbar .activity-search { flex: 1 1 auto; min-height: 48px; padding: 0 8px 0 18px; border-radius: 999px; background: none; box-shadow: none; }
.activity-searchbar .activity-search:focus-within { box-shadow: none; }
.activity-searchbar .activity-search input { height: 48px; }
.activity-searchbar .activity-filter-open { position: relative; flex: none; width: 40px; min-width: 0; height: 40px; min-height: 0; max-width: none; padding: 0; border: 0; border-radius: 50%; background: #fcfcfc; box-shadow: none; }
.activity-searchbar .activity-filter-open > svg { display: block; width: 20px; height: 20px; fill: none; stroke: #2f2f2f; stroke-width: 1.8; stroke-linecap: round; }
.activity-searchbar .activity-filter-open > [data-activity-condition] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.activity-searchbar .activity-filter-open[data-filtered] { box-shadow: none; }
.activity-searchbar .activity-filter-open[data-filtered]::after { content: ""; position: absolute; top: 7px; right: 7px; width: 8px; height: 8px; border: 2px solid #fcfcfc; border-radius: 50%; background: #2f2f2f; }
.activity-active-filters { display: flex; flex-wrap: wrap; gap: 6px; padding-bottom: 10px; }
.activity-active-filters[hidden] { display: none; }
.activity-active-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 10px 0 14px; border: 0; border-radius: 999px; background: #2f2f2f; color: #fcfcfc; font: 700 13px/1 var(--font-ja, sans-serif); cursor: pointer; }
.activity-active-chip::after { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: url("/assets/icons/lucide/source/x.svg") center / contain no-repeat; mask: url("/assets/icons/lucide/source/x.svg") center / contain no-repeat; }
/* The web uses the full column, as every row on the page does, and names the filter beside its icon. */
@media (min-width: 768px) {
  .activity-searchbar { min-height: 52px; }
  .activity-searchbar .activity-search, .activity-searchbar .activity-search input { min-height: 52px; height: 52px; }
  .activity-searchbar .activity-filter-open { width: auto; height: 44px; gap: 8px; padding: 0 18px 0 14px; border-radius: 999px; font-size: 14px; line-height: 20px; font-weight: 700; color: #2f2f2f; }
  .activity-searchbar .activity-filter-open::before { content: "絞り込み"; order: 2; }
  .activity-searchbar .activity-filter-open[data-filtered]::after { top: 8px; right: 10px; }
}
/* Room under the search bar before the いま開催中 band (owner, 2026-10-07: 10px read cramped). */
.activity-toolbar-row { padding-block: 10px 20px; }
.activity-toolbar:has(.activity-active-filters:not([hidden])) .activity-toolbar-row { padding-bottom: 10px; }
.activity-active-filters { padding-bottom: 20px; }
/* No results: 条件を解除してすべて見る as TOP's bold chevron link, not an underline. */
.activity-empty .activity-reset { gap: 2px; color: #2f2f2f; font-weight: 700; text-decoration: none; }
.activity-empty .activity-reset::after { content: ""; width: 16px; height: 16px; background: currentColor; -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; }
/* TOP banner lands here below the header and the sticky search (owner, 2026-10-07). */
.activity-now { scroll-margin-top: 140px; }
/* 施設タブ (owner, 2026-10-07): the list is one facility's; the three facilities are the page's own
   tabs, underlined as in 「いま開催中」, so the grey pill below stays the one search bar. */
.activity-facility-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.activity-facility-tabs button { min-height: 48px; margin-bottom: -1px; padding: 0 8px; border: 0; border-bottom: 2px solid transparent; background: none; color: rgb(47 47 47 / 60%); font: 700 15px/24px var(--font-ja, sans-serif); white-space: nowrap; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: color .16s ease, border-color .16s ease; }
.activity-facility-tabs button[aria-pressed="true"] { border-bottom-color: #2f2f2f; color: #2f2f2f; }
.activity-facility-tabs button:focus-visible { outline: 2px solid #2f2f2f; outline-offset: -2px; }
.activity-facility-tabs + .activity-toolbar-row { padding-top: 12px; }
.activity-now { scroll-margin-top: 196px; }
.activity-results { scroll-margin-block: calc(var(--header-height) + 170px) 80px; }
@media (min-width: 768px) {
  .activity-facility-tabs { grid-template-columns: repeat(3, 160px); }
}
@media (hover: hover) { .activity-facility-tabs button:hover:not([aria-pressed="true"]) { color: #2f2f2f; } }
/* The list's own heading (owner, 2026-10-07): whose activities these are and how many; the page title
   no longer carries the count. Under a search, the other facilities' matches are one tap away. */
.activity-index-page .activity-heading-count { display: none; }
.activity-list-title { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; margin: 32px 0 4px; color: #2f2f2f; font: 700 20px/28px var(--font-ja, sans-serif); }
.activity-list-title small { color: rgb(47 47 47 / 64%); font: 500 14px/20px var(--font-num, Inter, sans-serif); }
/* The searched words move to the next line whole rather than breaking inside (「雨の / 日でも」). */
.activity-list-title .activity-list-query { display: inline-block; }
.activity-elsewhere { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 24px; }
.activity-elsewhere[hidden] { display: none; }
.activity-elsewhere-link { display: inline-flex; align-items: center; gap: 4px; min-height: 40px; padding: 0 14px 0 16px; border: 1px solid rgb(47 47 47 / 24%); border-radius: 999px; background: #fcfcfc; color: #2f2f2f; font: 700 14px/20px var(--font-ja, sans-serif); cursor: pointer; }
.activity-elsewhere-link::after { content: ""; width: 16px; height: 16px; background: currentColor; -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; }
@media (min-width: 768px) { .activity-list-title { margin-top: 40px; font-size: 24px; line-height: 32px; } }
.activity-list-head:has(.activity-season-chip:not([hidden])) { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.activity-list-head .activity-season-chip { position: relative; display: inline-flex; flex: none; align-items: center; gap: 4px; height: 36px; margin-bottom: 2px; padding: 0 14px 0 44px; border: 0; border-radius: 999px; background: #ece1d6; color: #2f2f2f; font-size: 13px; line-height: 20px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.activity-list-head .activity-season-chip[hidden] { display: none; }
.activity-list-head .activity-season-chip[data-season="summer"] { background: #dae4f1; }
.activity-list-head .activity-season-chip[data-season="earlysummer"] { background: #d5d9d2; }
.activity-list-head .activity-season-chip[data-season="holiday"] { background: #f0d1cb; }
.activity-list-head .activity-season-chip[data-season="winter"] { background: #dfdad4; }
.activity-list-head .activity-season-chip[data-season="spring"] { background: #ebdad6; }
.activity-list-head .activity-season-chip img { position: absolute; left: 4px; bottom: 2px; width: 38px; height: 38px; object-fit: contain; object-position: center bottom; pointer-events: none; }
.activity-list-head .activity-season-chip small { color: rgb(47 47 47 / 64%); font: 500 12px/20px var(--font-num, Inter, sans-serif); }
.activity-list-head .activity-season-chip svg { width: 14px; height: 14px; margin-left: 2px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.activity-list-head .activity-season-chip[aria-pressed="true"] { background: #2f2f2f; color: #fcfcfc; }
.activity-list-head .activity-season-chip[aria-pressed="true"] small { color: rgb(252 252 252 / 72%); }
.activity-list-head .activity-season-chip:focus-visible { outline: 2px solid #2f2f2f; outline-offset: 2px; }
/* The season of the family's planned stay (assets/js/family-plan.js): why the page opened there, and the way
   back to today's season, as one quiet line under the heading (owner, 2026-10-11). */
.activity-plan-reason { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 8px 0 0; color: rgb(47 47 47 / 72%); font-size: 13px; line-height: 20px; }
.activity-plan-reason[hidden] { display: none; }
.activity-plan-reset { 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; }
.activity-season-live.is-planned::before { background: #8aadd8; }
/* The list ordered for the family: why, with the way back; activities the children cannot join stay listed
   in colour, last, with the age they need on the photo. */
.activity-adapt-reason { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 0 0 12px; color: rgb(47 47 47 / 72%); font-size: 13px; line-height: 20px; }
.activity-adapt-reason[hidden] { display: none; }
.activity-card-media, .bub-site-page .activity-day-photo { position: relative; }
/* 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). */
.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; }
.family-badge.is-pick { background: #d56e59; color: #fcfcfc; }
.family-badge.is-no { padding: 0 10px; background: #2f2f2f; color: #fcfcfc; font-weight: 500; }


/* The hand-drawn mark instead of a face (owner, 2026-10-12). */
.family-badge { padding: 0 10px 0 8px; gap: 5px; height: 26px; }
.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; }
.family-badge.is-pick i { background: #fcfcfc; }

/* Facility chips (owner 10/12, 시안 A — the cards read busy on a phone): one quiet row that scrolls sideways
   as places are added, 「すべて」 first; みなかみ (not yet listed) is a lighter chip with a chevron to its page. */
.activity-facility-tabs.is-chips { display: flex; gap: 8px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; border-bottom: 0; padding-block: 4px; }
.activity-facility-tabs.is-chips::-webkit-scrollbar { display: none; }
@media (max-width: 767px) { .activity-facility-tabs.is-chips { width: 100%; padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); } }
.activity-facility-tabs.is-chips > * { flex: none; display: inline-flex; align-items: center; gap: 2px; min-height: 36px; margin: 0; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; background: none; color: #2f2f2f; font-size: 14px; line-height: 1; font-weight: 700; text-decoration: none; white-space: nowrap; }
.activity-facility-tabs.is-chips button[aria-pressed="true"] { border-color: #2f2f2f; background: #2f2f2f; color: #fcfcfc; }
.activity-facility-tabs.is-chips button:focus-visible, .activity-facility-tabs.is-chips a:focus-visible { outline: 2px solid #2f2f2f; outline-offset: 2px; }
.activity-facility-tabs.is-chips .is-soon { padding-right: 8px; color: rgb(47 47 47 / 64%); }
.activity-facility-tabs.is-chips .is-soon .ic { width: 14px; height: 14px; }
@media (hover: hover) { .activity-facility-tabs.is-chips button:hover:not([aria-pressed="true"]), .activity-facility-tabs.is-chips a:hover { border-color: #2f2f2f; } }

/* Loading (2026-10-16): while the hub's scripts arrive, empty places in the shape of the toolbar, 「いま開催中」
   and the card grid stand in for the no-JavaScript catalogue (html.activity-pending, set in the page head and
   cleared by activity-hub.js or after 10 s). Without JavaScript the catalogue shows as before. */
.activity-skeleton { display: none; }
html.activity-pending .activity-skeleton { display: block; }
html.activity-pending .activity-index-page .activity-category-browser,
html.activity-pending .activity-index-page .activity-category-rail { display: none; }
.activity-skeleton i { display: block; border-radius: 999px; background: #eceae6; }
.activity-skeleton-toolbar { display: grid; gap: 12px; margin: 16px auto 0; }
.activity-skeleton-chips { display: flex; gap: 8px; overflow: hidden; }
.activity-skeleton-chips i { flex: none; width: 72px; height: 40px; }
.activity-skeleton-chips i:first-child { width: 64px; background: #d9d6d0; }
.activity-skeleton-search { height: 44px; }
.activity-skeleton-now { margin-top: 20px; padding: 24px 0 28px; background: #f6f4f1; }
.activity-skeleton-title { width: min(260px, 60%); height: 22px; }
.activity-skeleton-rail { display: grid; grid-auto-flow: column; grid-auto-columns: min(78vw, 300px); gap: 16px; margin-top: 20px; overflow: hidden; }
.activity-skeleton-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; margin: 32px auto 0; }
.activity-skeleton-card { display: grid; gap: 10px; }
.activity-skeleton-card i { border-radius: 4px; }
.activity-skeleton-card .is-photo { aspect-ratio: 3 / 2; border-radius: 12px; }
.activity-skeleton-card .is-line { height: 14px; width: 80%; }
.activity-skeleton-card .is-short { width: 50%; }
@media (min-width: 768px) {
  .activity-skeleton-rail { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-columns: auto; }
  .activity-skeleton-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: no-preference) {
  .activity-skeleton i { animation: activity-skeleton-pulse 1.4s ease-in-out infinite; }
  @keyframes activity-skeleton-pulse { 50% { opacity: .55; } }
}

/* お子さまの年齢 (owner 2026-10-19) sits under こだわり and its rain note with the same room as the other fields. */
.activity-age-options { margin-top: 20px; }
