:root{
  --black:#1C1C1C;--gold:#D4AF37;--cream:#FFFEF7;--olive:#708238;
  --muted:rgba(255,255,255,.75);--radius:18px;--shadow:0 18px 48px rgba(0,0,0,.18);--maxw:1160px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:"Inter",system-ui,sans-serif;background:var(--cream);color:var(--black);line-height:1.7}
img{max-width:100%;display:block}
.container{width:min(100% - 2.2rem,var(--maxw));margin-inline:auto}
.section{padding:5.5rem 0}.section-alt{background:#f7f5ea}
.section-title{font-family:"Playfair Display",serif;font-size:clamp(1.8rem,2.8vw,2.6rem);margin:0 0 .6rem}
.section-subtitle{color:rgba(0,0,0,.7);margin-bottom:1.6rem}
.section-head{text-align:center;margin-bottom:2.2rem}
.mini-title{font-family:"Playfair Display",serif;font-size:1.4rem;margin:2.6rem 0 1.2rem}

/* NAVBAR */
.navbar{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(28,28,28,.9);backdrop-filter:blur(6px);
  transition:padding .25s ease,background .25s ease;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.04)}
.navbar.shrink{padding:.55rem 0;background:rgba(28,28,28,.98)}
.nav-container{width:min(100% - 2.2rem,var(--maxw));margin:0 auto;display:flex;align-items:center;gap:1rem;justify-content:space-between}
.logo{color:#fff;text-decoration:none;font-family:"Playfair Display",serif;letter-spacing:.16em;font-size:1.05rem;display:flex;align-items:center;gap:.25rem}
.logo-mark{background:var(--gold);color:var(--black);font-weight:700;padding:.12rem .4rem;border-radius:8px}.logo-accent{color:var(--gold)}
.nav-links{display:flex;gap:1.1rem;align-items:center}
.nav-link{color:var(--muted);text-decoration:none;font-size:.95rem;position:relative;padding:.3rem .15rem;transition:color .2s ease}
.nav-link:hover{color:#fff}
.nav-link:after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--gold);transition:width .25s ease}
.nav-link:hover:after{width:100%}
.nav-actions{display:flex;gap:.6rem;align-items:center}
.lang-select{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.35rem .55rem;border-radius:999px;font-weight:600;cursor:pointer}
.theme-toggle{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;cursor:pointer;
  display:grid;place-items:center;transition:transform .2s ease}.theme-toggle:hover{transform:translateY(-1px)}
.hamburger{display:none;width:42px;height:36px;background:transparent;border:0;cursor:pointer}
.hamburger span{display:block;height:2px;width:100%;background:#fff;margin:7px 0;transition:transform .25s ease,opacity .25s ease}
.hamburger.active span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}

/* HERO + SLIDER */
.hero{min-height:100vh;position:relative;display:grid;place-items:center;color:#fff;padding-top:4.2rem}
.hero-overlay{position:absolute;inset:0;background:rgba(0,0,0,.4)}
.hero-content{position:relative;text-align:center;padding:1.5rem 0}
.hero-eyebrow{letter-spacing:.22em;text-transform:uppercase;font-size:.9rem;color:rgba(255,255,255,.85);margin-bottom:.8rem}
.hero h1{font-family:"Playfair Display",serif;font-size:clamp(2.2rem,5vw,4.1rem);line-height:1.1;margin:0 0 1rem}
.hero-subtitle{font-size:clamp(1rem,2vw,1.3rem);color:rgba(255,255,255,.9);margin-bottom:1.8rem}
.hero-cta{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap}
.hero-slider{position:absolute;inset:0;overflow:hidden}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease}
.hero-slide.active{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover}
.hero-dots{display:flex;gap:.5rem;justify-content:center;margin-top:1.2rem}
.hero-dots button{width:8px;height:8px;border-radius:999px;border:0;cursor:pointer;background:rgba(255,255,255,.5)}
.hero-dots button.active{background:var(--gold);transform:scale(1.3)}
.scroll-indicator{position:absolute;bottom:1.2rem;left:50%;transform:translateX(-50%);width:26px;height:42px;border:1.5px solid rgba(255,255,255,.8);
  border-radius:18px;display:flex;justify-content:center;padding-top:6px}
.scroll-indicator span{width:6px;height:6px;background:#fff;border-radius:50%;animation:scrollDot 1.6s infinite}
@keyframes scrollDot{0%{transform:translateY(0);opacity:1}70%{transform:translateY(18px);opacity:.2}100%{transform:translateY(0);opacity:1}}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.9rem 1.3rem;border-radius:999px;font-weight:600;text-decoration:none;border:1.5px solid transparent;cursor:pointer;
  transition:transform .2s ease,background .2s ease,border .2s ease,color .2s ease,box-shadow .2s ease}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.btn-gold{background:var(--gold);color:var(--black)}
