/* Responsive layout and motion refinement. Loaded after the original styles. */
.hero,.spirit-grid,.visit{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.hero-copy,.spirit-grid>*,.visit>*,.moments-heading>*,.slogan-copy,.story-link>span:first-child{min-width:0}
h1,h2,h3,.map-title{overflow-wrap:anywhere}
h1,h2{line-height:1.1}
.button{max-width:100%;line-height:1.6;text-align:left}
.button>span:first-child{min-width:0}
.button>span:last-child,.story-arrow{flex-shrink:0}
.story-link strong,.story-link small{overflow-wrap:anywhere}
.story-row .slogan-copy h3{line-height:1.06}
.contact .text-link{max-width:100%;overflow-wrap:anywhere}
.scroll-reveal,.story-row.scroll-reveal{transition:opacity 1s ease,transform 1.2s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)!important}
.motion-ready .scroll-reveal:not(.is-visible),
.motion-ready .scroll-reveal.reveal-from-above:not(.is-visible){opacity:0;transform:translate3d(0,56px,0) scale(.975)}
.motion-ready .scroll-reveal.is-visible{opacity:1;transform:none}
.motion-ready .story-row .slogan-photo img{transform:scale(1.09);transition:transform 1.8s cubic-bezier(.16,1,.3,1)}
.motion-ready .story-row.is-visible .slogan-photo img{transform:scale(1)}
.motion-ready .story-row .slogan-copy>*{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.motion-ready .story-row.is-visible .slogan-copy>*{opacity:1;transform:none;transition-delay:.16s}
.motion-ready .story-row.is-visible .story-description{transition-delay:.24s}
.motion-ready .story-row.is-visible .story-links{transition-delay:.32s}
.story-link,.button,.map-card{transition:background .3s,color .3s,border-color .3s,box-shadow .3s,transform .3s}
@media(hover:hover){.button:hover{transform:translateY(-3px);box-shadow:0 8px 20px #193e3022}.story-link:hover .story-arrow{transform:rotate(45deg)}.map-card:hover{transform:translateY(-4px)}}
.story-arrow{transition:transform .3s}
@media(max-width:900px){
  header{flex-wrap:wrap;gap:16px}
  header nav{order:3;flex:1 0 100%;justify-content:center;flex-wrap:wrap;gap:12px 28px;border-top:1px solid var(--line);padding-top:14px;line-height:1.6}
  header .language-picker{margin-left:auto}
  header .nav-contact{display:none}
  .hero{grid-template-columns:minmax(0,1fr);gap:28px;padding:36px 6% 32px}
  .hero-copy{padding:0}
  .hero h1,html[lang=ru] .hero h1{font-size:clamp(42px,7.8vw,68px);line-height:1.08}
  .hero-art{width:min(100%,520px);margin:0 auto;padding-bottom:0}
  .hero-art img{max-height:540px}
  .hero-note{display:none}
  .spirit-grid,.visit{grid-template-columns:minmax(0,1fr);gap:28px}
  .spirit-grid p,.visit-copy>p:not(.eyebrow){max-width:580px}
  .visit{padding:52px 6%;gap:32px}
  .map-card{min-height:280px;padding:30px 24px}
  .moments-heading{flex-direction:column;align-items:flex-start;gap:22px}
  .moments-heading>p{max-width:none;margin:0}
  .menu-invitation{flex-direction:column;align-items:flex-start}
}
@media(max-width:700px){
  .story-rows{gap:36px}
  .slogan-card.story-row{grid-template-columns:minmax(0,1fr)}
  .story-row .slogan-photo{min-height:0}
  .story-row .slogan-photo img{aspect-ratio:1.25}
  .story-row .slogan-copy{padding:28px clamp(20px,6vw,32px) 30px}
  .story-row .slogan-copy h3{font-size:clamp(58px,14vw,78px);margin-bottom:18px}
  .story-link{min-height:68px;gap:12px;padding:13px 14px}
  .story-link strong{font-size:21px;line-height:1.3}
  .story-link small{font-size:11px;line-height:1.5}
  .slogan-copy .story-description{font-size:14px;line-height:1.8}
  .motion-ready .scroll-reveal:not(.is-visible){transform:translate3d(0,28px,0) scale(.985)}
}
@media(max-width:580px){
  header{padding:20px 6% 16px;gap:16px 8px}
  header .brand{font-size:clamp(22px,6.7vw,28px)}
  .language-select{width:105px;max-width:100%;padding:9px 18px 9px 10px;font-size:11px}
  header nav{font-size:12px;gap:10px 22px;padding-top:14px}
  header nav a{padding:5px 0}
  .hero h1,html[lang=ru] .hero h1{font-size:clamp(40px,10.9vw,62px)}
  .hero h1>span:first-child{white-space:normal}
  .hero .eyebrow{font-size:9px;line-height:1.8;margin-bottom:22px;letter-spacing:.13em}
  .intro{font-size:14px;line-height:1.85;margin:22px 0 26px}
  .intro br{display:none}
  .intro span~span::before{content:' '}
  .actions{align-items:stretch;flex-direction:column;gap:10px}
  .actions .button{width:100%}
  .actions .text-link{padding:10px 0}
  .hero-art{width:90%;margin-top:4px}
  .art-caption{font-size:22px;padding-top:16px}
  .section{padding:52px 6%}
  h2,.contact h2,.feature-copy h2{font-size:clamp(32px,8.6vw,46px);line-height:1.15}
  .spirit-grid{gap:24px}
  .spirit-grid p{font-size:14px;line-height:1.85}
  .moments-heading{margin-bottom:30px}
  .menu-invitation{margin-top:40px;gap:20px;padding-top:28px}
  .menu-invitation h3{font-size:clamp(29px,8vw,36px);line-height:1.2}
  .menu-invitation .button,.visit .button{width:100%;gap:16px;padding:15px 17px;font-size:12px}
  .map-title{font-size:clamp(28px,8vw,36px);line-height:1.2}
  .map-card{min-height:260px;gap:20px}
  .contact h2 br{display:none}
  .contact h2 em::before{content:' '}
  .contact .text-link{font-size:12px;line-height:1.9}
  footer{gap:22px;line-height:1.8}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .motion-ready .scroll-reveal,.motion-ready .scroll-reveal:not(.is-visible),
  .motion-ready .story-row .slogan-copy>*,.motion-ready .story-row .slogan-photo img{opacity:1!important;transform:none!important}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* Comfortable reading sizes across desktop and mobile. */
nav{font-size:14px}
.text-link{font-size:14px}
.slogan-copy .story-description{font-size:15px;line-height:1.85}
.story-link small{font-size:12px;line-height:1.5}
.moments-heading>p,.menu-invitation p:not(.eyebrow),.visit-copy>p:not(.eyebrow){font-size:15px;line-height:1.85}
.contact>p:not(.eyebrow),.contact .contact-note{font-size:14px;line-height:1.85}
.menu-footnote,footer{font-size:12px}
@media(min-width:901px){.intro{font-size:16px}.spirit-grid p{font-size:16px}.button{font-size:14px}.story-row .slogan-copy{padding-block:45px}}
@media(max-width:580px){.slogan-copy .story-description{font-size:14px}.contact .text-link{font-size:14px}.eyebrow{line-height:1.8}}

/* A full-screen typographic welcome, followed by the restaurant's opening. */
.brand-intro{height:100svh;min-height:520px;overflow:clip;background:var(--green);color:var(--cream);position:relative}
.brand-intro::after{content:'';position:absolute;inset:22px;border:1px solid #f4efdf30;pointer-events:none;border-radius:2px}
.intro-stage{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 5%;position:relative}
.intro-identity{width:100%;position:relative;z-index:1;will-change:transform,opacity}
.intro-wordmark{font:400 clamp(42px,12.4vw,188px)/1 Georgia,'Times New Roman',serif;letter-spacing:.015em;margin:0;width:100%;white-space:nowrap}
.intro-subtitle{font-size:clamp(10px,1.15vw,16px);letter-spacing:.32em;margin:26px 0 0;line-height:1.8}
.intro-slogan{font:italic clamp(26px,3.4vw,48px)/1.35 Georgia,serif;margin:54px 0 0;display:flex;justify-content:center;gap:.3em;flex-wrap:wrap}
.intro-sun{position:absolute;top:10%;font-size:44px;line-height:1;color:var(--sage);transform:rotate(var(--sun-turn,0deg));will-change:transform}
.intro-scroll{position:absolute;bottom:46px;display:flex;flex-direction:column;align-items:center;gap:18px;padding:12px 18px 0;font-size:11px;letter-spacing:.13em;line-height:1.6}
.scroll-line{width:1px;height:40px;background:linear-gradient(transparent,var(--cream));transform-origin:top;animation:coast-scroll 2s ease-in-out infinite}
.intro-coast{position:absolute;bottom:48px;right:5%;font-size:9px;letter-spacing:.15em;opacity:.6}
@keyframes coast-scroll{0%,100%{transform:scaleY(.55);opacity:.4}50%{transform:scaleY(1);opacity:1}}
.motion-ready .intro-identity{opacity:var(--intro-opacity,1);transform:translate3d(0,var(--intro-lift,0px),0) scale(var(--intro-scale,1))}
.site-header{position:relative;z-index:2;background:var(--cream)}
.motion-ready .site-header.scroll-reveal:not(.is-visible){transform:translateY(24px)}
.hero{overflow:clip}
.motion-ready .hero-art.scroll-reveal:not(.is-visible){transform:translate3d(48px,55px,0) scale(.94)}
.hero-art img{translate:0 var(--hero-drift,0px)}
.hero-copy>.scroll-reveal{transition-delay:var(--reveal-delay,0ms)!important}
.button-outline{background:transparent;color:var(--green);border:1px solid var(--green);justify-content:center;padding:15px 22px}
.button-outline:hover{background:var(--green);color:var(--cream)}
.text-link>span,.nav-contact>span{margin-left:0}
.button,.story-link{justify-content:center}
.story-link{justify-content:flex-start}
.map-card{padding:0;gap:0;align-items:stretch;justify-content:flex-start;text-align:left;min-height:440px;overflow:hidden;background:var(--cream);color:var(--green);transition:border-color .3s}
.map-card:hover{transform:none;background:var(--cream)}
.map-preview{position:relative;display:block;background:#dce3d5}
.map-preview img{width:100%;height:360px;object-fit:cover;object-position:center;display:block}
.map-preview:focus-visible{outline:3px solid var(--cream);outline-offset:-6px}
.map-badge{position:absolute;left:50%;top:calc(50% - 70px);transform:translateX(-50%);padding:8px 14px;background:var(--cream);color:var(--green);border:1px solid var(--green);font:18px Georgia,serif;letter-spacing:.05em;box-shadow:0 3px 9px #193e3022;pointer-events:none}
.map-attribution{margin:0;padding:0 18px 14px;background:var(--cream);font-size:11px;line-height:1.5}
.map-attribution a{text-decoration:underline;text-underline-offset:3px}
.map-caption{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;background:var(--cream)}
.map-caption strong,.map-caption span{display:block;font-size:12px;line-height:1.7}
.map-caption strong{font-weight:600}
.map-caption span{font-size:11px}
.map-caption a{font-size:12px;border-bottom:1px solid var(--green);padding:6px 0;line-height:1.5}
.review-link{display:flex;align-items:center;justify-content:center;gap:18px;border:1px solid var(--green);padding:22px 26px;max-width:480px;margin:34px auto 0;text-align:left;transition:background .3s,color .3s}
.review-link:hover{background:var(--green);color:var(--cream)}
.review-link strong{display:block;font:400 25px/1.25 Georgia,serif}
.review-link small{display:block;margin-top:7px;font-size:12px;line-height:1.6}
.review-stars{font-size:30px;flex-shrink:0}
@media(max-width:900px){
  .intro-coast{display:none}
  .intro-subtitle{letter-spacing:.24em}
  .intro-slogan{margin-top:38px}
  .hero-art img{translate:none}
  .map-card{min-height:390px}
  .map-preview img{height:300px}
}
@media(max-width:580px){
  .brand-intro{min-height:480px}
  .brand-intro::after{inset:14px}
  .intro-stage{padding:70px 7%}
  .intro-wordmark{font-size:12.2vw;letter-spacing:.005em}
  .intro-subtitle{font-size:9px;letter-spacing:.2em;margin-top:20px}
  .intro-slogan{font-size:27px;gap:.22em;margin-top:34px}
  .intro-sun{top:15%;font-size:36px}
  .intro-scroll{bottom:38px;font-size:10px;letter-spacing:.08em;gap:14px;max-width:85%}
  .actions .button-outline{padding:15px 22px}
  .motion-ready .hero-art.scroll-reveal:not(.is-visible){transform:translate3d(0,30px,0) scale(.97)}
  .map-caption{padding:18px}
  .map-caption a{font-size:12px}
  .review-link{padding:20px 18px;gap:14px;width:100%}
  .review-link strong{font-size:23px}
  .review-link small{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
  .intro-identity{opacity:1!important;transform:none!important;will-change:auto}
  .intro-sun{transform:none;will-change:auto}
  .hero-art img{translate:none!important}
  .scroll-line{animation:none}
}
.button>span:only-child{flex-shrink:1}
.motion-ready .site-header.scroll-reveal{transform:none!important}
@media(max-width:580px){.intro-subtitle{font-size:11px;letter-spacing:.14em}}


/* Draw ornaments as vectors, never as platform-dependent emoji glyphs. */
.brand-spark{display:block;width:1em;height:1em;flex-shrink:0}
.intro-sun,.review-stars{display:block;line-height:1}
.ribbon{align-items:center}
.ribbon>.ribbon-label{display:block;min-width:0;font-size:11px;line-height:1.6;text-align:center}
.ribbon>.ribbon-separator{display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px;line-height:1}
@media(max-width:580px){
  .ribbon{flex-direction:column;flex-wrap:nowrap;gap:9px;padding:22px 7%;letter-spacing:.12em}
  .ribbon>.ribbon-label{display:block;width:100%;font-size:11px;line-height:1.7;overflow-wrap:anywhere}
  .ribbon>.ribbon-separator{font-size:12px}
}


/* Re-enter from the direction of travel; keep exit motion outside the screen. */
.motion-ready .replay-reveal.reveal-from-above:not(.is-visible){transform:translate3d(0,-40px,0) scale(.975)}
@media(max-width:700px){.motion-ready .replay-reveal.reveal-from-above:not(.is-visible){transform:translate3d(0,-24px,0) scale(.985)}}
@media(prefers-reduced-motion:reduce){.motion-ready .replay-reveal.reveal-from-above:not(.is-visible){opacity:1;transform:none}}


/* Center the complete mobile footer, including address, links and copyright. */
@media(max-width:580px){
 footer{align-items:center;text-align:center}
 footer>div,footer>p{width:100%;text-align:center}
 footer>div:not(.footer-brand) a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:4px 10px}
}

/* Keep the complete welcome visible on short landscape phone screens. */
@media(max-height:500px) and (orientation:landscape){
 .brand-intro{height:100svh;min-height:100svh}
 .intro-stage{padding:34px 5% 60px}
 .intro-wordmark{font-size:clamp(40px,10vw,104px)}
 .intro-subtitle{margin-top:14px;font-size:10px;letter-spacing:.18em}
 .intro-slogan{margin-top:18px;font-size:26px}
 .intro-sun,.intro-coast,.intro-scroll .scroll-line{display:none}
 .intro-scroll{bottom:14px;gap:0;font-size:10px}
}

/* Venue bookings are subject to approval and a quotation. */
.contact>p.venue-note{max-width:620px;margin:24px auto 0}
