/* Food content within the approved room detail anatomy. Room CSS/JS own
   the app bar, gallery, sharing sheet, booking rail and interaction states. */
html:has(.bub-site-page .food-reference-detail) { scroll-padding-top:56px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail { --content:1060px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-detail-hero { display:block; width:100%; margin:0; padding:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-detail-hero-media { position:relative; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .chosei-room-listing-gallery { border-radius:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-layout { padding:24px 0 64px; margin-inline:auto; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-content { min-width:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-detail-hero-copy { padding:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-detail-hero-copy h1 { font-size:28px; line-height:38px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-detail-hero-copy > .lead { margin-top:16px; font-size:16px; line-height:28px; color:var(--ink); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-content .section { width:100%; margin:0; padding-block:32px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-content > :is(.food-family-section,.food-breakfast-section,.food-important-section,.food-concept-section) { border-top:1px solid var(--line); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail :is(.food-concept-copy,.food-meal-feature,.food-breakfast-feature,.food-family-list,.food-menu-columns) { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-concept-copy { display:block; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-concept-copy > p { margin:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-concept-copy > p + p { margin-top:12px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-breakfast-section { display:block; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail h2 { margin:0 0 16px; font-size:22px; line-height:32px; letter-spacing:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail h3 { margin:0 0 8px; font-size:18px; line-height:24px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail p { font-size:16px; line-height:28px; color:var(--ink); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-section-heading { margin-bottom:16px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-section-heading > .lead { margin-top:8px; font-size:14px; line-height:22px; color:var(--muted); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-original-copy { margin:0 0 16px; font-size:16px; line-height:24px; color:var(--muted); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-description { margin:0 0 24px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-section-heading > :is(.food-original-copy,.food-description) { font-size:16px; line-height:24px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-section-heading > .food-original-copy { margin:0 0 16px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-section-heading > .food-description { margin:0; color:var(--ink); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .room-reference-context-photo { margin:0 0 24px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .room-reference-context-photo img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; margin:0; border-radius:8px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .room-reference-context-photo figcaption { margin-top:8px; font-size:14px; line-height:22px; color:var(--muted); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail :is(.food-quick-facts,.food-service-facts) { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; padding:0; border:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-service-facts { margin:8px 0 8px; grid-column:auto; grid-row:auto; }
/* The icon in each label sets a flex baseline; start-align the equal 24px lines so label and value share a line. */
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail :is(.food-quick-facts,.food-service-facts) > div { display:grid; grid-template-columns:118px minmax(0,1fr); gap:16px; align-items:start; padding:0; border:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail :is(.food-quick-facts,.food-service-facts) dt { display:flex; align-items:center; gap:8px; font-size:14px; line-height:24px; font-weight:700; color:var(--ink); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail :is(.food-quick-facts,.food-service-facts) dd { margin:0; font-size:16px; line-height:24px; font-weight:400; color:var(--ink); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-quick-facts { margin:24px 0 0; padding-block:24px; border-block:1px solid var(--line); gap:16px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-service-facts .food-fact-note { grid-column:1 / -1; margin-top:-8px; padding-left:30px; color:var(--muted); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-meal-nav { position:static; width:100%; display:flex; gap:24px; padding:8px 0; margin:0; border-top:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-meal-nav a { display:grid; grid-template-columns:minmax(0,1fr) 22px; gap:2px 12px; flex:1; min-width:0; min-height:64px; padding:8px 0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-meal-nav strong { grid-column:1; grid-row:1; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-meal-nav .food-time { grid-column:1; grid-row:2; font-size:14px; color:var(--muted); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-meal-nav .ic { grid-column:2; grid-row:1/3; width:22px; height:22px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-dish-feature .room-reference-context-photo { margin-bottom:16px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail :is(.food-dish-feature,.food-dish-row) p { margin:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-dish-row { display:grid; grid-template-columns:minmax(96px,34%) minmax(0,1fr); gap:16px; align-items:start; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-dish-row img { display:block; width:100%; height:auto; aspect-ratio:4 / 3; object-fit:contain; border-radius:8px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-dish-row h3 { font-size:16px; line-height:24px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-breakfast-feature { gap:12px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-breakfast-feature :is(.room-reference-context-photo,.food-description) { margin:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-breakfast-feature .food-service-facts { margin:12px 0 0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-family-list > article { display:block; padding:0; border:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-family-list .room-reference-context-photo { margin-bottom:16px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-family-list p { margin:0; font-size:16px; line-height:28px; color:var(--ink); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-accordion-list { margin-top:24px; border-top:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-accordion-list details { border-top:0; border-bottom:1px solid var(--line); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail summary { min-height:64px; padding:16px 24px 16px 0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail summary > span { font-size:16px; line-height:22px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail summary > small { font-size:14px; line-height:19px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-accordion-body { padding:8px 0 24px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-accordion-body p { font-size:16px; line-height:28px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-menu-columns h3 { font-size:16px; line-height:24px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-note { margin-top:16px; font-size:14px; line-height:22px; color:var(--muted); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-contact-link { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:14px; line-height:24px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-contact-link .ic { flex:none; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-allergy-contact { margin-top:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-allergy-contact .support-contact__form { font-size:16px; line-height:24px; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-allergy-contact p { margin:8px 0 0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-allergy-contact .support-contact__phone > p:first-child { margin-top:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail section[id] { scroll-margin-top:0; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-booking { position:sticky; top:108px; align-self:start; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-booking > a { background:var(--ink); color:var(--paper); }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-booking .chosei-room-listing-price { font-size:20px; line-height:27px; font-weight:700; }
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-booking .room-reference-booking-info > p:not(.chosei-room-listing-price) { font-size:14px; line-height:22px; }
@media (min-width:768px) {
  html:has(.bub-site-page .food-reference-detail) { scroll-padding-top:calc(var(--header-height) + 24px); }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-content .section { padding-block:40px; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-dish-row { grid-template-columns:180px minmax(0,1fr); gap:24px; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-detail-hero { width:min(calc(100% - 64px),1060px); margin:28px auto 0; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .chosei-room-listing-gallery { border-radius:8px 0 0 8px; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .room-editorial-side-photo { border-radius:0 8px 8px 0; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-layout { width:min(calc(100% - 64px),1060px); padding-top:32px; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail :is(.food-dish-feature,.food-breakfast-feature):has(> .food-feature-copy) { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); gap:24px; align-items:start; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-dish-feature > .room-reference-context-photo { margin-bottom:0; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-family-list > article:has(> .room-reference-context-photo) { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); gap:24px; align-items:start; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-family-list > article > .room-reference-context-photo { margin-bottom:0; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-feature-copy .food-service-facts > div { grid-template-columns:80px minmax(0,1fr); }
}
@media (min-width:1024px) {
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-layout { grid-template-columns:minmax(0,1fr) 280px; gap:48px; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-detail-hero-copy h1 { font-size:32px; line-height:44px; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail h2 { font-size:24px; line-height:34px; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-booking { border-top:1px solid var(--line); padding-top:24px; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .room-reference-booking-info { padding:0; background:transparent; border-radius:0; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .chosei-room-listing-price { margin-top:0; }
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-reference-booking > .button { margin:24px 0 0; border-radius:8px; }
}
/* Shared destination details retain unpictured information without unrelated photos. */
.food-reference-detail .food-related-links { padding-block: 24px; }
.food-reference-detail .food-related-links a { display: flex; align-items: center; justify-content: space-between; min-height: 56px; gap: 16px; padding-block: 16px; border-bottom: 1px solid var(--line); font-size: 16px; line-height: 24px; }

/* 食事の目安・1日の食事・子どもも、大人も: the activity detail parts, same values (owner, 2026-10-14: food pages read
   with the same weight as an activity page). Copied from activity-reference.css, scoped to .food-guide. */
.bub-site-page .food-guide .activity-app-cells { margin: 24px 0 0; padding: 0; list-style: none; overflow: hidden; border-radius: 12px; background: var(--surface-subtle); }
.bub-site-page .food-guide .activity-app-cells li { position: relative; }
.bub-site-page .food-guide .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 .food-guide .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 .food-guide .activity-app-cells li:has(> :is(a, button)) { display: block; padding: 0; }
.bub-site-page .food-guide .activity-app-cells li > button { width: 100%; margin: 0; border: 0; background: none; font: inherit; text-align: left; cursor: pointer; }
.bub-site-page .food-guide .activity-app-cells li > :is(a, button) { padding-block: 10px; }
.bub-site-page .food-guide .activity-app-cells .ic { width: 20px; height: 20px; color: rgb(47 47 47 / 60%); }
.bub-site-page .food-guide .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 .food-guide .activity-app-cells span { display: grid; gap: 0; }
.bub-site-page .food-guide .activity-app-cells strong { font-size: 15px; line-height: 22px; font-weight: 700; }
.bub-site-page .food-guide .activity-app-cells li.is-time strong { font: 700 20px/26px var(--font-num), var(--font-ja); }
.bub-site-page .food-guide .activity-app-cells small { color: rgb(47 47 47 / 70%); font-size: 12px; line-height: 18px; }
.bub-site-page .food-guide .activity-app-cells :is(a, button) .ic:last-child { width: 16px; height: 16px; }
.bub-site-page .food-guide .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 .food-guide :is(.activity-frame-flow, .activity-frame-who) { margin: 40px 0 0; }
.bub-site-page .food-guide :is(.activity-frame-facts, .activity-frame-flow, .activity-frame-who) h2 { margin: 0 0 14px; color: var(--ink); font-size: 20px; line-height: 28px; font-weight: 700; }
.bub-site-page .food-guide .activity-frame-flow ol { display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; }
.bub-site-page .food-guide .activity-frame-flow li { position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr); column-gap: 14px; align-items: start; }
.bub-site-page .food-guide .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 .food-guide .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 .food-guide .activity-frame-flow li:last-child i { background: #c09e66; color: var(--paper); }
.bub-site-page .food-guide .activity-frame-flow span { display: grid; gap: 2px; padding-top: 0; color: var(--ink); font-size: 15px; line-height: 24px; }
.bub-site-page .food-guide .activity-frame-flow b { color: var(--ink); font-size: 14px; line-height: 20px; font-weight: 700; }
.bub-site-page .food-guide .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 .food-guide .activity-frame-photos figure { position: relative; min-height: 0; margin: 0; overflow: hidden; border-radius: 12px; background: var(--surface-subtle); }
.bub-site-page .food-guide .activity-frame-photos figure.is-lead { grid-row: 1 / -1; }
.bub-site-page .food-guide .activity-frame-photos img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bub-site-page .food-guide .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 .food-guide .activity-frame-photos .is-missing { display: grid; place-items: center; border: 1.5px dashed rgb(47 47 47 / 20%); background: none; }
.bub-site-page .food-guide .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 .food-guide .activity-frame-photos .is-missing small { font-size: 11px; font-weight: 500; }
.bub-site-page .food-guide .activity-frame-who > div { display: grid; gap: 10px; }
.bub-site-page .food-guide .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 .food-guide .activity-frame-who > div > div > span { align-self: center; min-width: 0; padding: 14px 0; }
.bub-site-page .food-guide .activity-frame-who > div > div > img { align-self: end; width: 76px; height: auto; margin-top: 10px; }
.bub-site-page .food-guide .activity-frame-who .is-child { background: #ece1d6; }
.bub-site-page .food-guide .activity-frame-who .is-pair { grid-template-columns: 112px minmax(0, 1fr); }
.bub-site-page .food-guide .activity-frame-who-pair { display: flex; align-self: end; margin-top: 10px; }
.bub-site-page .food-guide .activity-frame-who-pair img { width: 68px; height: auto; }
.bub-site-page .food-guide .activity-frame-who-pair img:first-child { position: relative; z-index: 1; }
.bub-site-page .food-guide .activity-frame-who-pair img + img { margin-left: -24px; }
.bub-site-page .food-guide .activity-frame-who .is-pair p { margin-top: 0; }
.bub-site-page .food-guide .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 .food-guide .activity-frame-who p { margin: 2px 0 0; color: var(--ink); font-size: 16px; line-height: 26px; font-weight: 700; }
.bub-site-page .food-guide .activity-frame-who p > span { display: inline-block; }
@media (min-width: 768px) {
  .bub-site-page .food-guide :is(.activity-frame-flow, .activity-frame-who) { margin-top: 56px; }
  .bub-site-page .food-guide :is(.activity-frame-facts, .activity-frame-flow, .activity-frame-who) h2 { margin-bottom: 18px; font-size: 22px; line-height: 32px; }
  .bub-site-page .food-guide .activity-frame-flow span { font-size: 16px; line-height: 26px; }
}
/* Food labels run to five characters (アレルギー): a wider label column than the activity panel. */
.bub-site-page .food-guide .activity-app-cells :is(li, li > a, li > button) { grid-template-columns: 20px 72px minmax(0, 1fr) auto; }
.bub-site-page .food-guide .activity-app-cells li + li::before { left: 50px; }
.bub-site-page .food-guide .activity-frame-facts { margin-top: 28px; }
.bub-site-page .food-guide .activity-frame-facts h2 { margin: 0 0 14px; }
.bub-site-page .food-guide .activity-frame-facts .activity-app-cells { margin-top: 0; }
.bub-site-page .food-guide > .activity-app-notes { margin-top: 14px; }
/* 1日の食事 in one BUB COLOR (owner, 2026-10-14): BLOOM for the highlight (夕食), the same colour pale for the rest. */
.bub-site-page .food-guide .activity-frame-flow li i { background: color-mix(in srgb, var(--color-bloom, #d99a5b) 24%, #fcfcfc); color: var(--ink, #2f2f2f); }
.bub-site-page .food-guide .activity-frame-flow li:first-child i { background: var(--color-bloom, #d99a5b); color: var(--color-hizashi, #fcfcfc); }
.bub-site-page .food-guide .activity-frame-flow li:not(:last-child)::before { background: color-mix(in srgb, var(--color-bloom, #d99a5b) 32%, #fcfcfc); }
.bub-site-page .food-guide .activity-frame-flow li:last-child:not(:first-child) i { background: color-mix(in srgb, var(--color-bloom, #d99a5b) 24%, #fcfcfc); color: var(--ink, #2f2f2f); }
/* The steps lead to their sections, in place of the 夕食・朝食 tabs (owner, 2026-10-14): the whole row is the link. */
.bub-site-page .food-guide .food-flow-link { display: inline-flex; align-items: center; gap: 2px; color: inherit; text-decoration: none; }
.bub-site-page .food-guide .food-flow-link::after { content: ""; position: absolute; inset: -6px 0; }
.bub-site-page .food-guide .food-flow-link .ic { width: 14px; height: 14px; color: rgb(47 47 47 / 50%); }
.bub-site-page .food-guide .food-flow-link:focus-visible { outline: 2px solid var(--ink, #2f2f2f); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) {
  .bub-site-page .food-guide .food-flow-link:hover { text-decoration: underline; text-underline-offset: 3px; }
}
.bub-site-page .food-reference-content :is(#dinner, #kids, #breakfast, #allergy) { scroll-margin-top: calc(var(--header-height, 60px) - 40px); }
/* The dinner course as photographs (owner, 2026-10-14: a panel read as a spec sheet): a sideways row like the activity
   写真, inside the text column so its edges line up with the copy at every phone width; four across from 768px. */
.bub-site-page .food-course { margin-top: 28px; }
.bub-site-page .food-reference-content .food-course-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 0 0 12px; color: var(--ink, #2f2f2f); font-size: 18px; line-height: 26px; font-weight: 700; }
.bub-site-page .food-course-title small { color: rgb(47 47 47 / 60%); font-size: 13px; line-height: 20px; font-weight: 500; }
.bub-site-page .food-course-rail { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 10px) / 2.3); gap: 10px; margin: 0; padding: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.bub-site-page .food-course-rail::-webkit-scrollbar { display: none; }
.bub-site-page .food-course-rail figure { display: grid; gap: 8px; margin: 0; scroll-snap-align: start; }
.bub-site-page .food-course-rail img { display: block; width: 100%; aspect-ratio: 1 / 1; height: auto; object-fit: cover; border-radius: 12px; background: var(--surface-subtle, #f2f2f2); }
.bub-site-page .food-course-rail figcaption { color: rgb(47 47 47 / 72%); font-size: 12px; line-height: 18px; font-weight: 500; }
/* Weight comes from the photographs; the words around them stay quiet (owner, 2026-10-14: bold ink in chips felt cheap). */
.bub-site-page .food-course-menu { margin: 14px 0 0; color: var(--ink, #2f2f2f); font-size: 14px; line-height: 24px; word-break: auto-phrase; text-wrap: pretty; }
.bub-site-page .food-course-note { margin: 8px 0 0; color: rgb(47 47 47 / 60%); font-size: 12px; line-height: 18px; }
@media (min-width: 768px) {
  .bub-site-page .food-course-rail { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; }
}
/* Free drinks (owner's sketch, 2026-10-14): a drink cut-out beside the title like an icon, a different glass on each
   visit (cut from the facility's drinks photograph), the description below a hairline. Same card as 子どもも、大人も. */
.bub-site-page .food-drink-card { margin-top: 24px; padding: 14px 18px 16px; border-radius: 12px; background: var(--color-saon, #ece1d6); }
.bub-site-page .food-drink-head { display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; column-gap: 12px; margin: 0; padding-bottom: 12px; border-bottom: 1px solid rgb(47 47 47 / 12%); }
.bub-site-page .food-drink-head p { display: grid; gap: 2px; margin: 0; }
.bub-site-page .food-drink-head strong { color: var(--ink, #2f2f2f); font-size: 16px; line-height: 24px; font-weight: 700; }
.bub-site-page .food-drink-head span { color: rgb(47 47 47 / 64%); font-size: 13px; line-height: 20px; }
.bub-site-page .food-drink-art { justify-self: center; width: auto; height: 60px; max-width: 48px; object-fit: contain; filter: drop-shadow(0 6px 6px rgb(47 47 47 / 14%)); }
.bub-site-page .food-drink-card .food-drink-text { margin: 12px 0 0; color: rgb(47 47 47 / 84%); font-size: 14px; line-height: 24px; word-break: auto-phrase; text-wrap: pretty; }
/* お子さまの食事 (owner, 2026-10-14): the live photo of the crew and the children at dinner leads; one line for the
   kids time, then the two ages as hairline rows, the age on the left like the 食事の目安 labels. */
.bub-site-page .food-kids-photo { margin: 0; }
.bub-site-page .food-kids-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 12px; }
.bub-site-page .food-kids-lead { margin: 14px 0 0; color: var(--ink, #2f2f2f); font-size: 15px; line-height: 26px; word-break: auto-phrase; text-wrap: pretty; }
.bub-site-page :is(.food-kids-ages, .food-allergy-rows) { margin-top: 16px; border-bottom: 1px solid var(--line, rgb(47 47 47 / 12%)); }
.bub-site-page :is(.food-kids-ages, .food-allergy-rows) > div { display: grid; grid-template-columns: 72px minmax(0, 1fr); column-gap: 12px; padding: 14px 0; border-top: 1px solid var(--line, rgb(47 47 47 / 12%)); }
.bub-site-page .food-reference-content :is(.food-kids-ages, .food-allergy-rows) h3 { margin: 0; color: var(--ink, #2f2f2f); font-size: 15px; line-height: 24px; font-weight: 700; }
.bub-site-page .food-reference-content :is(.food-kids-ages, .food-allergy-rows) p { margin: 0; color: rgb(47 47 47 / 84%); font-size: 14px; line-height: 24px; text-wrap: pretty; }
@media (min-width: 768px) {
  .bub-site-page .food-kids-photo img { aspect-ratio: 2 / 1; object-position: 50% 40%; }
}
/* 朝食: the dinner course's title and menu line without the photo row; the dinner keeps the weight (owner, 2026-10-14). */
.bub-site-page .food-breakfast-menu .food-course-menu { margin-top: 0; }
/* シェフ (owner, 2026-10-14): his portrait from the live シェフの紹介, cut to him alone; name and words beside it, the
   story below. */
.bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-concept-copy.food-chef { display: grid; grid-template-columns: 104px minmax(0, 1fr); grid-template-rows: auto auto; align-content: start; gap: 0 16px; align-items: start; }
.bub-site-page .food-reference-content img.food-chef-photo { grid-row: 1 / 3; width: 104px; height: 130px; aspect-ratio: auto; object-fit: cover; border-radius: 12px; background: var(--surface-subtle, #f2f2f2); }
.bub-site-page .food-reference-content .food-chef-name h3 { margin: 0; font-size: 20px; line-height: 28px; }
.bub-site-page .food-reference-detail .food-concept-copy .food-chef-name p { margin: 0; color: rgb(47 47 47 / 60%); font-size: 12px; line-height: 18px; }
.bub-site-page .food-reference-detail .food-concept-copy > p.food-chef-quote { margin: 12px 0 0; color: var(--ink, #2f2f2f); font-size: 15px; line-height: 26px; font-weight: 500; }
.bub-site-page .food-reference-detail .food-concept-copy > p.food-chef-bio { grid-column: 1 / -1; margin: 20px 0 0; color: rgb(47 47 47 / 84%); font-size: 15px; line-height: 28px; text-wrap: pretty; }
@media (min-width: 768px) {
  .bub-site-page[data-bub-detail-tone="room"] .food-reference-detail .food-concept-copy.food-chef { grid-template-columns: 160px minmax(0, 1fr); grid-template-rows: auto auto auto; gap: 0 24px; }
  .bub-site-page .food-reference-content img.food-chef-photo { grid-row: 1 / 5; width: 160px; height: 200px; }
  .bub-site-page .food-reference-detail .food-concept-copy > p.food-chef-bio { grid-column: 2; margin-top: 12px; }
}
/* 食物アレルギー (owner, 2026-10-14): no accordion for one group; the three steps as the same hairline rows as the kids
   ages, in the order a guest meets them, the caveat as a ※ line. */
.bub-site-page .food-allergy-rows { margin-top: 4px; }
.bub-site-page .food-reference-content p.food-course-note { margin: 8px 0 0; color: rgb(47 47 47 / 60%); font-size: 12px; line-height: 18px; }
.bub-site-page .food-reference-content #allergy p.food-course-note { margin-top: 12px; }
.bub-site-page .food-reference-content p.food-course-note + p.food-course-note { margin-top: 2px; }
.bub-site-page .food-reference-content #allergy .food-contact-link { margin-top: 8px; }
/* The end of the page (owner, 2026-10-14: the two text links felt empty): the rest of the stay as photo cards, like
   ほかの体験 on the activity pages, FAQ as one quiet link. */
.bub-site-page .food-stay-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.bub-site-page .food-stay-card { display: grid; gap: 8px; color: var(--ink, #2f2f2f); text-decoration: none; }
.bub-site-page .food-stay-card img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 12px; background: var(--surface-subtle, #f2f2f2); }
.bub-site-page .food-stay-card span { font-size: 14px; line-height: 20px; font-weight: 700; }
/* FAQ as a SAON row under the cards (owner, 2026-10-14: a bare link was too weak, and a photo, not a glyph): a crew
   member (AI, a woman or a man at random on each visit) stands on the card's bottom edge, like the 子どもも、大人も cut-outs. */
.bub-site-page .food-reference-content .food-stay-faq { display: grid; grid-template-columns: 132px minmax(0, 1fr); align-items: end; gap: 12px; margin-top: 20px; padding: 10px 20px 0 10px; min-height: 96px; overflow: hidden; border-radius: 12px; background: var(--color-saon, #ece1d6); color: var(--ink, #2f2f2f); text-decoration: none; }
.bub-site-page .food-stay-faq > span:last-child { display: grid; gap: 2px; min-width: 0; }
.bub-site-page .food-reference-content .food-stay-faq strong { font-size: 18px; line-height: 26px; font-weight: 700; }
.bub-site-page .food-reference-content .food-stay-faq small { color: rgb(47 47 47 / 64%); font-size: 14px; line-height: 22px; }
@media (min-width: 768px) {
  .bub-site-page .food-stay-cards { gap: 16px; }
  .bub-site-page .food-stay-card img { aspect-ratio: 4 / 3; }
  .bub-site-page .food-stay-card:hover span { text-decoration: underline; text-underline-offset: 3px; }
}
/* Short copy breaks between phrases, not inside words (quality pass, 2026-10-14). */
.bub-site-page .food-reference-content :is(.food-description, .food-feature-copy p, .food-guide .activity-frame-flow li > span, .food-guide .activity-app-cells strong, .food-guide .activity-app-cells small) { word-break: auto-phrase; text-wrap: pretty; }
/* 食物アレルギー, the same on all three pages (owner, 2026-10-14): rows (the last one, 相談, holds the form — and the
   phone where the live page gives one, 長生村), then the ※ lines. Quiet links, no button (a black slab felt cheap). */
.bub-site-page .food-reference-content .food-allergy-rows .food-allergy-contact > div > p { margin: 2px 0 0; color: rgb(47 47 47 / 64%); font-size: 13px; line-height: 20px; }
.bub-site-page .food-reference-content .food-allergy-contact .support-contact__form { display: inline-flex; align-items: center; justify-content: flex-start; gap: 8px; width: auto; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; color: var(--ink, #2f2f2f); font-size: 15px; line-height: 24px; font-weight: 700; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.bub-site-page .food-reference-content .food-allergy-contact .support-contact__form .ic { width: 16px; height: 16px; flex: none; }
.bub-site-page .food-reference-content .food-allergy-contact .support-contact__phone { margin-top: 12px; padding-top: 0; border-top: 0; }
.bub-site-page .food-reference-content .food-allergy-contact .support-contact__phone p { margin: 0; color: rgb(47 47 47 / 64%); font-size: 13px; line-height: 20px; }
.bub-site-page .food-reference-content .food-allergy-contact .support-contact__number { display: inline-flex; align-items: center; gap: 8px; min-height: 0; margin: 2px 0; color: var(--ink, #2f2f2f); font: 700 17px/26px var(--font-num), var(--font-ja); white-space: nowrap; }
.bub-site-page .food-reference-content .food-allergy-contact .support-contact__number .ic { width: 16px; height: 16px; }
/* The crew lead's own photograph, cut out (owner, 2026-10-14): she stands on the card's bottom edge; the words sit in the middle of the card whatever her pose. */
.bub-site-page .crew-art { display: block; width: 132px; height: auto; margin-left: -4px; }
.bub-site-page .food-reference-content .food-stay-faq > span:last-child { align-self: center; padding-bottom: 10px; }
/* 食事の目安 by meal (ほの FB, 2026-10-14): 夕食 and 朝食 differ in hall and in how children eat, so each has
   its own list under a quiet label, and what holds for both comes last. */
.bub-site-page .food-guide .food-facts-by-meal h3 { margin: 18px 0 8px; color: rgb(47 47 47 / 60%); font-size: 13px; line-height: 20px; font-weight: 700; }
.bub-site-page .food-guide .food-facts-by-meal h2 + h3 { margin-top: 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 .food-guide .activity-frame-who > div > div > span.activity-frame-who-pair { align-self: end; align-items: flex-end; padding: 0; }
.bub-site-page .food-guide .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 .food-guide .activity-app-cells :is(li, li > a, li > button) { min-height: 0; padding: 14px 20px; box-sizing: border-box; }
.bub-site-page .food-guide .activity-app-cells li:has(> :is(a, button)) { padding: 0; }
.bub-site-page .food-guide .activity-app-cells li + li::before { left: 20px; right: 20px; }
.bub-site-page .food-guide .activity-app-cells span { gap: 2px; }
/* A time range stays on one line when its row wraps. */
.bub-site-page .food-guide .activity-app-cells .food-cell-nowrap { white-space: nowrap; }
