@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600&family=Zen+Old+Mincho&display=swap');
:root {
  --color-bg: #09090d;
  --color-surface: #111114;
  --color-surface-soft: #17171c;
  --color-card: #15151b;
  --color-text: #f4eddb;
  --color-text-muted: #c8bea8;
  --color-primary: #d3a85a;
  --color-secondary: #f7e09f;
  --color-accent: #2f6c52;
  --color-border: rgba(211, 168, 90, 0.35);
  --max-width: 1320px;
  --radius: 20px;
  --header-height: 76px;
  --card-height: 100%;
  --font-display: "Cormorant Garamond", "Noto Serif JP", serif;
  --font-body: "Noto Serif JP", "Zen Old Mincho", "Hiragino Kaku Gothic ProN", "Yu Mincho", serif;
  --font-ui: "Noto Sans JP", "Yu Gothic", sans-serif;
  --font-weight-title: 500;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  margin: 0;
  font-family: var(--font-body);
  background: radial-gradient(120% 60% at 50% -10%, rgba(214, 166, 74, 0.08), transparent), var(--color-bg);
  color: var(--color-text);
  line-height: 1.95;
  letter-spacing: 0.018em;
  text-wrap: balance;
  overflow-x: clip;
}
a { color: inherit; }
img { max-width: 100%; display: block; }

.brand-title {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.brand-title-icon {
  width: 1.65em;
  height: 1.65em;
  flex: 0 0 auto;
  object-fit: contain;
  filter: drop-shadow(0 0 12px rgba(229, 178, 79, 0.48));
}

.section-title-inline .brand-title-icon,
.card-title-inline .brand-title-icon {
  width: 1.45em;
  height: 1.45em;
}

.button-icon {
  width: 1.45em;
  height: 1.45em;
  object-fit: contain;
  display: inline-block;
  margin-right: 0.45rem;
  filter: drop-shadow(0 0 9px rgba(229, 178, 79, 0.52));
}

.bgm-widget {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 80;
  display: grid;
  gap: 0.45rem;
  justify-items: end;
  pointer-events: none;
}

.bgm-now-playing {
  margin: 0;
  max-width: min(260px, calc(100vw - 48px));
  padding: 0.52rem 0.78rem;
  border: 1px solid rgba(211, 168, 90, 0.28);
  border-radius: 14px;
  background: rgba(7, 7, 10, 0.78);
  color: #f8eddb;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  line-height: 1.45;
  letter-spacing: 0.04em;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.25s ease, transform 0.25s ease;
  pointer-events: none;
}

.bgm-widget.is-playing .bgm-now-playing {
  opacity: 1;
  transform: translateY(0);
}

.bgm-now-playing span,
.bgm-now-playing strong {
  display: block;
}

.bgm-now-playing span {
  color: var(--color-primary);
  font-size: 0.68rem;
  font-weight: 700;
}

.bgm-now-playing strong {
  color: #fff0b7;
  font-weight: 600;
}

.bgm-toggle {
  min-height: 46px;
  padding: 0.72rem 1rem;
  border: 1px solid rgba(211, 168, 90, 0.72);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(18, 16, 13, 0.94), rgba(7, 7, 10, 0.94));
  color: #f4d487;
  font-family: var(--font-ui);
  font-weight: 700;
  letter-spacing: 0.04em;
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.34);
  cursor: pointer;
  pointer-events: auto;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.bgm-toggle:hover,
.bgm-toggle:focus-visible {
  transform: translateY(-2px);
  border-color: #ffe4a4;
  color: #ffe4a4;
  box-shadow:
    0 0 18px rgba(229, 178, 79, 0.45),
    0 14px 34px rgba(0, 0, 0, 0.34);
  outline: none;
}

.bgm-toggle:active {
  transform: translateY(1px) scale(0.99);
  box-shadow: 0 0 12px rgba(229, 178, 79, 0.3);
}

.site-container {
  width: min(var(--max-width), 100% - 2rem);
  margin: 0 auto;
  padding: 0 1rem 4rem;
}

.skip-link {
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.skip-link:focus {
  position: fixed;
  left: 1rem;
  top: 1rem;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0.75rem 1rem;
  clip: auto;
  clip-path: none;
  white-space: normal;
  transform: none;
  background: var(--color-primary);
  color: #111;
  padding: 0.5rem 1rem;
  z-index: 1000;
  border-radius: 999px;
}

h1,
h2,
h3,
h4,
h5,
.site-brand,
.hero-copy h1,
.menu-card h3,
.home-concept-title {
  font-family: var(--font-display);
  letter-spacing: 0.08em;
  font-weight: var(--font-weight-title);
  color: var(--color-secondary);
  text-wrap: balance;
}

p {
  color: #efe7d2;
  line-height: 1.95;
  letter-spacing: 0.025em;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  backdrop-filter: blur(14px);
  background: color-mix(in oklab, var(--color-bg) 80%, transparent);
  border-bottom: 1px solid var(--color-border);
}

.site-nav {
  height: var(--header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: var(--header-height);
  padding: 0.15rem 0.1rem;
}

.site-brand {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-decoration: none;
  margin-right: 1.4rem;
  white-space: nowrap;
}

.brand-mark {
  display: inline-flex;
  align-items: center;
  position: relative;
  text-shadow: 0 0 16px rgba(211, 168, 74, 0.22);
  animation: neonOn 6s ease-in-out infinite;
}

.site-nav-list {
  margin: 0;
  padding: 0;
  display: flex;
  gap: clamp(0.32rem, 1vw, 0.55rem);
  list-style: none;
  flex-wrap: nowrap;
  white-space: nowrap;
  justify-content: flex-end;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.site-nav-list a {
  text-decoration: none;
  padding: 0.3rem 0.62rem;
  border-radius: 999px;
  transition: background 0.3s, color 0.3s;
  font-size: 0.9rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.site-nav-list a:hover,
.site-nav-list a:focus-visible {
  background: color-mix(in oklab, var(--color-primary) 25%, transparent);
  color: #fff;
}

.site-nav-list a.active {
  color: var(--color-secondary);
}

.page-title {
  margin: 2rem 0 1.2rem;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  letter-spacing: 0.05em;
}

.hero {
  position: relative;
  margin-top: 1.2rem;
  border-radius: var(--radius);
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.34);
}

.hero-media {
  position: relative;
  min-height: clamp(460px, 64vh, 660px);
}

.hero-split {
  position: relative;
  display: grid;
  grid-template-columns: minmax(300px, 38%) minmax(0, 1fr);
  gap: 0;
  min-height: clamp(460px, 64vh, 660px);
}

.hero-copy {
  position: relative;
  width: 100%;
  max-width: none;
  z-index: 3;
  align-self: center;
  margin-left: 0;
  margin-right: 0;
  border-radius: 0;
  border-left: 0;
  background: linear-gradient(180deg, rgba(10, 10, 12, 0.82), rgba(10, 10, 12, 0.72));
}

.hero-media.hero {
  position: static;
  overflow: hidden;
  border-radius: var(--radius);
  transform: translateX(-1.2vw);
}

.hero-media picture,
.hero-media img {
  width: 100%;
  height: 100%;
  min-height: clamp(460px, 64vh, 660px);
  object-position: center;
  display: block;
  object-fit: cover;
}

.hero-media img {
  transform: scale(1.02);
  transition: opacity 1.1s ease, transform 6s ease;
  object-position: 45% center;
}

.hero-media img.hero-active {
  transform: scale(1.10);
}

.hero-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1.1s ease;
}
.hero-slide.active { opacity: 1; }

.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 5, 8, 0.42), rgba(5, 5, 8, 0.14) 55%, rgba(5, 5, 8, 0.42));
  z-index: 1;
  pointer-events: none;
}

.hero-content {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: clamp(1rem, 3vw, 2.5rem);
}

.hero-copy {
  max-width: 360px;
  background: color-mix(in oklab, #040407 62%, transparent);
  border: 1px solid color-mix(in oklab, var(--color-primary) 40%, transparent);
  border-radius: 16px;
  padding: 1.15rem;
  backdrop-filter: blur(6px);
  width: min(93%, 410px);
  margin-left: clamp(0.8rem, 1.5vw, 1.5rem);
}

.hero-eyebrow {
  color: var(--color-primary);
  margin: 0;
  font-family: var(--font-body);
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 0.82rem;
}

.hero-copy h1 {
  margin: 0.35rem 0;
  line-height: 1.25;
  font-size: clamp(1.9rem, 4.5vw, 3.4rem);
  max-height: calc(1.25em * 3);
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.hero-copy p {
  margin: 0;
  color: #efe7d2;
  line-height: 1.95;
  letter-spacing: 0.02em;
  max-height: 7.2em;
}

.hero-actions {
  margin-top: 0.85rem;
  display: flex;
  gap: .8rem;
  flex-wrap: wrap;
}

.button {
  text-decoration: none;
  border-radius: 999px;
  padding: 0.72rem 1.25rem;
  border: 1px solid var(--color-primary);
  color: #1c170d;
  background: color-mix(in oklab, var(--color-primary) 90%, #000 10%);
  font-weight: 700;
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
  min-height: 2.8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.button:hover,
.button:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(211,168,74,0.35);
}

.button:empty,
.site-footer a:empty,
.hero-indicators button:empty {
  display: none !important;
}

.button.secondary {
  background: transparent;
  color: var(--color-text);
  text-wrap: balance;
}

.hero-indicators {
  margin-top: .95rem;
  display: flex;
  gap: .42rem;
  justify-content: flex-start;
  align-items: center;
}

.hero-indicators button {
  width: 40px;
  height: 10px;
  border: 0;
  border-radius: 999px;
  background: rgba(244, 237, 219, .35);
  cursor: pointer;
}
.hero-indicators button.active,
.hero-indicators button:focus-visible {
  background: var(--color-primary);
}

.grid {
  display: grid;
  gap: 1rem;
}
.section {
  margin-top: 2.5rem;
}
.card {
  background: color-mix(in oklab, var(--color-card) 88%, transparent);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 1.1rem;
  min-height: var(--card-height);
  display: flex;
  flex-direction: column;
  gap: .7rem;
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.card:hover,
.card:focus-within,
.media-card:hover,
.media-card:focus-within {
  transform: translateY(-5px);
  border-color: color-mix(in oklab, var(--color-primary) 45%, var(--color-border));
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
}

.order-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.4rem;
  margin-bottom: 1rem;
  color: var(--color-text-muted);
  font-size: 0.92rem;
}

.order-breadcrumb-item {
  align-items: center;
  color: var(--color-text-muted);
  display: inline-flex;
  min-height: 44px;
  text-decoration: none;
}

.order-breadcrumb-current {
  align-items: center;
  display: inline-flex;
  min-height: 44px;
}

.order-breadcrumb-item:hover,
.order-breadcrumb-item:focus-visible {
  color: var(--color-secondary);
}

.order-breadcrumb-separator {
  opacity: 0.7;
}

.order-subtitle {
  color: var(--color-primary);
  margin: 0 0 0.2rem;
  font-size: 0.92rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.order-description {
  margin: 0;
  color: var(--color-text-muted);
}

.order-root {
  transition: opacity 0.22s ease;
}

.is-page-loading .order-root {
  opacity: 0.72;
}

.order-service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1rem;
}

.order-service-card {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  position: relative;
  overflow: hidden;
}

.order-service-card-featured {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
}

.order-service-badges {
  position: absolute;
  top: 0.8rem;
  left: 0.8rem;
  right: 0.8rem;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.order-service-badge {
  margin: 0;
  background: rgba(247, 224, 159, 0.95);
  color: #111;
  border-radius: 999px;
  padding: 0.2rem 0.58rem;
  font-size: 0.74rem;
  font-weight: 700;
}

.order-service-icon {
  margin: 0;
  line-height: 1;
}

.order-service-icon-img {
  width: 2.25rem;
  height: 2.25rem;
  object-fit: contain;
}

.order-service-subtitle {
  margin: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-size: 0.9rem;
}

.order-service-subtitle:empty {
  display: none;
}

.order-service-image {
  width: calc(100% + 2.2rem);
  margin: -1.1rem -1.1rem 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.04);
}

.order-service-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.order-service-meta {
  display: grid;
  gap: 0.45rem;
}

.order-service-status {
  margin: 0;
  border-radius: 999px;
  display: inline-flex;
  width: fit-content;
  min-width: 5.5rem;
  justify-content: center;
  padding: 0.3rem 0.8rem;
  font-size: 0.86rem;
}

.status-open {
  background: color-mix(in oklab, #2ecc71 16%, transparent);
  color: #c4ffdf;
}

.status-busy {
  background: color-mix(in oklab, #e5bf4e 20%, transparent);
  color: #ffe7a6;
}

.status-paused {
  background: color-mix(in oklab, #efca79 16%, transparent);
  color: #ffe4c5;
}

.status-closed,
.status-closed-today,
.status-closed-hours {
  background: color-mix(in oklab, #d25a5a 20%, transparent);
  color: #ffd3d3;
}

.status-unknown {
  background: color-mix(in oklab, #8aa0b8 18%, transparent);
  color: #dbe9ff;
}

.order-service-status-message,
.order-service-status-note {
  margin: 0;
  color: var(--color-text-muted);
  font-size: 0.9rem;
}

.order-status-component {
  display: inline-grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 0.5rem;
  width: 100%;
  min-height: 44px;
  padding: 0.62rem 0.72rem;
  border: 1px solid currentColor;
  border-radius: 12px;
  background: color-mix(in oklab, currentColor 9%, transparent);
}

.order-status-icon {
  width: 1.6rem;
  height: 1.6rem;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  border: 1px solid currentColor;
  font-size: 0.86rem;
  line-height: 1;
}

.order-status-copy {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.order-status-copy strong,
.order-status-copy span {
  overflow-wrap: anywhere;
}

.order-service-facts {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
  list-style: none;
}

.order-service-facts li {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 0.45rem 0.65rem;
  border: 1px solid rgba(211, 168, 90, 0.24);
  color: var(--color-text-muted);
  background: rgba(255, 255, 255, 0.035);
}

.order-service-highlight-list,
.order-service-highlights {
  margin: 0;
  padding-left: 1.2rem;
  display: grid;
  gap: 0.42rem;
  color: var(--color-text-muted);
}

.order-service-action-wrap {
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.order-service-action-wrap .button {
  width: auto;
  min-width: 140px;
  text-align: center;
  min-height: 44px;
  white-space: normal;
}

.button.button-disabled {
  color: #2b2b2b;
  background: color-mix(in oklab, #a3a3a3 26%, var(--color-text-muted));
  border-color: #8c8c8c;
  cursor: not-allowed;
}

.order-error-ui {
  align-items: flex-start;
}

.order-skeleton {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}

.order-skeleton-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1rem;
}

.order-skeleton-card,
.order-skeleton-line,
.order-skeleton-media {
  border-radius: 12px;
  background: linear-gradient(90deg, rgba(255,255,255,0.06), rgba(247,224,159,0.16), rgba(255,255,255,0.06));
  background-size: 220% 100%;
  animation: order-skeleton 1.4s ease-in-out infinite;
}

.order-skeleton-card {
  min-height: 260px;
  padding: 1rem;
  display: grid;
  gap: 0.8rem;
}

.order-skeleton-media {
  aspect-ratio: 16 / 9;
}

.order-skeleton-line {
  min-height: 1rem;
}

.order-skeleton-title {
  max-width: 18rem;
  min-height: 2rem;
}

.order-skeleton-short {
  max-width: 70%;
}

@keyframes order-skeleton {
  0% { background-position: 120% 0; }
  100% { background-position: -120% 0; }
}

.order-service-page,
.order-service-flow {
  display: grid;
  gap: 0.65rem;
}

.order-service-flow h3 {
  margin: 0;
}

.order-service-flow .empty-state {
  margin: 0.2rem 0 0;
}

.order-service-step-list,
.order-service-details {
  margin: 0;
  display: grid;
  gap: 0.6rem;
}

.order-service-step-list li,
.order-service-details li {
  list-style: none;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 0.55rem 0.75rem;
  background: color-mix(in oklab, var(--color-card) 84%, transparent);
}

.order-delivery-quote {
  display: grid;
  gap: 1rem;
  border: 1px solid rgba(211, 168, 90, 0.28);
  padding: clamp(1rem, 3vw, 1.35rem);
  background: linear-gradient(135deg, rgba(247, 224, 159, 0.08), rgba(255, 255, 255, 0.025));
}

.order-delivery-quote-head {
  display: grid;
  gap: 0.25rem;
}

.order-delivery-quote-head h3 {
  margin: 0;
}

.order-delivery-quote-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.order-delivery-quote-form label {
  display: grid;
  gap: 0.32rem;
  color: var(--color-text-muted);
  font-size: 0.9rem;
}

.order-delivery-quote-form input {
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(211, 168, 90, 0.28);
  border-radius: 8px;
  padding: 0.68rem 0.78rem;
  background: rgba(0, 0, 0, 0.32);
  color: var(--color-text);
  font: inherit;
}

.order-delivery-quote-form input:focus {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 58%, transparent);
  outline-offset: 2px;
}

.order-delivery-quote-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.order-delivery-quote-result {
  min-height: 2.2rem;
  color: var(--color-text-muted);
}

.order-delivery-quote-result > p {
  margin: 0;
}

.order-delivery-quote-card {
  display: grid;
  gap: 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 0.9rem;
  background: rgba(0, 0, 0, 0.24);
}

.order-delivery-quote-card.is-available {
  border-color: color-mix(in oklab, #2ecc71 46%, var(--color-border));
}

.order-delivery-quote-card.is-unavailable {
  border-color: color-mix(in oklab, #e5bf4e 42%, var(--color-border));
}

.order-delivery-quote-card dl {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.order-delivery-quote-card div {
  display: grid;
  gap: 0.12rem;
}

.order-delivery-quote-card dt {
  color: var(--color-text-muted);
  font-size: 0.78rem;
}

.order-delivery-quote-card dd {
  margin: 0;
  overflow-wrap: anywhere;
}

@media (hover: hover) and (pointer: fine) {
  .order-service-card:hover,
  .order-service-card:focus-within {
    transform: translateY(-6px);
    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.34), 0 0 22px rgba(211, 168, 90, 0.18);
  }

  .order-service-card:hover .order-service-main,
  .order-service-card:focus-within .order-service-main {
    box-shadow: 0 0 24px rgba(247, 224, 159, 0.44);
  }
}

.section-title {
  margin: 0 0 1.2rem;
  font-size: clamp(1.55rem, 2.8vw, 2.2rem);
  line-height: 1.2;
  letter-spacing: 0.12em;
  position: relative;
  text-transform: uppercase;
}

.section-title::before {
  content: '';
  display: block;
  width: 54px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--color-primary), var(--color-secondary));
  margin-bottom: .55rem;
}

.section-title::after {
  content: '◆';
  position: absolute;
  left: 58px;
  bottom: 0.03rem;
  color: var(--color-primary);
  letter-spacing: .45em;
  font-size: .7rem;
}

.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}

.menu-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.menu-card img,
.gallery-card figure img,
.preview-media img {
  border-radius: 14px;
}

.media-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: color-mix(in oklab, var(--color-card) 86%, transparent);
  padding: 0.9rem;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  min-height: var(--card-height);
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}

.media-card h3 {
  margin: .6rem 0 .4rem;
  font-size: 1.12rem;
  line-height: 1.35;
  letter-spacing: 0.09em;
  color: var(--color-secondary);
  font-weight: 500;
}

.media-caption {
  color: #d1c4ae;
  font-size: .94rem;
  margin-top: .35rem;
  line-height: 1.85;
  letter-spacing: 0.025em;
}

.media-picture {
  display: block;
  overflow: hidden;
  border-radius: 14px;
  aspect-ratio: 4 / 3;
  width: 100%;
  max-width: 100%;
  margin: 0;
  min-height: clamp(140px, 18vw, 220px);
}

.media-picture img,
.media-picture picture,
.media-picture source {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 1;
  filter: brightness(1.02) contrast(1.02);
  mix-blend-mode: normal;
}

.media-zoom {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
}

.media-zoom img,
.media-zoom picture,
.media-zoom source {
  transition: transform 0.8s ease, opacity 0.4s ease;
}

.media-zoom:hover img {
  transform: scale(1.06);
}

.media-zoom:focus-within img {
  transform: scale(1.06);
}

.media-fade-in {
  opacity: 0;
  transform: translateY(18px) scale(0.98);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.media-fade-in.reveal.is-visible {
  opacity: 1;
  transform: none;
}

.home-lifestyle,
.home-delivery,
.home-lifestyle,
.home-table-set,
.home-food-action {
  position: relative;
}

.home-hero-split {
  display: grid;
  grid-template-columns: 32% 1fr;
  gap: 0;
  align-items: stretch;
}

.home-hero-split .hero-copy {
  padding: 1.6rem 1rem;
  width: min(95%, 340px);
  justify-self: end;
}

.home-concept-grid {
  display: grid;
  grid-template-columns: 1fr 48%;
  gap: 1.5rem;
  align-items: center;
}

.home-concept-carousel,
.home-concepts-track,
.home-ingredients-list,
.home-chefs-track,
.home-food-action-track,
.home-season-track,
.home-lifestyle-slots {
  display: flex;
  gap: 1rem;
}

.home-concept-carousel,
.home-ingredients-list,
.home-chefs-track,
.home-food-action-track,
.home-season-track,
.home-lifestyle-slots {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  padding-bottom: .5rem;
}

.home-ingredient-item,
.home-chef-item,
.home-food-card,
.home-food-action-track .media-card,
.home-season-item,
.home-lifestyle-slot {
  flex: 0 0 min(84vw, 380px);
  scroll-snap-align: start;
}

.home-concept-item {
  flex: 0 0 min(78vw, 360px);
  scroll-snap-align: start;
  min-width: 0;
  aspect-ratio: 3.5 / 4.3;
  min-height: 100%;
  width: min(78vw, 360px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.8rem;
}

.home-concept-item .media-picture {
  aspect-ratio: 16 / 10;
  flex: 0 0 auto;
}

.home-concept-item .media-picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-concept-title {
  position: relative;
  margin: 0;
  padding-bottom: .5rem;
  font-size: 1.25rem;
  letter-spacing: 0.1em;
  font-weight: 500;
}

.home-concept-title::after {
  content: '';
  display: block;
  width: 36px;
  height: 1px;
  background: var(--color-primary);
  margin-top: .4rem;
  opacity: .75;
}

.home-section-grid {
  display: grid;
  gap: 1.45rem;
}

.home-concept-grid > div > p:first-child {
  margin: 0;
  color: #d9caa9;
  font-size: 0.83rem;
  letter-spacing: 0.23em;
  font-family: var(--font-display);
  text-transform: uppercase;
}

.home-concept-grid > div > p:last-child {
  color: #ddd2bd;
  font-size: 1.03rem;
  line-height: 2;
  letter-spacing: 0.045em;
  margin: .3rem 0 0;
}

.home-ingredient-item {
  min-height: 100%;
  display: grid;
  gap: .8rem;
  grid-template-columns: repeat(2, 1fr);
  align-items: center;
}

.home-ingredient-item.reverse {
  direction: rtl;
}
.home-ingredient-item.reverse .home-ingredient-content,
.home-ingredient-item.reverse .media-picture {
  direction: ltr;
}

.home-ingredient-content,
.home-chef-content,
.home-season-content {
  min-width: 0;
}

.home-chef-item {
  width: min(420px, 100%);
}

.home-chef-item h3,
.home-season-content h3,
.home-food-action-track h3,
.home-ingredient-content h3,
.home-concept-title {
  margin-top: 0;
  line-height: 1.25;
  margin-bottom: .45rem;
}

.home-delivery-steps {
  display: grid;
  gap: 1rem;
}

.home-lifestyle-slot {
  min-width: min(72vw, 320px);
  position: relative;
}

.home-lifestyle-slot .media-picture::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.08));
}

.home-food-action-track,
.home-season-track {
  gap: 1rem;
}

.home-food-action-track > .media-card,
.home-season-track > .media-card {
  flex: 0 0 min(75vw, 340px);
  min-width: min(75vw, 340px);
}

.home-ingredients-list::-webkit-scrollbar,
.home-chefs-track::-webkit-scrollbar,
.home-food-action-track::-webkit-scrollbar,
.home-season-track::-webkit-scrollbar,
.home-concept-carousel::-webkit-scrollbar {
  height: 8px;
}

.home-ingredients-list::-webkit-scrollbar-thumb,
.home-chefs-track::-webkit-scrollbar-thumb,
.home-food-action-track::-webkit-scrollbar-thumb,
.home-season-track::-webkit-scrollbar-thumb,
.home-concept-carousel::-webkit-scrollbar-thumb {
  background: color-mix(in oklab, var(--color-primary) 45%, transparent);
}

.home-delivery-steps .card,
.home-lifestyle-hero {
  width: 100%;
}

.home-section-media {
  margin: 0;
}

.home-section-media {
  margin: 0;
}

.home-delivery-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  align-items: stretch;
}

.home-delivery-media {
  min-height: 280px;
  border-radius: var(--radius);
  overflow: hidden;
  margin: 0;
}

.home-delivery-media > .media-picture,
.home-delivery-media picture,
.home-delivery-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-food-carousel,
.home-gallery-carousel,
.home-food-carousel-track,
.home-gallery-track {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  padding-bottom: .5rem;
}

.home-food-carousel-track {
  display: flex;
  gap: 1rem;
}

.home-gallery-track > .media-card,
.home-food-carousel-track > .media-card {
  flex: 0 0 min(75vw, 360px);
  scroll-snap-align: start;
}

.home-gallery-track::-webkit-scrollbar,
.home-food-carousel-track::-webkit-scrollbar {
  height: 8px;
}

.home-gallery-track::-webkit-scrollbar-thumb,
.home-food-carousel-track::-webkit-scrollbar-thumb {
  background: color-mix(in oklab, var(--color-primary) 45%, transparent);
}

.home-gallery-track .media-picture,
.home-food-carousel-track .media-picture {
  aspect-ratio: 4 / 3;
  height: auto;
  min-height: 190px;
}

.season-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
}

.home-gallery-track .media-picture img,
.home-food-carousel-track .media-picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-lifestyle-band {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  padding: 0;
  min-height: 320px;
}

.home-lifestyle-band > .media-picture {
  position: absolute;
  inset: 0;
  margin: 0;
  z-index: 0;
}

.home-lifestyle-band > .media-picture picture,
.home-lifestyle-band > .media-picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}

.home-lifestyle-band::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(130deg, rgba(9, 9, 12, 0.08), rgba(9, 9, 12, 0.45));
  pointer-events: none;
}

.home-lifestyle-content {
  position: relative;
  z-index: 2;
  padding: 2rem;
  max-width: 680px;
}

.home-table-set {
  border-radius: var(--radius);
  overflow: hidden;
  min-height: 300px;
  position: relative;
}

.home-table-set::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(4, 4, 7, 0.14), rgba(4, 4, 7, 0.46));
  z-index: 1;
  pointer-events: none;
}