.btn-outline{background:transparent;color:#fff;border-color:#fff}.btn-outline:hover{background:#fff;color:var(--black)}
.btn-outline-dark{background:transparent;color:var(--black);border-color:var(--black)}.btn-outline-dark:hover{background:var(--black);color:#fff}
.btn-sm{padding:.6rem 1rem;font-size:.9rem}.w-100{width:100%}

/* LAYOUT */
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:2.2rem;align-items:center}
.chef-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.chef-info{padding:1.3rem 1.3rem 1.6rem}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;margin-top:1.6rem}
.stat-card{background:#fff;border-radius:14px;padding:1rem;display:flex;gap:.8rem;align-items:center;box-shadow:0 8px 20px rgba(0,0,0,.06)}
.stat-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#fcf7df;font-size:1.25rem}
.stat-number{font-weight:700;font-size:1.2rem}.stat-label{font-size:.92rem;color:rgba(0,0,0,.65)}

/* MENU */
.tabs{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin-bottom:1.4rem}
.tab{border:1px solid rgba(0,0,0,.18);background:#fff;padding:.6rem 1rem;border-radius:999px;cursor:pointer;font-weight:600;transition:all .2s ease}
.tab.active{background:var(--black);color:#fff;border-color:var(--black)}
.menu-panels{background:#fff;border-radius:var(--radius);padding:1.2rem;box-shadow:var(--shadow)}
.panel{display:none}.panel.active{display:block}
.menu-item{display:flex;justify-content:space-between;gap:1rem;padding:1rem .6rem;border-bottom:1px dashed rgba(0,0,0,.12)}
.menu-item:last-child{border-bottom:0}
.menu-item h4{font-family:"Playfair Display",serif;margin:0 0 .2rem;font-size:1.15rem}
.menu-item p{margin:0;color:rgba(0,0,0,.65)}
.price{font-weight:700;font-size:1.1rem;white-space:nowrap}
.badges{margin-top:.45rem;display:flex;flex-wrap:wrap;gap:.35rem}.badge{font-size:.8rem;background:#f2f2f2;padding:.2rem .5rem;border-radius:999px}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.feature-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.08);transition:transform .2s ease}
.feature-card:hover{transform:translateY(-4px)}
.feature-info{padding:.9rem 1rem 1.1rem}
.feature-info h4{margin:0 0 .25rem;font-family:"Playfair Display",serif}

/* GALLERY */
.masonry{columns:3 260px;column-gap:1rem}
.masonry-item{position:relative;margin:0 0 1rem;break-inside:avoid;border-radius:14px;overflow:hidden;cursor:pointer;transform:translateZ(0)}
.masonry-item img{width:100%;height:auto;transition:transform .5s ease,filter .5s ease}
.masonry-item figcaption{
  position:absolute;inset:0;background:rgba(0,0,0,.25);opacity:0;display:grid;place-items:center;transition:opacity .25s ease;
  pointer-events:none;
}
.masonry-item:hover img{
  transform:scale(1.10) rotate(-0.6deg) translateY(-3px);
  filter:saturate(1.1) contrast(1.05);
}
.masonry-item:hover figcaption{opacity:1}
.expand{background:#fff;color:#000;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:700}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;place-items:center;z-index:999;padding:2rem}
.lightbox.active{display:grid}
.lightbox img{max-height:85vh;max-width:92vw;border-radius:12px;box-shadow:var(--shadow)}
.lightbox-close{position:absolute;top:1rem;right:1rem;background:#fff;border:0;cursor:pointer;width:44px;height:44px;border-radius:50%;font-size:1.2rem}

/* RESERVATIONS */
.reservations{position:relative;color:var(--black);overflow:hidden}
.reservations-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.05)}
.reservations-overlay{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.reservations-wrap{position:relative;display:grid;place-items:center}
.reservations-card{background:#fff;border-radius:20px;padding:1.6rem;width:min(680px,100%);box-shadow:var(--shadow)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
label{font-size:.9rem;font-weight:600;display:grid;gap:.35rem}
input,select,textarea{width:100%;background:#fff;border:1px solid rgba(0,0,0,.18);border-radius:10px;padding:.7rem .8rem;font-family:inherit;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--olive);box-shadow:0 0 0 3px rgba(112,130,56,.15)}
label.full{grid-column:1/-1}
.form-note{font-size:.9rem;color:rgba(0,0,0,.7);text-align:center;margin-top:.9rem}
.call-link{color:var(--black);font-weight:700;text-decoration:none}
.form-success{display:none;text-align:center;padding:1.2rem 0}
.form-success.active{display:block;animation:pop .35s ease}
.success-check{width:64px;height:64px;margin:0 auto .6rem;border-radius:50%;display:grid;place-items:center;background:#e9f4da;color:#2d5b11;font-size:1.8rem;font-weight:800}
@keyframes pop{from{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}

/* REVIEWS */
.reviews{display:grid;gap:1.2rem;justify-items:center}
.reviews-track{display:flex;gap:1rem;overflow:hidden;width:100%}
.review-card{min-width:calc(33.333% - .7rem);background:#fff;border-radius:16px;padding:1.2rem;box-shadow:0 8px 20px rgba(0,0,0,.07)}
.review-stars{color:var(--gold);letter-spacing:.1em;margin-bottom:.45rem}
.review-user{display:flex;gap:.7rem;align-items:center}
.review-user img{width:48px;height:48px;border-radius:50%}
.review-user span{font-size:.85rem;color:rgba(0,0,0,.6)}
.review-dots{display:flex;gap:.35rem;justify-content:center}
.review-dots button{width:8px;height:8px;border-radius:50%;border:0;background:#d6d6d6;cursor:pointer}
.review-dots button.active{background:var(--black)}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:1.2rem}
.contact-card{background:#fff;border-radius:18px;padding:1.3rem;box-shadow:var(--shadow)}
.contact-list{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.6rem}
.contact-list li{display:flex;gap:.6rem;align-items:flex-start}
.contact-list a{color:var(--black);font-weight:700;text-decoration:none}
.socials{display:flex;gap:.6rem;margin-top:1rem}
.socials a{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--black);color:var(--gold);text-decoration:none;font-weight:700}
.map-card{border-radius:18px;overflow:hidden;box-shadow:var(--shadow);background:#fff}
.map-card iframe{width:100%;height:100%;min-height:320px;border:0}

/* FOOTER */
.footer{background:var(--black);color:#fff;padding-top:3.2rem}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:1.6rem;padding-bottom:2.4rem}
.footer-col h4{font-family:"Playfair Display",serif;margin:0 0 .7rem}
.footer-col a{color:var(--muted);text-decoration:none;display:block;margin:.35rem 0}
.footer-col a:hover{color:#fff}
.newsletter{display:flex;gap:.4rem;margin-top:.6rem}
.newsletter input{background:transparent;color:#fff;border-color:rgba(255,255,255,.25)}
.footer-socials{display:flex;gap:.5rem;margin-top:.9rem}
.footer-socials a{color:var(--gold);text-decoration:none;font-weight:700}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:1rem 0}
.bottom-row{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:space-between;align-items:center;color:rgba(255,255,255,.8);font-size:.9rem}
.payments{color:var(--gold)}

/* FADE IN */
.fade-in{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}

/* DARK MODE */
body.dark{background:#0f0f0f;color:#f5f5f5}
body.dark .section-alt{background:#121212}
body.dark .menu-panels,body.dark .chef-card,body.dark .stat-card,body.dark .feature-card,body.dark .reservations-card,body.dark .contact-card,body.dark .map-card,body.dark .review-card{
  background:#151515;color:#f5f5f5;box-shadow:none;border:1px solid rgba(255,255,255,.06)
}
body.dark .section-subtitle,body.dark .menu-item p,body.dark .contact-list li,body.dark .stat-label,body.dark .review-user span{color:rgba(255,255,255,.75)}
body.dark .btn-outline-dark{color:#f5f5f5;border-color:#f5f5f5}
body.dark .btn-outline-dark:hover{background:#f5f5f5;color:#111}
body.dark input,body.dark select,body.dark textarea{background:#0f0f0f;color:#f5f5f5;border-color:rgba(255,255,255,.15)}
body.dark .badge{background:#222}

/* RESPONSIVE */
@media (max-width:980px){
  .two-col{grid-template-columns:1fr}
  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .contact-grid{grid-template-columns:1fr}
  .review-card{min-width:calc(50% - .7rem)}
}
@media (max-width:720px){
  .nav-links{position:fixed;top:64px;right:0;left:0;background:rgba(28,28,28,.98);padding:1rem 1.2rem 1.6rem;display:grid;gap:.35rem;
    transform:translateY(-120%);transition:transform .25s ease;border-bottom:1px solid rgba(255,255,255,.06)}
  .nav-links.open{transform:translateY(0)}
  .nav-link{padding:.7rem 0;font-size:1.02rem}
  .hamburger{display:block}
  .stats{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .feature-grid{grid-template-columns:1fr}
  .masonry{columns:1}
  .review-card{min-width:100%}
  .footer-grid{grid-template-columns:1fr}
  .nav-actions{gap:.4rem}
}
