/* Shared palette and typography */
:root{--paper:#f8f4ec;--ink:#302923;--muted:#71655c;--accent:#94543f;--line:#d9cec0;--surface:#eee5d8;--serif:Georgia,"Times New Roman","Yu Mincho",serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/2.1 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}main:focus{outline:none}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400;line-height:1.07;letter-spacing:-.045em}h1{font-size:clamp(52px,6.6vw,96px)}h2{font-size:clamp(42px,4.8vw,64px)}h3{font:500 19px/1.7 var(--sans)}em{font-weight:400}small{font-size:12px}.eyebrow,.item-category{font:11px/1.7 var(--sans);letter-spacing:.23em;color:var(--accent);margin-bottom:25px}.section-japanese{font-size:16px;letter-spacing:.06em;margin-top:24px}.skip-link{position:fixed;top:10px;left:10px;transform:translateY(-150%);background:var(--ink);color:var(--paper);padding:10px 20px;z-index:100}.skip-link:focus{transform:translateY(0)}
/* Header */
.site-header{width:88%;max-width:1280px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:30px 0;border-bottom:1px solid var(--line);gap:25px}.brand{font:38px/1 var(--serif);letter-spacing:-.05em}.brand span{display:block;font:9px/1.7 var(--sans);letter-spacing:.18em;margin-top:10px}nav{display:flex;gap:36px}nav a{position:relative;padding:13px 0;font-size:11px;letter-spacing:.12em}nav a:after{content:"";position:absolute;bottom:6px;left:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s}nav a:hover:after,nav a[aria-current]:after{transform:scaleX(1)}nav a[aria-current]{color:var(--accent)}.nav-toggle{background:transparent;border:1px solid var(--line);color:var(--ink);padding:9px 12px;font-size:12px;cursor:pointer;min-height:44px}
/* Home */
.hero{width:88%;max-width:1280px;margin:65px auto 0;display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center}.hero-copy{padding:25px 0}.hero .eyebrow{margin-bottom:35px}.hero h1{font-size:clamp(52px,5.9vw,85px)}.hero-japanese{font-size:17px;letter-spacing:.07em;margin-top:30px}.hero-copy>p:not(.eyebrow):not(.hero-japanese):not(.hero-hours){margin:22px 0 35px;color:var(--muted);font-size:14px}.hero-hours{font-size:11px;letter-spacing:.12em;color:var(--muted);margin-top:28px}.hero-hours span{letter-spacing:0}.button{display:inline-flex;gap:45px;align-items:center;background:var(--accent);color:var(--paper);padding:15px 27px;min-height:50px;font-size:13px;transition:background .2s}.button:hover{background:var(--ink)}.text-link{display:inline-flex;gap:30px;align-items:center;padding:10px 0;border-bottom:1px solid var(--accent);font-size:13px;min-height:44px}.text-link:hover{color:var(--accent)}.section{width:88%;max-width:1160px;padding:125px 0;margin:auto}.intro{display:grid;grid-template-columns:1fr 1fr;column-gap:100px;align-items:start;padding-top:155px;padding-bottom:155px}.intro .eyebrow{grid-column:1/-1}.intro h2{grid-column:1;grid-row:2/5}.intro .section-japanese{grid-column:2;margin:0 0 25px;font-size:19px}.intro>p:not(.eyebrow):not(.section-japanese){grid-column:2;color:var(--muted)}.intro .text-link{grid-column:2;justify-self:start;margin-top:30px}.recommendations{border-top:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:55px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.card-content{padding-top:27px}.item-category{font-size:10px;margin-bottom:12px}.card-content>p:not(.item-category){font-size:14px;color:var(--muted);margin:12px 0 20px}.price{font:17px var(--serif)}.visit-banner{width:88%;max-width:1160px;margin:0 auto 125px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:70px 0;display:flex;justify-content:space-between;align-items:center;gap:40px}.visit-banner h2{font-size:clamp(38px,4vw,55px)}.visit-banner p:last-child{font-size:13px;color:var(--muted);margin-top:18px}
/* CSS illustrations: locally rendered without image dependencies */
.coffee-art{height:560px;background:#c9b7a0;position:relative;overflow:hidden;isolation:isolate}.sunlight{position:absolute;inset:0;background:linear-gradient(120deg,transparent 12%,#eadcca99 12%,#eadcca99 33%,transparent 33%,transparent 41%,#eadcca88 41%,#eadcca88 60%,transparent 60%)}.saucer{position:absolute;width:295px;height:295px;background:#f3eadc;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-42%);box-shadow:24px 32px 35px #30292330,inset 0 0 0 18px #e4d9c9,inset 0 0 0 20px #faf5ed70}.cup{position:absolute;width:195px;height:195px;border-radius:50%;background:#faf5eb;left:47px;top:44px;box-shadow:10px 15px 17px #30292330;isolation:isolate}.cup:after{content:"";position:absolute;top:72px;right:-40px;width:58px;height:42px;border:12px solid #f4ebdd;border-radius:15px;z-index:-1}.coffee{position:absolute;inset:13px;border-radius:50%;border:7px solid #d6c5b1;background:radial-gradient(ellipse at 32% 26%,#86634a,#3e2d23 72%);box-shadow:inset 4px 7px 10px #30292360}.leaf{position:absolute;width:105px;height:220px;border-radius:100% 0;background:#756250;transform:rotate(-30deg)}.leaf-one{right:-20px;top:-75px}.leaf-two{right:-55px;top:15px;transform:rotate(-75deg);background:#99806a}.art-caption{position:absolute;bottom:30px;left:25px;font:10px var(--sans);letter-spacing:.22em;color:var(--ink)}.item-art{height:290px;position:relative;display:grid;place-items:center;overflow:hidden;background:var(--surface)}.drink-art{background:#dfd3c3}.cake-art{background:#e8ddce}.toast-art{background:#d8c8b5}.art-number{position:absolute;bottom:19px;left:20px;font:9px var(--sans);letter-spacing:.16em;color:#645345}.mini-saucer,.cake-plate,.toast-plate{width:165px;height:165px;background:#f6eee2;border-radius:50%;box-shadow:14px 22px 25px #30292320;position:relative}.mini-cup{position:absolute;width:110px;height:110px;top:26px;left:26px;border:12px solid #faf5ed;border-radius:50%;background:radial-gradient(ellipse at 30% 20%,#896348,#423024);box-shadow:5px 8px 8px #30292330}.mini-cup:after{content:"";position:absolute;right:-29px;top:31px;width:21px;height:24px;border:7px solid #faf5ed;border-radius:8px}.cake-slice{position:absolute;width:112px;height:108px;left:30px;top:25px;clip-path:polygon(10% 0,100% 42%,10% 100%);background:linear-gradient(#b68b66 0 12%,#eee0bd 12% 82%,#ae7b54 82%);transform:rotate(-18deg);filter:drop-shadow(5px 5px 4px #30292330)}.toast-slice{position:absolute;width:110px;height:120px;left:28px;top:20px;border:9px solid #a77950;border-radius:28px 28px 10px 10px;transform:rotate(-13deg);background:radial-gradient(ellipse,#ead3aa,#c89d65);box-shadow:5px 8px 8px #30292320}.toast-slice>span{position:absolute;top:31px;left:29px;width:31px;height:29px;background:#f1e1be;box-shadow:3px 3px 5px #30292320}
/* Inner pages */
.page-heading{width:88%;max-width:1160px;margin:auto;padding:105px 0 85px;border-bottom:1px solid var(--line)}.page-heading h1{font-size:clamp(60px,8vw,110px)}.page-heading>p:last-child{color:var(--muted);margin-top:18px}.menu-group{display:grid;grid-template-columns:1fr 1.5fr;gap:100px;margin-bottom:100px}.menu-group>div>p:last-child{color:var(--muted);font-size:14px;margin-top:22px}.menu-list{margin:0}.menu-list>div{display:flex;justify-content:space-between;gap:25px;padding:25px 0;border-bottom:1px solid var(--line)}.menu-list>div:first-child{padding-top:0}.menu-list dt{font-size:16px}.menu-list dt small{display:block;font-size:13px;color:var(--muted);margin-top:8px}.menu-list dd{margin:0;font:20px/1.8 var(--serif);white-space:nowrap}.menu-note{border-top:1px solid var(--line);padding-top:30px;color:var(--muted);font-size:13px}.story{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.story-copy>p:not(.eyebrow):not(.section-japanese){margin-top:25px;color:var(--muted)}.story-art{height:580px;background:#d8c8b5;padding:65px 35px;position:relative;overflow:hidden}.window-shape{height:320px;width:215px;margin:auto;background:linear-gradient(130deg,#b9a48a,#f3e6d0);border:12px solid #87725d;border-radius:110px 110px 0 0;position:relative;box-shadow:30px 40px 0 #c4af9460}.window-shape:before{content:"";position:absolute;left:50%;width:8px;height:100%;background:#87725d}.window-shape:after{content:"";position:absolute;top:52%;width:100%;height:8px;background:#87725d}.story-art>span{display:block;text-align:center;margin-top:60px;font:12px/1.8 var(--serif);letter-spacing:.2em}.values{border-top:1px solid var(--line)}.values .card-grid{margin-top:65px}.values article{padding-top:25px;border-top:1px solid var(--line)}.value-number{display:block;font:34px var(--serif);color:var(--accent);margin-bottom:30px}.values article p{margin-top:18px;color:var(--muted);font-size:14px}.access-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.info-list{margin-top:30px}.info-list>div{display:grid;grid-template-columns:85px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.info-list dt{font-size:13px;color:var(--muted)}.info-list dd{margin:0;font-size:14px}.info-list small{color:var(--muted)}.map{height:450px;background:#e5dbcd;position:relative;overflow:hidden}.map-road{position:absolute;background:var(--paper)}.road-vertical{width:45px;height:100%;left:45%}.road-horizontal{width:100%;height:40px;top:45%}.map-park{position:absolute;top:12%;left:7%;background:#cbbbA5;padding:32px 20px;border-radius:2px;font-size:12px}.map-shop{position:absolute;right:6%;top:23%;background:var(--accent);color:var(--paper);padding:17px 24px;text-align:center;font:24px/1.4 var(--serif)}.map-shop::first-line{font-style:italic}.map-station{position:absolute;bottom:30px;left:29%;width:42%;background:#c9b9a6;padding:10px;text-align:center;font-size:13px}.map-north{position:absolute;bottom:35px;right:20px;font:12px var(--sans)}.map-caption{font-size:12px;color:var(--muted);margin-top:15px}.access-note{width:88%;max-width:1160px;margin:0 auto 125px;padding:65px;background:var(--surface)}.access-note>p:last-child{margin-top:25px;color:var(--muted)}
/* Footer */
.site-footer{background:var(--surface);padding:75px 6% 30px}.footer-top{max-width:1280px;margin:auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:65px}.footer-brand{font:46px/1 var(--serif);letter-spacing:-.045em}.footer-brand span{display:block;font:12px/1.8 var(--sans);letter-spacing:.12em;margin-top:16px}.footer-tagline{font-size:13px;color:var(--muted);margin-top:22px}.footer-top .eyebrow{margin-bottom:22px}.footer-top p:not(.eyebrow){font-size:13px}.footer-detail{font-size:11px;color:var(--muted);margin-left:12px}.footer-top .text-link{margin-top:16px}.social-links{display:flex;flex-direction:column;gap:8px}.social-links a{font:17px/2 var(--serif);display:flex;justify-content:space-between;max-width:180px;min-height:44px}.social-links a:hover{color:var(--accent)}.social-note{color:var(--muted);font-size:11px!important;margin-top:15px}.footer-bottom{max-width:1280px;margin:65px auto 0;border-top:1px solid #cfc0af;padding-top:25px;display:flex;justify-content:space-between;gap:30px}.footer-bottom small{font-size:10px;letter-spacing:.06em;color:var(--muted)}
@media(min-width:761px){.nav-toggle{display:none}}
@media(max-width:1050px){.hero{gap:35px}.coffee-art{height:490px}.hero h1{font-size:60px}.card-grid{gap:22px}.item-art{height:240px}.intro,.story,.menu-group{column-gap:55px}.access-layout{gap:45px}.footer-top{gap:35px}}
@media(max-width:760px){body{font-size:15px}.site-header{padding:23px 0;flex-wrap:wrap}.brand{font-size:33px}.brand span{font-size:8px}.nav-toggle:not([hidden]){display:block}nav{width:100%;flex-wrap:wrap;gap:12px 25px;border-top:1px solid var(--line);padding-top:15px}nav a{min-height:44px}nav.is-collapsible:not(.is-open){display:none}.hero{grid-template-columns:1fr;margin-top:35px;gap:35px}.hero h1{font-size:clamp(47px,9.4vw,69px)}.hero .eyebrow{font-size:9px;margin-bottom:25px}.hero-copy{padding:15px 0 0}.hero-japanese{font-size:15px}.hero-copy>p:not(.eyebrow):not(.hero-japanese):not(.hero-hours){font-size:14px}.hero-hours{margin-top:22px}.coffee-art{height:410px}.saucer{transform:translate(-50%,-42%) scale(.86)}.section{padding:85px 0}.intro{display:block;padding:95px 0}.intro h2{font-size:53px}.intro .section-japanese{margin:30px 0 20px;font-size:16px}.intro>p:not(.eyebrow):not(.section-japanese){font-size:14px}.intro .text-link{margin-top:25px}.section-heading{align-items:start;flex-direction:column;gap:22px;margin-bottom:35px}h2{font-size:43px}.section-japanese{font-size:15px}.card-grid{grid-template-columns:1fr;gap:45px}.item-art{height:300px}.card-content{padding-top:22px}.card-content p:not(.item-category){margin-bottom:14px}.visit-banner{padding:50px 0;margin-bottom:85px;flex-direction:column;align-items:start;gap:28px}.visit-banner h2{font-size:40px}.page-heading{padding:65px 0 55px}.page-heading h1{font-size:clamp(52px,12vw,82px)}.menu-group,.story,.access-layout{grid-template-columns:1fr;gap:40px}.menu-group{margin-bottom:70px}.menu-list dt{font-size:15px}.menu-list dt small{font-size:13px}.menu-list dd{font-size:18px}.menu-list>div{gap:15px}.story-art{height:440px;padding:40px 25px}.window-shape{height:270px;width:190px}.story-art>span{margin-top:35px}.story-copy h2{font-size:51px}.values .card-grid{margin-top:45px;gap:35px}.value-number{margin-bottom:20px}.map{height:390px}.map-shop{padding:16px;font-size:22px}.map-park{padding:27px 15px}.access-note{padding:35px 25px;margin-bottom:85px}.access-note h2{font-size:40px}.footer-top{grid-template-columns:1fr;gap:40px}.site-footer{padding-top:55px}.footer-bottom{flex-direction:column;gap:12px;margin-top:45px}.footer-bottom small{font-size:11px}.social-links{flex-direction:row;gap:30px}.social-links a{gap:25px}.eyebrow{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}

/* Home alternative: editorial typography and an uninterrupted photograph. */
.editorial-hero { width: 88%; max-width: 1280px; margin: 0 auto; }
.editorial-title { padding: 74px 0 52px; }
.editorial-title .eyebrow { margin-bottom: 28px; }
.editorial-title h1 { font-size: clamp(64px, 8.3vw, 122px); line-height: .98; letter-spacing: -.055em; }
.editorial-title h1 em { color: var(--accent); }
.editorial-description { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-top: 34px; }
.editorial-description p { font-size: 15px; color: var(--muted); line-height: 2.1; }
.editorial-description .text-link { flex-shrink: 0; }
.editorial-visual { margin: 0; }
.editorial-visual img { display: block; width: 100%; height: clamp(330px, 42vw, 580px); object-fit: cover; object-position: center 55%; }
.editorial-visual figcaption { display: flex; justify-content: space-between; gap: 20px; margin-top: 15px; color: var(--muted); font-size: 10px; letter-spacing: .1em; }
.editorial-info { display: flex; justify-content: space-between; align-items: center; gap: 25px; border-bottom: 1px solid var(--line); padding: 28px 0; }
.editorial-info p { font-size: 13px; }
.editorial-info .eyebrow { display: inline-block; margin: 0 25px 0 0; font-size: 10px; }
.info-muted { color: var(--muted); font-size: 12px; }
.home-page .intro { display: grid; grid-template-columns: 1.2fr 1fr; gap: 100px; padding: 135px 0; }
.home-page .intro-heading h2 { font-size: clamp(44px, 4.6vw, 64px); }
.home-page .intro-body { padding-top: 40px; }
.home-page .intro-body .section-japanese { font-size: 17px; margin: 0 0 28px; }
.home-page .intro-body > p:not(.section-japanese) { font-size: 15px; color: var(--muted); margin-bottom: 20px; }
.home-page .intro-body .text-link { margin-top: 10px; }
.home-page .recommendations { padding: 100px 0 115px; }
.home-page .menu-card { border: 1px solid var(--line); background: #fcf8f1; }
.home-page .card-content { padding: 28px 25px 32px; }
.home-page .card-content h3 { font-size: 18px; }
.home-page .item-art { height: 270px; }
.favorites-note { font-size: 12px; color: var(--muted); margin-top: 28px; }
.home-page .visit-banner { width: 88%; max-width: 1160px; background: var(--surface); border: none; padding: 65px 55px; margin-bottom: 110px; }
.home-page .visit-banner h2 { font-size: clamp(35px, 3.8vw, 53px); }
#our-story { scroll-margin-top: 25px; }
@media (max-width: 1050px) {
  .home-page .intro { gap: 55px; }
  .home-page .card-content { padding: 25px 19px; }
  .home-page .item-art { height: 240px; }
  .home-page .visit-banner { padding: 45px 35px; }
}
@media (max-width: 760px) {
  .editorial-title { padding: 50px 0 35px; }
  .editorial-title .eyebrow { font-size: 9px; letter-spacing: .18em; }
  .editorial-title h1 { font-size: clamp(45px, 10.3vw, 76px); line-height: 1.04; }
  .editorial-description { flex-direction: column; align-items: start; gap: 16px; margin-top: 26px; }
  .editorial-description p { font-size: 14px; }
  .editorial-visual img { height: 370px; object-position: 64% center; }
  .editorial-visual figcaption { flex-direction: column; gap: 3px; font-size: 9px; }
  .editorial-info { gap: 16px; padding: 22px 0; }
  .editorial-info p { font-size: 12px; }
  .editorial-info .eyebrow { display: block; margin: 0 0 6px; font-size: 9px; }
  .editorial-info .text-link { font-size: 12px; gap: 20px; flex-shrink: 0; }
  .info-muted { font-size: 11px; }
  .home-page .intro { display: block; padding: 85px 0; }
  .home-page .intro-heading h2 { font-size: clamp(40px, 10vw, 56px); }
  .home-page .intro-body { padding-top: 35px; }
  .home-page .intro-body .section-japanese { font-size: 15px; }
  .home-page .intro-body > p:not(.section-japanese) { font-size: 14px; }
  .home-page .recommendations { padding: 75px 0 85px; }
  .home-page .recommendations h2 { font-size: clamp(36px, 9vw, 52px); }
  .home-page .item-art { height: 280px; }
  .home-page .card-content { padding: 26px; }
  .home-page .visit-banner { padding: 38px 24px; margin-bottom: 75px; }
  .home-page .visit-banner h2 { font-size: 37px; }
}

/* Supplied photographs retain their full composition at every viewport width. */
.home-page .menu-card { min-width: 0; }
.home-page .menu-photo,
.home-page .intro-photo {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}
.home-page .menu-photo { border-bottom: 1px solid var(--line); }
.home-page .intro-figure { margin: 40px 0 0; }
.home-page .intro-figure figcaption { margin-top: 13px; color: var(--muted); font-size: 12px; }
.home-page .intro-body { align-self: center; }
@media (max-width: 760px) {
  .home-page .intro-figure { margin-top: 30px; }
  .home-page .intro-body { padding-top: 30px; }
}

/* Inner pages share the editorial rhythm of the home page. */
[hidden] { display: none !important; }
.catalog { padding-top: 55px; }
.menu-filter { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
.menu-filter button { display: inline-flex; align-items: center; gap: 15px; min-height: 50px; padding: 12px 22px; border: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer; font-size: 14px; transition: background .2s, color .2s; }
.menu-filter button span { font-size: 9px; letter-spacing: .15em; }
.menu-filter button:hover { background: var(--surface); }
.menu-filter button[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: #fffaf2; }
.filter-status { font-size: 12px; color: var(--muted); margin-bottom: 55px; }
.catalog-category { display: grid; grid-template-columns: .8fr 1.6fr; gap: 70px; padding: 55px 0 80px; border-top: 1px solid var(--line); }
.catalog-heading > p:last-child { color: var(--muted); margin-top: 20px; font-size: 14px; }
.product-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; align-items: stretch; }
.product { background: #fcf8f1; border: 1px solid var(--line); padding: 27px; display: flex; flex-direction: column; }
.product h3 { font-size: 17px; }
.product > p { color: var(--muted); font-size: 14px; margin: 15px 0 28px; }
.product-price { font: 24px var(--serif); margin-top: auto; }
.product-price small { font: 10px var(--sans); color: var(--muted); margin-left: 12px; }
.concept { display: grid; grid-template-columns: 1.1fr 1fr; gap: 75px; align-items: center; }
.concept-photo { margin: 0; min-width: 0; }
.concept-photo img { display: block; width: 100%; height: auto; }
.concept-photo figcaption { color: var(--muted); font-size: 12px; margin-top: 15px; }
.concept-copy > p:not(.eyebrow):not(.section-japanese) { color: var(--muted); margin-top: 24px; }
.shop-details { border-top: 1px solid var(--line); }
.details-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin: 60px 0 35px; }
.details-grid > div { border-top: 1px solid var(--line); padding: 22px 0; }
.details-grid dt { color: var(--accent); font-size: 12px; margin-bottom: 15px; }
.details-grid dd { margin: 0; font-size: 18px; }
.details-grid small, .location-details small { display: block; color: var(--muted); font-size: 13px; margin-top: 8px; }
.fiction-note { font-size: 13px; color: var(--muted); line-height: 2; }
.shop-details > .text-link { margin-top: 25px; }
.access-content { display: grid; grid-template-columns: 1fr 1.2fr; gap: 100px; }
.access-intro .fiction-note { margin-top: 30px; max-width: 380px; }
.location-details { margin: 0; }
.location-details > div { display: grid; grid-template-columns: 135px 1fr; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.location-details > div:first-child { padding-top: 0; }
.location-details dt { font-size: 13px; color: var(--muted); }
.location-details dd { font-size: 15px; margin: 0; }
.map-section { padding-top: 0; }
.map-section .section-heading { margin-bottom: 30px; }
.map-disclaimer { background: var(--surface); padding: 20px 25px; font-size: 13px; margin-bottom: 25px; }
.osm-map { width: 100%; border: 1px solid var(--line); }
.osm-map iframe { display: block; border: 0; width: 100%; height: 480px; }
.map-footer { display: flex; justify-content: space-between; gap: 25px; margin-top: 18px; font-size: 12px; color: var(--muted); }
.map-footer a { text-decoration: underline; text-underline-offset: 4px; flex-shrink: 0; }
@media (max-width: 1050px) {
  .catalog-category { grid-template-columns: 1fr 2fr; gap: 40px; }
  .product { padding: 22px; }
  .concept { gap: 45px; }
  .access-content { gap: 50px; }
  .location-details > div { grid-template-columns: 105px 1fr; }
}
@media (max-width: 760px) {
  .catalog { padding-top: 35px; }
  .menu-filter { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .menu-filter button { justify-content: space-between; padding: 12px 16px; gap: 8px; font-size: 13px; }
  .filter-status { margin-bottom: 35px; }
  .catalog-category { grid-template-columns: 1fr; gap: 30px; padding: 40px 0 55px; }
  .product-grid { grid-template-columns: 1fr; gap: 16px; }
  .product { padding: 25px; }
  .concept { grid-template-columns: 1fr; gap: 40px; }
  .concept-copy h2 { font-size: clamp(38px, 9.5vw, 56px); }
  .details-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 40px; }
  .details-grid dd { font-size: 16px; }
  .details-grid small { font-size: 12px; }
  .access-content { grid-template-columns: 1fr; gap: 40px; }
  .location-details > div { grid-template-columns: 105px 1fr; gap: 15px; }
  .location-details dd { font-size: 14px; }
  .map-disclaimer { padding: 20px; }
  .osm-map iframe { height: 380px; }
  .map-footer { flex-direction: column; gap: 12px; }
}

/* Motion enhances the visible page; no reveal class ever hides content. */
.site-header:focus { outline: none; }
.hamburger { display: flex; width: 22px; flex-direction: column; gap: 5px; margin: auto; }
.hamburger > span { display: block; height: 1px; width: 100%; background: currentColor; transition: transform .25s, opacity .25s; }
.nav-toggle { width: 48px; height: 48px; padding: 12px; }
.nav-toggle[aria-expanded="true"] .hamburger > span:first-child { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .hamburger > span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .hamburger > span:last-child { transform: translateY(-6px) rotate(-45deg); }
.button, .menu-filter button, .back-to-top { transition: background .2s, color .2s, transform .2s, box-shadow .2s; }
.menu-card, .product { transition: transform .25s, box-shadow .25s, border-color .25s; }
.back-to-top { position: fixed; right: 28px; bottom: 28px; z-index: 20; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 56px; height: 64px; background: var(--paper); color: var(--accent); border: 1px solid var(--line); box-shadow: 0 4px 20px #30292312; }
.back-to-top > span:first-child { font-size: 24px; line-height: 1.2; }
.back-top-label { font-size: 9px; letter-spacing: .14em; line-height: 2; }
.site-footer { padding-bottom: 105px; }
@media (hover: hover) and (pointer: fine) {
  .button:hover, .menu-filter button:hover { transform: translateY(-2px); box-shadow: 0 5px 15px #30292315; }
  .menu-card:hover, .product:hover { transform: translateY(-5px); box-shadow: 0 12px 28px #30292312; border-color: var(--accent); }
  .back-to-top:hover { transform: translateY(-3px); background: var(--accent); color: var(--paper); }
}
.button:active, .menu-filter button:active { transform: translateY(0); }
@media (max-width: 760px) {
  nav.is-open { flex-direction: column; gap: 0; }
  nav.is-open a { padding: 14px 0; border-bottom: 1px solid var(--line); }
  .back-to-top { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); width: 48px; height: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  .button:hover, .menu-filter button:hover, .menu-card:hover, .product:hover, .back-to-top:hover { transform: none; }
}
