/* Pera Restaurant - Professional Modern Design */
:root{
  --bg:#0a0a0a;
  --panel:#1a1a1a;
  --panel2:#222222;
  --border:rgba(255,255,255,.08);
  --muted:rgba(255,255,255,.65);
  --text:#f5f5f5;
  --accent:#c41e3a; /* Luxe rode kleur */
  --accent-light:#d93954;
  --accent-dark:#9a1829;
  --gold:#d4af37; /* Gouden accent voor luxe uitstraling */
  --shadow:0 20px 60px rgba(0,0,0,.6);
  --shadow-lg:0 30px 80px rgba(0,0,0,.7);
  --gradient-primary:linear-gradient(135deg, #c41e3a 0%, #9a1829 100%);
  --gradient-gold:linear-gradient(135deg, #d4af37 0%, #f4cf5f 100%);
}

*{box-sizing:border-box; margin:0; padding:0}
html{
  scroll-behavior:smooth;
  font-size:16px;
}
html,body{height:100%}

/* Page transitions */
.js body{
  opacity:0;
  transform: translateY(20px);
  transition: opacity .4s cubic-bezier(0.4, 0, 0.2, 1), transform .4s cubic-bezier(0.4, 0, 0.2, 1);
}
.js body.page-ready{
  opacity:1;
  transform:none;
}
.js body.page-leave{
  opacity:0;
  transform: translateY(12px);
}

body{
  margin:0;
  font-family:'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
  background:var(--bg);
  color:var(--text);
  overflow-x:hidden;
  line-height:1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Premium Background Effects */
.bg-glow{
  position:fixed;
  inset:-50vh -50vw;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(ellipse at 15% 50%, rgba(196, 30, 58,.15), transparent 50%),
    radial-gradient(ellipse at 85% 40%, rgba(212, 175, 55,.08), transparent 50%),
    radial-gradient(ellipse at 50% 90%, rgba(196, 30, 58,.12), transparent 60%);
  filter: blur(80px);
  animation: glowPulse 15s ease-in-out infinite;
}

@keyframes glowPulse {
  0%, 100% { opacity: .7; }
  50% { opacity: 1; }
}

a{
  color:inherit; 
  text-decoration:none;
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
}
img{
  max-width:100%; 
  display:block;
  image-rendering: -webkit-optimize-contrast;
}

.wrap{
  width:min(1200px, 100%);
  margin:0 auto;
  padding:0 24px;
}

/* ==========================
   PREMIUM HEADER/NAVBAR
   ========================== */
.topbar{
  position:fixed;
  top:0; left:0; right:0;
  height:90px;
  z-index:100;
  background:rgba(10,10,10,.85);
  backdrop-filter: blur(20px) saturate(180%);
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow: 0 4px 30px rgba(0,0,0,.3);
  transition: all .3s ease;
}

.topbar.scrolled{
  height:75px;
  background:rgba(10,10,10,.95);
  box-shadow: 0 8px 40px rgba(0,0,0,.5);
}

.topbar-inner{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 24px;
  max-width:1400px;
  margin:0 auto;
}

.brand{
  display:flex; 
  align-items:center; 
  gap:12px;
  position:relative;
  z-index:10;
}

.brand-logo{
  height:48px; 
  width:auto; 
  object-fit:contain;
  filter: drop-shadow(0 2px 8px rgba(196, 30, 58,.3));
  transition: transform .3s ease, filter .3s ease;
}

.brand:hover .brand-logo{
  transform: scale(1.05);
  filter: drop-shadow(0 4px 12px rgba(196, 30, 58,.5));
}

.topbar-actions{
  display:flex; 
  align-items:center; 
  gap:16px;
}

/* ==========================
   DESKTOP NAVIGATION
   ========================== */
.nav-desktop{
  display:none;
  gap:8px;
  align-items:center;
  margin:0 auto;
}

.nav-link{
  padding:10px 20px;
  font-weight:600;
  font-size:15px;
  color:rgba(255,255,255,.85);
  border-radius:10px;
  transition: all .3s ease;
  position:relative;
  white-space:nowrap;
}

.nav-link::before{
  content:'';
  position:absolute;
  bottom:8px;
  left:20px;
  right:20px;
  height:2px;
  background:var(--gradient-primary);
  transform: scaleX(0);
  transition: transform .3s ease;
}

.nav-link:hover{
  color:#fff;
  background:rgba(255,255,255,.08);
}

.nav-link:hover::before{
  transform: scaleX(1);
}

/* Mobile only elements */
.mobile-only{
  display:block;
}

@media (min-width: 1024px){
  .nav-desktop{
    display:flex;
  }
  
  .mobile-only{
    display:none !important;
  }
  
  .topbar-inner{
    max-width:1400px;
    padding:0 40px;
  }
}

/* Modern Icon Buttons */
.icon-btn{
  width:48px; 
  height:48px;
  display:grid; 
  place-items:center;
  border:0;
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.9);
  cursor:pointer;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.1);
  transition: all .3s ease;
  position:relative;
  overflow:hidden;
}

.icon-btn::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-primary);
  opacity:0;
  transition: opacity .3s ease;
}

.icon-btn:hover{
  background:rgba(255,255,255,.08);
  border-color:var(--accent);
  transform: translateY(-2px);
}

.icon-btn:hover::before{
  opacity:.15;
}

.icon-btn svg{
  width:24px; 
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  position:relative;
  z-index:1;
  transition: transform .3s ease;
}

.icon-btn:hover svg{
  transform: scale(1.1);
}

/* Language Selector - Premium Style */
.lang{position:relative}

.lang-btn{
  height:48px;
  padding:0 16px;
  display:flex; 
  align-items:center; 
  gap:10px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.9);
  cursor:pointer;
  font-weight:600;
  border-radius:12px;
  transition: all .3s ease;
  font-size:14px;
}

.lang-btn:hover{
  background:rgba(255,255,255,.08);
  border-color:var(--accent);
  transform: translateY(-2px);
}

.lang-btn svg{
  width:20px; 
  height:20px; 
  fill:none; 
  stroke:currentColor; 
  stroke-width:2; 
  stroke-linecap:round; 
  stroke-linejoin:round;
  transition: transform .3s ease;
}

.lang-btn .chev{
  width:18px; 
  height:18px;
  transition: transform .3s ease;
}

.lang.open .lang-btn .chev{
  transform: rotate(180deg);
}

.lang-menu{
  position:absolute;
  top:calc(100% + 8px); 
  right:0;
  width:200px;
  background:rgba(20,20,20,.98);
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  box-shadow: var(--shadow);
  padding:8px;
  display:block;
  opacity:0;
  transform: translateY(-12px) scale(.96);
  pointer-events:none;
  visibility:hidden;
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
  backdrop-filter: blur(20px);
}

.lang.open .lang-menu{
  opacity:1;
  transform:none;
  pointer-events:auto;
  visibility:visible;
}

.lang-menu button{
  width:100%;
  padding:12px 16px;
  background:transparent;
  border:0;
  color:rgba(255,255,255,.85);
  text-align:left;
  border-radius:10px;
  cursor:pointer;
  font-weight:500;
  font-size:15px;
  transition: all .2s ease;
  position:relative;
  overflow:hidden;
}

.lang-menu button::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-primary);
  opacity:0;
  transition: opacity .3s ease;
}

.lang-menu button:hover{
  background:rgba(255,255,255,.08);
  color:#fff;
  transform: translateX(4px);
}

