@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Noto+Sans+JP:wght@300;400;500&display=swap');

:root { --ivory:#f6f2e9; --paper:#fbf9f4; --brown:#29221e; --muted:#776e66; --accent:#a86449; --line:rgba(41,34,30,.16); --serif:'Cormorant Garamond','Times New Roman','Yu Mincho',serif; --sans:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif; --max:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--brown); background:var(--paper); font-family:var(--sans); font-size:15px; font-weight:300; line-height:2; letter-spacing:.035em; }
body::selection { color:var(--paper); background:var(--accent); }
a { color:inherit; text-decoration:none; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--serif); font-weight:500; line-height:.94; letter-spacing:-.025em; }
:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.skip-link { position:fixed; top:12px; left:12px; z-index:100; padding:10px 18px; color:var(--paper); background:var(--brown); transform:translateY(-160%); }
.skip-link:focus { transform:none; }

.site-header { height:112px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(28px,5vw,82px); background:rgba(251,249,244,.94); position:relative; z-index:20; border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.logo { display:flex; align-items:center; gap:15px; font-size:13px; font-weight:500; line-height:1.2; letter-spacing:.2em; }
.logo small { font-size:7px; font-weight:400; letter-spacing:.27em; }
.logo-mark { display:inline-grid; place-items:center; flex:0 0 auto; width:45px; height:45px; border:1px solid currentColor; border-radius:50%; font-family:var(--serif); font-size:27px; font-weight:500; }
.global-nav { display:flex; align-items:center; gap:clamp(24px,3vw,52px); font-family:var(--serif); font-size:15px; font-weight:600; letter-spacing:.12em; }
.global-nav a { position:relative; padding:43px 0; }
.global-nav a::after { content:''; position:absolute; left:0; right:100%; bottom:32px; height:1px; background:var(--accent); transition:right .35s ease; }
.global-nav a:hover::after,.global-nav a.active::after { right:0; }
.menu-toggle { display:none; background:none; border:0; padding:8px; }
.menu-toggle span { display:block; width:27px; height:1px; margin:7px; background:var(--brown); transition:.3s; }

.eyebrow { color:var(--accent); font-family:Arial,sans-serif; font-size:10px; font-weight:500; line-height:1.5; letter-spacing:.32em; text-transform:uppercase; margin-bottom:27px; }
.section-jp,.hero-jp,.page-lead { color:var(--brown); font-family:var(--sans); font-weight:400; line-height:1.8; letter-spacing:.1em; }
.section-jp { margin-top:28px; font-size:14px; }
.section { max-width:var(--max); margin:0 auto; padding:clamp(110px,12vw,190px) clamp(25px,5vw,70px); }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:60px; min-width:235px; padding:16px 21px; border:1px solid var(--brown); font-size:11px; font-weight:400; letter-spacing:.08em; transition:color .3s,background .3s; }
.button span { font-size:16px; transition:transform .3s; }
.button:hover { color:var(--paper); background:var(--brown); }
.button:hover span { transform:translateX(5px); }