.home-table-set .media-picture {
  position: absolute;
  inset: 0;
  z-index: 0;
  margin: 0;
  min-height: 320px;
}

.home-table-set .media-picture picture,
.home-table-set .media-picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}

.home-table-set img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 360px;
}

.home-table-set-content {
  position: relative;
  z-index: 2;
  padding: 2rem;
  background: rgba(5, 5, 10, 0.2);
  min-height: 340px;
  display: flex;
  align-items: flex-end;
}

.home-food-carousel .control,
.home-gallery-carousel .control {
  display: none;
}

.media-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(0, 0, 0, 0.86);
  display: none;
  place-items: center;
  padding: 2rem;
}

.media-lightbox[aria-hidden='false'] {
  display: grid;
}

.lightbox-frame {
  max-width: min(1024px, 96vw);
  width: 100%;
}

.lightbox-frame figure {
  margin: 0;
}

.lightbox-frame img {
  width: 100%;
  max-height: min(78vh, 78vh);
  object-fit: contain;
}

.lightbox-frame figcaption {
  margin-top: .7rem;
  color: var(--color-text);
  text-wrap: balance;
}

.lightbox-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 2.4rem;
  height: 2.4rem;
  border: 1px solid var(--color-border);
  border-radius: 50%;
  background: rgba(17, 17, 20, 0.85);
  color: var(--color-text);
  cursor: pointer;
  text-wrap: balance;
}

.lightbox-trigger {
  cursor: zoom-in;
}