.lang-menu button:hover::before{
  opacity:.1;
}
/* ==========================
   PREMIUM HAMBURGER MENU
   ========================== */
.menu-btn{
  width:56px; 
  height:56px;
  border-radius:14px;
  background:rgba(196, 30, 58,.15);
  border:1px solid rgba(196, 30, 58,.3);
  box-shadow: 0 8px 24px rgba(196, 30, 58,.2);
  cursor:pointer;
  display:grid; 
  place-items:center;
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
  position:relative;
  overflow:hidden;
}

.menu-btn::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-primary);
  opacity:.3;
  transition: opacity .3s ease;
}

.menu-btn:hover{
  background:rgba(196, 30, 58,.25);
  border-color:var(--accent);
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(196, 30, 58,.4);
}

.menu-btn:hover::before{
  opacity:.5;
}

.menu-btn:active{
  transform: translateY(-1px);
}

.menu-lines{
  width:24px; 
  height:16px;
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
}

.menu-lines::before,
.menu-lines::after, 
.menu-lines{
  content:"";
  display:block;
  background:#fff;
  height:2.5px;
  width:24px;
  border-radius:3px;
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 1px 3px rgba(0,0,0,.3);
}

.menu-lines{
  background:#fff;
  position:relative;
}

.menu-lines::before{
  position:absolute; 
  top:-7px; 
  left:0;
}

.menu-lines::after{
  position:absolute; 
  top:7px; 
  left:0;
}

.menu-btn:hover .menu-lines::before{
  top:-8px;
}

.menu-btn:hover .menu-lines::after{
  top:8px;
}

/* ==========================
   PREMIUM DRAWER/SIDEBAR
   ========================== */
.drawer-backdrop{
  position:fixed; 
  inset:0;
  background:rgba(0,0,0,.75);
  backdrop-filter: blur(8px);
  z-index:90;
  opacity:0;
  transition: opacity .4s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events:none;
}

.drawer-backdrop.show{
  opacity:1;
  pointer-events:auto;
}

.drawer{
  position:fixed;
  top:0; 
  right:0;
  height:100%;
  width:min(420px, 90vw);
  background:linear-gradient(to bottom, rgba(15,15,15,.98), rgba(10,10,10,.98));
  backdrop-filter: blur(40px) saturate(150%);
  border-left:1px solid rgba(255,255,255,.12);
  box-shadow: -10px 0 60px rgba(0,0,0,.8);
  z-index:100;
  transform: translateX(100%);
  transition: transform .4s cubic-bezier(0.4, 0, 0.2, 1);
  padding:24px;
  overflow-y:auto;
}

.drawer.open{
  transform: translateX(0);
}

.drawer-top{
  display:flex; 
  align-items:center; 
  justify-content:space-between; 
  padding:8px 0 24px;
  border-bottom:1px solid rgba(255,255,255,.1);
  margin-bottom:24px;
}

.drawer-title{
  font-weight:700; 
  font-size:24px;
  letter-spacing:-.02em;
  background:var(--gradient-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

.drawer-close{
  width:48px; 
  height:48px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.05);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  transition: all .3s ease;
  display:grid;
  place-items:center;
  font-weight:300;
}

.drawer-close:hover{
  background:var(--accent);
  border-color:var(--accent);
  transform: rotate(90deg) scale(1.1);
  box-shadow: 0 8px 24px rgba(196, 30, 58,.4);
}

.drawer-nav{
  display:flex; 
  flex-direction:column; 
  gap:8px; 
  padding:8px 0;
}

.drawer-nav a{
  padding:16px 20px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
  color:rgba(255,255,255,.85);
  font-weight:500;
  font-size:16px;
  opacity:0;
  transform: translateX(30px);
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
  position:relative;
  overflow:hidden;
}

.drawer-nav a::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--gradient-primary);
  transform: translateX(-4px);
  transition: transform .3s ease;
}

.drawer-nav a:hover{
  background:rgba(255,255,255,.08);
  border-color:var(--accent);
  color:#fff;
  transform: translateX(8px);
  box-shadow: 0 4px 16px rgba(196, 30, 58,.2);
}

.drawer-nav a:hover::before{
  transform: translateX(0);
}

.drawer.open .drawer-nav a{
  opacity:1;
  transform:translateX(0);
}

.drawer.open .drawer-nav a:nth-child(1){transition-delay:50ms}
.drawer.open .drawer-nav a:nth-child(2){transition-delay:100ms}
.drawer.open .drawer-nav a:nth-child(3){transition-delay:150ms}
.drawer.open .drawer-nav a:nth-child(4){transition-delay:200ms}
.drawer.open .drawer-nav a:nth-child(5){transition-delay:250ms}
.drawer.open .drawer-nav a:nth-child(6){transition-delay:300ms}
.drawer.open .drawer-nav a:nth-child(7){transition-delay:350ms}
.drawer.open .drawer-nav a:nth-child(8){transition-delay:400ms}
/* ==========================
   PREMIUM HERO SECTION
   ========================== */
.hero{
  position:relative;
  min-height:100vh;
  padding-top:90px;
  display:grid;
  place-items:center;
  overflow:hidden;
}

.hero-media{
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:0;
}

.hero-video{
  width:100%;
  height:100%;
  object-fit:cover;
  transform: scale(1.05);
  filter: brightness(.4) contrast(1.1) saturate(1.15);
  animation: slowZoom 20s ease-in-out infinite alternate;
}

@keyframes slowZoom {
  0% { transform: scale(1.05); }
  100% { transform: scale(1.15); }
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 40%, rgba(0,0,0,.3), rgba(0,0,0,.8) 80%),
    linear-gradient(to bottom, rgba(0,0,0,.4), rgba(10,10,10,.7) 70%, rgba(10,10,10,.9));
  z-index:1;
}

.hero-inner{
  position:relative;
  text-align:center;
  padding:60px 24px 40px;
  width:min(900px, 100%);
  z-index:2;
  animation: heroFadeIn 1.2s ease-out;
}

@keyframes heroFadeIn {
  from {
    opacity:0;
    transform: translateY(40px);
  }
  to {
    opacity:1;
    transform: translateY(0);
  }
}

.hero-title{
  margin:0 0 20px;
  font-size: clamp(48px, 8vw, 82px);
  font-weight:800;
  letter-spacing:-.03em;
  line-height:1.1;
  color:#fff;
  text-shadow: 
    0 3px 12px rgba(0,0,0,.9),
    0 6px 24px rgba(0,0,0,.7);
  position:relative;
  z-index:2;
}

.hero-sub{
  margin:0 auto 32px;
  max-width:700px;
  font-size: clamp(18px, 3.5vw, 26px);
  color:#fff;
  line-height:1.5;
  font-weight:500;
  text-shadow: 
    0 2px 8px rgba(0,0,0,.9),
    0 4px 16px rgba(0,0,0,.7);
  position:relative;
  z-index:2;
}

.hero-cta{
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:40px;
}

@media (min-width: 768px){
  .hero-cta{
    gap:24px;
  }
  
  .hero-cta .btn{
    min-width:220px;
  }
}

/* ==========================
   PREMIUM BUTTONS
   ========================== */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  height:62px;
  padding:0 32px;
  border-radius:16px;
  font-weight:600;
  font-size:18px;
  border:none;
  box-shadow: 0 8px 24px rgba(0,0,0,.3);
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
  user-select:none;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  text-transform:none;
}

.btn::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(255,255,255,.2) 0%, transparent 100%);
  opacity:0;
  transition: opacity .3s ease;
}