.hero { min-height:calc(100svh - 112px); display:grid; grid-template-columns:46% 54%; position:relative; overflow:hidden; background:var(--ivory); }
.hero-image { grid-column:2; min-height:680px; background:linear-gradient(90deg,rgba(41,34,30,.1),transparent 35%),url('https://images.unsplash.com/photo-1445116572660-236099ec97a0?auto=format&fit=crop&w=1800&q=88') center/cover; filter:saturate(.78); }
.hero-copy { grid-row:1; grid-column:1; align-self:center; padding:clamp(50px,7vw,120px); position:relative; z-index:2; }
.hero h1 { max-width:720px; font-size:clamp(58px,6.2vw,102px); }
.hero-jp { margin:33px 0 14px; font-size:16px; }
.hero-copy>p:not(.eyebrow):not(.hero-jp) { color:var(--muted); font-size:13px; margin-bottom:38px; }
.hero-note { position:absolute; right:25px; bottom:20px; color:white; writing-mode:vertical-rl; font:9px Arial,sans-serif; letter-spacing:.22em; }
.intro { max-width:900px; text-align:center; }
.intro h2 { font-size:clamp(54px,6.4vw,88px); }
.intro>p:last-child { max-width:620px; margin:35px auto 0; color:var(--muted); font-size:13px; }
.intro-layout { max-width:1360px; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); align-items:center; gap:clamp(60px,8vw,130px); text-align:left; }
.intro-photo { overflow:hidden; }
.intro-photo img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.intro-copy h2 { font-size:clamp(52px,5.5vw,78px); }
.intro-copy>p:not(.eyebrow):not(.section-jp) { color:var(--muted); font-size:13px; }
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(25px,3vw,48px); max-width:1360px; padding-top:10px; }
.feature-card.offset { margin-top:105px; }
.feature-image { display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; margin-bottom:30px; background-size:cover; background-position:center; filter:saturate(.82) contrast(.97); transition:transform .7s ease,filter .7s ease; }
.feature-card:hover .feature-image { transform:translateY(-7px); filter:saturate(.9); }
.feature-image.coffee { background-image:url('https://images.unsplash.com/photo-1495474472287-4d71bcdd2085?auto=format&fit=crop&w=900&q=85'); }
.feature-image.bake { background-image:url('https://images.unsplash.com/photo-1558961363-fa8fdf82db35?auto=format&fit=crop&w=900&q=85'); }
.feature-image.space { background-image:url('https://images.unsplash.com/photo-1554118811-1e0d58224f24?auto=format&fit=crop&w=900&q=85'); }
.number { font:italic 17px var(--serif); color:var(--accent); border-bottom:1px solid var(--line); padding-bottom:10px; }
.feature-card h3 { font-family:var(--serif); font-size:26px; font-weight:500; letter-spacing:.01em; margin-bottom:10px; }
.feature-card>p:last-child { color:var(--muted); font-size:12px; }
.visit-banner { margin-top:100px; padding:clamp(90px,10vw,150px) max(6vw,calc((100vw - 1160px)/2)); display:flex; justify-content:space-between; align-items:flex-end; color:var(--paper); background:var(--brown); }
.visit-banner .eyebrow { color:#c9967f; }
.visit-banner h2 { font-size:clamp(55px,6vw,86px); margin-bottom:0; }
.visit-banner .section-jp { color:rgba(255,255,255,.7); }
.button.light { color:var(--paper); border-color:rgba(255,255,255,.5); }
.button.light:hover { color:var(--brown); background:var(--paper); }

.page-hero { min-height:650px; display:flex; align-items:flex-end; padding:90px max(6vw,calc((100vw - 1160px)/2)); color:white; background-position:center; background-size:cover; position:relative; }
.page-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(28,22,19,.68),rgba(28,22,19,.07)); }
.page-hero>div { z-index:1; }
.page-hero .eyebrow { color:#d6aa95; }
.page-hero h1 { font-size:clamp(90px,11vw,160px); margin:0; }
.page-lead { margin:28px 0 0; color:rgba(255,255,255,.88); font-size:15px; }
.menu-hero { background-image:url('https://images.unsplash.com/photo-1498804103079-a6351b050096?auto=format&fit=crop&w=2000&q=88'); }
.about-hero { background-image:url('https://images.unsplash.com/photo-1442512595331-e89e73853f31?auto=format&fit=crop&w=2000&q=88'); }
.access-hero { background-image:url('https://images.unsplash.com/photo-1521017432531-fbd92d768814?auto=format&fit=crop&w=2000&q=88'); }

.menu-intro { display:flex; justify-content:space-between; gap:80px; padding-bottom:50px; }
.menu-intro>p:first-child { max-width:650px; font-size:15px; }
.note { color:var(--muted); font-size:10px; }
.menu-sections { padding-top:50px; }
.menu-group { display:grid; grid-template-columns:36% 64%; padding:90px 0; border-top:1px solid var(--line); }
.menu-group-title h2 { font-size:clamp(55px,6vw,78px); }
.menu-group-title .section-jp { margin-top:20px; }
.menu-item { display:flex; justify-content:space-between; gap:25px; padding-bottom:25px; margin-bottom:25px; border-bottom:1px solid var(--line); }
.menu-item h3 { font-size:14px; font-weight:400; margin-bottom:3px; }
.menu-item p { color:var(--muted); font-size:10px; margin:0; }
.menu-item>span { font:20px var(--serif); }
.seasonal { max-width:1160px; margin:20px auto 170px; display:grid; grid-template-columns:58% 42%; align-items:center; background:var(--ivory); }
.seasonal-image { height:630px; background:url('https://images.unsplash.com/photo-1578985545062-69928b1d9587?auto=format&fit=crop&w=1100&q=85') center/cover; filter:saturate(.72); }
.seasonal>div:last-child { padding:65px; }
.seasonal h2 { font-size:clamp(52px,5.5vw,75px); }
.seasonal .section-jp { margin-bottom:28px; }
.seasonal>div:last-child>p:not(.eyebrow):not(.section-jp):not(.price) { color:var(--muted); font-size:12px; }
.price { font:27px var(--serif); color:var(--accent); }

.story { display:grid; grid-template-columns:1fr 1fr; gap:13%; }
.story h2,.section-heading h2 { font-size:clamp(60px,7vw,94px); }
.story>div:last-child { padding-top:45px; color:var(--muted); font-size:13px; }
.story>div:last-child p { margin-bottom:30px; }
.wide-photo { height:720px; max-width:1450px; margin:auto; background:url('https://images.unsplash.com/photo-1445077100181-a33e9ac94db0?auto=format&fit=crop&w=2000&q=88') center/cover; filter:saturate(.7); }
.section-heading { max-width:830px; margin:0 auto 100px; text-align:center; }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:65px; }
.values-grid article { padding-top:25px; border-top:1px solid var(--line); }
.values-grid span { color:var(--accent); font:italic 19px var(--serif); }
.values-grid h3 { margin-top:45px; font:500 27px var(--serif); }
.values-grid p { color:var(--muted); font-size:12px; }
.quote { padding:150px 20px; text-align:center; color:var(--paper); background:var(--brown); }
.quote blockquote { font:500 clamp(42px,5.5vw,76px)/1.35 var(--serif); margin:0 0 30px; }
.quote p { color:#c6a493; font:9px Arial,sans-serif; letter-spacing:.25em; }

.access-layout { display:grid; grid-template-columns:57% 43%; align-items:center; }
.shop-photo { height:760px; background:url('https://images.unsplash.com/photo-1559925393-8be0ec4767c8?auto=format&fit=crop&w=1200&q=88') center/cover; filter:saturate(.7); }
.shop-info { padding:30px 0 30px 80px; }
.shop-info h2 { font-size:clamp(48px,5vw,68px); }
.shop-info dl { margin:45px 0; border-top:1px solid var(--line); }
.shop-info dl>div { display:grid; grid-template-columns:105px 1fr; padding:19px 0; border-bottom:1px solid var(--line); font-size:12px; }
.shop-info dt,.shop-info small { color:var(--muted); }
.shop-info dd { margin:0; }
.map-section { display:grid; grid-template-columns:1fr 1fr; gap:90px; padding-top:40px; }
.map-placeholder { min-height:500px; position:relative; overflow:hidden; display:grid; place-items:center; background:#e6dfd2; }
.map-placeholder>p { position:absolute; bottom:12px; right:20px; font:9px Arial,sans-serif; letter-spacing:.23em; }
.map-pin { z-index:2; display:grid; place-items:center; width:66px; height:66px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); color:white; background:var(--accent); font:28px var(--serif); }
.road { position:absolute; width:130%; height:20px; background:var(--paper); transform:rotate(-18deg); }
.road-two { transform:rotate(58deg); }
.road-three { height:10px; transform:translateY(140px) rotate(8deg); }
.directions { align-self:center; }
.directions h2 { font-size:clamp(55px,6vw,78px); }
.directions>p:not(.eyebrow):not(.section-jp) { color:var(--muted); font-size:12px; margin-top:22px; }
.access-note { padding:145px 25px; text-align:center; background:var(--ivory); }
.access-note h2 { font-size:clamp(60px,7vw,92px); }
.access-note>p:last-child { color:var(--muted); font-size:12px; }

.site-footer { display:grid; grid-template-columns:2fr 1fr 1fr; gap:50px; padding:85px clamp(28px,5vw,82px) 28px; color:var(--paper); background:#211b18; font:10px/1.8 Arial,sans-serif; letter-spacing:.14em; }
.footer-brand { display:flex; align-items:center; gap:18px; }
.footer-brand p { margin:0; font-size:11px; }
.footer-brand small { color:rgba(255,255,255,.5); font-size:8px; }
.site-footer a { position:relative; }
.site-footer a::after { content:''; position:absolute; left:0; right:0; bottom:-3px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .3s; }
.site-footer a:hover::after { transform:scaleX(1); transform-origin:left; }
.copyright { grid-column:1/-1; margin-top:35px; padding-top:22px; border-top:1px solid rgba(255,255,255,.13); color:rgba(255,255,255,.45); }

/* Home page */
.home-hero { min-height:calc(100svh - 112px); display:block; isolation:isolate; color:var(--paper); background:#3b3029; }
.home-hero .hero-image { position:absolute; inset:0; min-height:0; background-image:linear-gradient(90deg,rgba(29,23,19,.72) 0%,rgba(29,23,19,.45) 40%,rgba(29,23,19,.08) 75%),linear-gradient(0deg,rgba(29,23,19,.34),transparent 42%),url('images/hero-cafe-interior.jpg'); background-position:center; background-size:cover; filter:none; z-index:-1; }
.home-hero .hero-copy { width:min(750px,58vw); min-height:calc(100svh - 112px); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:clamp(70px,8vw,135px) clamp(30px,7vw,120px); }
.home-hero h1 { max-width:none; margin-bottom:26px; font-size:clamp(76px,8.8vw,142px); color:var(--paper); text-shadow:0 2px 30px rgba(20,15,12,.12); }
.home-hero .hero-jp { color:var(--paper); }
.home-hero .hero-copy>p:not(.eyebrow):not(.hero-jp) { color:rgba(255,255,255,.72); }
.home-hero .eyebrow { color:#ddb6a2; }
.home-hero .button { color:var(--paper); border-color:rgba(255,255,255,.62); }
.home-hero .button:hover { color:var(--brown); background:var(--paper); }
.text-link { display:inline-flex; gap:18px; align-items:center; margin-top:42px; padding-bottom:5px; border-bottom:1px solid var(--brown); font:600 12px var(--serif); letter-spacing:.16em; }
.text-link span { color:var(--accent); transition:transform .3s; }
.text-link:hover span { transform:translateX(5px); }
.favorites { max-width:1360px; padding-top:40px; }
.favorites-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:70px; margin-bottom:90px; }
.favorites-heading h2 { margin:0; font-size:clamp(62px,7vw,96px); }
.favorites-heading>p { max-width:370px; margin-bottom:10px; color:var(--muted); font-size:12px; }
.favorites .feature-grid { padding:0; }
.feature-image.cake { background-image:url('https://images.unsplash.com/photo-1608830597604-619220679440?auto=format&fit=crop&w=900&q=85'); }
.product-title { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.product-title h3 { margin-bottom:10px; }
.product-title span { flex:0 0 auto; color:var(--accent); font:20px var(--serif); }
.favorites-link { display:flex; justify-content:center; margin-top:100px; }

.back-to-top { position:fixed; right:clamp(18px,3vw,42px); bottom:clamp(18px,3vw,40px); z-index:30; width:58px; height:58px; display:grid; place-content:center; gap:0; border:1px solid rgba(251,249,244,.35); border-radius:50%; color:var(--paper); background:rgba(41,34,30,.92); box-shadow:0 8px 28px rgba(41,34,30,.18); opacity:0; visibility:hidden; transform:translateY(15px); cursor:pointer; backdrop-filter:blur(8px); transition:opacity .3s,visibility .3s,transform .3s,background .3s; }
.back-to-top.visible { opacity:1; visibility:visible; transform:none; }
.back-to-top span { font:18px/1 var(--serif); }
.back-to-top small { font:7px/1.4 Arial,sans-serif; letter-spacing:.16em; }

@media (hover:hover) {
  .button:hover { transform:translateY(-2px); }
  .feature-card,.catalog-card,.values-grid article,.details-grid>div { transition:transform .35s ease,border-color .35s ease; }
  .feature-card:hover,.catalog-card:hover,.values-grid article:hover,.details-grid>div:hover { transform:translateY(-7px); border-color:var(--accent); }
  .catalog-card:hover h3,.values-grid article:hover h3 { color:var(--accent); }
  .back-to-top:hover { color:var(--brown); background:var(--paper); border-color:var(--brown); transform:translateY(-3px); }
}

/* Menu catalog */
.catalog { max-width:1320px; }
.catalog-intro { display:grid; grid-template-columns:1.05fr .7fr; align-items:end; gap:clamp(60px,10vw,150px); }
.catalog-intro h2 { margin:0; font-size:clamp(68px,8vw,108px); }
.catalog-intro>div:last-child { color:var(--muted); font-size:13px; }
.filter-bar { display:flex; gap:0; margin:110px 0 20px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.filter-button { flex:1; min-height:68px; padding:15px; border:0; border-right:1px solid var(--line); color:var(--muted); background:transparent; font:600 12px var(--serif); letter-spacing:.18em; cursor:pointer; transition:color .3s,background .3s; }
.filter-button:last-child { border-right:0; }
.filter-button:hover,.filter-button.active { color:var(--paper); background:var(--brown); }
.filter-status { min-height:24px; margin-bottom:25px; color:var(--muted); font-size:10px; text-align:right; }
.catalog-grid { display:grid; grid-template-columns:repeat(2,1fr); column-gap:70px; }
.catalog-card { padding:42px 0 36px; border-bottom:1px solid var(--line); }
.catalog-card[hidden] { display:none; }
.catalog-category { margin-bottom:23px; color:var(--accent); font:9px Arial,sans-serif; letter-spacing:.25em; }
.catalog-card>div { display:flex; justify-content:space-between; align-items:baseline; gap:30px; }
.catalog-card h3 { margin-bottom:8px; font-family:var(--serif); font-size:27px; font-weight:500; }
.catalog-card span { flex:0 0 auto; font:22px var(--serif); }
.catalog-card>p:last-child { margin:0; color:var(--muted); font-size:11px; }

/* Story */
.concept { max-width:1360px; display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(60px,9vw,140px); align-items:center; }
.concept-copy h2 { font-size:clamp(60px,6.5vw,92px); }
.concept-copy>p:not(.eyebrow):not(.section-jp) { color:var(--muted); font-size:13px; }
.concept-photo { margin:0; overflow:hidden; }
.concept-photo img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; filter:saturate(.78); }
.details-section { color:var(--paper); background:var(--brown); }
.details-inner { max-width:1320px; display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(70px,10vw,150px); }
.details-heading .eyebrow { color:#d5a48d; }
.details-heading h2 { font-size:clamp(58px,6vw,82px); }
.details-heading .section-jp { color:rgba(255,255,255,.7); }
.details-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0 55px; margin:0; }
.details-grid>div { padding:27px 0; border-top:1px solid rgba(255,255,255,.17); }
.details-grid dt { margin-bottom:19px; color:#d5a48d; font:9px Arial,sans-serif; letter-spacing:.25em; }
.details-grid dd { margin:0; }
.details-grid strong { display:block; margin-bottom:7px; font:500 31px var(--serif); }
.details-grid span { color:rgba(255,255,255,.6); font-size:10px; }

/* Access */
.visit-info { max-width:1220px; display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(70px,11vw,160px); }
.visit-heading h2 { font-size:clamp(65px,7vw,95px); }
.fiction-note { padding-left:16px; border-left:2px solid var(--accent); color:var(--muted); font-size:10px; }
.contact-list { margin:0; border-top:1px solid var(--line); }
.contact-list>div { display:grid; grid-template-columns:125px 1fr; padding:26px 0; border-bottom:1px solid var(--line); }
.contact-list dt { color:var(--accent); font:9px Arial,sans-serif; letter-spacing:.2em; }
.contact-list dd { margin:0; font-size:13px; }
.contact-list small { color:var(--muted); }
.osm-section { max-width:1440px; margin:0 auto 150px; display:grid; grid-template-columns:36% 64%; align-items:center; background:var(--ivory); }
.map-copy { padding:clamp(45px,6vw,90px); }
.map-copy h2 { font-size:clamp(58px,6vw,84px); }
.map-copy>p:not(.eyebrow) { color:var(--muted); font-size:12px; }
.osm-map { min-height:620px; align-self:stretch; }
.osm-map iframe { display:block; width:100%; height:100%; min-height:620px; border:0; filter:grayscale(.28) sepia(.08) saturate(.75); }
.access-message { padding:140px 25px; text-align:center; color:var(--paper); background:var(--brown); }
.access-message .eyebrow { color:#d5a48d; }
.access-message h2 { font-size:clamp(65px,7vw,96px); }
.access-message>p:not(.eyebrow):not(.fiction-note) { max-width:620px; margin:0 auto 28px; color:rgba(255,255,255,.68); font-size:12px; }
.access-message .fiction-note { display:inline-block; margin-top:35px; color:rgba(255,255,255,.48); text-align:left; }

.reveal { opacity:1; transform:none; }
.js .reveal { opacity:0; transform:translateY(28px); transition:opacity .9s ease,transform .9s ease; }
.js .reveal.visible { opacity:1; transform:none; }

@media (max-width:840px) {
  .site-header { height:78px; padding:0 20px; position:sticky; top:0; }
  .logo-mark { width:37px; height:37px; font-size:22px; }
  .menu-toggle { display:block; z-index:3; }
  .global-nav { position:fixed; inset:78px 0 auto; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:22px; background:var(--paper); border-bottom:1px solid var(--line); transform:translateY(-130%); transition:transform .35s; }
  .global-nav.open { transform:none; }
  .global-nav a { width:100%; padding:15px 5px; border-bottom:1px solid var(--line); }
  .global-nav a::after { display:none; }
  .menu-toggle.open span:nth-child(1) { transform:translateY(8px) rotate(45deg); }
  .menu-toggle.open span:nth-child(2) { opacity:0; }
  .menu-toggle.open span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }
  .hero { min-height:auto; grid-template-columns:1fr; }
  .hero-image { grid-column:1; height:62svh; min-height:430px; }
  .hero-copy { grid-column:1; grid-row:2; padding:80px 25px 90px; }
  .hero h1 { font-size:clamp(52px,15vw,72px); }
  .hero-note { top:25px; bottom:auto; }
  .home-hero { min-height:calc(100svh - 78px); display:block; }
  .home-hero .hero-image { height:auto; min-height:0; background-image:linear-gradient(90deg,rgba(29,23,19,.67),rgba(29,23,19,.18)),linear-gradient(0deg,rgba(29,23,19,.52),transparent 55%),url('images/hero-cafe-interior.jpg'); background-position:58% center; }
  .home-hero .hero-copy { width:100%; min-height:calc(100svh - 78px); padding:100px 25px 75px; justify-content:flex-end; }
  .home-hero h1 { max-width:570px; font-size:clamp(64px,20vw,96px); }
  .section { padding:100px 25px; }
  .intro { text-align:left; }
  .intro-layout { display:block; }
  .intro-photo { margin-bottom:65px; }
  .intro-photo img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
  .intro h2 { font-size:57px; }
  .intro>p:last-child { margin-left:0; }
  .feature-grid { grid-template-columns:1fr; gap:75px; }
  .feature-card.offset { margin-top:0; }
  .feature-image { height:auto; }
  .favorites { padding-top:40px; }
  .favorites-heading { display:block; margin-bottom:65px; }
  .favorites-heading h2 { font-size:62px; margin-bottom:35px; }
  .favorites-heading>p { max-width:440px; }
  .favorites-link { justify-content:flex-start; margin-top:70px; }
  .catalog-intro,.concept,.details-inner,.visit-info,.osm-section { display:block; }
  .catalog-intro>div:last-child { margin-top:45px; }
  .filter-bar { margin-top:70px; overflow-x:auto; }
  .filter-button { flex:0 0 110px; min-height:58px; }
  .catalog-grid { grid-template-columns:1fr; }
  .concept-photo { margin-top:65px; }
  .details-heading { margin-bottom:70px; }
  .details-grid { grid-template-columns:1fr 1fr; gap:0 25px; }
  .visit-heading { margin-bottom:70px; }
  .osm-section { margin:0 20px 110px; }
  .map-copy { padding:70px 28px; }
  .osm-map,.osm-map iframe { min-height:460px; height:460px; }
  .visit-banner { margin-top:30px; padding:95px 25px; display:block; }
  .visit-banner h2 { font-size:58px; }
  .visit-banner .button { margin-top:40px; }
  .page-hero { min-height:500px; padding:65px 25px; }
  .page-hero h1 { font-size:clamp(76px,25vw,108px); }
  .menu-intro,.menu-group,.story,.access-layout,.map-section { display:block; }
  .menu-group { padding:65px 0; }
  .menu-group-title { margin-bottom:45px; }
  .seasonal { display:block; margin:0 20px 110px; }
  .seasonal-image { height:430px; }
  .seasonal>div:last-child { padding:45px 28px; }
  .story>div:last-child { padding-top:40px; }
  .wide-photo { height:500px; }
  .values-grid { grid-template-columns:1fr; gap:55px; }
  .quote { padding:100px 25px; }
  .shop-photo { height:520px; }
  .shop-info { padding:65px 0 0; }
  .map-placeholder { min-height:430px; margin-bottom:70px; }
  .access-note { padding:110px 25px; }
  .site-footer { grid-template-columns:1fr 1fr; padding:65px 25px 22px; }
  .footer-brand { grid-column:1/-1; margin-bottom:20px; }
  .copyright { grid-column:1/-1; }
}
@media (max-width:480px) { body { font-size:14px; } .feature-image { height:auto; } .menu-item h3 { max-width:210px; } .shop-info dl>div { grid-template-columns:85px 1fr; } .details-grid { grid-template-columns:1fr; } .contact-list>div { grid-template-columns:95px 1fr; } .osm-map,.osm-map iframe { min-height:390px; height:390px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; } .js .reveal { opacity:1; transform:none; } }
