:root {
  --red: #b94b38;
  --red-dark: #91392d;
  --walnut: #6b4a37;
  --walnut-dark: #433129;
  --olive: #73745b;
  --warm-gray: #777762;
  --egg: #ead9aa;
  --sage: #cbd1b5;
  --brass: #b38a4a;
  --ink: #352b25;
  --muted: #786d62;
  --paper: #f8eedc;
  --cream: #f2dfbd;
  --line: #ddc9aa;
  --white: #fffaf0;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
section[id] { scroll-margin-top: 78px; }
body { margin: 0; padding-top: 78px; color: var(--ink); background-color: #fbf3e4; background-image: repeating-linear-gradient(8deg, rgba(108,88,62,.025) 0, rgba(108,88,62,.025) 1px, transparent 1px, transparent 6px), repeating-linear-gradient(96deg, rgba(255,255,255,.24) 0, rgba(255,255,255,.24) 1px, transparent 1px, transparent 9px); font-family: "Noto Sans JP", sans-serif; font-size: 17px; line-height: 1.85; }
a { color: inherit; }
img { display: block; max-width: 100%; }

.site-header { height: 78px; padding: 0 clamp(20px, 4vw, 64px); display: flex; align-items: center; gap: 32px; background: rgba(255,253,247,.97); border-bottom: 1px solid rgba(84,65,42,.16); position: fixed; top: 0; left: 0; right: 0; z-index: 20; backdrop-filter: blur(12px); box-shadow: 0 5px 18px rgba(71,45,26,.06); }
.brand { display: flex; align-items: center; gap: 11px; text-decoration: none; margin-right: auto; }
.brand-mark { width: 43px; height: 43px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; overflow: hidden; background: #111; box-shadow: 0 0 0 1px rgba(53,43,37,.13); }
.brand-mark img { width: 100%; height: 100%; object-fit: cover; }
.brand strong { display: block; font: 700 19px "Shippori Mincho", serif; letter-spacing: .08em; }
.brand small { display: block; color: var(--muted); font-size: 10px; letter-spacing: .04em; line-height: 1.3; }
nav { display: flex; gap: clamp(14px, 1.6vw, 25px); }
nav a { text-decoration: none; font-size: 14px; font-weight: 600; }
nav a:hover { color: var(--red); }
nav a[aria-current="page"] { color: var(--red); }
.header-call { color: var(--white); background: var(--red); padding: 10px 20px; border-radius: 999px; text-decoration: none; font-size: 13px; font-weight: 700; }
.menu-button { display: none; }


.hero { min-height: calc(100vh - 78px); height: 720px; position: relative; display: flex; align-items: center; overflow: hidden; color: var(--white); }
.hero > img { position: absolute; inset: -7% 0; width: 100%; height: 114%; object-fit: cover; transform: translate3d(0, var(--hero-parallax, 0px), 0) scale(1.02); will-change: transform; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(55,37,27,.7) 0%, rgba(55,37,27,.35) 48%, rgba(55,37,27,.03) 78%), linear-gradient(0deg, rgba(54,34,20,.16), transparent 45%); }
.hero-copy { width: min(920px, 87%); margin-left: max(7vw, 30px); position: relative; z-index: 1; }
.eyebrow { margin: 0 0 12px; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow.red { color: var(--red); }
.eyebrow.light { color: #e9cfac; }
.hero h1, h2 { font-family: "Shippori Mincho", serif; }
.hero h1 { max-width: 920px; margin: 0 0 24px; font-size: clamp(38px, 4.4vw, 62px); line-height: 1.42; letter-spacing: .035em; text-shadow: 0 3px 28px rgba(0,0,0,.22); text-wrap: balance; }
.hero-copy > p:not(.eyebrow) { max-width: 620px; font-size: clamp(14px, 1.5vw, 18px); letter-spacing: .045em; }
.hero-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.hero-tags span { padding: 6px 11px; border: 1px solid rgba(255,255,255,.48); border-radius: 999px; background: rgba(24,19,13,.3); font-size: 12px; letter-spacing: .05em; }
.hero-actions { display: flex; gap: 12px; margin-top: 35px; }
.button { display: inline-flex; min-height: 52px; padding: 0 24px; align-items: center; justify-content: center; border-radius: 4px; text-decoration: none; font-weight: 700; font-size: 14px; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button.primary { color: var(--white); background: var(--red); }
.button.primary:hover { background: var(--red-dark); }
.button.ghost { border: 1px solid rgba(255,255,255,.7); background: rgba(0,0,0,.15); }
.button.cream { color: var(--red-dark); background: var(--cream); font-size: 19px; }
.button.full { width: 100%; }
.hero-note { position: absolute; right: 30px; bottom: 35px; z-index: 1; writing-mode: vertical-rl; font-family: "Shippori Mincho", serif; font-size: 13px; letter-spacing: .2em; }

.section { padding: 88px clamp(24px, 7vw, 110px); }
.section-heading h2 { max-width: 700px; margin: 0; font-size: clamp(32px, 4vw, 52px); line-height: 1.5; letter-spacing: .035em; text-wrap: balance; }
.title-line { display: block; white-space: nowrap; }
.section-heading.center { text-align: center; }
.section-heading.center h2 { margin-inline: auto; }
.section-heading.center > p:last-child { color: var(--muted); }
.experience { position: relative; display: grid; grid-template-columns: minmax(310px, .8fr) minmax(440px, 1.2fr); gap: 70px clamp(55px, 8vw, 120px); align-items: center; overflow: hidden; background: #fffaf0; }
.experience::before { content: "YAMAHOUSHI"; position: absolute; right: -18px; top: 12px; color: rgba(169,49,30,.045); font: 700 clamp(60px, 11vw, 160px) "Shippori Mincho", serif; letter-spacing: .07em; pointer-events: none; }
.experience-photo { position: relative; max-width: 510px; justify-self: end; padding: 0 0 30px 30px; }
.experience-photo::before { content: ""; position: absolute; left: 0; bottom: 0; width: 72%; height: 72%; background: #e9c994; }
.experience-photo img { position: relative; z-index: 1; width: 100%; max-height: 610px; aspect-ratio: 3 / 4; object-fit: cover; box-shadow: 18px 20px 0 rgba(185,75,56,.12); }
.experience-photo > p { position: absolute; left: 0; bottom: 42px; z-index: 2; margin: 0; padding: 9px 15px; color: var(--white); background: var(--red); font: 600 14px "Shippori Mincho", serif; letter-spacing: .08em; }
.experience-copy { position: relative; z-index: 1; max-width: 680px; }
.experience-copy h2 { margin: 0 0 26px; font-size: clamp(32px, 4vw, 53px); line-height: 1.5; }
.experience-lead { margin: 0 0 32px; color: #554a41; font-size: 18px; line-height: 2; }
.experience-scenes { border-top: 1px solid var(--line); }
.experience-scenes article { display: grid; grid-template-columns: 48px 1fr; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.experience-scenes article > span { color: var(--red); font: 600 13px "Shippori Mincho", serif; }
.experience-scenes strong { font: 600 20px "Shippori Mincho", serif; }
.experience-scenes p { margin: 2px 0 0; color: var(--muted); font-size: 15px; }
.experience-message { grid-column: 1 / -1; margin: 5px 0 -20px; text-align: center; color: var(--red-dark); font: 600 clamp(25px, 3.2vw, 43px)/1.7 "Shippori Mincho", serif; letter-spacing: .06em; }
.home-intro { max-width: 920px; margin: auto; text-align: center; }
.home-intro h2 { margin: 0 0 24px; font-size: clamp(34px, 4.5vw, 58px); line-height: 1.55; }
.home-intro > p:not(.eyebrow) { color: #5a5047; font-size: 18px; }
.home-intro-links { margin-top: 38px; display: flex; justify-content: center; gap: 16px; }
.home-intro-links a { min-width: 245px; padding: 17px 20px; display: flex; justify-content: space-between; text-decoration: none; border-bottom: 1px solid var(--red); font-weight: 700; }
.home-intro-links span { color: var(--red); }
.home-food { background: #f1e6d1; }
.home-food > .section-heading { max-width: 1120px; margin: auto; }
.home-food > .section-heading > p:last-child { color: var(--muted); }
.home-food-collage { max-width: 1120px; margin: 44px auto 28px; display: grid; grid-template-columns: 1.15fr .85fr; grid-template-rows: repeat(2, 245px); gap: 16px; }
.home-food-collage figure { position: relative; margin: 0; overflow: hidden; }
.home-food-collage .large { grid-row: 1 / 3; }
.home-food-collage img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.home-food-collage figure:hover img { transform: scale(1.025); }
.home-food-collage figcaption { position: absolute; left: 14px; bottom: 14px; padding: 7px 12px; color: var(--white); background: rgba(73,45,29,.82); font: 600 15px "Shippori Mincho", serif; }
.text-link { max-width: 1120px; margin: auto; display: block; text-align: right; color: var(--red-dark); font-weight: 700; text-underline-offset: 5px; }
.home-scenes { display: grid; grid-template-columns: repeat(3,1fr); background: var(--red); color: var(--white); }
.home-scenes article { min-height: 210px; padding: 38px; display: grid; place-content: center; text-align: center; }
.home-scenes article + article { border-left: 1px solid rgba(255,255,255,.25); }
.home-scenes span { font-size: 25px; }
.home-scenes h3 { margin: 7px 0; font: 600 25px "Shippori Mincho", serif; }
.home-scenes p { margin: 0; color: #f5ddd5; font-size: 15px; }
.intro { max-width: 1280px; margin: auto; display: grid; grid-template-columns: .85fr 1.15fr; gap: 60px 100px; }
.intro-copy { padding-top: 12px; color: #554f46; font-size: 17px; }
.values { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.values article { min-height: 190px; position: relative; padding: 34px 38px; overflow: hidden; display: flex; flex-direction: column; justify-content: center; }
.values article + article { border-left: 1px solid var(--line); }
.values article::before { content: ""; position: absolute; inset: 0; pointer-events: none; }
.values article:first-child { color: var(--ink); background-color: #efd0b5; }
.values article:first-child::before { opacity: .22; background-image: radial-gradient(circle at 0 100%, transparent 18px, rgba(150,66,43,.27) 19px, rgba(150,66,43,.27) 20px, transparent 21px), radial-gradient(circle at 100% 100%, transparent 18px, rgba(150,66,43,.27) 19px, rgba(150,66,43,.27) 20px, transparent 21px); background-size: 40px 20px; background-position: 0 0, 20px 0; }
.values article:nth-child(2) { background-color: var(--egg); }
.values article:nth-child(3) { background-color: var(--sage); }
.values article:nth-child(2)::before, .values article:nth-child(3)::before { opacity: .24; background-image: radial-gradient(circle at 0 100%, transparent 18px, rgba(117,91,54,.28) 19px, rgba(117,91,54,.28) 20px, transparent 21px), radial-gradient(circle at 100% 100%, transparent 18px, rgba(117,91,54,.28) 19px, rgba(117,91,54,.28) 20px, transparent 21px); background-size: 40px 20px; background-position: 0 0, 20px 0; }
.values span, .values h3, .values p { position: relative; z-index: 1; }
.values span { color: rgba(169,49,30,.28); position: absolute; right: 25px; top: 12px; font: 700 68px "Shippori Mincho", serif; }
.values article:first-child span { color: rgba(169,49,30,.28); }
.values h3 { margin: 0 0 12px; font: 600 23px "Shippori Mincho", serif; }
.values p { margin: 0; color: #51483f; font-size: 16px; line-height: 1.75; }
.values article:first-child p { color: #51483f; }

.ingredients { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; color: var(--ink); background-color: #f3dfc3; background-image: linear-gradient(135deg, rgba(174,92,56,.045) 25%, transparent 25%, transparent 50%, rgba(174,92,56,.045) 50%, rgba(174,92,56,.045) 75%, transparent 75%); background-size: 24px 24px; }
.ingredients .eyebrow.red { color: var(--red); }
.ingredient-content { max-width: 720px; }
.ingredient-lead { margin: 0 0 24px; color: #574a40; font-size: 18px; }
.ingredient-list { border-top: 1px solid rgba(112,74,48,.22); }
.ingredient-list article { display: grid; grid-template-columns: 180px 1fr; gap: 25px; padding: 20px 0; border-bottom: 1px solid rgba(112,74,48,.22); }
.ingredient-list strong { font: 600 20px "Shippori Mincho", serif; }
.ingredient-list p { margin: 0; color: #5c5148; font-size: 16px; }
.ingredients .detail-note { color: #75685d; }

.food { background: #f1e6d1; }
.food-grid { max-width: 1160px; margin: 55px auto 25px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.food-card { min-height: 360px; padding: 28px; position: relative; overflow: hidden; display: flex; align-items: flex-end; color: var(--white); background: #85866d; border-radius: 4px; }
.food-card::before { content: ""; position: absolute; inset: 0; opacity: .42; background-size: 22px 22px; background-image: linear-gradient(45deg, rgba(255,255,255,.08) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.08) 75%), linear-gradient(45deg, rgba(255,255,255,.08) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.08) 75%); background-position: 0 0, 11px 11px; }
.food-card.bento { background: #77705f url("assets/daily-bento.png") center / cover no-repeat; }
.food-card.bento::before { opacity: 1; background: linear-gradient(0deg, rgba(48,36,27,.76), rgba(48,36,27,.03) 75%); }
.food-card.deli { background: #a87542; }
.food-card.order { background: var(--red); }
.food-card > div { position: relative; z-index: 1; }
.food-card small { color: #ead6b5; letter-spacing: .15em; }
.food-card h3 { margin: 8px 0 10px; font: 600 27px "Shippori Mincho", serif; }
.food-card p { margin: 0; font-size: 16px; }
.food-notice { text-align: center; color: var(--muted); font-size: 13px; }
.page-hero { min-height: 470px; padding: 90px clamp(24px, 9vw, 145px); display: flex; align-items: center; background-color: #f1dfc3; background-image: radial-gradient(rgba(161,74,46,.08) 1px, transparent 1px); background-size: 18px 18px; }
.page-hero > div { max-width: 780px; }
.page-hero h1 { margin: 0 0 22px; font: 600 clamp(39px, 5vw, 67px)/1.45 "Shippori Mincho", serif; }
.page-hero p:last-child { max-width: 650px; color: #5d5147; font-size: 18px; }
.subpage .page-hero { position: relative; isolation: isolate; overflow: hidden; color: #fff8e9; background-color: #a84230; background-image: linear-gradient(30deg, transparent 24%, rgba(255,244,222,.11) 25%, rgba(255,244,222,.11) 26%, transparent 27%, transparent 74%, rgba(255,244,222,.11) 75%, rgba(255,244,222,.11) 76%, transparent 77%), linear-gradient(150deg, transparent 24%, rgba(255,244,222,.08) 25%, rgba(255,244,222,.08) 26%, transparent 27%, transparent 74%, rgba(255,244,222,.08) 75%, rgba(255,244,222,.08) 76%, transparent 77%); background-size: 44px 76px; }
.subpage .page-hero::before { content: ""; position: absolute; right: clamp(-90px, -3vw, -30px); bottom: -90px; z-index: -1; width: min(58vw, 760px); height: 430px; opacity: .23; background: url("assets/yamaboushi-header-ornament-v2.png") right bottom / contain no-repeat; filter: saturate(.5) brightness(1.08); }
.subpage .page-hero::after { content: ""; position: absolute; left: clamp(24px, 9vw, 145px); bottom: 54px; width: 72px; height: 2px; background: #f2d38e; }
.subpage .page-hero > div { position: relative; z-index: 1; padding-bottom: 38px; }
.subpage .page-hero .eyebrow.red { color: #f2d38e; }
.subpage .page-hero p:last-child { color: #f5dfd2; }
.founder { display: grid; grid-template-columns: minmax(300px,.85fr) minmax(420px,1.15fr); gap: clamp(50px,8vw,120px); align-items: center; background: #fffaf0; }
.founder-photo { max-width: 510px; justify-self: end; padding: 18px; background: #ead0a8; transform: rotate(-1deg); }
.founder-photo img { width: 100%; max-height: 650px; object-fit: cover; }
.founder-copy { max-width: 650px; }
.founder-copy h2 { margin: 0 0 25px; font-size: clamp(34px,4vw,54px); line-height: 1.55; }
.founder-copy p:not(.eyebrow) { color: #594f47; font-size: 17px; }
.history-space { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(55px,8vw,115px); align-items: center; background: #e8d1ad; }
.history-copy { max-width: 700px; }
.history-copy h2 { margin: 0 0 26px; font-size: clamp(34px,4vw,53px); line-height: 1.55; }
.history-copy > p:not(.eyebrow) { color: #574b41; font-size: 17px; }
.history-line { margin: 34px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(111,70,42,.28); }
.history-line li { padding: 16px 0; display: grid; grid-template-columns: 120px 1fr; gap: 18px; border-bottom: 1px solid rgba(111,70,42,.28); }
.history-line span { color: var(--red); font-size: 13px; font-weight: 700; }
.history-line strong { font: 600 17px "Shippori Mincho", serif; }
.history-photo { margin: 0; transform: rotate(1deg); }
.history-photo img { width: 100%; max-height: 650px; object-fit: cover; box-shadow: 18px 18px 0 rgba(139,76,43,.14); }
.history-photo figcaption, .ingredient-photo figcaption { margin-top: 11px; color: #6d6054; font-size: 12px; }
.ingredient-photo { margin: 0 0 30px; }
.ingredient-photo img { width: 100%; max-height: 350px; object-fit: cover; }
.menu-showcase { max-width: 1280px; margin: auto; }
.menu-showcase article { margin-bottom: 70px; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(42px,7vw,95px); }
.menu-showcase article.reverse img { order: 2; }
.menu-showcase article img { width: 100%; height: 480px; object-fit: cover; }
.menu-showcase article small { color: var(--red); font-weight: 700; }
.menu-showcase article h2 { margin: 5px 0 18px; font-size: clamp(30px,4vw,48px); }
.menu-showcase article p { color: #5e544b; font-size: 17px; }
.page-next { padding: 65px 24px; text-align: center; background: #ecd2ad; }
.page-next p { margin: 0 0 18px; font: 600 21px "Shippori Mincho", serif; }

.enjoy { background: var(--white); }
.enjoy-grid { max-width: 1060px; margin: 50px auto 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.enjoy-grid article { padding: 34px; border: 1px solid var(--line); background: var(--paper); }
.enjoy-grid small { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: var(--white); background: var(--red); font: 600 16px "Shippori Mincho", serif; }
.enjoy-grid h3 { margin: 20px 0 8px; font: 600 22px "Shippori Mincho", serif; }
.enjoy-grid p { margin: 0; color: #5f554b; font-size: 16px; }

.orders { background: var(--red); }
.order-panel { max-width: 1100px; margin: auto; color: var(--white); display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: center; }
.order-panel h2 { margin: 0 0 22px; font-size: clamp(32px, 4vw, 50px); line-height: 1.45; }
.order-panel > div:first-child > p:last-child { color: #f1dcd5; }
.order-steps { padding: 34px; border: 1px solid rgba(255,255,255,.27); background: rgba(86,18,11,.22); }
.order-steps p { display: flex; align-items: center; gap: 13px; margin: 0 0 16px; font-size: 14px; }
.order-steps p span { width: 26px; height: 26px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: var(--red-dark); background: var(--cream); font-weight: 700; }
.order-steps .button { width: 100%; margin-top: 14px; }
.order-steps small { display: block; margin-top: 8px; text-align: center; color: #e9c7bf; }

.access { max-width: 1280px; margin: auto; }
.access-layout { margin-top: 55px; display: grid; grid-template-columns: 1fr .9fr; gap: 70px; }
dl { margin: 0; border-top: 1px solid var(--line); }
dl div { display: grid; grid-template-columns: 110px 1fr; gap: 22px; padding: 17px 0; border-bottom: 1px solid var(--line); }
dt { color: var(--muted); font-size: 13px; }
dd { margin: 0; font-weight: 500; }
.map-card { display: flex; flex-direction: column; gap: 14px; }
.map-pattern { min-height: 305px; display: grid; place-content: center; text-align: center; color: var(--white); background-color: var(--warm-gray); background-image: radial-gradient(rgba(255,255,255,.12) 1px, transparent 1px); background-size: 17px 17px; border: 1px solid rgba(179,138,74,.45); }
.map-pattern span { font: 600 31px "Shippori Mincho", serif; letter-spacing: .16em; }
.map-pattern small { color: #d7cbb8; letter-spacing: .15em; }
.access-photo { width: 100%; min-height: 305px; max-height: 430px; object-fit: cover; border: 1px solid rgba(179,138,74,.4); background: #eee3cf; }
.detail-note { margin-top: 25px; color: var(--muted); font-size: 12px; }

.online { display: grid; grid-template-columns: 1fr .7fr; gap: 60px; align-items: center; color: var(--ink); background-color: #ecd2ad; background-image: radial-gradient(rgba(161,74,46,.09) 1px, transparent 1px); background-size: 18px 18px; border-top: 1px solid rgba(139,83,48,.16); }
.online .eyebrow.light { color: var(--red); }
.online h2 { margin: 0 0 18px; font-size: clamp(32px,4vw,50px); }
.online > div > p:last-child { color: #5d4e43; }
.online-action { padding: 34px; display: grid; gap: 5px; border: 1px solid rgba(132,72,42,.24); background: rgba(255,250,240,.46); }
.online-action span { color: var(--red-dark); font-size: 13px; letter-spacing: .12em; }
.online-action strong { font: 600 28px "Shippori Mincho", serif; }
.online-action small { margin-top: 8px; color: #69584b; }

footer { min-height: 220px; padding: 48px 24px; display: grid; place-content: center; text-align: center; color: var(--ink); background-color: #f8edda; background-image: repeating-linear-gradient(4deg, rgba(105,76,50,.025) 0, rgba(105,76,50,.025) 1px, transparent 1px, transparent 7px); border-top: 5px solid var(--red); }
.footer-brand { display: flex; align-items: center; justify-content: center; gap: 10px; text-decoration: none; font: 600 22px "Shippori Mincho", serif; letter-spacing: .1em; }
footer > p { margin: 12px 0 0; color: #66594e; font-size: 14px; }
footer > p a { color: var(--red-dark); font-weight: 700; text-underline-offset: 4px; }
footer .copyright { margin-top: 28px; color: #8a7a6d; font-size: 12px; }
.mobile-actions { display: none; }

/* 法人・施設向け */
.facility-intro { max-width: 1280px; margin: auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(50px,8vw,110px); align-items: center; }
.facility-intro-copy h2, .facility-facts h2, .facility-needs h2, .facility-flow h2, .facility-contact h2 { margin: 0 0 24px; font-size: clamp(32px,4vw,53px); line-height: 1.5; }
.facility-intro-copy > p:not(.eyebrow) { color: #5b5047; margin-bottom: 28px; }
.facility-intro figure { margin: 0; padding: 16px; background: #ead0a8; }
.facility-intro figure img { width: 100%; height: 480px; object-fit: cover; }
.facility-intro figcaption { padding-top: 9px; color: #685b4f; font-size: 12px; }
.facility-facts { background: #f1e3ca; }
.facility-facts > * { max-width: 1180px; margin-left: auto; margin-right: auto; }
.fact-grid { margin-top: 42px; display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.fact-grid article { padding: 34px; background: rgba(255,250,240,.82); border-top: 5px solid var(--red); }
.fact-grid small { color: var(--red); font-weight: 700; letter-spacing: .12em; }
.fact-grid strong { display: block; margin: 15px 0 12px; font: 600 clamp(23px,2.4vw,32px) "Shippori Mincho",serif; }
.fact-grid p { margin: 0; color: #64584e; font-size: 15px; }
.facility-needs { max-width: 1280px; margin: auto; display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(50px,8vw,110px); align-items: start; }
.needs-list { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.needs-list article {
  min-height: 220px;
  padding: 30px;
  position: relative;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(255,250,240,.78);
}
.needs-list span { position: absolute; right: 22px; top: 8px; color: rgba(185,75,56,.18); font: 700 58px "Shippori Mincho",serif; }
.needs-list h3 { position: relative; margin: 25px 0 12px; font: 600 22px "Shippori Mincho",serif; }
.needs-list p { position: relative; margin: 0; color: #62574e; font-size: 15px; }
.facility-flow { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(55px,8vw,110px); color: var(--white); background: var(--red); }
.facility-flow > div > p:last-child { color: #f4ddd5; }
.facility-flow ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.3); }
.facility-flow li { padding: 21px 0; display: grid; grid-template-columns: 42px 1fr; gap: 18px; border-bottom: 1px solid rgba(255,255,255,.3); }
.facility-flow li > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: var(--red-dark); background: var(--cream); font-weight: 700; }
.facility-flow strong { font: 600 20px "Shippori Mincho",serif; }
.facility-flow li p { margin: 5px 0 0; color: #f3d9d1; font-size: 14px; }
.facility-contact { text-align: center; background: #ecd2ad; }
.facility-contact > p:not(.eyebrow,.detail-note) { color: #625348; }
.facility-phone { max-width: 630px; margin: 35px auto 0; padding: 25px 32px; display: grid; grid-template-columns: 1fr auto; text-align: left; text-decoration: none; color: var(--white); background: var(--red-dark); }
.facility-phone small { grid-column: 1/-1; color: #edcfc5; }
.facility-phone strong { font: 600 clamp(29px,4vw,43px) "Shippori Mincho",serif; }
.facility-phone span { align-self: center; font-size: 14px; font-weight: 700; }

@media (max-width: 900px) {
  body { padding-top: 66px; font-size: 16px; }
  section[id] { scroll-margin-top: 66px; }
  .site-header { height: 66px; padding: 0 16px; }
  .brand small, .header-call { display: none; }
  .menu-button { display: block; padding: 8px 0; color: var(--ink); border: 0; background: none; font: inherit; font-size: 13px; }
  nav { display: none; position: absolute; top: 66px; left: 0; right: 0; padding: 18px 24px 24px; flex-direction: column; gap: 14px; background: var(--white); border-bottom: 1px solid var(--line); }
  nav.open { display: flex; }
  .hero { min-height: 630px; height: calc(100svh - 66px); align-items: flex-end; padding-bottom: 84px; }
  .hero-shade { background: linear-gradient(0deg, rgba(55,37,27,.8) 0%, rgba(55,37,27,.38) 62%, rgba(55,37,27,.05)); }
  .hero-copy { margin: 0 24px; width: auto; }
  .hero h1 { font-size: clamp(31px, 9vw, 57px); }
  .hero h1 .title-line { white-space: normal; }
  .section-heading h2, .order-panel h2, .online h2 { font-size: clamp(25px, 8.2vw, 43px); }
  .hero-copy > p:not(.eyebrow) br { display: none; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-note { display: none; }
  .section { padding: 62px 24px; }
  .experience { grid-template-columns: 1fr; gap: 42px; }
  .experience-photo { justify-self: center; padding-left: 18px; }
  .experience-copy h2 { font-size: clamp(28px, 8.2vw, 43px); }
  .experience-copy h2 .title-line { white-space: normal; }
  .experience-lead { font-size: 16px; line-height: 1.9; }
  .experience-message { margin-top: 0; }
  .intro { display: block; }
  .home-intro > p:not(.eyebrow) br { display: none; }
  .home-intro-links { flex-direction: column; }
  .home-intro-links a { min-width: 0; }
  .home-food-collage { grid-template-columns: 1fr; grid-template-rows: 290px 210px 210px; }
  .home-food-collage .large { grid-row: auto; }
  .text-link { text-align: left; }
  .home-scenes { grid-template-columns: 1fr; }
  .home-scenes article { min-height: 150px; }
  .home-scenes article + article { border-left: 0; border-top: 1px solid rgba(255,255,255,.25); }
  .page-hero { min-height: 380px; padding: 65px 24px; }
  .page-hero h1 { font-size: clamp(34px,10vw,50px); }
  .subpage .page-hero { min-height: 440px; align-items: flex-start; padding-top: 70px; }
  .subpage .page-hero::before { right: -105px; bottom: -20px; width: 390px; height: 245px; opacity: .18; }
  .subpage .page-hero::after { left: 24px; bottom: 46px; }
  .subpage .page-hero > div { padding-bottom: 115px; }
  .founder { grid-template-columns: 1fr; gap: 42px; }
  .founder-photo { justify-self: center; }
  .history-space { grid-template-columns: 1fr; gap: 42px; }
  .history-photo { transform: none; }
  .history-line li { grid-template-columns: 105px 1fr; gap: 12px; }
  .menu-showcase article, .menu-showcase article.reverse { grid-template-columns: 1fr; gap: 25px; margin-bottom: 55px; }
  .menu-showcase article.reverse img { order: 0; }
  .menu-showcase article img { height: 330px; }
  .intro-copy { margin-top: 25px; }
  .values { margin-top: 38px; grid-template-columns: 1fr; }
  .values article { min-height: 0; padding: 30px 25px; }
  .values article + article { border-left: 0; border-top: 1px solid var(--line); }
  .food-grid { grid-template-columns: 1fr; }
  .food-card { min-height: 235px; }
  .ingredients, .order-panel, .access-layout, .online { grid-template-columns: 1fr; gap: 45px; }
  .facility-intro, .facility-needs, .facility-flow { grid-template-columns: 1fr; gap: 42px; }
  .facility-intro figure img { height: 330px; }
  .fact-grid, .needs-list { grid-template-columns: 1fr; }
  .needs-list article { min-height: 0; }
  .facility-phone { padding: 22px; grid-template-columns: 1fr; text-align: center; }
  .ingredient-list article { grid-template-columns: 1fr; gap: 5px; }
  .enjoy-grid { grid-template-columns: 1fr; }
  .order-steps { padding: 25px 20px; }
  dl div { grid-template-columns: 82px 1fr; gap: 15px; }
  .map-pattern, .access-photo { min-height: 240px; }
  body { padding-bottom: 58px; }
  .mobile-actions { position: fixed; left: 0; right: 0; bottom: 0; height: 58px; z-index: 30; display: grid; grid-template-columns: 1fr 1fr; box-shadow: 0 -4px 16px rgba(0,0,0,.13); }
  .mobile-actions a { display: grid; place-items: center; color: var(--white); background: var(--red); text-decoration: none; font-weight: 700; font-size: 14px; }
  .mobile-actions a + a { background: var(--warm-gray); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button { transition: none; }
  .hero > img { transform: scale(1.02); will-change: auto; }
}