.btn:hover::before{
  opacity:1;
}

.btn:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,.4);
}

.btn:active{
  transform: translateY(-2px);
}

.btn-primary{
  background: var(--gradient-primary);
  color:#fff;
  border:1px solid rgba(255,255,255,.2);
}

.btn-primary:hover{
  box-shadow: 0 16px 40px rgba(196, 30, 58,.5);
}

.btn.wide{
  width:100%;
  max-width:400px;
}

.btn-pill{
  margin-top:24px;
  background:linear-gradient(135deg, #fff 0%, #f5f5f5 100%);
  color:var(--accent);
  border-radius:50px;
  border:none;
  height:68px;
  padding:0 36px;
  font-size:20px;
  box-shadow: 0 12px 40px rgba(0,0,0,.3);
  font-weight:700;
  position:relative;
  overflow:hidden;
  display:inline-flex;
  align-items:center;
  gap:12px;
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
}

.btn-pill::after{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-primary);
  opacity:0;
  transition: opacity .3s ease;
}

.btn-pill:hover::after{
  opacity:.1;
}

.btn-pill:hover{
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 20px 50px rgba(196, 30, 58,.4);
}

.pill-icon{
  width:28px; 
  height:28px;
  border-radius:10px;
  background:rgba(196,30,58,.15);
  position:relative;
  z-index:1;
}

.pill-icon::before,
.pill-icon::after{
  content:"";
  position:absolute;
  inset:8px;
  border:2.5px solid var(--accent);
  border-left:0;
  border-top:0;
  transform: rotate(-45deg);
  border-radius:3px;
}

.announce-cta-wrapper{
  display:flex;
  justify-content:center;
  margin-top:32px;
}

.btn-pill::after{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-primary);
  opacity:0;
  transition: opacity .3s ease;
}

.btn-pill:hover::after{
  opacity:.1;
}

.btn-pill:hover{
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 20px 50px rgba(196, 30, 58,.4);
}

.pill-icon{
  width:28px; 
  height:28px;
  border-radius:10px;
  background:rgba(196,30,58,.15);
  position:relative;
  z-index:1;
}

.pill-icon::before,
.pill-icon::after{
  content:"";
  position:absolute;
  inset:8px;
  border:2.5px solid var(--accent);
  border-left:0;
  border-top:0;
  transform: rotate(-45deg);
  border-radius:3px;
}

/* ==========================
   SECTIONS & TYPOGRAPHY
   ========================== */
.section{
  padding:80px 0;
  position:relative;
}

.section-title{
  text-align:center;
  margin:0 0 60px;
  font-size: clamp(36px, 6vw, 56px);
  font-weight:800;
  letter-spacing:-.03em;
  background:var(--gradient-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  position:relative;
  display:inline-block;
  width:100%;
}

.section-title::after{
  content:'';
  display:block;
  width:80px;
  height:4px;
  background:var(--gradient-gold);
  margin:20px auto 0;
  border-radius:2px;
}

/* ==========================
   ANNOUNCEMENT SECTION
   ========================== */
.announce{
  padding:60px 0 40px;
}

.announce-box{
  position:relative;
  border-radius:24px;
  padding:60px 32px;
  background: linear-gradient(135deg, rgba(196,30,58,.95), rgba(154,24,41,.9));
  box-shadow: var(--shadow-lg);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.15);
}

.announce-box::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 50%, rgba(212,175,55,.15), transparent 60%),
    radial-gradient(circle at 80% 50%, rgba(255,255,255,.08), transparent 50%);
  pointer-events:none;
}

.announce-title{
  margin:0 0 20px;
  text-align:center;
  font-size: clamp(42px, 7vw, 64px);
  font-weight:800;
  letter-spacing:.08em;
  text-shadow: 0 4px 20px rgba(0,0,0,.4);
  position:relative;
  z-index:1;
}

.announce-text{
  margin:16px auto 32px;
  max-width:800px;
  text-align:center;
  font-size: clamp(18px, 3.5vw, 24px);
  color: rgba(255,255,255,.92);
  line-height:1.7;
  position:relative;
  z-index:1;
  font-weight:400;
}

.announce-meta{
  display:flex;
  gap:24px;
  justify-content:center;
  margin-top:24px;
  flex-wrap:wrap;
  position:relative;
  z-index:1;
}

.meta-item{
  display:flex;
  align-items:center;
  gap:12px;
  color: rgba(255,255,255,.95);
  font-weight:600;
  font-size:17px;
  padding:12px 20px;
  background:rgba(255,255,255,.12);
  border-radius:50px;
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.2);
  transition: all .3s ease;
}

.meta-item:hover{
  background:rgba(255,255,255,.18);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
}

.meta-item svg{
  width:24px; 
  height:24px;
  fill:none;
  stroke: currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Decorative stars */
.stars{
  position:absolute; 
  inset:0; 
  pointer-events:none;
  z-index:0;
}

.star{
  position:absolute;
  width:32px; 
  height:32px;
  opacity:.5;
  background:
    radial-gradient(circle at 50% 50%, rgba(212,175,55,.9) 0 2px, transparent 3px),
    conic-gradient(from 45deg, transparent 0 75%, rgba(212,175,55,.8) 75% 100%);
  mask: radial-gradient(circle at 50% 50%, #000 0 55%, transparent 56%);
  border-radius:8px;
  transform: rotate(12deg);
  animation: starTwinkle 3s ease-in-out infinite;
}

@keyframes starTwinkle {
  0%, 100% { opacity: .5; transform: rotate(12deg) scale(1); }
  50% { opacity: .8; transform: rotate(12deg) scale(1.1); }
}

.star.s1{left:5%; top:15%}
.star.s2{right:8%; top:20%; opacity:.35; transform: rotate(-8deg); animation-delay:.5s;}
.star.s3{left:8%; bottom:18%; opacity:.4; transform: rotate(-18deg); animation-delay:1s;}
.star.s4{right:10%; bottom:15%; animation-delay:1.5s;}

/* ==========================
   LOCATION CARDS
   ========================== */
.section-centered{
  display:flex;
  flex-direction:column;
  align-items:center;
}

.location-wrapper{
  max-width:700px;
  width:100%;
  margin:0 auto;
}

.grid-2{
  display:grid;
  grid-template-columns: 1fr;
  gap:32px;
}

.loc-card{
  position:relative;
  background: linear-gradient(135deg, rgba(30,30,30,.9), rgba(20,20,20,.9));
  border:1px solid rgba(255,255,255,.15);
  border-radius:24px;
  padding:40px 32px;
  box-shadow: var(--shadow);
  transition: all .4s cubic-bezier(0.4, 0, 0.2, 1);
  overflow:hidden;
}

.loc-card::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 10% 20%, rgba(196,30,58,.12), transparent 50%),
    radial-gradient(circle at 90% 80%, rgba(212,175,55,.08), transparent 50%);
  opacity:0;
  transition: opacity .4s ease;
  pointer-events:none;
}

.loc-card:hover{
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
  border-color:var(--accent);
}

.loc-card:hover::before{
  opacity:1;
}

.loc-title{
  margin:0 0 24px;
  font-size:42px;
  background:var(--gradient-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  font-weight:800;
  letter-spacing:-.02em;
}

.loc-row{
  display:flex;
  align-items:flex-start;
  gap:14px;
  color:rgba(255,255,255,.82);
  font-size:17px;
  line-height:1.6;
  margin:14px 0;
  transition: all .3s ease;
}

.loc-row:hover{
  color:rgba(255,255,255,.95);
  transform: translateX(4px);
}

.loc-row.small{
  font-size:16px; 
  margin:12px 0;
}

.loc-row svg{
  width:24px; 
  height:24px;
  flex:0 0 24px;
  fill:none;
  stroke: var(--accent);
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  margin-top:2px;
}

.loc-block{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.1);
}

