/*
Theme Name: Oliviarnia Custom
Theme URI: https://oliviarnia.pl/
Author: Oliviarnia
Description: Custom WordPress theme wrapper for the Oliviarnia static HTML website.
Version: 1.1.0
Text Domain: oliviarnia-custom
*/
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--green:#173b2e;--deep:#102b22;--cream:#f5f0e6;--paper:#fbf9f4;--gold:#b78d52;--ink:#202820;--muted:#77776d;--line:#ded8cc;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topline{height:34px;padding:7px 5.5%;background:var(--deep);color:#f0e8d8;font-size:9px;letter-spacing:2px;display:flex;justify-content:space-between}.topline span{letter-spacing:1px;opacity:.75}.site-header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 5.5%;background:var(--paper);position:relative;z-index:10;border-bottom:1px solid rgba(23,59,46,.08)}.brand{display:flex;align-items:center;gap:12px;color:var(--green);font-weight:700;font-size:16px;letter-spacing:3px;line-height:1.25}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:2px;margin-top:7px;color:#9a825e}.brand-mark{display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;width:44px;height:44px;font-family:var(--serif);font-size:29px;font-weight:400;letter-spacing:0;color:var(--gold)}.nav{display:flex;align-items:center;gap:27px;font-size:11px;color:#4f554d}.nav a{transition:color .2s}.nav a:hover,.nav a.active{color:var(--gold)}.nav-cta{padding:12px 16px;background:var(--green);color:white!important;letter-spacing:.2px}.menu-toggle{display:none;background:none;border:0;font-size:26px;color:var(--green)}.hero{min-height:610px;position:relative;background:#24392d;display:flex;align-items:center;overflow:hidden}.hero-image,.page-hero:before{position:absolute;inset:0;background-size:cover;background-position:center}.hero-image{background-image:url('assets/oliviarnia-stol-branding.jpg');background-position:center 52%}.hero-image:after{content:'';position:absolute;inset:0;background:rgba(13,31,23,.58)}.hero-content{position:relative;z-index:1;color:#fff;padding:70px 10%;max-width:800px}.eyebrow{font-size:10px;letter-spacing:2.6px;color:var(--gold);font-weight:700;margin:0 0 18px}.hero h1,.page-hero h1{font-family:var(--serif);font-size:clamp(48px,6.7vw,88px);line-height:1.05;font-weight:400;letter-spacing:-2px;margin:0 0 22px}.hero h1 em,.page-hero h1 em,h2 em{font-weight:400;color:#d6b27c}.hero-copy{max-width:420px;color:#e7e2d8;font-size:16px;line-height:1.8;margin-bottom:32px}.actions{display:flex;align-items:center;gap:28px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:15px 20px;border:0;cursor:pointer;font-size:11px;letter-spacing:.5px;font-weight:600;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-2px)}.btn-light{background:var(--cream);color:var(--green)}.btn-dark{background:var(--green);color:#fff}.btn span{font-size:17px}.text-link{font-size:11px;font-weight:600}.light-link{color:white}.hero-note{position:absolute;right:5.5%;bottom:34px;color:#e4d5ba;font-size:9px;letter-spacing:2.8px;writing-mode:vertical-rl}.section-wrap{padding:105px 9%}.intro{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.intro h2,.section-heading h2,.visit h2,.story-intro h2,.reservation-aside h2,.story-end h2{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4vw,53px);line-height:1.15;margin:0;color:var(--green);letter-spacing:-1px}.intro h2 em,.section-heading h2 em,.visit h2 em,.story-intro h2 em,.reservation-aside h2 em,.story-end h2 em{color:var(--gold)}.intro-copy p,.visit-copy>p:not(.eyebrow),.story-intro p:not(.eyebrow),.reservation-aside>p:not(.eyebrow){color:#77786e;line-height:1.95;font-size:14px;margin:0 0 20px}.under-link{display:inline-flex;gap:22px;align-items:center;border-bottom:1px solid var(--gold);padding-bottom:8px;font-size:11px;font-weight:700;color:var(--green)}.under-link span{color:var(--gold);font-size:16px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);min-height:390px}.feature-card{position:relative;min-height:390px;background-size:cover;background-position:center;display:flex;align-items:flex-end;color:#fff;overflow:hidden}.feature-card:before{content:"";position:absolute;inset:0;background:rgba(9,25,18,.42);transition:transform .4s}.feature-card:hover:before{background:rgba(9,25,18,.56)}.feature-menu{background-image:url('assets/oliviarnia-pizza-burrata.jpg')}.feature-story{background-image:url('assets/oliviarnia-lokal-zewnatrz.jpg')}.feature-gallery{background-image:url('assets/oliviarnia-lokal-zewnatrz.jpg')}.feature-card>div{position:relative;padding:38px}.feature-card span{font-size:9px;letter-spacing:2px;color:#d8b67d}.feature-card h3{font-family:var(--serif);font-weight:400;font-size:36px;line-height:1.1;margin:18px 0}.feature-card b{font-size:10px;font-weight:500}.quote-band{text-align:center;padding:90px 20px 100px;background:var(--cream);color:var(--green)}.quote-mark{font-family:var(--serif);font-size:65px;color:var(--gold);line-height:.9}.quote-band blockquote{font-family:var(--serif);font-size:clamp(32px,4vw,50px);font-style:italic;line-height:1.2;margin:10px 0 18px}.quote-band p{font-size:11px;color:#858071}.visit{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:9%}.visit-photo{min-height:430px;background:url('assets/oliviarnia-stol-branding.jpg') center/cover}.visit-copy h2{margin-bottom:23px}.visit-copy .btn{margin-top:14px}.footer{background:var(--deep);color:#eee8dc;padding:50px 6% 0}.footer-main{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:42px}.brand-footer{color:#f4eee3}.footer-main>p{font-family:var(--serif);font-size:21px;line-height:1.45;color:#d5c8b1;margin:0}.footer-main>div{display:flex;flex-direction:column;gap:9px;font-size:11px;color:#c9c8bb}.footer-main>div b{font-size:9px;letter-spacing:2px;color:var(--gold);margin-bottom:7px}.footer-bottom{border-top:1px solid rgba(255,255,255,.13);padding:17px 0;display:flex;justify-content:space-between;font-size:9px;color:#aeb3a9;letter-spacing:.3px}.page-hero{min-height:430px;position:relative;display:flex;align-items:center;background:#253b2d;color:white;overflow:hidden}.page-hero:before{content:"";background-image:url('assets/oliviarnia-lokal-zewnatrz.jpg');background-position:center 50%}.menu-page-hero:before{background-image:url('assets/oliviarnia-pizza-burrata.jpg')}.story-hero:before{background-image:url('assets/oliviarnia-lokal-zewnatrz.jpg')}.gallery-hero:before{background-image:url('assets/oliviarnia-lokal-zewnatrz.jpg')}.reservation-hero:before{background-image:url('assets/oliviarnia-lokal-zewnatrz.jpg')}.order-hero:before{background-image:url('assets/oliviarnia-pizza-burrata.jpg')}.page-hero-shade{position:absolute;inset:0;background:rgba(13,31,23,.62)}.page-hero-content{position:relative;z-index:1;padding:70px 10%;max-width:850px}.page-hero h1{font-size:clamp(45px,6vw,76px)}.page-hero-content>p:last-child{max-width:430px;color:#e3e0d8;font-size:14px;line-height:1.8}.page-hero .btn{margin-top:10px}.menu-section{padding-top:80px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:34px}.section-heading h2{font-size:42px}.section-heading>p{max-width:350px;color:var(--muted);font-size:13px;line-height:1.8;margin:0}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin:30px 0 20px}.filter{border:1px solid var(--line);background:transparent;padding:10px 16px;color:#62675d;font-size:11px;cursor:pointer}.filter.active,.filter:hover{background:var(--green);border-color:var(--green);color:white}.search-box{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:10px 0;max-width:360px;margin-bottom:32px;color:var(--gold)}.search-box span{font-size:26px}.search-box input{border:0;background:transparent;outline:0;width:100%;font-size:12px}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.dish-card{border:1px solid #e7e1d7;background:#fffdf9;transition:transform .2s,box-shadow .2s}.dish-card:hover{transform:translateY(-4px);box-shadow:0 14px 35px #182d1d10}.dish-card img{width:100%;height:210px;object-fit:cover;display:block}.dish-info{padding:19px}.dish-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.dish-top h3,.order-item h3{font-family:var(--serif);font-size:20px;line-height:1.2;font-weight:500;margin:0;color:var(--green)}.dish-top b{white-space:nowrap;color:var(--gold);font-size:14px}.dish-info p{color:#77786e;font-size:12px;line-height:1.7;min-height:42px;margin:12px 0}.dish-info small{display:block;font-size:8px;letter-spacing:1px;color:#969084;margin-bottom:14px}.add-order{border:0;background:transparent;color:var(--green);font-size:10px;font-weight:700;padding:0 0 5px;border-bottom:1px solid var(--gold);cursor:pointer}.menu-note,.form-disclaimer{font-size:10px;color:#88887d;line-height:1.6;margin-top:25px}.menu-bottom-cta{margin-top:70px;background:var(--cream);padding:32px 38px;display:flex;align-items:center;justify-content:space-between;gap:20px}.menu-bottom-cta .eyebrow{margin-bottom:6px}.menu-bottom-cta h2{font:400 30px var(--serif);color:var(--green);margin:0}.story-intro{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.story-image{min-height:520px;background:url('assets/oliviarnia-lokal-zewnatrz.jpg') center/cover}.story-intro h2{margin-bottom:25px}.values-band{background:var(--cream);display:grid;grid-template-columns:repeat(3,1fr);padding:60px 9%;gap:55px}.value span{color:var(--gold);font-family:var(--serif);font-size:22px}.value h3{font:500 23px var(--serif);color:var(--green);margin:12px 0}.value p{font-size:12px;color:#7c7d72;line-height:1.8;margin:0}.story-end{text-align:center;padding-top:90px;padding-bottom:100px}.story-end h2{margin-bottom:28px}.gallery-section{padding-top:80px}.gallery-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;grid-auto-rows:230px;gap:15px}.gallery-tile{padding:0;border:0;position:relative;overflow:hidden;cursor:zoom-in;background:#ddd}.gallery-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.gallery-tile:hover img{transform:scale(1.05)}.gallery-tile:after{content:"";position:absolute;inset:40% 0 0;background:rgba(12,28,20,.22)}.gallery-tile span{position:absolute;bottom:15px;left:18px;z-index:1;color:#fff;font-family:var(--serif);font-size:20px}.tile-tall{grid-row:span 2}.tile-wide{grid-column:span 2}.lightbox{display:none;position:fixed;inset:0;background:rgba(7,18,13,.92);z-index:100;align-items:center;justify-content:center;padding:6vw}.lightbox.open{display:flex}.lightbox img{max-width:100%;max-height:85vh;object-fit:contain}.lightbox-close{position:absolute;right:35px;top:20px;color:white;background:none;border:0;font-size:40px;cursor:pointer}.reservation-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:9%;align-items:start}.reservation-aside h2{margin-bottom:24px}.aside-detail{display:flex;gap:17px;margin-top:25px;align-items:flex-start}.aside-detail>span{font-family:var(--serif);font-size:20px;color:var(--gold)}.aside-detail b{font-size:12px;color:var(--green)}.aside-detail p{font-size:11px;color:#85867b;margin:4px 0 0}.form-card,.cart-card{background:#fffdf9;border:1px solid #e5ded2;padding:34px;box-shadow:0 14px 45px rgba(28,44,31,.04)}.form-card h2,.cart-card h2{font:400 29px var(--serif);color:var(--green);margin:0 0 24px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-card label,.cart-card label{display:flex;flex-direction:column;gap:7px;font-size:10px;font-weight:700;color:#4f5a4e;margin-bottom:17px}.form-card input,.form-card select,.form-card textarea,.cart-card input,.cart-card select,.cart-card textarea{width:100%;padding:12px;border:1px solid #e1dbcf;background:#fff;font-size:12px;color:var(--ink);outline-color:var(--gold);border-radius:0}.form-card textarea,.cart-card textarea{resize:vertical}.form-card .consent{display:flex;flex-direction:row;align-items:center;font-weight:400;font-size:10px;gap:9px}.consent input{width:auto}.btn-full{width:100%;margin-top:4px}.form-result{display:none;margin-top:16px;padding:14px;background:#edf3eb;border-left:3px solid var(--green);font-size:12px;color:var(--green);line-height:1.7}.form-result.show{display:block}.order-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:45px;align-items:start;padding-top:80px}.order-layout .section-heading{align-items:center}.order-layout .section-heading h2{font-size:37px}.order-list{display:flex;flex-direction:column;gap:12px}.order-item{display:grid;grid-template-columns:94px 1fr auto;gap:16px;align-items:center;padding:12px;background:#fffdf9;border:1px solid #e6dfd4}.order-item img{width:94px;height:88px;object-fit:cover}.order-item h3{font-size:18px}.order-item p{font-size:11px;color:#7d7f74;margin:5px 0}.order-item b{font-size:12px;color:var(--gold)}.qty-add{border:1px solid var(--green);background:transparent;color:var(--green);font-size:10px;padding:9px 12px;cursor:pointer;white-space:nowrap}.qty-add:hover{background:var(--green);color:#fff}.cart-card{position:sticky;top:20px;padding:26px}.cart-title{display:flex;justify-content:space-between;align-items:center}.cart-title h2{font-size:24px;margin-bottom:0}.cart-count{display:grid;place-items:center;background:var(--cream);border-radius:50%;width:34px;height:34px;color:var(--green);font-size:12px}.cart-items{padding:20px 0}.empty-cart{color:#8a8b80;font-size:12px;text-align:center;padding:18px 0}.empty-cart span{display:block;font-size:25px;color:var(--gold)}.cart-line{display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid #eee8df;font-size:11px}.cart-line b{color:var(--green)}.cart-line-controls{display:flex;align-items:center;gap:8px;margin-top:6px;color:#888}.cart-line-controls button{border:1px solid #d9d1c5;background:transparent;width:23px;height:23px;cursor:pointer}.cart-line-controls .remove{width:auto;border:0;color:#a75a4b;font-size:10px}.cart-total{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:17px 0 22px;font-size:12px}.cart-total b{font-size:17px;color:var(--green)}.cart-card form>.eyebrow{margin-top:6px}.cart-card .form-disclaimer{margin-bottom:0}.no-results{grid-column:1/-1;color:#777;padding:30px 0}.hidden{display:none!important}
@media(max-width:1000px){.nav{gap:14px;font-size:10px}.site-header{padding:0 4%}.nav-cta{padding:10px}.section-wrap{padding:75px 6%}.menu-grid{grid-template-columns:repeat(2,1fr)}.footer-main{grid-template-columns:1fr 1fr}.reservation-layout{gap:5%}.order-layout{gap:24px}.gallery-grid{grid-auto-rows:190px}}
@media(max-width:720px){.topline{justify-content:center;font-size:8px}.topline span{display:none}.site-header{height:78px;padding:0 5%}.brand{font-size:14px}.brand-mark{width:38px;height:38px;font-size:24px}.menu-toggle{display:block}.nav{display:none;position:absolute;left:0;right:0;top:78px;background:var(--paper);padding:15px 6% 24px;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 12px 20px #0000000d}.nav.open{display:flex}.nav a{padding:12px 0;border-bottom:1px solid #e8e2d8;font-size:12px}.nav .nav-cta{padding:13px;margin-top:12px;text-align:center}.hero{min-height:570px}.hero-content{padding:55px 7%}.hero h1{font-size:58px}.hero-note{right:4%;bottom:20px;font-size:8px}.intro,.visit,.story-intro,.reservation-layout,.order-layout{grid-template-columns:1fr;gap:30px}.intro{padding-top:70px;padding-bottom:70px}.intro-copy{margin-top:0}.feature-grid{grid-template-columns:1fr}.feature-card{min-height:300px}.quote-band{padding:65px 20px}.visit-photo{min-height:320px;order:2}.visit-copy{order:1}.footer-main{grid-template-columns:1fr 1fr;gap:28px}.footer-bottom{gap:14px;flex-direction:column}.page-hero{min-height:370px}.page-hero-content{padding:50px 7%}.page-hero h1{font-size:53px}.section-heading{align-items:flex-start;flex-direction:column;gap:15px}.section-heading h2{font-size:36px}.menu-grid{grid-template-columns:1fr}.dish-card img{height:230px}.menu-bottom-cta{align-items:flex-start;flex-direction:column;padding:26px}.story-image{min-height:330px;order:2}.values-band{grid-template-columns:1fr;gap:28px;padding:45px 8%}.story-end{padding:65px 8%}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:180px}.tile-tall{grid-row:span 2}.tile-wide{grid-column:span 2}.form-card{padding:24px 18px}.form-row{grid-template-columns:1fr;gap:0}.order-layout{padding-top:55px}.order-layout .section-heading{flex-direction:row;align-items:center}.order-item{grid-template-columns:70px 1fr;gap:12px}.order-item img{width:70px;height:75px;grid-row:span 2}.order-item h3{font-size:16px}.order-item .qty-add{grid-column:2;justify-self:start}.cart-card{position:static}.reservation-layout{padding-top:60px}.gallery-section,.menu-section{padding-top:55px}}


/* ── Motion design: subtle, elegant, and accessible ── */
:root { --ease-luxe: cubic-bezier(.22,.75,.25,1); }
@keyframes fade-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes hero-zoom { from { transform: scale(1.075); } to { transform: scale(1); } }
@keyframes line-grow { from { transform: scaleX(0); transform-origin: left; } to { transform: scaleX(1); transform-origin: left; } }
@keyframes soft-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes shine { 0% { background-position: 150% 0; } 100% { background-position: -150% 0; } }
.hero-image, .page-hero:before { animation: hero-zoom 1.6s var(--ease-luxe) both; }
.hero-content > * { animation: fade-up .8s var(--ease-luxe) both; }
.hero-content > *:nth-child(1) { animation-delay: .12s; }
.hero-content > *:nth-child(2) { animation-delay: .22s; }
.hero-content > *:nth-child(3) { animation-delay: .34s; }
.hero-content > *:nth-child(4) { animation-delay: .46s; }
.page-hero-content > * { animation: fade-up .75s var(--ease-luxe) both; }
.page-hero-content > *:nth-child(1) { animation-delay: .12s; }
.page-hero-content > *:nth-child(2) { animation-delay: .24s; }
.page-hero-content > *:nth-child(3) { animation-delay: .36s; }
.btn { position: relative; overflow: hidden; isolation: isolate; }
.btn:after { content:none; display:none; }
.btn:hover:after { background-position: -150% 0; }
.brand-mark { transition: transform .45s var(--ease-luxe), background .3s, color .3s; }
.brand:hover .brand-mark { transform: rotate(-12deg) scale(1.06); background: var(--green); color: var(--cream); }
.nav a:not(.nav-cta) { position: relative; }
.nav a:not(.nav-cta):after { content: ""; position: absolute; left: 0; right: 0; bottom: -7px; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: right; transition: transform .3s var(--ease-luxe); }
.nav a:not(.nav-cta):hover:after, .nav a:not(.nav-cta).active:after { transform: scaleX(1); transform-origin: left; }
.feature-card { transition: background-size .6s var(--ease-luxe); }
.feature-card > div { transition: transform .45s var(--ease-luxe); }
.feature-card:hover > div { transform: translateY(-8px); }
.feature-card span { display: inline-block; transition: letter-spacing .35s; }
.feature-card:hover span { letter-spacing: 3px; }
.dish-card { animation: fade-up .65s var(--ease-luxe) both; }
.dish-card:nth-child(3n+2) { animation-delay: .07s; }
.dish-card:nth-child(3n) { animation-delay: .14s; }
.dish-card img { transition: transform .7s var(--ease-luxe), filter .5s; }
.dish-card:hover img { transform: scale(1.045); filter: saturate(1.08); }
.filter { transition: color .25s, background .25s, border-color .25s, transform .25s; }
.filter:hover { transform: translateY(-2px); }
.add-order:after { content: ""; display: block; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease-luxe); }
.add-order:hover:after { transform: scaleX(1); }
.gallery-tile img { transition: transform .75s var(--ease-luxe), filter .45s; }
.gallery-tile:hover img { transform: scale(1.06); filter: brightness(.88); }
.gallery-tile span { transition: transform .35s var(--ease-luxe), letter-spacing .35s; }
.gallery-tile:hover span { transform: translateX(5px); letter-spacing: .5px; }
.lightbox { opacity: 0; transition: opacity .25s ease; }
.lightbox.open { opacity: 1; }
.lightbox.open img { animation: fade-up .35s var(--ease-luxe) both; }
.form-card, .cart-card { transition: box-shadow .3s, transform .3s; }
.form-card:focus-within, .cart-card:focus-within { box-shadow: 0 18px 50px rgba(23,59,46,.09); }
.form-card input, .form-card select, .form-card textarea, .cart-card input, .cart-card select, .cart-card textarea { transition: border-color .25s, box-shadow .25s; }
.form-card input:focus, .form-card select:focus, .form-card textarea:focus, .cart-card input:focus, .cart-card select:focus, .cart-card textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(183,141,82,.12); }
.order-item { transition: transform .25s var(--ease-luxe), border-color .25s, box-shadow .25s; }
.order-item:hover { transform: translateX(4px); border-color:#c8b18d; box-shadow:0 8px 22px rgba(23,59,46,.05); }
.qty-add { transition: background .25s, color .25s, transform .25s; }
.qty-add:active, .btn:active { transform: scale(.98); }
.cart-count { transition: transform .25s var(--ease-luxe); }
.cart-count.bump { animation: soft-float .4s ease; }
.value { transition: transform .3s var(--ease-luxe); }
.value:hover { transform: translateY(-4px); }
.value span { display: inline-block; transition: transform .35s var(--ease-luxe); }
.value:hover span { transform: rotate(-8deg) scale(1.1); }
.under-link span { display: inline-block; transition: transform .25s var(--ease-luxe); }
.under-link:hover span { transform: translate(3px,-3px); }
.footer a { transition: color .2s, opacity .2s; }
.footer a:hover { color: #e1bc83; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

.reveal-ready { opacity: 0; transform: translateY(22px); transition: opacity .75s var(--ease-luxe) var(--reveal-delay, 0ms), transform .75s var(--ease-luxe) var(--reveal-delay, 0ms); }
.reveal-ready.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { .reveal-ready { opacity: 1; transform: none; } }


/* ── Action motion: energetic interactions, kept tasteful ── */
@keyframes action-pulse {
  0% { box-shadow: 0 0 0 0 rgba(183,141,82,.35); }
  70% { box-shadow: 0 0 0 10px rgba(183,141,82,0); }
  100% { box-shadow: 0 0 0 0 rgba(183,141,82,0); }
}
@keyframes action-pop {
  0% { transform: scale(.94); }
  55% { transform: scale(1.045); }
  100% { transform: scale(1); }
}
@keyframes action-shake {
  0%,100% { transform: translateX(0); }
  25% { transform: translateX(-3px); }
  75% { transform: translateX(3px); }
}
@keyframes cart-fly {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  55% { transform: translateY(-18px) scale(1.18); opacity: .75; }
  100% { transform: translateY(-32px) scale(.75); opacity: 0; }
}
@keyframes card-flash {
  0% { box-shadow: 0 0 0 0 rgba(183,141,82,0); border-color: #e6dfd4; }
  35% { box-shadow: 0 0 0 4px rgba(183,141,82,.17); border-color: var(--gold); }
  100% { box-shadow: 0 0 0 0 rgba(183,141,82,0); border-color: #e6dfd4; }
}
@keyframes toast-in {
  from { opacity: 0; transform: translateY(12px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.btn { transition: transform .22s var(--ease-luxe), box-shadow .22s, background .22s; }
.btn:hover { box-shadow: 0 9px 22px rgba(16,43,34,.18); transform: translateY(-3px); }
.btn:active { transform: translateY(1px) scale(.98); box-shadow: none; }
.nav-cta:hover { animation: action-pulse .8s ease-out; }
.add-order, .qty-add { position: relative; }
.add-order:active, .qty-add:active { transform: scale(.94); }
.dish-card.action-added { animation: card-flash .7s ease-out; }
.qty-add.action-added { animation: action-pop .32s ease-out; }
.cart-count.bump { animation: action-pop .42s var(--ease-luxe); }
.form-result.show { animation: toast-in .35s var(--ease-luxe) both; }
.form-card.needs-attention { animation: action-shake .28s ease-in-out; }
.gallery-tile:active img { transform: scale(1.02); }
.feature-card:hover { background-size: 106%; }
.action-toast { position: fixed; right: 22px; bottom: 22px; z-index: 200; max-width: min(360px, calc(100vw - 44px)); background: var(--deep); color: #f8f1e5; padding: 15px 18px; box-shadow: 0 14px 35px rgba(0,0,0,.2); border-left: 3px solid var(--gold); font-size: 12px; line-height: 1.55; animation: toast-in .3s var(--ease-luxe) both; }
.action-toast strong { display:block; color:#e2bd82; font-size:10px; letter-spacing:1px; margin-bottom:3px; }
.fly-item { position:fixed; z-index:250; pointer-events:none; color:var(--gold); font-size:22px; font-weight:700; animation:cart-fly .65s var(--ease-luxe) forwards; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
  .action-toast, .fly-item { animation: none !important; }
  .dish-card.action-added, .qty-add.action-added, .nav-cta:hover { animation: none !important; }
}


/* ── CHAOS MODE: playful restaurant-party easter egg ── */
@keyframes chaos-wiggle {
  0%,100% { transform: rotate(0) scale(1); }
  18% { transform: rotate(-2deg) scale(1.025); }
  42% { transform: rotate(2.5deg) scale(1.035); }
  68% { transform: rotate(-1.5deg) scale(1.02); }
}
@keyframes chaos-disco {
  0%,100% { filter: hue-rotate(0deg) saturate(1); }
  25% { filter: hue-rotate(45deg) saturate(1.5); }
  50% { filter: hue-rotate(110deg) saturate(1.35); }
  75% { filter: hue-rotate(230deg) saturate(1.6); }
}
@keyframes chaos-marquee {
  from { transform: translateX(100vw) rotate(-2deg); }
  to { transform: translateX(-120%) rotate(2deg); }
}
@keyframes chaos-float {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-16px) rotate(12deg); }
  70% { transform: translateY(7px) rotate(-10deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes chaos-bounce {
  0%,100% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-11px) scale(1.04); }
  55% { transform: translateY(0) scale(.97); }
  75% { transform: translateY(-4px) scale(1.01); }
}
.chaos-toggle {
  position: fixed; right: 18px; bottom: 18px; z-index: 300;
  border: 2px solid #ffcf4a; border-radius: 999px; padding: 13px 17px;
  background: #e944a6; color: #fff; font: 800 11px var(--sans);
  letter-spacing: .7px; cursor: pointer; box-shadow: 0 8px 0 #7a2360, 0 12px 28px #0003;
  transition: transform .2s, box-shadow .2s;
}
.chaos-toggle:hover { transform: translateY(-3px) rotate(-2deg); box-shadow: 0 11px 0 #7a2360, 0 16px 30px #0004; }
.chaos-toggle:active { transform: translateY(4px); box-shadow: 0 3px 0 #7a2360; }
.chaos-overlay { position: fixed; inset: 0; z-index: 280; pointer-events: none; overflow: hidden; }
.chaos-banner { position: absolute; top: 20%; left: 0; white-space: nowrap; padding: 12px 30px; color: #171019; background: #ffcf4a; font: 900 clamp(24px,5vw,62px) var(--serif); text-transform: uppercase; box-shadow: 0 8px 0 #e944a6; animation: chaos-marquee 8s linear infinite; }
.chaos-confetti { position: absolute; top: -12vh; font-size: clamp(18px,3vw,34px); animation: chaos-rain var(--fall, 3.5s) linear var(--delay, 0s) infinite; }
@keyframes chaos-rain {
  0% { transform: translate3d(0,-10vh,0) rotate(0); opacity: 0; }
  10% { opacity: 1; }
  100% { transform: translate3d(var(--drift, 50px),115vh,0) rotate(720deg); opacity: .95; }
}
body.chaos-mode { --green:#7a1fa2; --deep:#240a36; --cream:#fff1a8; --paper:#fff8df; --gold:#ff4fa3; }
body.chaos-mode .hero-image, body.chaos-mode .page-hero:before { animation: chaos-disco 4s linear infinite, hero-zoom 1.6s var(--ease-luxe) both; }
body.chaos-mode .brand-mark { animation: chaos-wiggle 1.3s ease-in-out infinite; }
body.chaos-mode .btn, body.chaos-mode .nav-cta { animation: chaos-bounce 1.2s ease-in-out infinite; }
body.chaos-mode .dish-card:nth-child(odd) { animation: chaos-wiggle 1.8s ease-in-out infinite; }
body.chaos-mode .dish-card:nth-child(even) { animation: chaos-bounce 1.4s ease-in-out infinite; }
body.chaos-mode .feature-card { animation: chaos-wiggle 2s ease-in-out infinite; }
body.chaos-mode .quote-band { animation: chaos-disco 5s linear infinite; }
body.chaos-mode .eyebrow { color: #e944a6; }
body.chaos-mode .section-wrap h2, body.chaos-mode .page-hero h1 { text-shadow: 3px 3px 0 #ffcf4a, -2px -2px 0 #e944a6; }
body.chaos-mode .chaos-toggle { background: #18a9a0; box-shadow: 0 8px 0 #075b60, 0 12px 28px #0003; }
@media (prefers-reduced-motion: reduce) {
  body.chaos-mode *, body.chaos-mode *::before, body.chaos-mode *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .chaos-confetti { display:none; }
}


/* ── PASTA CINEMATIC UNIVERSE: games, secrets and joyful nonsense ── */
@keyframes chef-bob { 0%,100%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-8px) rotate(2deg)} }
@keyframes chef-sleep { 0%,100%{transform:rotate(0)} 50%{transform:rotate(12deg)} }
@keyframes mamma-shock { 0%{transform:scale(1) rotate(0)} 12%{transform:scale(1.03) rotate(-1deg)} 24%{transform:scale(.99) rotate(1deg)} 38%{transform:scale(1.02) rotate(-.7deg)} 52%{transform:scale(1) rotate(.5deg)} 100%{transform:scale(1) rotate(0)} }
@keyframes tomato-fly { 0%{transform:translateY(20px) scale(.4) rotate(0);opacity:0} 20%{opacity:1} 100%{transform:translateY(-105vh) scale(1.3) rotate(520deg);opacity:0} }
@keyframes olive-found { 0%{transform:scale(.5) rotate(-40deg)} 65%{transform:scale(1.25) rotate(12deg)} 100%{transform:scale(1) rotate(0)} }
@keyframes game-pop { 0%{transform:scale(.6);opacity:0} 70%{transform:scale(1.12);opacity:1} 100%{transform:scale(1);opacity:1} }
@keyframes coin-glow { 0%,100%{box-shadow:0 0 0 rgba(255,207,74,0)} 50%{box-shadow:0 0 25px rgba(255,207,74,.7)} }
.secret-olive {
  position:fixed; z-index:260; border:0; background:transparent; padding:0; cursor:pointer;
  font-size:25px; filter:drop-shadow(0 3px 3px #0003); animation:olive-found 0.5s var(--ease-luxe) both;
  transition:transform .2s;
}
.secret-olive:hover { transform:scale(1.35) rotate(18deg); }
.chef-buddy {
  position:fixed; z-index:270; left:16px; bottom:16px; width:76px; height:76px;
  border:2px solid #ffcf4a; border-radius:50%; background:#fff4d0; cursor:pointer;
  font-size:43px; display:grid; place-items:center; box-shadow:0 8px 0 #9a6b36,0 12px 26px #0003;
  animation:chef-bob 2.3s ease-in-out infinite; transition:transform .2s;
}
.chef-buddy:hover { transform:scale(1.08) rotate(7deg); }
.chef-buddy.sleeping { animation:chef-sleep 3s ease-in-out infinite; }
.chef-speech {
  position:fixed; z-index:271; left:102px; bottom:26px; max-width:250px;
  background:#fff8df; color:#173b2e; border:2px solid #b78d52; padding:12px 15px;
  box-shadow:5px 5px 0 #e944a6; font-size:12px; animation:game-pop .25s ease-out both;
}
.chef-speech strong { display:block; color:#a44a7b; font-size:9px; letter-spacing:1.3px; margin-bottom:4px; }
.mamma-button {
  position:fixed; z-index:275; left:50%; top:50%; transform:translate(-50%,-50%);
  border:5px solid #ffcf4a; border-radius:18px; background:#df263d; color:#fff;
  padding:24px 30px; font:900 clamp(25px,5vw,58px) var(--serif); text-shadow:3px 3px #8b1021;
  box-shadow:0 10px 0 #8b1021,0 25px 70px #0007; cursor:pointer; animation:game-pop .35s ease-out both;
}
.mamma-button:hover { filter:brightness(1.1); }
.mamma-splatter { position:fixed; inset:0; z-index:272; pointer-events:none; animation:mamma-shock .55s ease-in-out; }
.tomato-particle { position:fixed; z-index:273; bottom:-50px; pointer-events:none; font-size:clamp(25px,5vw,58px); animation:tomato-fly var(--duration,2s) ease-out forwards; }
.pasta-game-launch {
  position:fixed; z-index:260; right:18px; bottom:78px; border:2px solid #fff1a8; border-radius:999px;
  background:#7a1fa2; color:#fff; padding:12px 16px; font:800 11px var(--sans); cursor:pointer;
  box-shadow:0 7px 0 #3e1058,0 12px 24px #0003; transition:transform .2s;
}
.pasta-game-launch:hover { transform:translateY(-3px) rotate(1deg); }
.pasta-game {
  position:fixed; z-index:290; inset:0; display:none; align-items:center; justify-content:center;
  padding:20px; background:rgba(20,8,31,.83); backdrop-filter:blur(6px);
}
.pasta-game.open { display:flex; }
.pasta-game-panel {
  width:min(520px,100%); max-height:90vh; overflow:auto; background:#fff8df; color:#173b2e;
  border:4px solid #ffcf4a; box-shadow:0 12px 0 #e944a6,0 28px 70px #0006; padding:25px; text-align:center;
}
.pasta-game-panel h2 { font:400 clamp(30px,6vw,46px) var(--serif); margin:0 0 8px; }
.pasta-game-panel p { font-size:12px; color:#6c6b5d; }
.game-close { float:right; border:0; background:transparent; font-size:28px; cursor:pointer; color:#173b2e; }
.pasta-click-target {
  display:grid; place-items:center; width:150px; height:150px; margin:20px auto; border:0; border-radius:50%;
  background:#f4cf58; box-shadow:0 3px 0 #c58b2c,0 6px 12px #0002;
  font-size:85px; cursor:pointer; transition:transform .1s; animation:coin-glow 2s infinite;
}
.pasta-click-target:active { transform:scale(.9) rotate(-10deg); }
.game-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:18px 0; }
.game-stat { background:#f4e8c7; padding:10px 5px; }
.game-stat strong { display:block; font:600 23px var(--serif); }
.game-stat span { font-size:9px; letter-spacing:.7px; }
.game-upgrade { width:100%; border:1px solid #b78d52; background:#173b2e; color:#fff; padding:12px; cursor:pointer; margin-top:8px; font-size:11px; }
.game-upgrade:disabled { opacity:.45; cursor:not-allowed; }
.secret-modal {
  position:fixed; inset:0; z-index:295; display:none; align-items:center; justify-content:center;
  background:rgba(16,43,34,.82); padding:20px;
}
.secret-modal.open { display:flex; }
.secret-card { width:min(440px,100%); padding:32px; background:#fff8df; border:3px solid #b78d52; text-align:center; box-shadow:0 12px 0 #e944a6; animation:game-pop .35s ease-out both; }
.secret-card .don { font-size:72px; display:block; animation:chef-bob 2s infinite; }
.secret-card h2 { font:400 38px var(--serif); color:#173b2e; margin:8px 0; }
.secret-card p { font-size:12px; color:#6c6b5d; }
.secret-card button { background:#173b2e; color:#fff; border:0; padding:12px 20px; cursor:pointer; }
body.mamma-mia-mode { animation:mamma-shock .55s ease-in-out; }
body.mamma-mia-mode .hero h1, body.mamma-mia-mode .page-hero h1 { color:#ffcf4a; }
.olive-counter {
  position:fixed; right:18px; top:145px; z-index:260; background:#173b2e; color:#fff8df;
  padding:9px 12px; border:1px solid #b78d52; font-size:10px; letter-spacing:.6px; box-shadow:0 5px 14px #0002;
}
.olive-counter strong { color:#ffcf4a; }
@media(max-width:720px) {
 .chef-buddy { width:62px;height:62px;font-size:35px;left:10px;bottom:10px; }
 .chef-speech { left:82px;bottom:18px;max-width:205px; }
 .pasta-game-launch { right:10px;bottom:68px; }
 .olive-counter { top:95px;right:10px; }
}
@media(prefers-reduced-motion:reduce) {
 .chef-buddy,.secret-olive,.pasta-click-target,.secret-card .don { animation:none!important; }
}


/* New simple extras: night ambience, dish picker and playful dish personalities. */
body.night-mode { background: #111b18; color: #f8efd9; }
body.night-mode .site-header, body.night-mode .footer,
body.night-mode .menu-section, body.night-mode .section-wrap:not(.hero *) {
  background-color: #17231e; color: #f8efd9;
}
body.night-mode .site-header { border-bottom-color: #3a5145; }
body.night-mode .nav a:not(.nav-cta), body.night-mode .brand { color: #f8efd9; }
body.night-mode .section-heading h2, body.night-mode .dish-top h3,
body.night-mode .menu-bottom-cta h2 { color: #f8efd9; }
body.night-mode .dish-card, body.night-mode .filter-bar,
body.night-mode .search-box, body.night-mode .menu-bottom-cta {
  background: #202f28; color: #f8efd9; border-color: #435a4b;
}
body.night-mode .dish-info p, body.night-mode .dish-info small,
body.night-mode .section-heading > p, body.night-mode .menu-helper-row p { color: #c6cbbd; }
body.night-mode .filter { color: #f8efd9; }
body.night-mode .filter.active { background: #e4bd69; color: #17231e; }
body.night-mode .chef-speech { background: #202f28; color: #f8efd9; border-color: #d6b56d; }
.menu-helper-row { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:18px 0 22px; padding:16px 18px; background:#f5edd9; border-left:4px solid #b78d52; }
.menu-helper-row p { margin:0; font-size:12px; color:#536054; }
.menu-helper-row .btn { white-space:nowrap; }
.dish-quote { margin:8px 0 0!important; padding:0; max-height:0; opacity:0; overflow:hidden; color:#a44a7b!important; font-size:11px!important; font-style:italic; transform:translateY(5px); transition:max-height .25s, opacity .25s, transform .25s, padding .25s; }
.dish-quote.quote-visible { max-height:70px; opacity:1; padding-top:5px!important; transform:translateY(0); }
.dish-card.dish-picked { animation:dish-picked-pop .65s ease; outline:3px solid #d5aa52; outline-offset:4px; }
@keyframes dish-picked-pop { 0%,100%{transform:scale(1)} 35%{transform:scale(1.035) rotate(-.5deg)} 70%{transform:scale(1.01) rotate(.4deg)} }
@media(max-width:720px) {
  .menu-helper-row { align-items:flex-start; flex-direction:column; }
  .menu-helper-row .btn { width:100%; text-align:center; }
  .chef-buddy { bottom:72px; }
  .chef-speech { bottom:80px; }
}


/* Demo seating map */
.table-picker { margin:22px 0; padding:20px; background:#f7f0df; border:1px solid #e2d3b6; }
.table-picker h3 { font:400 25px var(--serif); margin:0 0 8px; color:#173b2e; }
.table-picker-intro { font-size:12px; color:#6c6b5d; line-height:1.6; }
.room-map { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:40px 14px 44px; margin:16px 0; border:2px solid #c9b98f; border-radius:18px; background:#efe4ca; }
.room-window { position:absolute; top:8px; left:50%; transform:translateX(-50%); font-size:9px; font-weight:800; letter-spacing:1.5px; color:#4f7d80; background:#d7eeee; border:1px solid #9fc9c7; border-radius:999px; padding:5px 12px; }
.room-table { min-height:92px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:4px; border:2px solid #c3a879; border-radius:12px; background:#fff8e7; color:#173b2e; cursor:pointer; transition:transform .2s,box-shadow .2s,border-color .2s; }
.room-table span { font-size:22px; color:#a47740; }
.room-table b { font-size:12px; }
.room-table small { font-size:10px; color:#6c6b5d; }
.room-table:hover { transform:translateY(-2px); }
.room-table.selected { border-color:#1f6a4c; background:#e0f2df; box-shadow:0 0 0 3px #1f6a4c30; transform:scale(1.025); }
.room-table-large { grid-column:1 / -1; min-height:70px; }
.room-kitchen { position:absolute; bottom:9px; left:50%; transform:translateX(-50%); white-space:nowrap; font-size:9px; letter-spacing:1px; color:#fff8df; background:#173b2e; border-radius:999px; padding:6px 12px; }
.table-selection { margin:8px 0 0; font-size:11px; font-weight:700; color:#1f6a4c; }
body.night-mode .table-picker { background:#202f28; border-color:#435a4b; }
body.night-mode .table-picker h3, body.night-mode .table-picker-intro { color:#f8efd9; }
body.night-mode .room-map { background:#28372f; border-color:#526957; }
body.night-mode .room-table { background:#26372e; color:#f8efd9; border-color:#6a7d65; }
body.night-mode .room-table small { color:#c6cbbd; }
body.night-mode .room-table.selected { background:#31583f; border-color:#e4bd69; }
body.night-mode .table-selection { color:#b6dfb4; }

/* Playful guest loyalty card */
.loyalty-section { padding-top:20px; padding-bottom:80px; }
.loyalty-card { display:grid; grid-template-columns:1.05fr .95fr; gap:35px; padding:clamp(25px,5vw,54px); color:#fff8df; background:#173b2e; border:2px solid #b78d52; box-shadow:8px 8px 0 #e9d9b9; }
.loyalty-copy h2 { font:400 clamp(32px,4vw,52px) var(--serif); line-height:1.05; margin:8px 0 15px; }
.loyalty-copy h2 em { color:#f0ce7d; }
.loyalty-copy p:not(.eyebrow) { max-width:400px; color:#d4dfd2; font-size:13px; line-height:1.7; }
.loyalty-badge { display:inline-block; margin-top:12px; padding:10px 14px; color:#173b2e; background:#f0ce7d; border:2px dashed #fff2c6; border-radius:6px; font-weight:800; font-size:12px; transform:rotate(-2deg); }
.loyalty-progress-wrap { align-self:center; padding:22px; background:#ffffff12; border:1px solid #ffffff30; }
.loyalty-stats { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; font-size:12px; }
.loyalty-stats strong { font:400 36px var(--serif); color:#f0ce7d; }
.loyalty-track { height:12px; overflow:hidden; background:#ffffff25; border-radius:999px; }
.loyalty-track span { display:block; height:100%; width:0; background:#f0ce7d; border-radius:999px; transition:width .35s ease; }
.loyalty-progress-wrap p { min-height:36px; color:#e0e6d9; font-size:11px; line-height:1.5; }
.btn-light { background:#f0ce7d; color:#173b2e; border:0; }
.loyalty-reset { margin-left:12px; background:transparent; border:0; color:#d4dfd2; text-decoration:underline; cursor:pointer; font-size:10px; }
body.night-mode .loyalty-section { background:#17231e; }
@media(max-width:720px) {
  .loyalty-card { grid-template-columns:1fr; gap:22px; }
  .loyalty-progress-wrap { padding:17px; }
  .room-map { gap:8px; padding-left:9px; padding-right:9px; }
  .room-table b { font-size:11px; }
}


/* Light/dark switch lives in the main navigation, not as a floating button. */
.theme-nav-toggle {
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  flex-shrink:0; padding:10px 12px; border:1px solid #cbb887; border-radius:999px;
  background:#fff8df; color:#173b2e; cursor:pointer; font:800 10px var(--sans);
  white-space:nowrap; transition:background .2s, color .2s, transform .2s;
}
.theme-nav-toggle:hover { transform:translateY(-1px); }
.theme-nav-toggle .theme-icon { font-size:15px; line-height:1; }
body.night-mode .theme-nav-toggle { background:#27382f; color:#f8efd9; border-color:#63745f; }
@media(max-width:980px) {
  .theme-nav-toggle { margin:8px 0 0; align-self:flex-start; }
}

/* Reservation floor plan — clean, editorial, based on the supplied sketch */
.sketch-map{position:relative;min-height:490px;background:#f0e9dc;border:1px solid #d6cdbd;padding:20px;border-radius:2px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,1fr);gap:14px;isolation:isolate}
.sketch-map:before{content:"";position:absolute;left:8%;right:8%;top:12%;bottom:12%;border:1px solid #d9cfbe;pointer-events:none;z-index:-1}
.map-window{position:absolute;top:8px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:2px;color:#77776d}
.room-table{background:#fbf9f4;color:#173b2e;border:2px solid #173b2e;border-radius:1px;min-height:74px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;padding:7px;transition:background .18s,border-color .18s,transform .18s}
.room-table b{font-family:Georgia,serif;font-size:21px;font-weight:400}
.room-table small{font-size:10px;color:#77776d}
.room-table:hover{transform:translateY(-2px);border-color:#b78d52}
.room-table.selected{background:#e8d5ad;border-color:#9c7134;box-shadow:inset 0 0 0 2px #f8f0df}
.table-1{grid-column:2;grid-row:1}.table-2{grid-column:4;grid-row:1}.table-3{grid-column:1;grid-row:2}.table-4{grid-column:1;grid-row:3}.table-5{grid-column:4;grid-row:2}.table-6{grid-column:4;grid-row:3}.table-7{grid-column:1 / span 2;grid-row:4;max-width:150px;justify-self:center;width:100%}
.table-center{grid-column:2 / span 2;grid-row:2 / span 2;justify-self:center;align-self:center;width:150px;height:150px;border-radius:50%;background:#f9f5ec}
.map-kitchen{grid-column:3 / span 2;grid-row:4;align-self:end;justify-self:end;color:#77776d;font-size:9px;letter-spacing:2px;border-top:1px solid #c9bdab;padding-top:8px}
.map-legend{display:flex;flex-wrap:wrap;gap:15px;margin:12px 0;font-size:11px;color:#66685f}
.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{display:inline-block;width:10px;height:10px;border:1px solid #173b2e}.legend-free{background:#fbf9f4}.legend-selected{background:#e8d5ad;border-color:#9c7134!important}.legend-pending{background:#ded8cc}
.hours-note{font-size:12px;color:#66685f;background:#f0e9dc;padding:12px 14px;border-left:3px solid #b78d52;margin:12px 0}
.closed-note{color:#a23a2b;font-size:12px;font-weight:600}
@media(max-width:600px){.sketch-map{min-height:410px;gap:8px;padding:14px}.room-table{min-height:62px;padding:4px}.room-table b{font-size:18px}.room-table small{font-size:9px}.table-center{width:110px;height:110px}.table-7{max-width:120px}.map-legend{gap:9px;font-size:10px}}

/* Windows on both the top and left side of the dining room plan */
.map-window-top{top:8px;left:50%;transform:translateX(-50%)}
.map-window-left{top:50%;left:7px;transform:translateY(-50%);writing-mode:vertical-rl}
.sketch-map:after{content:"";position:absolute;left:9px;top:17%;bottom:17%;width:3px;background:#b7c8bd;opacity:.9;z-index:-1}
.table-1 small,.table-2 small,.table-3 small,.table-4 small,.table-5 small,.table-6 small,.table-7 small,.table-center small{font-size:9px}

/* Final table layout: four tables on the right, three on the left */
.sketch-map{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(72px,1fr))}
.table-1{grid-column:4;grid-row:1}
.table-2{grid-column:4;grid-row:2}
.table-3{grid-column:4;grid-row:3}
.table-4{grid-column:4;grid-row:4}
.table-5{grid-column:1;grid-row:1}
.table-6{grid-column:1;grid-row:2}
.table-7{grid-column:1;grid-row:4;max-width:none;justify-self:stretch;width:auto}
.table-center{grid-column:2 / span 2;grid-row:2 / span 2}
.map-kitchen{grid-column:2 / span 2;grid-row:4;justify-self:center;align-self:end}
@media(max-width:600px){
 .sketch-map{grid-template-rows:repeat(4,minmax(62px,1fr))}
 .table-center{width:100px;height:100px}
}

/* — Oliviarnia photography: consistent, intentional placement — */
.brand-logo {
  display:block;
  width:46px;
  height:46px;
  flex:0 0 46px;
  object-fit:cover;
  object-position:center;
  border:0!important;
  border-radius:3px;
  padding:0;
  background:var(--paper);
}
.hero-image {
  background-image:url('assets/oliviarnia-lokal-zewnatrz.jpg')!important;
  background-size:cover;
  background-position:center 25%;
}
.hero-image:after { background:rgba(13,31,23,.43); }

.feature-menu {
  background-image:url('assets/oliviarnia-pizza-burrata.jpg')!important;
  background-position:center 54%;
}
.feature-story {
  background-image:url('assets/oliviarnia-stol-branding.jpg')!important;
  background-position:center 58%;
}
.feature-gallery {
  background-image:url('assets/oliviarnia-grzane-napoje.jpg')!important;
  background-position:center 52%;
}
.feature-card:before { background:rgba(9,25,18,.34); }
.feature-card:hover:before { background:rgba(9,25,18,.48); }

.visit-photo {
  background-image:url('assets/oliviarnia-danie-podpisowe.jpg')!important;
  background-size:cover;
  background-position:center 56%;
  border-radius:2px;
}

.page-hero:before {
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center 40%;
}
.page-hero-shade { background:rgba(13,31,23,.46); }
.menu-page-hero:before {
  background-image:url('assets/oliviarnia-pizza-burrata.jpg')!important;
  background-position:center 56%;
}
.story-hero:before {
  background-image:url('assets/oliviarnia-lokal-zewnatrz.jpg')!important;
  background-position:center 24%;
}
.gallery-hero:before {
  background-image:url('assets/oliviarnia-grzane-napoje.jpg')!important;
  background-position:center 53%;
}
.reservation-hero:before {
  background-image:url('assets/oliviarnia-stol-branding.jpg')!important;
  background-position:center 61%;
}
.order-hero:before {
  background-image:url('assets/oliviarnia-danie-podpisowe.jpg')!important;
  background-position:center 55%;
}
.story-image {
  background-image:url('assets/oliviarnia-herbata-jesienna.jpg')!important;
  background-size:cover;
  background-position:center 55%;
  border-radius:2px;
}

/* A balanced gallery grid: photos retain their visual subject and aren't used as posters. */
.gallery-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:235px;
  gap:16px;
}
.gallery-tile {
  border-radius:2px;
  background:#e6dfd2;
}
.gallery-tile img { width:100%;height:100%;object-fit:cover;display:block; }
.tile-tall,.tile-wide { grid-column:auto;grid-row:auto; }
.gallery-facade img { object-position:center 43%; }
.gallery-pizza img { object-position:center 54%; }
.gallery-table img { object-position:center 57%; }
.gallery-calzone img { object-position:center 53%; }
.gallery-steam img { object-position:center 55%; }
.gallery-tea img { object-position:center 52%; }

@media(max-width:1000px) {
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:220px; }
}
@media(max-width:720px) {
  .brand-logo { width:40px;height:40px;flex-basis:40px; }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:190px;gap:10px; }
}


/* Rezerwacja — dokładny układ sali według szkicu */
.sketch-map {
  position:relative;
  min-height:560px;
  padding:46px 18px 24px;
  display:grid;
  grid-template-columns:minmax(70px,1fr) minmax(70px,.9fr) minmax(68px,1fr) minmax(68px,1fr) minmax(70px,1fr);
  grid-template-rows:repeat(4,minmax(92px,1fr));
  gap:15px 12px;
  border:1px solid #bdcbb8;
  border-radius:4px;
  background:#e5ebdf;
  isolation:isolate;
  overflow:hidden;
}
.sketch-map:before {
  content:"";
  position:absolute;
  left:7%;
  right:5%;
  top:10%;
  bottom:7%;
  border:1px solid #c9d4c3;
  pointer-events:none;
  z-index:0;
}
.sketch-map:after {
  content:"";
  position:absolute;
  left:2.1%;
  top:15%;
  bottom:8%;
  width:4px;
  border-left:1px solid #9cab93;
  border-right:1px solid #9cab93;
  pointer-events:none;
  z-index:0;
}
.map-window {
  z-index:0;
  font-size:8px;
  line-height:1;
  color:#66785e;
  letter-spacing:2px;
  text-align:center;
  pointer-events:none;
}
.map-window-top {
  position:absolute;
  top:5%;
  left:15%;
  right:4%;
  width:auto;
  height:20px;
  transform:none;
  border-top:2px solid #a4b39b;
  border-bottom:2px solid #a4b39b;
  display:flex;
  justify-content:center;
  align-items:center;
  background:transparent;
}
.map-window-left {
  position:absolute;
  top:17%;
  bottom:8%;
  left:1%;
  width:22px;
  height:auto;
  transform:none;
  writing-mode:vertical-rl;
  display:flex;
  justify-content:center;
  align-items:center;
  border-left:2px solid #a4b39b;
  border-right:2px solid #a4b39b;
  background:transparent;
}
.room-table {
  position:relative;
  z-index:1;
  min-width:0;
  min-height:88px;
  padding:7px 4px;
  gap:5px;
  border:2px solid #435840;
  border-radius:2px;
  background:#fbf9f2;
  color:#233c2a;
  box-shadow:0 2px 0 rgba(31,55,34,.05);
  transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;
}
.room-table b {
  font-family:Georgia,serif;
  font-size:24px;
  line-height:1;
  font-weight:400;
  color:#233c2a;
}
.room-table small {
  font-size:9px;
  line-height:1.25;
  color:#687461;
  text-align:center;
}
.room-table:hover {
  transform:translateY(-2px);
  border-color:#a27e38;
}
.room-table.selected {
  background:#e4d2a4;
  border-color:#99752f;
  box-shadow:inset 0 0 0 2px #fbf5e8,0 0 0 2px rgba(153,117,47,.18);
  transform:none;
}
.table-1 { grid-column:5;grid-row:1; }
.table-2 { grid-column:5;grid-row:2; }
.table-3 { grid-column:5;grid-row:3; }
.table-4 { grid-column:5;grid-row:4; }
.table-5 { grid-column:2;grid-row:1; }
.table-6 { grid-column:1;grid-row:2; }
.table-7 { grid-column:1;grid-row:3; }
.table-8 { grid-column:1;grid-row:4; }
.table-center {
  grid-column:3 / span 2;
  grid-row:3 / span 2;
  justify-self:center;
  align-self:center;
  width:150px;
  height:150px;
  min-height:150px;
  border-radius:50%;
  background:#f8f6ef;
  border-width:2px;
}
.table-center.selected { background:#e4d2a4; }
.map-legend {
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin:12px 0;
  color:#57644f;
  font-size:11px;
}
.map-legend span { display:flex;align-items:center;gap:6px; }
.map-legend i {
  display:inline-block;
  width:11px;
  height:11px;
  border:1px solid #435840;
  border-radius:1px;
}
.legend-free { background:#fbf9f2; }
.legend-selected { background:#e4d2a4;border-color:#99752f!important; }
.legend-pending { background:#d5ddd0;border-color:#9cab93!important; }
.table-selection { color:#364b33;font-size:12px;margin:8px 0 0; }
.hours-note { background:#e5ebdf;border-left-color:#8c9f7b;color:#475744; }
body.night-mode .sketch-map { background:#263b2d;border-color:#526956; }
body.night-mode .sketch-map:before { border-color:#405743; }
body.night-mode .sketch-map:after { border-color:#718a70; }
body.night-mode .map-window,
body.night-mode .map-window-top,
body.night-mode .map-window-left { color:#b9c9ad;border-color:#718a70; }
body.night-mode .room-table { background:#f2efe4;color:#233c2a;border-color:#667e61; }
body.night-mode .room-table b { color:#233c2a; }
body.night-mode .room-table small { color:#66745e; }
body.night-mode .room-table.selected { background:#e4d2a4;border-color:#bd9a54; }
@media(max-width:720px) {
  .sketch-map {
    min-height:450px;
    padding:37px 12px 15px;
    grid-template-columns:minmax(43px,1fr) minmax(42px,.9fr) minmax(43px,1fr) minmax(43px,1fr) minmax(43px,1fr);
    grid-template-rows:repeat(4,minmax(78px,1fr));
    gap:10px 6px;
  }
  .room-table { min-height:68px;padding:5px 2px; }
  .room-table b { font-size:20px; }
  .room-table small { font-size:8px; }
  .table-center { width:112px;height:112px;min-height:112px; }
  .map-window-top { top:4%;left:13%;right:3%;height:16px;font-size:7px; }
  .map-window-left { top:15%;bottom:6%;width:16px;font-size:7px; }
  .map-legend { gap:8px;font-size:10px; }
}


/* Final photo and logo tuning */
.brand-logo {
  width:48px;
  height:48px;
  flex:0 0 48px;
  border-radius:50%!important;
  object-fit:contain;
  object-position:center;
  padding:0;
  background:transparent;
  box-shadow:0 0 0 1px rgba(183,141,82,.28);
}
.hero-image {
  background-image:url('assets/oliviarnia-lokal-zewnatrz.jpg')!important;
  background-size:cover;
  background-position:center 18%;
}
.hero-image:after { background:rgba(13,31,23,.38); }

/* Each card gets an image that matches its purpose, avoiding repeated storefront shots. */
.feature-menu {
  background-image:url('assets/oliviarnia-pizza-burrata.jpg')!important;
  background-position:center 52%;
}
.feature-story {
  background-image:url('assets/oliviarnia-stol-branding.jpg')!important;
  background-position:center 55%;
}
.feature-gallery {
  background-image:url('assets/oliviarnia-grzane-napoje.jpg')!important;
  background-position:center 52%;
}
.visit-photo {
  background-image:url('assets/oliviarnia-danie-podpisowe.jpg')!important;
  background-position:center 55%;
  background-size:cover;
}

/* Wide page headers use appropriately framed real restaurant photos. */
.page-hero:before { background-size:cover;background-repeat:no-repeat; }
.menu-page-hero:before {
  background-image:url('assets/oliviarnia-pizza-burrata.jpg')!important;
  background-position:center 51%;
}
.story-hero:before {
  background-image:url('assets/oliviarnia-stol-branding.jpg')!important;
  background-position:center 55%;
}
.gallery-hero:before {
  background-image:url('assets/oliviarnia-grzane-napoje.jpg')!important;
  background-position:center 50%;
}
.reservation-hero:before {
  background-image:url('assets/oliviarnia-stol-branding.jpg')!important;
  background-position:center 60%;
}
.order-hero:before {
  background-image:url('assets/oliviarnia-pizza-burrata.jpg')!important;
  background-position:center 50%;
}
.story-image {
  background-image:url('assets/oliviarnia-lokal-zewnatrz.jpg')!important;
  background-size:cover;
  background-position:center 28%;
  border-radius: 24px 24px 72px 24px;
  overflow: hidden;
  border: 1px solid rgba(190, 145, 75, 0.28);
  box-shadow: 0 22px 55px rgba(25, 47, 37, 0.16);
}

/* Photos display without extra CSS filters; sharpening is baked into the local source assets. */
.gallery-tile img,
.dish-card img { image-rendering:auto; filter:none; }
.gallery-tile img { object-fit:cover; object-position:center; }
@media(max-width:720px) {
  .brand-logo { width:42px;height:42px;flex-basis:42px; }
}


/* Manager-approved site revision: menu-first, no online ordering or booking system */
.menu-intro { padding-top:78px;padding-bottom:42px;max-width:1040px; }
.menu-intro h2 { margin:12px 0 16px;font-size:clamp(2.1rem,5vw,4.2rem);line-height:1.02; }
.menu-lead { max-width:590px;color:var(--muted,#6d7468);line-height:1.7; }
.menu-jump { display:flex;flex-wrap:wrap;gap:12px;margin-top:28px; }
.menu-jump a { display:flex;align-items:center;justify-content:space-between;gap:36px;min-width:220px;padding:16px 18px;border:1px solid var(--line,#d7d7c8);color:var(--ink,#263626);text-decoration:none;background:rgba(255,255,255,.28); }
.menu-jump a span { color:#8b9a6d;font-size:.75rem;letter-spacing:.1em; }
.menu-category { padding-top:32px;padding-bottom:64px;scroll-margin-top:100px; }
.category-heading { display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:28px;border-bottom:1px solid var(--line,#d7d7c8);padding-bottom:18px; }
.category-heading h2 { margin:5px 0 0;font-size:clamp(2rem,4vw,3.2rem); }
.category-heading>p { max-width:340px;color:var(--muted,#6d7468);line-height:1.6;margin-bottom:5px; }
.menu-dish-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px; }
.menu-dish { display:flex;align-items:center;gap:17px;min-width:0;padding:20px 0;border-bottom:1px solid var(--line,#deded2); }
.menu-dish-featured { align-items:flex-start; }
.dish-photo { width:112px;height:112px;flex:0 0 112px;object-fit:cover;border-radius:2px; }
.dish-copy { min-width:0;flex:1; }
.dish-title-row { display:flex;align-items:baseline;justify-content:space-between;gap:12px; }
.dish-title-row h3 { margin:0;font-family:Georgia,'Times New Roman',serif;font-size:1.15rem;font-weight:500;line-height:1.3;color:var(--ink,#263626); }
.dish-price { white-space:nowrap;color:#71814f;font-weight:600;font-size:.95rem;font-variant-numeric:tabular-nums; }
.dish-copy p { margin:8px 0 0;color:var(--muted,#707568);font-size:.9rem;line-height:1.55; }
.menu-note-band { background:#e8ecdf;color:#273c2b;padding:56px max(24px,calc((100vw - 1040px)/2)); }
.menu-note-band>div { max-width:660px; }
.menu-note-band h2 { font-size:clamp(1.8rem,4vw,3rem);line-height:1.08;margin:10px 0 14px; }
.menu-note-band p { line-height:1.7; }
.site-footer { background:#202e23;color:#f4f0e5;padding:44px max(24px,calc((100vw - 1180px)/2)) 18px; }
.footer-main { display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;gap:28px;padding-bottom:32px; }
.footer-main p { color:#d4d8ca;line-height:1.6;margin:8px 0; }
.footer-brand { color:#f4f0e5!important; }
.footer-contact { display:flex;flex-direction:column;gap:9px;color:#d4d8ca;font-size:.88rem;line-height:1.5; }
.footer-contact a { color:#f4f0e5;text-decoration:none; }
.footer-bottom { display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid rgba(255,255,255,.2);padding-top:18px;color:#c4cbbd;font-size:.78rem; }
.footer-bottom div { display:flex;flex-wrap:wrap;gap:16px; }
.footer-bottom a { color:#e2e5da;text-decoration:none; }
.footer-bottom a:hover { text-decoration:underline; }
.contact-landing { min-height:55vh;padding-top:100px;padding-bottom:100px; }
.contact-landing h1 { font-size:clamp(2.4rem,6vw,4.5rem);line-height:1.05;margin:12px 0; }
.contact-landing>p { max-width:620px;line-height:1.7; }
.btn-dark { display:inline-flex;background:#263b2b;color:#fffaf0;padding:14px 22px;text-decoration:none;margin:16px 0;border:1px solid #263b2b; }
@media(max-width:760px) {
  .menu-intro { padding-top:48px;padding-bottom:28px; }
  .menu-category { padding-top:22px;padding-bottom:40px; }
  .category-heading { display:block; }
  .category-heading>p { margin-top:12px; }
  .menu-dish-grid { grid-template-columns:1fr;gap:0; }
  .menu-dish { gap:13px;padding:17px 0; }
  .dish-photo { width:88px;height:88px;flex-basis:88px; }
  .dish-title-row { align-items:flex-start;gap:8px; }
  .dish-title-row h3 { font-size:1.05rem; }
  .dish-price { font-size:.88rem; }
  .dish-copy p { font-size:.86rem; }
  .menu-jump a { flex:1;min-width:0; }
  .menu-note-band { padding:38px 22px; }
  .footer-main { grid-template-columns:1fr;gap:18px; }
  .footer-bottom { display:block; }
  .footer-bottom div { margin-top:14px;gap:12px; }
}

/* Refined menu filters, seasonal editor and food surprise */
.menu-filter-wrap{max-width:1080px;margin:34px auto 8px;padding:0 24px}
.filter-kicker{font-size:.68rem;letter-spacing:.18em;color:#7a835f;font-weight:700;margin:0 0 13px}
.menu-filters{display:flex;flex-wrap:wrap;gap:9px}
.menu-filter{appearance:none;border:1px solid #d8dccf;background:#fbfaf5;color:#344331;border-radius:999px;padding:10px 16px;font:inherit;font-size:.86rem;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.menu-filter:hover,.menu-filter.active{background:#293d2d;color:#fffaf0;border-color:#293d2d}
.menu-surprise{margin-top:20px;padding:17px 20px;border:1px solid #e0dfd2;background:linear-gradient(110deg,#f6f3e9,#fbfaf6);display:flex;justify-content:space-between;align-items:center;gap:16px;border-radius:5px}
.menu-surprise>div{display:flex;align-items:center;gap:14px}.surprise-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e8ecdf;font-size:1.55rem}
.menu-surprise strong{font-family:Georgia,serif;font-size:1.1rem;font-weight:500;color:#293d2d}.menu-surprise p{margin:4px 0 0;font-size:.85rem;color:#737769}
#surpriseDish{border:0;background:#b1b982;color:#243527;padding:12px 17px;font:inherit;font-size:.85rem;cursor:pointer;white-space:nowrap;border-radius:2px}#surpriseDish:hover{background:#c3c99b}
.filter-section.is-filter-hidden{display:none!important}
.menu-dish-grid{column-gap:34px;row-gap:0}
.menu-dish{padding:22px 0;align-items:center}
.dish-photo{width:132px;height:112px;flex:0 0 132px;object-fit:cover;border-radius:3px;box-shadow:0 5px 16px rgba(35,43,29,.09)}
.menu-dish-featured{gap:18px}
.seasonal-section{padding-top:22px;padding-bottom:52px}
.seasonal-card{position:relative;overflow:hidden;padding:clamp(26px,5vw,54px);background:#263b2b;color:#f5f1e5;border:1px solid #b9c09c}
.seasonal-card:after{content:'✳';position:absolute;right:4%;top:7%;font-size:clamp(6rem,17vw,13rem);line-height:1;color:rgba(231,235,211,.07);pointer-events:none}
.seasonal-overline{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(255,255,255,.22);padding-bottom:15px;margin-bottom:28px;font-size:.65rem;letter-spacing:.18em;color:#d6dcb8}
.seasonal-card .eyebrow{color:#d6dcb8}.seasonal-card h2{font:500 clamp(2.4rem,6vw,4.8rem)/1 Georgia,serif;margin:12px 0}.seasonal-card h2 em{color:#c5cc9b;font-weight:400}
.seasonal-lead{font:italic 1.25rem Georgia,serif;color:#e5e8d7}.seasonal-copy{max-width:560px;line-height:1.7;color:#d9dfd1}
.seasonal-placeholder{display:flex;gap:16px;align-items:center;margin-top:28px;padding:18px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);max-width:580px}
.seasonal-leaf{font-size:2rem;color:#d6dcb8}.seasonal-placeholder strong{font-family:Georgia,serif;font-weight:500;font-size:1.15rem}.seasonal-placeholder p{margin:5px 0 0;color:#d9dfd1;font-size:.87rem}
.seasonal-admin-note{margin-top:22px;font-size:.75rem;color:#c8d0bd;line-height:1.6}.seasonal-admin-note code{color:#fff}
.coming-soon-card{padding:36px 24px;text-align:center;border:1px solid #e1e1d5;background:#f9f8f2;max-width:720px;margin:auto}
.coming-soon-card>span{font-size:2rem}.coming-soon-card .eyebrow{margin-top:14px}.coming-soon-card h2{font:500 clamp(2rem,4vw,3rem) Georgia,serif;margin:8px 0 12px;color:#293d2d}.coming-soon-card>p:last-child{max-width:500px;margin:0 auto;color:#727668;line-height:1.7}
.surprise-toast{position:fixed;z-index:999;left:50%;bottom:26px;transform:translateX(-50%);width:min(92vw,440px);padding:17px 20px;background:#263b2b;color:#fffaf0;box-shadow:0 10px 35px #0002;border-left:4px solid #c5cc9b;border-radius:4px}
.surprise-toast[hidden]{display:none}.surprise-toast strong{display:block;font:500 1.1rem Georgia,serif;margin-bottom:5px}.surprise-toast span{color:#d6dcb8}
@media(max-width:760px){.menu-filter-wrap{padding:0 20px;margin-top:25px}.menu-filters{gap:7px}.menu-filter{padding:9px 12px;font-size:.8rem}.menu-surprise{align-items:flex-start;flex-direction:column}.menu-surprise>button{width:100%}.dish-photo{width:94px;height:94px;flex-basis:94px}.menu-dish{gap:13px}.seasonal-overline{font-size:.55rem}.seasonal-card{padding:25px 20px}.seasonal-placeholder{align-items:flex-start}}

/* Map and legal pages */
.map-layout{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.5fr);gap:clamp(24px,5vw,64px);align-items:stretch;padding-top:28px;padding-bottom:70px}
.map-info{padding:clamp(22px,3vw,38px);background:#f6f5ed;border:1px solid #e1e1d5}
.map-info h2{font:500 clamp(2rem,4vw,3rem)/1.08 Georgia,serif;color:#293d2d;margin:12px 0 20px}
.map-address{font:1.1rem/1.65 Georgia,serif;color:#293d2d}
.map-info p{line-height:1.7}.map-info ul{padding-left:20px;color:#686f61;line-height:1.9;margin-bottom:25px}
.map-info a:not(.btn){color:#344b34}.map-frame{min-height:470px;border:1px solid #d8dccf;box-shadow:0 14px 38px rgba(34,48,33,.09);background:#efeee5}
.map-frame iframe{display:block;width:100%;height:100%;min-height:470px;border:0;filter:saturate(.82) contrast(.98)}
.legal-document{max-width:900px;padding-top:30px;padding-bottom:75px;color:#53594e;line-height:1.8}
.legal-document h2{font:500 clamp(2rem,4vw,3rem)/1.12 Georgia,serif;color:#293d2d;margin:15px 0 22px}
.legal-document h3{font:500 1.35rem Georgia,serif;color:#293d2d;margin:30px 0 8px}
.legal-document p{max-width:78ch}.legal-document a{color:#344b34;text-underline-offset:4px}
.legal-document .legal-note{margin-top:32px;padding:16px 18px;background:#f5f4eb;border-left:3px solid #b1b982;font-size:.85rem;line-height:1.7}
.legal-document .legal-bullet{padding-left:12px;margin:7px 0}
@media(max-width:800px){.map-layout{grid-template-columns:1fr;padding-top:18px}.map-frame,.map-frame iframe{min-height:350px}.map-info{order:1}.map-frame{order:2}.legal-document{padding-top:18px}.site-header .nav{max-height:75vh;overflow:auto}}

/* Oliviarnia menu refinement: restrained food photography, active filters, seasonal feature */
.menu-filter-panel{margin:28px auto 0;padding:24px 0 0;border-top:1px solid #e2e2d7}
.menu-filters{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 20px}
.menu-filter{appearance:none;border:1px solid #d9ddcf;background:#fbfaf5;color:#354431;border-radius:999px;padding:10px 15px;font:inherit;font-size:.84rem;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.menu-filter:hover,.menu-filter.active{background:#2b402f;color:#fffdf5;border-color:#2b402f}
.menu-surprise{display:flex;align-items:center;gap:15px;padding:16px 18px;background:#f4f3e9;border:1px solid #e2e2d5;border-radius:4px}
.surprise-plate{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;background:#e6e9d9;border-radius:50%;font-size:1.5rem}
.surprise-copy{flex:1}.surprise-copy strong{font:500 1.12rem Georgia,serif;color:#2b402f}.surprise-copy p{margin:4px 0 0;font-size:.84rem;color:#74796c}
#surpriseDish{flex-shrink:0;border:0;background:#b8c18c;color:#263829;padding:11px 16px;border-radius:3px;font:inherit;font-size:.84rem;cursor:pointer}#surpriseDish:hover{background:#cbd2a8}
.filter-section.is-filter-hidden{display:none!important}
.menu-dish-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(22px,4vw,54px);row-gap:0}
.menu-dish{min-width:0;padding:19px 0;border-bottom:1px solid #e7e5db;align-items:center}
.menu-dish-featured{display:flex;gap:16px}
.dish-photo{width:112px;height:102px;flex:0 0 112px;object-fit:cover;border-radius:3px;box-shadow:0 4px 14px rgba(32,43,30,.08)}
.dish-copy{min-width:0;flex:1}.dish-title-row{gap:10px}.dish-title-row h3{font-size:1.02rem;line-height:1.3}.dish-price{white-space:nowrap;font-variant-numeric:tabular-nums}
.seasonal-menu-card{padding:clamp(24px,5vw,54px);background:#293e2e;color:#f5f1e6;border:1px solid #c4caa8;position:relative;overflow:hidden}
.seasonal-topline{display:flex;justify-content:space-between;gap:14px;padding-bottom:15px;margin-bottom:28px;border-bottom:1px solid #ffffff36;color:#d6ddbc;font-size:.62rem;letter-spacing:.16em}
.seasonal-menu-card .eyebrow{color:#d5dcba}.seasonal-menu-card h2{font:500 clamp(2.5rem,6vw,4.6rem)/1 Georgia,serif;margin:12px 0;color:#fffaf0}.seasonal-menu-card h2 em{color:#c8d09e;font-weight:400}
.seasonal-tagline{font:italic 1.2rem Georgia,serif;color:#e2e6d4}.seasonal-description{max-width:580px;line-height:1.7;color:#d5ddcf}
.seasonal-editor-hint{display:flex;gap:15px;align-items:center;margin:24px 0;padding:16px;background:#ffffff0d;border:1px solid #ffffff2a;max-width:650px}
.seasonal-editor-hint>span{font-size:1.9rem;color:#d1d9aa}.seasonal-editor-hint strong{font:500 1.05rem Georgia,serif}.seasonal-editor-hint p{margin:5px 0 0;font-size:.84rem;color:#d5ddcf}
.seasonal-dishes{max-width:760px;border-top:1px solid #ffffff36}.seasonal-placeholder{display:grid;grid-template-columns:35px 1fr auto;gap:14px;align-items:center;padding:17px 0;border-bottom:1px solid #ffffff36}
.seasonal-placeholder>span{color:#cbd3a6;font-size:.8rem}.seasonal-placeholder strong{font:500 1.08rem Georgia,serif}.seasonal-placeholder p{margin:4px 0 0;font-size:.84rem;color:#d5ddcf}.seasonal-placeholder b{font-weight:400;color:#d6ddbc;white-space:nowrap}
.seasonal-admin-note{margin-top:20px;font-size:.72rem;line-height:1.65;color:#c8d0bd}.seasonal-admin-note code{color:#fffaf0}
.coming-menu-card{padding:38px 22px;text-align:center;background:#f8f7f0;border:1px solid #e1e1d5;max-width:720px;margin:0 auto}
.coming-menu-card>span{font-size:2rem}.coming-menu-card .eyebrow{margin-top:12px}.coming-menu-card h2{font:500 clamp(2rem,4vw,3rem) Georgia,serif;color:#293e2e;margin:10px 0}.coming-menu-card>p:last-child{max-width:490px;margin:0 auto;color:#73796b;line-height:1.7}
.surprise-toast{position:fixed;z-index:999;left:50%;bottom:22px;transform:translateX(-50%);width:min(92vw,440px);padding:17px 20px;background:#293e2e;color:#fffaf0;box-shadow:0 12px 36px #0002;border-left:4px solid #c8d09e;border-radius:4px}
.surprise-toast[hidden]{display:none}.surprise-toast strong{display:block;font:500 1.1rem Georgia,serif;margin-bottom:5px}.surprise-toast span{color:#d6ddbc}
@media(max-width:760px){.menu-dish-grid{grid-template-columns:1fr}.menu-dish{padding:16px 0}.dish-photo{width:90px;height:88px;flex-basis:90px}.menu-filter{padding:9px 12px;font-size:.8rem}.menu-surprise{display:grid;grid-template-columns:44px 1fr;gap:12px}.surprise-plate{width:44px;height:44px;flex-basis:44px}.surprise-copy p{line-height:1.5}.menu-surprise #surpriseDish{grid-column:1/-1;width:100%}.seasonal-topline{font-size:.53rem}.seasonal-placeholder{grid-template-columns:24px 1fr auto;gap:10px}.seasonal-placeholder strong{font-size:.98rem}}

/* Menu reset: clean typography-first list, no square food photos */
.menu-filter-panel{margin:24px auto 0;padding:22px 0 0;border-top:1px solid #e4e2d8}
.menu-filters{gap:7px;margin:13px 0 18px}
.menu-filter{border-radius:2px;padding:9px 14px;background:transparent;border-color:#d9dbd0;font-size:.82rem}
.menu-filter:hover,.menu-filter.active{background:#2b402f;color:#fffdf5;border-color:#2b402f}
.menu-surprise{display:flex;gap:14px;align-items:center;padding:14px 0;background:transparent;border:0;border-top:1px solid #e4e2d8;border-bottom:1px solid #e4e2d8;border-radius:0}
.surprise-plate{width:34px;height:34px;flex-basis:34px;border-radius:50%;font-size:1.05rem;background:#edf0e4;color:#41543b}
.surprise-copy strong{font-size:1.02rem}.surprise-copy p{font-size:.82rem}
#surpriseDish{padding:10px 14px;border-radius:2px;background:#e8eadc;border:1px solid #d8ddc7}
.menu-dish-grid{grid-template-columns:1fr;column-gap:0}
.menu-dish,.menu-dish-featured{display:block;padding:17px 0;border-bottom:1px solid #e5e3da}
.dish-photo{display:none!important}
.dish-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.dish-title-row h3{font-size:1.05rem;letter-spacing:.005em}
.menu-dish .dish-copy>p{max-width:680px;font-size:.88rem;line-height:1.6;color:#77796d;margin-top:5px}
.category-heading{margin-bottom:14px}
.seasonal-menu-card{border-radius:0;box-shadow:none}
.seasonal-editor-hint{border-radius:0}
.coming-menu-card{border-radius:0;box-shadow:none}
@media(max-width:760px){
 .menu-filter-panel{padding-top:18px}
 .menu-filters{display:flex;gap:6px}
 .menu-filter{padding:8px 10px;font-size:.77rem}
 .menu-surprise{display:grid;grid-template-columns:34px 1fr;gap:10px}
 .surprise-plate{grid-column:1;grid-row:1}
 .surprise-copy{grid-column:2;grid-row:1}
 .menu-surprise #surpriseDish{grid-column:1/-1;width:100%}
 .menu-dish,.menu-dish-featured{padding:15px 0}
 .dish-title-row h3{font-size:1rem}
}


/* OLIVIARNIA FUTURE LUX — cinematic image treatment */
:root {
  --neo-glow: rgba(214,178,124,.34);
  --motion-ease: cubic-bezier(.2,.75,.25,1);
}
img:not(.brand-logo) {
  transform: translateZ(0);
  backface-visibility: hidden;
}
.intro img, .visit-photo img, .gallery-tile img, .story-intro img,
.feature-card img, .page-hero img, .dish-image img, .photo-frame img,
img.editorial-photo {
  transition: transform 1.1s var(--motion-ease), filter .8s ease;
  will-change: transform;
}
.intro, .visit-photo, .gallery-tile, .story-intro, .feature-card,
.photo-frame, .dish-image, .image-card {
  isolation: isolate;
}
.gallery-tile, .visit-photo, .feature-card, .photo-frame, .dish-image, .image-card {
  position: relative;
  overflow: hidden;
}
.gallery-tile::after, .visit-photo::after, .feature-card::after,
.photo-frame::after, .dish-image::after, .image-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .68;
  background:
    linear-gradient(135deg, rgba(255,255,255,.18), transparent 26%, transparent 68%, rgba(183,141,82,.13)),
    linear-gradient(0deg, rgba(16,43,34,.24), transparent 42%);
  mix-blend-mode: soft-light;
  transition: opacity .7s ease;
}
.gallery-tile::before, .visit-photo::before, .feature-card::before,
.photo-frame::before, .dish-image::before, .image-card::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: -80%;
  left: -55%;
  width: 36%;
  height: 260%;
  pointer-events: none;
  opacity: 0;
  transform: rotate(24deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), rgba(214,178,124,.18), transparent);
}
.gallery-tile:hover::before, .visit-photo:hover::before, .feature-card:hover::before,
.photo-frame:hover::before, .dish-image:hover::before, .image-card:hover::before {
  opacity: 1;
  animation: oliviarnia-light-sweep 1.25s var(--motion-ease) both;
}
.gallery-tile:hover img, .visit-photo:hover img, .feature-card:hover img,
.photo-frame:hover img, .dish-image:hover img, .image-card:hover img,
.intro img:hover, .story-intro img:hover {
  transform: scale(1.055);
  filter: saturate(1.08) contrast(1.035);
}
.gallery-tile:hover::after, .visit-photo:hover::after, .feature-card:hover::after,
.photo-frame:hover::after, .dish-image:hover::after, .image-card:hover::after {
  opacity: .95;
}
.hero-image {
  animation: oliviarnia-hero-drift 24s ease-in-out infinite alternate;
  transform-origin: center;
}
.hero-image::after {
  background:
    linear-gradient(115deg, rgba(8,24,17,.78), rgba(13,31,23,.42) 56%, rgba(183,141,82,.16)),
    radial-gradient(ellipse at 72% 42%, transparent 0%, rgba(8,24,17,.24) 72%);
}
.hero::after, .page-hero::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  opacity: .2;
  background: repeating-linear-gradient(115deg, transparent 0 90px, rgba(255,255,255,.09) 91px, transparent 92px 180px);
  mask-image: linear-gradient(90deg, transparent, black 45%, transparent);
  animation: oliviarnia-grid-flow 18s linear infinite;
}
.hero-content { animation: oliviarnia-rise-in 1s .12s both; }
.hero-note { animation: oliviarnia-fade-in 1.2s .7s both; }
.brand-logo { transition: transform .55s var(--motion-ease), filter .55s ease; }
.brand:hover .brand-logo { transform: rotate(-7deg) scale(1.055); filter: drop-shadow(0 0 9px var(--neo-glow)); }
.reveal-ready { opacity: 0; transform: translateY(28px); filter: blur(4px); transition: opacity .85s ease, transform .85s var(--motion-ease), filter .85s ease; transition-delay: var(--reveal-delay, 0ms); }
.reveal-ready.is-visible { opacity: 1; transform: translateY(0); filter: blur(0); }
.gallery-tile, .feature-card, .visit-photo, .photo-frame, .image-card {
  box-shadow: 0 14px 40px rgba(16,43,34,.055);
  transition: box-shadow .7s ease, transform .7s var(--motion-ease);
}
.gallery-tile:hover, .feature-card:hover, .visit-photo:hover, .photo-frame:hover, .image-card:hover {
  box-shadow: 0 24px 60px rgba(16,43,34,.15), 0 0 0 1px rgba(183,141,82,.24);
  transform: translateY(-3px);
}
@keyframes oliviarnia-light-sweep {
  0% { left: -55%; }
  100% { left: 140%; }
}
@keyframes oliviarnia-hero-drift {
  from { transform: scale(1.015) translate3d(-.3%,0,0); }
  to { transform: scale(1.09) translate3d(.5%,-.4%,0); }
}
@keyframes oliviarnia-grid-flow {
  from { transform: translateX(-8%); }
  to { transform: translateX(8%); }
}
@keyframes oliviarnia-rise-in {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes oliviarnia-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  .reveal-ready { opacity: 1; transform: none; filter: none; }
}

.image-motion-ready {
  opacity: .01;
  transform: translateY(18px) scale(.985);
  transition: opacity .9s ease, transform 1s var(--motion-ease);
  transition-delay: var(--image-delay, 0ms);
}
.image-motion-ready.image-motion-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
@media (prefers-reduced-motion: reduce) {
  .image-motion-ready { opacity: 1; transform: none; }
}


/* Refined image frame beside “Twój stolik już czeka” */
.visit-photo {
  border-radius: 34px 120px 34px 34px !important;
  overflow: hidden;
  min-height: 460px;
  position: relative;
  isolation: isolate;
  border: 1px solid rgba(183,141,82,.45);
  box-shadow: 0 22px 55px rgba(16,43,34,.13), 0 0 0 8px rgba(183,141,82,.07);
  transition: border-radius 1s cubic-bezier(.2,.75,.25,1), box-shadow .7s ease, transform .7s ease;
}
.visit-photo::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 12px;
  border: 1px solid rgba(255,248,230,.42);
  border-radius: 25px 95px 25px 25px;
  pointer-events: none;
}
.visit-photo::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(145deg, rgba(16,43,34,.04) 20%, rgba(16,43,34,.14) 100%);
  pointer-events: none;
}
.visit-photo:hover {
  border-radius: 90px 34px 34px 34px !important;
  box-shadow: 0 30px 72px rgba(16,43,34,.19), 0 0 0 8px rgba(183,141,82,.11);
  transform: translateY(-4px);
}
@media (max-width:720px) {
  .visit-photo {
    min-height: 330px;
    border-radius: 28px 78px 28px 28px !important;
    box-shadow: 0 15px 36px rgba(16,43,34,.12), 0 0 0 5px rgba(183,141,82,.07);
  }
  .visit-photo::before { inset: 9px; border-radius: 20px 60px 20px 20px; }
  .visit-photo:hover { border-radius: 60px 28px 28px 28px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .visit-photo, .visit-photo:hover { transition: none; transform: none; }
}


/* Autumn seasonal menu — warm editorial Italian trattoria */
.autumn-seasonal {
  position: relative;
  overflow: hidden;
  padding: clamp(26px, 5vw, 68px);
  color: #f8edda;
  background:
    radial-gradient(ellipse at 92% 8%, rgba(194,111,55,.22), transparent 30%),
    radial-gradient(ellipse at 0% 100%, rgba(122,65,36,.3), transparent 35%),
    linear-gradient(145deg, #26372b 0%, #1c2b22 55%, #30251d 100%);
  border: 1px solid rgba(205,157,97,.7);
  box-shadow: 0 24px 70px rgba(44,35,24,.14);
}
.autumn-seasonal::before {
  content: "❧";
  position: absolute;
  top: -54px;
  right: 10px;
  color: rgba(218,172,111,.12);
  font: 230px/1 Georgia,serif;
  transform: rotate(-24deg);
  pointer-events: none;
}
.autumn-seasonal::after {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(218,172,111,.18);
  pointer-events: none;
}
.autumn-seasonal .seasonal-topline {
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding-bottom:17px;
  border-bottom:1px solid rgba(218,172,111,.32);
  color:#d9b47b;
  font-size:9px;
  letter-spacing:2px;
}
.autumn-seasonal .eyebrow { margin-top:34px; color:#d9a76c; }
.autumn-seasonal h2 {
  color:#fff4e1;
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(34px,5.2vw,60px);
  line-height:1.08;
  margin:0;
}
.autumn-seasonal h2 em { color:#e4b47b; }
.autumn-script {
  display:inline-block;
  margin-top:7px;
  font-size:.7em;
  font-style:italic;
  color:#d7c5a8;
}
.autumn-seasonal .seasonal-tagline {
  margin:22px 0 8px;
  color:#e5b77e;
  font:italic clamp(18px,2.3vw,25px) var(--serif);
}
.autumn-seasonal .seasonal-description {
  max-width:650px;
  color:#e0d8c8;
  font-size:13px;
  line-height:1.85;
}
.autumn-ornament {
  display:flex;
  align-items:center;
  gap:12px;
  margin:28px 0 8px;
  color:#d4a66f;
}
.autumn-ornament i { display:block; width:54px; height:1px; background:rgba(212,166,111,.45); }
.autumn-dishes { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:0 34px; margin-top:14px; }
.autumn-dish {
  padding:24px 0 25px;
  border-bottom:1px solid rgba(218,172,111,.28);
  color:#f8edda;
}
.autumn-dish:first-child { border-top:1px solid rgba(218,172,111,.28); }
.autumn-dish-number {
  margin-bottom:10px;
  color:#d7a66d;
  font-size:9px;
  letter-spacing:1.7px;
}
.autumn-dish-number span { color:#bdb6a6; }
.autumn-dish-heading { display:flex; justify-content:space-between; align-items:baseline; gap:14px; }
.autumn-dish-heading h3 {
  margin:0;
  color:#fff3df;
  font:400 clamp(18px,2vw,24px)/1.25 var(--serif);
}
.autumn-dish-heading b {
  flex-shrink:0;
  color:#e7bd84;
  font-size:13px;
  font-weight:600;
  white-space:nowrap;
}
.autumn-dish p { margin:12px 0 6px; color:#ddd5c7; font-size:12px; line-height:1.8; }
.autumn-dish small { color:#b9b3a5; font-size:10px; font-style:italic; }
.autumn-footer {
  display:flex; justify-content:space-between; align-items:center; gap:15px;
  margin-top:28px; padding-top:18px; border-top:1px solid rgba(218,172,111,.32);
  color:#d6ac77; font-size:9px; letter-spacing:2px;
}
.autumn-footer span:last-child { font:italic 18px var(--serif); letter-spacing:0; color:#f1d8b4; }
@media(max-width:720px) {
  .autumn-seasonal { padding:26px 21px; }
  .autumn-seasonal::after { inset:7px; }
  .autumn-seasonal .seasonal-topline { font-size:8px; letter-spacing:1px; }
  .autumn-dishes { grid-template-columns:1fr; }
  .autumn-dish { padding:21px 0; }
  .autumn-dish-heading h3 { font-size:21px; }
  .autumn-dish p { font-size:13px; }
  .autumn-footer { font-size:8px; }
}


/* AUTUMN 2026 — site-wide warm accents and seasonal homepage feature */
:root {
  --autumn-orange: #c96f32;
  --autumn-rust: #914b2c;
  --autumn-amber: #e5ad62;
}
.topline {
  background: linear-gradient(90deg, #2c211b, #3a2a20 55%, #26372b) !important;
  border-bottom: 1px solid rgba(229,173,98,.3);
}
.eyebrow { color: var(--autumn-orange); }
.hero-image::after {
  background:
    linear-gradient(112deg, rgba(25,28,20,.72), rgba(45,29,19,.43) 58%, rgba(155,77,33,.2)),
    radial-gradient(ellipse at 78% 22%, rgba(210,118,48,.15), transparent 38%) !important;
}
.hero-note { color: #f0c58e; }
.btn-light { box-shadow: 0 8px 24px rgba(201,111,50,.12); }
.btn-light:hover, .btn-dark:hover { box-shadow: 0 12px 30px rgba(201,111,50,.22); }
.autumn-home {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 95% 0%, rgba(201,111,50,.11), transparent 35%),
    linear-gradient(135deg,#f7efe2 0%,#f3e7d5 52%,#f8f3e9 100%);
  border-top:1px solid #e8d1b6;
  border-bottom:1px solid #e8d1b6;
}
.autumn-home::before {
  content:"❧";
  position:absolute; right:-8px; top:-66px;
  font:230px/1 Georgia,serif; color:rgba(156,77,38,.09);
  transform:rotate(-24deg); pointer-events:none;
}
.autumn-home-head {
  display:flex; align-items:flex-end; justify-content:space-between; gap:32px;
  position:relative; z-index:1; margin-bottom:38px;
}
.autumn-home-head h2 {
  margin:0 0 12px; color:#2b3829;
  font:400 clamp(38px,5vw,62px)/1.05 var(--serif);
}
.autumn-home-head h2 em { color:var(--autumn-rust); }
.autumn-home-head p:not(.eyebrow) { max-width:560px; margin:0; color:#66584a; }
.autumn-menu-link {
  flex-shrink:0; display:inline-flex; align-items:center; gap:22px;
  padding:14px 18px; background:#873f26; color:#fff5e6;
  border:1px solid #873f26; font-size:11px; letter-spacing:.3px;
  transition:background .25s, transform .25s, box-shadow .25s;
}
.autumn-menu-link span { font-size:17px; }
.autumn-menu-link:hover { background:#a9572f; transform:translateY(-2px); box-shadow:0 10px 24px #873f2626; }
.autumn-home-grid {
  position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid #d9bea0; border-bottom:1px solid #d9bea0;
}
.autumn-home-dish { padding:26px 26px 29px 0; }
.autumn-home-dish + .autumn-home-dish { border-left:1px solid #d9bea0; padding-left:26px; }
.autumn-kicker { color:#a75c32; font-size:9px; letter-spacing:1.7px; }
.autumn-home-dish h3 { margin:14px 0 10px; color:#29372a; font:400 clamp(20px,2.4vw,28px)/1.2 var(--serif); }
.autumn-home-dish p { color:#6c5d4d; font-size:12px; line-height:1.8; min-height:44px; }
.autumn-home-dish strong { display:block; margin-top:14px; color:#9a4e2d; font-size:14px; }
.autumn-home-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:22px; color:#8d6b4b; font-size:9px; letter-spacing:1.6px; }
.autumn-home-bottom span:last-child { letter-spacing:.2px; }
.feature-card { border-color:rgba(201,111,50,.15); }
.quote-band { position:relative; }
.visit-photo { border-color:rgba(201,111,50,.45) !important; }
.site-footer { border-top:3px solid #b86535; }
.autumn-leaf-layer {
  position:fixed; inset:0; z-index:80; overflow:hidden; pointer-events:none;
  contain:layout paint;
}
.autumn-leaf {
  position:absolute; top:-12vh; left:var(--left); opacity:0;
  color:var(--leaf-color); font-size:var(--leaf-size); line-height:1;
  filter:drop-shadow(0 3px 4px rgba(82,44,21,.12));
  animation:autumn-leaf-fall var(--duration) linear var(--delay) infinite;
  transform-origin:center;
}
@keyframes autumn-leaf-fall {
  0% { opacity:0; transform:translate3d(0,-4vh,0) rotate(0deg); }
  8% { opacity:var(--leaf-opacity); }
  85% { opacity:var(--leaf-opacity); }
  100% { opacity:0; transform:translate3d(var(--drift),112vh,0) rotate(var(--spin)); }
}
@media(max-width:720px) {
  .autumn-home-head { align-items:flex-start; flex-direction:column; gap:20px; }
  .autumn-home-grid { grid-template-columns:1fr; }
  .autumn-home-dish, .autumn-home-dish + .autumn-home-dish { padding:21px 0; border-left:0; }
  .autumn-home-dish + .autumn-home-dish { border-top:1px solid #d9bea0; }
  .autumn-home-dish p { min-height:0; }
  .autumn-home-bottom { flex-direction:column; gap:8px; }
}
@media(prefers-reduced-motion:reduce) {
  .autumn-leaf-layer { display:none !important; }
  .autumn-menu-link { transition:none; }
}

/* Reliable random dish feedback */
#surpriseToast[hidden] { display:none !important; }
#surpriseToast:not([hidden]) { display:flex; flex-direction:column; gap:7px; }
.random-dish-highlight {
  background: rgba(201,111,50,.12) !important;
  outline: 2px solid rgba(201,111,50,.6);
  outline-offset: 5px;
  transition: background .25s, outline-color .25s;
  border-radius: 4px;
}


/* Clear, animated frame around the randomly selected dish */
.random-dish-highlight {
  position: relative;
  z-index: 2;
  background: linear-gradient(110deg, rgba(255,244,224,.98), rgba(255,231,196,.9)) !important;
  outline: none !important;
  border-radius: 8px !important;
  box-shadow:
    0 0 0 2px #c96f32,
    0 0 0 6px rgba(201,111,50,.18),
    0 12px 30px rgba(117,62,31,.14) !important;
  animation: random-dish-frame 1.1s ease-in-out 2;
  transition: box-shadow .25s ease, background .25s ease;
}
.random-dish-highlight::after {
  content: "";
  position: absolute;
  inset: -5px;
  border: 1px solid rgba(201,111,50,.75);
  border-radius: 11px;
  pointer-events: none;
  opacity: 0;
  animation: random-dish-outline 1.1s ease-in-out 2;
}
@keyframes random-dish-frame {
  0%,100% {
    box-shadow: 0 0 0 2px #c96f32, 0 0 0 6px rgba(201,111,50,.18), 0 12px 30px rgba(117,62,31,.14);
  }
  50% {
    box-shadow: 0 0 0 3px #e4a05a, 0 0 0 10px rgba(201,111,50,.09), 0 16px 38px rgba(117,62,31,.2);
  }
}
@keyframes random-dish-outline {
  0% { opacity:0; transform:scale(.99); }
  45% { opacity:1; transform:scale(1); }
  100% { opacity:0; transform:scale(1.015); }
}
@media (prefers-reduced-motion: reduce) {
  .random-dish-highlight, .random-dish-highlight::after { animation:none !important; }
}

/* Keep the randomly chosen dish visible below the site navigation */
.random-dish-highlight { scroll-margin-top: 120px; }

/* Menu from printed menu, October 2026 */
.menu-dish small{display:block;margin-top:8px;opacity:.67;font-size:.78rem}.menu-note{margin:0 0 24px;opacity:.75;font-style:italic}.menu-filters{flex-wrap:wrap}

.language-toggle{border:1px solid rgba(210,130,50,.75);background:transparent;color:inherit;border-radius:999px;padding:8px 13px;font-weight:800;letter-spacing:.08em;cursor:pointer;min-width:48px}.language-toggle:hover{background:#d88736;color:#17130f}


/* Finished welcome panel replacing the demo loyalty card. */
.welcome-card .loyalty-copy p:not(.eyebrow) { max-width:460px; }
.welcome-card .loyalty-badge { transform:none; letter-spacing:.04em; }
.welcome-actions { padding:22px; }
.welcome-kicker { margin:0 0 12px; color:#f0ce7d; font-size:10px; font-weight:800; letter-spacing:.18em; }
.welcome-action { display:flex; align-items:center; gap:14px; padding:15px 0; color:#fff8df; text-decoration:none; border-bottom:1px solid #ffffff30; transition:transform .2s ease, color .2s ease; }
.welcome-action:hover { transform:translateX(3px); color:#f0ce7d; }
.welcome-action-icon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border:1px solid #f0ce7d99; border-radius:50%; color:#f0ce7d; font-size:20px; }
.welcome-action strong, .welcome-action small { display:block; }
.welcome-action strong { font:600 16px var(--serif); }
.welcome-action small { margin-top:4px; color:#d4dfd2; font-size:11px; line-height:1.5; }
.welcome-note { margin:18px 0 0; color:#d4dfd2; font:italic 13px var(--serif); }
@media(max-width:720px) { .welcome-actions { padding:18px; } .welcome-action { padding:13px 0; } }

/* Footer link spacing fix */
.footer-bottom>div{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;}
.footer-bottom>div a{display:inline-block;line-height:1.7;white-space:normal;}
@media(max-width:700px){.footer-bottom{flex-wrap:wrap;gap:12px;}.footer-bottom>div{gap:8px 16px;}}

/* Footer links: clear spacing and wrapping on every page, including RODO and privacy policy. */
.site-footer .footer-links { display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; line-height:1.8; }
.site-footer .footer-links a { display:inline-block; margin:0; white-space:normal; color:inherit; text-decoration:none; }
.site-footer .footer-links a:hover { text-decoration:underline; text-underline-offset:4px; }
@media (max-width: 640px) { .site-footer .footer-links { flex-direction:column; align-items:flex-start; gap:7px; } }


/* Menu notes / important customer information */
.menu-notes{padding-top:12px;padding-bottom:64px;}
.menu-notes-card{max-width:1000px;margin:0 auto;padding:clamp(22px,4vw,42px);background:#f3f1e8;border:1px solid rgba(36,57,42,.12);border-left:4px solid #a6b17a;border-radius:4px;color:#354237;}
.menu-notes-card h2{margin:4px 0 20px;font-family:Georgia,serif;font-size:clamp(25px,3vw,34px);font-weight:500;color:#24392a;}
.menu-notes-card ul{margin:0;padding-left:21px;display:grid;gap:12px;line-height:1.65;}
.menu-notes-card li{padding-left:3px;}
@media(max-width:640px){.menu-notes{padding-bottom:42px}.menu-notes-card{padding:22px 19px}.menu-notes-card ul{gap:10px;}}

/* Draggable Chef Olivetto: keep the mascot movable and out of the way. */
.chef-buddy { touch-action: none; cursor: grab; }
.chef-buddy.is-dragging { cursor: grabbing; animation: none; transition: none; }
.chef-speech { max-width: min(250px, calc(100vw - 32px)); }

/* Home hero readability: keep the restaurant photo visible while separating text from the background. */
.home-hero .hero-image:after{background:linear-gradient(90deg,rgba(8,25,18,.82) 0%,rgba(8,25,18,.67) 42%,rgba(8,25,18,.30) 76%,rgba(8,25,18,.24) 100%);}
.home-hero .hero-content{max-width:760px;margin:38px 0 38px 5.5%;padding:42px 46px;background:rgba(13,39,29,.46);border:1px solid rgba(226,190,125,.38);box-shadow:0 18px 50px rgba(0,0,0,.16);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);}
.home-hero .hero h1,.home-hero h1{text-shadow:0 2px 18px rgba(0,0,0,.22)}
.home-hero .hero-copy{text-shadow:0 1px 8px rgba(0,0,0,.35)}
@media(max-width:720px){.home-hero .hero-content{margin:20px 5%;padding:30px 24px;width:90%;background:rgba(13,39,29,.66)}.home-hero .hero-image:after{background:linear-gradient(90deg,rgba(8,25,18,.76),rgba(8,25,18,.48));}.home-hero .hero h1{font-size:clamp(43px,11vw,58px)}}


/* Oliviarnia: hide the floating chef mascot and speech bubble site-wide. */
.chef-buddy, .chef-speech { display: none !important; }
