@font-face{font-family:"Playfair Display";src:url('playfair-display.woff') format('woff');font-style:normal;font-weight:400 900;font-display:swap}
@font-face{font-family:RivaDisplay;src:url('display.woff') format('woff');font-weight:700;font-display:swap}
@font-face{font-family:RivaSans;src:url('body.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:RivaSans;src:url('body-bold.woff') format('woff');font-weight:700;font-display:swap}
:root{--black:#080808;--surface:#131313;--surface-2:#1d1d1d;--white:#f7f5f1;--muted:#b8b5b1;--accent:#e3bc81;--gold:#e3bc81;--line:#424242;--font:RivaSans,Arial,sans-serif;--display:RivaDisplay,'Arial Narrow',Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:7rem;font-size:100%}
body{margin:0;background:var(--black);color:var(--white);font:1.0625rem/1.6 var(--font);-webkit-font-smoothing:antialiased}
body:has(dialog[open]){overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.5}
button{color:inherit}
img{display:block;width:100%;height:auto}
svg{flex-shrink:0}
p{margin:0 0 1.2rem}
h1,h2,h3,h4,h5,h6{margin:0;font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-weight:600;line-height:1.2;letter-spacing:-.015em}
h1{font-size:clamp(3.65rem,8vw,7.3rem)}
h2{font-size:clamp(2.8rem,5.5vw,4.55rem)}
h3{font-size:2.25rem}
ul{margin:0;padding:0;list-style:none}
address{font-style:normal}
[hidden]{display:none!important}
:focus-visible{outline:3px solid #fff;outline-offset:4px;box-shadow:0 0 0 7px var(--gold)}
.shell{width:min(100% - 5rem,82.5rem);margin-inline:auto}
.section{padding-block:6rem}
.section-topless{padding-top:0}
.icon{width:1.25rem;height:1.25rem}
.accent{color:var(--accent)}
.muted{color:var(--muted)}
.mono{filter:grayscale(1)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:1rem;left:1rem;z-index:100;background:var(--white);color:var(--black);padding:.8rem 1rem;transform:translateY(-180%)}
.skip-link:focus{transform:translateY(0)}
.eyebrow{display:flex;align-items:center;gap:.65rem;color:var(--muted);font-size:.8125rem;font-weight:700;letter-spacing:.15em;line-height:1.6;margin-bottom:1.2rem;text-transform:uppercase}
.little-line{width:1.5rem;height:2px;flex-shrink:0;background:var(--accent)}
.eyebrow.plain{display:block;font-size:.875rem;letter-spacing:.12em;margin-bottom:.6rem;color:var(--muted)}
.lead{font-size:1.35rem;line-height:1.55}
.button{display:inline-flex;justify-content:center;align-items:center;gap:1rem;min-height:3.3rem;min-width:2.75rem;padding:.9rem 1.4rem;border:1px solid transparent;font-size:1rem;font-weight:700;line-height:1.35;transition:background .2s,color .2s,border-color .2s;flex-shrink:0;text-align:left}
.button .icon{width:1.1rem;height:1.1rem}
.button-primary{background:var(--gold);color:#fff}
.button-primary:hover{background:#c98536}
.button-outline{border-color:#777;background:transparent;color:var(--white)}
.button-outline:hover{background:var(--white);color:var(--black);border-color:var(--white)}
.button-white{background:var(--white);color:var(--black)}
.button-white:hover{background:#dedbd6}
.button-row{display:flex;flex-wrap:wrap;gap:1rem}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:1.5rem;font-weight:700;min-height:2.75rem;border-bottom:1px solid #777;padding:.25rem 0 .5rem;font-size:1rem}
.text-link:hover{color:var(--accent);border-color:var(--accent)}
.site-header{position:sticky;top:0;z-index:30;background:#080808f5;border-bottom:1px solid #333;backdrop-filter:blur(16px)}
.header-inner{min-height:6.4rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.brand{display:flex;align-items:center;justify-content:flex-start;min-height:3.5rem;width:11.8rem;flex-shrink:0}
.brand img{width:100%;height:auto}
.main-nav{display:flex;align-items:center;gap:1.75rem}
.main-nav a{font-size:.95rem;display:inline-flex;align-items:center;min-height:2.75rem;position:relative}
.main-nav a:hover{color:var(--accent)}
.main-nav a[aria-current=page]::after{content:'';position:absolute;bottom:.1rem;left:0;width:1.3rem;height:2px;background:var(--accent)}
.nav-toggle{display:none;align-items:center;justify-content:center;background:transparent;border:1px solid #666;width:3rem;min-height:3rem}
.hero{position:relative;isolation:isolate;min-height:45rem;overflow:clip;border-bottom:1px solid #333}
.hero-visual{position:absolute;inset:0 0 0 37%;z-index:-2}
.hero-visual img{height:100%;object-fit:cover;object-position:center 33%}
.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#080808 0%,#080808 32%,#080808bd 45%,#08080810 68%,#08080815 100%),linear-gradient(0deg,#080808b3 0%,transparent 35%)}
.hero-content{padding-block:3.7rem 3rem;position:relative}
.hero-content .eyebrow{color:#d5d1cc;margin-bottom:1.65rem}
.hero h1{font-size:clamp(4.65rem,9vw,8.15rem);line-height:.92;letter-spacing:-.012em;max-width:7.9em}
.hero h1 span{color:var(--accent)}
.hero-description{font-size:1.1875rem;line-height:1.6;margin-block:1.7rem 1.9rem;color:#ddd9d4;max-width:30rem}
.hero-days{font-size:.875rem;letter-spacing:.12em;font-weight:700;display:flex;align-items:center;gap:.6rem;margin:1.8rem 0 0;color:#d5d1cc}
.status-dot{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:var(--accent);flex-shrink:0}
.hero-note{position:absolute;right:2.6rem;bottom:3.3rem;display:flex;flex-direction:column;align-items:flex-end;color:#fff;font-size:.875rem;font-weight:700;letter-spacing:.15em;line-height:1.6;padding:.6rem;background:#080808c7}
.mood-strip{background:var(--gold);color:#fff}
.mood-strip .shell{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem 1rem;padding-block:1.2rem;font-weight:700;font-size:.95rem;letter-spacing:.13em}
.mood-strip span[aria-hidden]{font-size:1.3rem}
.intro-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:6rem;align-items:center}
.intro-grid h2{font-size:clamp(2.8rem,4.4vw,4.05rem)}
.intro-copy{max-width:28rem;padding-top:1.5rem}
.intro-copy>.lead{font-size:1.5rem;color:var(--white)}
.intro-copy>p{color:var(--muted)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;margin-bottom:2.6rem}
.section-heading-aside{max-width:23rem;flex-shrink:1}
.section-heading-aside p{color:var(--muted)}
.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem}
.event-card{min-width:0}
.event-card-image{display:block;position:relative;overflow:hidden;aspect-ratio:1.2;isolation:isolate;background:#222}
.event-card-image img{height:100%;object-fit:cover;object-position:center 28%;transition:transform .35s}
.event-card-image:hover img{transform:scale(1.025)}
.event-card-image::after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(0deg,#000a,transparent);z-index:0}
.image-badge{position:absolute;left:1rem;bottom:1rem;padding:.45rem .6rem;background:#080808db;color:#fff;font-size:.875rem;font-weight:700;letter-spacing:.1em;z-index:1}
.image-arrow{position:absolute;right:1rem;top:1rem;width:2.8rem;height:2.8rem;display:grid;place-items:center;background:var(--gold);color:#fff;z-index:1}
.event-card-body{padding:1.6rem 0 0;border-bottom:1px solid #444;padding-bottom:1.5rem}
.event-card-body h3{font-size:2.3rem;text-transform:uppercase;margin-bottom:.6rem}
.event-card-body>p:not(.eyebrow){color:var(--muted);margin-top:1rem;font-size:1rem}
.event-card-body .text-link{font-size:.9375rem;margin-top:.35rem;border-bottom:0}
.food-story{background:var(--surface);padding-block:5rem;border-block:1px solid #333}
.food-story-grid{display:grid;grid-template-columns:1.13fr 1fr;gap:6rem;align-items:center}
.food-image{position:relative;min-width:0;aspect-ratio:1.08;overflow:hidden}
.food-image img{height:100%;object-fit:cover;object-position:55% center}
.photo-side-label{position:absolute;bottom:1.2rem;left:1.2rem;right:1.2rem;width:fit-content;background:#080808e6;padding:.5rem .7rem;font-size:.875rem;font-weight:700;letter-spacing:.13em}
.food-copy h2{font-size:clamp(3rem,5.5vw,5rem);margin-bottom:1.5rem}
.food-copy>p:not(.eyebrow){color:var(--muted);max-width:28rem}
.food-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.5rem 0 2rem}
.food-tags span{border:1px solid #686868;padding:.3rem .6rem;font-size:.875rem;font-weight:700;letter-spacing:.09em}
.river-section{position:relative;min-height:32rem;isolation:isolate;overflow:clip}
.river-image{position:absolute;inset:0;z-index:-2}
.river-image img{height:100%;object-fit:cover;object-position:50% 62%}
.river-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#080808f2 0%,#080808cb 35%,#08080819 80%),linear-gradient(0deg,#08080885,transparent)}
.river-copy{padding-block:5.8rem}
.river-copy h2{font-size:clamp(3.2rem,6.8vw,6rem);margin-bottom:1.4rem}
.river-copy>p{color:#dedbd6}
.river-copy .text-link{color:#fff}
.private-event{background:var(--gold);color:#fff;position:relative;overflow:clip}
.private-event-grid{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:4rem;padding-block:5rem}
.private-event h2{font-size:clamp(3.2rem,6vw,5.5rem);margin-bottom:1.5rem}
.private-event .eyebrow{color:#fff}
.private-event .little-line{background:#fff}
.private-event p:not(.eyebrow){max-width:31rem;color:#fff}
.outline-text{color:#fff;-webkit-text-stroke:1px white}
@supports(-webkit-text-stroke:1px white){.outline-text{color:transparent}}
.occasion-list{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:2rem;max-width:37rem}
.occasion-list li{font-size:.8125rem;border:1px solid #ffffffbd;padding:.35rem .65rem}
.party-photo{position:relative;max-width:24rem;justify-self:end;width:100%;aspect-ratio:.9;transform:rotate(3deg);border:8px solid #fff}
.party-photo img{height:100%;object-fit:cover;object-position:center 20%}
.party-sticker{position:absolute;right:-1.2rem;bottom:-1.3rem;border-radius:50%;width:8rem;height:8rem;background:var(--black);border:1px solid #fff;display:grid;place-content:center;text-align:center;line-height:1;font:700 1.45rem/1 var(--display);transform:rotate(-12deg)}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
.gallery-item{margin:0;min-width:0}
.gallery-open{position:relative;display:block;width:100%;padding:0;background:#111;border:0;overflow:hidden;aspect-ratio:.8;text-align:left}
.gallery-open img{height:100%;object-fit:cover;object-position:center 25%;transition:transform .35s}
.gallery-open:hover img{transform:scale(1.03)}
.gallery-plus{position:absolute;bottom:1rem;right:1rem;background:#080808d9;color:#fff;display:flex;align-items:center;justify-content:center;width:2.8rem;height:2.8rem}
.gallery-item figcaption{padding:1rem 0;font-size:.9375rem;line-height:1.4}
.gallery-item figcaption>span{display:block}
.gallery-item figcaption small{display:block;font-size:.875rem;color:var(--muted);margin-top:.45rem}
.home-gallery .gallery-item:nth-child(even){padding-top:2rem}
.last-call{display:flex;justify-content:space-between;gap:3rem;align-items:center;padding-block:4.5rem;border-top:1px solid #444}
.site-footer{padding:4rem 0 6rem;border-top:1px solid #3a3a3a;background:var(--surface)}
.footer-main{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2.5rem}
.footer-brand img{max-width:14rem;margin-bottom:1.7rem}
.footer-brand p{color:var(--muted);font-size:.9375rem}
.site-footer h2{font:700 .75rem/1.5 var(--font);letter-spacing:.15em;margin:0 0 1.25rem;color:#ddd9d3}
.site-footer address,.site-footer p{color:var(--muted);font-size:.9375rem;line-height:1.7}
.site-footer address a{min-height:2.75rem;display:inline-flex;align-items:center;color:var(--white)}
.footer-nav>a{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:2.75rem;font-size:.9375rem}
.footer-nav>a:hover{color:var(--accent)}
.footer-nav .icon{width:1rem;height:1rem}
.footer-bottom{border-top:1px solid #444;padding-top:1.4rem;margin-top:3rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.875rem;letter-spacing:.15em;color:var(--muted)}
.whatsapp-widget{position:fixed;z-index:35;bottom:1.5rem;left:1.5rem;background:var(--white);color:var(--black);border:1px solid var(--black);min-height:3.4rem;padding:.8rem 1.1rem;display:inline-flex;align-items:center;gap:.75rem;border-radius:2rem;font-size:.9375rem;font-weight:700;box-shadow:0 .2rem 1.5rem #0009}
.whatsapp-widget .icon{width:1.4rem;height:1.4rem}
.whatsapp-widget:hover{background:#dedbd6}
.back-to-top{position:fixed;z-index:25;bottom:1.5rem;right:1.5rem;min-height:3.3rem;min-width:3.3rem;display:grid;place-items:center;border:1px solid #777;background:#080808eb;color:#fff}
.page-hero{padding-block:4.5rem 3.5rem;border-bottom:1px solid #333;overflow:clip}
.page-hero-grid{display:grid;grid-template-columns:1fr .8fr;gap:4rem;align-items:center}
.page-hero-copy{min-width:0}
.page-hero-copy h1{margin-bottom:1.7rem}
.page-hero-copy .lead{max-width:35rem;color:var(--muted);font-size:1.1875rem}
.page-hero-photo{height:32rem;position:relative;overflow:hidden}
.page-hero-photo img{height:100%;object-fit:cover;object-position:center 27%}
body[data-page=menu] .page-hero-photo img{filter:grayscale(1);object-position:58% center}
.page-hero.no-photo .page-hero-grid{grid-template-columns:1fr}
.page-hero.no-photo .page-hero-copy{display:grid;grid-template-columns:1.25fr 1fr;column-gap:4rem;align-items:end}
.page-hero.no-photo .eyebrow{grid-column:1/-1}
.page-hero.no-photo h1{font-size:clamp(3.3rem,7.5vw,6.8rem);margin:0}
.page-hero.no-photo .lead{max-width:27rem;padding-bottom:.35rem;margin:0}
.open-days{display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:center;padding-block:2rem;border-bottom:1px solid #444}
.open-days .eyebrow{margin:0}
.open-days>div{display:flex;justify-content:center;gap:1.2rem;font-family:var(--display);font-size:2.3rem;line-height:1.2}
.open-days>p:last-child{max-width:13rem;margin:0;color:var(--muted);font-size:.9375rem}
.filters{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:2rem}
.filter{min-height:2.875rem;padding:.65rem 1.05rem;background:transparent;border:1px solid #777;font-size:.9375rem;font-weight:700;color:var(--white)}
.filter:hover{border-color:var(--white);background:var(--surface-2)}
.filter.active{background:var(--white);border-color:var(--white);color:var(--black)}
.events-list{row-gap:3rem}
.sound-call{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;padding-block:3rem 5rem}
.sound-call-mark{width:6rem;height:6rem;display:grid;place-items:center;border-radius:50%;border:1px solid #555;color:var(--accent)}
.sound-call-mark .icon{width:3rem;height:3rem}
.sound-call h2{font-size:clamp(2.4rem,4vw,3.4rem);margin-bottom:1rem}
.sound-call p{color:var(--muted);max-width:39rem;margin:0}
.gallery-section{padding-top:2.5rem}
.gallery-topline{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:2rem}
.gallery-topline p{color:var(--muted);font-size:.9375rem;margin:0}
.gallery-count{font-size:.875rem;letter-spacing:.1em;color:var(--muted);flex-shrink:0}
.filter-status{font-size:.875rem;color:var(--muted);margin-top:-1rem;margin-bottom:1.5rem}
.full-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
.full-gallery .gallery-open{aspect-ratio:.95}
.full-gallery .gallery-item:nth-child(5n+2) .gallery-open{aspect-ratio:.8}
.menu-section{padding-top:3rem}
.menu-notice{display:flex;align-items:flex-start;gap:1rem;border-left:3px solid var(--accent);background:var(--surface);padding:1.2rem 1.4rem;margin-bottom:2rem}
.menu-notice .status-dot{margin-top:.55rem}
.menu-notice p{margin:0;font-size:.9375rem;color:var(--muted)}
.menu-notice strong{color:var(--white)}
.menu-block{display:grid;grid-template-columns:.8fr 1.15fr;gap:6rem;padding-block:3.5rem;border-bottom:1px solid #444;align-items:start}
.menu-block-heading h2{font-size:clamp(2.8rem,4.7vw,4.1rem);margin-bottom:1.3rem}
.menu-block-heading p{max-width:27rem;color:var(--muted)}
.menu-block-heading>img{max-height:19rem;object-fit:cover;margin-top:2rem}
.menu-list li{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start;padding:1.6rem 0;border-bottom:1px solid #414141}
.menu-list li:first-child{padding-top:0}
.menu-list li:last-child{border-bottom:0}
.menu-list h3{font-family:var(--font);font-size:1.3rem;font-weight:700;line-height:1.35;letter-spacing:0;margin-bottom:.6rem}
.menu-list p{margin:0;color:var(--muted);font-size:1rem;max-width:32rem}
.menu-item-mark{font-size:.8125rem;color:var(--accent);padding-top:.2rem}
.aperitivo-copy img{max-height:24rem;object-fit:cover;object-position:center 25%;margin-bottom:1.5rem}
.aperitivo-copy h3{margin-bottom:1rem}
.aperitivo-copy p{color:var(--muted)}
.contact-overview{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:3rem;padding-block:3.5rem}
.contact-address h2{font-size:2.3rem;line-height:1.1;margin-bottom:.4rem}
.contact-overview h3{font-family:var(--font);font-size:1.3rem;letter-spacing:0;line-height:1.4;margin-bottom:1rem}
.contact-overview p{color:var(--muted);font-size:1rem}
.phone-number{font-size:1.6rem;font-weight:700;min-height:2.75rem;display:inline-flex;align-items:center;margin-bottom:1rem}
.contact-phone .text-link{font-size:.875rem}
.map-placeholder{position:relative;min-height:26rem;isolation:isolate;overflow:clip;background:#161616;border:1px solid #555}
.map-placeholder>img{position:absolute;inset:0;height:100%;object-fit:cover;object-position:50% 35%;z-index:-2;opacity:.5}
.map-shade{position:absolute;inset:0;background:#0808086b;z-index:-1}
.map-card{position:absolute;bottom:2rem;left:2rem;right:2rem;display:flex;align-items:center;justify-content:space-between;gap:1.3rem;padding:1.5rem;background:#080808f2;border:1px solid #555}
.map-card>.icon{width:2.3rem;height:2.3rem;color:var(--accent)}
.map-card>div{margin-right:auto}
.map-card strong{display:block;font-family:var(--display);font-size:2rem;line-height:1.2}
.map-card span{color:var(--muted);font-size:.9375rem}
.map-placeholder iframe{display:block;width:100%;height:30rem;border:0;min-height:26rem}
.map-reload{position:absolute;right:1rem;top:1rem;background:var(--black);color:var(--white);border:1px solid #777;min-height:2.75rem;padding:.4rem .8rem;font-size:.875rem}
.booking-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:6rem;align-items:start;scroll-margin-top:7rem}
.booking-copy h2{font-size:clamp(2.8rem,4.6vw,4.2rem);margin-bottom:1.7rem}
.booking-copy>p{color:var(--muted);max-width:27rem}
.booking-promise{display:flex;align-items:center;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #444;max-width:27rem}
.booking-promise>span{font-size:2.7rem;color:var(--accent)}
.booking-promise p{font-size:.9375rem;margin:0}
.booking-form{min-width:0}
.booking-mode{padding:0;margin:0 0 1.5rem;border:0;display:flex;gap:.6rem;flex-wrap:wrap}
.booking-mode label{display:flex;cursor:pointer;position:relative}
.booking-mode input{position:absolute;left:.8rem;top:1rem;opacity:0;width:1rem;height:1rem}
.booking-mode label span{display:flex;align-items:center;padding:.8rem 1.1rem;min-height:3rem;border:1px solid #777;font-size:.9375rem;font-weight:700}
.booking-mode input:checked+span{background:var(--white);color:var(--black);border-color:var(--white)}
.booking-mode input:focus-visible+span{outline:3px solid #fff;outline-offset:4px;box-shadow:0 0 0 7px var(--gold)}
.form-note{font-size:.875rem;color:var(--muted);line-height:1.6;margin-bottom:1.7rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.35rem 1rem}
.field{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.field.full{grid-column:1/-1}
.field label{font-size:.875rem;font-weight:700;line-height:1.5}
.field label>span:not(.optional){color:var(--accent)}
.field .optional{font-weight:400;color:var(--muted);font-size:.875rem;margin-left:.2rem}
.field small{font-size:.875rem;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;min-width:0;min-height:3.25rem;border:1px solid #767676;border-radius:0;background:var(--surface);color:var(--white);padding:.75rem .8rem;font-size:1rem;line-height:1.5}
.field textarea{resize:vertical;min-height:6.5rem}
.field input::placeholder,.field textarea::placeholder{color:#aaa7a3;opacity:1}
.field input[aria-invalid=true],.field select[aria-invalid=true]{border-color:var(--accent)}
.required-note{font-size:.875rem;color:var(--muted);margin-block:1rem}
.form-submit{width:100%;justify-content:space-between}
.form-status{font-size:.9375rem;margin-top:1rem;color:var(--muted)}
.form-error{border:1px solid var(--accent);background:var(--surface);padding:1rem;color:#fff;margin:1rem 0;font-size:.9375rem}
dialog{padding:0;background:var(--black);color:var(--white);border:1px solid #555;max-height:calc(100dvh - 3rem);overflow:auto}
dialog::backdrop{background:#000d;backdrop-filter:blur(8px)}
.dialog-close{position:absolute;right:1rem;top:1rem;width:2.875rem;height:2.875rem;background:var(--black);color:#fff;border:1px solid #999;display:flex;align-items:center;justify-content:center;z-index:3}
.contact-dialog{width:min(100% - 3rem,40rem);padding:3rem 2rem 2rem}
.contact-dialog h2{font-size:clamp(2.4rem,5vw,3.25rem);margin-bottom:1.4rem;padding-right:1rem}
.contact-dialog>p{color:var(--muted);font-size:1rem}
.dialog-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}
.request-preview{font-family:var(--font);font-size:.9375rem;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;background:var(--surface);border:1px solid #555;padding:1.2rem;max-height:24rem;overflow:auto}
.copy-status{margin:.8rem 0 0;font-size:.875rem;color:var(--muted)}
.lightbox{width:min(100% - 2rem,75rem);background:#080808;padding:1.5rem}
.lightbox-stage{display:flex;align-items:center;justify-content:center;min-height:12rem}
.lightbox-stage img{width:auto;max-width:100%;max-height:calc(100dvh - 12rem);object-fit:contain}
.lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem}
.lightbox-footer p{font-size:.9375rem;color:var(--muted);text-align:center;margin:0}
.icon-button{background:transparent;border:1px solid #888;width:3rem;min-height:3rem;display:grid;place-items:center;flex-shrink:0}
#lightbox-prev .icon{transform:rotate(180deg)}
.enhanced-control{display:none}
.js .filters.enhanced-control,.js .whatsapp-widget.enhanced-control{display:flex}
.coming-soon{min-height:100svh;position:relative;isolation:isolate;overflow:clip;display:flex;flex-direction:column}
.coming-soon-visual{position:absolute;inset:0 0 0 40%;z-index:-3}
.coming-soon-visual img{height:100%;object-fit:cover;object-position:50% 25%}
.coming-soon-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#080808 0%,#080808 27%,#080808b0 48%,#0808080f 83%),linear-gradient(0deg,#080808e5 0%,#0808082b 45%)}
.coming-header{padding-block:2.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.coming-logo{width:17rem;max-width:60vw}
.coming-label{font-size:.875rem;letter-spacing:.16em;color:#e1ddd6;font-weight:700;display:flex;align-items:center;gap:.6rem}
.coming-main{padding-block:2rem 3rem;flex:1}
.coming-main h1{font-size:clamp(4.1rem,8.8vw,7.4rem);max-width:8em;line-height:.96;margin-bottom:1.8rem}
.coming-main>.lead{color:#ddd9d3;max-width:33rem;font-size:1.1875rem}
.coming-main .eyebrow{color:#ddd9d3}
.coming-contact{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 2rem;margin-top:1.8rem}
.coming-contact>a{font-weight:700;min-height:2.75rem;display:inline-flex;align-items:center;gap:.65rem;font-size:1rem}
.coming-contact>a:hover{color:var(--accent)}
.coming-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;padding-block:2rem;border-top:1px solid #777;color:#ddd9d3}
.coming-footer address{font-size:.9375rem;line-height:1.6}
.coming-footer p{font-size:.875rem;font-weight:700;letter-spacing:.14em;margin:0}
.coming-footer a{display:inline-flex;align-items:center;min-height:2.75rem}
.coming-footer a:hover{color:var(--accent)}
@media(min-width:90rem){.hero-content{padding-top:4.5rem}.hero{min-height:48rem}}
@media(max-width:70rem){.shell{width:min(100% - 3rem,82.5rem)}.header-inner{gap:1.25rem}.main-nav{gap:1rem}.brand{width:10rem}.intro-grid,.food-story-grid,.booking-grid,.menu-block{gap:3rem}.footer-main{gap:1.75rem}.sound-call{grid-template-columns:auto 1fr}.sound-call>.button{grid-column:2;justify-self:start}.hero-note{right:1.5rem;bottom:2rem}.private-event-grid{gap:2.5rem}.open-days{gap:1.25rem}.open-days>div{gap:.65rem}}
@media(max-width:58rem){.header-inner{min-height:5.5rem;gap:1rem;flex-wrap:wrap}.brand{width:10.5rem;margin-right:auto}.js .nav-toggle{display:flex}.header-book{min-height:3rem;padding:.7rem .95rem}.main-nav{width:100%;order:5;justify-content:space-between;gap:.5rem 1rem;flex-wrap:wrap;padding:1rem 0}.js .main-nav{display:none}.js .main-nav.is-open{display:flex}.main-nav a{min-height:3rem}.hero{min-height:43rem}.hero-visual{left:30%}.hero h1{font-size:clamp(4.6rem,10.7vw,7rem)}.hero-shade{background:linear-gradient(90deg,#080808 0%,#080808ed 22%,#08080880 53%,#08080820 100%),linear-gradient(0deg,#080808d9,transparent 50%)}.hero-note{display:none}.intro-grid{grid-template-columns:1.2fr 1fr;gap:2rem}.section-heading{gap:2rem}.section-heading-aside{max-width:18rem}.event-grid{gap:1.25rem}.event-card-body h3{font-size:2rem}.food-story-grid{gap:2.5rem}.private-event-grid{grid-template-columns:1.35fr .8fr}.party-sticker{width:6rem;height:6rem;font-size:1.15rem;right:-.75rem}.private-event h2{font-size:clamp(3rem,5.6vw,4.5rem)}.gallery-grid{gap:1rem}.footer-main{grid-template-columns:1.3fr 1fr;gap:2.5rem}.page-hero-grid{gap:2rem;grid-template-columns:1.1fr .9fr}.page-hero-photo{height:28rem}.page-hero.no-photo .page-hero-copy{gap:2rem}.open-days{grid-template-columns:1fr auto}.open-days>div{justify-content:flex-end}.open-days>p:last-child{grid-column:1/-1;max-width:none}.contact-overview{gap:2rem;grid-template-columns:1.2fr 1fr}.contact-phone{grid-column:1/-1;display:flex;gap:1rem 2rem;align-items:center;flex-wrap:wrap}.contact-phone .eyebrow{margin:0}.contact-phone .phone-number{margin:0}.contact-phone p{margin:0}.booking-grid{grid-template-columns:.9fr 1.1fr;gap:2.5rem}.booking-copy h2{font-size:3rem}.full-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:44rem){.shell{width:calc(100% - 2.5rem)}.section{padding-block:4rem}.section-topless{padding-top:0}.hero{min-height:44rem}.hero-content{padding-block:3rem}.hero-visual{left:5%;opacity:.65}.hero-visual img{object-position:70% 28%}.hero-shade{background:linear-gradient(90deg,#080808dc 0%,#0808089c 50%,#08080854 100%),linear-gradient(0deg,#080808 0%,#08080885 45%,transparent)}.hero h1{font-size:clamp(4.25rem,15vw,6.8rem);max-width:8em}.hero-description{font-size:1.0625rem;color:#fff;margin-block:1.5rem}.hero-content .eyebrow{font-size:.875rem;color:#fff}.hero-days{color:#fff;max-width:27rem;line-height:1.8;font-size:.875rem}.hero .button-row{gap:.75rem}.hero .button{padding:.8rem 1rem}.mood-strip .shell{justify-content:center;gap:.7rem 1rem;font-size:.875rem;padding-block:1rem}.mood-strip span[aria-hidden]{font-size:.9rem}.intro-grid{grid-template-columns:1fr;gap:1rem}.intro-copy{padding:0;max-width:none}.intro-grid h2{font-size:clamp(2.85rem,8.5vw,4rem)}.section-heading{display:block}.section-heading-aside{max-width:none;margin-top:1.5rem}.section-heading-aside .button{margin-top:.35rem}.event-grid{grid-template-columns:1fr;gap:2.2rem}.event-card-image{aspect-ratio:1.35}.event-card-body h3{font-size:2.4rem}.food-story{padding-block:3.5rem}.food-story-grid{grid-template-columns:1fr;gap:2.2rem}.food-image{aspect-ratio:1.3}.food-copy h2{font-size:3.8rem}.river-section{min-height:30rem}.river-copy{padding-block:4rem}.river-copy h2{font-size:clamp(3.3rem,10vw,4.8rem)}.river-overlay{background:linear-gradient(90deg,#080808e6,#080808a3 65%,#08080866),linear-gradient(0deg,#080808c2,transparent)}.private-event-grid{grid-template-columns:1fr;padding-block:3.7rem;gap:3rem}.private-event h2{font-size:clamp(3.05rem,10vw,4.6rem)}.party-photo{justify-self:center;max-width:19rem;aspect-ratio:1.05;margin-bottom:1.5rem}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.home-gallery .gallery-item:nth-child(even){padding-top:1.5rem}.gallery-item figcaption{font-size:.8125rem}.gallery-item figcaption small{font-size:.875rem}.last-call{padding-block:3.5rem;display:block}.last-call>.button{margin-top:1.8rem}.last-call h2{font-size:3.2rem}.footer-main{grid-template-columns:1fr 1fr;gap:2rem 1.3rem}.footer-brand{grid-column:1/-1}.footer-brand img{max-width:13rem}.footer-brand p{margin:0}.footer-main>div:last-child{grid-column:1/-1}.footer-nav>a{max-width:24rem}.site-footer{padding-top:3rem;padding-bottom:6rem}.footer-bottom{margin-top:2rem;font-size:.875rem}.whatsapp-widget{left:1rem;bottom:1rem;min-height:3.2rem;padding:.8rem 1rem;font-size:.875rem}.back-to-top{right:1rem;bottom:1rem;min-width:3.2rem;min-height:3.2rem}.page-hero{padding-block:3rem}.page-hero-grid{grid-template-columns:1fr;gap:2rem}.page-hero-copy h1{font-size:clamp(3.2rem,12vw,5rem)}.page-hero-copy .lead{font-size:1.0625rem}.page-hero-photo{height:22rem}.page-hero.has-photo .page-hero-photo{margin-top:.5rem}.page-hero.no-photo .page-hero-copy{display:block}.page-hero.no-photo .lead{margin-top:1.7rem;max-width:none}.page-hero.no-photo h1{font-size:clamp(3.4rem,12vw,5rem)}.open-days{display:block;padding-block:1.8rem}.open-days>div{justify-content:space-between;gap:.6rem;font-size:2.5rem;margin:1rem 0}.open-days>p:last-child{font-size:.875rem}.filters{gap:.5rem;margin-bottom:1.7rem}.filter{font-size:.8125rem;padding:.65rem .8rem;min-height:2.875rem}.sound-call{display:block;padding-bottom:3.5rem}.sound-call-mark{width:4rem;height:4rem;margin-bottom:1.5rem}.sound-call-mark .icon{width:2rem;height:2rem}.sound-call h2{font-size:2.8rem}.sound-call>.button{margin-top:1.5rem}.gallery-topline{display:block;margin-bottom:1.8rem}.gallery-count{display:block;margin-top:1.2rem}.full-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.full-gallery .gallery-open,.full-gallery .gallery-item:nth-child(5n+2) .gallery-open{aspect-ratio:.85}.menu-section{padding-top:2rem}.menu-block{grid-template-columns:1fr;gap:2rem;padding-block:2.8rem}.menu-block-heading>img{max-height:17rem}.menu-notice{padding:1rem}.menu-list li{padding-block:1.3rem}.contact-overview{grid-template-columns:1fr;gap:2.5rem;padding-block:3rem}.contact-phone{grid-column:auto;display:block}.contact-phone .eyebrow{margin-bottom:1rem}.contact-phone .phone-number{margin-bottom:.5rem}.contact-phone p{margin-bottom:.5rem}.map-placeholder{min-height:25rem}.map-card{bottom:1rem;left:1rem;right:1rem;flex-wrap:wrap;padding:1rem;gap:.8rem}.map-card>.icon{width:1.8rem;height:1.8rem}.map-card>div{max-width:calc(100% - 3rem)}.map-card span{font-size:.8125rem;display:block}.map-card .button{width:100%;justify-content:space-between;margin-top:.5rem}.booking-grid{grid-template-columns:1fr;gap:2.5rem}.booking-copy h2{font-size:clamp(3rem,10vw,4.2rem)}.booking-promise{max-width:none}.form-grid{gap:1.2rem .8rem}.field input,.field select{padding:.7rem .65rem;font-size:1rem}.booking-mode label span{font-size:.875rem;padding:.8rem .9rem}.contact-dialog{padding:3rem 1.25rem 1.5rem;width:calc(100% - 2rem)}.dialog-actions{display:grid;grid-template-columns:1fr}.dialog-actions .button{justify-content:space-between}.lightbox{width:calc(100% - 1rem);padding:3.5rem .5rem 1rem}.lightbox-stage img{max-height:calc(100dvh - 13rem)}.lightbox-footer{gap:.5rem}.lightbox-footer p{font-size:.8125rem}.coming-header{padding-block:1.8rem;align-items:flex-start}.coming-logo{width:12rem}.coming-label{font-size:.875rem;max-width:7rem;line-height:1.6}.coming-soon-visual{left:5%;opacity:.65}.coming-soon-shade{background:linear-gradient(90deg,#080808da 0%,#08080885 65%,#08080845),linear-gradient(0deg,#080808 0%,#080808b3 55%,#08080838 100%)}.coming-main{padding-top:1.8rem;padding-bottom:3rem}.coming-main h1{font-size:clamp(3.7rem,13.5vw,5.8rem)}.coming-main>.lead{color:#fff;font-size:1.0625rem;max-width:26rem}.coming-contact{display:block;margin-top:1.3rem}.coming-contact>a{display:flex;width:fit-content;margin-bottom:.5rem;font-size:.9375rem}.coming-footer{display:block;padding-bottom:2rem}.coming-footer p{margin-top:1.3rem;font-size:.875rem;line-height:1.8}.coming-footer address{font-size:.875rem}}
@media(max-width:24rem){.shell{width:calc(100% - 2rem)}.brand{width:8.5rem}.header-inner{gap:.65rem}.header-book{padding:.7rem .8rem;font-size:.875rem}.hero h1{font-size:4rem}.hero .button-row{display:grid;grid-template-columns:1fr}.hero .button{justify-content:space-between}.hero{min-height:46rem}.mood-strip span[aria-hidden]{display:none}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.footer-main{grid-template-columns:1fr}.footer-main>div{grid-column:1/-1}.full-gallery{grid-template-columns:1fr}.home-gallery .gallery-item:nth-child(even){padding-top:0}.booking-mode{display:grid;grid-template-columns:1fr}.booking-mode label span{width:100%}.party-photo{max-width:17rem}.open-days>div{font-size:2rem}.coming-label{max-width:5rem}.coming-main h1{font-size:3.7rem}.coming-main .button-row{display:grid;grid-template-columns:1fr}.coming-main .button{justify-content:space-between}.coming-logo{width:11rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media(forced-colors:active){.filter.active,.button-primary{border:2px solid ButtonText}.outline-text{color:CanvasText;-webkit-text-stroke:0}.status-dot{background:CanvasText}.hero-shade,.coming-soon-shade{background:Canvas}.brand img,.coming-logo{forced-color-adjust:none}}

@media(max-width:24rem){.header-book .icon{display:none}}

h1,h2,h3{overflow-wrap:break-word}
.coming-soon-shade{background:linear-gradient(90deg,#080808 0%,#080808 38%,#080808c7 65%,#08080828 100%),linear-gradient(0deg,#080808e5 0%,#0808082b 45%)}
@media(max-width:44rem){.hero h1{font-size:clamp(3rem,14vw,6.3rem)}.hero{min-height:40rem}.coming-main h1{font-size:clamp(2.5rem,12vw,5.8rem)}.private-event h2{font-size:clamp(2.8rem,9.5vw,4.6rem)}.coming-soon-shade{background:linear-gradient(90deg,#080808e6 0%,#080808b3 65%,#08080866),linear-gradient(0deg,#080808 0%,#080808b3 55%,#08080838 100%)}}
@media(max-width:24rem){.hero h1{font-size:clamp(3rem,14vw,3.8rem)}.coming-main h1{font-size:clamp(2.5rem,12vw,3.5rem)}}

/* Oro ripreso dal microfono ufficiale RIVA, 14 ottobre 2026. */
.whatsapp-widget{background:#25d366;color:#080808;border-color:#08783c}
.whatsapp-widget:hover{background:#1ebe5d}
.whatsapp-widget .icon{color:#ffffff}
#whatsapp-action,.coming-main .button[href^="https://wa.me/"]{background:#25d366;color:#080808;border-color:#08783c}
#whatsapp-action:hover,.coming-main .button[href^="https://wa.me/"]:hover{background:#1ebe5d}
#whatsapp-action .icon,.coming-main .button[href^="https://wa.me/"] .icon{color:#ffffff}
.mood-strip .shell{justify-content:center;gap:clamp(.75rem,4vw,3rem);font-size:1rem}
.mood-strip span[aria-hidden]{display:inline;font-size:1rem}

/* Tema nero, bianco e oro del microfono ufficiale. */
.button-primary{color:#080808}
.mood-strip{color:#080808}
.image-arrow{color:#080808}
.private-event{color:#080808}
.private-event .eyebrow,.private-event p:not(.eyebrow){color:#080808}
.private-event .little-line{background:#080808}
.private-event .outline-text{color:#080808;-webkit-text-stroke:1px #080808}
@supports(-webkit-text-stroke:1px black){.private-event .outline-text{color:transparent}}
.private-event .occasion-list li{border-color:#080808bd}
.private-event .button-white{background:#080808;color:var(--accent);border-color:#080808}
.private-event .button-white:hover{background:#252525}
:focus-visible,.booking-mode input:focus-visible+span{outline:3px solid var(--gold);outline-offset:4px;box-shadow:0 0 0 7px #080808}
@media(forced-colors:active){.private-event .outline-text{color:CanvasText;-webkit-text-stroke:0}}

.private-event .party-sticker{color:var(--accent);border-color:var(--accent)}

/* Titoli Playfair Display da Google Fonts: peso 600 e spaziatura leggibile. */
h1,h2,h3,h4,h5,h6,.site-footer h2,.menu-list h3,.contact-overview h3{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-optical-sizing:auto;font-synthesis:none;font-weight:600;line-height:1.2;letter-spacing:-.015em}
h3,h4,h5,h6,.site-footer h2,.menu-list h3,.contact-overview h3{font-weight:700}
h1,.page-hero.no-photo h1{font-size:clamp(2.3rem,5.2vw,5.4rem);line-height:1.15}
.hero h1{font-size:clamp(2.6rem,5.8vw,6rem);line-height:1.15;max-width:9em;letter-spacing:-.018em}
.coming-main h1{font-size:clamp(2.2rem,5.2vw,5.6rem);line-height:1.15;max-width:11em;letter-spacing:-.018em}
h2,.intro-grid h2,.food-copy h2,.river-copy h2,.private-event h2,.menu-block-heading h2,.booking-copy h2,.sound-call h2,.last-call h2{font-size:clamp(1.95rem,3.8vw,3.75rem);line-height:1.2}
.event-card-body h3{font-size:clamp(1.45rem,2.2vw,2.1rem);line-height:1.25}
.contact-dialog h2{font-size:clamp(1.7rem,4vw,2.8rem);line-height:1.2}
.site-footer h2{font-size:.875rem;line-height:1.6;letter-spacing:.08em}
@media(max-width:58rem){.section-heading{align-items:flex-start}.section-heading-aside{max-width:18rem}}
@media(max-width:44rem){h1,.page-hero.no-photo h1{font-size:clamp(1.95rem,8.5vw,3.8rem)}.hero h1{font-size:clamp(2rem,10vw,4.4rem)}.coming-main h1{font-size:clamp(1.85rem,8.5vw,3.9rem)}h2,.intro-grid h2,.food-copy h2,.river-copy h2,.private-event h2,.menu-block-heading h2,.booking-copy h2,.sound-call h2,.last-call h2{font-size:clamp(1.75rem,6.8vw,2.9rem);line-height:1.2}.event-card-body h3{font-size:1.7rem}.page-hero-copy .lead{margin-top:1.5rem}.hero-description{margin-top:1.6rem}.contact-dialog h2{font-size:1.8rem}}
@media(max-width:24rem){.hero h1{font-size:2rem}.coming-main h1{font-size:1.85rem}}

/* Sfondo Coming soon con livelli espliciti, senza z-index negativi. */
.coming-soon-visual{z-index:0;pointer-events:none}
.coming-soon-shade{z-index:1;pointer-events:none}
.coming-header,.coming-main,.coming-footer{position:relative;z-index:2}