.loc-label{
  background:var(--gradient-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  font-weight:700;
  margin:0 0 12px;
  font-size:20px;
  letter-spacing:-.01em;
}

.badge-new{
  position:absolute;
  top:0; 
  right:0;
  padding:12px 20px;
  background: var(--gradient-gold);
  color: #000;
  font-weight:800;
  border-bottom-left-radius:20px;
  border-top-right-radius:24px;
  letter-spacing:.03em;
  font-size:16px;
  text-transform:uppercase;
  box-shadow: 0 4px 16px rgba(212,175,55,.4);
}

/* ==========================
   WHY CHOOSE US CARDS
   ========================== */
.why-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
}

.why-card{
  background: linear-gradient(135deg, rgba(30,30,30,.9), rgba(20,20,20,.9));
  border:1px solid rgba(255,255,255,.15);
  border-radius:24px;
  padding:40px 28px;
  box-shadow: var(--shadow);
  text-align:center;
  transition: all .4s cubic-bezier(0.4, 0, 0.2, 1);
  position:relative;
  overflow:hidden;
}

.why-card::before{
  content:'';
  position:absolute;
  inset:0;
  background: radial-gradient(circle at 50% 0%, rgba(196,30,58,.15), transparent 60%);
  opacity:0;
  transition: opacity .4s ease;
}

.why-card:hover{
  transform: translateY(-10px) scale(1.02);
  box-shadow: var(--shadow-lg);
  border-color:var(--accent);
}

.why-card:hover::before{
  opacity:1;
}

.why-icon{
  width:80px; 
  height:80px;
  margin:0 auto 20px;
  display:grid; 
  place-items:center;
  background: linear-gradient(135deg, rgba(196,30,58,.15), rgba(154,24,41,.1));
  border-radius:20px;
  border:2px solid rgba(196,30,58,.3);
  transition: all .4s ease;
  position:relative;
  z-index:1;
}

.why-card:hover .why-icon{
  transform: rotateY(360deg) scale(1.1);
  border-color:var(--accent);
  box-shadow: 0 8px 24px rgba(196,30,58,.4);
}

.why-icon svg{
  width:48px; 
  height:48px;
  fill:none;
  stroke: var(--accent);
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition: all .3s ease;
}

.why-card:hover .why-icon svg{
  stroke: var(--accent-light);
}

.why-title{
  margin:12px 0 12px;
  background:var(--gradient-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  font-weight:800;
  font-size:26px;
  letter-spacing:-.01em;
  position:relative;
  z-index:1;
}

.why-text{
  margin:0;
  color:rgba(255,255,255,.8);
  font-size:17px;
  line-height:1.6;
  position:relative;
  z-index:1;
}

/* ==========================
   IMAGE SLIDER
   ========================== */
.slider{
  position:relative;
  border-radius:24px;
  overflow:hidden;
  box-shadow: var(--shadow-lg);
  border:1px solid rgba(255,255,255,.12);
  background: rgba(20,20,20,.5);
}

.slider-frame img{
  width:100%;
  height: min(65vh, 600px);
  object-fit:cover;
  transition: transform .5s ease;
}

.slider:hover .slider-frame img{
  transform: scale(1.05);
}

.slider-btn{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width:64px; 
  height:64px;
  border-radius:16px;
  border:none;
  cursor:pointer;
  display:grid; 
  place-items:center;
  font-size:42px;
  line-height:1;
  z-index:10;
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
  backdrop-filter: blur(10px);
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
}

.slider-btn.prev{
  left:20px;
  background: rgba(10,10,10,.6);
  color: rgba(255,255,255,.9);
  border:1px solid rgba(255,255,255,.15);
}

.slider-btn.next{
  right:20px;
  background: var(--gradient-primary);
  color: rgba(255,255,255,.95);
  border:1px solid rgba(255,255,255,.2);
}

.slider-btn:hover{
  transform: translateY(-50%) scale(1.1);
}

.slider-btn.prev:hover{
  background: rgba(20,20,20,.8);
  box-shadow: 0 12px 32px rgba(0,0,0,.6);
}

.slider-btn.next:hover{
  box-shadow: 0 12px 32px rgba(196,30,58,.6);
}

.slider-btn:active{
  transform: translateY(-50%) scale(1.05);
}

/* ==========================
   REVIEWS SECTION
   ========================== */
.reviews{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
}

.review-card{
  background: linear-gradient(135deg, rgba(30,30,30,.9), rgba(20,20,20,.9));
  border:1px solid rgba(255,255,255,.15);
  border-radius:24px;
  padding:32px 28px;
  box-shadow: var(--shadow);
  transition: all .4s cubic-bezier(0.4, 0, 0.2, 1);
  position:relative;
  overflow:hidden;
}

.review-card::before{
  content:'';
  position:absolute;
  top:-50%;
  right:-50%;
  width:200%;
  height:200%;
  background: radial-gradient(circle, rgba(196,30,58,.1), transparent 50%);
  opacity:0;
  transition: opacity .4s ease;
  pointer-events:none;
}

.review-card:hover{
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
  border-color:var(--accent);
}

.review-card:hover::before{
  opacity:1;
}

.stars-row{
  color:#d4af37;
  font-size:28px;
  letter-spacing:3px;
  margin-bottom:16px;
  filter: drop-shadow(0 2px 4px rgba(212,175,55,.3));
}

.starfill{
  display:inline-block;
  transition: transform .3s ease;
}

.review-card:hover .starfill{
  transform: scale(1.1);
}

.starfill.dim{
  opacity:.3;
}

.review-text{
  margin:0 0 20px;
  font-size:19px;
  color:rgba(255,255,255,.88);
  font-style:italic;
  line-height:1.7;
  position:relative;
  z-index:1;
  quotes: "«" "»";
}

.review-text::before{
  content: '«';
  font-size:48px;
  color:var(--accent);
  opacity:.3;
  position:absolute;
  top:-10px;
  left:-10px;
  font-style:normal;
  line-height:1;
}

.review-author{
  text-align:right;
  font-size:18px;
  font-weight:700;
  color:rgba(255,255,255,.92);
  position:relative;
  z-index:1;
  background:var(--gradient-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* ==========================
   CTA BUTTONS STACK
   ========================== */
.cta-stack{
  margin-top:48px;
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}

.btn-secondary{
  background: rgba(255,255,255,.08);
  border: 2px solid rgba(255,255,255,.2);
  color:#fff;
}

.btn-secondary:hover{
  background: rgba(255,255,255,.12);
  border-color:var(--accent);
  box-shadow: 0 12px 32px rgba(0,0,0,.4);
}

.ext{
  width:22px; 
  height:22px;
  fill:none;
  stroke: currentColor;
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  margin-left:auto;
  transition: transform .3s ease;
}

.btn:hover .ext{
  transform: translateX(4px);
}

.btn-ghost{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.15);
  color:rgba(255,255,255,.9);
}

.btn-ghost:hover{
  background: rgba(255,255,255,.12);
  border-color:var(--accent);
}

/* ==========================
   PREMIUM FOOTER
   ========================== */
.footer{
  padding:80px 0 0;
  background: linear-gradient(to top, rgba(8,8,8,.98), rgba(12,12,12,.95));
  border-top:2px solid rgba(196, 30, 58,.3);
  position:relative;
  overflow:hidden;
}

.footer::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:2px;
  background: var(--gradient-gold);
  opacity:.8;
}

.footer-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:48px;
  margin-bottom:48px;
}

