/* Warm Taiwanese public pages, 2026-10-15.
   Palette: reservation_ui_theme.dart; controls: ReservationFlowButton.
   Refined typography, photo proportions and group footer are local preview only.
   Keep the existing CMS content, images, section order, links and behavior. */
body.public-warm {
  --warm-canvas: #faf7f2;
  --warm-surface: #fff;
  --warm-ink: #2b241f;
  --warm-secondary: #6b5a4c;
  --warm-brick: #b5353c;
  --warm-brick-hover: #9c2e34;
  --warm-soft: #f5e8d8;
  --warm-line: #e6d8c8;
  --warm-line-strong: #d6b58c;
  --warm-display-font: "Songti TC", "Noto Serif TC", "PMingLiU", serif;
  --main: #4a230f;
  --bg: var(--warm-canvas);
  --bg-top: var(--warm-canvas);
  --paper: var(--warm-canvas);
  --card: var(--warm-surface);
  --text: var(--warm-ink);
  --muted: var(--warm-secondary);
  --border: var(--warm-line);
  --line: var(--warm-line);
  --tk-border: var(--warm-line);
  --soft: var(--warm-soft);
  --accent: var(--warm-brick);
  --brand-red: var(--warm-brick);
  background: var(--warm-canvas);
  color: var(--warm-ink);
  font-family: "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;
  -webkit-font-smoothing: antialiased;
  line-height: 1.8;
  letter-spacing: .02em;
}
body.public-warm .brand-name-part { white-space: nowrap; }

