:root {
  --paso-body: 游ゴシック体, "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, メイリオ, "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;
  --paso-display: "Frank Ruhl Libre", serif;
}
html { overflow-x: hidden; }
body { background: var(--color-bg); color: var(--color-text); font-family: var(--paso-body); font-size: 16px; font-weight: 400; line-height: 1.5; }
body, h1, h2, h3, p, ul, dl { margin: 0; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.container { width: min(100% - 32px, 1200px); margin: 0 auto; }
.site-header { background: var(--color-bg); border-bottom: 1px solid color-mix(in srgb, var(--color-text) 18%, transparent); }
.site-header .container { align-items: center; display: flex; justify-content: space-between; min-height: 76px; gap: 28px; }
.site-logo { flex: 0 0 auto; font-family: var(--paso-display); font-size: 25px; font-weight: 400; letter-spacing: 1px; line-height: 1.1; }
.site-nav { margin-left: auto; }
.site-nav ul { align-items: center; display: flex; gap: 22px; list-style: none; }
.site-nav a { align-items: center; display: inline-flex; font-size: 10px; letter-spacing: -0.8px; line-height: 1.2; min-height: 44px; white-space: nowrap; }
.site-nav a:hover, .site-nav a:focus-visible, .site-nav a.active { color: var(--color-primary); text-decoration: underline; text-underline-offset: 5px; }
.hamburger { display: none; }
.hero { isolation: isolate; min-height: 650px; overflow: hidden; position: relative; }
.hero-slides, .hero-overlay { inset: 0; position: absolute; z-index: -2; }
.hero-slide { height: 100%; inset: 0; object-fit: cover; opacity: 0; position: absolute; transition: opacity 1s ease; width: 100%; }
.hero-slide.is-active { opacity: 1; }
.hero-overlay { background: color-mix(in srgb, #000 45%, transparent); z-index: -1; }
.hero-content { color: #ffffff; display: flex; flex-direction: column; justify-content: center; min-height: 650px; padding: 80px 0; }
.hero-kicker, .eyebrow { color: var(--color-accent); font-family: var(--paso-display); font-size: 16px; letter-spacing: 2px; line-height: 1.3; }
.hero-kicker { color: #ffffff; margin-bottom: 18px; }
h1, h2 { font-family: var(--paso-display); font-weight: 400; letter-spacing: 2px; line-height: 1.3; }
h1 { font-size: 48px; max-width: 780px; }
.hero-copy { font-size: 16px; margin-top: 24px; max-width: 620px; }
.hero-actions, .contact-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.button { align-items: center; display: inline-flex; font-size: 16px; justify-content: center; min-height: 44px; padding: 10px 30px; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.button-primary { background: var(--color-primary); color: #ffffff; }
.button-primary:hover, .button-primary:focus-visible { background: color-mix(in srgb, var(--color-primary) 80%, #000); }
.button-secondary { background: transparent; border: 1px solid color-mix(in srgb, var(--color-text) 50%, var(--color-bg)); border-radius: 8px; color: var(--color-text); }
.button-secondary:hover, .button-secondary:focus-visible { background: color-mix(in srgb, var(--color-text) 8%, var(--color-bg)); }
.button-light { background: #ffffff; color: var(--color-text); }
.button-light:hover, .button-light:focus-visible { background: color-mix(in srgb, #ffffff 88%, var(--color-text)); }
.section { padding: 96px 0; }
.intro { background: color-mix(in srgb, var(--color-accent) 8%, var(--color-bg)); }
.intro-grid, .seasonal-grid, .kitchen-grid, .visit-grid { align-items: center; display: grid; gap: 64px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.section-heading h2, .seasonal h2, .kitchen h2, .visit h2, .contact-cta h2, .center-heading h2 { font-size: 40px; }
.section-heading .eyebrow, .seasonal .eyebrow, .kitchen .eyebrow, .visit .eyebrow, .contact-cta .eyebrow, .center-heading .eyebrow { margin-bottom: 16px; }
.intro-copy { display: grid; gap: 18px; }
.text-link { color: var(--color-text); display: inline-flex; font-size: 16px; margin-top: 8px; text-decoration: underline; text-decoration-color: var(--color-primary); text-underline-offset: 6px; }
.text-link:hover, .text-link:focus-visible { color: var(--color-primary); }
.feature-section { padding-top: 104px; }
.feature-grid { display: grid; gap: 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature-card { display: flex; flex-direction: column; }
.feature-card img, .seasonal-image img, .moment-card img, .kitchen-photos img, .gallery-grid img, .visit-grid > img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.feature-card h3, .moment-card h3 { font-size: 16px; font-weight: 700; line-height: 1.5; margin-top: 16px; }
.feature-card p, .moment-card p { color: var(--color-secondary); font-size: 13px; margin-top: 6px; }
.feature-card .text-link { font-size: 13px; margin-top: 14px; }
.seasonal { background: color-mix(in srgb, var(--color-primary) 5%, var(--color-bg)); }
.seasonal-content { display: grid; justify-items: start; }
.seasonal-content > p:not(.eyebrow), .kitchen-content > p:not(.eyebrow), .visit-content > p:not(.eyebrow) { margin-top: 22px; }
.seasonal-content .button, .visit-content .button { margin-top: 28px; }
.center-heading { text-align: center; }
.moments-grid { display: grid; gap: 16px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 44px; }
.moment-card { text-align: center; }
.moment-card h3 { margin-top: 12px; }
.moment-card p { text-wrap: balance; }
.kitchen-grid { align-items: start; }
.kitchen-content { padding-top: 48px; }
.kitchen-photos { display: grid; gap: 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gallery { padding-top: 0; }
.gallery-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.visit { padding-top: 112px; }
.shop-details { border-top: 1px solid color-mix(in srgb, var(--color-text) 25%, transparent); margin-top: 26px; }
.shop-details > div { border-bottom: 1px solid color-mix(in srgb, var(--color-text) 25%, transparent); display: grid; gap: 16px; grid-template-columns: 72px 1fr; padding: 12px 0; }
.shop-details dt { color: var(--color-secondary); font-size: 13px; }
.shop-details dd { margin: 0; }
.shop-details a { text-decoration: underline; text-underline-offset: 4px; }
.contact-cta { background: color-mix(in srgb, var(--color-accent) 8%, var(--color-bg)); text-align: center; }
.contact-cta-inner { display: flex; flex-direction: column; align-items: center; }
.contact-actions { justify-content: center; }
@media (max-width: 1024px) { .site-nav ul { gap: 13px; } .moments-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .site-header { position: relative; z-index: 10; } .site-header .container { min-height: 64px; } .site-logo { font-size: 19px; max-width: calc(100% - 60px); }
  .hamburger { align-items: center; background: transparent; border: 0; display: flex; flex: 0 0 44px; flex-direction: column; gap: 5px; height: 44px; justify-content: center; width: 44px; }
  .hamburger span { background: var(--color-text); display: block; height: 1px; width: 23px; }
  .site-nav { background: var(--color-bg); border-bottom: 1px solid color-mix(in srgb, var(--color-text) 18%, transparent); display: none; left: 0; margin: 0; padding: 12px 16px 18px; position: absolute; top: 64px; width: 100%; }
  .site-nav.open { display: block; } .site-nav ul { align-items: stretch; display: grid; gap: 0; grid-template-columns: 1fr; } .site-nav li { border-bottom: 1px solid color-mix(in srgb, var(--color-text) 16%, transparent); }
  .site-nav a { font-size: 14px; letter-spacing: normal; min-height: 44px; padding: 0 4px; width: 100%; }
  .hero, .hero-content { min-height: 500px; } .hero-content { padding: 64px 0; } h1 { font-size: 31px; letter-spacing: 1px; } .hero-copy { font-size: 15px; margin-top: 20px; }
  .hero-actions { margin-top: 28px; } .hero-actions .button { flex: 1 1 140px; } .section { padding: 64px 0; }
  .intro-grid, .seasonal-grid, .kitchen-grid, .visit-grid { gap: 32px; grid-template-columns: 1fr; }
  .section-heading h2, .seasonal h2, .kitchen h2, .visit h2, .contact-cta h2, .center-heading h2 { font-size: 28px; letter-spacing: 1px; }
  .feature-section { padding-top: 72px; } .feature-grid { gap: 32px 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); } .feature-card:last-child { grid-column: 1 / -1; max-width: calc(50% - 8px); }
  .feature-card h3 { font-size: 15px; } .feature-card p { font-size: 13px; } .seasonal-image { order: -1; }
  .moments-grid { gap: 24px 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); } .moment-card:last-child { grid-column: 1 / -1; justify-self: center; width: calc(50% - 8px); }
  .site-footer .footer-bottom { align-items: center; display: flex; flex-direction: column; gap: 0.5rem; }
  .site-footer .footer-privacy { margin-left: 0 !important; margin-top: 0; }
  .kitchen-content { padding-top: 0; } .kitchen-photos { gap: 16px; } .gallery { padding-top: 0; } .gallery-grid { gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .visit { padding-top: 72px; } .visit-grid > img { order: -1; } .contact-actions { width: 100%; } .contact-actions .button { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; } }

.site-header { position: static; transition: none; }
.site-header.scrolled { box-shadow: none; }
@media (max-width: 767px) {
  .site-header.nav-collapsed .hamburger { display: flex; }
  .site-header.nav-collapsed .site-nav { border-bottom: 1px solid color-mix(in srgb, var(--color-text) 18%, transparent); box-shadow: none; left: 0; max-height: none; padding: 12px 16px 18px; right: auto; top: 64px; width: 100%; }
  .site-header.nav-collapsed .site-nav ul { display: grid; }
  .site-header.nav-collapsed .site-nav a { font-size: 14px; letter-spacing: normal; padding: 0 4px; }
}
@media (max-width: 767px) { .site-header { position: relative; z-index: 10; } }

@media (max-width: 767px) {
  #hero-title { font-size: 29px; letter-spacing: 0; }
}

.site-footer .footer-brand { display: flex; flex-direction: column; min-width: 0; }
.site-footer .footer-privacy { display: inline-block; white-space: nowrap; }

/* sm-page-hero */
/* 下層ページの見出しの帯(全ページ共通。正本 = about の帯。高さは PC 390px / スマホ 300px。unify-page-hero.js) */
.smph-container { width: min(100% - 32px, 1200px); margin: 0px auto; }
.site-header .smph-container { align-items: center; display: flex; justify-content: space-between; min-height: 76px; gap: 28px; }
.hero-kicker, .smph-eyebrow { color: var(--color-accent); font-family: var(--paso-display); font-size: 16px; letter-spacing: 2px; line-height: 1.3; }
.section-heading .smph-eyebrow, .seasonal .smph-eyebrow, .kitchen .smph-eyebrow, .visit .smph-eyebrow, .contact-cta .smph-eyebrow, .center-heading .smph-eyebrow { margin-bottom: 16px; }
.seasonal-content > p:not(.smph-eyebrow), .kitchen-content > p:not(.smph-eyebrow), .visit-content > p:not(.smph-eyebrow) { margin-top: 22px; }
@media (max-width: 767px) {.site-header .smph-container { min-height: 64px; }}
.smph-about-hero { min-height: 440px; overflow: hidden; position: relative; }
.smph-about-hero::before { background: color-mix(in srgb, rgb(0, 0, 0) 42%, transparent); content: ""; inset: 0px; position: absolute; }
.smph-about-hero img { height: 100%; inset: 0px; object-fit: cover; position: absolute; width: 100%; }
.smph-about-hero .smph-container { color: rgb(255, 255, 255); display: flex; flex-direction: column; justify-content: center; min-height: 440px; padding-bottom: 64px; padding-top: 64px; position: relative; }
.smph-about-hero .smph-eyebrow { color: rgb(255, 255, 255); margin-bottom: 16px; }
.smph-about-hero h1 { font-size: 48px; }
.smph-about-hero p:last-child { margin-top: 20px; }
.about-copy .smph-eyebrow, .about-values .smph-eyebrow, .about-details .smph-eyebrow { margin-bottom: -2px; }
.about-contact .smph-eyebrow { margin-bottom: 16px; }
@media (max-width: 767px) {.smph-about-hero, .smph-about-hero .smph-container { min-height: 360px; } .smph-about-hero .smph-container { padding-bottom: 48px; padding-top: 48px; } .smph-about-hero h1, .about-copy h2, .about-values h2, .about-details h2, .about-contact h2 { font-size: 28px; letter-spacing: 1px; }}
[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:48px !important;line-height:62.4px !important;letter-spacing:2px !important;font-weight:400 !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:28px !important;line-height:36.4px !important;letter-spacing:1px !important;font-weight:400 !important;}[data-sm-section-title]{font-size:28px !important;line-height:36.4px !important;letter-spacing:1px !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;}}
h1, 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;}}