.footer-col{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.footer-col:first-child{
  align-items:center;
  text-align:center;
}

.footer-logo{
  width:100px;
  height:100px;
  object-fit:contain;
  filter: drop-shadow(0 4px 16px rgba(196, 30, 58,.5));
  margin-bottom:8px;
}

.footer-tagline{
  font-size:18px;
  font-weight:700;
  color:#fff;
  margin:0;
  background:var(--gradient-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

.footer-desc{
  font-size:15px;
  line-height:1.7;
  color:rgba(255,255,255,.65);
  margin:0;
  max-width:400px;
}

.footer-heading{
  font-size:20px;
  font-weight:700;
  color:#fff;
  margin:0 0 12px 0;
  background:var(--gradient-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

.footer-link-group{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.footer-link{
  display:flex;
  align-items:flex-start;
  gap:12px;
  color:rgba(255,255,255,.75);
  font-size:15px;
  line-height:1.6;
  transition: all .3s ease;
  padding:8px 0;
}

.footer-link:hover{
  color:#fff;
  transform: translateX(4px);
}

.footer-contact-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 20px;
  background:rgba(255,255,255,.04);
  border-radius:12px;
  border:1px solid rgba(255,255,255,.1);
  transition: all .3s ease;
}

.footer-contact-item strong{
  color:var(--accent);
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.5px;
  font-weight:700;
  margin-bottom:4px;
}

.footer-contact-item span{
  color:rgba(255,255,255,.85);
  font-size:15px;
  line-height:1.5;
}

.footer-contact-item:hover,
a.footer-contact-item:hover{
  background:rgba(255,255,255,.06);
  border-color:var(--accent);
  transform: translateY(-2px);
}

.footer-hours{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.hours-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 16px;
  background:rgba(255,255,255,.05);
  border-radius:10px;
  border:1px solid rgba(255,255,255,.1);
  font-size:15px;
  color:rgba(255,255,255,.85);
}

.hours-row span:first-child{
  font-weight:600;
}

.hours-row span:last-child{
  color:var(--accent);
  font-weight:700;
}

.hours-note{
  font-size:13px;
  color:rgba(255,255,255,.5);
  margin:8px 0 0 0;
  font-style:italic;
}

.footer-bottom{
  padding:32px 0;
  border-top:1px solid rgba(255,255,255,.1);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:20px;
  text-align:center;
}

.footer-copyright{
  font-size:14px;
  color:rgba(255,255,255,.6);
  margin:0;
}

.footer-badges{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:center;
}

.badge-item{
  padding:10px 20px;
  background:rgba(196, 30, 58,.12);
  border:2px solid rgba(196, 30, 58,.3);
  border-radius:24px;
  font-size:14px;
  font-weight:700;
  color:rgba(255,255,255,.9);
  transition: all .3s ease;
  text-transform:uppercase;
  letter-spacing:.5px;
}

.badge-item:hover{
  background:rgba(196, 30, 58,.2);
  border-color:var(--accent);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(196, 30, 58,.3);
}

@media (min-width: 768px){
  .footer-grid{
    grid-template-columns: 1.2fr 1fr 1fr 1fr;
    gap:40px;
  }
  
  .footer-col:first-child{
    align-items:flex-start;
    text-align:left;
  }
  
  .footer-bottom{
    flex-direction:row;
    justify-content:space-between;
    text-align:left;
  }
}

@media (min-width: 1024px){
  .footer{
    padding:100px 0 0;
  }
}

/* ==========================
   REVEAL ANIMATIONS
   ========================== */
.reveal{
  opacity:0; 
  transform: translateY(40px);
  transition: opacity .8s cubic-bezier(0.4, 0, 0.2, 1), 
              transform .8s cubic-bezier(0.4, 0, 0.2, 1);
}

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

/* Staggered reveal for grid items */
.why-grid .why-card:nth-child(1).reveal.in{
  transition-delay: 0s;
}

.why-grid .why-card:nth-child(2).reveal.in{
  transition-delay: .1s;
}

.why-grid .why-card:nth-child(3).reveal.in{
  transition-delay: .2s;
}

.reviews .review-card:nth-child(1).reveal.in{
  transition-delay: 0s;
}

.reviews .review-card:nth-child(2).reveal.in{
  transition-delay: .1s;
}

.reviews .review-card:nth-child(3).reveal.in{
  transition-delay: .2s;
}

.reviews .review-card:nth-child(4).reveal.in{
  transition-delay: .3s;
}

.reviews .review-card:nth-child(5).reveal.in{
  transition-delay: .4s;
}

/* ==========================
   RESPONSIVE DESIGN
   ========================== */
@media (min-width: 768px){
  .topbar-inner{
    padding:0 32px;
  }
  
  .hero-cta{
    gap:24px;
  }
  
  .grid-2{
    grid-template-columns: repeat(2, 1fr);
    gap:32px;
  }
  
  .why-grid{
    grid-template-columns: repeat(2, 1fr);
  }
  
  .reviews{
    grid-template-columns: repeat(2, 1fr);
  }
  
  .cta-stack{
    gap:20px;
  }
  
  .cta-stack .btn{
    flex:1;
    min-width:250px;
    max-width:350px;
  }
  
  .announce-meta{
    gap:32px;
  }
  
  .footer-inner{
    flex-direction:row;
    text-align:left;
  }
}

@media (min-width: 1024px){
  .wrap{
    padding:0 40px;
  }
  
  .section{
    padding:100px 0;
  }
  
  .hero{
    min-height:100vh;
  }
  
  .why-grid{
    grid-template-columns: repeat(3, 1fr);
    gap:32px;
  }
  
  .cta-stack .btn{
    min-width:280px;
  }
  
  .drawer{
    width:440px;
  }
}

/* ==========================
   ACCESSIBILITY & MOTION
   ========================== */
@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  
  .reveal{
    transition:none;
  }
  
  .hero-video{
    animation:none;
  }
}

/* ==========================
   MOBILE OPTIMIZATION
   ========================== */
@media (max-width:767px){
  .topbar{
    height:75px;
  }
  
  .topbar.scrolled{
    height:65px;
  }
  
  .brand-logo{
    height:38px;
  }
  
  .lang-btn span{
    display:none;
  }
  
  .hero{
    padding-top:75px;
    min-height:90vh;
  }
  
  .hero-title{
    font-size: clamp(38px, 10vw, 52px);
  }
  
  .hero-sub{
    font-size: clamp(16px, 4vw, 20px);
  }
  
  .btn{
    height:56px;
    padding:0 24px;
    font-size:16px;
  }
  
  .section-title{
    font-size: clamp(32px, 8vw, 44px);
    margin-bottom:40px;
  }
  
  .section{
    padding:60px 0;
  }
  
  .announce-box{
    padding:40px 24px;
  }
  
  .loc-card,
  .why-card,
  .review-card{
    padding:28px 24px;
  }
  
  .slider-btn{
    width:52px;
    height:52px;
  }
  
  .slider-btn.prev{
    left:12px;
  }
  
  .slider-btn.next{
    right:12px;
  }
  
  .scroll-to-top{
    bottom:24px;
    right:24px;
    width:52px;
    height:52px;
  }
}

/* ==========================
   UTILITY CLASSES
   ========================== */
.hidden{
  display:none !important;
}

.fade-in{
  animation: fadeIn .8s ease both;
}

@keyframes fadeIn{
  from{
    opacity:0; 
    transform: translateY(20px);
  }
  to{
    opacity:1; 
    transform:none;
  }
}

/* ==========================
   SCROLL TO TOP BUTTON
   ========================== */
.scroll-to-top{
  position:fixed;
  bottom:32px;
  right:32px;
  width:56px;
  height:56px;
  border-radius:50%;
  background:var(--gradient-primary);
  border:2px solid rgba(255,255,255,.2);
  box-shadow: 0 8px 24px rgba(196, 30, 58,.4);
  display:grid;
  place-items:center;
  cursor:pointer;
  z-index:80;
  opacity:0;
  visibility:hidden;
  transform: translateY(20px) scale(.8);
  transition: all .4s cubic-bezier(0.4, 0, 0.2, 1);
}

.scroll-to-top.visible{
  opacity:1;
  visibility:visible;
  transform: translateY(0) scale(1);
}

.scroll-to-top:hover{
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 12px 32px rgba(196, 30, 58,.6);
}

.scroll-to-top svg{
  width:24px;
  height:24px;
  fill:none;
  stroke:#fff;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.muted{
  color:rgba(255,255,255,.5);
}

/* ==========================
   SCROLL TO TOP BUTTON
   ========================== */
.scroll-to-top{
  position:fixed;
  bottom:32px;
  right:32px;
  width:56px;
  height:56px;
  border-radius:50%;
  background:var(--gradient-primary);
  border:2px solid rgba(255,255,255,.2);
  box-shadow: 0 8px 24px rgba(196,30,58,.4);
  display:grid;
  place-items:center;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform: translateY(20px) scale(.8);
  transition: all .4s cubic-bezier(0.4, 0, 0.2, 1);
  z-index:80;
}

.scroll-to-top.visible{
  opacity:1;
  visibility:visible;
  transform: translateY(0) scale(1);
}

.scroll-to-top:hover{
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 12px 32px rgba(196,30,58,.6);
}

.scroll-to-top svg{
  width:24px;
  height:24px;
  fill:none;
  stroke:#fff;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  transform: translateY(-1px);
}

@media (max-width:767px){
  .scroll-to-top{
    bottom:24px;
    right:24px;
    width:52px;
    height:52px;
  }
}

/* ==========================
   LIGHT THEME
   ========================== */
body[data-theme="light"]{
  --bg:#f8f9fa;
  --panel:#ffffff;
  --panel2:#f0f0f0;
  --border:rgba(0,0,0,.08);
  --muted:rgba(0,0,0,.6);
  --text:#1a1a1a;
  --shadow:0 16px 48px rgba(0,0,0,.08);
  --shadow-lg:0 24px 60px rgba(0,0,0,.12);
}

body[data-theme="light"] .bg-glow{
  background:
    radial-gradient(ellipse at 15% 50%, rgba(196, 30, 58,.08), transparent 50%),
    radial-gradient(ellipse at 85% 40%, rgba(212, 175, 55,.05), transparent 50%),
    radial-gradient(ellipse at 50% 90%, rgba(196, 30, 58,.06), transparent 60%);
}

body[data-theme="light"] .topbar{
  background:rgba(255,255,255,.85);
  border-bottom:1px solid rgba(0,0,0,.08);
}

body[data-theme="light"] .topbar.scrolled{
  background:rgba(255,255,255,.95);
}

body[data-theme="light"] .icon-btn,
body[data-theme="light"] .lang-btn{
  background:rgba(0,0,0,.04);
  color:rgba(0,0,0,.85);
  border-color:rgba(0,0,0,.1);
}

body[data-theme="light"] .icon-btn svg,
body[data-theme="light"] .lang-btn svg{
  stroke:rgba(0,0,0,.75);
}

body[data-theme="light"] .menu-btn{
  background:rgba(196, 30, 58,.1);
  border-color:rgba(196, 30, 58,.25);
}

body[data-theme="light"] .menu-lines,
body[data-theme="light"] .menu-lines::before,
body[data-theme="light"] .menu-lines::after{
  background:rgba(196, 30, 58,.85);
}

body[data-theme="light"] .drawer{
  background:linear-gradient(to bottom, rgba(250,250,250,.98), rgba(255,255,255,.98));
  border-left:1px solid rgba(0,0,0,.12);
}

body[data-theme="light"] .drawer-nav a{
  background:rgba(0,0,0,.03);
  border-color:rgba(0,0,0,.08);
  color:rgba(0,0,0,.85);
}

body[data-theme="light"] .drawer-nav a:hover{
  background:rgba(196, 30, 58,.08);
  color:#000;
}

body[data-theme="light"] .drawer-close{
  background:rgba(0,0,0,.05);
  border-color:rgba(0,0,0,.12);
  color:rgba(0,0,0,.85);
}

body[data-theme="light"] .loc-card,
body[data-theme="light"] .why-card,
body[data-theme="light"] .review-card{
  background: linear-gradient(135deg, rgba(255,255,255,.95), rgba(250,250,250,.95));
  border-color:rgba(0,0,0,.12);
}

body[data-theme="light"] .loc-row,
body[data-theme="light"] .why-text,
body[data-theme="light"] .review-text{
  color:rgba(0,0,0,.75);
}

body[data-theme="light"] .footer{
  background: linear-gradient(to top, rgba(245,245,245,.98), rgba(250,250,250,.95));
  border-top-color:rgba(0,0,0,.1);
}

/* ==========================
   SHARED PAGE STYLES
   ========================== */
.page-hero{
  padding-top:92px;
  padding-bottom:18px;
}
.page-hero-inner{
  width:min(980px, 100%);
  margin:0 auto;
  padding: 0 18px 18px;
  text-align:center;
}
.page-hero h1{
  margin: 22px 0 8px;
  font-size: clamp(38px, 6vw, 54px);
  font-weight: 800;
  letter-spacing: -.02em;
}
.muted{color:var(--muted)}

/* ==========================
   MENU PAGE - MODERN DESIGN
   ========================== */

/* Page Hero for Menu */
.page-hero-menu{
  position: relative;
  padding: 140px 0 60px;
  background: linear-gradient(135deg, rgba(196, 30, 58, 0.15) 0%, rgba(10, 10, 10, 0.95) 100%);
  border-bottom: 1px solid rgba(255,255,255,.08);
  overflow: hidden;
}

.page-hero-menu::before{
  content: '';
  position: absolute;
  inset: 0;
  background: 
    radial-gradient(ellipse at 20% 50%, rgba(196, 30, 58,.2), transparent 60%),
    radial-gradient(ellipse at 80% 50%, rgba(212, 175, 55,.1), transparent 60%);
  pointer-events: none;
  opacity: .5;
}

.page-hero-content{
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.page-title{
  font-size: clamp(3rem, 8vw, 5rem);
  font-weight: 800;
  margin: 0 0 20px;
  color: #fff;
  text-shadow: 
    0 2px 10px rgba(0,0,0,.5),
    0 4px 20px rgba(196, 30, 58,.3);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.page-subtitle{
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  color: rgba(255,255,255,.85);
  max-width: 600px;
  margin: 0 auto;
  line-height: 1.6;
  font-weight: 400;
}

/* Menu Navigation Section */
.menu-nav-section{
  position: relative;
  z-index: 10;
  background: linear-gradient(180deg, rgba(10,10,10,.98) 0%, rgba(10,10,10,.95) 100%);
  backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid rgba(255,255,255,.08);
  padding: 28px 0;
  box-shadow: 0 8px 32px rgba(0,0,0,.4);
}

.menu-nav-section .wrap{
  max-width: 100%;
  padding: 0 24px;
}

.menu-search-bar{
  position: relative;
  max-width: 500px;
  margin: 0 auto 24px;
}

.menu-search-bar input{
  width: 100%;
  padding: 16px 50px 16px 20px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.06);
  color: var(--text);
  font-size: 15px;
  font-family: inherit;
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
  outline: none;
}

.menu-search-bar input:focus{
  background: rgba(255,255,255,.09);
  border-color: var(--accent);
  box-shadow: 
    0 0 0 4px rgba(196, 30, 58, .12),
    0 8px 24px rgba(0,0,0,.3);
  transform: translateY(-1px);
}

.menu-search-bar input::placeholder{
  color: rgba(255,255,255,.4);
}

.search-icon{
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  opacity: .5;
  pointer-events: none;
  stroke-width: 2.5;
}

.menu-filters{
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-bottom: 24px;
}

.filter-btn{
  padding: 11px 26px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.85);
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
  white-space: nowrap;
}

.filter-btn:hover{
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.25);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.3);
}

.filter-btn[aria-pressed="true"]{
  background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%);
  border-color: #4CAF50;
  color: #fff;
  box-shadow: 
    0 6px 20px rgba(76, 175, 80, .4),
    0 0 0 3px rgba(76, 175, 80, .15);
  transform: translateY(-2px);
  font-weight: 700;
}

/* Category Dropdown Selector */
.category-selector{
  position: relative;
  max-width: 500px;
  margin: 0 auto;
}

.category-dropdown-btn{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.06);
  color: var(--text);
  font-size: 15px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
}

