.dishes-section { background: var(--color-bg); }
.gallery-section { background: var(--color-bg); }
.information-section { background: var(--color-bg); }
:root {
  --font-body: 游ゴシック体, "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, メイリオ, "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;
  --font-heading: "Frank Ruhl Libre", serif;
  --lh-body: 1.5;
}
html { scroll-behavior: smooth; }
body { font-family: var(--font-body); font-size: 16px; line-height: 1.5; background: var(--color-bg); color: var(--color-text); font-feature-settings: normal; line-break: strict; word-break: normal; word-break: auto-phrase; overflow-wrap: break-word; }
:is(h1:where(:not([data-sm-h])),:where([data-sm-h="h1"])), h3, h4, h5, h6 { font-family: var(--font-body); }
h3 { font-size: 16px; font-weight: 700; line-height: 1.5; }
p, ul, figure { margin: 0; }
a { color: var(--color-text); transition: color .2s ease, background-color .2s ease; }
a:hover { color: var(--color-primary); opacity: 1; }
button { font: inherit; cursor: pointer; }
.container { max-width: 1200px; padding-inline: 16px; margin-inline: auto; }
.phrase { display: inline-block; }
.skip-link { min-height: 44px; background: var(--color-primary); color: white; }
.site-header { position: relative; top: auto; border-bottom: 1px solid color-mix(in srgb, var(--color-secondary) 16%, var(--color-bg)); background: var(--color-bg); }
.site-header.scrolled { box-shadow: none; }
.site-header .container { height: 104px; gap: 24px; }
.site-logo { flex: 0 0 88px; max-width: none; overflow: visible; }
.site-logo img { width: 88px; aspect-ratio: 1; object-fit: contain; height: auto; }
.site-nav { flex: 0 1 auto; }
.site-nav ul { gap: calc(16px * var(--nav-scale, 1)); flex-wrap: nowrap; }
.site-nav a { display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px 4px; font-size: 10px; font-weight: 400; line-height: 1.2; letter-spacing: -.8px; white-space: nowrap; border-bottom: 1px solid transparent; }
.site-nav a:hover, .site-nav a.active { color: var(--color-primary); border-bottom-color: var(--color-primary); }
.hamburger { width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 8px; }
.hamburger span { background: var(--color-text); }
.site-header.nav-collapsed .site-nav { top: 104px; background: var(--color-bg); box-shadow: 0 4px 12px rgba(0,0,0,.12); }
.site-header.nav-collapsed .site-nav a { justify-content: flex-start; }
.main-visual { padding: 24px 0 64px; }
.visual-layout { display: grid; grid-template-columns: 1fr 1.8fr; align-items: center; max-width: 1408px; margin: auto; padding: 0 24px; }
.visual-copy { padding: 40px 40px 40px 64px; }
.eyebrow { font-family: var(--font-body); font-size: 12px; font-weight: 400; line-height: 1.5; color: var(--color-secondary); }
.visual-copy .eyebrow { margin-bottom: 24px; color: var(--color-secondary); }
.visual-copy :is(h1:where(:not([data-sm-h])),:where([data-sm-h="h1"])) { font-family: var(--font-body); font-size: 40px; font-weight: 400; line-height: 1.3; letter-spacing: 2px; margin: 0 0 24px; }
.visual-description { margin-bottom: 40px; }
.visual-copy .primary-button { margin-bottom: 24px; }
.visual-location { font-size: 12px; color: var(--color-secondary); }
.visual-photographs { min-width: 0; }
.visual-slides { position: relative; display: grid; overflow: hidden; background: color-mix(in srgb, var(--color-secondary) 8%, var(--color-bg)); }
.visual-slide { grid-area: 1 / 1; display: block; width: 100%; height: auto; max-height: none; aspect-ratio: 4 / 3; object-fit: cover; opacity: 0; transition: opacity 1s ease; }
.visual-slide.is-current { opacity: 1; z-index: 1; }
.visual-controls { display: flex; align-items: center; gap: 8px; min-height: 56px; }
.visual-controls > p { font-size: 12px; color: var(--color-secondary); margin-right: auto; }
.slide-dots { display: flex; align-items: center; flex-shrink: 0; }
.slide-dot { display: grid; place-items: center; width: 44px; height: 44px; border: 0; background: transparent; }
.slide-dot::before { content: ""; width: 6px; height: 6px; background: color-mix(in srgb, var(--color-secondary) 40%, var(--color-bg)); border-radius: 20px; box-shadow: inset 0 0 2px rgba(0,0,0,.3); }
.slide-dot.is-current::before { width: 24px; background: var(--color-text); box-shadow: none; }
.slide-pause { width: 44px; height: 44px; flex-shrink: 0; border: 0; background: transparent; color: var(--color-text); }
.slide-pause:disabled { opacity: .5; cursor: default; }
.home-section { padding: 64px 0; }
.pale-band { background: color-mix(in srgb, var(--color-accent) 7%, var(--color-bg)); }
.compact-section { padding: 64px 0; }
main .display-heading { font-family: "Frank Ruhl Libre", serif; font-size: 40px; font-weight: 400; line-height: 1.3; letter-spacing: 2px; color: var(--color-text); margin: 0; text-wrap: balance; }
.section-caption { font-size: 13px; line-height: 1.5; color: var(--color-secondary); margin-top: 8px; }
.section-heading { text-align: center; margin-bottom: 40px; }
.section-heading > p:last-child:not(.section-caption) { margin-top: 24px; }
.editorial-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; align-items: center; }
.editorial-copy { min-width: 0; }
.editorial-copy > p + p { margin-top: 24px; }
.editorial-copy .copy-heading, .sauce-section .copy-heading { margin-top: 24px; margin-bottom: 24px; }
.copy-heading { font-size: 24px; font-weight: 400; line-height: 1.5; letter-spacing: normal; }
.photo-frame { margin: 0; }
.photo-frame img, .dish-card img, .photo-gallery img { width: 100%; height: auto; max-height: none; aspect-ratio: 4 / 3; object-fit: cover; background: color-mix(in srgb, var(--color-secondary) 8%, var(--color-bg)); }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 44px; margin-top: 24px; font-size: 13px; border-bottom: 1px solid color-mix(in srgb, var(--color-secondary) 40%, var(--color-bg)); }
.text-link:hover { text-decoration: underline; }
.text-link span { color: var(--color-accent); font-size: 18px; }
.primary-button { display: inline-flex; justify-content: space-between; align-items: center; gap: 40px; min-height: 56px; padding: 16px 24px; border: 1px solid var(--color-primary); border-radius: 0; background: var(--color-primary); color: white; font-size: 16px; font-weight: 400; line-height: 1.5; }
.primary-button:hover { background: color-mix(in srgb, var(--color-primary) 85%, black); border-color: color-mix(in srgb, var(--color-primary) 85%, black); color: white; }
.secondary-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 40px; min-height: 44px; padding: 0 30px; border: 1px solid color-mix(in srgb, var(--color-secondary) 60%, var(--color-bg)); border-radius: 8px; font-size: 16px; font-weight: 400; color: var(--color-text); background: transparent; }
.secondary-button:hover { border-color: var(--color-primary); color: var(--color-primary); }
.appeal-section .editorial-grid + .editorial-grid { margin-top: 64px; }
.appeal-note { text-align: center; max-width: 640px; margin: 64px auto 0; }
.appeal-note .copy-heading { margin: 16px 0; }
.five-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.fact-grid { text-align: center; }
.fact-grid article { padding: 16px 8px; border-left: 1px solid color-mix(in srgb, var(--color-accent) 30%, var(--color-bg)); }
.fact-grid article:first-child { border-left: 0; }
.fact-grid p:not(.fact-number) { margin-top: 8px; font-size: 13px; color: var(--color-secondary); }
.fact-number { font-family: var(--font-heading); font-size: 40px; line-height: 1.3; letter-spacing: 2px; font-weight: 400; color: var(--color-accent); margin-bottom: 16px; }
.heading-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 40px; }
.heading-row .text-link { margin-top: 0; }
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; list-style: none; }
.news-grid li { border-top: 1px solid color-mix(in srgb, var(--color-secondary) 25%, var(--color-bg)); }
.news-grid a { display: block; padding: 24px 0 8px; min-height: 44px; }
.news-date { font-size: 12px; color: var(--color-secondary); margin-bottom: 16px; }
.news-arrow { text-align: right; color: var(--color-accent); margin-top: 16px; }
.dish-card { min-width: 0; padding: 16px; background: var(--color-bg); border: 0; border-radius: 0; box-shadow: none; }
.dish-card h3 { margin-top: 16px; }
.dish-card p { margin-top: 8px; font-size: 13px; line-height: 1.5; color: var(--color-secondary); }
.center-action { text-align: center; margin-top: 24px; }
.center-action .text-link { margin-top: 0; }
.sauce-section { border-top: 1px solid color-mix(in srgb, var(--color-secondary) 15%, var(--color-bg)); }
.photo-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.photo-gallery figure { min-width: 0; }
.store-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.store-table th, .store-table td { padding: 16px 8px; border-bottom: 1px solid color-mix(in srgb, var(--color-secondary) 20%, var(--color-bg)); text-align: left; line-height: 1.5; vertical-align: top; }
.store-table th { width: 88px; padding-left: 0; font-weight: 400; color: var(--color-secondary); white-space: nowrap; }
.store-table td a { display: inline-flex; align-items: center; min-height: 44px; font-size: 18px; }
.map-link { width: 100%; }
.reservation-section { text-align: center; background: color-mix(in srgb, var(--color-accent) 7%, var(--color-bg)); }
.reservation-section .eyebrow { margin-bottom: 16px; }
.reservation-section .section-caption { margin-bottom: 24px; }
.reservation-section .container > p { margin-bottom: 0; }
.reservation-actions { display: flex; justify-content: center; align-items: stretch; gap: 24px; margin-top: 40px; }
.reservation-phone { flex-direction: column; gap: 4px; padding: 16px 40px; }
.reservation-phone span { font-family: var(--font-heading); font-size: 28px; line-height: 1.3; letter-spacing: 2px; }
.reservation-hours { margin-top: 24px; font-size: 12px; color: var(--color-secondary); }
@media (max-width: 1024px) {
  .visual-layout { grid-template-columns: 1fr 1.5fr; padding-inline: 16px; }
  .visual-copy { padding: 24px; }
  .visual-copy :is(h1:where(:not([data-sm-h])),:where([data-sm-h="h1"])) { font-size: 28px; }
  .editorial-grid { gap: 40px; }
  .five-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fact-grid article { border: 0; }
  .visual-controls > p { font-size: 10px; }
}
@media (max-width: 767px) {
  .site-header { position: sticky; top: 0; }
  .site-header .container { height: 64px; gap: 16px; }
  .site-logo { flex-basis: 56px; }
  .site-logo img { width: 56px; }
  .hamburger { display: flex; }
  .site-header .site-nav, .site-header.nav-collapsed .site-nav { display: none; position: absolute; top: 64px; left: 0; right: 0; padding: 16px; background: var(--color-bg); max-height: calc(100dvh - 64px); overflow-y: auto; border-top: 1px solid color-mix(in srgb, var(--color-secondary) 16%, var(--color-bg)); box-shadow: 0 4px 12px rgba(0,0,0,.12); }
  .site-header .site-nav.open, .site-header.nav-collapsed .site-nav.open { display: block; }
  .site-header .site-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
  .site-header .site-nav a { justify-content: flex-start; min-height: 44px; padding: 12px 16px; font-size: 10px; line-height: 1.2; border-bottom: 1px solid color-mix(in srgb, var(--color-secondary) 16%, var(--color-bg)); }
  .main-visual { padding: 0 0 40px; }
  .visual-layout { display: flex; flex-direction: column; padding: 0; }
  .visual-photographs { width: 100%; order: -1; }
  .visual-controls { padding: 0 8px 0 16px; gap: 0; }
  .visual-controls > p { font-size: 10px; max-width: 170px; }
  .visual-copy { width: 100%; padding: 24px 24px 0; text-align: center; }
  .visual-copy .eyebrow { margin-bottom: 16px; }
  .visual-copy :is(h1:where(:not([data-sm-h])),:where([data-sm-h="h1"])) { font-size: 28px; line-height: 1.3; letter-spacing: 2px; margin-bottom: 24px; }
  .visual-description { margin-bottom: 24px; }
  .visual-copy .primary-button { margin-bottom: 16px; }
  .home-section, .compact-section { padding: 40px 0; }
  main .display-heading { font-size: 28px; line-height: 1.3; letter-spacing: 2px; }
  .editorial-grid { grid-template-columns: 1fr; gap: 24px; }
  .editorial-copy { padding: 0 8px; }
  .editorial-copy .copy-heading, .sauce-section .copy-heading { margin-top: 24px; margin-bottom: 24px; }
  .copy-heading { font-size: 24px; }
  .section-heading { margin-bottom: 24px; }
  .reverse-grid .photo-frame { order: -1; }
  .appeal-section .editorial-grid + .editorial-grid { margin-top: 40px; }
  .appeal-note { margin-top: 40px; padding-inline: 8px; }
  .five-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fact-grid article { padding: 16px 8px; }
  .fact-grid article:last-child { grid-column: 1 / -1; }
  .fact-number { font-size: 28px; margin-bottom: 8px; }
  .heading-row { gap: 16px; margin-bottom: 24px; }
  .heading-row .text-link { font-size: 12px; gap: 16px; }
  .news-grid { grid-template-columns: 1fr; gap: 0; }
  .news-grid a { padding: 16px 0; }
  .news-date { margin-bottom: 8px; }
  .news-arrow { margin-top: 8px; }
  .dish-card { padding: 16px; }
  .dish-grid { gap: 16px 0; }
  .dish-card:last-child { grid-column: 1 / -1; width: 50%; justify-self: center; }
  .photo-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .information-grid { gap: 24px; }
  .store-table th { width: 72px; }
  .store-table th, .store-table td { padding-block: 16px; }
  .reservation-actions { flex-direction: column; gap: 16px; margin-top: 24px; }
  .reservation-actions .secondary-button { min-height: 56px; }
  .reservation-actions a { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .visual-slide, a { transition: none; }
}
.site-footer .footer-brand { min-width: 0; overflow-wrap: anywhere; }
.site-footer .footer-logo-img { display: block; height: 38px; width: auto; max-width: 170px; object-fit: contain; margin-bottom: .6rem; }
.site-footer .footer-privacy { margin-left: .75rem; overflow-wrap: anywhere; }
.section { min-width: 0; max-width: 100%; }
.site-footer .footer-brand { min-width: 0; overflow-wrap: break-word; }
.site-footer .footer-logo-img { display: block; height: 38px; width: auto; max-width: min(170px, 100%); object-fit: contain; margin-bottom: 0.6rem; }
.site-footer .footer-privacy { margin-left: 0.75rem; overflow-wrap: break-word; }

/* sm-page-hero */
/* 下層ページの見出しの帯(全ページ共通。正本 = news の帯。高さは PC 390px / スマホ 300px。unify-page-hero.js) */
.smph-container { max-width: 1200px; padding-inline: 16px; margin-inline: auto; }
.site-header .smph-container { height: 104px; gap: 24px; }
.smph-home-section { padding: 64px 0px; }
main .smph-display-heading { font-family: "Frank Ruhl Libre", serif; font-size: 40px; font-weight: 400; line-height: 1.3; letter-spacing: 2px; color: var(--color-text); margin: 0px; text-wrap: balance; }
.smph-section-caption { font-size: 13px; line-height: 1.5; color: var(--color-secondary); margin-top: 8px; }
.section-heading > p:last-child:not(.smph-section-caption) { margin-top: 24px; }
.smph-editorial-grid { display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 64px; align-items: center; }
.smph-editorial-copy { min-width: 0px; }
.smph-editorial-copy > p + p { margin-top: 24px; }
.smph-editorial-copy .copy-heading, .sauce-section .copy-heading { margin-top: 24px; margin-bottom: 24px; }
.smph-photo-frame { margin: 0px; }
.smph-photo-frame img, .dish-card img, .photo-gallery img { width: 100%; height: auto; max-height: none; aspect-ratio: 4 / 3; object-fit: cover; background: color-mix(in srgb, var(--color-secondary) 8%, var(--color-bg)); }
.appeal-section .smph-editorial-grid + .smph-editorial-grid { margin-top: 64px; }
.reservation-section .smph-section-caption { margin-bottom: 24px; }
.reservation-section .smph-container > p { margin-bottom: 0px; }
@media (max-width: 1024px) {.smph-editorial-grid { gap: 40px; }}
@media (max-width: 767px) {.site-header .smph-container { height: 64px; gap: 16px; } .smph-home-section, .compact-section { padding: 40px 0px; } main .smph-display-heading { font-size: 28px; line-height: 1.3; letter-spacing: 2px; } .smph-editorial-grid { grid-template-columns: 1fr; gap: 24px; } .smph-editorial-copy { padding: 0px 8px; } .smph-editorial-copy .copy-heading, .sauce-section .copy-heading { margin-top: 24px; margin-bottom: 24px; } .reverse-grid .smph-photo-frame { order: -1; } .appeal-section .smph-editorial-grid + .smph-editorial-grid { margin-top: 40px; }}
[data-sm-page-hero] [data-smph-media]{height:390px !important;min-height:0 !important;max-height:none !important;aspect-ratio:auto !important;overflow:hidden !important;}
[data-sm-page-hero] > :only-child{max-width:none !important;width:100% !important;margin-left:0 !important;margin-right:0 !important;}
[data-sm-page-hero] img{width:100% !important;height:100% !important;max-width:none !important;max-height:none !important;object-fit:cover !important;aspect-ratio:auto !important;}
[data-sm-page-hero]{height:auto !important;min-height:390px !important;max-height:none !important;}
@media (max-width: 767px){[data-sm-page-hero]{min-height:300px !important;}[data-sm-page-hero] [data-smph-media]{height:300px !important;}}

/* 下層ページの見出しの大きさを全ページでそろえる(unify-page-headings.js が実測の最多値から書く) */
[data-sm-page-title]{font-size:32px !important;line-height:48px !important;letter-spacing:normal !important;font-weight:700 !important;}
[data-sm-section-title]{font-size:40px !important;line-height:52px !important;letter-spacing:2px !important;font-weight:400 !important;}
@media (max-width: 767px){[data-sm-page-title]{font-size:32px !important;line-height:48px !important;letter-spacing:normal !important;font-weight:700 !important;}[data-sm-section-title]{font-size:28px !important;line-height:36.4px !important;letter-spacing:2px !important;font-weight:400 !important;}}

/* sm-normalize */
/* セクションの写真の縦横比をそろえる・スマホで狭すぎる段組みを1列に・見出しを文節で折り返す(normalize-sections.js) */
[data-sm-ratio]{aspect-ratio:1 / 0.7500 !important;height:auto !important;min-height:0 !important;max-height:none !important;}
img[data-sm-ratio]{width:100% !important;object-fit:cover !important;display:block;}
[data-sm-gallery]{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;grid-auto-rows:auto !important;gap:16px !important;}
[data-sm-gallery] > *{grid-column:auto !important;grid-row:auto !important;width:auto !important;height:auto !important;margin:0 !important;position:relative !important;}
@media (min-width: 768px){[data-sm-gx-pc]{display:none !important;}}
@media (max-width: 767px){[data-sm-gallery]{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:8px !important;}[data-sm-gx-sp]{display:none !important;}}

[data-sm-imgbox]{height:auto !important;min-height:0 !important;max-height:none !important;}
@media (max-width: 767px){[data-sm-sp1]{display:grid !important;grid-template-columns:1fr !important;gap:24px !important;}[data-sm-sp1] > *{width:auto !important;max-width:none !important;flex:none !important;grid-column:auto !important;}}
@media (max-width: 767px){[data-sm-sp-tall]{aspect-ratio:4 / 5 !important;height:auto !important;min-height:0 !important;max-height:none !important;}img[data-sm-sp-tall]{width:100% !important;object-fit:cover !important;}}
:is(h1:where(:not([data-sm-h])),:where([data-sm-h="h1"])), :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])), h3{word-break:auto-phrase;text-wrap:balance;}
[data-sm-hero-box="media"]{height:720px !important;min-height:0 !important;max-height:none !important;aspect-ratio:auto !important;}
[data-sm-hero-box="media"] > *{height:100% !important;min-height:0 !important;}
[data-sm-hero-wide]{max-width:none !important;width:100% !important;margin-left:0 !important;margin-right:0 !important;}
[data-sm-hero-box="section"]{height:auto !important;min-height:720px !important;max-height:none !important;}
img[data-sm-hero-img]{width:100% !important;height:100% !important;object-fit:cover !important;}
@media (max-width: 767px){[data-sm-hero-box="media"]{height:420px !important;}[data-sm-hero-box="section"]{min-height:420px !important;}}
.site-footer .footer-nav ul{display:grid !important;grid-auto-flow:column !important;grid-template-rows:repeat(5, auto) !important;grid-auto-columns:max-content !important;column-gap:clamp(24px, 3vw, 48px) !important;row-gap:0 !important;}
.site-footer .footer-nav li{margin:0 0 0.4rem !important;}
@media (min-width: 768px){.site-footer .footer-grid{grid-template-columns:minmax(0, 1.4fr) auto minmax(0, 1fr) !important;}}
@media (min-width: 768px){.site-header:not(.nav-collapsed) .site-nav ul{display:flex !important;flex-wrap:nowrap !important;grid-template-columns:none !important;align-items:center !important;gap:0 clamp(14px, 1.6vw, 28px) !important;}.site-header:not(.nav-collapsed) .site-nav li{flex:none !important;}.site-header:not(.nav-collapsed) .site-nav a{white-space:nowrap !important;}}

/* sm-reveal */
/* セクションのフェードイン(common.js が画面に入った .fade-in に .visible を付ける。add-section-reveal.js) */
.sm-js .fade-in{opacity:0;transform:translateY(40px);transition:opacity 0.9s ease,transform 0.9s ease;}
.sm-js .fade-in.visible{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){.fade-in, .fade-in > *{opacity:1 !important;transform:none !important;transition:none !important;}}
