:root {
  color-scheme: light;
  --paper: #f7f4ed;
  --paper-deep: #eee9df;
  --ink: #30251f;
  --muted: #71675f;
  --line: #dcd4c8;
  --accent: #986849;
  --serif: Georgia, 'Times New Roman', 'Yu Mincho', 'Hiragino Mincho ProN', serif;
  --sans: 'Hiragino Kaku Gothic ProN', 'Yu Gothic', Meiryo, sans-serif;
  --measure: 1160px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 15px/2 var(--sans); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
::selection { background: #d9c8b5; color: var(--ink); }

.site-header { min-height: 92px; padding: 0 max(6.5vw, calc((100vw - var(--measure))/2)); display:flex; align-items:center; justify-content:space-between; gap:40px; background:var(--paper); position:relative; z-index:5; border-bottom:1px solid #e8e2d8; }
.brand { display:flex; align-items:center; gap:13px; white-space:nowrap; font:500 15px/1.35 var(--serif); letter-spacing:.09em; }
.brand-mark { width:37px; height:37px; border:1px solid var(--accent); border-radius:50%; display:grid; place-items:center; color:var(--accent); font:italic 18px var(--serif); }
.brand small { display:block; margin-top:5px; font:500 8px/1 var(--sans); letter-spacing:.24em; color:var(--muted); }
.site-nav { display:flex; align-items:center; gap:clamp(20px,3vw,46px); }
.site-nav>a { font:500 10px/1 var(--sans); letter-spacing:.17em; color:var(--muted); transition:color .2s; }
.site-nav>a:hover,.site-nav>a[aria-current=page] { color:var(--accent); }
.site-nav>a[aria-current=page] { position:relative; }
.site-nav>a[aria-current=page]:after { content:""; position:absolute; left:0; right:0; bottom:-12px; height:1px; background:var(--accent); }
.site-nav .nav-visit { display:none; }
.menu-toggle { display:none; }

.hero { min-height:min(760px,calc(100vh - 92px)); position:relative; overflow:hidden; display:flex; align-items:center; padding:80px max(9vw,calc((100vw - 1080px)/2)); background-color:#544537; background-image:linear-gradient(90deg,rgba(35,28,23,.76) 0%,rgba(35,28,23,.57) 45%,rgba(35,28,23,.14) 100%),url('images/hero-cafe-interior.png'); background-size:cover; background-position:center 54%; }
.hero:before { content:none; }
.hero-copy { position:relative; z-index:2; padding:20px 0 34px; }
.hero-copy { max-width:650px; }
.hero .eyebrow { color:#e0c5a7; }
.eyebrow { margin:0 0 22px; color:var(--accent); font:500 10px/1.4 var(--sans); letter-spacing:.24em; }
.hero h1 { max-width:620px; margin:0; color:#fbf7f0; font:400 clamp(68px,10vw,132px)/.91 var(--serif); letter-spacing:-.045em; }
.hero-lead { margin:34px 0 32px; color:#f2eae0; font-size:14px; line-height:2.25; letter-spacing:.04em; text-shadow:0 1px 8px #241c16a0; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:40px; min-width:190px; padding:14px 0 12px; border-bottom:1px solid var(--accent); color:var(--ink); font-size:11px; letter-spacing:.12em; transition:gap .2s; }
.button:hover { gap:52px; }
.button span { color:var(--accent); font-size:16px; }
.button-light,.button-dark { background:none; color:var(--ink); }
.hero-art { position:relative; min-height:450px; background:linear-gradient(137deg,#d9d1c4 0%,#c8bca9 44%,#a99882 100%); overflow:hidden; isolation:isolate; }
.hero-art:before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#30251f00 58%,#30251f20),radial-gradient(ellipse at 69% 78%,#34271d5e,transparent 39%); z-index:-1; }
.sun-disc { position:absolute; width:36%; aspect-ratio:1; border-radius:50%; right:13%; top:9%; background:#eee4d0; opacity:.68; }
.leaf { position:absolute; width:63%; height:20%; border-radius:100% 0 100% 0; background:linear-gradient(90deg,#55604b,#899078); opacity:.52; filter:blur(.3px); }
.leaf:after { content:""; position:absolute; left:5%; right:5%; top:50%; height:1px; background:#dedbc9; transform:rotate(-9deg); }
.leaf-one { top:17%; left:-16%; transform:rotate(-30deg); }
.leaf-two { bottom:8%; right:-23%; transform:rotate(151deg); }
.cup { position:absolute; width:42%; height:34%; left:48%; top:48%; transform:translate(-50%,-25%); border-radius:5% 5% 28% 28%; background:linear-gradient(100deg,#e4ded1,#f4f0e7 48%,#c9bead); box-shadow:0 28px 36px #32271e45; }
.cup:before { content:""; position:absolute; width:22%; height:35%; right:-19%; top:25%; border:10px solid #d8d0c1; border-left:0; border-radius:0 50% 50% 0; }
.coffee { position:absolute; left:2%; right:2%; top:-3%; height:13%; border-radius:50%; background:#4b3022; }
.cup-handle { position:absolute; left:10%; top:56%; color:#a59b8d; font:11px var(--serif); }
.hero-caption { position:absolute; bottom:18px; right:20px; color:#f7f2e9; font:italic 10px/1.6 var(--serif); letter-spacing:.12em; text-align:right; }
.hero-index { position:absolute; bottom:25px; left:6.5vw; font:10px var(--sans); color:var(--muted); letter-spacing:.12em; }
.hero-index { color:#f2eae0; font-size:9px; letter-spacing:.2em; }
.hero-index i { display:inline-block; width:38px; height:1px; background:#c9a57d; vertical-align:middle; margin:0 11px; }
.hero .button { color:#fffaf2; border-color:#d9b993; }
.hero .button span { color:#e0c5a7; }

.section-wrap { width:min(100% - 64px,var(--measure)); margin:0 auto; }
.intro { padding-top:150px; padding-bottom:155px; display:grid; grid-template-columns:.85fr 1.1fr .85fr; align-items:center; gap:5%; }
.intro-photo { grid-column:2; grid-row:1; margin:0; }
.intro-photo img { display:block; width:100%; height:auto; }
.section-heading h2,.intro h2,.feature h2,.visit h2,.menu-intro h2,.story-copy h2,.values h2,.access-details h2 { margin:0; font:400 clamp(26px,3vw,39px)/1.85 var(--serif); letter-spacing:.04em; }
.intro-body { grid-column:3; grid-row:1; max-width:450px; padding:0; }
.intro-body p,.feature-copy>p:not(.eyebrow),.story-copy>p:not(.eyebrow),.menu-intro>p:not(.eyebrow) { color:var(--muted); font-size:13px; line-height:2.25; }
.text-link { display:inline-flex; gap:25px; align-items:center; margin-top:10px; padding:5px 0; border-bottom:1px solid var(--line); color:var(--ink); font-size:10px; letter-spacing:.12em; }
.text-link span { color:var(--accent); font-size:15px; }
.recommendations { padding-top:28px; padding-bottom:145px; }
.recommendations-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; padding-bottom:32px; border-bottom:1px solid var(--line); }
.recommendations-heading .eyebrow { margin-bottom:12px; }
.recommendations-heading h2 { margin:0; font:400 clamp(40px,6vw,72px)/1 var(--serif); letter-spacing:-.035em; }
.recommendations-heading .text-link { margin-bottom:6px; }
.favorite-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; padding-top:34px; }
.favorite-card { min-width:0; }
.favorite-image { position:relative; overflow:hidden; background-color:#c6b8a5; }
.favorite-image img { display:block; width:100%; height:auto; }
.favorite-image>span { position:absolute; right:14px; top:12px; color:#fff7ea; font:italic 12px var(--serif); }
.favorite-coffee { background:radial-gradient(ellipse at 51% 52%,#38261b 0 17%,#aa8c6d 17.5% 18.3%,transparent 19%),radial-gradient(ellipse at 51% 58%,#e1d4c1 0 31%,#c9baa7 32% 38%,transparent 39%),linear-gradient(140deg,#94826f,#d6c9b8 57%,#766653); }
.favorite-coffee:after { content:""; position:absolute; width:26%; height:7%; left:37%; top:76%; border-radius:50%; background:#41352a38; filter:blur(8px); }
.favorite-tart { background:radial-gradient(circle at 52% 53%,#a94b3a 0 5%,transparent 5.8%),radial-gradient(circle at 44% 51%,#d1a258 0 5%,transparent 5.8%),radial-gradient(circle at 59% 47%,#836247 0 5%,transparent 5.8%),radial-gradient(ellipse at 52% 56%,#e6cba4 0 20%,#ae8658 20.5% 25%,#eee5d7 25.5% 38%,transparent 38.5%),linear-gradient(140deg,#a89b86,#ded3c3 58%,#8e806e); }
.favorite-scone { background:radial-gradient(ellipse at 43% 50%,#c49b68 0 13%,transparent 13.7%),radial-gradient(ellipse at 60% 56%,#d0ab79 0 14%,transparent 14.7%),radial-gradient(ellipse at 50% 64%,#a47c50 0 27%,transparent 27.7%),linear-gradient(140deg,#908371,#d5c7b1 58%,#82745e); }
.favorite-meta { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:17px 1px; border-bottom:1px solid var(--line); }
.favorite-meta h3 { margin:0; font:500 13px/1.8 var(--sans); letter-spacing:.04em; }
.favorite-meta p { margin:5px 0 0; color:var(--muted); font-size:10px; line-height:1.8; }
.favorite-meta b { padding-top:2px; color:var(--accent); font:400 13px var(--serif); white-space:nowrap; }
.feature { display:grid; grid-template-columns:1.05fr .95fr; min-height:500px; background:var(--paper-deep); }
.feature-art { min-height:500px; position:relative; display:grid; place-items:center; overflow:hidden; background:linear-gradient(145deg,#d4c9b7,#a79a86); }
.feature-art:before { content:""; position:absolute; inset:0; background:linear-gradient(115deg,#f5f0e600 20%,#4b3b2d30 100%); }
.plate { width:min(55%,300px); aspect-ratio:1; border-radius:50%; display:grid; place-items:center; background:radial-gradient(circle,#e6dfd1 0 54%,#cfc5b4 55% 57%,#e9e3d8 58%); box-shadow:0 24px 50px #30251f3a; transform:rotate(-10deg); }
.cake { display:block; width:47%; height:43%; background:linear-gradient(180deg,#bb9166 0 18%,#e6d5b9 19% 82%,#997253 83%); clip-path:polygon(50% 0,100% 96%,0 96%); position:relative; }
.cake:after { content:""; position:absolute; width:30%; height:23%; top:5%; left:35%; border-radius:50%; background:#875d47; }
.feature-note { position:absolute; bottom:27px; left:30px; color:#f7f4ed; font-size:9px; letter-spacing:.24em; line-height:1.7; }
.feature-copy { align-self:center; max-width:490px; padding:70px 12%; }
.feature-copy>p:not(.eyebrow) { margin:20px 0; }
.visit { padding-top:115px; padding-bottom:120px; display:flex; align-items:center; justify-content:space-between; gap:40px; }
.visit .eyebrow { margin-bottom:14px; }
.visit h2 { font-size:27px; line-height:1.8; }
.visit-copy { max-width:500px; margin:15px 0 0; color:var(--muted); font-size:12px; line-height:2; }

.page-hero { min-height:355px; padding:74px max(10vw,calc((100vw - 1040px)/2)); display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; background:var(--paper-deep); }
.page-hero:after { content:""; position:absolute; width:390px; height:390px; border:1px solid #d6c9b9; border-radius:50%; right:12%; top:50%; transform:translateY(-50%); }
.page-hero h1 { position:relative; z-index:1; margin:0; font:400 clamp(58px,9vw,108px)/1 var(--serif); letter-spacing:-.045em; }
.page-hero>p:not(.eyebrow) { position:relative; z-index:1; margin:25px 0 0; color:var(--muted); font-size:13px; letter-spacing:.06em; }
.page-hero-number { display:none; }
.menu-content { display:grid; grid-template-columns:.75fr 1.25fr; gap:9%; padding-top:125px; padding-bottom:140px; }
.menu-intro { position:sticky; top:40px; align-self:start; max-width:330px; }
.menu-intro h2 { font-size:29px; }
.menu-list { padding-top:7px; }
.menu-group { margin-bottom:52px; }
.menu-item { display:flex; justify-content:space-between; gap:25px; padding:20px 2px; border-bottom:1px solid #e9e4db; }
.menu-item strong { font:500 13px/1.8 var(--sans); letter-spacing:.04em; }
.menu-item p { margin:3px 0 0; color:var(--muted); font-size:11px; line-height:1.8; }
.menu-item>b { color:var(--accent); font:400 14px var(--serif); white-space:nowrap; padding-top:3px; }
.menu-note { margin:0; padding:13px 0; border-top:1px solid var(--accent); border-bottom:1px solid var(--accent); color:var(--muted); font-size:11px; }
.menu-filters { display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; }
.menu-filters button { border:1px solid var(--line); border-radius:0; background:transparent; color:var(--muted); padding:8px 12px; font-size:10px; letter-spacing:.05em; cursor:pointer; transition:background .2s,color .2s,border-color .2s; }
.menu-filters button:hover,.menu-filters button[aria-pressed="true"] { background:var(--ink); border-color:var(--ink); color:var(--paper); }
.filter-status { min-height:1.8em; margin:10px 0 0; color:var(--muted); font-size:10px; }
.menu-group { scroll-margin-top:32px; }
.menu-group[hidden] { display:none; }
.menu-group h2 { display:flex; align-items:baseline; gap:14px; margin:0 0 7px; padding-bottom:17px; border-bottom:1px solid var(--line); color:var(--ink); font:400 23px/1.2 var(--serif); letter-spacing:.02em; }
.menu-group h2 span { color:var(--muted); font:400 10px var(--sans); letter-spacing:.08em; }
.menu-item h3 { margin:0; font:500 13px/1.8 var(--sans); letter-spacing:.04em; }
.menu-item p { font-size:11px; }
.menu-item>b { color:var(--accent); font:400 14px var(--serif); white-space:nowrap; padding-top:3px; }
.menu-item { display:flex; align-items:flex-start; }
.menu-item>div { flex:1; }
.menu-item>b { align-self:flex-start; }
.menu-list>.menu-group { margin-bottom:50px; }

.story { display:grid; grid-template-columns:.95fr 1.05fr; gap:10%; padding-top:130px; padding-bottom:140px; align-items:center; }
.story-art { height:470px; position:relative; overflow:hidden; background:linear-gradient(155deg,#d4cabb,#a89b88); }
.story-art:before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#ece4d500,#4e403130); }
.window-shape { position:absolute; top:50px; left:50%; transform:translateX(-50%); width:54%; height:75%; border:9px solid #eee8dd; background:linear-gradient(140deg,#b4ae96,#dfc49e 72%); box-shadow:0 12px 30px #30251f22; }
.window-shape:before,.window-shape:after { content:""; position:absolute; background:#eee8dd; }
.window-shape:before { width:7px; top:0; bottom:0; left:50%; }
.window-shape:after { height:7px; left:0; right:0; top:56%; }
.window-shape span { position:absolute; width:85%; height:20%; bottom:9%; left:7%; border-radius:100%; background:#727665; opacity:.6; }
.story-art>p { position:absolute; bottom:12px; left:22px; color:#f5f0e6; font:italic 12px/1.6 var(--serif); letter-spacing:.1em; }
.story-photo { height:auto; background:none; overflow:visible; }
.story-photo:before { content:none; }
.story-photo img { display:block; width:100%; height:auto; }
.story-photo figcaption { position:absolute; left:20px; bottom:12px; color:#fbf7f0; text-shadow:0 1px 8px #30251f90; font:italic 12px/1.6 var(--serif); letter-spacing:.1em; }
.shop-info { padding:98px 7% 105px; background:var(--paper-deep); }
.shop-info-inner { width:min(100%,var(--measure)); margin:0 auto; }
.shop-info h2 { margin:0; font:400 clamp(40px,6vw,72px)/1 var(--serif); letter-spacing:-.035em; }
.info-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 5%; margin:50px 0 0; border-top:1px solid #cfc4b6; }
.info-grid>div { padding:22px 2px; border-bottom:1px solid #cfc4b6; }
.info-grid dt { color:var(--accent); font-size:10px; letter-spacing:.14em; }
.info-grid dd { margin:7px 0 0; color:var(--ink); font-size:12px; line-height:2; }
.fiction-note { margin:19px 0 0; color:var(--muted); font-size:10px; }
.story-copy { max-width:490px; }
.story-copy h2 { margin-bottom:22px; }
.story-copy>p:not(.eyebrow) { font-size:12px; line-height:2.4; }
.signature { display:block; margin-top:27px; text-align:right; font:13px var(--serif); color:var(--accent); }
.values { padding:105px max(7vw,calc((100vw - var(--measure))/2)) 115px; background:var(--paper-deep); }
.values>.eyebrow,.values>h2 { text-align:center; }
.values h2 { font-size:29px; }
.value-grid { max-width:var(--measure); margin:62px auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:6%; }
.value-grid article { padding:22px 2px; border-top:1px solid #cfc4b6; }
.value-grid article>span { color:var(--accent); font:italic 14px var(--serif); }
.value-grid h3 { margin:15px 0 8px; font:400 16px/1.8 var(--serif); letter-spacing:.04em; }
.value-grid p { margin:0; color:var(--muted); font-size:11px; line-height:2.1; }

.access-content { display:grid; grid-template-columns:1.1fr .9fr; gap:9%; padding-top:125px; padding-bottom:125px; align-items:center; }
.map-column>.eyebrow { margin-bottom:14px; }
.osm-map { position:relative; width:100%; height:clamp(320px,38vw,470px); overflow:hidden; border:1px solid var(--line); background:var(--paper-deep); }
.osm-map iframe { display:block; width:100%; height:100%; border:0; }
.map-attribution { margin:9px 0 0; color:var(--muted); font-size:9px; }
.map-attribution a,.map-link { color:var(--accent); }
.map-link { display:inline-block; margin-top:7px; font-size:10px; letter-spacing:.04em; border-bottom:1px solid var(--line); }
.fictional-note { margin:18px 0 0; padding:13px 15px; border-left:2px solid var(--accent); background:var(--paper-deep); color:var(--muted); font-size:10px; line-height:1.9; }
.map-card { height:420px; position:relative; overflow:hidden; background-color:#e9e5dc; background-image:linear-gradient(30deg,transparent 48%,#d8d0c5 49%,#d8d0c5 50%,transparent 51%),linear-gradient(110deg,transparent 48%,#d8d0c5 49%,#d8d0c5 50%,transparent 51%); background-size:125px 110px,165px 145px; filter:saturate(.55); }
.map-grid { position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent 0 48px,#f7f4edaa 49px 51px),repeating-linear-gradient(90deg,transparent 0 56px,#f7f4edaa 57px 59px); }
.map-road { position:absolute; background:#faf7ef; box-shadow:0 0 0 1px #d7d0c5; }
.road-a { height:22px; width:130%; left:-10%; top:53%; transform:rotate(-22deg); }
.road-b { height:17px; width:120%; left:-10%; top:25%; transform:rotate(39deg); }
.road-c { height:18px; width:100%; left:8%; top:70%; transform:rotate(77deg); }
.map-park { position:absolute; left:8%; top:10%; width:110px; height:85px; display:grid; place-items:center; text-align:center; background:#d1d5c7; color:#656957; font:9px/1.7 var(--sans); letter-spacing:.09em; transform:rotate(-14deg); }
.map-station { position:absolute; right:8%; bottom:12%; font-size:10px; background:#f7f4ed; padding:4px 10px; color:var(--muted); }
.map-pin { position:absolute; left:48%; top:44%; display:flex; flex-direction:column; align-items:center; z-index:2; }
.map-pin i { font-style:normal; display:grid; place-items:center; width:40px; height:40px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:var(--accent); color:#fffaf2; font-size:15px; box-shadow:0 5px 12px #30251f30; }
.map-pin b { background:#f7f4ed; padding:5px 9px; font:500 10px var(--serif); white-space:nowrap; margin-top:7px; box-shadow:0 2px 8px #30251f14; }
.map-label { position:absolute; font-size:9px; color:#716c62; }
.label-a { top:39%; left:12%; transform:rotate(-22deg); }
.label-b { top:11%; right:12%; }
.map-scale { position:absolute; left:15px; bottom:12px; color:var(--muted); font-size:9px; letter-spacing:.1em; }
.access-details h2 { font-size:26px; margin-bottom:22px; }
.access-details dl { margin:0; }
.access-details dl>div { display:grid; grid-template-columns:82px 1fr; gap:12px; padding:12px 0; border-bottom:1px solid #e6dfd5; font-size:11px; }
.access-details dt { color:var(--accent); }
.access-details dd { margin:0; line-height:1.9; }
.access-note { color:var(--muted); font-size:10px; margin-top:17px; }
.access-visit { background:var(--paper-deep); padding-left:max(calc((100% - 1030px)/2),7%); padding-right:max(calc((100% - 1030px)/2),7%); }

.site-footer { padding:58px max(6.5vw,calc((100vw - var(--measure))/2)) 28px; background:#eae5dc; display:grid; grid-template-columns:1fr 1.4fr; gap:55px; }
.footer-brand { align-self:start; }
.footer-meta { display:grid; grid-template-columns:1fr auto; align-items:start; gap:14px 35px; color:var(--muted); font-size:10px; }
.footer-meta p { margin:0; line-height:2; }
.footer-links { display:flex; flex-wrap:wrap; gap:14px 21px; }
.footer-links a { font-size:9px; letter-spacing:.12em; border-bottom:1px solid #c9bdaf; padding-bottom:2px; }
.footer-tagline { grid-column:1/-1; margin:0; color:var(--ink); font:italic 15px var(--serif); letter-spacing:.04em; }
.footer-social { display:flex; gap:18px; grid-column:2; }
.footer-social a { color:var(--accent); font-size:9px; letter-spacing:.13em; }
.footer-meta>small { grid-column:1/-1; margin-top:14px; padding-top:13px; border-top:1px solid #d8d0c5; font-size:8px; letter-spacing:.12em; }

@media (max-width:850px) {
  .site-header { padding:0 5%; }
  .site-nav { gap:20px; }
  .hero { padding-left:7%; padding-right:7%; gap:4vw; }
  .hero-art { min-height:370px; }
  .section-wrap { width:min(100% - 52px,var(--measure)); }
  .intro { gap:4%; }
  .menu-content,.access-content { gap:6%; }
  .story { gap:7%; }
  .story-art { height:410px; }
}

@media (max-width:650px) {
  body { font-size:14px; }
  .site-header { min-height:74px; padding:0 6%; }
  .brand { font-size:14px; }
  .brand-mark { width:34px; height:34px; }
  .menu-toggle { display:flex; width:42px; height:42px; border:0; background:transparent; flex-direction:column; justify-content:center; align-items:center; gap:6px; cursor:pointer; }
.menu-toggle span { width:21px; height:1px; background:var(--ink); transition:transform .2s; }
.menu-toggle[aria-expanded=true] span:first-child { transform:translateY(3.5px) rotate(45deg); }
.menu-toggle[aria-expanded=true] span:nth-child(2) { opacity:0; }
.menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-10.5px) rotate(-45deg); }
  .site-nav { display:none; position:absolute; top:74px; left:0; right:0; padding:12px 7% 23px; background:var(--paper); box-shadow:0 14px 20px #30251f12; align-items:stretch; gap:0; flex-direction:column; }
  .site-nav.is-open { display:flex; }
  .site-nav>a { padding:15px 0; border-bottom:1px solid #e8e1d7; font-size:10px; }
  .site-nav>a[aria-current=page]:after { display:none; }
  .site-nav .nav-visit { display:block; border:0; }
  .hero { display:flex; flex-direction:column; align-items:stretch; justify-content:center; gap:20px; padding:68px 7% 66px; min-height:calc(88svh - 74px); background-position:58% center; }
  .hero h1 { font-size:clamp(66px,17vw,94px); }
  .hero-lead { margin:25px 0; font-size:12px; }
  .hero-index { left:7%; bottom:16px; }
  .section-wrap { width:86%; }
  .intro { padding-top:88px; padding-bottom:90px; grid-template-columns:1fr; gap:20px; }
  .section-heading,.intro-photo,.intro-body { grid-column:1; grid-row:auto; }
  .section-heading h2,.intro h2,.feature h2,.visit h2,.menu-intro h2,.story-copy h2,.values h2,.access-details h2 { font-size:25px; }
  .intro-body p,.feature-copy>p:not(.eyebrow) { font-size:12px; }
  .recommendations { padding-top:5px; padding-bottom:88px; }
  .recommendations-heading { align-items:flex-start; flex-direction:column; gap:13px; padding-bottom:23px; }
  .recommendations-heading h2 { font-size:48px; }
  .favorite-grid { grid-template-columns:1fr; gap:27px; padding-top:23px; }
  .feature { grid-template-columns:1fr; }
  .feature-art { min-height:300px; }
  .feature-copy { padding:55px 7%; }
  .visit { padding-top:77px; padding-bottom:83px; align-items:flex-start; flex-direction:column; gap:20px; }
  .visit h2 { font-size:23px; }
  .site-footer { display:block; padding:42px 7% 25px; }
  .footer-meta { grid-template-columns:1fr; gap:15px; margin-top:27px; }
  .footer-tagline,.footer-social,.footer-meta>small { grid-column:auto; }
  .footer-social { grid-row:auto; }
  .page-hero { min-height:275px; padding:58px 7%; }
  .page-hero:after { width:290px; height:290px; right:-15%; }
  .page-hero h1 { font-size:clamp(57px,15vw,82px); }
  .page-hero>p:not(.eyebrow) { font-size:12px; }
  .menu-content { display:block; padding-top:80px; padding-bottom:90px; }
  .menu-intro { position:static; max-width:100%; margin-bottom:35px; }
  .menu-filters { margin-top:22px; gap:7px; }
  .menu-filters button { padding:8px 11px; }
  .menu-intro h2 { font-size:26px; }
  .menu-intro h2 br { display:none; }
  .menu-group { margin-bottom:39px; }
  .menu-item { padding:16px 0; }
  .story { grid-template-columns:1fr; gap:38px; padding-top:82px; padding-bottom:91px; }
  .story-art { height:340px; }
  .story-photo { height:auto; }
  .shop-info { padding:77px 7% 82px; }
  .info-grid { grid-template-columns:1fr 1fr; gap:0 8%; margin-top:34px; }
  .story-copy>p:not(.eyebrow) { font-size:12px; }
  .values { padding:77px 7% 80px; }
  .values h2 { font-size:23px; }
  .value-grid { grid-template-columns:1fr; gap:4px; margin-top:32px; }
  .value-grid article { padding:18px 3px; }
  .value-grid h3 { margin:7px 0; }
  .access-content { grid-template-columns:1fr; gap:40px; padding-top:80px; padding-bottom:85px; }
  .map-card { height:300px; }
  .osm-map { height:min(68vh,390px); min-height:310px; }
  .fictional-note { font-size:10px; }
  .access-details dl>div { grid-template-columns:75px 1fr; }
  .access-visit { padding-left:7%; padding-right:7%; }
}

.button { transition:transform .22s ease,color .22s ease,gap .22s ease,border-color .22s ease; }
.menu-filters button,.nav-visit,.text-link,.menu-item { transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease; }
.back-to-top { position:fixed; z-index:8; right:24px; bottom:24px; width:46px; height:46px; display:grid; place-items:center; border:1px solid #c9bdaf; border-radius:50%; background:var(--paper); color:var(--ink); box-shadow:0 4px 15px #30251f16; font:400 20px/1 var(--serif); transition:opacity .25s ease,transform .25s ease,background-color .2s ease,color .2s ease; }
.back-to-top:hover { background:var(--ink); color:var(--paper); transform:translateY(-3px); }
.has-scroll-effects [data-reveal] { opacity:0; transform:translateY(18px); transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms); }
.has-scroll-effects [data-reveal].is-visible { opacity:1; transform:translateY(0); }
.has-scroll-effects .back-to-top { opacity:0; pointer-events:none; transform:translateY(8px); }
.has-scroll-effects .back-to-top.is-visible { opacity:1; pointer-events:auto; transform:translateY(0); }

@media (hover:hover) {
  .button:hover { transform:translateY(-2px); }
  .favorite-card { transition:transform .25s ease; }
  .favorite-card:hover { transform:translateY(-5px); }
  .favorite-card:hover .favorite-meta h3 { color:var(--accent); }
  .menu-item:hover { border-color:var(--accent); }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { transition:none!important; animation:none!important; }
  .has-scroll-effects [data-reveal] { opacity:1; transform:none; }
}