.category-dropdown-btn:hover{
  background: rgba(255,255,255,.09);
  border-color: rgba(255,255,255,.25);
  box-shadow: 0 6px 20px rgba(0,0,0,.3);
  transform: translateY(-1px);
}

.category-dropdown-btn.active{
  background: rgba(255,255,255,.09);
  border-color: var(--accent);
  box-shadow: 
    0 0 0 4px rgba(196, 30, 58, .12),
    0 8px 24px rgba(0,0,0,.3);
}

.category-dropdown-label{
  flex: 1;
  text-align: left;
}

.category-dropdown-icon{
  width: 20px;
  height: 20px;
  stroke-width: 2.5;
  transition: transform .3s ease;
}

.category-dropdown-btn.active .category-dropdown-icon{
  transform: rotate(180deg);
}

.category-dropdown-menu{
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  max-height: 0;
  overflow: hidden;
  background: rgba(26, 26, 26, .98);
  backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(0,0,0,.5);
  transition: all .4s cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0;
  visibility: hidden;
  z-index: 100;
}

.category-dropdown-menu.active{
  max-height: 400px;
  overflow-y: auto;
  overflow-x: hidden;
  opacity: 1;
  visibility: visible;
  overscroll-behavior: contain;
  touch-action: pan-y;
}