.parallax-media {
  transform: translateY(0);
  transition: transform 0.25s ease-out;
}
.menu-card h3 { margin: .8rem 0 .35rem; }
.menu-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: .4rem;
}
.badge {
  display: inline-flex;
  padding: .2rem .6rem;
  border-radius: 999px;
  font-size: .8rem;
  border: 1px solid var(--color-border);
}
.badge.featured { border-color: var(--color-primary); color: var(--color-secondary); }
.badge.soldout { border-color: #9f3a3a; color: #f3a4a4; }

.meta {
  color: var(--color-text-muted);
  font-size: .92rem;
}

.list {
  margin: 0;
  padding-left: 1.2rem;
}

.list li { margin: .35rem 0; }

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease, transform .7s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

.gallery-filter {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}

.gallery-filter button {
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: transparent;
  color: var(--color-text);
  text-wrap: balance;
  padding: .35rem .7rem;
}

.gallery-filter button.active {
  background: color-mix(in oklab, var(--color-primary) 18%, transparent);
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: .8rem;
}

.gallery-card figure {
  margin: 0;
}
.gallery-card figcaption {
  font-size: .93rem;
  color: var(--color-text-muted);
  margin-top: .45rem;
}

.table { width: 100%; border-collapse: collapse; }
.table th,
.table td {
  text-align: left;
  border: 1px solid var(--color-border);
  padding: .6rem;
  vertical-align: top;
}
.table th { width: 32%; }

.faq-item {
  border: 1px solid var(--color-border);
  border-radius: 12px;
  margin-bottom: .7rem;
  overflow: hidden;
}
.faq-item .faq-body {
  margin: 0;
  font-family: var(--font-body);
  background: radial-gradient(120% 60% at 50% -10%, rgba(214, 166, 74, 0.08), transparent), var(--color-bg);
  color: var(--color-text);
  line-height: 1.95;
  letter-spacing: 0.018em;
  text-wrap: balance;
}
.cta-band {
  margin-top: 2rem;
  border-radius: var(--radius);
  border: 1px solid var(--color-border);
  padding: 1.2rem;
  background: linear-gradient(120deg, rgba(211,168,90,.15), rgba(47,108,82,.2));
  display: grid;
  gap: 0.9rem;
}

.cta-band p {
  margin: 0.2rem 0 0.6rem;
  color: #d4c6af;
}

.cta-band .button {
  width: fit-content;
  min-width: 12rem;
  margin-right: 0.65rem;
  padding-inline: 1.4rem;
}

.cta-band .button:last-child { margin-right: 0; }

.cta-band .button.secondary {
  color: #f8edd5;
}

.site-footer {
  margin-top: 2.5rem;
  border-top: 1px solid var(--color-border);
  padding: 2rem 0;
  color: #b8ae98;
}
.site-footer p { margin: .2rem 0; }
.site-footer a { color: #ddceb3; }

.offline-fallback {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: max(1rem, env(safe-area-inset-bottom));
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: #111;
  color: #fff;
  padding: .75rem 1rem;
  display: none;
  z-index: 999;
}
.offline-fallback.active { display: block; }

.not-found {
  padding: 5rem 0;
  text-align: center;
}

.empty-state { color: var(--color-text-muted); }

@media (max-width: 768px) {
  .site-nav-list {
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: .4rem;
    flex-wrap: nowrap;
    gap: .42rem;
  }

  .site-nav-list a {
    padding: 0.28rem 0.62rem;
    font-size: 0.81rem;
  }
  .home-hero-split,
  .home-concept-grid,
  .home-delivery-layout {
    grid-template-columns: 1fr;
  }
  .home-ingredient-item { grid-template-columns: 1fr; }
  .home-ingredient-item.reverse { direction: ltr; }
  .home-ingredient-item.reverse .home-ingredient-content,
  .home-ingredient-item.reverse .media-picture { direction: ltr; }
  .home-chef-item { flex-basis: min(84vw, 320px); }
  .season-grid {
    grid-template-columns: 1fr;
  }
  .hero-content { align-items: flex-end; }
  .hero-copy {
    max-width: none;
    background: rgba(7, 7, 9, 0.85);
  }
  .hero-split,
  .home-lifestyle-content,
  .home-table-set-content {
    grid-template-columns: 1fr;
  }
  .hero-copy h1 {
    max-height: calc(1.22em * 2);
    -webkit-line-clamp: 2;
    font-size: clamp(1.75rem, 8vw, 2.25rem);
    font-weight: 600;
    line-height: 1.2;
  }
  .hero-copy p { max-height: 6.2em; }
  .hero-media picture,
  .hero-media img { min-height: 420px; height: 430px; }
  .button { width: 100%; text-align: center; }
  .cta-band { text-align: center; }
  .home-gallery-track > .media-card,
  .home-food-carousel-track > .media-card {
    flex-basis: min(86vw, 340px);
  }
  .home-lifestyle-band {
    min-height: 280px;
  }

  .order-service-grid {
    grid-template-columns: 1fr;
  }

  .order-delivery-quote-form,
  .order-delivery-quote-card dl {
    grid-template-columns: 1fr;
  }

  .order-delivery-quote-actions .button {
    width: 100%;
  }

  .order-service-card {
    min-height: auto;
  }

  .order-service-badges {
    top: 0.6rem;
    left: 0.6rem;
    right: 0.6rem;
  }

  .order-service-image {
    width: calc(100% + 1.6rem);
    margin: -0.8rem -0.8rem 0;
  }

  .order-status-component {
    grid-template-columns: 1.4rem 1fr;
    padding: 0.58rem 0.62rem;
  }

  .order-service-action-wrap,
  .order-service-action-wrap .button {
    width: 100%;
  }

  .order-service-facts li {
    min-height: 44px;
    overflow-wrap: anywhere;
  }

  .order-skeleton-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  .hero-copy {
    width: calc(100% - 0.9rem);
    max-width: none;
    padding: 0.95rem;
    margin-left: 0;
    margin-right: 0;
  }

  .hero-copy h1 {
    font-size: clamp(1.7rem, 9vw, 2.2rem);
    font-weight: 600;
    line-height: 1.2;
    max-height: calc(1.2em * 2);
    -webkit-line-clamp: 2;
  }

  .hero-copy p {
    font-size: 0.96rem;
    line-height: 1.8;
    max-height: 5.8em;
  }

  .hero-actions { gap: .6rem; }

  .hero-indicators button {
    width: 36px;
    height: 8px;
  }

  .home-concept-item {
    width: min(90vw, 320px);
  }

  .home-food-action-track > .media-card,
  .home-season-track > .media-card,
  .home-gallery-track > .media-card,
  .home-food-carousel-track > .media-card {
    width: min(90vw, 320px);
    flex-basis: min(90vw, 320px);
  }

  .cta-band {
    padding: 1rem;
  }

  .cta-band .button {
    width: 100%;
    text-align: center;
    justify-self: stretch;
    margin-right: 0;
  }
}

@media (max-width: 390px) {
  .site-brand {
    font-size: 1.12rem;
    letter-spacing: 0.12em;
  }

  .hero-copy { padding: 0.88rem; }
  .hero-copy h1 { font-size: clamp(1.55rem, 10vw, 2rem); }
  .hero-copy p { font-size: 0.93rem; }

  .home-concept-item { aspect-ratio: auto; }
}

@media (max-width: 360px) {
  .site-nav-list {
    gap: 0.4rem;
  }

  .site-nav-list a {
    padding: 0.22rem 0.46rem;
    font-size: 0.78rem;
  }

  .hero-copy {
    width: calc(100% - 0.7rem);
  }

  .hero-copy h1 { font-size: 1.5rem; }

  .hero-media picture,
  .hero-media img {
    min-height: 330px;
    height: 330px;
  }

  .home-concept-item .media-picture {
    aspect-ratio: 4 / 3;
  }
}

@media (max-width: 1024px) and (min-width: 769px) {
  .season-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1024px) {
  .reference-home .reference-hero-script {
    white-space: normal;
  }
}

@media (max-width: 540px) {
  .site-container { width: min(100% - 1rem, 100%); }
  .hero-media picture,
  .hero-media img { min-height: 360px; height: 360px; }

  .home-concept-carousel {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    padding-bottom: .5rem;
  }

  .home-concept-item {
    flex: 0 0 min(86vw, 340px);
    width: min(86vw, 340px);
    aspect-ratio: 3 / 4.1;
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .home-concept-carousel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    scroll-snap-type: none;
    padding-bottom: 0;
  }

  .home-concept-item {
    flex: auto;
    width: auto;
    aspect-ratio: 3 / 4.1;
  }
}

@media (min-width: 1025px) {
  .home-concept-carousel {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    overflow: hidden;
    scroll-snap-type: none;
    padding-bottom: 0;
  }

  .home-concept-item {
    flex: auto;
    width: auto;
    aspect-ratio: 3 / 4.1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-media img,
  .hero-slide,
  .reveal {
    transition: none !important;
    animation: none !important;
  }

  .brand-mark { animation: none !important; }
  .hero-content { position: absolute; }
}

@keyframes neonOn {
  0% { text-shadow: 0 0 2px rgba(211, 168, 74, 0.22), 0 0 12px rgba(211, 168, 74, 0.15); opacity: 0.85; }
  8% { text-shadow: 0 0 10px rgba(211, 168, 74, 0.5), 0 0 20px rgba(247, 224, 159, 0.4); opacity: 1; }
  20% { text-shadow: 0 0 4px rgba(211, 168, 74, 0.22); }
  100% { text-shadow: 0 0 8px rgba(47, 108, 82, 0.28); }
}

/* Phase2-5 reference Home rebuild */
.reference-home {
  background:
    radial-gradient(90% 42% at 55% 0%, rgba(211, 168, 90, 0.14), transparent 60%),
    linear-gradient(180deg, #09090d 0%, #0f0d0b 48%, #09090d 100%);
  letter-spacing: 0;
}

.reference-home .site-container {
  width: min(1440px, 100% - 2rem);
  padding-inline: clamp(0.5rem, 1.4vw, 1.25rem);
}

.reference-home #main {
  padding-bottom: 3rem;
}

.reference-home .page-title {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.reference-home-unused {
  display: none !important;
}

.reference-home .site-header {
  background: rgba(7, 7, 10, 0.86);
  border-bottom: 1px solid rgba(211, 168, 90, 0.32);
}

.reference-home .site-nav {
  gap: clamp(0.75rem, 1.4vw, 1.5rem);
}

.reference-home .site-brand {
  font-size: clamp(1.12rem, 1.8vw, 1.45rem);
  letter-spacing: 0.12em;
  margin-right: 0.75rem;
}

.reference-home .site-nav-list {
  gap: clamp(0.2rem, 0.7vw, 0.55rem);
}

.reference-home .site-nav-list a {
  font-size: clamp(0.78rem, 0.86vw, 0.92rem);
  padding: 0.36rem 0.58rem;
  border-radius: 999px;
  letter-spacing: 0;
}

.reference-home .site-nav-list a.nav-cta {
  color: #111;
  background: linear-gradient(135deg, #f1c86c, #a5792d);
  border-color: rgba(247, 224, 159, 0.55);
}

.reference-home #lang-switch {
  width: auto;
  min-width: 5rem;
  padding-inline: 0.8rem;
}

.reference-photo {
  min-height: 0;
  height: 100%;
  margin: 0;
  border-radius: inherit;
  background: #17130f;
}

.reference-photo picture,
.reference-photo source,
.reference-photo img,
.reference-photo-img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  filter: none !important;
  border-radius: inherit;
}

.reference-kicker {
  margin: 0 0 0.7rem;
  color: #e4b54f;
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.reference-hero-kicker span {
  display: block;
}

.reference-hero {
  min-height: clamp(700px, 78vh, 850px);
  display: grid;
  align-items: end;
  position: relative;
  overflow: hidden;
  border-radius: 0 0 18px 18px;
  background: #07070a;
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.36);
}

.reference-hero-media {
  position: absolute !important;
  inset: 0;
  min-height: 100%;
  margin: 0;
  transform: none !important;
  border-radius: 0;
}

.reference-hero-photo,
.reference-hero-photo picture,
.reference-hero-photo img {
  min-height: 100%;
  border-radius: 0;
}

.reference-hero-photo img {
  object-position: 72% center;
}

.reference-hero-overlay {
  background:
    linear-gradient(90deg, rgba(6, 6, 9, 0.84) 0%, rgba(6, 6, 9, 0.48) 36%, rgba(6, 6, 9, 0.02) 72%, rgba(6, 6, 9, 0.06) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.22));
}

.reference-hero-copy {
  position: relative;
  z-index: 4;
  width: min(680px, 92%);
  padding: clamp(2rem, 5vw, 5.2rem);
  margin: 0;
}

.reference-hero-script {
  margin: 0 0 0.25rem;
  color: #ffe4a4;
  font-size: clamp(1.45rem, 2.8vw, 2.75rem);
  line-height: 1.22;
  font-family: var(--font-display);
  white-space: nowrap;
}

.reference-hero-script-mobile {
  display: none;
}

.reference-hero h1 {
  margin: 0 0 1.2rem;
  font-size: clamp(4rem, 9.2vw, 8.8rem);
  line-height: 0.84;
  letter-spacing: 0.05em;
  color: #fff3c4;
  text-shadow: 0 0 30px rgba(211, 168, 90, 0.28);
}

.reference-hero-description {
  max-width: 650px;
  margin: 0;
  color: #f8eddb;
  font-size: clamp(0.98rem, 1.1vw, 1.12rem);
  line-height: 1.95;
  white-space: normal;
}

.reference-hero-actions {
  margin-top: 1.6rem;
}

.reference-hero-actions .button:first-child {
  box-shadow: 0 0 0 rgba(229, 178, 79, 0);
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease, background-color 0.24s ease;
}

.reference-hero-actions .button:first-child:hover,
.reference-hero-actions .button:first-child:focus-visible {
  transform: translateY(-4px);
  border-color: #ffe4a4;
  box-shadow:
    0 0 18px rgba(229, 178, 79, 0.58),
    0 14px 34px rgba(229, 178, 79, 0.26);
}

.reference-hero-actions .button:first-child:active {
  transform: translateY(-1px) scale(0.985);
  box-shadow: 0 0 12px rgba(229, 178, 79, 0.42);
}

.reference-hero-indicators {
  position: absolute;
  right: clamp(1rem, 3vw, 2.6rem);
  bottom: clamp(1rem, 2vw, 1.6rem);
  z-index: 5;
}

.reference-hero-indicators button {
  width: 46px;
  height: 18px;
  color: transparent;
  border: 1px solid rgba(255, 228, 164, 0.38);
  background: rgba(255, 255, 255, 0.18);
}

.reference-hero-indicators button.active {
  background: #e5b24f;
}

.reference-feature-row {
  margin-top: clamp(1.2rem, 2.4vw, 2rem);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.reference-feature,
.reference-menu-card,
.reference-gallery-card,
.reference-access-copy,
.reference-map-card {
  border: 1px solid rgba(211, 168, 90, 0.28);
  background: linear-gradient(180deg, rgba(24, 22, 20, 0.88), rgba(11, 10, 12, 0.92));
  box-shadow: 0 18px 55px rgba(0, 0, 0, 0.28);
}

.reference-feature {
  min-height: 180px;
  padding: clamp(1rem, 2vw, 1.45rem);
  display: grid;
  gap: 0.55rem;
  align-content: start;
}

.reference-feature-icon {
  width: 66px;
  height: 66px;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 0 12px currentColor);
}

.reference-feature-pink { border-color: rgba(255, 100, 170, 0.38); }
.reference-feature-pink .reference-feature-icon { color: #ff82bf; }
.reference-feature-green { border-color: rgba(85, 215, 155, 0.35); }
.reference-feature-green .reference-feature-icon { color: #7bdca8; }
.reference-feature-orange { border-color: rgba(255, 157, 78, 0.35); }
.reference-feature-orange .reference-feature-icon { color: #ffb067; }

.reference-feature h2,
.reference-section-head h2,
.reference-concept h2,
.reference-access h2,
.reference-reservation h2 {
  margin: 0;
  color: #fff0b7;
  font-size: clamp(1.55rem, 2.6vw, 2.45rem);
  line-height: 1.18;
  letter-spacing: 0.03em;
  text-transform: none;
}

.reference-feature p,
.reference-concept p,
.reference-menu-card p,
.reference-access p,
.reference-info-list,
.reference-reservation p {
  color: #eadfcb;
  line-height: 1.85;
  letter-spacing: 0;
}

.reference-concept {
  margin-top: clamp(2.8rem, 5vw, 5rem);
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
  gap: clamp(1.4rem, 3vw, 3rem);
  align-items: center;
}

.reference-section-copy {
  padding: clamp(1rem, 2vw, 1.6rem) 0;
}

.reference-list {
  margin: 1.3rem 0 1.5rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.5rem;
}

.reference-list li {
  color: #f2e6cf;
  border-left: 2px solid #d3a85a;
  padding-left: 0.75rem;
}

.reference-concept-media {
  min-height: clamp(420px, 48vw, 600px);
  border-radius: 10px;
  overflow: hidden;
}

.reference-menu,
.reference-gallery,
.reference-access {
  margin-top: clamp(2.8rem, 5vw, 5rem);
}

.reference-section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  margin-bottom: 1.1rem;
}

.reference-menu-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  contain: paint;
}

html[dir="rtl"] .reference-menu-grid {
  direction: ltr;
}

html[dir="rtl"] .reference-menu-card {
  direction: rtl;
}

.reference-menu-card {
  overflow: hidden;
  border-radius: 8px;
  transition: transform 0.26s ease, border-color 0.26s ease, box-shadow 0.26s ease;
}

.reference-menu-card .reference-photo {
  height: clamp(300px, 29vw, 410px);
  border-radius: 0;
}

.reference-menu-card .reference-photo-img {
  transition: transform 0.32s ease, filter 0.32s ease;
}

.reference-menu-card:hover,
.reference-menu-card:focus-within {
  transform: translateY(-5px);
  border-color: rgba(255, 228, 164, 0.56);
  box-shadow:
    0 0 18px rgba(229, 178, 79, 0.18),
    0 22px 60px rgba(0, 0, 0, 0.38);
}

.reference-menu-card:hover .reference-photo-img,
.reference-menu-card:focus-within .reference-photo-img {
  transform: scale(1.035);
}

.reference-card-copy {
  padding: 1rem 1.05rem 1.2rem;
}

.reference-card-copy span {
  color: #e5b24f;
  font-size: 0.73rem;
  letter-spacing: 0.14em;
}

.reference-card-copy h3,
.reference-gallery-card h3 {
  margin: 0.25rem 0 0.45rem;
  color: #fff0b7;
  font-size: clamp(1.2rem, 1.7vw, 1.55rem);
  line-height: 1.22;
}

.reference-menu-pink { border-color: rgba(255, 100, 170, 0.35); }
.reference-menu-blue { border-color: rgba(115, 175, 255, 0.35); }
.reference-menu-green { border-color: rgba(85, 215, 155, 0.35); }

.reference-gallery-track {
  display: grid;
  grid-template-columns: repeat(4, minmax(280px, 1fr));
  gap: 1rem;
  overflow-x: auto;
  padding-bottom: 0.8rem;
  scroll-snap-type: x mandatory;
  contain: paint;
}

html[dir="rtl"] .reference-gallery-track {
  direction: ltr;
}

html[dir="rtl"] .reference-gallery-card {
  direction: rtl;
}

.reference-gallery-card {
  min-width: 280px;
  border-radius: 8px;
  overflow: hidden;
  scroll-snap-align: start;
}

.reference-gallery-card .reference-photo {
  height: clamp(280px, 26vw, 380px);
  border-radius: 0;
}

.reference-gallery-card h3 {
  padding: 0.9rem 1rem 1rem;
}

.reference-access {
  display: grid;
  grid-template-columns: minmax(260px, 0.86fr) minmax(340px, 1.1fr) minmax(240px, 0.72fr);
  gap: 1rem;
  align-items: stretch;
}

.reference-access-copy,
.reference-map-card {
  border-radius: 8px;
  padding: clamp(1rem, 2vw, 1.4rem);
}

.reference-info-list {
  margin: 1.2rem 0 1.4rem;
  display: grid;
  gap: 0.75rem;
}

.reference-info-list div {
  display: grid;
  grid-template-columns: 6.5rem 1fr;
  gap: 0.75rem;
  border-bottom: 1px solid rgba(211, 168, 90, 0.22);
  padding-bottom: 0.55rem;
}

.reference-info-list dt {
  color: #d3a85a;
  font-weight: 700;
}

.reference-info-list dd {
  margin: 0;
}

.reference-map-card {
  position: relative;
  min-height: 390px;
  overflow: hidden;
  padding: 0;
}

.reference-map-card .reference-photo {
  border-radius: 0;
}

.reference-fake-map {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 390px;
  display: block;
  background:
    radial-gradient(circle at 24% 18%, rgba(255, 191, 88, 0.18), transparent 40%),
    radial-gradient(circle at 78% 75%, rgba(255, 154, 60, 0.1), transparent 38%),
    linear-gradient(145deg, rgba(18, 16, 14, 0.9) 0%, rgba(11, 10, 12, 0.96) 56%, rgba(8, 7, 9, 0.94) 100%);
  overflow: hidden;
}

.fake-map-glow {
  position: absolute;
  inset: -8% -8% auto auto;
  width: 54%;
  height: 54%;
  transform: rotate(-8deg);
  background: radial-gradient(circle, rgba(255, 196, 124, 0.28), rgba(255, 196, 124, 0));
  filter: blur(10px);
}

.fake-map-grid {
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(211, 168, 90, 0.12) 0,
      rgba(211, 168, 90, 0.12) 1px,
      transparent 1px,
      transparent 28px
    ),
    repeating-linear-gradient(
      0deg,
      rgba(211, 168, 90, 0.08) 0,
      rgba(211, 168, 90, 0.08) 1px,
      transparent 1px,
      transparent 28px
    );
  mix-blend-mode: soft-light;
  opacity: 0.55;
}

.fake-map-road {
  position: absolute;
  border-radius: 1000px;
  background: linear-gradient(90deg, rgba(42, 38, 36, 0), rgba(211, 168, 90, 0.6), rgba(42, 38, 36, 0));
}

.fake-road-main {
  top: 52%;
  left: -4%;
  width: 108%;
  height: 44px;
}

.fake-road-branch {
  top: 24%;
  left: 56%;
  width: 44px;
  height: 78%;
  background: linear-gradient(0deg, rgba(42, 38, 36, 0), rgba(211, 168, 90, 0.6), rgba(42, 38, 36, 0));
}

.fake-map-intersection {
  position: absolute;
  top: 49%;
  left: 55.5%;
  width: 28px;
  height: 28px;
  margin-top: -14px;
  margin-left: -14px;
  border-radius: 50%;
  background: rgba(255, 228, 164, 0.92);
  box-shadow: 0 0 22px rgba(255, 228, 164, 0.58);
}

.fake-map-label {
  position: absolute;
  padding: 0.38rem 0.58rem;
  border: 1px solid rgba(255, 228, 164, 0.4);
  background: rgba(9, 7, 8, 0.64);
  font-size: 0.76rem;
  color: #ffe7b6;
  letter-spacing: 0.08em;
  font-family: var(--font-ui);
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
}

.fake-map-label-left {
  top: 15%;
  left: 7%;
}

.fake-map-label-right {
  top: 12%;
  right: 8%;
}

.fake-map-label-landmark {
  left: 50%;
  transform: translateX(-50%);
  bottom: 8%;
}

.fake-map-pin {
  position: absolute;
  left: 55%;
  top: 45%;
  transform: translate(-50%, -100%);
  display: grid;
  justify-items: center;
  z-index: 1;
}

.fake-map-pin-core {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #150f0f;
  background: radial-gradient(circle at 30% 25%, #ffe4a8, #b47c1e);
  border: 2px solid rgba(255, 228, 164, 0.88);
  font-weight: 700;
  font-family: var(--font-ui);
  box-shadow: 0 0 26px rgba(255, 196, 115, 0.75);
}

.fake-map-pin-tail {
  width: 12px;
  height: 12px;
  margin-top: -2px;
  transform: perspective(90px) rotateX(60deg);
  border-radius: 0 0 20px 20px;
  background: linear-gradient(to bottom, rgba(255, 228, 164, 0.85), rgba(255, 228, 164, 0));
}

.fake-map-pin-label {
  margin-top: 0.25rem;
  padding: 0.16rem 0.45rem;
  border-radius: 999px;
  background: rgba(20, 18, 16, 0.68);
  color: #ffeec2;
  font-size: 0.74rem;
  letter-spacing: 0.09em;
  border: 1px solid rgba(255, 228, 164, 0.42);
  font-family: var(--font-ui);
}

.reference-panel-subtitle {
  margin: 0.2rem 0 0.85rem;
  color: #eadfcb;
  line-height: 1.4;
}

.store-payment {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.store-payment span {
  display: block;
}

.reference-reservation {
  position: relative;
  min-height: clamp(330px, 36vw, 440px);
  margin-top: clamp(2.8rem, 5vw, 5rem);
  overflow: hidden;
  border-radius: 8px;
  padding: clamp(1.4rem, 4vw, 3rem);
  display: grid;
  grid-template-columns: 55% minmax(0, 1fr);
  align-items: stretch;
  gap: 1.5rem;
  isolation: isolate;
}

.reference-reservation::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(6, 6, 9, 0.78), rgba(6, 6, 9, 0.22));
}

.reference-reservation figure.reference-cta-photo {
  position: absolute;
  inset: 0;
  width: 55%;
  max-width: 55%;
  min-width: 55%;
  right: auto;
  z-index: -2;
  border-radius: 0;
  overflow: hidden;
}

.reference-reservation figure.reference-cta-photo > picture > img.reference-photo-img {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 100% !important;
  height: 100%;
  object-fit: cover;
  filter: brightness(1.09) contrast(1.04) saturate(1.03);
  box-shadow: inset 0 0 90px rgba(255, 255, 255, 0.05);
}

.reference-reservation figure.reference-cta-photo::before,
.reference-reservation figure.reference-cta-photo::after {
  content: '';
  position: absolute;
  left: 52%;
  pointer-events: none;
  width: 38%;
  height: 48%;
  opacity: 0.22;
  mix-blend-mode: screen;
}

.reference-reservation figure.reference-cta-photo::before {
  top: 14%;
  background: radial-gradient(circle at 35% 70%, rgba(255, 226, 176, 0.42) 0 18%, rgba(255, 226, 176, 0) 45%),
    radial-gradient(circle at 70% 30%, rgba(255, 214, 150, 0.22) 0 12%, rgba(255, 214, 150, 0) 40%);
  filter: blur(6px);
  animation: reservation-steam 7s ease-in-out infinite;
}

.reference-reservation figure.reference-cta-photo::after {
  top: 24%;
  left: 66%;
  width: 24%;
  height: 36%;
  background: radial-gradient(circle at 32% 62%, rgba(255, 236, 208, 0.32) 0 14%, rgba(255, 236, 208, 0) 40%),
    radial-gradient(circle at 70% 30%, rgba(255, 248, 221, 0.2) 0 10%, rgba(255, 248, 221, 0) 36%);
  filter: blur(8px);
  animation: reservation-steam 8s ease-in-out infinite 1.2s;
}

.reference-reservation .reservation-kicker-inline {
  display: inline-flex;
  align-items: baseline;
  gap: 0.45rem;
  color: #f6dca8;
}

.reservation-kicker-icon {
  font-size: 0.98rem;
  line-height: 1;
  transform: translateY(0.05em);
}

.reservation-title-wrap .brand-title {
  display: inline-flex;
  align-items: baseline;
  gap: 0.2rem;
  line-height: 1.2;
}

.reference-reservation-copy {
  max-width: min(720px, 100%);
  position: relative;
  z-index: 1;
}

.reference-reservation-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
  position: relative;
  z-index: 1;
}

.reservation-title-icon {
  display: none;
}

.reservation-title-text {
  display: block;
  line-height: 1.2;
  color: #fff0b7;
}

.reservation-title-break {
  display: inline;
}

.reservation-title-bottom {
  display: inline;
}

.reservation-button-icon {
  width: 1.23em;
  height: 1.23em;
}

.reference-reservation .button,
.reference-reservation .button.secondary {
  width: min(240px, 100%);
  min-height: 3rem;
  justify-content: center;
  align-items: center;
  text-wrap: balance;
}

.reference-reservation .button.reservation-primary {
  width: min(285px, 100%);
  min-height: 3.3rem;
  font-size: 1.06rem;
  padding-inline: 1.3rem;
}

.reference-reservation .button.secondary {
  margin-top: 0;
}

.reference-reservation .button:hover,
.reference-reservation .button.secondary:hover,
.reference-reservation .button:focus-visible,
.reference-reservation .button.secondary:focus-visible {
  border-color: #ffe4a4;
  box-shadow: 0 0 18px rgba(229, 178, 79, 0.55);
}

@keyframes reservation-steam {
  0% {
    transform: translate(0, 2%);
    opacity: 0.14;
  }
  45% {
    transform: translate(-2%, -2%);
    opacity: 0.24;
  }
  100% {
    transform: translate(-1%, 5%);
    opacity: 0.14;
  }
}

.reference-footer {
  width: min(1440px, 100% - 2rem);
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto minmax(260px, 1fr);
  gap: 1rem;
  align-items: center;
  padding: 2rem 1rem;
}

.reference-footer-cta {
  display: none;
}

.reference-footer-main {
  display: contents;
}

.reference-footer-reading {
  display: none;
}

.reference-footer-brand p,
.reference-footer-copy {
  margin: 0.25rem 0 0;
  color: #cfc0a5;
}

.reference-footer-social,
.reference-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
}

