/*
Theme Name: Соловьи — кафе
Description: Тема кафе «Соловьи» с редактируемым меню.
Version: 1.0.0
Requires PHP: 8.0
Text Domain: solovyi-cafe
*/
@font-face{font-family:Exo2;src:url('./fonts/Exo2-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Exo2;src:url('./fonts/Exo2-Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Exo2;src:url('./fonts/Exo2-SemiBold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Exo2;src:url('./fonts/Exo2-Thin.ttf') format('truetype');font-weight:100;font-display:swap}
@font-face{font-family:Exo2;src:url('./fonts/Exo2-ExtraLight.ttf') format('truetype');font-weight:200;font-display:swap}
@font-face{font-family:Exo2;src:url('./fonts/Exo2-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Exo2;src:url('./fonts/Exo2-ExtraBold.ttf') format('truetype');font-weight:800;font-display:swap}
@font-face{font-family:Exo2;src:url('./fonts/Exo2-Black.ttf') format('truetype');font-weight:900;font-display:swap}

:root{--paper:#f3efe7;--paper-deep:#e8e4da;--cream:#fffdf8;--ink:#4b463f;--olive:#49654f;--olive-dark:#2e493b;--burgundy:#7b4941;--coffee:#6a5948;--gold:#7b4941;--line:rgba(75,70,63,.18);--header:82px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:200 16px/1.65 Exo2,Arial,sans-serif}
a{color:inherit;text-decoration:none}
img{display:block}
button{font:inherit}
h1,h2,h3,p{margin-top:0}
h1,h2{font-weight:300;letter-spacing:-.035em;line-height:.94;color:var(--olive-dark)}
h1 em,h2 em{font-style:normal;font-weight:200;letter-spacing:-.02em;color:var(--coffee)}
h3{font-weight:400}
strong,b{font-weight:500}
.kicker{text-transform:uppercase;letter-spacing:.22em;font-size:.68rem;font-weight:500}
.kicker.light{color:rgba(255,255,255,.76)}
.site-header{height:var(--header);padding:0 clamp(22px,5vw,78px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:32px;background:rgba(243,238,228,.94);border-bottom:1px solid var(--line);position:relative;z-index:30;backdrop-filter:blur(14px)}
.site-header.overlay{position:absolute;inset:0 0 auto;color:white;background:linear-gradient(rgba(18,24,17,.54),transparent);border:0;backdrop-filter:none}
.wordmark{display:block;width:156px;line-height:0}
.wordmark img{width:100%;height:auto}
.site-header.overlay .wordmark img{filter:brightness(0) invert(1)}
.main-nav{display:flex;align-items:center;gap:clamp(18px,2.4vw,38px);font-size:.76rem;font-weight:500}
.main-nav a{position:relative;padding:30px 0 27px}
.main-nav a::after{content:"";height:1px;position:absolute;left:0;right:100%;bottom:23px;background:currentColor;transition:.25s}
.main-nav a:hover::after,.main-nav a.active::after{right:0}
.header-phone{justify-self:end;font-size:.73rem;font-weight:600;letter-spacing:.05em}
.nav-toggle{display:none;border:0;background:transparent;width:44px;height:44px;padding:8px;position:relative;color:inherit}
.nav-toggle span{position:absolute;left:8px;right:8px;height:1px;background:currentColor;top:17px}.nav-toggle span+span{top:26px}
.hero{min-height:100svh;position:relative;color:white;overflow:hidden}
.hero>img{object-fit:cover;animation:heroBreath 18s ease-in-out infinite alternate}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,24,17,.78),rgba(18,24,17,.13) 70%),linear-gradient(0deg,rgba(18,24,17,.46),transparent 48%)}
.hero-copy{position:relative;z-index:2;padding:clamp(155px,21vh,225px) clamp(22px,8vw,120px) 150px;max-width:920px}
.hero h1{font-size:clamp(4rem,8.4vw,8.5rem);margin:26px 0 34px}
.hero h1,.about-detail h2,.visit-card h2{color:white}
.hero h1 em{color:rgba(255,255,255,.82)}
.hero-copy>p:not(.kicker){max-width:600px;font-size:1.08rem;text-shadow:0 1px 16px rgba(0,0,0,.65)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.button{min-height:50px;padding:0 25px;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:500;transition:transform .25s,background .25s}
.button:hover{transform:translateY(-2px)}
.button.light{background:var(--cream);color:var(--ink)}
.button.dark{background:var(--olive-dark);color:white}
.button.glass,.button.outline{border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.08);color:white;backdrop-filter:blur(8px)}
.button.line{border:1px solid var(--line)}
.hero-foot{position:absolute;z-index:2;left:clamp(22px,8vw,120px);right:clamp(22px,8vw,120px);bottom:30px;display:flex;justify-content:space-between;text-transform:uppercase;letter-spacing:.13em;font-size:.65rem}
.section-pad{padding:clamp(90px,11vw,155px) clamp(22px,8vw,120px)}
.section-grid{padding:clamp(90px,11vw,155px) clamp(22px,8vw,120px);display:grid;grid-template-columns:.42fr 1.2fr .8fr;gap:clamp(30px,5vw,75px)}
.home-intro h2,.section-heading h2{font-size:clamp(3.4rem,6.6vw,7rem);margin:0 0 42px}
.lead{font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1.55}
.text-link{display:inline-block;margin-top:25px;border-bottom:1px solid;font-size:.8rem;font-weight:600;padding-bottom:5px}
.intro-image{position:relative;min-height:540px;margin-top:45px;overflow:hidden}.intro-image img{object-fit:cover;transition:transform .7s}.intro-image.park-image img{object-position:center}.intro-image:hover img{transform:scale(1.025)}
.feature-strip{display:grid;grid-template-columns:repeat(3,1fr);background:var(--olive-dark);color:white;padding:42px clamp(22px,8vw,120px);gap:30px}
.feature-strip article{display:flex;gap:20px;align-items:baseline;border-left:1px solid rgba(255,255,255,.2);padding-left:28px}.feature-strip strong{font-size:2.4rem;font-weight:400}.feature-strip span{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.65)}
.home-menu{background:var(--paper-deep)}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:62px}.section-heading>p{max-width:390px;color:#65695e}.section-heading h2{margin:20px 0 0}
.menu-preview{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:42px;border-top:1px solid var(--line)}
.menu-preview article{padding:35px 36px 42px 0;border-right:1px solid var(--line)}.menu-preview article+article{padding-left:36px}.menu-preview article:last-child{border-right:0}.menu-preview span{font-size:.65rem;color:var(--gold)}.menu-preview h3{font-size:1.65rem;font-weight:400;margin:55px 0 15px}.menu-preview p{color:#666a60;max-width:260px}
.split-gallery{display:grid;grid-template-columns:1.65fr .85fr;height:min(900px,80vw);min-height:620px;background:var(--olive-dark)}
.gallery-side{display:grid;grid-template-rows:1.25fr .75fr}.gallery-panel{position:relative;overflow:hidden;display:block}.gallery-panel img{object-fit:cover;transition:transform .8s}.gallery-panel:hover img{transform:scale(1.035)}.gallery-all{position:relative;z-index:3;cursor:pointer;background:var(--gold);color:white;padding:clamp(30px,5vw,70px);font-size:clamp(1.8rem,3vw,3.5rem);line-height:1.03;display:flex;align-items:end;justify-content:space-between}.gallery-all:hover{background:#684037}.gallery-all b{font-weight:400}
.home-reviews{background:#f8f4ec}.reviews-heading{display:block;text-align:left}.reviews-heading>p{margin:24px 0 0}.review-stage{max-width:1040px;margin:0 auto}.review-scene{position:relative;min-height:540px;padding:120px 54px 52px 315px;display:flex;align-items:flex-end;background:var(--olive-dark);overflow:hidden}.review-bird{position:absolute;left:0;bottom:72px;width:360px;height:320px;overflow:visible}.review-bird img{object-fit:contain}.review-envelope{position:relative;width:100%;min-height:340px;padding:0 34px 34px;background:#dfceb3;box-shadow:0 24px 70px rgba(20,30,23,.26)}.review-envelope::before,.review-envelope::after{content:"";position:absolute;bottom:0;width:52%;height:72%;background:#d7c19e;z-index:1}.review-envelope::before{left:0;clip-path:polygon(0 0,100% 100%,0 100%)}.review-envelope::after{right:0;clip-path:polygon(100% 0,100% 100%,0 100%)}.review-flap{position:absolute;inset:0;overflow:hidden}.review-flap::before{content:"";position:absolute;left:0;right:0;bottom:0;height:76%;background:#eadcc6;clip-path:polygon(0 100%,50% 25%,100% 100%)}.review-sheet{position:relative;z-index:2;min-height:350px;margin-top:-70px;padding:clamp(38px,5vw,62px);background:var(--cream);box-shadow:0 12px 32px rgba(42,35,26,.18);animation:reviewPageTurn .52s cubic-bezier(.2,.72,.25,1)}.review-meta{display:flex;justify-content:space-between;font-size:.7rem;position:relative}.stars{color:var(--gold);letter-spacing:.15em}.review-envelope blockquote{font-size:clamp(1.35rem,2.45vw,2.2rem);line-height:1.34;margin:32px 0}.review-envelope p{display:flex;flex-direction:column;font-size:.82rem;margin-bottom:0}.review-envelope p span{color:#686a63;font-size:.7rem}.review-controls{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:20px;margin-top:22px;text-align:center}.review-controls button{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:transparent;cursor:pointer}.review-controls a{font-size:.72rem;text-decoration:underline;text-underline-offset:5px}
.home-visit{min-height:760px;position:relative}.home-visit>img{object-fit:cover}.visit-card{position:relative;z-index:2;margin-left:auto;min-height:760px;width:min(620px,100%);background:rgba(49,58,45,.93);color:white;padding:clamp(80px,9vw,125px) clamp(34px,7vw,90px)}.visit-card h2{font-size:clamp(3.6rem,5.8vw,6.5rem);margin:30px 0 50px}.visit-card>p:not(.kicker){font-size:1.05rem;line-height:1.8}
.site-footer{background:var(--olive-dark);color:#f3eee4;padding:70px clamp(22px,8vw,120px) 35px;display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:60px;font-size:.75rem}.footer-brand{display:block;width:min(210px,65vw);line-height:0}.footer-brand img{width:100%;height:auto;filter:brightness(0) invert(1)}.site-footer>div:first-child p{color:rgba(255,255,255,.64);max-width:340px;margin-top:24px;line-height:1.75}.footer-links{display:flex;flex-direction:column;gap:10px}.footer-links strong{font-weight:500;margin-bottom:10px}.footer-links span,.footer-links a{color:rgba(255,255,255,.7)}.footer-bottom{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:26px;color:rgba(255,255,255,.48)}
.inner-page{min-height:80vh}.page-intro{padding:clamp(80px,9vw,135px) clamp(22px,8vw,120px) clamp(65px,8vw,110px)}.page-intro h1{font-size:clamp(4rem,8vw,8.2rem);margin:28px 0}.page-intro>p:last-child{max-width:590px;font-size:1.05rem;color:#50534c}
.menu-anchor-nav{position:sticky;top:0;z-index:20;display:flex;gap:8px;overflow:auto;scrollbar-width:none;padding:17px clamp(22px,8vw,120px);background:rgba(232,223,209,.96);backdrop-filter:blur(12px);border-block:1px solid var(--line)}.menu-anchor-nav a{white-space:nowrap;border:1px solid var(--line);border-radius:40px;padding:10px 16px;font-size:.82rem}.menu-anchor-nav a:hover{background:var(--olive-dark);color:white}
.full-menu{padding:0 clamp(22px,8vw,120px)}.menu-section{scroll-margin-top:85px;display:grid;grid-template-columns:.75fr 1.7fr;gap:55px;padding:70px 0;border-top:1px solid var(--line)}.menu-section-title{display:grid;grid-template-columns:35px 1fr;gap:12px}.menu-section-title span{color:var(--gold);font-size:.8rem}.menu-section-title h2{font-size:clamp(2.3rem,4vw,4.4rem);margin:0}.menu-items{display:grid;grid-template-columns:1fr 1fr;column-gap:42px}.menu-items article{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:19px 0}.menu-items h3{font-size:1.14rem;font-weight:500;margin-bottom:6px;line-height:1.35}.menu-items p{font-size:.86rem;color:#666a60;line-height:1.5;margin:0}.menu-items strong{font-size:.9rem;white-space:nowrap}.menu-note{padding:0 clamp(22px,8vw,120px) 90px;color:#70736a;font-size:.8rem}
.about-story{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(45px,8vw,120px);padding:0 clamp(22px,8vw,120px) clamp(90px,11vw,150px);align-items:center}.about-story-image{position:relative;min-height:680px}.about-story-image img{object-fit:cover}.about-story-copy{padding:clamp(28px,4vw,48px);border:1px solid rgba(75,70,63,.28);background:rgba(255,253,248,.62)}.about-story p{color:#4d5049;font-size:1rem;line-height:1.75}.about-story .lead{color:var(--ink);font-size:clamp(1.16rem,1.55vw,1.38rem);line-height:1.55}.about-story-copy p:last-child{margin-bottom:0}
.about-values{display:grid;grid-template-columns:repeat(3,1fr);background:var(--paper-deep);padding:80px clamp(22px,8vw,120px);gap:26px}.about-values article{border:1px solid rgba(46,73,59,.36);background:var(--cream);padding:34px;box-shadow:0 14px 34px rgba(55,48,37,.07)}.about-values span{font-size:.76rem;color:var(--gold);font-weight:500}.about-values h2{font-size:2.4rem;margin:38px 0 18px}.about-values p{color:var(--ink);font-size:1.03rem;font-weight:400;line-height:1.7;margin-bottom:0}
.about-detail{position:relative;min-height:760px;color:white;display:flex;align-items:center;overflow:hidden}.about-detail>img{object-fit:cover;object-position:center 50%;filter:brightness(.48)}.about-detail>div{position:relative;z-index:2;margin-left:clamp(20px,6vw,90px);padding:clamp(34px,5vw,62px);max-width:720px;border:1px solid rgba(255,255,255,.58);background:rgba(35,48,38,.54);backdrop-filter:blur(8px)}.about-detail h2{font-size:clamp(4rem,6.5vw,7rem);margin:25px 0 38px}.about-detail>div>p:not(.kicker){max-width:510px;font-size:1rem;line-height:1.7;text-shadow:0 1px 12px rgba(0,0,0,.45)}
.photo-grid{max-width:1200px;margin:0 auto;padding:0 20px 100px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.photo-tile{position:relative;aspect-ratio:2/3;overflow:hidden;border:0;padding:0;background:#dfd8ca;cursor:zoom-in}.photo-tile img{object-fit:cover;transition:transform .65s ease}.photo-tile:hover img{transform:scale(1.018)}.photo-tile:focus-visible{outline:2px solid var(--olive);outline-offset:4px}.photo-lightbox{width:min(94vw,1040px)!important;max-width:none!important;height:min(92vh,940px);padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}.photo-lightbox-image{position:relative;width:100%;height:100%}.photo-lightbox-image img{object-fit:contain}.photo-lightbox [data-slot="dialog-close"]{top:8px;right:8px;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:rgba(46,73,59,.92);color:white;opacity:1}
.reviews-page{padding-bottom:100px}.reviews-intro{text-align:left}.reviews-intro>p:last-child{margin-inline:0}.reviews-page>.review-stage{padding:0 22px 90px}.review-grid{padding:0 clamp(22px,8vw,120px) 65px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.review-grid article{background:var(--cream);padding:34px;display:flex;flex-direction:column;min-height:315px}.review-grid blockquote{font-size:.9rem;line-height:1.65;margin:25px 0 35px}.review-grid article>p{margin:auto 0 0;display:flex;flex-direction:column;font-size:.75rem}.review-grid article>p span{color:#77796f;font-size:.65rem}.centered{margin:0 auto;width:max-content}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;min-height:690px}.contact-photo{position:relative}.contact-photo img{object-fit:cover;object-position:center 42%}.contact-info{background:var(--paper-deep);padding:clamp(55px,8vw,110px);display:flex;flex-direction:column;justify-content:center}.contact-info>div:not(.actions){display:grid;gap:7px;padding:25px 0;border-top:1px solid var(--line)}.contact-info span{font-size:.68rem;text-transform:uppercase;letter-spacing:.15em;color:#62655e}.contact-info strong,.contact-info a{font-size:1.12rem;font-weight:500}.contact-info small{color:#555851;font-size:.9rem}.contact-veranda{height:620px;position:relative;display:flex;align-items:center;justify-content:center;color:white;text-align:center}.contact-veranda img{object-fit:cover;filter:brightness(.5)}.contact-veranda p{position:relative;z-index:2;font-size:clamp(2rem,4vw,4.5rem);line-height:1.1;padding:24px 30px;border:1px solid rgba(255,255,255,.62);background:rgba(35,48,38,.48);backdrop-filter:blur(7px)}.contact-veranda strong{font-weight:400;font-style:italic}
@keyframes heroBreath{to{transform:scale(1.035)}}
@keyframes reviewPageTurn{from{opacity:.3;transform:perspective(1000px) rotateY(-13deg) translateX(-18px)}to{opacity:1;transform:perspective(1000px) rotateY(0) translateX(0)}}
@media(max-width:1000px){.site-header{grid-template-columns:1fr auto}.main-nav{display:none}.main-nav.open{display:flex;position:absolute;top:var(--header);left:0;right:0;background:var(--paper);color:var(--ink);padding:25px;flex-direction:column;align-items:flex-start;gap:0;border-bottom:1px solid var(--line)}.main-nav.open a{padding:12px 0;font-size:.9rem}.header-phone{display:none}.nav-toggle{display:block;justify-self:end}.site-header.overlay .main-nav.open{background:var(--olive-dark);color:white}.section-grid{grid-template-columns:.35fr 1.2fr}.intro-image{grid-column:2}.review-grid{grid-template-columns:repeat(2,1fr)}.menu-section{grid-template-columns:1fr}.menu-items{grid-template-columns:1fr 1fr}.about-story{grid-template-columns:1fr}.about-story-image{min-height:560px}.contact-layout{grid-template-columns:1fr}.contact-photo{min-height:620px}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}
@media(max-width:700px){:root{--header:70px}body{font-size:15px}.site-header{padding:0 18px}.wordmark span{font-size:1.12rem}.hero-copy{padding:145px 20px 135px}.hero h1{font-size:3.8rem}.hero-foot{left:20px;right:20px;display:block}.hero-foot span{display:block;margin-top:6px}.section-pad,.section-grid{padding:82px 20px}.section-grid{display:block}.intro-image{min-height:430px;margin-top:55px}.feature-strip{grid-template-columns:1fr;padding:34px 20px}.feature-strip article{border-left:0;border-top:1px solid rgba(255,255,255,.2);padding:18px 0}.section-heading{display:block}.section-heading>p{margin-top:25px}.menu-preview{grid-template-columns:1fr}.menu-preview article,.menu-preview article+article{padding:28px 0;border-right:0;border-bottom:1px solid var(--line)}.menu-preview h3{margin-top:25px}.split-gallery{display:block;height:auto;min-height:0}.gallery-panel.large{height:520px}.gallery-side{display:grid;grid-template-rows:360px 260px}.site-footer{grid-template-columns:1fr;padding:58px 20px 30px}.footer-bottom{grid-column:auto}.page-intro{padding:75px 20px 60px}.page-intro h1{font-size:3.8rem}.menu-anchor-nav{padding:13px 20px}.full-menu{padding:0 20px}.menu-section{padding:55px 0;gap:28px}.menu-items{grid-template-columns:1fr}.menu-section-title h2{font-size:2.8rem}.menu-note{padding:0 20px 70px}.about-story{padding:0 20px 80px}.about-story-image{min-height:450px}.about-values{grid-template-columns:1fr;padding:70px 20px}.about-values h2{margin-top:30px}.about-detail{min-height:670px}.about-detail>div{padding:80px 20px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 8px 70px}.review-scene{min-height:700px;padding:270px 16px 38px}.review-bird{left:50%;top:8px;bottom:auto;width:340px;height:285px;transform:translateX(-50%)}.review-envelope{padding:0 14px 20px;min-height:360px}.review-sheet{min-height:370px;margin-top:-42px;padding:36px 24px}.review-envelope blockquote{font-size:1.28rem}.review-controls{grid-template-columns:46px 1fr 46px;gap:10px}.review-grid{grid-template-columns:1fr;padding:0 20px 55px}.contact-photo{min-height:500px}.contact-info{padding:60px 24px}.contact-info .actions{flex-direction:column;align-items:stretch}.contact-veranda{height:520px}.home-visit{min-height:680px}.visit-card{min-height:680px;padding:90px 24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero>img,.review-sheet{animation:none}*{transition:none!important}}

/* One continuous menu instead of separate designer pages. */
.menu-page{background:var(--paper)}
.about-story-copy p{font-size:1.06rem;font-weight:350;line-height:1.65;color:#3e463e;margin:0 0 1.15rem}
.about-story-copy .lead{font-size:clamp(1.24rem,1.7vw,1.5rem);font-weight:350;color:var(--olive-dark)}
.menu-page .menu-intro{padding:72px clamp(24px,8vw,120px) 56px;max-width:1400px;margin:auto}
.menu-page .menu-intro h1{font-size:clamp(4.2rem,8vw,7.2rem);margin:16px 0 20px;font-weight:200}
.menu-page .menu-intro>p:last-child{max-width:720px;font-size:1.12rem;line-height:1.55;color:var(--coffee)}
.menu-page .menu-anchor-nav{padding:0 clamp(24px,8vw,120px);background:rgba(243,239,231,.97);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.menu-page .menu-anchor-inner{display:flex;gap:29px;max-width:1160px;margin:auto;min-width:max-content}
.menu-page .menu-anchor-nav a{display:block;padding:16px 0 14px;border:0;border-bottom:2px solid transparent;border-radius:0;font-size:.92rem;font-weight:400;color:var(--ink)}
.menu-page .menu-anchor-nav a:hover,.menu-page .menu-anchor-nav a:focus-visible{background:none;color:var(--olive-dark);border-bottom-color:var(--olive-dark);outline:none}
.menu-page .menu-surface{max-width:1400px;margin:auto;background:var(--cream)}
.menu-page .full-menu{padding:0 clamp(24px,8vw,120px)}
.menu-page .menu-section{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);gap:clamp(26px,5vw,90px);padding:55px 0 59px;border-top:1px solid rgba(46,73,59,.25);scroll-margin-top:72px}
.menu-page .menu-section:first-child{border-top:0}
.menu-page .menu-section-title{display:block}
.menu-page .menu-section-title h2{font-size:clamp(2rem,3.2vw,3.5rem);font-weight:200;line-height:1.12;letter-spacing:-.025em;margin:0;max-width:280px}
.menu-page .menu-items{display:block;min-width:0}
.menu-page .menu-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:baseline;padding:20px 0;border-bottom:1px solid rgba(75,70,63,.14)}
.menu-page .menu-item:first-child{padding-top:0}
.menu-page .menu-item:last-child{border-bottom:0;padding-bottom:0}
.menu-page .menu-item h3{font-size:1.22rem;font-weight:400;line-height:1.32;margin:0;color:var(--olive-dark)}
.menu-page .menu-item p{font-size:1rem;font-weight:300;line-height:1.48;margin:7px 0 0;color:#5c6057}
.menu-page .menu-item strong{font-size:1.08rem;font-weight:500;color:var(--coffee);white-space:nowrap}
.menu-page .menu-note{padding:14px clamp(24px,8vw,120px) 76px;margin:0;font-size:.9rem;line-height:1.6;color:#666b60}
@media(max-width:850px){.menu-page .menu-section{grid-template-columns:1fr;gap:25px;padding:44px 0}.menu-page .menu-section-title h2{max-width:none}.menu-page .menu-anchor-inner{gap:24px}}
@media(max-width:700px){.menu-page .menu-intro{padding:56px 20px 38px}.menu-page .menu-intro h1{font-size:4.4rem}.menu-page .menu-intro>p:last-child{font-size:1rem}.menu-page .menu-anchor-nav{padding:0 20px}.menu-page .menu-anchor-nav a{font-size:.9rem;padding:14px 0 12px}.menu-page .full-menu{padding:0 20px}.menu-page .menu-section{padding:40px 0 42px;gap:22px}.menu-page .menu-section-title h2{font-size:2.4rem}.menu-page .menu-item{gap:12px;padding:17px 0}.menu-page .menu-item h3{font-size:1.1rem}.menu-page .menu-item p{font-size:.96rem}.menu-page .menu-item strong{font-size:1rem}.menu-page .menu-note{padding:10px 20px 58px}}

/* September refinement: preserve the café brand, improve reading and photography. */
body{font-size:16px;font-weight:400}
h1,h2{line-height:1.08;font-weight:200;letter-spacing:-.025em;text-wrap:balance}
.kicker{font-size:.78rem;letter-spacing:.16em}
.main-nav{font-size:.9rem;font-weight:400;gap:24px}
.header-phone{font-size:.85rem;font-weight:400;letter-spacing:0}
.site-header{gap:24px;background:var(--paper)}
.button{font-size:.94rem;min-height:52px;border-radius:6px}
.text-link{font-size:1rem;font-weight:400}
a:focus-visible,button:focus-visible{outline:2px solid var(--olive);outline-offset:5px}
.hero-refined{min-height:690px;height:calc(100svh - var(--header));max-height:920px;background:var(--paper-deep);color:var(--ink)}
.hero-refined>img{left:48%!important;width:52%!important;object-position:center;animation:none}
.hero-refined .hero-shade{background:linear-gradient(90deg,var(--paper) 0%,var(--paper) 43%,rgba(243,239,231,.92) 48%,transparent 65%)}
.hero-refined .hero-copy{padding:clamp(90px,12vh,150px) 0 120px clamp(24px,6vw,92px);width:56%;max-width:860px}
.hero-refined h1{font-size:clamp(3.5rem,5.5vw,6rem);color:var(--olive-dark);margin:24px 0 30px;line-height:1.08}
.hero-refined h1 em{color:var(--coffee)}
.hero-refined .kicker.light{color:var(--olive)}
.hero-refined .hero-copy>p:not(.kicker){max-width:410px;font-size:1.08rem;text-shadow:none;line-height:1.7;padding-right:20px}
.hero-refined .button.light{background:var(--olive-dark);color:white}
.hero-refined .button.glass{background:transparent;color:var(--olive-dark);border-color:var(--olive);backdrop-filter:none}
.hero-refined .hero-foot{left:clamp(24px,6vw,92px);right:auto;display:block;font-size:.78rem;letter-spacing:.04em;bottom:30px}
.hero-refined .hero-foot span{display:block;margin-top:4px}
.section-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:25px 70px;padding-block:90px}
.home-intro>.kicker{grid-column:1/-1;margin-bottom:0}
.home-intro h2,.section-heading h2{font-size:clamp(2.8rem,5vw,5rem);line-height:1.1;margin-bottom:28px}
.intro-image{min-height:400px;margin-top:0}
.lead{font-size:1.17rem;line-height:1.75;max-width:580px}
.feature-strip span{font-size:.83rem;color:#eceee5;letter-spacing:.06em}
.feature-strip strong{font-weight:200;white-space:nowrap}
.section-pad{padding-block:90px}
.menu-preview h3{margin-top:28px}.menu-preview span{font-size:.85rem}
.split-gallery{height:660px;min-height:0}.gallery-all{background:var(--olive);font-weight:200}.gallery-all:hover{background:var(--olive-dark)}
.review-scene{min-height:440px;padding:100px 60px 44px;background:var(--paper-deep)}
.review-envelope{max-width:780px;margin:auto}.review-sheet{min-height:290px}
.review-envelope blockquote{font-size:clamp(1.25rem,2vw,1.9rem);line-height:1.5}
.review-meta,.review-envelope p,.review-envelope p span,.review-controls a{font-size:.875rem}
.site-footer{font-size:.9rem}.footer-bottom{color:#c4cbbf}
.page-intro{padding-block:70px}.page-intro h1{font-size:clamp(3rem,6.5vw,6rem)}
.about-story-image{min-height:520px}.about-story-copy{border:0;padding:0;background:none}
.about-values article{box-shadow:none;border:0;border-top:1px solid var(--line);background:none;padding:28px 0}
.about-detail{min-height:620px}.about-detail h2{font-size:clamp(3rem,5vw,5rem)}
.photo-grid{display:block;columns:4;column-gap:18px;max-width:1440px;padding-inline:32px}
.photo-tile{display:block;width:100%;aspect-ratio:auto;margin:0 0 18px;break-inside:avoid;background:transparent}
.photo-tile img{position:static!important;width:100%;height:auto;object-fit:contain}
.menu-page .menu-item p{font-weight:400}.menu-page .menu-section-title h2{font-weight:300}
@media(max-width:1100px){.main-nav{gap:18px}.header-phone{display:none}.site-header{grid-template-columns:1fr auto}.feature-strip article{display:block}}
@media(max-width:1000px){.section-grid{grid-template-columns:1fr 1fr;gap:25px 35px}.intro-image{grid-column:auto}.photo-grid{columns:3}.hero-refined .hero-copy{width:62%}}
@media(max-width:700px){
 body{font-size:16px}.hero-refined{height:auto;max-height:none;min-height:0;display:flex;flex-direction:column;padding-bottom:0}
 .hero-refined>img{position:relative!important;left:0!important;width:100%!important;height:300px!important;order:2;object-position:center}
 .hero-refined .hero-shade{display:none}.hero-refined .hero-copy{padding:42px 22px 30px;width:100%;max-width:none}
 .hero-refined h1{font-size:clamp(2.8rem,11.7vw,4rem);margin:18px 0 22px}.hero-refined .hero-copy>p:not(.kicker){padding-right:0;font-size:1rem}
 .hero-refined .actions{margin-top:24px;gap:10px}.hero-refined .button{padding-inline:17px}
 .hero-refined .hero-foot{position:relative;left:auto;bottom:auto;padding:0 22px 28px;font-size:.8rem}
 .section-grid{display:block;padding:60px 22px}.home-intro>.kicker{margin-bottom:20px}.intro-image{min-height:340px;margin-top:30px}
 .section-pad{padding:60px 22px}.section-heading{margin-bottom:32px}.section-heading h2{margin-top:16px}
 .feature-strip{gap:0;padding-block:22px}.feature-strip article{display:flex;align-items:center}.feature-strip span{letter-spacing:.02em}
 .gallery-panel.large{height:380px}.gallery-side{grid-template-rows:300px 150px}.gallery-all{font-size:2rem;padding:28px}
 .review-scene{min-height:0;padding:70px 14px 24px}.review-sheet{padding:28px 20px;min-height:320px}.review-envelope{min-height:0}.review-controls a{font-size:.85rem}
 .photo-grid{columns:2;column-gap:10px;padding:0 12px 55px}.photo-tile{margin-bottom:10px}
 .page-intro{padding:50px 22px 40px}.page-intro h1{font-size:3rem}
 .about-story-image{min-height:400px}.about-story{gap:30px;padding-bottom:55px}.about-detail>div{margin:20px;padding:32px 24px}.about-detail h2{font-size:2.8rem}
 .visit-card h2{font-size:3rem}.visit-card{min-height:560px;padding:65px 24px}.home-visit{min-height:560px}
}

.nightingale-volume{position:absolute;z-index:4;left:0;top:18px;width:280px;perspective:800px;pointer-events:none}
.nightingale-volume img{width:100%;height:auto;filter:drop-shadow(0 18px 12px rgba(62,50,32,.13));transform-origin:50% 80%;animation:nightingale-sway 5s ease-in-out infinite}
.review-scene{padding-top:180px;perspective:1000px}
@keyframes nightingale-sway{0%,100%{transform:translateY(0) rotate(-2deg) rotateY(-8deg)}50%{transform:translateY(-9px) rotate(2deg) rotateY(8deg)}}
@media(hover:hover){.review-scene:hover .nightingale-volume img{animation-duration:2.8s}}
@media(max-width:700px){.nightingale-volume{width:230px;left:50%;top:4px;transform:translateX(-50%)}.review-scene{padding-top:180px}}
@media(prefers-reduced-motion:reduce){.nightingale-volume img{animation:none}}


/* Requested 23 Sep refinements — keep the existing café design and photography. */
.menu-page .menu-item p,
.menu-page .menu-note,
.menu-page .menu-intro>p:last-child,
.section-heading>p,
.muted,
.review-envelope p span{
  color:#4b5049!important;
}
.menu-page .menu-item h3{color:var(--olive-dark);font-weight:500}
.menu-page .menu-item strong{color:#665241;font-weight:600}
.menu-page .menu-item.is-photo{cursor:pointer;border-radius:10px;transition:background .2s,padding .2s}
.menu-page .menu-item.is-photo:hover,.menu-page .menu-item.is-photo:focus-visible{
  background:rgba(73,101,79,.055);padding-left:10px;padding-right:10px;outline:none
}
.photo-chip{
  display:inline-flex;align-items:center;margin-left:10px;padding:3px 8px;border-radius:999px;
  background:rgba(73,101,79,.10);color:var(--olive);font-size:.58rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;vertical-align:middle
}

/* Bird belongs to reviews only: it arrives with the envelope and gently floats there. */
.nightingale-volume{
  left:auto!important;right:34px!important;top:20px!important;width:250px!important;
  transform:none!important;filter:drop-shadow(0 20px 22px rgba(41,45,34,.16))
}
.nightingale-volume img{
  animation:reviewBirdArrive 7s cubic-bezier(.34,.06,.24,1) infinite!important;
  transform-origin:50% 78%
}
@keyframes reviewBirdArrive{
  0%{transform:translate3d(90px,-34px,0) rotate(7deg) scale(.88);opacity:0}
  12%{opacity:1}
  30%{transform:translate3d(0,2px,0) rotate(-2deg) scale(1)}
  55%{transform:translate3d(-7px,-10px,10px) rotate(1.5deg) scale(1.015)}
  80%{transform:translate3d(3px,-3px,0) rotate(-1deg) scale(1)}
  100%{transform:translate3d(90px,-34px,0) rotate(7deg) scale(.88);opacity:0}
}
.review-scene{padding-top:175px}
@media(max-width:700px){
  .nightingale-volume{left:50%!important;right:auto!important;top:8px!important;width:205px!important;margin-left:-102px}
  .review-scene{padding-top:166px}
}

/* Click-to-open food photo. No permanent dish photos are inserted into the menu list. */
.dish-modal{
  position:fixed;inset:0;z-index:120;background:rgba(25,30,25,.76);backdrop-filter:blur(12px);
  display:none;place-items:center;padding:22px
}
.dish-modal.open{display:grid}
.dish-modal-card{
  position:relative;width:min(920px,95vw);max-height:92vh;overflow:auto;background:var(--cream);
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);border-radius:18px;
  box-shadow:0 30px 100px rgba(15,20,16,.36)
}
.dish-modal-visual{
  min-height:540px;display:grid;place-items:center;background:#eee7db;padding:28px;border-radius:18px 0 0 18px
}
.dish-modal-visual img{max-width:92%;max-height:500px;width:auto;height:auto;object-fit:contain;object-position:center}
.dish-modal-copy{padding:clamp(34px,5vw,62px);display:flex;flex-direction:column;justify-content:center}
.dish-modal-copy .kicker{margin-bottom:20px}
.dish-modal-copy h2{font-size:clamp(2.5rem,4.5vw,4.8rem);margin:0 0 18px;color:var(--olive-dark)}
.dish-modal-copy .dish-price{font-size:1.05rem;color:var(--coffee);font-weight:600;margin-bottom:24px}
.dish-modal-copy .dish-desc{font-size:1.04rem;line-height:1.7;color:#4b5049}
.dish-modal-close{
  position:absolute;right:16px;top:16px;z-index:4;width:44px;height:44px;border:0;border-radius:50%;
  background:rgba(255,253,248,.95);color:var(--olive-dark);font-size:27px;cursor:pointer;
  box-shadow:0 8px 24px rgba(20,25,20,.13)
}
@media(max-width:780px){
  .dish-modal-card{grid-template-columns:1fr}
  .dish-modal-visual{min-height:360px;border-radius:18px 18px 0 0}
  .dish-modal-visual img{max-width:90%;max-height:320px}
  .dish-modal-copy{padding:28px 22px}
  .dish-modal-copy h2{font-size:2.4rem}
}

.static-lightbox{position:fixed;inset:0;z-index:130;background:rgba(20,25,20,.88);display:none;place-items:center;padding:24px}
.static-lightbox.open{display:grid}.static-lightbox img{max-width:94vw;max-height:90vh;object-fit:contain}
.static-lightbox button{position:absolute;right:20px;top:20px;width:46px;height:46px;border:0;border-radius:50%;background:rgba(255,255,255,.9);font-size:28px;color:var(--olive-dark);cursor:pointer}


/* --- Mobile layout fix: gallery CTA + reviews --- */
@media (max-width: 700px){
  .split-gallery{
    height:auto !important;
    min-height:0 !important;
    display:block !important;
    overflow:visible !important;
  }

  .split-gallery > a:first-child,
  .gallery-panel{
    display:block !important;
    position:relative !important;
    height:52vw !important;
    min-height:220px !important;
    max-height:360px !important;
  }

  .gallery-side{
    display:block !important;
    height:auto !important;
    min-height:0 !important;
  }

  .gallery-side .gallery-panel{
    height:46vw !important;
    min-height:190px !important;
    max-height:320px !important;
  }

  .gallery-all{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:18px !important;
    min-height:0 !important;
    height:auto !important;
    padding:28px 22px !important;
    font-size:clamp(1.75rem, 8.5vw, 2.65rem) !important;
    line-height:1.05 !important;
    overflow:visible !important;
  }

  .gallery-all br{display:none !important;}
  .gallery-all b{
    flex:0 0 auto !important;
    font-size:1.45rem !important;
    line-height:1 !important;
  }

  .home-reviews,
  .reviews-page{
    position:relative !important;
    z-index:1 !important;
    margin-top:0 !important;
    padding-top:74px !important;
    overflow:visible !important;
  }

  .home-reviews .section-heading,
  .reviews-heading{
    display:block !important;
    margin:0 0 34px !important;
  }

  .home-reviews .section-heading h2,
  .reviews-heading h2{
    font-size:clamp(2.65rem, 13vw, 4.2rem) !important;
    line-height:.98 !important;
    margin:14px 0 18px !important;
    overflow-wrap:anywhere !important;
  }

  .home-reviews .section-heading > p,
  .reviews-heading > p{
    max-width:none !important;
    margin:0 !important;
    font-size:1rem !important;
    line-height:1.55 !important;
  }

  .review-stage{
    padding:0 !important;
    margin:0 !important;
    width:100% !important;
  }

  .review-scene{
    min-height:0 !important;
    padding:152px 14px 20px !important;
    overflow:hidden !important;
  }

  .review-bird{
    top:12px !important;
    left:50% !important;
    right:auto !important;
    width:160px !important;
    margin-left:-80px !important;
  }

  .review-envelope{
    min-height:0 !important;
    padding:0 12px 12px !important;
  }

  .review-sheet{
    min-height:0 !important;
    margin-top:-30px !important;
    padding:26px 20px !important;
  }

  .review-envelope blockquote{
    font-size:clamp(1.12rem, 5.4vw, 1.48rem) !important;
    line-height:1.42 !important;
    margin:24px 0 !important;
  }

  .review-controls{
    grid-template-columns:42px 1fr 42px !important;
    gap:8px !important;
    margin-top:14px !important;
  }

  .review-controls button{
    width:42px !important;
    height:42px !important;
  }
}

/* Client refinements: each photo has space, headings stay in their section. */
@media(max-width:700px){
  .split-gallery{background:var(--paper);padding:12px 12px 0!important}
  .split-gallery > .gallery-panel.large{margin-bottom:12px!important}
  .gallery-side .gallery-panel{margin-bottom:12px!important}
  .split-gallery .gallery-panel{border-radius:8px;overflow:hidden}
  .gallery-all{border-radius:8px}
  .home-reviews .section-heading h2{font-size:clamp(2.25rem,10vw,3.5rem)!important;line-height:1.08!important}
.home-reviews .section-heading h2 em{display:inline-block}
}

/* A single veranda photo gives the gallery invitation a calmer composition. */
.split-gallery.gallery-veranda{grid-template-columns:minmax(0,1.8fr) minmax(290px,.7fr);height:600px}
.gallery-veranda .gallery-all{align-items:center;line-height:1.13}
.about-story-copy{background:#f8f5ed;padding:clamp(28px,4vw,54px);border:1px solid #ddd6c7}
.about-story-copy p{color:#303b32;font-size:clamp(1.05rem,1.25vw,1.18rem);font-weight:400;line-height:1.72}
.about-story-copy .lead{color:#2d4939;font-size:clamp(1.55rem,2.2vw,2.15rem);font-weight:450;line-height:1.25}
@media(max-width:700px){
  .split-gallery.gallery-veranda{display:block!important;height:auto!important;padding:12px!important}
  .gallery-veranda>.gallery-panel.large{height:70vw!important;min-height:290px!important;max-height:450px!important;margin-bottom:12px!important}
  .gallery-veranda>.gallery-all{min-height:150px;padding:28px;font-size:clamp(1.8rem,8vw,2.7rem)}
  .about-story-copy{padding:28px 24px}
}

/* Dish window: no horizontal scrolling or clipped name. */
.dish-modal{overflow:hidden;padding:clamp(12px,2vw,24px)}
.dish-modal-card{
  width:min(920px,100%);max-width:100%;max-height:min(740px,calc(100dvh - 32px));
  overflow:hidden;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)
}
.dish-modal-visual,.dish-modal-copy{min-width:0;min-height:0}
.dish-modal-visual img{display:block;max-width:100%;max-height:min(500px,60dvh)}
.dish-modal-copy{padding:clamp(24px,3vw,46px);overflow:hidden}
.dish-modal-copy h2{
  font-size:clamp(1.75rem,3.1vw,3.15rem);line-height:1.07;
  overflow-wrap:anywhere;word-break:normal;hyphens:auto
}
.dish-modal-copy .dish-desc{line-height:1.4;overflow-wrap:anywhere}
@media(max-width:780px){
  .dish-modal-card{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;max-height:calc(100dvh - 24px)}
  .dish-modal-visual{padding:18px;min-height:0}
  .dish-modal-visual img{max-height:min(48dvh,330px)}
  .dish-modal-copy{padding:18px 22px 24px}
  .dish-modal-copy .kicker{margin-bottom:8px}
  .dish-modal-copy h2{font-size:clamp(1.65rem,6vw,2.45rem);margin-bottom:8px}
  .dish-modal-copy .dish-price{margin-bottom:8px}
  .dish-modal-copy .dish-desc{font-size:.95rem;margin-bottom:0}
}
@media(max-height:620px) and (min-width:781px){
  .dish-modal-visual{min-height:0;padding:18px}
  .dish-modal-visual img{max-height:calc(100dvh - 72px)}
}

/* The letter carrier enters once when the reviews first come into view. */
.review-scene{isolation:isolate}
.review-flying-bird{position:absolute;z-index:4;left:0;top:16px;width:min(33%,300px);pointer-events:none;opacity:0;transform:translate(-120%,0);filter:drop-shadow(0 12px 14px rgba(36,23,12,.25))}
.review-flying-bird img{display:block;width:100%;height:auto}
.bird-arrived .review-flying-bird{animation:birdDelivery 4.8s ease-in-out both}
@keyframes birdDelivery{0%{opacity:0;transform:translate(-120%,18px) rotate(-5deg)}12%{opacity:1}39%,62%{opacity:1;transform:translate(48%,0) rotate(0)}100%{opacity:0;transform:translate(390%,-45px) rotate(5deg)}}
.review-envelope blockquote,.review-grid blockquote{color:#684631}
.review-envelope .stars,.review-grid .stars{color:#af7445}
.review-sheet [data-review-text]{min-height:4em}
@media(max-width:700px){.review-flying-bird{top:10px;width:46%;max-width:210px}.review-sheet [data-review-text]{min-height:7em}.bird-arrived .review-flying-bird{animation-duration:4.2s}}
@media(prefers-reduced-motion:reduce){.review-flying-bird{display:none}.review-sheet{animation:none!important}}

.legal-inline{display:block;margin-top:12px;font-size:.78rem;line-height:1.6;color:#d8dcd1}
.contact-legal small{line-height:1.65}
.contact-legal strong{font-size:1rem}

/* Original nightingale follows the same entrance, pause and departure path. */
.review-flying-bird img{animation:nightingaleGlide 1.2s ease-in-out infinite alternate;transform-origin:48% 55%}
@keyframes nightingaleGlide{from{transform:translateY(2px) rotate(-2deg)}to{transform:translateY(-5px) rotate(2deg)}}
@media(prefers-reduced-motion:reduce){.review-flying-bird img{animation:none}}
