:root {
  --cream: #f8efe0;
  --paper: #fff8ec;
  --ink: #32251b;
  --muted: #7d6a58;
  --brown: #21150e;
  --gold: #b4833d;
  --wine: #70221f;
  --line: rgba(50, 37, 27, .16);
  --shadow: 0 30px 80px rgba(33, 21, 14, .2);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Inter,sans-serif;color:var(--ink);background:linear-gradient(180deg,#fffaf1,#f1e1c8);overflow-x:hidden}
a{text-decoration:none;color:inherit} img{max-width:100%;display:block}
.loader{position:fixed;inset:0;background:var(--brown);color:var(--cream);z-index:9999;display:grid;place-items:center;transition:.6s}
.loader.hide{opacity:0;visibility:hidden}
.loader-logo{width:120px;height:120px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;text-align:center;font-family:Cinzel,serif;line-height:.88;color:var(--gold);animation:breathe 1.2s infinite alternate}
.loader-logo span{font-family:"Cormorant Garamond",serif;font-style:italic}
.top{position:fixed;inset:0 0 auto 0;z-index:99;text-align:center;transition:.35s ease}
.top.compact{background:rgba(255,248,236,.96);backdrop-filter:blur(16px);box-shadow:0 16px 40px rgba(33,21,14,.08)}
.contact-line{background:var(--brown);color:var(--cream);font-size:.82rem;padding:8px 18px;display:flex;justify-content:center;gap:10px;flex-wrap:wrap;transition:.25s}
.social-line{position:absolute;right:7vw;top:7px;display:flex;gap:14px;color:var(--cream);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}
.brand-wrap{padding:18px 20px 12px;transition:.3s}
.brand{display:inline-grid;justify-items:center;color:var(--wine);font-family:Cinzel,serif;line-height:.78}
.brand-main{font-size:clamp(2.3rem,5vw,4.2rem);letter-spacing:.06em;transition:.3s}
.brand-mid{font-family:"Cormorant Garamond",serif;color:var(--gold);font-style:italic;font-size:clamp(1.5rem,3vw,2.2rem);margin:2px 0;transition:.3s}
.brand small{margin-top:12px;font-family:Inter,sans-serif;color:var(--muted);letter-spacing:.28em;text-transform:uppercase;font-size:.68rem}
.top.compact .contact-line,.top.compact .social-line{display:none}
.top.compact .brand-wrap{padding:8px 20px 6px}
.top.compact .brand-main{font-size:1.45rem}
.top.compact .brand-mid{font-size:1rem}
.top.compact .brand small{display:none}
.main-nav{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,248,236,.9);display:flex;justify-content:center;gap:34px;padding:15px 20px;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:600}
.main-nav a,.drop-link{color:var(--brown);position:relative}
.main-nav a::after,.drop-link::after{content:"";position:absolute;left:50%;bottom:-7px;width:0;height:1px;background:var(--gold);transition:.25s;transform:translateX(-50%)}
.main-nav a:hover::after,.main-nav a.active::after,.drop-link:hover::after,.drop-link.active::after{width:100%}
.dropdown{position:relative}
.dropdown-menu{position:absolute;top:28px;left:50%;transform:translateX(-50%) translateY(10px);min-width:185px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);padding:12px;opacity:0;pointer-events:none;transition:.25s;display:grid;gap:10px;z-index:120}
.dropdown:hover .dropdown-menu{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.nav-toggle{display:none;position:absolute;right:22px;top:54px;border:0;background:transparent}.nav-toggle span{display:block;width:28px;height:2px;background:var(--brown);margin:6px 0}
.hero{min-height:100vh;padding:260px 7vw 90px;position:relative;display:grid;place-items:center}
.hero-bg{position:absolute;inset:0;background:linear-gradient(rgba(255,248,236,.75),rgba(255,248,236,.95)),url("images/hero.jpg") center/cover no-repeat;z-index:-2;animation:slowZoom 16s ease-in-out infinite alternate}
.hero-card,.page-hero-content{max-width:850px;background:rgba(255,248,236,.86);border:1px solid rgba(180,131,61,.32);box-shadow:var(--shadow);padding:clamp(32px,5vw,70px);text-align:center;position:relative}
.hero-card::before,.hero-card::after{content:"";position:absolute;inset:14px;border:1px solid rgba(180,131,61,.3);pointer-events:none}
.salute{font-family:"Cormorant Garamond",serif;font-size:1.6rem;color:var(--wine);margin-bottom:10px}
h1,h2,h3{font-family:"Cormorant Garamond",serif;font-weight:700}h1{font-size:clamp(3rem,7vw,6.6rem);line-height:.9;color:var(--wine);margin-bottom:22px}h2{font-size:clamp(2.2rem,4vw,4.3rem);line-height:.95;color:var(--wine)}h3{font-size:1.7rem;color:var(--brown)}
p{line-height:1.85;color:var(--muted)}
.announcement{margin:30px auto;padding:24px;border-top:1px solid rgba(180,131,61,.35);border-bottom:1px solid rgba(180,131,61,.35)}
.announcement span,.eyebrow{display:block;color:var(--gold);text-transform:uppercase;letter-spacing:.26em;font-size:.76rem;font-weight:700;margin-bottom:12px}.announcement strong{display:block;color:var(--wine);font-family:"Cormorant Garamond",serif;font-size:clamp(2rem,4vw,3.5rem);line-height:1}
.signature{margin-top:16px;font-family:"Cormorant Garamond",serif;font-size:1.45rem}
.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:30px;position:relative;z-index:2}.btn{min-height:48px;padding:14px 24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;transition:.25s;cursor:pointer;border:1px solid rgba(180,131,61,.38)}.btn.gold{background:var(--gold);color:#fff8ec;border-color:var(--gold)}.btn.outline{background:transparent;color:var(--wine)}.btn:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(180,131,61,.22)}
.section{padding:105px 7vw}.two-col,.booking{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center}.section-copy{max-width:620px}.lunch-box{display:grid;gap:18px}.lunch-box article,.dish,.booking-form,.contact-box,.classic-item{background:rgba(255,248,236,.78);border:1px solid rgba(180,131,61,.26);box-shadow:var(--shadow)}.lunch-box article{padding:28px}.lunch-box span,.dish small{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:700}.lunch-box strong,.dish strong,.classic-item strong{color:var(--wine);display:inline-block;margin-top:14px;font-size:1.1rem}
.page-hero{min-height:58vh;padding:260px 7vw 80px;display:grid;place-items:center;text-align:center;position:relative}.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,248,236,.78),rgba(255,248,236,.96)),url("images/hero.jpg") center/cover no-repeat;z-index:-1}
.filters{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-bottom:44px}.filter{background:transparent;color:var(--wine);border:1px solid rgba(180,131,61,.38);padding:12px 20px;border-radius:999px;cursor:pointer;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:700;transition:.25s}.filter.active,.filter:hover{background:var(--wine);color:var(--cream);border-color:var(--wine)}
.menu-section-title{text-align:center;max-width:760px;margin:40px auto 24px}.menu-list-page{padding-top:70px}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:24px}.dish{overflow:hidden;transition:opacity .28s ease,transform .28s ease}.dish.hide{display:none}.dish img{height:230px;width:100%;object-fit:cover;transition:.45s}.dish:hover img{transform:scale(1.07)}.dish div{padding:24px}.dish h3{margin:10px 0}.classic-list{display:grid;gap:16px;max-width:960px;margin:0 auto 44px}.classic-item{padding:24px;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.wine-list .classic-item{border-left:4px solid var(--wine)}
.gallery{display:grid;grid-template-columns:1fr .8fr 1fr;gap:20px}.gallery img{height:460px;width:100%;object-fit:cover;box-shadow:var(--shadow);border:8px solid var(--paper)}.gallery img:nth-child(2){margin-top:70px;height:390px}
.booking{background:radial-gradient(circle at 15% 15%,rgba(112,34,31,.12),transparent 30%),linear-gradient(180deg,#f7ead5,#fff8ec)}.booking-form{padding:32px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:grid;gap:8px;color:var(--muted);margin-bottom:18px;font-size:.9rem}input,select,textarea{width:100%;border:1px solid rgba(50,37,27,.18);background:rgba(255,255,255,.65);padding:15px 16px;border-radius:3px;font:inherit;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold)}.form-message{color:var(--wine);margin-top:15px;min-height:24px}
.contact{display:grid;place-items:center}.contact-box{max-width:720px;width:100%;text-align:center;padding:50px}.contact-links{margin-top:24px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap;color:var(--wine);font-size:.88rem}
footer{background:var(--brown);text-align:center;padding:24px 7vw}footer p{color:rgba(248,239,224,.75)}
.reveal{opacity:0;transform:translateY(34px);transition:.85s cubic-bezier(.2,.8,.2,1)}.reveal.show{opacity:1;transform:translateY(0)}.delay-1{transition-delay:.12s}.delay-2{transition-delay:.24s}
@keyframes breathe{from{transform:scale(.96);opacity:.7}to{transform:scale(1.04);opacity:1}}@keyframes slowZoom{from{transform:scale(1.02)}to{transform:scale(1.1)}}
@media(max-width:980px){.social-line{display:none}.nav-toggle{display:block}.brand-wrap{padding-right:70px}.main-nav{position:absolute;left:18px;right:18px;top:148px;display:grid;gap:16px;text-align:left;border:1px solid var(--line);box-shadow:var(--shadow);transform:translateY(-15px);opacity:0;pointer-events:none;transition:.25s}.main-nav.open{opacity:1;transform:translateY(0);pointer-events:auto}.dropdown-menu{position:static;opacity:1;transform:none;pointer-events:auto;box-shadow:none;margin-top:10px}.hero,.page-hero{padding-top:230px}.two-col,.booking,.menu-grid,.gallery{grid-template-columns:1fr}.gallery img,.gallery img:nth-child(2){height:320px;margin-top:0}.top.compact .nav-toggle{top:18px}}
@media(max-width:620px){.contact-line{font-size:.72rem}.brand-main{font-size:2rem}.section,.hero,.page-hero{padding-inline:22px}.hero,.page-hero{padding-top:220px}.form-row{grid-template-columns:1fr;gap:0}.hero-actions,.btn{width:100%}.classic-item{display:block}}


/* Clean no-booking version fixes */
#rotweine,
#weissweine,
#roseweine {
  scroll-margin-top: 150px;
}

.reservation-source {
  margin-top: 28px;
  padding: 26px;
  background: rgba(255,248,236,.78);
  border: 1px solid rgba(180,131,61,.26);
  box-shadow: var(--shadow);
  text-align: center;
}

.reservation-source a {
  color: var(--wine);
  font-weight: 700;
}

@media (max-width: 980px) {
  #rotweine,
  #weissweine,
  #roseweine {
    scroll-margin-top: 190px;
  }
}


/* CHIC LIGHT VERSION */
html {
  scroll-behavior: smooth;
}

body {
  text-rendering: optimizeLegibility;
}

.loader {
  display: none !important;
}

/* Remove heavy infinite background animation */
.hero-bg {
  animation: none !important;
  transform: none !important;
}

/* Header: elegant, visible at top, almost gone while scrolling */
.top {
  transition: transform .28s ease, opacity .28s ease, background .28s ease, box-shadow .28s ease !important;
  will-change: transform, opacity;
}

.top.compact {
  opacity: 0.14 !important;
  transform: translateY(-74%) !important;
  pointer-events: none !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.top.compact:hover {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
  background: rgba(255,248,236,.96) !important;
  box-shadow: 0 14px 34px rgba(33,21,14,.08) !important;
}

/* Light premium reveal, only once, not heavy */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .42s ease, transform .42s ease !important;
  will-change: opacity, transform;
}

.reveal.show {
  opacity: 1;
  transform: translateY(0);
}

/* Lightweight premium hover effects */
.dish,
.classic-item,
.lunch-box article,
.contact-box,
.page-hero-content,
.hero-card {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.dish:hover,
.classic-item:hover,
.lunch-box article:hover {
  transform: translateY(-4px);
  border-color: rgba(180,131,61,.42);
}

.dish img {
  transition: transform .28s ease, filter .28s ease !important;
}

.dish:hover img {
  transform: scale(1.035) !important;
  filter: contrast(1.03) saturate(1.04);
}

/* Filter animation without layout bugs */
.dish.hide {
  display: none !important;
}

.filter {
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease !important;
}

.filter:hover {
  transform: translateY(-2px);
}

/* Keep anchor targets visible under fixed header */
#rotweine,
#weissweine,
#roseweine,
#antipasti,
#salate,
#pasta,
#pizza,
#carne-pesce,
#dolci,
#bevande {
  scroll-margin-top: 150px;
}

/* Better image performance */
img {
  content-visibility: auto;
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

@media (max-width: 980px) {
  .top.compact {
    opacity: 0.16 !important;
    transform: translateY(-70%) !important;
  }

  #rotweine,
  #weissweine,
  #roseweine,
  #antipasti,
  #salate,
  #pasta,
  #pizza,
  #carne-pesce,
  #dolci,
  #bevande {
    scroll-margin-top: 190px;
  }
}