.reference-footer a {
  text-decoration: none;
  color: #f1dfb8;
}

.reference-footer-social.is-empty {
  display: none;
}

.reference-footer-copy-desktop {
  display: none;
}

.reference-footer-copy {
  text-align: right;
}

@media (max-width: 1024px) {
  .reference-home .site-nav {
    min-height: 70px;
  }

  .reference-home .site-nav-list {
    overflow-x: auto;
    flex: 1;
  }

  .reference-concept,
  .reference-access,
  .reference-reservation,
  .reference-footer {
    grid-template-columns: 1fr;
  }

  .reference-menu-grid {
    grid-template-columns: repeat(3, minmax(220px, 1fr));
    overflow-x: auto;
  }

  .reference-menu-card {
    min-width: 220px;
  }

  .reference-feature-icon {
    width: 56px;
    height: 56px;
  }

  .reference-footer-copy {
    text-align: left;
  }
}

@media (max-width: 768px) {
  .bgm-widget {
    right: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom));
  }

  .bgm-toggle {
    min-height: 44px;
    padding: 0.66rem 0.9rem;
    font-size: 0.82rem;
  }

  .bgm-now-playing {
    max-width: min(230px, calc(100vw - 32px));
    font-size: 0.66rem;
  }

  .reference-home .site-container {
    width: min(100% - 1rem, 100%);
  }

  .reference-home .site-nav {
    flex-wrap: wrap;
    height: auto;
    padding-block: 0.45rem;
  }

  .reference-home .site-brand {
    flex: 1;
  }

  .reference-home #lang-switch {
    min-height: 2.2rem;
    padding-block: 0.3rem;
  }

  .reference-home .site-nav-list {
    order: 3;
    width: 100%;
  }

  .reference-home .site-nav-list a {
    font-size: 0.78rem;
  }

  .reference-hero {
    min-height: 660px;
  }

  .reference-hero-overlay {
    background: linear-gradient(180deg, rgba(6, 6, 9, 0.36), rgba(6, 6, 9, 0.78));
  }

  .reference-hero-copy {
    width: 100%;
    padding: 1.4rem 1.05rem 2.2rem;
  }

  .reference-hero h1 {
    font-size: clamp(3.25rem, 18vw, 5.4rem);
    line-height: 0.9;
  }

  .reference-hero-description {
    font-size: 0.96rem;
  }

  .reference-feature-icon {
    width: 52px;
    height: 52px;
  }

  .reference-feature-row,
  .reference-menu-grid {
    grid-template-columns: 1fr;
  }

  .reference-menu-card .reference-photo,
  .reference-gallery-card .reference-photo {
    height: clamp(280px, 68vw, 360px);
  }

  .reference-section-head {
    align-items: start;
    flex-direction: column;
  }

  .reference-access-copy,
  .reference-map-card {
    min-height: auto;
  }

  .reference-info-list div {
    grid-template-columns: 5rem 1fr;
  }

  .reference-reservation-actions,
  .reference-reservation .button {
    width: 100%;
  }

  .reference-reservation {
    grid-template-columns: 1fr;
  }

  .reference-reservation .reference-cta-photo {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    right: 0;
  }

  .reservation-title-break {
    display: inline;
  }

  .reservation-title-top,
  .reservation-title-bottom {
    display: inline;
  }
}

@media (min-width: 1025px) {
  .reservation-title-text {
    display: inline-flex;
    flex-direction: column;
  }
}

@media (max-width: 390px) {
  .reference-hero {
    min-height: 630px;
  }

  .reference-hero-script {
    font-size: 1.25rem;
    white-space: normal;
  }

  .reference-feature-icon {
    width: 47px;
    height: 47px;
  }

  .reference-kicker {
    font-size: 0.72rem;
    letter-spacing: 0.1em;
  }

  .reference-feature,
  .reference-access-copy,
  .reference-card-copy {
    padding: 0.95rem;
  }
}

/* Phase2-5 image visibility refinement */
.reference-home .reference-photo,
.reference-home .reference-hero-media,
.reference-home .reference-concept-visual,
.reference-home .reference-menu-photo,
.reference-home .reference-gallery-photo,
.reference-home .reference-map-photo,
.reference-home .reference-reservation-photo {
  background: linear-gradient(135deg, rgba(58, 32, 16, .82), rgba(16, 10, 7, .86));
  isolation: isolate;
}

.reference-home .reference-photo::before,
.reference-home .reference-photo::after,
.reference-home .reference-hero-media::before,
.reference-home .reference-hero-media::after,
.reference-home .reference-concept-visual::before,
.reference-home .reference-concept-visual::after,
.reference-home .reference-menu-photo::before,
.reference-home .reference-menu-photo::after,
.reference-home .reference-gallery-photo::before,
.reference-home .reference-gallery-photo::after,
.reference-home .reference-map-photo::before,
.reference-home .reference-map-photo::after,
.reference-home .reference-reservation-photo::before,
.reference-home .reference-reservation-photo::after {
  content: none !important;
  display: none !important;
}

.reference-home .reference-photo picture,
.reference-home .reference-photo-img,
.reference-home .reference-hero-media picture,
.reference-home .reference-hero-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100%;
  min-height: 100%;
  opacity: 1 !important;
  visibility: visible !important;
  mix-blend-mode: normal !important;
  filter: brightness(1.2) contrast(1.08) saturate(1.08) !important;
}

.reference-home .reference-photo-img,
.reference-home .reference-hero-media img {
  object-fit: cover !important;
  object-position: 72% 50% !important;
  position: relative;
  z-index: 2;
}

.reference-home .reference-hero-media img {
  object-position: 78% 50% !important;
}

.reference-home .reference-concept-visual,
.reference-home .reference-menu-photo,
.reference-home .reference-gallery-photo,
.reference-home .reference-map-photo {
  aspect-ratio: 16 / 10;
  min-height: 240px;
}

.reference-home .reference-menu-photo,
.reference-home .reference-gallery-photo {
  height: auto !important;
}

.reference-home .reference-gallery-photo img,
.reference-home .reference-map-photo img {
  object-position: 62% 50% !important;
}

.reference-home .reference-reservation-photo img {
  object-position: 70% 50% !important;
}

.reference-home .hero-slide::before,
.reference-home .hero-slide::after {
  opacity: .28 !important;
  pointer-events: none;
}

@media (max-width: 768px) {
  .reference-home .reference-concept-visual,
  .reference-home .reference-menu-photo,
  .reference-home .reference-gallery-photo,
  .reference-home .reference-map-photo {
    min-height: 210px;
  }

  .reference-home .reference-hero h1 {
    font-size: clamp(2.85rem, 13.5vw, 4.25rem);
    letter-spacing: 0.01em;
    line-height: 0.94;
  }

  .reference-home .reference-hero-copy {
    gap: 0.82rem;
  }
}

/* Phase2-5 figure/img class separation safeguard */
.reference-home figure.reference-photo {
  display: block;
  overflow: hidden;
  position: relative;
}

.reference-home figure.reference-photo > picture {
  display: block !important;
  height: 100% !important;
  inset: 0 !important;
  position: absolute !important;
  width: 100% !important;
  z-index: 1;
}

.reference-home figure.reference-photo > picture > img.reference-photo-img {
  aspect-ratio: auto !important;
  background: transparent !important;
  display: block !important;
  height: 100% !important;
  inset: 0 !important;
  isolation: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  min-width: 0 !important;
  object-fit: cover !important;
  opacity: 1 !important;
  position: absolute !important;
  transform: none !important;
  visibility: visible !important;
  width: 100% !important;
  z-index: 1;
}

.reference-home .reference-hero-media,
.reference-home .reference-hero-media .hero-slide {
  overflow: hidden;
  position: absolute !important;
}

.reference-home .reference-hero-media {
  inset: 0 !important;
}

.reference-home .reference-hero-media .hero-slide {
  inset: 0 !important;
}

.reference-home .reference-hero-media figure.reference-photo {
  height: 100% !important;
  inset: 0 !important;
  position: absolute !important;
  width: 100% !important;
}

.reference-home .reference-hero-media figure.reference-photo > picture > img.reference-photo-img {
  object-position: 78% 50% !important;
}

.reference-home #home-cta-secondary {
  display: none !important;
}

/* Reservation CTA remediation */
.reference-reservation {
  grid-template-columns: minmax(0, 55%) minmax(0, 45%);
}

.reference-reservation::after {
  background: linear-gradient(90deg, rgba(6, 6, 9, 0.02) 0%, rgba(6, 6, 9, 0.04) 40%, rgba(6, 6, 9, 0.45) 56%, rgba(6, 6, 9, 0.88) 100%);
}

.reference-reservation figure.reference-cta-photo {
  position: absolute !important;
  inset: 0 auto 0 0 !important;
  width: 55% !important;
  max-width: 55% !important;
  min-width: 55% !important;
  height: 100% !important;
  z-index: 0 !important;
  background: transparent !important;
  filter: none !important;
  pointer-events: none;
}

.reference-reservation .reservation-photo-panel {
  position: absolute !important;
  inset: 0 auto 0 0 !important;
  width: 55% !important;
  max-width: 55% !important;
  min-width: 55% !important;
  height: 100% !important;
  z-index: 0;
  pointer-events: none;
  background-image: url("../../images/muncheese-dog.png");
  background-size: cover;
  background-position: 66% 52%;
  background-repeat: no-repeat;
  filter: brightness(1.1) contrast(1.04) saturate(1.03);
}

.reference-reservation figure.reference-cta-photo > picture {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

.reference-reservation figure.reference-cta-photo > picture > img.reference-photo-img {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-position: 66% 52% !important;
  filter: brightness(1.1) contrast(1.04) saturate(1.03) !important;
}

.reference-reservation-copy {
  grid-column: 2;
  align-self: center;
  padding-left: clamp(0.35rem, 1.6vw, 1.4rem);
  display: flex;
  flex-direction: column;
  gap: clamp(0.72rem, 1.1vw, 1rem);
}

.reference-reservation .reservation-kicker-inline {
  align-items: center;
  gap: 0.56rem;
  margin-bottom: 0;
}

.reservation-kicker-icon {
  display: block;
  width: clamp(1.34rem, 1.65vw, 1.66rem);
  height: clamp(1.34rem, 1.65vw, 1.66rem);
  object-fit: contain;
  flex: 0 0 auto;
  filter: drop-shadow(0 0 8px rgba(232, 170, 62, 0.5));
  transform: scale(1.5);
  transform-origin: center;
}

.reservation-title-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.08em;
  line-height: 1.14;
}

.reservation-title-wrap .brand-title {
  line-height: 1.12;
}

.reference-reservation-copy > p:not(.reservation-kicker-inline) {
  margin-top: 0;
  max-width: 34rem;
}

.reference-reservation-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(0.72rem, 1.2vw, 1rem);
  margin-top: clamp(0.2rem, 0.6vw, 0.55rem);
}