.category-dropdown-menu::-webkit-scrollbar{
  width: 8px;
}

.category-dropdown-menu::-webkit-scrollbar-track{
  background: rgba(255,255,255,.03);
  border-radius: 10px;
}

.category-dropdown-menu::-webkit-scrollbar-thumb{
  background: rgba(196, 30, 58, .5);
  border-radius: 10px;
  transition: background .3s ease;
}

.category-dropdown-menu::-webkit-scrollbar-thumb:hover{
  background: rgba(196, 30, 58, .7);
}

.category-dropdown-item{
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  border: none;
  background: transparent;
  color: rgba(255,255,255,.85);
  font-size: 15px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: all .2s ease;
  text-align: left;
  border-bottom: 1px solid rgba(255,255,255,.05);
}

.category-dropdown-item:last-child{
  border-bottom: none;
}

.category-dropdown-item:hover{
  background: rgba(255,255,255,.06);
  color: #fff;
  padding-left: 24px;
}

.category-dropdown-item.active{
  background: rgba(196, 30, 58, .15);
  color: var(--accent);
  font-weight: 700;
  border-left: 3px solid var(--accent);
}

.category-dropdown-item.active:hover{
  background: rgba(196, 30, 58, .2);
}

.category-dropdown-item.veg-active{
  background: rgba(76, 175, 80, .15);
  color: #4CAF50;
  font-weight: 700;
  border-left: 3px solid #4CAF50;
}

.category-dropdown-item.veg-active:hover{
  background: rgba(76, 175, 80, .2);
}

.category-divider{
  height: 1px;
  background: rgba(255,255,255,.1);
  margin: 8px 0;
}

/* Hide old filters */
.menu-filters{
  display: none;
}

/* Hide old category nav */
.menu-category-nav{
  display: none;
}

/* Menu Content */
.menu-content-wrapper{
  padding: 60px 0 80px;
  background: var(--bg);
  position: relative;
  z-index: 1;
}

.menu-category{
  margin-bottom: 80px;
}

.menu-category:last-child{
  margin-bottom: 0;
}

.category-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
  padding-bottom: 16px;
  border-bottom: 2px solid rgba(196, 30, 58, .3);
}

.category-title{
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  font-weight: 800;
  color: var(--accent);
  margin: 0;
  letter-spacing: -0.01em;
}

.category-time{
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,.5);
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
}

.menu-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 20px;
}

/* Intro text binnen een category */
.menu-category > p {
  margin: 0 0 24px;
  padding: 16px 20px;
  background: rgba(196, 30, 58, .08);
  border-left: 3px solid var(--accent);
  border-radius: 8px;
  color: rgba(255,255,255,.8);
  font-size: 14px;
  line-height: 1.6;
}

.menu-card{
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px;
  border-radius: 20px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 
    0 4px 20px rgba(0,0,0,.3),
    inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter: blur(10px);
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
}

.menu-card::before{
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(196, 30, 58, 0) 0%, rgba(196, 30, 58, .05) 100%);
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}

.menu-card:hover{
  transform: translateY(-4px);
  border-color: rgba(196, 30, 58, .3);
  box-shadow: 
    0 8px 30px rgba(0,0,0,.4),
    0 0 0 1px rgba(196, 30, 58, .2),
    inset 0 1px 0 rgba(255,255,255,.08);
}

.menu-card:hover::before{
  opacity: 1;
}

.menu-card-content{
  flex: 1;
}

.menu-card-header{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.menu-card-title{
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  margin: 0;
  line-height: 1.3;
  flex: 1;
}

.menu-card-badge{
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  background: rgba(76, 175, 80, .2);
  border: 1px solid rgba(76, 175, 80, .4);
  color: rgba(76, 175, 80, 1);
  flex-shrink: 0;
}

.menu-card-desc{
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255,255,255,.65);
  margin: 0 0 16px;
}

.menu-card-price{
  font-size: 20px;
  font-weight: 800;
  color: var(--gold);
  margin-top: 12px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.08);
  text-shadow: 0 2px 8px rgba(212, 175, 55, .3);
}

/* Menu Empty State */
.menu-empty{
  text-align: center;
  padding: 60px 24px;
  border-radius: 20px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  margin: 40px 0;
}

.menu-empty p{
  font-size: 16px;
  color: rgba(255,255,255,.6);
  margin: 0;
}

