/* Find us and the approved homepage simplification, 25 September 2026. */
.story-telegram__heading { grid-column:1/-1; display:flex; align-items:center; gap:24px; margin:0; }
.story-telegram__heading::before, .story-telegram__heading::after { content:""; flex:1; height:5px; border-block:1px solid var(--gold); }
@media(min-width:1180px) { .head__links { gap:20px; } .head__links a { font-size:17px; } }
.visit { padding-top:56px; }
.visit__hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:56px; }
.visit__card { padding:36px; }
.visit__eyebrow { color:var(--brown); font:14px/1.5 var(--type); letter-spacing:.12em; text-transform:uppercase; }
.visit h1 { margin:20px 0 16px; font:400 clamp(48px,6vw,80px)/1 var(--roman); color:#84602c; text-shadow:0 1px #fff6d5; }
.visit__address { font:400 24px/1.4 var(--roman); font-style:normal; margin-bottom:20px; }
.visit__hours { font:15px/1.7 var(--type); padding-block:16px; border-block:1px solid var(--rule-gold); }
.visit__directions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.visit__button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:12px 17px; border:1px solid var(--navy); background:var(--card); color:var(--navy); text-decoration:none; font:18px/1.3 var(--roman); cursor:pointer; }
.visit__button--primary { background:var(--navy); color:var(--on-navy); border:3px double var(--gold); }
.visit__button:hover { background:#e9dcc3; }
.visit__button--primary:hover { background:var(--navy-deep); }
.visit__photo { filter:var(--shadow-stamp); transform:rotate(-2deg); }
.visit__photo figure { margin:0; }
.visit__photo img { aspect-ratio:4/3; object-fit:contain; }
.visit__photo figcaption { padding:16px 4px 10px; font:14px/1.4 var(--type); display:flex; justify-content:space-between; }
.visit__section { margin-top:64px; padding:36px; }
.visit__section h2 { font:400 36px/1.2 var(--roman); margin:0 0 12px; }
.visit__section p { font:16px/1.7 var(--type); }
.visit__map-head { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:24px; }
.visit__map-actions { display:flex; flex-wrap:wrap; gap:8px; }
.visit__map { height:480px; width:100%; border:3px double var(--navy); z-index:0; background:#e6e0cf; }
.visit__map:focus-visible { outline-offset:4px; }
.visit__map .leaflet-control-attribution { font:11px/1.5 Arial,sans-serif; color:#444; background:#fffdf5; padding:2px 5px; }
.visit__map .leaflet-control-attribution a { color:#444; font:inherit; padding:0; min-height:0; text-decoration:underline; }
.visit__map .leaflet-control-zoom a { width:44px; height:44px; line-height:44px; }
.visit__map .leaflet-tooltip { font:14px/1.3 var(--roman); border:1px solid var(--gold); background:var(--card); color:var(--navy); }
.visit__map .visit__pin { display:flex; box-sizing:border-box; text-align:center; padding:0; align-items:center; justify-content:center; border:3px double var(--card); border-radius:50%; background:var(--red); color:white; box-shadow:0 2px 5px #0005; font:bold 18px/1 var(--roman); }
.visit__map .visit__pin > span { display:block; line-height:1; margin:0; padding:0; }
.visit__map .visit__pin--station { background:var(--navy); }
.visit__map-note { margin-top:14px; }
.visit__map-status { color:var(--brown); margin-top:10px; }
.visit__train { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; }
.visit__train-copy p+p { margin-top:14px; }
.visit__train-links { display:flex; flex-direction:column; align-items:start; gap:16px; margin-top:24px; }
.visit__planner { border-left:1px solid var(--rule-gold); padding-left:36px; }
.visit__planner label { display:block; font:20px/1.4 var(--roman); margin-bottom:10px; }
.visit__planner input { width:100%; min-width:0; padding:14px; min-height:48px; border:1px solid var(--navy); background:#fffcf5; color:var(--navy); font:16px/1.4 var(--type); border-radius:0; }
.visit__planner .visit__button { margin-top:16px; width:100%; }
.visit__planner small { display:block; margin-top:14px; font:14px/1.6 var(--type); }
.visit [hidden] { display:none; }
@media(max-width:900px) {
 .visit { padding-top:32px; }
 .visit__hero { grid-template-columns:1fr; gap:32px; }
 .visit__card { padding:28px; }
 .visit__photo { width:min(100%,560px); justify-self:center; }
 .visit__section { padding:28px; margin-top:40px; }
 .visit__map-head { flex-direction:column; align-items:start; }
 .visit__map { height:400px; }
 .visit__train { grid-template-columns:1fr; gap:28px; }
 .visit__planner { border-left:0; border-top:1px solid var(--rule-gold); padding:24px 0 0; }
 .visit__section h2 { font-size:30px; }
 .visit__section p { font-size:14px; }
}
@media(max-width:420px) {
 .visit__card, .visit__section { padding:24px; }
 .visit__directions { display:grid; grid-template-columns:1fr; }
 .visit__address { font-size:22px; }
 .visit__map-actions { width:100%; }
 .visit__map-actions .visit__button { flex:1; padding:10px; font-size:16px; }
}

@media screen{
/* Shared navigation: familiar icon and quick access to menus, calls and location. */
.head__burger-icon {
  display: grid;
  gap: 5px;
  width: 24px;
}
.head__burger-icon > span {
  display: block;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
}
@media (max-width: 1599px) {
  .js .head__burger {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    min-width: 48px;
    padding: 10px;
    border: 3px double var(--gold);
    cursor: pointer;
  }
  .head__burger:focus-visible {
    outline: 2px solid #faf6ee;
    outline-offset: 3px;
  }
}
@media (max-width: 900px) {
  .counter {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    background: #faf6ee;
    border-top: 3px double var(--gold);
  }
  .counter a {
    padding: 12px 8px;
    min-height: 56px;
    color: var(--quick-text);
    background: var(--quick-bg);
    font: 600 14px/1.3 var(--type);
    letter-spacing: .03em;
    text-transform: none;
  }
  .counter__menus { --quick-bg: #1b2a4e; --quick-text: #faf6ee; }
  .counter__call { --quick-bg: #faf6ee; --quick-text: #1b2a4e; }
  .counter__cta { --quick-bg: #6b4f3a; --quick-text: #faf6ee; }
  .counter a + a { border-left: 1px solid var(--gold); }
  .counter a:hover,
  .counter a:focus-visible,
  .counter a:active {
    background: var(--quick-bg);
    color: var(--quick-text);
    filter: brightness(.94);
  }
  .counter a:focus-visible { outline: 2px solid var(--quick-text); outline-offset: -4px; }
  body { padding-bottom: calc(59px + env(safe-area-inset-bottom, 0px)); }
}
}
/* Brief 26. Temporary movement; all resting geometry belongs to the original. */
:root{--postal-ease:cubic-bezier(.22,1,.36,1);--postal-fast:180ms}
.js .reveal,.js .reveal.reveal--card{opacity:1;transform:none;transition:none;will-change:auto}
@media(prefers-reduced-motion:no-preference){
 ::view-transition-group(*){animation:none}
 ::view-transition-old(root),::view-transition-new(root){animation:none}
 ::view-transition-old(postal-paper){animation:postal-out 160ms ease-out both}
 ::view-transition-new(postal-paper){animation:postal-in 180ms var(--postal-ease) both}
 ::view-transition-old(postal-masthead){animation:none}
 ::view-transition-new(postal-masthead){animation:none}
 .stamp-hero .arch-fan__card{transition-property:transform,opacity;transition-duration:600ms,200ms;transition-timing-function:var(--postal-ease)}
 .special-details{transition-property:opacity}
 dialog[open]{animation:postal-dialog 260ms var(--postal-ease)}
 dialog::backdrop{animation:postal-in 180ms ease-out}
}
@keyframes postal-in{from{opacity:.55}to{opacity:1}}
@keyframes postal-out{from{opacity:1}to{opacity:0}}
@keyframes postal-dialog{from{opacity:.75;transform:translateY(8px) rotate(-.35deg) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}

/* Reserve the approved carousel geometry before its external script arrives.
   The class is only set when JS runs; the original no-JS layout is retained. */
.postal-js .menu-carousel:not(.is-ready) .menu-carousel__viewport{display:grid;isolation:isolate;padding:36px 18px 28px;perspective:1200px}
.postal-js .menu-carousel:not(.is-ready) .menu-carousel__slide{grid-area:1/1;min-width:0;transform-origin:center;pointer-events:none;margin-top:0}
.postal-js .menu-carousel:not(.is-ready) .menu-carousel__slide:nth-child(1){transform:translate(5%,5%) rotate(3deg) scale(.92);z-index:3}
.postal-js .menu-carousel:not(.is-ready) .menu-carousel__slide:nth-child(2){transform:translate(-4%,0) rotate(-4deg) scale(.94);z-index:2}
.postal-js .menu-carousel:not(.is-ready) .menu-carousel__slide:nth-child(3){transform:translate(1%,-5%) rotate(1deg) scale(.94);z-index:1}
.postal-js .menu-carousel:not(.is-ready) .photo-stamp{transform:none}
.postal-js .menu-carousel:not(.is-ready) .photo-stamp figcaption{min-height:74px;display:flex;align-items:center;justify-content:center}
.postal-js .menu-carousel:not(.is-ready)::after{content:"";display:block;height:150px}
.postal-js .room-carousel:not(.is-ready) .photo-stamp figcaption{min-height:96px}
@media(max-width:640px){.postal-js .room-carousel:not(.is-ready) .photo-stamp figcaption{min-height:104px}}
@media(max-width:500px){
 .postal-js .menu-carousel:not(.is-ready) .menu-carousel__viewport{margin:0;padding:26px 8px 22px}
 .postal-js .menu-carousel:not(.is-ready):not(.room-carousel) .photo-stamp figcaption{min-height:68px}
}

.postal-js .cabinet-carousel:not(.is-ready)::after{height:124px}
.postal-js .cabinet-carousel:not(.is-ready):not(.room-carousel) .photo-stamp figcaption{min-height:58px}
@media(max-width:900px){
 .postal-js .cabinet-carousel:not(.is-ready) .menu-carousel__viewport{padding-top:24px;padding-bottom:18px}
 .postal-js .cabinet-carousel:not(.is-ready):not(.room-carousel) .photo-stamp figcaption{min-height:52px}
}
@media screen{.postal-js .arch-fan__controls[hidden]{display:flex;visibility:hidden}}

/* Signature motion, version 3. Rest geometry comes from the approved site. */
.arch-fan__stage,.menu-carousel__viewport{touch-action:pan-y;transform-origin:50% 55%}
.stamp-hero .arch-fan__card{transition:none!important}
.v3-gold-reflection{position:fixed;z-index:80;pointer-events:none;object-fit:fill;filter:brightness(1.8) saturate(.65);mix-blend-mode:screen}
.v3-order-mark{position:fixed;z-index:100;display:grid;place-items:center;width:34px;height:34px;background:#f9f2e3;color:#20304e;border:2px dotted #a78042;font:bold 13px monospace;box-shadow:0 5px 16px #20304e33;pointer-events:none}
.dish-photo[open]{animation:none!important;transform-origin:center}
.dish-photo::backdrop{animation:v3-backdrop 400ms ease-out}
@keyframes v3-backdrop{from{background:rgb(20 27 40 / 0)}to{background:rgb(20 27 40 / .76)}}
@media(prefers-reduced-motion:no-preference){
 ::view-transition-old(postal-paper){animation:v3-paper-out 300ms cubic-bezier(.4,0,1,1) both;transform-origin:50% 15%}
 ::view-transition-new(postal-paper){animation:v3-paper-in 580ms cubic-bezier(.16,1,.3,1) both;transform-origin:50% 15%}
 @keyframes v3-paper-out{to{transform:perspective(1400px) translateY(-32px) rotateX(3deg) scale(.97);opacity:0}}
 @keyframes v3-paper-in{from{transform:perspective(1400px) translateY(65px) rotateX(-5deg) scale(.97);opacity:0}to{transform:none;opacity:1}}
}
@media(prefers-reduced-motion:reduce){.v3-gold-reflection,.v3-order-mark{display:none}.arch-fan__stage,.menu-carousel__viewport{transform:none!important;transition:none!important}.dish-photo::backdrop{animation:none}}
@media print{.v3-gold-reflection,.v3-order-mark{display:none!important}}

.language-control{display:flex;align-items:center;gap:4px;margin-left:auto;color:#f9f0d7;font:13px Georgia,serif;flex-shrink:0}
.language-control select{font:inherit;color:inherit;background:#20324d;border:1px solid #b79b61;border-radius:0;min-height:44px;padding:5px;max-width:112px;cursor:pointer}
.language-control select:focus-visible{outline:2px solid #fff;outline-offset:3px}
.translated-heading{display:none;font-family:Georgia,'Noto Serif',serif;color:var(--gold,#95763e);font-size:clamp(28px,4vw,52px);font-weight:400;line-height:1.2;letter-spacing:.015em}
html:not([data-language=en]) [data-language-heading]{display:none!important}
html:not([data-language=en]) .translated-heading{display:block}
html[data-language=ja] .write-word,html[data-language=zh] .write-word{display:inline;white-space:normal}
html[data-language=ja] .postcard-handwriting,html[data-language=zh] .postcard-handwriting{font-family:'Hiragino Mincho ProN','Songti SC','Noto Serif CJK JP',serif!important;font-size:62px}
html:not([data-language=en]) .head__links a{white-space:normal}
html:not([data-language=en]) .chapter-route-labels{font-size:8px;letter-spacing:0}
html:not([data-language=en]) .bo-jump-nav a{white-space:normal}
@media(max-width:900px){.language-control{gap:2px;margin-right:8px}.language-control select{max-width:90px;font-size:12px}.head__brand{gap:8px}.head__word{max-width:calc(100vw - 224px)!important}.head__burger{margin-left:0!important}}
@media(min-width:901px){.language-control{margin-left:20px}}
@media print{.language-control{display:none}}

@media(max-width:760px){html:not([data-language=en]) .menu-jumps{width:calc(100% - 24px)}html:not([data-language=en]) .menu-jumps a{font-size:10px;white-space:normal;overflow-wrap:anywhere;text-align:center;padding:4px 6px;min-width:0}html[data-language=ja] .chapter-copy h1,html[data-language=zh] .chapter-copy h1{font-size:38px}html[data-language=ja] .chapter-copy h2,html[data-language=zh] .chapter-copy h2{font-size:38px}}
html:not([data-language=en]) .postcard__enquire{display:flex;align-items:center;justify-content:center;background:#20364b;box-shadow:inset 0 0 0 2px #9ea89e;z-index:4}
html:not([data-language=en]) .postcard__enquire .vh{position:static!important;width:auto!important;height:auto!important;clip:auto!important;clip-path:none!important;overflow:visible!important;white-space:normal!important;color:#fbf3dd;font:clamp(11px,2vw,20px)/1.15 Georgia,serif;text-align:center;padding:3px}
html:not([data-language=en]) .bread__collab{line-height:1.3}

.pagehead__title .translated-heading{text-align:center;width:100%}
@media(max-width:900px){.head__brand{min-width:0;width:100%}.head__word{flex:1 1 0;max-width:none!important}.language-control{margin-left:auto;margin-right:0}.language-control>span{display:none}.language-control select{width:86px}.head__home{width:44px;height:44px}}
@media(max-width:360px){.head__brand{gap:6px}.language-control select{width:78px}.head__word{height:32px}}

/* Korean uses readable Hangul lettering rather than a Latin handwriting font. */
html[data-language=ko] .postcard-handwriting{font-family:'Apple SD Gothic Neo','Malgun Gothic',sans-serif!important;font-size:60px}
html[data-language=ko] .write-word{display:inline;white-space:normal}
@media(max-width:760px){html[data-language=ko] .chapter-copy h1,html[data-language=ko] .chapter-copy h2{font-size:38px}html:not([data-language=en]) .chapter-menu-tabs button{min-width:0;white-space:normal;overflow-wrap:anywhere}html:not([data-language=en]) .chapter-menu-open{white-space:normal;font-size:12px}}