.reference-reservation-actions .button:not(.secondary) {
  min-width: clamp(12.2rem, 15vw, 14rem);
  padding-inline: clamp(1.35rem, 2vw, 1.75rem);
  color: #130d05;
  background: linear-gradient(135deg, #ffd56f 0%, #c5923c 52%, #f0bd58 100%);
  border-color: rgba(255, 226, 154, 0.72);
  box-shadow: 0 0 0 1px rgba(255, 224, 155, 0.16), 0 12px 28px rgba(198, 138, 42, 0.2);
}

.reference-reservation-actions .button:not(.secondary):hover {
  box-shadow: 0 0 0 1px rgba(255, 231, 172, 0.34), 0 0 24px rgba(232, 170, 62, 0.26), 0 14px 30px rgba(198, 138, 42, 0.24);
  transform: translateY(-1px);
}

.reference-reservation-actions .button.secondary {
  min-width: clamp(10.8rem, 13vw, 12.2rem);
}

@media (max-width: 860px) {
  .reference-reservation {
    grid-template-columns: 1fr;
    gap: clamp(1rem, 3vw, 1.4rem);
  }

  .reference-reservation::after {
    background: linear-gradient(180deg, rgba(6, 6, 9, 0.02) 0%, rgba(6, 6, 9, 0.06) 38%, rgba(6, 6, 9, 0.82) 100%);
  }

  .reference-reservation figure.reference-cta-photo {
    position: relative;
    inset: auto;
    grid-column: 1;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    min-height: clamp(210px, 46vw, 330px);
    aspect-ratio: 16 / 9;
    z-index: 0;
    border-radius: 6px;
  }

  .reference-reservation .reservation-photo-panel {
    position: relative !important;
    inset: auto !important;
    grid-column: 1;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: clamp(210px, 46vw, 330px);
    aspect-ratio: 16 / 9;
    border-radius: 6px;
    background-position: 64% 52%;
  }

  .reference-reservation figure.reference-cta-photo > picture,
  .reference-reservation figure.reference-cta-photo > picture > img.reference-photo-img {
    height: 100%;
  }

  .reference-reservation figure.reference-cta-photo > picture > img.reference-photo-img {
    object-position: 64% 52% !important;
  }

  .reference-reservation-copy {
    grid-column: 1;
    padding-left: 0;
  }
}

@media (max-width: 480px) {
  .reference-reservation-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .reference-reservation-actions .button,
  .reference-reservation-actions .button.secondary {
    width: 100%;
    min-width: 0;
  }
}

/* Mobile UX Phase 1: phone-only layout */
.mobile-menu-toggle {
  display: none;
}

.nav-item-mobile-only {
  display: none;
}

@media (max-width: 480px) {
  html,
  body {
    overflow-x: hidden;
  }

  .reference-home .site-container {
    width: min(100% - 1rem, 100%);
  }

  .reference-home .site-header {
    position: sticky;
    top: 0;
    z-index: 80;
    background: rgba(6, 6, 9, 0.92);
    backdrop-filter: blur(18px);
  }

  .reference-home .site-nav {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 0.48rem;
    min-height: 64px;
    padding-block: 0.5rem;
    flex-wrap: nowrap;
  }

  .reference-home .site-brand {
    min-width: 0;
    flex: none;
    font-size: clamp(0.9rem, 4.2vw, 1.08rem);
    letter-spacing: 0.09em;
    margin-right: 0;
  }

  .reference-home #lang-switch {
    display: none;
  }

  .mobile-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.46rem;
    min-height: 44px;
    padding: 0.58rem 0.74rem;
    border: 1px solid rgba(229, 178, 79, 0.46);
    border-radius: 999px;
    color: #f8df9d;
    background: rgba(18, 13, 8, 0.82);
    font: inherit;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: 0 0 18px rgba(229, 178, 79, 0.12);
  }

  .mobile-menu-toggle i,
  .mobile-menu-toggle i::before,
  .mobile-menu-toggle i::after {
    display: block;
    width: 15px;
    height: 1px;
    border-radius: 999px;
    background: currentColor;
    content: "";
    transition: transform 0.24s ease, opacity 0.24s ease;
  }

  .mobile-menu-toggle i {
    position: relative;
  }

  .mobile-menu-toggle i::before,
  .mobile-menu-toggle i::after {
    position: absolute;
    left: 0;
  }

  .mobile-menu-toggle i::before {
    transform: translateY(-5px);
  }

  .mobile-menu-toggle i::after {
    transform: translateY(5px);
  }

  .reference-home .site-nav.is-mobile-open .mobile-menu-toggle i {
    background: transparent;
  }

  .reference-home .site-nav.is-mobile-open .mobile-menu-toggle i::before {
    transform: rotate(42deg);
  }

  .reference-home .site-nav.is-mobile-open .mobile-menu-toggle i::after {
    transform: rotate(-42deg);
  }

  .reference-home .site-nav-list {
    order: initial;
    width: auto;
    flex: none;
    justify-content: flex-end;
    overflow: visible;
  }

  .reference-home .site-nav-list li {
    display: none;
  }

  .reference-home .site-nav-list .nav-item-cta {
    display: block;
  }

  .reference-home .site-nav-list a.nav-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.58rem 0.78rem;
    font-size: 0.76rem;
    box-shadow: 0 0 20px rgba(229, 178, 79, 0.18);
  }

  .reference-home .site-nav.is-mobile-open .site-nav-list {
    position: absolute;
    top: calc(100% + 0.45rem);
    left: 0;
    right: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.42rem;
    padding: 0.72rem;
    border: 1px solid rgba(229, 178, 79, 0.32);
    border-radius: 18px;
    background:
      radial-gradient(circle at top left, rgba(229, 178, 79, 0.16), transparent 38%),
      rgba(7, 7, 10, 0.96);
    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.48), 0 0 26px rgba(229, 178, 79, 0.12);
  }

  .reference-home .site-nav.is-mobile-open .site-nav-list li,
  .reference-home .site-nav.is-mobile-open .site-nav-list .nav-item-mobile-only {
    display: block;
  }

  .reference-home .site-nav.is-mobile-open .site-nav-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding: 0.78rem 0.9rem;
    border: 1px solid rgba(229, 178, 79, 0.16);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.035);
    color: #f5ead4;
    font-size: 0.9rem;
  }

  .reference-home .site-nav.is-mobile-open .site-nav-list a.nav-cta {
    justify-content: center;
    color: #120d07;
    background: linear-gradient(135deg, #f1c86c, #a5792d);
    border-color: rgba(247, 224, 159, 0.55);
  }

  .reference-hero {
    min-height: clamp(620px, 96svh, 760px);
    margin-top: 0.7rem;
    border-radius: 18px;
    overflow: hidden;
  }

  .reference-hero-media,
  .reference-hero .hero-slide,
  .reference-hero .hero-slide picture,
  .reference-hero .hero-slide img {
    width: 100%;
    height: 100%;
  }

  .reference-hero .hero-slide img {
    object-fit: cover;
    object-position: center center;
  }

  .reference-hero-overlay {
    background:
      linear-gradient(180deg, rgba(6, 6, 9, 0.06) 0%, rgba(6, 6, 9, 0.18) 38%, rgba(6, 6, 9, 0.88) 100%),
      radial-gradient(circle at 50% 18%, rgba(229, 178, 79, 0.14), transparent 42%);
  }

  .reference-hero-copy {
    min-height: clamp(620px, 96svh, 760px);
    justify-content: flex-end;
    gap: 0.78rem;
    padding: 1rem 0.92rem 1.2rem;
  }

  .reference-hero-kicker {
    gap: 0.32rem;
    font-size: 0.7rem;
    line-height: 1.45;
  }

  .reference-hero-script {
    font-size: clamp(1.26rem, 8vw, 1.86rem);
    line-height: 1.15;
    white-space: normal;
  }

  .reference-hero-script-desktop {
    display: none;
  }

  .reference-hero-script-mobile {
    display: inline;
  }

  .reference-hero h1 {
    max-width: 8ch;
    font-size: clamp(2.75rem, 16vw, 4.4rem);
    line-height: 0.92;
    letter-spacing: 0.02em;
  }

  .reference-hero-description {
    max-width: 30ch;
    font-size: 0.9rem;
    line-height: 1.68;
  }

  .reference-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.66rem;
    width: 100%;
  }

  .reference-hero-actions .button {
    width: 100%;
    min-height: 50px;
    justify-content: center;
  }

  .reference-hero-indicators {
    bottom: 1rem;
    right: 1rem;
    gap: 0.44rem;
  }

  .reference-hero-indicators button {
    min-width: 34px;
    min-height: 16px;
    padding-inline: 0.45rem;
  }

  .reference-feature-row {
    grid-template-columns: 1fr;
    gap: 0.82rem;
    margin-top: 1rem;
  }

  .reference-feature {
    width: 100%;
    min-height: 118px;
    padding: 1rem;
  }

  .reference-feature h2 {
    font-size: 1.12rem;
  }

  .reference-concept {
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
    margin-top: 3.2rem;
  }

  .reference-concept-media {
    order: 1;
    min-height: clamp(300px, 86vw, 380px);
    border-radius: 14px;
  }

  .reference-concept .reference-section-copy {
    order: 2;
    padding: 0 0.15rem;
  }

  .reference-concept p,
  .reference-concept li {
    font-size: 0.96rem;
    line-height: 1.9;
  }

  .reference-section-head {
    gap: 0.82rem;
    margin-bottom: 0.86rem;
  }

  .reference-section-head .button {
    width: 100%;
    min-height: 46px;
    justify-content: center;
  }

  .reference-menu-grid {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 85%;
    grid-template-columns: none;
    gap: 0.86rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 0.1rem;
    padding: 0 0.1rem 0.8rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .reference-menu-grid::-webkit-scrollbar {
    display: none;
  }

  .reference-menu-card {
    min-width: 0;
    scroll-snap-align: center;
  }

  .reference-menu-card .reference-photo {
    height: clamp(270px, 74vw, 330px);
  }

  .reference-card-copy {
    padding: 0.92rem 0.95rem 1.05rem;
  }

  .reference-gallery-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 86%;
    grid-template-columns: none;
    gap: 0.86rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 0.1rem;
    padding: 0 0.1rem 0.8rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .reference-gallery-track::-webkit-scrollbar {
    display: none;
  }

  .reference-gallery-card {
    min-width: 0;
    scroll-snap-align: center;
  }

  .reference-gallery-card .reference-photo {
    height: clamp(300px, 82vw, 370px);
  }

  .reference-access {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    margin-top: 3.2rem;
  }

  .reference-access-copy,
  .reference-map-card {
    width: 100%;
    padding: 1rem;
    border-radius: 14px;
  }

  .reference-map-card {
    min-height: clamp(300px, 88vw, 390px);
  }

  .reference-fake-map {
    min-height: clamp(270px, 80vw, 350px);
  }

  .reference-info-list div {
    grid-template-columns: minmax(4.8rem, 0.34fr) 1fr;
    gap: 0.7rem;
  }

  .store-payment {
    display: grid;
    gap: 0.18rem;
  }

  .store-payment span {
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .reference-reservation {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-inline: 0;
    padding: 1rem;
    border-radius: 18px;
  }

  .reference-reservation .reservation-photo-panel {
    width: 100% !important;
    min-height: clamp(280px, 82vw, 370px);
    aspect-ratio: 4 / 3;
    border-radius: 14px;
    background-position: 64% 52%;
  }

  .reference-reservation-copy {
    padding: 0 0.05rem;
    gap: 0.7rem;
  }

  .reservation-title-break {
    display: none;
  }

  .reference-reservation-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
    width: 100%;
  }

  .reference-reservation-actions .button,
  .reference-reservation-actions .button.secondary {
    width: 100%;
    min-height: 52px;
    justify-content: center;
  }

  .reference-footer {
    gap: 1.1rem;
    padding-bottom: calc(5.8rem + env(safe-area-inset-bottom));
  }

  .reference-footer-social {
    gap: 0.66rem;
  }

  .reference-footer-social a {
    min-width: 48px;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-inline: 0.78rem;
    border-radius: 999px;
  }

  .bgm-widget {
    right: max(12px, env(safe-area-inset-right));
    bottom: calc(14px + env(safe-area-inset-bottom));
    max-width: calc(100vw - 24px);
  }

  .bgm-toggle {
    min-height: 46px;
    padding: 0.68rem 0.9rem;
  }
}

@media (max-width: 360px) {
  .reference-home .site-container {
    width: min(100% - 0.72rem, 100%);
  }

  .reference-home .site-brand {
    font-size: 0.86rem;
    letter-spacing: 0.07em;
  }

  .mobile-menu-toggle span {
    max-width: 3.4rem;
  }

  .reference-home .site-nav-list a.nav-cta {
    padding-inline: 0.62rem;
    font-size: 0.72rem;
  }

  .reference-hero {
    min-height: 610px;
  }

  .reference-hero-copy {
    min-height: 610px;
    padding-inline: 0.78rem;
  }

  .reference-hero h1 {
    font-size: clamp(2.46rem, 15vw, 3.3rem);
  }

  .reference-menu-grid,
  .reference-gallery-track {
    grid-auto-columns: 88%;
  }

  .reference-info-list div {
    grid-template-columns: 1fr;
    gap: 0.24rem;
  }
}

/* Mobile UX Phase 1 additional tuning: phone/tablet-narrow only */
@media (max-width: 767px) {
  .reference-hero {
    height: 88vh;
    height: 88svh;
    min-height: 640px;
    max-height: 760px;
    overflow: hidden;
  }

  .reference-hero-copy {
    min-height: 640px;
    height: 88vh;
    height: 88svh;
    max-height: 760px;
    gap: clamp(0.52rem, 2.1vw, 0.8rem);
    padding: clamp(0.82rem, 2.6vw, 1.05rem) clamp(0.78rem, 3vw, 1rem) clamp(1.05rem, 3.2vw, 1.35rem);
  }

  .reference-hero .hero-slide img,
  .reference-hero .hero-slide .reference-photo-img {
    object-fit: cover;
    object-position: 50% 46% !important;
    transform: scale(1.08) !important;
    transform-origin: center center;
  }

  .reference-hero-description {
    max-width: 28ch;
    font-size: clamp(0.82rem, 3.1vw, 0.94rem);
    line-height: 1.58;
  }

  .reference-hero-actions {
    gap: 12px;
  }

  .reference-hero-actions .button,
  .reference-hero-actions .button.secondary {
    width: 100%;
    min-height: 50px;
    border-radius: 999px;
    text-align: center;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
  }

  .reference-hero-actions .button.secondary {
    color: #f8edd5;
    background: rgba(7, 7, 10, 0.76);
    border-color: rgba(229, 178, 79, 0.72);
    backdrop-filter: blur(10px);
  }

  .reference-concept {
    display: flex;
    flex-direction: column;
  }

  .reference-concept-media {
    order: 1;
    width: 100%;
    min-height: clamp(300px, 78vw, 420px);
    border-radius: 14px;
  }

  .reference-concept .reference-section-copy {
    order: 2;
  }

  .reference-menu-grid {
    grid-auto-columns: min(92%, 390px);
    gap: 14px;
    scroll-snap-type: x mandatory;
  }

  .reference-menu-card {
    scroll-snap-align: start;
  }

  .reference-menu-card .reference-photo {
    height: clamp(310px, 78vw, 400px);
  }

  .reference-card-copy {
    padding: 1rem 1rem 1.18rem;
  }

  .reference-gallery-track {
    grid-auto-columns: calc(100% - 18px);
    gap: 14px;
    padding-inline: 0;
    scroll-padding-inline: 0;
    scroll-snap-type: x mandatory;
  }

  .reference-gallery-card {
    scroll-snap-align: start;
  }

  .reference-gallery-card .reference-photo {
    height: clamp(320px, 82vw, 410px);
  }

  .reference-access {
    display: flex;
    flex-direction: column;
  }

  .reference-access-copy {
    order: 1;
  }

  .reference-map-card {
    order: 2;
  }

  .reference-info-panel {
    order: 3;
  }

  .reference-reservation {
    grid-template-columns: 1fr;
    gap: 1.05rem;
  }

  .reference-reservation .reservation-photo-panel {
    min-height: clamp(310px, 84vw, 430px);
    aspect-ratio: 4 / 3;
  }

  .reference-reservation-copy {
    align-items: center;
    text-align: center;
    padding-inline: clamp(0.1rem, 1.2vw, 0.35rem);
  }

  .reservation-title-wrap {
    align-items: center;
    text-align: center;
  }

  .reservation-title-break {
    display: none;
  }

  .reservation-title-top,
  .reservation-title-bottom {
    display: block;
    white-space: nowrap;
  }

  .reservation-title-text {
    display: block;
    font-size: clamp(1.82rem, 8.4vw, 2.65rem);
    line-height: 1.18;
  }

  .reference-reservation-copy > p:not(.reservation-kicker-inline) {
    max-width: 31ch;
  }

  .reference-reservation-actions {
    width: 100%;
    align-items: stretch;
  }

  .reference-reservation-actions .button,
  .reference-reservation-actions .button.secondary {
    width: 100%;
    min-height: 52px;
    justify-content: center;
  }

  .reference-footer-social {
    gap: 0.78rem;
    flex-wrap: wrap;
  }

  .reference-footer-social a {
    min-width: 54px;
    min-height: 54px;
    font-size: 1.12em;
  }
}

@media (max-width: 360px) {
  .reference-hero {
    min-height: 620px;
    max-height: 720px;
  }

  .reference-hero-copy {
    min-height: 620px;
    max-height: 720px;
  }

  .reference-hero .hero-slide img,
  .reference-hero .hero-slide .reference-photo-img {
    object-position: 52% 45% !important;
    transform: scale(1.1) !important;
  }

  .reference-menu-grid {
    grid-auto-columns: min(92%, 360px);
    gap: 12px;
  }

  .reference-gallery-track {
    grid-auto-columns: calc(100% - 15px);
    gap: 12px;
  }

  .reservation-title-text {
    font-size: clamp(1.62rem, 8.1vw, 2.1rem);
  }

  .reference-footer-social a {
    min-width: 50px;
    min-height: 50px;
  }
}

@media (min-width: 768px) {
  .site-footer {
    margin-top: 0;
    padding: 0;
    border-top: 1px solid rgba(211, 168, 90, 0.28);
    background:
      linear-gradient(180deg, rgba(8, 7, 5, 0.98), rgba(2, 2, 3, 1));
    color: #d6c6a5;
  }

  .reference-footer {
    width: 100%;
    display: block;
    padding: 0;
  }

  .reference-footer-cta {
    position: relative;
    isolation: isolate;
    min-height: clamp(128px, 10vw, 158px);
    display: grid;
    grid-template-columns: minmax(300px, 1fr) minmax(260px, 0.58fr);
    align-items: center;
    gap: clamp(1.5rem, 4vw, 4rem);
    overflow: hidden;
    padding: clamp(1.2rem, 2vw, 1.7rem) clamp(2rem, 6vw, 5rem);
    border-bottom: 1px solid rgba(211, 168, 90, 0.34);
    background: #050505;
  }

  .reference-footer-cta::before,
  .reference-footer-cta::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    pointer-events: none;
  }

  .reference-footer-cta::before {
    background-image:
      linear-gradient(90deg, rgba(3, 3, 4, 0.9) 0%, rgba(3, 3, 4, 0.62) 42%, rgba(3, 3, 4, 0.9) 100%),
      var(--footer-cta-image);
    background-size: cover;
    background-position: center;
    opacity: 0.72;
    transform: scale(1.02);
  }

  .reference-footer-cta::after {
    z-index: -1;
    background:
      linear-gradient(90deg, transparent 0 50%, rgba(211, 168, 90, 0.44) 50%, transparent calc(50% + 1px)),
      radial-gradient(circle at 68% 50%, rgba(229, 178, 79, 0.2), transparent 34%);
  }

  .reference-footer-cta-copy {
    display: grid;
    gap: 0.18rem;
    color: #e8bd65;
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 2.6vw, 2.65rem);
    font-weight: 700;
    line-height: 1.18;
    letter-spacing: 0.08em;
    text-shadow: 0 3px 24px rgba(0, 0, 0, 0.64);
  }

  .reference-footer-cta-button {
    justify-self: end;
    min-width: clamp(230px, 18vw, 280px);
    min-height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.72rem;
    border-color: rgba(255, 230, 168, 0.82);
    background: linear-gradient(135deg, #f3d383, #b9852e);
    color: #080604;
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    box-shadow:
      0 0 24px rgba(229, 178, 79, 0.28),
      0 16px 34px rgba(0, 0, 0, 0.36);
  }

  .reference-footer-cta-button:hover,
  .reference-footer-cta-button:focus-visible {
    color: #030303;
    transform: translateY(-2px);
    box-shadow:
      0 0 30px rgba(255, 219, 137, 0.38),
      0 20px 40px rgba(0, 0, 0, 0.44);
  }

  .reference-footer-main {
    width: min(1200px, calc(100% - clamp(3rem, 9vw, 8rem)));
    min-height: 96px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(300px, 1fr) auto minmax(300px, 1fr);
    align-items: center;
    gap: clamp(1.25rem, 3vw, 3.5rem);
    padding: 1.35rem 0;
  }

  .reference-footer-brand {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-width: 0;
  }

  .reference-footer-brand .site-brand {
    flex: 0 0 auto;
  }

  .reference-footer-reading {
    display: inline-flex;
    align-items: center;
    color: #d8c39b;
    font-family: var(--font-ui);
    font-size: 0.96rem;
    letter-spacing: 0.12em;
    white-space: nowrap;
  }

  .reference-footer-brand p,
  .reference-footer-links {
    display: none;
  }

  .reference-footer-social {
    justify-self: center;
    gap: 0.9rem;
  }

  .reference-footer-social a {
    min-width: 54px;
    min-height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-inline: 1rem;
    border: 1px solid rgba(211, 168, 90, 0.42);
    border-radius: 999px;
    background: rgba(8, 7, 5, 0.82);
    color: #f3d283;
    font-size: 1.12em;
    font-weight: 700;
  }

  .reference-footer-copy {
    justify-self: end;
    margin: 0;
    color: #d0bea0;
    font-size: 0.94rem;
    letter-spacing: 0.04em;
    text-align: right;
    white-space: nowrap;
  }

  .reference-footer-copy-desktop {
    display: block;
  }

  .reference-footer-copy-mobile {
    display: none;
  }

  .bgm-widget {
    right: 32px;
    bottom: 112px;
  }
}