/* Shared chrome stays opaque and light; menu geometry/visibility is original. */
body.public-warm .site-header,
body.public-warm .site-header.is-brand-context-header {
  background: #fff;
  border-bottom-color: var(--warm-line);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
body.public-warm .site-header-inner.is-brand-context {
  max-width: 1280px;
  padding-inline: 48px;
}
body.public-warm .site-header-inner.is-brand-context .brand-link { min-height: 44px; }
body.public-warm .site-header-inner.is-brand-context .brand-link .brand-company {
  font-size: 18px !important;
  font-weight: 600;
  letter-spacing: .02em;
}
body.public-warm .menu-panel {
  background: #fff;
  border-color: var(--warm-line) !important;
  border-radius: 16px !important;
  box-shadow: 0 6px 20px rgb(74 35 15 / 8%) !important;
}
body.public-warm .menu-panel a,
body.public-warm .menu-current-page,
body.public-warm .menu-status,
body.public-warm .menu-member-id {
  color: var(--warm-ink);
}
body.public-warm .menu-section-title,
body.public-warm .footer-tech-credit { color: var(--warm-secondary); }
body.public-warm .menu-panel a[aria-disabled="true"]:not(.is-active) {
  color: #8c8178;
  background: #f5f1ec;
}
body.public-warm .footer-friend-links {
  border-color: var(--warm-line);
  box-shadow: 0 6px 20px rgb(74 35 15 / 8%);
}

/* 48px customer actions, 12px radius, 16px semibold. Long labels can wrap. */
body.public-warm :is(.header-primary-link, .hero-btn, .mobile-cta-btn,
  .store-menu-action-btn, .storefront-reserve-link, .button-primary, .button-secondary) {
  min-height: 48px !important;
  height: auto !important;
  box-sizing: border-box;
  padding: 12px 20px !important;
  border-radius: 12px !important;
  font-family: inherit;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: 0;
  text-align: center;
  white-space: normal;
  text-wrap: pretty;
  box-shadow: none;
}
body.public-warm :is(.header-primary-link, .hero-btn.primary,
  .mobile-cta-btn.primary, .storefront-reserve-link, .button-primary) {
  background: var(--warm-brick);
  border-color: var(--warm-brick);
  color: #fff;
}
body.public-warm :is(.hero-btn.secondary, .mobile-cta-btn.secondary,
  .button-secondary, .store-menu-action-btn) {
  background: #fff;
  border: 1px solid var(--warm-line-strong);
  color: var(--warm-ink);
}
body.public-warm :is(.header-primary-link, .hero-btn.primary,
  .mobile-cta-btn.primary, .storefront-reserve-link, .button-primary):hover {
  background: var(--warm-brick-hover);
  border-color: var(--warm-brick-hover);
}
body.public-warm :is(a, button, summary, select):focus-visible {
  outline: 2px solid var(--warm-brick);
  outline-offset: 3px;
}
body.public-warm .header-primary-link { padding-inline: 16px !important; }
body.public-warm .menu-trigger {
  min-height: 48px !important;
  height: auto !important;
  padding: 12px 14px !important;
  border-radius: 12px !important;
  color: var(--warm-ink) !important;
  border-color: var(--warm-line) !important;
  box-shadow: none !important;
}

/* Homepage: preserve the existing three-card and mobile image/text layouts. */
body.public-warm.group-landing-body .hero-section-heading {
  color: var(--warm-ink);
  font-family: var(--warm-display-font);
  font-size: clamp(26px, 2.5vw, 32px);
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: .05em;
}
body.public-warm.group-landing-body .hero-entry-card {
  background: #fff;
  border-color: var(--warm-line);
  border-radius: 16px;
  box-shadow: 0 3px 12px rgb(74 35 15 / 4%);
}
body.public-warm.group-landing-body .hero-entry-copy h2 {
  color: var(--warm-ink);
  font-family: var(--warm-display-font);
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: .04em;
}
body.public-warm.group-landing-body .hero-entry-description { color: var(--warm-secondary); }
body.public-warm.group-landing-body .hero-entry-tags li {
  color: var(--warm-secondary);
  background: var(--warm-canvas);
  font-weight: 500;
}
body.public-warm.group-landing-body .hero-entry-cta {
  color: var(--warm-brick);
  font-size: 16px;
  font-weight: 600;
}
@media (hover: hover) and (pointer: fine) {
  body.public-warm.group-landing-body .hero-entry-card:hover {
    transform: translateY(-2px);
    border-color: var(--warm-line-strong);
    box-shadow: 0 5px 16px rgb(74 35 15 / 7%);
  }
}

/* Brand: an open two-column introduction, followed by a consistent photo rhythm. */
body.public-warm.brand-landing-body .container {
  max-width: 1280px;
  padding: 48px 48px 88px;
  gap: clamp(64px, 7vw, 96px);
}
body.public-warm.brand-landing-body .container > section + section { padding-top: 0; }
body.public-warm.brand-landing-body .hero-card { border-radius: 20px; box-shadow: none; }
body.public-warm.brand-landing-body .hero-card-image-led .hero-store-panel {
  background: #fff;
  border: 1px solid var(--warm-line);
  border-radius: 16px;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
}
body.public-warm.brand-landing-body .hero-card-image-led .hero-store-name {
  color: var(--warm-ink);
  font-weight: 600;
}
body.public-warm.brand-landing-body .hero-card-image-led .hero-store-meta { color: var(--warm-secondary); }
body.public-warm.brand-landing-body .hero-card-image-led .hero-btn.secondary {
  background: #fff;
  border: 1px solid var(--warm-line-strong);
  color: var(--warm-ink);
}
body.public-warm.brand-landing-body .hero-card-image-led .hero-badge {
  background: rgb(43 36 31 / 78%);
  border-color: rgb(255 255 255 / 25%);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  font-weight: 600;
}
body.public-warm.brand-landing-body .hero-refined {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(32px, 4vw, 56px);
  padding: 0;
  min-height: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body.public-warm.brand-landing-body .hero-refined:not(.hero-card-image-led) { grid-template-columns: 1fr; }
body.public-warm.brand-landing-body .hero-refined .hero-card-media {
  position: relative;
  inset: auto;
  order: 2;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 8px;
}
body.public-warm.brand-landing-body .hero-refined .hero-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
body.public-warm.brand-landing-body .hero-refined .hero-card-media picture { display: block; height: 100%; }
body.public-warm.brand-landing-body .hero-refined .hero-card-content {
  order: 1;
  min-height: 0;
  gap: 32px;
  justify-content: center;
}
body.public-warm.brand-landing-body .hero-refined .hero-main { max-width: none; }
body.public-warm.brand-landing-body .hero-refined .hero-main h1 {
  margin: 0;
  font-family: var(--warm-display-font);
  font-size: clamp(36px, 3.6vw, 48px);
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: .045em;
  color: var(--warm-ink);
  text-wrap: balance;
  text-shadow: none;
}
body.public-warm.brand-landing-body .hero-refined .hero-badge-row { margin-bottom: 18px; }
body.public-warm.brand-landing-body .hero-refined .hero-badge {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--warm-brick);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
}
body.public-warm.brand-landing-body .hero-refined .hero-store-panel {
  display: grid;
  gap: 24px;
  padding: 24px 0 0;
  border: 0;
  border-top: 1px solid var(--warm-line);
  border-radius: 0;
  background: transparent;
}
body.public-warm.brand-landing-body .hero-refined .hero-store-name { font-size: 15px; }
body.public-warm.brand-landing-body .hero-refined .hero-store-meta { font-size: 14px; line-height: 1.8; }
body.public-warm.brand-landing-body .hero-refined .hero-store-panel .hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 12px;
}
body.public-warm.brand-landing-body :is(.section-head h2, .featured-section-copy h2) {
  color: var(--warm-ink);
  font-family: var(--warm-display-font);
  font-size: clamp(26px, 2.5vw, 32px);
  line-height: 1.55;
  letter-spacing: .05em;
  font-weight: 600;
  text-wrap: balance;
}
body.public-warm.brand-landing-body :is(.section-head p, .featured-dish-pitch,
  .brand-contact-copy p, .visit-info-card-body, .nearby-attraction-card p) {
  color: var(--warm-secondary);
  font-size: 16px;
  line-height: 1.75;
}
body.public-warm.brand-landing-body :is(.section-card-environment, .section-card-featured,
  .section-card-store, .section-card-parking, .section-card-nearby) { gap: 28px; }