/* Menu CTA */
.menu-cta{
  text-align: center;
  padding: 32px 24px;
  margin: 60px 0 0;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(196, 30, 58, .1) 0%, rgba(212, 175, 55, .05) 100%);
  border: 1px solid rgba(196, 30, 58, .2);
}

.menu-cta p{
  font-size: 16px;
  font-weight: 500;
  color: rgba(255,255,255,.85);
  margin: 0;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .menu-grid{
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 18px;
  }
}

@media (max-width: 768px) {
  .page-hero-menu{
    padding: 120px 0 50px;
  }

  .menu-nav-section{
    padding: 24px 0;
  }
  
  .menu-nav-section .wrap{
    padding: 0 16px;
  }

  .menu-search-bar{
    margin-bottom: 20px;
  }
  
  .menu-search-bar input{
    font-size: 14px;
    padding: 14px 45px 14px 18px;
  }
  
  .category-dropdown-btn{
    padding: 14px 18px;
    font-size: 14px;
  }
  
  .category-dropdown-menu.active{
    max-height: 350px;
  }
  
  .category-dropdown-item{
    padding: 12px 18px;
    font-size: 14px;
  }

  .menu-content-wrapper{
    padding: 40px 0 60px;
  }

  .menu-category{
    margin-bottom: 60px;
  }

  .category-header{
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 24px;
  }

  .menu-grid{
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .menu-card{
    padding: 20px;
  }

  .menu-card-title{
    font-size: 16px;
  }

  .menu-card-price{
    font-size: 18px;
  }
  
  .menu-item{
    padding: 20px;
  }
}

/* Legacy Support - Maak oude menu-item ook mooi */
.menu-item {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px;
  margin-bottom: 0;
  border-radius: 20px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 
    0 4px 20px rgba(0,0,0,.3),
    inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter: blur(10px);
  transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
}

.menu-item:hover {
  transform: translateY(-4px);
  border-color: rgba(196, 30, 58, .3);
  box-shadow: 
    0 8px 30px rgba(0,0,0,.4),
    0 0 0 1px rgba(196, 30, 58, .2);
}

.menu-item-main {
  flex: 1;
  margin-bottom: 16px;
}

.menu-item h3 {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 12px;
  line-height: 1.3;
}

.menu-item .desc {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255,255,255,.65);
  margin: 0 0 8px;
}

.menu-item .desc:last-of-type {
  margin-bottom: 0;
}

.menu-item-price {
  font-size: 20px;
  font-weight: 800;
  color: var(--gold);
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.08);
  text-shadow: 0 2px 8px rgba(212, 175, 55, .3);
  white-space: nowrap;
}

.menu-category {
  margin-bottom: 60px;
}

.menu-category:last-child {
  margin-bottom: 0;
}

.menu-category > h2 {
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  font-weight: 800;
  color: var(--accent);
  margin: 0 0 32px;
  padding-bottom: 16px;
  border-bottom: 2px solid rgba(196, 30, 58, .3);
  letter-spacing: -0.01em;
}

.badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  margin-left: 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.badge.veg {
  background: rgba(76, 175, 80, .2);
  border: 1px solid rgba(76, 175, 80, .4);
  color: rgba(76, 175, 80, 1);
}

.badge.special {
  background: rgba(196, 30, 58, .2);
  border: 1px solid rgba(196, 30, 58, .4);
  color: rgba(196, 30, 58, 1);
}

/* Scroll animations voor menu items */
@media (prefers-reduced-motion: no-preference) {
  .menu-item,
  .menu-card {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp .6s ease forwards;
  }
  
  .menu-item:nth-child(1), .menu-card:nth-child(1) { animation-delay: 0.05s; }
  .menu-item:nth-child(2), .menu-card:nth-child(2) { animation-delay: 0.1s; }
  .menu-item:nth-child(3), .menu-card:nth-child(3) { animation-delay: 0.15s; }
  .menu-item:nth-child(4), .menu-card:nth-child(4) { animation-delay: 0.2s; }
  .menu-item:nth-child(5), .menu-card:nth-child(5) { animation-delay: 0.25s; }
  .menu-item:nth-child(n+6), .menu-card:nth-child(n+6) { animation-delay: 0.3s; }

  @keyframes fadeInUp {
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

/* Contact page */
.contact-card{
  width:min(980px, 100%);
  margin: 110px auto 40px;
  padding: 24px 18px;
}
.contact-card h1{margin:0 0 16px; color: var(--accent); font-size:44px}
.contact-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
.contact-block{
  padding: 18px 16px;
  border-radius: 18px;
  background: rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  box-shadow: 0 14px 28px rgba(0,0,0,.20);
}
body[data-theme="light"] .contact-block{background: rgba(0,0,0,.02); border-color: rgba(0,0,0,.06); box-shadow: 0 10px 18px rgba(0,0,0,.08)}
.contact-block h2{margin:0 0 8px; color: var(--accent); font-size:26px}
.map-wrap{
  margin-top: 16px;
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 18px 40px rgba(0,0,0,.28);
}
.map-wrap iframe{width:100%; height: 360px; border:0}

/* Reserveren page */
.reserveren{
  width:min(980px, 100%);
  margin: 110px auto 50px;
  padding: 0 18px;
}
.reserveren h2{
  margin: 0 0 14px;
  color: var(--accent);
  font-size: 44px;
}
.reserveren-form{
  padding: 18px 16px;
  border-radius: 18px;
  background: rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  box-shadow: 0 14px 28px rgba(0,0,0,.20);
}
.form-group{margin: 10px 0}
.form-row{
  display:grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.reserveren-form input{
  width:100%;
  padding: 14px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.18);
  color: var(--text);
  outline:none;
}
body[data-theme="light"] .reserveren-form{background: rgba(0,0,0,.02); border-color: rgba(0,0,0,.06); box-shadow: 0 10px 18px rgba(0,0,0,.08)}
body[data-theme="light"] .reserveren-form input{background: rgba(0,0,0,.03); border-color: rgba(0,0,0,.10)}

.tafel-layout{
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 14px;
}
.tafel-zone{
  padding: 14px 12px;
  border-radius: 18px;
  background: rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
}
.tafel{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}
.tafel-item{
  width:46px; height:46px;
  border-radius: 14px;
  display:grid;
  place-items:center;
  cursor:pointer;
  user-select:none;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.22);
  color: rgba(255,255,255,.90);
  font-weight:800;
}
.tafel-item.large{width:64px}
.tafel-item:hover{filter: brightness(1.1)}
.tafel-item.selected{
  background: rgba(161,43,43,.30);
  border-color: rgba(161,43,43,.70);
  box-shadow: 0 12px 22px rgba(161,43,43,.18);
}
@media (min-width: 820px){
  .contact-grid{grid-template-columns: 1fr 1fr}
  .form-row{grid-template-columns: 1fr 1fr 1fr}
  .tafel-layout{grid-template-columns: 1fr 1fr 1fr}
}


/* Split-letter hero animation */
.split .char{
  display:inline-block;
  opacity:0;
  transform: translateY(14px);
  animation: charIn .55s cubic-bezier(.2,.9,.2,1) forwards;
}
@keyframes charIn{
  to{ opacity:1; transform:none; }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  .js body{transition:none; transform:none; opacity:1}
  .js body.page-leave{opacity:1}
  .split .char{animation:none; opacity:1; transform:none}
  .drawer, .drawer-nav a, .drawer-backdrop, .lang-menu{transition:none}
}