@media (min-width: 768px) {
  #concept,
  #menu,
  #gallery,
  #access,
  #store-info,
  #reservation {
    scroll-margin-top: 150px;
  }

  .section-anchor {
    display: block;
  }
}

@media (min-width: 1024px) {
  .reference-home #home-lifestyle {
    margin-top: clamp(2.1rem, 3.4vw, 3.4rem);
    padding: clamp(0.7rem, 1.2vw, 1rem) 0;
    border-top: 1px solid rgba(211, 168, 90, 0.46);
    border-bottom: 1px solid rgba(211, 168, 90, 0.42);
    background:
      linear-gradient(90deg, rgba(0, 0, 0, 0.96), rgba(13, 11, 9, 0.9) 48%, rgba(0, 0, 0, 0.96));
  }

  .reference-home .reference-feature-row {
    width: min(1160px, calc(100% - clamp(3rem, 7vw, 7rem)));
    min-height: 96px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    align-items: stretch;
  }

  .reference-home .reference-feature {
    position: relative;
    min-height: 96px;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 1rem;
    row-gap: 0.25rem;
    align-content: center;
    align-items: center;
    padding: 0.85rem clamp(1.35rem, 2vw, 2rem);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .reference-home .reference-feature:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 20%;
    right: 0;
    width: 1px;
    height: 60%;
    background: rgba(255, 255, 255, 0.34);
  }

  .reference-home .reference-feature-icon {
    grid-row: 1 / span 2;
    width: 58px;
    height: 58px;
    align-self: center;
    justify-self: center;
    filter: drop-shadow(0 0 8px currentColor);
  }

  .reference-home .reference-feature h2 {
    margin: 0;
    font-size: clamp(1.05rem, 1.18vw, 1.28rem);
    line-height: 1.18;
  }

  .reference-home .reference-feature p {
    margin: 0;
    color: #f1eadc;
    font-size: clamp(0.8rem, 0.82vw, 0.9rem);
    line-height: 1.55;
  }

  @media (max-width: 1100px) {
    .reference-home .reference-feature-row {
      min-height: 108px;
    }

    .reference-home .reference-feature {
      min-height: 108px;
      grid-template-columns: 56px minmax(0, 1fr);
      column-gap: 0.72rem;
      padding: 0.65rem 0.8rem;
    }

    .reference-home .reference-feature-icon {
      width: 48px;
      height: 48px;
    }

    .reference-home .reference-feature h2 {
      font-size: 0.96rem;
      letter-spacing: 0.01em;
    }

    .reference-home .reference-feature p {
      font-size: 0.74rem;
      line-height: 1.45;
    }
  }

  .reference-access {
    width: min(1320px, calc(100% - clamp(1.5rem, 3.2vw, 3.5rem)));
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(205px, 0.25fr) minmax(370px, 0.4fr) minmax(285px, 0.35fr);
    gap: clamp(0.95rem, 1.5vw, 1.55rem);
    align-items: start;
  }

  .reference-access-copy,
  .reference-map-card {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
  }

  .reference-access-copy {
    min-height: clamp(150px, 12vw, 178px);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }

  .reference-access .reference-kicker {
    margin: 0 0 0.48rem;
    color: #d3a85a;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.18em;
  }

  .reference-info-panel > .reference-kicker {
    font-size: 0;
  }

  .reference-info-panel > .reference-kicker::after {
    content: "INFO";
    font-size: 0.72rem;
  }

  .reference-access h2,
  .reference-access .reference-panel-title {
    margin: 0 0 0.86rem;
    color: #f4ead2;
    font-size: clamp(1.28rem, 1.45vw, 1.55rem);
    line-height: 1.2;
    letter-spacing: 0.04em;
  }

  .reference-access .brand-title {
    gap: 0;
  }

  .reference-access .brand-title-icon {
    display: none;
  }

  .reference-access p {
    margin: 0.1rem 0 0.9rem;
    color: #d9ceb8;
    font-size: 0.85rem;
    line-height: 1.55;
  }

  .reference-info-list {
    margin: 0;
    gap: 0.52rem;
    color: #f0e7d7;
    font-size: clamp(0.82rem, 0.85vw, 0.92rem);
    line-height: 1.45;
  }

  .reference-info-list div {
    grid-template-columns: minmax(4.5rem, 5.8rem) minmax(0, 1fr);
    gap: 0.72rem;
    align-items: start;
    border-bottom: 0;
    padding-bottom: 0;
  }

  .reference-info-list dt {
    color: #c7b07a;
    font-weight: 700;
    white-space: nowrap;
  }

  .reference-info-list dd {
    color: #eee4d1;
  }

  .reference-access-copy > .button.secondary {
    width: fit-content;
    min-height: 34px;
    margin-top: auto;
    padding: 0.5rem 0.86rem;
    border-color: rgba(211, 168, 90, 0.72);
    border-radius: 4px;
    background: rgba(2, 2, 2, 0.7);
    color: transparent;
    font-size: 0;
    box-shadow: none;
  }

  .reference-access-copy > .button.secondary::before {
    content: "Google Mapを見る";
    color: #e0b65c;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.02em;
  }

  .reference-access-copy > .button.secondary::after {
    content: "›";
    margin-left: 0.55rem;
    color: #e0b65c;
    font-size: 1.1rem;
    line-height: 1;
  }

  .reference-map-card {
    height: clamp(168px, 13.2vw, 198px);
    min-height: 0;
    overflow: hidden;
    border: 1px solid rgba(211, 168, 90, 0.38);
    border-radius: 4px;
  }

  .reference-fake-map {
    height: 100%;
    min-height: 0;
    background:
      radial-gradient(circle at 36% 40%, rgba(211, 168, 90, 0.12), transparent 42%),
      linear-gradient(145deg, rgba(16, 14, 12, 0.92), rgba(6, 6, 7, 0.98));
  }

  .fake-map-grid {
    opacity: 0.34;
  }

  .fake-map-label {
    padding: 0.22rem 0.4rem;
    border-color: rgba(211, 168, 90, 0.26);
    background: rgba(4, 4, 4, 0.48);
    font-size: 0.64rem;
  }

  .fake-map-pin-label {
    font-size: 0.72rem;
  }

  .fake-road-main {
    height: 28px;
  }

  .fake-road-branch {
    width: 28px;
  }
}
@media (max-width: 767px) {
  .reference-reservation,
  .reference-reservation * {
    box-sizing: border-box;
    min-width: 0;
  }

  .reference-reservation {
    width: min(100% - 28px, 430px);
    max-width: calc(100% - 28px);
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
    overflow: visible;
    padding-bottom: calc(7.25rem + env(safe-area-inset-bottom));
  }

  .reference-reservation .section-anchor {
    width: 0;
    max-width: 0;
  }

  .reference-reservation .reservation-photo-panel,
  .reference-reservation figure.reference-cta-photo {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: none;
    aspect-ratio: 4 / 3;
    min-height: 0;
    height: auto;
    max-height: clamp(238px, 72vw, 360px);
  }

  .reference-reservation-copy {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: clamp(1.15rem, 5vw, 1.5rem) clamp(1rem, 5.2vw, 1.5rem) 0;
    text-align: center;
  }

  .reference-reservation .reservation-kicker-inline {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 0.86rem;
    justify-content: center;
    gap: 0.48rem;
    white-space: nowrap;
  }

  .reservation-title-wrap {
    width: 100%;
    max-width: 100%;
    margin: 0 auto 0.88rem;
    text-align: center;
  }

  .reservation-title-wrap .brand-title,
  .reservation-title-text {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    display: block;
    text-align: center;
    font-size: clamp(1.55rem, 7.2vw, 2.08rem);
    line-height: 1.16;
    letter-spacing: 0.018em;
    white-space: normal;
    overflow-wrap: normal;
    word-break: keep-all;
  }

  .reservation-title-top,
  .reservation-title-bottom {
    display: block;
    width: 100%;
    max-width: 100%;
    text-align: center;
    white-space: nowrap;
  }

  .reference-reservation-copy > p:not(.reservation-kicker-inline) {
    width: 100%;
    max-width: 100%;
    margin: 0 auto 0.82rem;
    color: #f3e7cf;
    font-size: clamp(0.92rem, 3.8vw, 1rem);
    line-height: 1.72;
    letter-spacing: 0.01em;
    text-align: center;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: keep-all;
  }

  .reference-reservation-actions {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.78rem;
    margin: 1.08rem auto 0;
    padding: 0;
  }

  .reference-reservation-actions .button,
  .reference-reservation-actions .button.secondary,
  .reference-reservation .button,
  .reference-reservation .button.secondary {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 52px;
    justify-content: center;
    text-align: center;
    white-space: normal;
  }

  .reference-reservation-actions .reservation-primary,
  .reference-reservation-actions .button:not(.secondary) {
    min-height: 54px;
  }
}

@media (max-width: 360px) {
  .reference-reservation {
    width: min(100% - 24px, 430px);
    max-width: calc(100% - 24px);
  }

  .reference-reservation-copy {
    padding-inline: 1rem;
  }

  .reservation-title-wrap .brand-title,
  .reservation-title-text {
    font-size: clamp(1.42rem, 7.1vw, 1.72rem);
    letter-spacing: 0.012em;
  }
}

@media (max-width: 767px) {
  /* mobile reservation exact button widths */
  .reference-reservation-actions .button {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }
}

.reference-footer-brand-icon,
.reference-footer-social-icon {
  display: none;
}

@media (max-width: 1023px) {
  .reference-footer-social-item {
    display: none;
  }
}