body.public-warm.brand-landing-body .section-card-environment { display: grid; }
body.public-warm.brand-landing-body .section-head { gap: 12px; }
body.public-warm.brand-landing-body .section-head p { max-width: 42em; margin: 0; line-height: 1.85; }
body.public-warm.brand-landing-body .environment-gallery { gap: 24px; }
body.public-warm.brand-landing-body .environment-shot-image { width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 8px; }
body.public-warm.brand-landing-body .environment-shot-copy { padding-top: 18px; gap: 8px; }
body.public-warm.brand-landing-body .environment-shot-title { font-size: 18px; font-weight: 600; line-height: 1.6; }
body.public-warm.brand-landing-body .environment-shot-desc { font-size: 14px; line-height: 1.85; }
body.public-warm.brand-landing-body :is(.section-card-store, .section-card-parking,
  .section-card-contact, .section-card-nearby, .section-card-storefront-cta) {
  border-color: var(--warm-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: none;
}
body.public-warm.brand-landing-body .featured-dish-title {
  color: var(--warm-ink);
  font-size: 18px;
  line-height: 1.65;
  font-weight: 600;
  letter-spacing: .02em;
}
body.public-warm.brand-landing-body .private-dish-grid { column-gap: 28px; row-gap: 40px; }
body.public-warm.brand-landing-body .private-dish-card { gap: 18px; }
body.public-warm.brand-landing-body .private-dish-media img { aspect-ratio: 4 / 3; border-radius: 8px; }
body.public-warm.brand-landing-body .private-dish-body { gap: 10px; }
body.public-warm.brand-landing-body .private-dish-body .featured-dish-pitch { font-size: 15px; line-height: 1.85; }
body.public-warm.brand-landing-body :is(.store-intro-copy, .store-intro-sheet,
  .visit-info-card, .nearby-attraction-card, .brand-contact-panel) {
  border-color: var(--warm-line);
  box-shadow: none;
}
body.public-warm.brand-landing-body .store-menu-notice {
  color: var(--warm-ink);
  font-size: 16px;
  line-height: 1.85;
  font-weight: 400;
}
body.public-warm.brand-landing-body .brand-contact-copy h2 { color: var(--warm-ink); }
body.public-warm.brand-landing-body :is(.brand-contact-value, .brand-business-hours-today) { color: var(--warm-secondary); }
body.public-warm.brand-landing-body :is(.section-card-store, .section-card-parking, .section-card-nearby) {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body.public-warm.brand-landing-body .store-intro-sheet {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body.public-warm.brand-landing-body .store-intro-copy {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: start;
  gap: 48px;
}
body.public-warm.brand-landing-body .store-menu-notice { margin: 0; }
body.public-warm.brand-landing-body .store-menu-action-card {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
body.public-warm.brand-landing-body .parking-info-grid { gap: 28px; }
body.public-warm.brand-landing-body .visit-info-card {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body.public-warm.brand-landing-body .visit-info-card-layout { grid-template-columns: 1fr; gap: 20px; }
body.public-warm.brand-landing-body .visit-info-card-image { height: auto; aspect-ratio: 3 / 2; border: 0; border-radius: 8px; }
body.public-warm.brand-landing-body .visit-info-card-title { color: var(--warm-ink); font-size: 18px; font-weight: 600; }
body.public-warm.brand-landing-body .section-card-contact { padding: 40px; border: 0; border-radius: 8px; background: #f1eadf; }
body.public-warm.brand-landing-body .brand-contact-layout { gap: 48px; }
body.public-warm.brand-landing-body .brand-contact-copy { gap: 20px; }
body.public-warm.brand-landing-body .brand-contact-copy h2 {
  font-family: var(--warm-display-font);
  font-size: 30px;
  line-height: 1.6;
  font-weight: 600;
  letter-spacing: .04em;
  text-wrap: balance;
}
body.public-warm.brand-landing-body .brand-contact-copy .brand-contact-kicker {
  padding: 0;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--warm-brick);
  font-size: 13px;
  letter-spacing: .06em;
}
body.public-warm.brand-landing-body .brand-contact-panel { padding: 0; border: 0; border-radius: 0; background: transparent; }
body.public-warm.brand-landing-body .nearby-attraction-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 32px; row-gap: 28px; }
body.public-warm.brand-landing-body .nearby-attraction-card {
  min-height: 0;
  padding: 20px 0 0;
  gap: 10px;
  border: 0;
  border-top: 1px solid var(--warm-line);
  border-radius: 0;
  background: transparent;
}
body.public-warm.brand-landing-body .nearby-attraction-tag { padding: 0; color: var(--warm-brick); background: transparent; font-weight: 500; }
body.public-warm.brand-landing-body .nearby-attraction-card h3 { font-size: 17px; line-height: 1.6; font-weight: 600; }
body.public-warm.brand-landing-body .nearby-attraction-card p { font-size: 14px; line-height: 1.85; }
body.public-warm.brand-landing-body .storefront-section-footer-title {
  font-family: var(--warm-display-font);
  font-size: clamp(26px, 2.5vw, 32px);
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1.55;
  text-wrap: balance;
}
body.public-warm.brand-landing-body .mobile-cta-bar {
  background: #fff;
  border-color: var(--warm-line);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
}

/* Menu stays a continuous, scoped display menu, with the original card images. */
body.public-warm.kaoyibei-menu-body .menu-intro { border-radius: 20px; }
body.public-warm.kaoyibei-menu-body .menu-intro h1 {
  color: var(--warm-ink);
  font-family: var(--warm-display-font);
  font-size: clamp(34px, 4.2vw, 48px);
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: .06em;
}
body.public-warm.kaoyibei-menu-body :is(.menu-reservation-notice, .menu-info-panel) {
  border-color: var(--warm-line);
  border-radius: 16px;
  background: #fff;
}
body.public-warm.kaoyibei-menu-body :is(.menu-reservation-notice p, .menu-contact-value,
  .menu-business-hours-current, .menu-business-day, .dish-description) { color: var(--warm-secondary); }
body.public-warm.kaoyibei-menu-body .category-nav {
  background: var(--warm-canvas);
  border-color: var(--warm-line);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
body.public-warm.kaoyibei-menu-body .category-nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 12px;
  background: var(--warm-soft);
  color: var(--warm-ink);
  font-weight: 600;
}
body.public-warm.kaoyibei-menu-body .category-nav a:is(.is-active, [aria-current="location"]) {
  background: var(--warm-brick);
  color: #fff;
}
body.public-warm.kaoyibei-menu-body .dish-section { padding-top: 48px; }
body.public-warm.kaoyibei-menu-body .dish-section-heading h2 {
  color: var(--warm-ink);
  font-family: var(--warm-display-font);
  font-size: 28px;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: .04em;
}
body.public-warm.kaoyibei-menu-body .dish-card { border-radius: 16px; box-shadow: none; }
body.public-warm.kaoyibei-menu-body .dish-heading h3 { font-weight: 700; color: var(--warm-ink); }
body.public-warm.kaoyibei-menu-body .dish-price { color: var(--warm-brick); font-weight: 600; }
body.public-warm.kaoyibei-menu-body .dish-channels span {
  background: var(--warm-canvas);
  color: var(--warm-secondary);
  font-weight: 500;
}
body.public-warm.kaoyibei-menu-body .physical-menu-grid {
  background: #fff;
  border-color: var(--warm-line);
  border-radius: 16px;
}
body.public-warm.kaoyibei-menu-body .final-cta {
  background: #fff;
  color: var(--warm-ink);
  border: 1px solid var(--warm-line);
  border-radius: 16px;
}
body.public-warm.kaoyibei-menu-body .final-cta p { color: var(--warm-secondary); }

/* Utility controls keep their original actions and focus/close behavior. */
body.public-warm :is(.menu-preview-card, .tk-dish-video-dialog) { border-radius: 16px; box-shadow: none; }
body.public-warm :is(.menu-preview-head, .tk-dish-video-head) { background: #fff; color: var(--warm-ink); }
body.public-warm :is(.menu-preview-zoom, .menu-preview-close, .tk-dish-video-close) {
  color: var(--warm-ink);
  background: var(--warm-canvas);
  border-radius: 12px;
  font-weight: 600;
}
body.public-warm .menu-preview-page img { box-shadow: none; }

/* Shared group footer. Public links stay visible on small screens. */
body.public-warm .site-footer.group-footer {
  margin-top: 0;
  scroll-margin-top: 80px;
  border-top: 3px solid #b17b58;
  background: #2b241f;
  color: #f8f3eb;
}
body.public-warm .group-footer-shell { max-width: 1280px; margin: 0 auto; padding: 60px 48px 28px; }
body.public-warm .group-footer-main { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, .8fr); gap: clamp(24px, 2.5vw, 32px); padding-bottom: 40px; }
body.public-warm .group-footer :is(p, h2) { margin: 0; }
body.public-warm .group-footer a { color: inherit; text-decoration: none; }
body.public-warm .group-footer a:hover { text-decoration: underline; text-underline-offset: 5px; }
body.public-warm .group-footer :is(a, summary, button):focus-visible { outline-color: #f8f3eb; }
body.public-warm .group-footer-identity { display: grid; justify-items: start; align-content: start; gap: 12px; }
body.public-warm .group-footer-eyebrow { color: #cdb5a2; font-size: 11px; line-height: 1.6; font-weight: 500; letter-spacing: .18em; }
body.public-warm .group-footer-name { font-family: var(--warm-display-font); font-size: 36px; line-height: 1.45; font-weight: 600; letter-spacing: .1em; }
body.public-warm .group-footer-email { display: inline-flex; align-items: center; min-height: 44px; color: #d7c9bc; font-size: 14px; line-height: 1.8; }
body.public-warm .group-footer-column { display: grid; align-content: start; gap: 4px; min-width: 0; }
body.public-warm .group-footer-column h2 { color: #cdb5a2; font-family: inherit; font-size: 12px; font-weight: 500; line-height: 1.6; letter-spacing: .1em; margin-bottom: 12px; }
body.public-warm .group-footer-column > a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; font-size: 14px; line-height: 1.8; }
body.public-warm .group-footer-column > a > span:first-child { min-width: 0; }
body.public-warm .group-footer-column > a > span[aria-hidden] { flex: 0 0 auto; color: #cdb5a2; font-size: 13px; }
body.public-warm .group-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; padding-top: 20px; border-top: 1px solid #5e4e41; color: #d7c9bc; font-size: 12px; line-height: 1.8; }
body.public-warm .group-footer-utility { display: flex; flex-wrap: wrap; gap: 6px 20px; }
body.public-warm .group-footer-utility a { display: inline-flex; align-items: center; min-height: 44px; }
body.public-warm .group-footer-end { position: relative; display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 4px clamp(12px, 2vw, 24px); min-width: 0; max-width: 100%; margin-left: auto; }
body.public-warm .group-footer-credit { display: inline-flex; align-items: center; min-height: 44px; }
body.public-warm .group-footer-friends { min-width: 0; }
body.public-warm .group-footer-friends ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; margin: 12px 0 0; padding: 0; list-style: none; }
body.public-warm .group-footer-friends li { min-width: 0; }
body.public-warm .group-footer-friends li a { display: flex; align-items: center; min-height: 44px; padding-block: 6px; font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
@media (max-width: 1023px) {
  body.public-warm .group-footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.public-warm .group-footer-identity { grid-column: 1 / -1; }
}
body.public-warm .group-footer .footer-friend-card { width: 100%; }
body.public-warm .group-footer .footer-friend-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #f8f3eb;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.8;
}
body.public-warm .group-footer .footer-friend-title { color: inherit; font-size: inherit; font-weight: inherit; }
body.public-warm .group-footer .footer-friend-toggle { width: 18px; height: 18px; color: #cdb5a2; }
body.public-warm .group-footer .footer-friend-links {
  display: block;
  position: absolute;
  top: auto;
  left: auto;
  right: 0;
  bottom: calc(100% + 10px);
  width: min(380px, calc(100vw - 48px));
  box-sizing: border-box;
  max-height: min(420px, calc(100svh - 160px));
  padding: 16px;
  border-radius: 12px;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #fff;
  color: var(--warm-ink);
}
body.public-warm .group-footer .footer-friend-links a { color: var(--warm-ink); min-height: 44px; font-size: 14px; }
body.public-warm .group-footer .footer-friend-close { min-width: 44px; min-height: 44px; }
body.public-warm .group-footer .footer-friend-links :is(a, button):focus-visible { outline-color: var(--warm-brick); }

@media (max-width: 1000px) {
  body.public-warm.brand-landing-body .container { padding-inline: 32px; }
  body.public-warm .site-header-inner.is-brand-context { padding-inline: 32px; }
  body.public-warm.brand-landing-body .brand-contact-layout { grid-template-columns: 1fr; gap: 32px; }
  body.public-warm .group-footer-main { gap: 32px; }
}
@media (max-width: 900px) {
  body.public-warm.brand-landing-body .hero-refined { grid-template-columns: 1fr; gap: 32px; }
  body.public-warm.brand-landing-body .hero-refined .hero-card-media { order: 1; aspect-ratio: 16 / 9; }
  body.public-warm.brand-landing-body .hero-refined .hero-card-content { order: 2; }
  body.public-warm.brand-landing-body .store-intro-copy { grid-template-columns: 1fr; gap: 28px; }
  body.public-warm.brand-landing-body .nearby-attraction-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  body.public-warm .site-header-inner.is-brand-context { padding-inline: 20px; }
  body.public-warm .site-header-inner.is-brand-context .brand-link { gap: 8px; }
  body.public-warm .site-header-inner.is-brand-context .brand-link img { width: 32px; height: 32px; }
  body.public-warm .site-header-inner.is-brand-context .brand-link .brand-meta { white-space: normal; overflow: visible; }
  body.public-warm .site-header-inner.is-brand-context .brand-link .brand-company {
    font-size: 14px !important;
    line-height: 1.5;
    white-space: normal;
    overflow: visible;
    text-wrap: balance;
  }
  body.public-warm .site-header.is-brand-context-header .header-primary-link { font-size: 14px !important; }
  body.public-warm .site-header.is-brand-context-header .menu-trigger { padding-inline: 10px !important; }
  body.public-warm.brand-landing-body .container { padding: 24px 20px 64px; gap: 64px; }
  body.public-warm.brand-landing-body .hero-refined { padding: 0; gap: 28px; }
  body.public-warm.brand-landing-body .hero-refined .hero-card-media { aspect-ratio: 3 / 2; }
  body.public-warm.brand-landing-body .hero-refined .hero-card-content { min-height: 0; gap: 24px; }
  body.public-warm.brand-landing-body .hero-refined .hero-main h1 { font-size: clamp(28px, 8.2vw, 36px); line-height: 1.55; }
  body.public-warm.brand-landing-body .hero-refined .hero-badge { font-size: 12px; }
  body.public-warm.brand-landing-body .hero-refined .hero-badge-row { margin-bottom: 12px; }
  body.public-warm.brand-landing-body .hero-refined .hero-store-panel { padding-top: 20px; gap: 20px; }
  body.public-warm.brand-landing-body .hero-refined .hero-btn { flex: 1 1 0; width: auto; }
  body.public-warm.brand-landing-body :is(.section-head h2, .featured-section-copy h2) { font-size: 26px; }
  body.public-warm.brand-landing-body .featured-dish-title { font-size: 18px; }
  body.public-warm.brand-landing-body :is(.section-card-environment, .section-card-featured, .section-card-store, .section-card-parking, .section-card-nearby) { padding: 0; gap: 24px; }
  body.public-warm.brand-landing-body .environment-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  body.public-warm.brand-landing-body .environment-shot:first-child { grid-column: 1 / -1; }
  body.public-warm.brand-landing-body .environment-shot:first-child .environment-shot-image { aspect-ratio: 3 / 2; }
  body.public-warm.brand-landing-body .environment-shot-title { font-size: 16px; }
  body.public-warm.brand-landing-body .environment-shot-desc { font-size: 14px; }
  body.public-warm.brand-landing-body .environment-shot-copy { padding-top: 14px; }
  body.public-warm.brand-landing-body .private-dish-grid { row-gap: 36px; }
  body.public-warm.brand-landing-body .parking-info-grid { grid-template-columns: 1fr; gap: 32px; }
  body.public-warm.brand-landing-body .section-card-contact { padding: 28px 22px; }
  body.public-warm.brand-landing-body .brand-contact-copy h2 { font-size: 26px; }
  body.public-warm.brand-landing-body .section-card-storefront-cta { padding: 32px 22px; }
  body.public-warm.brand-landing-body .nearby-attraction-grid { grid-template-columns: 1fr; gap: 24px; }
  body.public-warm.brand-landing-body .nearby-attraction-card { padding-top: 20px; }
  body.public-warm .header-primary-link { padding-inline: 12px !important; }
  body.public-warm :is(.hero-btn, .mobile-cta-btn) { padding-inline: 16px !important; }
  body.public-warm .footer-more-links { box-shadow: 0 6px 20px rgb(74 35 15 / 8%); }
  body.public-warm .group-footer-shell { padding: 44px 24px 28px; }
  body.public-warm.brand-landing-body .group-footer-shell { padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px)); }
  body.public-warm .group-footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; padding-bottom: 32px; }
  body.public-warm .group-footer-identity { grid-column: 1 / -1; gap: 10px; }
  body.public-warm .group-footer-name { font-size: 32px; }
  body.public-warm .group-footer-column > a { align-items: baseline; padding-block: 8px; }
  body.public-warm .group-footer .footer-friend-card { position: static; }
  body.public-warm .group-footer .footer-friend-links { position: absolute; left: auto; right: 0; bottom: calc(100% + 10px); width: min(380px, calc(100vw - 48px)); }
  body.public-warm.brand-landing-body .group-footer .footer-friend-links { max-height: min(420px, calc(100svh - 244px)); }
  body.public-warm .group-footer-bottom { display: grid; gap: 8px; padding-top: 24px; }
  body.public-warm .group-footer-end { margin: 0; padding-right: 48px; }
  body.public-warm .group-footer-credit { width: fit-content; text-align: right; }
}
@media (max-width: 359px) {
  body.public-warm .group-footer-friends ul { grid-template-columns: 1fr; gap: 4px; }
  body.public-warm .group-footer .footer-friend-links { max-height: min(420px, calc(100svh - 208px)); }
  body.public-warm.brand-landing-body .group-footer .footer-friend-links { max-height: min(420px, calc(100svh - 292px)); }
}
@media (max-width: 719px) {
  body.public-warm.group-landing-body .hero-entry-kicker { font-size: 12px; }
  body.public-warm.group-landing-body .hero-entry-summary { font-size: 13px; }
  body.public-warm.group-landing-body .hero-entry-cta { font-size: 14px; }
}
@media (max-width: 640px) {
  body.public-warm.kaoyibei-menu-body .dish-section { padding-top: 32px; }
  body.public-warm.kaoyibei-menu-body .dish-section-heading h2 { font-size: 24px; }
  body.public-warm.kaoyibei-menu-body .dish-content { padding: 14px 12px; }
  body.public-warm.kaoyibei-menu-body .dish-card { border-radius: 12px; }
  body.public-warm.kaoyibei-menu-body .menu-intro-actions { gap: 12px; }
  body.public-warm.kaoyibei-menu-body .menu-intro-actions a { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  body.public-warm *, body.public-warm *::before, body.public-warm *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