@media (min-width: 1024px) {
  /* pc footer approved master restoration */
  .reference-home .cta-band:empty {
    display: none;
  }

  #footer-reservation-cta {
    scroll-margin-top: 150px;
  }

  .site-footer.reference-footer {
    --pc-footer-container-edge: calc(max(1rem, calc((100vw - 1440px) / 2)) + clamp(0.5rem, 1.4vw, 1.25rem) + 0.1rem);
    --pc-footer-logo-width: clamp(160px, 16vw, 250px);
    --pc-footer-logo-visual-inset: calc(var(--pc-footer-logo-width) * 0.0316);
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid rgba(207, 154, 55, 0.46);
    background: #030303;
    color: #cfc3ad;
  }

  .reference-footer-cta {
    min-height: clamp(104px, 8.2vw, 122px);
    max-height: 128px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(1.5rem, 5vw, 6.5rem);
    padding: clamp(1rem, 1.35vw, 1.28rem) var(--pc-footer-container-edge);
    border-top: 1px solid rgba(207, 154, 55, 0.36);
    border-bottom: 1px solid rgba(207, 154, 55, 0.42);
    background: #050505;
    overflow: hidden;
  }

  .reference-footer-cta::before {
    background-image:
      linear-gradient(90deg, rgba(3, 3, 3, 0.9) 0%, rgba(3, 3, 3, 0.38) 45%, rgba(3, 3, 3, 0.68) 100%),
      var(--footer-cta-image);
    background-size: cover;
    background-position: center 48%;
    opacity: 0.92;
    transform: none;
  }

  .reference-footer-cta::after {
    background:
      linear-gradient(90deg, rgba(207, 154, 55, 0.18), transparent 21%, transparent 78%, rgba(207, 154, 55, 0.2)),
      radial-gradient(circle at 70% 50%, rgba(229, 178, 79, 0.17), transparent 30%);
  }

  .reference-footer-cta-copy {
    display: flex;
    align-items: baseline;
    gap: 0;
    transform: translateX(var(--pc-footer-logo-visual-inset));
    color: #efc766;
    font-size: clamp(1.42rem, 2.12vw, 2.15rem);
    line-height: 1.22;
    letter-spacing: 0.075em;
    text-align: left;
    white-space: nowrap;
    text-shadow: 0 3px 20px rgba(0, 0, 0, 0.78);
  }

  .reference-footer-cta-button {
    justify-self: end;
    width: clamp(260px, 28vw, 360px);
    min-width: 0;
    min-height: clamp(56px, 5vw, 70px);
    padding: 0 2rem;
    border: 1px solid rgba(255, 235, 173, 0.72);
    border-radius: 5px;
    background: linear-gradient(180deg, #e8bf55 0%, #bd8125 100%);
    color: #0c0802;
    box-shadow: 0 0 20px rgba(230, 182, 75, 0.25), 0 10px 24px rgba(0, 0, 0, 0.36);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.08em;
  }

  .reference-footer-cta-button span[aria-hidden="true"] {
    margin-left: auto;
    font-size: 1.24rem;
    line-height: 1;
  }

  .reference-footer-main {
    width: 100%;
    min-height: 64px;
    margin: 0;
    display: grid;
    grid-template-columns: minmax(300px, 1fr) auto minmax(300px, 1fr);
    align-items: center;
    gap: clamp(1.5rem, 4vw, 4.5rem);
    padding: 0 var(--pc-footer-container-edge);
    border-top: 1px solid rgba(207, 154, 55, 0.12);
    background: rgba(2, 3, 4, 0.98);
  }

  .reference-footer-brand {
    display: flex;
    align-items: center;
    justify-self: start;
    gap: 0.5rem;
    min-width: 0;
  }

  .reference-footer-brand-icon {
    width: 26px;
    height: 26px;
    display: block;
    flex: 0 0 auto;
    fill: none;
    stroke: #aeb0ac;
    stroke-width: 1.35;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0.9;
  }

  .reference-footer-brand .site-brand {
    margin: 0;
    color: #d6d0c2;
    font-family: var(--font-ui);
    font-size: 1.15rem;
    font-weight: 500;
    letter-spacing: 0.04em;
  }

  .reference-footer-brand .brand-mark {
    text-shadow: none;
    animation: none;
  }

  .reference-footer-reading {
    display: inline-flex;
    align-items: center;
    color: #d6d0c2;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }

  .reference-footer-brand p,
  .reference-footer-links {
    display: none;
  }

  .reference-footer-social {
    justify-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.78rem;
  }

  .reference-footer-social a,
  .reference-footer-social-item {
    width: 28px;
    height: 28px;
    min-width: 28px;
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #aeb0ac;
    transition: color 0.2s ease, transform 0.2s ease;
  }

  .reference-footer-social a:hover,
  .reference-footer-social a:focus-visible,
  .reference-footer-social-item:focus-visible {
    color: #e2c16e;
    transform: translateY(-1px);
  }

  .reference-footer-social-icon {
    width: 24px;
    height: 24px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .reference-footer-social-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .reference-footer-copy {
    justify-self: end;
    margin: 0;
    color: #aaa095;
    font-size: 0.78rem;
    letter-spacing: 0.02em;
    text-align: right;
    white-space: nowrap;
  }

  .reference-footer-copy-desktop {
    display: block;
  }

  .reference-footer-copy-mobile {
    display: none;
  }

  body.footer-in-view .bgm-widget {
    bottom: calc(196px + env(safe-area-inset-bottom));
  }
}
@media (min-width: 1024px) {
  /* pc footer fixed grid columns */
  .reference-footer-brand {
    grid-column: 1;
  }

  .reference-footer-social {
    grid-column: 2;
  }

  .reference-footer-copy-desktop {
    grid-column: 3;
  }
}
/* Brand logo unification */
.site-brand {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  flex: 0 0 auto;
  line-height: 1;
}

.brand-logo-img {
  display: block;
  width: clamp(150px, 15vw, 230px);
  height: auto;
  max-width: min(230px, 42vw);
  object-fit: contain;
  object-position: center;
}

.reference-home .site-brand .brand-logo-img {
  width: clamp(160px, 16vw, 250px);
  height: auto;
  max-width: min(250px, 44vw);
}

.reference-footer-logo {
  min-width: 0;
}

.reference-footer-logo-img {
  width: clamp(128px, 13vw, 178px);
  height: auto;
  max-width: min(178px, 32vw);
}

.reference-footer-brand-icon,
.reference-footer-brand-name,
.reference-footer-reading {
  display: none !important;
}

@media (max-width: 1023px) {
  .reference-home .site-brand .brand-logo-img {
    width: clamp(140px, 22vw, 200px);
    height: auto;
    max-width: min(200px, 44vw);
  }
}

@media (max-width: 767px) {
  .reference-home .site-brand .brand-logo-img {
    width: clamp(118px, 36vw, 156px);
    height: auto;
    max-width: min(156px, 42vw);
  }
}

@media (max-width: 360px) {
  .reference-home .site-brand .brand-logo-img {
    width: 132px;
    height: auto;
    max-width: 132px;
  }
}

/* Mobile rebuild from approved PC content */
@media (max-width: 767px) {
  :root {
    --mobile-edge: max(14px, env(safe-area-inset-left));
    --mobile-edge-right: max(14px, env(safe-area-inset-right));
    --mobile-logo-width: clamp(104px, 31vw, 138px);
    --mobile-logo-visual-inset: calc(var(--mobile-logo-width) * 0.0316);
  }

  .reference-home .site-container {
    width: 100%;
    padding-inline: var(--mobile-edge) var(--mobile-edge-right);
  }

  .reference-home .site-header {
    position: sticky;
    top: 0;
    z-index: 90;
    padding-top: env(safe-area-inset-top);
    background: rgba(5, 5, 8, 0.94);
    border-bottom: 1px solid rgba(211, 168, 90, 0.28);
    backdrop-filter: blur(18px);
  }

  .reference-home .site-nav {
    min-height: 62px;
    height: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    align-items: center;
    gap: clamp(0.34rem, 1.7vw, 0.48rem);
    padding: 0.42rem 0.1rem;
  }

  .reference-home .site-brand {
    min-width: 0;
    margin: 0;
  }

  .reference-home .site-brand .brand-logo-img {
    width: var(--mobile-logo-width);
    max-width: var(--mobile-logo-width);
    height: auto;
  }

  .reference-home #lang-switch {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: clamp(48px, 13vw, 58px);
    min-height: 44px;
    padding: 0 0.62rem;
    font-size: clamp(0.62rem, 2.4vw, 0.74rem);
    letter-spacing: 0.02em;
    white-space: nowrap;
  }

  .mobile-menu-toggle {
    display: inline-flex;
    min-width: 50px;
    min-height: 44px;
    padding: 0 0.62rem;
    font-size: clamp(0.64rem, 2.5vw, 0.76rem);
    white-space: nowrap;
  }

  .reference-home .site-nav-list {
    display: none;
    margin: 0;
    padding: 0;
    overflow: visible;
  }

  .reference-home .site-nav-list li,
  .reference-home .site-nav-list .nav-item-mobile-only,
  .reference-home .site-nav-list .nav-item-cta {
    display: none;
  }

  .reference-home .site-nav.is-mobile-open .site-nav-list {
    position: absolute;
    top: calc(100% + 0.45rem);
    left: 0;
    right: 0;
    z-index: 95;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.42rem;
    padding: 0.72rem;
    border: 1px solid rgba(229, 178, 79, 0.34);
    border-radius: 18px;
    background: radial-gradient(circle at top left, rgba(229, 178, 79, 0.16), transparent 38%), rgba(7, 7, 10, 0.97);
    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.48), 0 0 26px rgba(229, 178, 79, 0.12);
  }

  .reference-home .site-nav.is-mobile-open .site-nav-list li,
  .reference-home .site-nav.is-mobile-open .site-nav-list .nav-item-mobile-only {
    display: block;
  }

  .reference-home .site-nav.is-mobile-open .site-nav-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding: 0.78rem 0.9rem;
    border: 1px solid rgba(229, 178, 79, 0.16);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.035);
    color: #f5ead4;
    font-size: 0.9rem;
  }

  .reference-home .site-nav.is-mobile-open .site-nav-list a.nav-cta {
    justify-content: center;
    color: #120d07;
    background: linear-gradient(135deg, #f1c86c, #a5792d);
    border-color: rgba(247, 224, 159, 0.55);
  }

  .reference-hero {
    min-height: min(90svh, 760px);
    height: min(90svh, 760px);
    margin-top: 0.72rem;
    border-radius: 18px;
    overflow: hidden;
  }

  @media (max-height: 680px) {
    .reference-hero {
      min-height: 620px;
      height: 620px;
    }
  }

  .reference-hero-media,
  .reference-hero .hero-slide,
  .reference-hero .hero-slide picture,
  .reference-hero .hero-slide img {
    width: 100%;
    height: 100%;
  }

  .reference-hero .hero-slide img {
    object-fit: cover;
    object-position: 66% 50%;
  }

  .reference-hero-overlay {
    background: linear-gradient(180deg, rgba(6, 6, 9, 0.02) 0%, rgba(6, 6, 9, 0.16) 38%, rgba(6, 6, 9, 0.9) 100%), radial-gradient(circle at 58% 24%, rgba(229, 178, 79, 0.12), transparent 46%);
  }

  .reference-hero-copy {
    width: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 0.72rem;
    padding: 1rem 0.92rem clamp(1.15rem, 3svh, 1.8rem);
  }

  .reference-hero-kicker {
    gap: 0.3rem;
    font-size: clamp(0.68rem, 2.6vw, 0.78rem);
    line-height: 1.42;
  }

  .reference-hero-script {
    margin: 0;
    font-size: clamp(1.38rem, 8vw, 1.92rem);
    line-height: 1.16;
    white-space: normal;
  }

  .reference-hero-script-desktop {
    display: none !important;
  }

  .reference-hero-script-mobile {
    display: inline !important;
  }

  .reference-hero h1 {
    margin-bottom: 0.1rem;
    max-width: 8ch;
    font-size: clamp(2.85rem, 16vw, 4.45rem);
    line-height: 0.92;
    letter-spacing: 0.02em;
  }

  .reference-hero-description {
    max-width: 30ch;
    font-size: clamp(0.82rem, 3.1vw, 0.94rem);
    line-height: 1.62;
  }

  .reference-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.64rem;
    width: 100%;
    margin-top: 0.18rem;
  }

  .reference-hero-actions .button {
    width: 100%;
    min-height: 50px;
    justify-content: center;
  }

  .reference-hero-indicators {
    right: 0.95rem;
    bottom: 0.86rem;
    gap: 0.38rem;
  }

  .reference-hero-indicators button {
    width: 36px;
    min-width: 36px;
    height: 18px;
  }

  .reference-feature-row {
    grid-template-columns: 1fr;
    gap: 0.72rem;
    margin-top: 1rem;
  }

  .reference-feature {
    min-height: 100px;
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 0.88rem;
    row-gap: 0.18rem;
    align-items: center;
    padding: 0.9rem 0.92rem;
  }

  .reference-feature-icon {
    grid-row: 1 / span 2;
    width: 76px;
    height: 76px;
  }

  .reference-feature h2 {
    align-self: end;
    font-size: 1.12rem;
  }

  .reference-feature p {
    align-self: start;
    line-height: 1.55;
    font-size: 0.88rem;
  }

  .reference-concept {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin-top: 3rem;
  }

  .reference-concept-media {
    order: 1;
    min-height: clamp(292px, 82vw, 382px);
    border-radius: 14px;
  }

  .reference-concept .reference-section-copy {
    order: 2;
    padding-inline: var(--mobile-logo-visual-inset) 0;
  }

  .reference-concept p,
  .reference-concept li {
    font-size: 0.95rem;
    line-height: 1.9;
  }

  .reference-concept .button.secondary {
    width: 100%;
    min-height: 48px;
    justify-content: center;
  }

  .reference-menu,
  .reference-gallery,
  .reference-access {
    margin-top: 3rem;
  }

  .reference-section-head {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.82rem;
    margin-bottom: 0.9rem;
    padding-inline: var(--mobile-logo-visual-inset) 0;
  }

  .reference-section-head .button {
    width: 100%;
    min-height: 46px;
    justify-content: center;
  }

  .reference-menu-grid,
  .reference-gallery-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 94%;
    grid-template-columns: none;
    gap: 0.86rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 0;
    padding: 0 0 0.65rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .reference-menu-grid::-webkit-scrollbar,
  .reference-gallery-track::-webkit-scrollbar {
    display: none;
  }

  .reference-menu-card,
  .reference-gallery-card {
    min-width: 0;
    scroll-snap-align: start;
  }

  .reference-menu-card .reference-photo {
    height: clamp(260px, 72vw, 330px);
  }

  .reference-gallery-card .reference-photo {
    height: clamp(300px, 78vw, 380px);
  }

  .reference-card-copy {
    padding: 0.92rem 0.95rem 1.05rem;
  }

  .mobile-carousel-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.42rem;
    margin-top: 0.2rem;
  }

  .mobile-carousel-dots button {
    width: 9px;
    height: 9px;
    min-width: 9px;
    min-height: 9px;
    padding: 0;
    border: 1px solid rgba(229, 178, 79, 0.55);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
  }

  .mobile-carousel-dots button.active {
    width: 24px;
    background: #e5b24f;
  }

  .reference-access {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.86rem;
    border-top: 1px solid rgba(207, 154, 55, 0.38);
    border-bottom: 1px solid rgba(207, 154, 55, 0.38);
    padding: 1rem 0;
  }

  .reference-access-copy,
  .reference-map-card {
    border-radius: 14px;
    padding: 1rem;
  }

  .reference-access-copy {
    order: 1;
  }

  .reference-map-card {
    order: 2;
    min-height: 230px;
  }

  .reference-info-panel {
    order: 3;
  }

  .reference-access h2,
  .reference-access .reference-panel-title {
    font-size: clamp(1.25rem, 5.8vw, 1.65rem);
  }

  .reference-info-list div {
    grid-template-columns: minmax(6.2em, 0.42fr) minmax(0, 1fr);
    gap: 0.7rem;
  }

  .reference-access-copy > .button.secondary {
    width: 100%;
    min-height: 46px;
    justify-content: center;
  }

  .reference-reservation {
    display: none !important;
  }

  .site-footer.reference-footer {
    --mobile-footer-logo-width: var(--mobile-logo-width);
    --mobile-footer-logo-visual-inset: calc(var(--mobile-footer-logo-width) * 0.0316);
    width: 100%;
    margin: 0;
    padding: 0;
    border-top: 1px solid rgba(207, 154, 55, 0.38);
    background: #030303;
  }

  .reference-footer-cta {
    position: relative;
    isolation: isolate;
    min-height: 118px;
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    gap: 0.7rem;
    padding: 1rem var(--mobile-edge-right) 1rem var(--mobile-edge);
    border-top: 1px solid rgba(207, 154, 55, 0.36);
    border-bottom: 1px solid rgba(207, 154, 55, 0.42);
    overflow: hidden;
  }

  .reference-footer-cta::before,
  .reference-footer-cta::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
  }

  .reference-footer-cta::before {
    z-index: -2;
    background-image: linear-gradient(90deg, rgba(3, 3, 3, 0.9) 0%, rgba(3, 3, 3, 0.46) 52%, rgba(3, 3, 3, 0.78) 100%), var(--footer-cta-image);
    background-size: cover;
    background-position: center;
    opacity: 0.9;
  }

  .reference-footer-cta::after {
    z-index: -1;
    background: radial-gradient(circle at 72% 50%, rgba(229, 178, 79, 0.17), transparent 34%);
  }

  .reference-footer-cta-copy {
    display: flex;
    gap: 0;
    transform: translateX(var(--mobile-logo-visual-inset));
    color: #efc766;
    font-family: var(--font-display);
    font-size: clamp(1.02rem, 4.6vw, 1.28rem);
    line-height: 1.18;
    letter-spacing: 0.03em;
    white-space: nowrap;
    text-shadow: 0 3px 20px rgba(0, 0, 0, 0.78);
  }

  .reference-footer-cta-button {
    justify-self: end;
    width: min(74vw, 260px);
    min-height: 50px;
    padding: 0 1.3rem;
    border: 1px solid rgba(255, 235, 173, 0.72);
    border-radius: 5px;
    background: linear-gradient(180deg, #e8bf55 0%, #bd8125 100%);
    color: #0c0802;
    font-size: 0.92rem;
    font-weight: 800;
  }

  .reference-footer-main {
    width: 100%;
    min-height: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.95rem;
    padding: 1.15rem var(--mobile-edge-right) calc(7.6rem + env(safe-area-inset-bottom)) var(--mobile-edge);
    background: rgba(2, 3, 4, 0.98);
  }

  .reference-footer-brand {
    justify-self: start;
    display: flex;
    align-items: center;
  }

  .reference-footer-logo-img {
    width: var(--mobile-footer-logo-width);
    max-width: var(--mobile-footer-logo-width);
    height: auto;
  }

  .reference-footer-social {
    justify-self: start;
    display: flex;
    align-items: center;
    gap: 0.66rem;
    padding-left: var(--mobile-footer-logo-visual-inset);
  }

  .reference-footer-social a,
  .reference-footer-social-item {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    color: #cfc8bd;
  }

  .reference-footer-social-icon {
    width: 23px;
    height: 23px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.55;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .reference-footer-social-text,
  .reference-footer-brand p,
  .reference-footer-links,
  .reference-footer-copy-mobile {
    display: none !important;
  }

  .reference-footer-copy-desktop {
    display: block;
  }

  .reference-footer-copy {
    justify-self: start;
    margin: 0;
    padding-left: var(--mobile-footer-logo-visual-inset);
    color: #c8b99a;
    font-size: clamp(0.72rem, 3vw, 0.82rem);
    line-height: 1.5;
    text-align: left;
    white-space: normal;
  }

  .bgm-widget {
    right: max(14px, env(safe-area-inset-right));
    bottom: calc(1rem + env(safe-area-inset-bottom));
    max-width: max-content;
  }

  .bgm-now-playing {
    display: none !important;
  }

  .bgm-toggle {
    min-height: 42px;
    padding: 0.62rem 0.82rem;
    font-size: 0.78rem;
  }

  body.footer-in-view .bgm-widget {
    bottom: calc(var(--bgm-footer-offset, 1rem) + env(safe-area-inset-bottom));
  }

  body.mobile-access-in-view:not(.footer-in-view) .bgm-widget {
    top: calc(78px + env(safe-area-inset-top));
    bottom: auto;
  }

  #concept,
  #menu,
  #gallery,
  #access,
  #store-info,
  #reservation,
  #footer-reservation-cta,
  .section-anchor {
    scroll-margin-top: 86px;
  }
}

@media (max-width: 360px) {
  :root {
    --mobile-edge: max(12px, env(safe-area-inset-left));
    --mobile-edge-right: max(12px, env(safe-area-inset-right));
    --mobile-logo-width: 104px;
  }

  .reference-home .site-nav {
    gap: 0.28rem;
  }

  .reference-home #lang-switch,
  .mobile-menu-toggle,
  .reference-home .site-nav-list a.nav-cta {
    min-width: 46px;
    padding-inline: 0.5rem;
    font-size: 0.62rem;
  }

  .reference-hero-copy {
    padding-inline: 0.78rem;
  }

  .reference-hero-description {
    font-size: 0.8rem;
  }

  .reference-footer-cta-button {
    width: min(72vw, 230px);
  }
}

@media (max-width: 767px) {
  .reference-home .reference-hero-overlay {
    pointer-events: none;
    background:
      radial-gradient(ellipse at 22% 28%, rgba(0, 0, 0, 0.58) 0%, rgba(0, 0, 0, 0.46) 36%, rgba(0, 0, 0, 0.16) 68%, rgba(0, 0, 0, 0.08) 100%),
      linear-gradient(180deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.48) 38%, rgba(0, 0, 0, 0.24) 72%, rgba(0, 0, 0, 0.12) 100%),
      linear-gradient(90deg, rgba(0, 0, 0, 0.54) 0%, rgba(0, 0, 0, 0.38) 48%, rgba(0, 0, 0, 0.12) 100%);
  }

  .reference-home .reference-hero-kicker,
  .reference-home .reference-hero-script,
  .reference-home .reference-hero h1 {
    text-shadow:
      0 2px 6px rgba(0, 0, 0, 0.86),
      0 0 2px rgba(0, 0, 0, 0.68);
  }

  .reference-home .reference-hero-description {
    text-shadow:
      0 2px 5px rgba(0, 0, 0, 0.82),
      0 0 1px rgba(0, 0, 0, 0.62);
  }
}

/* Branded neon social artwork */
.reference-footer-social {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: clamp(0.75rem, 1.7vw, 1.75rem);
}

.reference-footer-social a,
.reference-footer-social-item {
  position: relative;
  width: clamp(64px, 4.6vw, 72px);
  height: clamp(64px, 4.6vw, 72px);
  min-width: 64px;
  min-height: 64px;
  border-radius: 999px;
  outline-offset: 5px;
  touch-action: manipulation;
  transition: transform 0.18s ease-out;
}

.reference-footer-social a:focus-visible,
.reference-footer-social-item:focus-visible {
  outline: 2px solid rgba(245, 205, 105, 0.95);
  box-shadow: 0 0 0 5px rgba(212, 153, 42, 0.2);
}

.reference-footer-social-img.reference-footer-social-icon {
  display: block;
  flex: 0 0 auto;
  width: clamp(56px, 3.9vw, 64px);
  height: clamp(56px, 3.9vw, 64px);
  object-fit: contain;
  --social-icon-scale: 1;
  opacity: 0.98;
  filter:
    drop-shadow(0 0 3px rgba(255, 204, 0, 0.26))
    drop-shadow(0 0 6px rgba(255, 174, 0, 0.14))
    brightness(1.02)
    contrast(1.16);
  transform: translateZ(0) scale(var(--social-icon-scale));
  transition: filter 0.2s ease-out, opacity 0.2s ease-out, transform 0.2s ease-out;
}

.reference-footer-social-img[alt="Instagram"] {
  --social-icon-scale: 1.07;
}

.reference-footer-social-img[alt="TikTok"] {
  --social-icon-scale: 1.02;
  transform-origin: center;
}

@media (hover: hover) and (pointer: fine) {
  .reference-footer-social a:hover .reference-footer-social-img,
  .reference-footer-social a:focus-visible .reference-footer-social-img,
  .reference-footer-social-item:hover .reference-footer-social-img,
  .reference-footer-social-item:focus-visible .reference-footer-social-img {
    opacity: 1;
    filter:
      drop-shadow(0 0 3px rgba(255, 218, 113, 0.34))
      drop-shadow(0 0 11px rgba(234, 172, 50, 0.34))
      brightness(1.08)
      contrast(1.16);
    transform: translateY(-2px) scale(calc(var(--social-icon-scale, 1) * 1.04));
  }
}

.reference-footer-social a,
.reference-footer-social-item {
  min-width: 64px;
  min-height: 64px;
}

.reference-footer-social a:active .reference-footer-social-img,
.reference-footer-social-item:active .reference-footer-social-img {
  filter:
    drop-shadow(0 0 4px rgba(255, 218, 113, 0.42))
    drop-shadow(0 0 13px rgba(234, 172, 50, 0.38))
    brightness(1.16)
    contrast(1.16);
  transform: scale(calc(var(--social-icon-scale, 1) * 0.94));
}

@media (min-width: 768px) and (max-width: 1023px) {
  .reference-footer-social {
    gap: clamp(1rem, 2.25vw, 1.5rem);
  }

  .reference-footer-social a,
  .reference-footer-social-item {
    width: 64px;
    height: 64px;
    min-width: 64px;
    min-height: 64px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  .reference-footer-social-img.reference-footer-social-icon {
    width: 58px;
    height: 58px;
  }
}

@media (max-width: 767px) {
  .reference-footer-social {
    width: min(100%, 224px);
    gap: clamp(0.75rem, 4vw, 1.1rem);
  }

  .reference-footer-social a,
  .reference-footer-social-item {
    width: clamp(48px, 14vw, 56px);
    height: clamp(48px, 14vw, 56px);
    min-width: 48px;
    min-height: 48px;
  }

  .reference-footer-social-img.reference-footer-social-icon {
    width: clamp(42px, 12vw, 48px);
    height: clamp(42px, 12vw, 48px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .reference-footer-social a,
  .reference-footer-social-item,
  .reference-footer-social-img.reference-footer-social-icon {
    transition: filter 0.12s ease-out, opacity 0.12s ease-out;
  }

  .reference-footer-social a:hover .reference-footer-social-img,
  .reference-footer-social a:focus-visible .reference-footer-social-img,
  .reference-footer-social-item:hover .reference-footer-social-img,
  .reference-footer-social-item:focus-visible .reference-footer-social-img,
  .reference-footer-social a:active .reference-footer-social-img,
  .reference-footer-social-item:active .reference-footer-social-img {
    transform: none;
  }
}

/* Brand story page */
.reference-story-page #main {
  padding-bottom: clamp(3rem, 6vw, 5rem);
}

.reference-story-hero {
  margin-bottom: clamp(2.8rem, 5vw, 5rem);
}

.reference-story-hero-logo {
  display: block;
  width: clamp(180px, 23vw, 320px);
  height: auto;
  margin: 0 0 1.15rem;
  filter: drop-shadow(0 0 18px rgba(229, 178, 79, 0.28));
}

.reference-story-hero .reference-hero-photo img {
  object-position: center center;
}

.reference-story-lead {
  margin-top: 1.2rem;
  border-left: 2px solid rgba(211, 168, 90, 0.7);
  padding-left: clamp(1rem, 2vw, 1.4rem);
}

.reference-story-lead p {
  margin: 0 0 0.7rem;
}

.reference-story-section {
  margin-top: clamp(2.8rem, 5vw, 5rem);
}

.reference-story-section-head {
  align-items: flex-start;
}

.reference-story-text-grid,
.reference-story-point-grid {
  display: grid;
  gap: 1rem;
}

.reference-story-text-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reference-story-point-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.reference-story-text-card,
.reference-story-point-card,
.reference-story-message,
.reference-story-final-cta {
  border: 1px solid rgba(211, 168, 90, 0.28);
  background: linear-gradient(180deg, rgba(24, 22, 20, 0.88), rgba(11, 10, 12, 0.94));
  box-shadow: 0 18px 55px rgba(0, 0, 0, 0.28);
}

.reference-story-text-card {
  min-height: 260px;
  padding: clamp(1.1rem, 2vw, 1.5rem);
  border-radius: 8px;
}

.reference-story-text-card h3,
.reference-story-point-card h3 {
  margin: 0.25rem 0 0.7rem;
  color: #fff0b7;
  font-size: clamp(1.12rem, 1.55vw, 1.42rem);
  line-height: 1.28;
}

.reference-story-text-card p,
.reference-story-message p {
  color: #eadfcb;
  line-height: 1.9;
}

.reference-story-point-card {
  min-height: 154px;
  display: grid;
  place-items: center;
  gap: 0.55rem;
  padding: 1rem;
  border-radius: 8px;
  text-align: center;
}

.reference-story-point-icon {
  width: 58px;
  height: 58px;
  object-fit: contain;
  filter: drop-shadow(0 0 12px rgba(229, 178, 79, 0.32));
}

.reference-story-experience {
  grid-template-columns: minmax(420px, 1.1fr) minmax(0, 0.9fr);
}

.reference-story-message {
  margin-top: clamp(2.8rem, 5vw, 5rem);
  padding: clamp(1.6rem, 4vw, 3rem);
  border-radius: 8px;
  text-align: center;
  background:
    radial-gradient(circle at 50% 0%, rgba(229, 178, 79, 0.2), transparent 38%),
    linear-gradient(180deg, rgba(24, 22, 20, 0.88), rgba(8, 7, 9, 0.96));
}

.reference-story-message h2 {
  margin: 0 auto 1rem;
  justify-content: center;
  color: #fff0b7;
  font-size: clamp(1.9rem, 4.2vw, 4.2rem);
  line-height: 1.16;
}

.reference-story-message p {
  max-width: 760px;
  margin: 0 auto;
}

.reference-story-final-cta {
  margin-top: clamp(2.6rem, 5vw, 4.6rem);
  min-height: clamp(120px, 12vw, 170px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1rem, 4vw, 4rem);
  padding: clamp(1.2rem, 3vw, 2rem);
  border-radius: 8px;
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(3, 3, 3, 0.9), rgba(3, 3, 3, 0.56)),
    var(--footer-cta-image, linear-gradient(135deg, rgba(50, 35, 18, 0.84), rgba(8, 7, 9, 0.94)));
}

.reference-story-final-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 68% 50%, rgba(229, 178, 79, 0.2), transparent 30%),
    linear-gradient(90deg, rgba(211, 168, 90, 0.18), transparent 22%, transparent 76%, rgba(211, 168, 90, 0.18));
  pointer-events: none;
}

.reference-story-final-cta > * {
  position: relative;
  z-index: 1;
}

.reference-story-final-cta h2 {
  margin: 0;
  color: #efc766;
  font-size: clamp(1.5rem, 3vw, 2.7rem);
  line-height: 1.25;
}

.reference-story-final-actions {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

@media (max-width: 1023px) {
  .reference-story-text-grid {
    grid-template-columns: 1fr;
  }

  .reference-story-point-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reference-story-experience {
    grid-template-columns: 1fr;
  }

  .reference-story-final-cta {
    grid-template-columns: 1fr;
  }

  .reference-story-final-actions {
    flex-wrap: wrap;
  }
}

@media (max-width: 767px) {
  .reference-story-hero-logo {
    width: min(62vw, 240px);
  }

  .reference-story-hero-copy {
    padding-bottom: clamp(2.2rem, 14vw, 4rem);
  }

  .reference-story-point-grid {
    grid-template-columns: 1fr;
  }

  .reference-story-point-card {
    min-height: 112px;
    grid-template-columns: 58px 1fr;
    justify-items: start;
    text-align: left;
  }

  .reference-story-final-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .reference-story-final-actions .button {
    width: 100%;
    min-height: 54px;
  }
}
@media (max-width: 767px) {
  .reference-footer-cta .reference-footer-cta-button {
    width: min(88%, 320px);
    min-height: 46px;
    padding-block: 0.78rem;
    padding-inline: 1.25rem;
    margin-inline: auto;
    align-self: center;
    justify-content: center;
    font-size: inherit;
  }
}

/* Mobile footer CTA compact sizing */
@media (max-width: 767px) {
  .reference-footer-cta .reference-footer-cta-button {
    width: min(88%, 320px);
    min-height: 46px;
    padding-block: 0.78rem;
    padding-inline: 1.25rem;
    margin-inline: auto;
    align-self: center;
    justify-content: center;
    font-size: inherit;
  }
}

/* Mobile footer CTA alignment refinement */
@media (max-width: 767px) {
  .reference-footer-cta {
    grid-template-columns: 1fr;
    justify-items: center;
    row-gap: 1rem;
    padding-block: clamp(1.35rem, 5vw, 1.85rem);
    text-align: center;
  }

  .reference-footer-cta .reference-footer-cta-button {
    max-width: 320px;
  }
}

/* Mobile footer CTA final width target */
@media (max-width: 767px) {
  .reference-footer-cta .reference-footer-cta-button {
    width: 88%;
    max-width: none;
  }
}


/* Language switcher */
.site-nav { position: relative; }
.language-switch-button { min-height: 44px; padding: 0.32rem 0.58rem; border: 1px solid rgba(211, 168, 90, 0.58); border-radius: 999px; background: rgba(8, 8, 10, 0.78); color: #f4d487; font-family: var(--font-ui); font-size: 0.68rem; font-weight: 700; letter-spacing: 0; display: inline-grid; gap: 0.03rem; align-items: center; justify-items: center; cursor: pointer; }
.language-switch-button strong { color: #fff0b7; font-size: 0.72rem; line-height: 1.05; white-space: nowrap; }
.language-menu { position: absolute; top: calc(100% + 0.55rem); right: 0; z-index: 120; width: min(340px, calc(100vw - 24px)); max-height: min(70vh, 560px); padding: 0.65rem; border: 1px solid rgba(211, 168, 90, 0.42); border-radius: 14px; background: #09090b; box-shadow: 0 22px 46px rgba(0, 0, 0, 0.42); color: #fffaf0; overflow: auto; }
.language-menu[hidden] { display: none !important; }
.language-menu-header { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.5rem; color: #fffaf0; font-family: var(--font-ui); }
.language-menu-close { width: 48px; min-height: 48px; border: 0; border-radius: 999px; background: rgba(255,255,255,0.08); color: #fffaf0; font-size: 1.2rem; cursor: pointer; }
.language-search { width: 100%; min-height: 48px; margin-bottom: 0.5rem; padding: 0 0.75rem; border: 1px solid rgba(255,255,255,0.22); border-radius: 10px; background: rgba(255,255,255,0.08); color: #fff; font: 700 0.94rem var(--font-ui); }
.language-search::placeholder { color: rgba(255,255,255,0.62); }
.language-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.38rem; }
.language-option { width: 100%; min-height: 56px; padding: 0.42rem 0.5rem; border: 0; border-radius: 10px; background: transparent; color: #efe7d2; font-family: var(--font-ui); font-weight: 700; text-align: left; cursor: pointer; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0.45rem; }
.language-option:hover, .language-option:focus-visible, .language-option[aria-selected="true"] { background: rgba(211, 168, 90, 0.18); color: #ffe4a4; outline: none; }
.language-option[aria-selected="true"] { background: #f8e7b2; color: #1f2937; box-shadow: inset 0 0 0 2px rgba(146, 64, 14, 0.34); }
.language-option[aria-selected="true"] .language-option-copy strong,
.language-option[aria-selected="true"] .language-option-copy small,
.language-option[aria-selected="true"] .language-option-check { color: #1f2937; opacity: 1; }
.language-option-flag { font-size: 1.12rem; }
.language-option-copy { min-width: 0; display: grid; gap: 0.06rem; }
.language-option-copy strong, .language-option-copy small { overflow: hidden; text-overflow: ellipsis; white-space: normal; line-height: 1.15; }
.language-option-copy small { color: rgba(255,255,255,0.64); font-size: 0.72rem; }
.language-option-check { color: #f4d487; font-size: 1rem; }
.language-no-results { margin: 0.7rem 0 0.2rem; color: rgba(255,255,255,0.78); font-family: var(--font-ui); font-weight: 700; }
html[dir="rtl"] .language-menu { right: auto; left: 0; }
html[dir="rtl"] .language-option { text-align: right; }
@media (max-width: 767px) { .language-switch-button { min-width: 48px; min-height: 44px; padding-inline: 0.42rem; font-size: 0.58rem; } .language-switch-button strong { font-size: 0.62rem; } .language-menu { right: max(0px, env(safe-area-inset-right)); width: min(340px, calc(100vw - 24px)); } .language-options { grid-template-columns: 1fr; } }
/* Story page Version 2 refinements */
body[data-page="story"] .reference-story-hero .reference-hero-overlay {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.28) 0%, rgba(0, 0, 0, 0.22) 42%, rgba(0, 0, 0, 0.68) 100%),
    linear-gradient(90deg, rgba(0, 0, 0, 0.76) 0%, rgba(0, 0, 0, 0.42) 38%, rgba(0, 0, 0, 0.12) 72%);
}

body[data-page="story"] .reference-story-hero-copy {
  padding-left: clamp(2.2rem, 6vw, 5.8rem);
}

body[data-page="story"] .reference-story-hero-logo {
  transform: translateY(-10px);
}

body[data-page="story"] .reference-story-hero h1 {
  font-size: clamp(2.35rem, 4.6vw, 4.95rem);
  line-height: 1.08;
  max-width: 11em;
  text-shadow: 0 3px 14px rgba(0, 0, 0, 0.78), 0 0 2px rgba(0, 0, 0, 0.9);
}

body[data-page="story"] .reference-story-intro .reference-concept-media {
  position: relative;
}

body[data-page="story"] .reference-story-intro .reference-concept-media::after {
  content: "";
  position: absolute;
  inset: 10%;
  border: 1px solid rgba(216, 166, 57, 0.26);
  pointer-events: none;
}

body[data-page="story"] .reference-story-point-card {
  min-height: 150px;
  padding-block: clamp(1.15rem, 2vw, 1.55rem);
}

body[data-page="story"] .reference-story-point-card p {
  margin: 0.45rem 0 0;
  color: rgba(255, 247, 224, 0.74);
  font-size: clamp(0.78rem, 1vw, 0.92rem);
  line-height: 1.6;
}

body[data-page="story"] .reference-story-gallery .reference-gallery-track {
  align-items: center;
}

body[data-page="story"] .reference-story-gallery-card.is-featured {
  transform: scale(1.22);
  transform-origin: center;
  z-index: 2;
}

body[data-page="story"] .reference-story-gallery-card.is-featured .reference-gallery-photo {
  box-shadow: 0 24px 52px rgba(0, 0, 0, 0.44), 0 0 0 1px rgba(216, 166, 57, 0.42);
}

body[data-page="story"] .reference-story-final-cta {
  text-align: center;
  justify-items: center;
}

body[data-page="story"] .reference-story-final-cta > div {
  margin-inline: auto;
}

@media (max-width: 767px) {
  body[data-page="story"] .reference-story-hero-copy {
    padding-left: clamp(1.25rem, 7vw, 2rem);
  }

  body[data-page="story"] .reference-story-hero-logo {
    transform: translateY(-6px);
  }

  body[data-page="story"] .reference-story-hero h1 {
    font-size: clamp(2rem, 10vw, 3.05rem);
  }

  body[data-page="story"] .reference-story-gallery-card.is-featured {
    transform: scale(1.08);
  }
}

/* Story page intro media visibility fix */
body[data-page="story"] .reference-story-intro .reference-concept-media {
  min-height: clamp(320px, 34vw, 460px);
  aspect-ratio: 4 / 3;
}

body[data-page="story"] .reference-story-intro .reference-concept-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 767px) {
  body[data-page="story"] .reference-story-intro .reference-concept-media {
    min-height: 220px;
    aspect-ratio: 16 / 10;
  }
}

/* Keep BGM clear of the restored footer on tablet layouts */
@media (min-width: 768px) and (max-width: 1023px) {
  body.footer-in-view .bgm-widget {
    bottom: calc(var(--bgm-footer-offset, 112px) + env(safe-area-inset-bottom));
  }
}
@media (max-width: 360px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .order-root,
  .order-delivery-quote,
  .order-delivery-quote-form,
  .order-delivery-quote-result,
  .order-delivery-quote-card,
  .order-delivery-quote-card dl {
    max-width: 100%;
    min-width: 0;
  }

  .order-delivery-quote {
    overflow-x: clip;
  }

  .order-delivery-quote-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .order-delivery-quote-actions .button,
  .order-delivery-quote-form input {
    width: 100%;
    min-width: 0;
  }
}
@media (max-width: 360px) {
  .site-nav {
    min-width: 0;
    gap: 0.35rem;
  }

  .site-nav-list {
    min-width: 0;
    overflow: hidden;
  }

  #lang-switch,
  .language-switch-button {
    width: 2.5rem;
    min-width: 2.5rem;
    max-width: 2.5rem;
    padding-inline: 0.25rem;
    overflow: hidden;
    white-space: nowrap;
  }
}

/* iPad mini 5th generation viewport tuning. */
@media (min-width: 720px) and (max-width: 1024px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  body {
    text-wrap: pretty;
  }

  .site-container,
  .reference-home .site-container,
  main.site-container {
    width: min(100% - 1.25rem, var(--max-width));
    padding-inline: max(0.35rem, env(safe-area-inset-left)) max(0.35rem, env(safe-area-inset-right));
  }

  .site-header,
  .reference-home .site-nav {
    min-width: 0;
  }

  .site-nav,
  .reference-home .site-nav {
    gap: 0.65rem;
    min-height: 60px;
    padding-block: 0.45rem;
  }

  .site-brand,
  .reference-home .site-brand {
    min-width: 0;
  }

  .site-brand img,
  .reference-home .site-brand img {
    max-height: 42px;
    width: auto;
  }

  .site-nav-list,
  .reference-home .site-nav-list {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    justify-content: flex-start;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .site-nav-list::-webkit-scrollbar,
  .reference-home .site-nav-list::-webkit-scrollbar {
    display: none;
  }

  .site-nav-list a,
  .reference-home .site-nav-list a,
  .button,
  button,
  input,
  select,
  textarea {
    min-height: 48px;
  }

  .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }

  .reference-feature-row,
  .reference-menu-grid,
  .reference-gallery-grid,
  .menu-grid,
  .order-service-grid,
  .order-skeleton-grid {
    min-width: 0;
  }

  .reference-menu-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow-x: visible;
  }

  .reference-menu-card {
    min-width: 0;
  }

  .reference-gallery-track,
  .home-concept-carousel {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  .reference-gallery-card,
  .home-concept-item {
    min-width: min(280px, calc(100vw - 2rem));
  }

  .reference-gallery-card h3,
  .reference-menu-card h3,
  .menu-card h3,
  .order-service-card h3,
  .order-status-copy strong {
    overflow-wrap: anywhere;
  }

  .order-breadcrumb {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .order-service-card,
  .menu-card,
  .card {
    min-width: 0;
  }

  .order-delivery-quote,
  .order-delivery-quote-form,
  .order-delivery-quote-result,
  .order-delivery-quote-card,
  .order-status-component {
    max-width: 100%;
    min-width: 0;
  }

  .order-delivery-quote-actions {
    flex-wrap: wrap;
  }
}

@media (min-width: 720px) and (max-width: 899px), (min-width: 720px) and (max-width: 1024px) and (orientation: portrait) {
  .site-nav,
  .reference-home .site-nav {
    flex-wrap: wrap;
  }

  .site-nav-list,
  .reference-home .site-nav-list {
    order: 3;
    width: 100%;
  }

  .reference-menu-grid,
  .menu-grid,
  .order-service-grid,
  .order-skeleton-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reference-gallery-card,
  .home-concept-item {
    min-width: min(260px, calc(50vw - 1rem));
  }

  .order-service-action-wrap,
  .order-service-action-wrap .button,
  .order-delivery-quote-actions .button {
    width: 100%;
  }
}

@media (min-width: 768px) and (max-width: 900px) {
  body.reference-home .site-header,
  body.reference-home #main,
  body.reference-home .reference-gallery,
  body.reference-home .reference-gallery-track,
  body.reference-home .reference-map,
  body.reference-home .reference-footer {
    overflow-x: clip;
  }
}
