/* ============================================
   EMBER & OAK RESTAURANT — MASTER STYLESHEET
   ============================================ */

:root {
  --gold: #D4B56A;
  --gold-light: #EBD089;
  --gold-dark: #B8944A;
  --burgundy: #7B1E1E;
  --dark: #070605;
  --dark-1: #0E0C0A;
  --dark-2: #161412;
  --dark-3: #1F1C19;
  --dark-4: #2A2622;
  --light: #F7F3EC;
  --white: #FEFDFB;
  --gray: #9A958C;
  --gray-light: #D4CFC4;
  --gray-dark: #6B665E;
  --success: #27AE60;
  --error: #E74C3C;
  --warning: #F39C12;
  --font-heading: 'Playfair Display', Georgia, serif;
  --font-body: 'Poppins', -apple-system, sans-serif;
  --section-padding: 100px 0;
  --container-max: 1280px;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --transition: all 0.35s var(--ease-out);
  --transition-slow: all 0.65s var(--ease-out);
  --gradient-gold: linear-gradient(135deg, #D4B56A 0%, #EBD089 42%, #C9A84C 100%);
  --gradient-hero-vignette: radial-gradient(ellipse 85% 70% at 50% 45%, transparent 0%, rgba(0,0,0,0.55) 100%);
  --surface-border: rgba(255,255,255,0.06);
  --surface-border-gold: rgba(212,181,106,0.14);
  --shadow-sm: 0 2px 12px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.04);
  --shadow-md: 0 12px 40px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.05);
  --shadow-lg: 0 28px 80px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.04);
  --shadow-gold: 0 6px 28px rgba(212,181,106,0.28);
  --radius-sm: 4px;
  --radius-md: 10px;
  --radius-lg: 18px;
  --radius-xl: 26px;
  --radius-full: 9999px;
}

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; -webkit-text-size-adjust:100%; overflow-x:hidden; max-width:100%; }
body { font-family:var(--font-body); background:var(--dark); color:var(--light); line-height:1.65; overflow-x:hidden; max-width:100%; position:relative; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
::selection { background:rgba(212,181,106,0.28); color:var(--white); }
img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; transition:var(--transition); }
ul { list-style:none; }
button { cursor:pointer; border:none; background:none; font-family:var(--font-body); }
input,textarea,select { font-family:var(--font-body); outline:none; }

h1,h2,h3,h4,h5,h6 { font-family:var(--font-heading); font-weight:700; line-height:1.15; letter-spacing:-0.02em; }
h1 { font-size:clamp(2.35rem,5.5vw + 0.5rem,4.75rem); }
h2 { font-size:clamp(1.85rem,3.5vw + 0.35rem,3.35rem); }
h3 { font-size:clamp(1.35rem,2.5vw + 0.25rem,1.95rem); }
h4 { font-size:clamp(1.05rem,1.5vw + 0.2rem,1.45rem); }
p { line-height:1.8; }

.text-gold { color:var(--gold); }
.text-center { text-align:center; }

.container { width:100%; max-width:var(--container-max); margin:0 auto; padding:0 max(24px, env(safe-area-inset-right, 0px)) 0 max(24px, env(safe-area-inset-left, 0px)); box-sizing:border-box; }
/* Full-bleed sections still respect viewport (prevents sideways crop on small screens) */
section, footer { max-width:100%; box-sizing:border-box; }
.section-padding { padding:var(--section-padding); }

.section-header { text-align:center; margin-bottom:60px; }
.section-tag { display:inline-block; font-size:0.76rem; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold); padding:8px 20px; border:1px solid var(--surface-border-gold); border-radius:var(--radius-full); margin-bottom:16px; background:rgba(212,181,106,0.06); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.section-header h2 { color:var(--white); margin-bottom:14px; overflow-wrap:anywhere; word-break:break-word; }
.section-header p { color:var(--gray); max-width:600px; margin:0 auto; font-size:1.05rem; }
.section-divider { width:60px; height:3px; background:var(--gradient-gold); margin:18px auto; border-radius:var(--radius-full); }

/* ── BUTTONS ── */
.btn { display:inline-flex; align-items:center; gap:9px; padding:14px 32px; border-radius:var(--radius-full); font-size:0.95rem; font-weight:600; letter-spacing:0.4px; transition:var(--transition); position:relative; overflow:hidden; }
.btn::before { content:''; position:absolute; top:0; left:-100%; width:100%; height:100%; background:rgba(255,255,255,0.08); transition:left 0.3s ease; }
.btn:hover::before { left:100%; }
.btn-primary { background:var(--gradient-gold); color:var(--dark); box-shadow:var(--shadow-gold); }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 30px rgba(201,168,76,0.55); }
.btn-secondary { background:transparent; color:var(--gold); border:2px solid var(--gold); }
.btn-secondary:hover { background:var(--gold); color:var(--dark); transform:translateY(-2px); }
.btn-sm { padding:8px 20px; font-size:0.85rem; }
.btn-lg { padding:18px 48px; font-size:1.05rem; }

/* ── NAVBAR ── */
.navbar { position:fixed; top:0; left:0; right:0; width:100%; max-width:100%; box-sizing:border-box; z-index:1000; padding:max(18px, env(safe-area-inset-top, 0px)) 0 18px; transition:var(--transition-slow); }
.navbar.scrolled { background:rgba(10,9,8,0.97); padding-top:max(10px, calc(env(safe-area-inset-top, 0px) + 6px)); padding-bottom:12px; box-shadow:var(--shadow-md), inset 0 -1px 0 var(--surface-border-gold); border-bottom:1px solid var(--surface-border); }
.nav-container { width:100%; max-width:var(--container-max); margin:0 auto; padding:0 max(24px, env(safe-area-inset-right, 0px)) 0 max(24px, env(safe-area-inset-left, 0px)); display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:nowrap; box-sizing:border-box; }
.nav-logo { display:flex; align-items:center; gap:11px; }
.nav-logo-icon { width:44px; height:44px; background:var(--gradient-gold); border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; font-size:1.3rem; }
.nav-logo-text { font-family:var(--font-heading); font-size:clamp(1.05rem,3.5vw,1.35rem); font-weight:700; color:var(--white); line-height:1.15; }
.nav-logo-text span { color:var(--gold); }
.nav-menu { display:flex; align-items:center; gap:4px; }
.nav-link { padding:8px 14px; font-size:0.88rem; font-weight:500; color:var(--gray-light); border-radius:var(--radius-full); transition:var(--transition); position:relative; }
.nav-link::after { content:''; position:absolute; bottom:4px; left:50%; transform:translateX(-50%); width:0; height:2px; background:var(--gold); transition:width 0.3s ease; border-radius:var(--radius-full); }
.nav-link:hover { color:var(--white); }
.nav-link:hover::after,.nav-link.active::after { width:55%; }
.nav-link.active { color:var(--gold); }
.nav-cta { margin-left:14px; }
.nav-toggle { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:12px; min-width:44px; min-height:44px; justify-content:center; align-items:center; z-index:1003; flex-shrink:0; position:relative; border-radius:var(--radius-md); transition:background 0.25s var(--ease-out); color:var(--white); -webkit-tap-highlight-color:transparent; }
.nav-toggle:hover { background:rgba(255,255,255,0.08); }
.nav-toggle:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.nav-toggle span { display:block; width:26px; height:2px; background:var(--white); border-radius:var(--radius-full); transition:transform 0.35s var(--ease-out),opacity 0.25s ease; box-shadow:0 0 0 1px rgba(0,0,0,0.35); }
.nav-toggle.active span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle.active span:nth-child(2) { opacity:0; }
.nav-toggle.active span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ── HERO / VIDEO BG ── */
.hero-section { position:relative; min-height:100vh; min-height:100dvh; display:flex; align-items:center; overflow:hidden; }
/* Decorative floating orbs (direct children, not bg/content/scroll) */
.hero-section > div:not(.hero-bg):not(.container):not(.hero-scroll) { pointer-events:none; }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg-gradient { position:absolute; inset:0; background-size:400% 400%; animation:videoShift 22s ease infinite; }
.hero-bg-home { background:linear-gradient(-45deg,#0a0a00,#1e1200,#2d1800,#1a0a0a,#070012,#040010,#0a0a00,#1a1000); }
.hero-bg-menu { background:linear-gradient(-45deg,#0d0000,#200808,#2d1010,#1a0505,#0d0000,#180808,#0d0000,#150505); }
.hero-bg-about { background:linear-gradient(-45deg,#001208,#052414,#0a3020,#001808,#000c04,#041a0c,#001208,#041a10); }
.hero-bg-gallery { background:linear-gradient(-45deg,#00060f,#050f1e,#0a182d,#000a18,#00040c,#040c1a,#00060f,#040a18); }
.hero-bg-reservations { background:linear-gradient(-45deg,#0f0800,#1e1200,#2d1c00,#1a1000,#0f0800,#1e1400,#0f0800,#1a0e00); }
.hero-bg-order { background:linear-gradient(-45deg,#0a0a00,#1a1200,#2d1e00,#1a0a0a,#0a0012,#06000f,#0a0a00,#1a1000); }
.hero-bg-contact { background:linear-gradient(-45deg,#080808,#141414,#1e1e1e,#0d0808,#060000,#0d0500,#080808,#100808); }

@keyframes videoShift {
  0%   { background-position:0% 50%; }
  25%  { background-position:50% 100%; }
  50%  { background-position:100% 50%; }
  75%  { background-position:50% 0%; }
  100% { background-position:0% 50%; }
}

.hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,6,5,0.35) 0%,rgba(0,0,0,0.62) 50%,rgba(7,6,5,0.88) 100%),var(--gradient-hero-vignette); z-index:1; }
.hero-grain { position:absolute; inset:0; z-index:2; opacity:0.25; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E"); }
.hero-particles { position:absolute; inset:0; z-index:3; overflow:hidden; }

.particle { position:absolute; border-radius:50%; animation:particleFloat linear infinite; opacity:0; }
@keyframes particleFloat {
  0%   { transform:translateY(100vh) rotate(0deg) scale(0); opacity:0; }
  5%   { opacity:1; }
  95%  { opacity:0.6; }
  100% { transform:translateY(-120px) rotate(720deg) scale(1.5); opacity:0; }
}

.hero-content { position:relative; z-index:10; width:100%; }
.hero-section .container { position:relative; z-index:10; padding-top:clamp(72px, 14vh, 120px); padding-bottom:clamp(48px, 8vh, 80px); }
.hero-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(201,168,76,0.12); border:1px solid rgba(201,168,76,0.38); color:var(--gold-light); padding:8px 20px; border-radius:var(--radius-full); font-size:0.83rem; font-weight:500; letter-spacing:1px; margin-bottom:22px; animation:fadeInDown 0.8s ease forwards; }
.hero-title { color:var(--white); margin-bottom:20px; animation:fadeInUp 0.8s ease 0.2s both; overflow-wrap:anywhere; max-width:100%; }
.hero-title span { color:var(--gold); display:block; }
.hero-subtitle { color:rgba(247,243,236,0.78); font-size:clamp(1rem,2.4vw,1.15rem); max-width:min(600px,100%); margin-bottom:38px; animation:fadeInUp 0.8s ease 0.4s both; line-height:1.75; }
.hero-buttons { display:flex; gap:16px; flex-wrap:wrap; animation:fadeInUp 0.8s ease 0.6s both; }
.hero-stats { display:flex; gap:40px; margin-top:56px; animation:fadeInUp 0.8s ease 0.8s both; }
.hero-stat-divider { width:1px; background:rgba(255,255,255,0.12); }
.hero-stat-num { font-family:var(--font-heading); font-size:2rem; font-weight:700; color:var(--gold); }
.hero-stat-label { color:rgba(245,240,232,0.6); font-size:0.82rem; margin-top:3px; }
.hero-scroll { position:absolute; bottom:38px; left:50%; transform:translateX(-50%); z-index:10; display:flex; flex-direction:column; align-items:center; gap:7px; color:rgba(255,255,255,0.45); font-size:0.75rem; letter-spacing:2px; text-transform:uppercase; animation:bounce 2s ease infinite; }
.hero-scroll-line { width:1px; height:38px; background:linear-gradient(to bottom,transparent,rgba(201,168,76,0.8)); }
@keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(10px);} }

/* PAGE HERO (shorter) */
.page-hero { min-height:clamp(320px,52vh,58vh); display:flex; align-items:center; padding-top:clamp(88px,12vh,120px); padding-bottom:clamp(36px,6vh,56px); }
.page-hero .container { padding-top:0; padding-bottom:0; }
.page-hero-content { position:relative; z-index:10; text-align:center; max-width:820px; margin:0 auto; padding:0 4px; }
.page-hero .hero-subtitle { margin-left:auto; margin-right:auto; }
.breadcrumb { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; row-gap:4px; color:var(--gray); font-size:0.83rem; margin-top:18px; text-align:center; max-width:100%; padding:0 4px; box-sizing:border-box; }
.breadcrumb a { color:var(--gold); }
.breadcrumb-sep { color:var(--dark-4); }

/* ── SCROLL ANIMATIONS ── */
[data-animate] { opacity:0; transform:translateY(40px); transition:opacity 0.8s ease,transform 0.8s ease; }
[data-animate].animated { opacity:1; transform:translateY(0); }
[data-animate="left"] { transform:translateX(-40px); }
[data-animate="right"] { transform:translateX(40px); }
[data-animate="left"].animated,[data-animate="right"].animated { transform:translateX(0); }
[data-delay="100"] { transition-delay:0.1s; }
[data-delay="200"] { transition-delay:0.2s; }
[data-delay="300"] { transition-delay:0.3s; }
[data-delay="400"] { transition-delay:0.4s; }
[data-delay="500"] { transition-delay:0.5s; }
[data-delay="600"] { transition-delay:0.6s; }

/* ── FLOATING ANIMATION ── */
@keyframes float { 0%,100%{transform:translateY(0) rotate(0deg);} 33%{transform:translateY(-20px) rotate(2deg);} 66%{transform:translateY(-10px) rotate(-1deg);} }

/* ── SHIMMER TEXT ── */
.shimmer-text { background:linear-gradient(90deg,var(--gold) 25%,var(--gold-light) 50%,var(--gold) 75%); background-size:200% auto; -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; animation:shimmer 3s linear infinite; }
@keyframes shimmer { 0%{background-position:-200% center;} 100%{background-position:200% center;} }

/* ── WELCOME SECTION ── */
.welcome-section { padding:120px 0; background:var(--dark-1); overflow-x:hidden; }
.welcome-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.welcome-image-wrapper { position:relative; max-width:100%; }
.welcome-image-main { width:100%; height:clamp(280px,50vw,540px); min-height:260px; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); }
.welcome-image-accent { position:absolute; bottom:-36px; right:-36px; width:190px; height:190px; object-fit:cover; border-radius:var(--radius-lg); border:4px solid var(--dark-1); box-shadow:var(--shadow-md); }
.welcome-badge { position:absolute; top:-18px; left:-18px; background:var(--gradient-gold); color:var(--dark); padding:12px 18px; border-radius:var(--radius-md); font-weight:700; font-size:0.83rem; box-shadow:var(--shadow-gold); }
.welcome-text h2 { color:var(--white); margin-bottom:18px; }
.welcome-text p { color:var(--gray); margin-bottom:14px; font-size:1.03rem; }
.welcome-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:36px 0; padding:28px 0; border-top:1px solid var(--dark-3); border-bottom:1px solid var(--dark-3); }
.stat-item { text-align:center; }
.stat-number { font-family:var(--font-heading); font-size:2.4rem; font-weight:700; color:var(--gold); display:block; line-height:1; }
.stat-label { font-size:0.78rem; color:var(--gray); text-transform:uppercase; letter-spacing:1px; margin-top:5px; }

/* ── DISH CARDS ── */
.featured-section { padding:var(--section-padding); background:var(--dark); }
.dishes-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr)); gap:28px; margin-top:16px; }
.dish-card { background:linear-gradient(165deg,var(--dark-2) 0%,var(--dark-3) 100%); border-radius:var(--radius-lg); overflow:hidden; transition:var(--transition); border:1px solid var(--surface-border); box-shadow:var(--shadow-sm); cursor:pointer; }
.dish-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg),0 0 0 1px var(--surface-border-gold); border-color:var(--surface-border-gold); }
.dish-image-wrapper { position:relative; overflow:hidden; height:235px; }
.dish-image-wrapper img { width:100%; height:100%; object-fit:cover; transition:transform 0.6s ease; }
.dish-card:hover .dish-image-wrapper img { transform:scale(1.08); }
.dish-badge { position:absolute; top:14px; left:14px; padding:4px 12px; border-radius:var(--radius-full); font-size:0.73rem; font-weight:600; text-transform:uppercase; letter-spacing:1px; }
.dish-badge.popular { background:var(--gold); color:var(--dark); }
.dish-badge.new { background:var(--success); color:var(--white); }
.dish-badge.chef { background:var(--burgundy); color:var(--white); }
.dish-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,0.65) 0%,transparent 55%); }
.dish-info { padding:22px; }
.dish-category { font-size:0.73rem; color:var(--gold); font-weight:600; text-transform:uppercase; letter-spacing:1px; margin-bottom:7px; }
.dish-name { font-family:var(--font-heading); font-size:1.25rem; color:var(--white); margin-bottom:7px; }
.dish-description { color:var(--gray); font-size:0.88rem; margin-bottom:14px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.dish-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.dish-price { font-family:var(--font-heading); font-size:1.35rem; font-weight:700; color:var(--gold); }
.dish-rating { display:flex; align-items:center; gap:3px; color:var(--gold); font-size:0.83rem; }

/* ── OFFERS ── */
.offers-section { padding:var(--section-padding); background:var(--dark-1); }
.offers-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.offer-card { background:linear-gradient(180deg,var(--dark-2) 0%,rgba(22,20,18,0.98) 100%); border-radius:var(--radius-lg); padding:clamp(28px,4vw,38px) clamp(22px,3vw,28px); text-align:center; border:1px solid var(--surface-border); transition:var(--transition); position:relative; overflow:hidden; box-shadow:var(--shadow-sm); }
.offer-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--gradient-gold); opacity:0.95; }
.offer-card:hover { transform:translateY(-6px); border-color:var(--surface-border-gold); box-shadow:var(--shadow-md),0 0 0 1px rgba(212,181,106,0.08); }
.offer-icon { width:68px; height:68px; background:rgba(201,168,76,0.08); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 18px; font-size:1.9rem; border:1px solid rgba(201,168,76,0.18); }
.offer-card h3 { color:var(--white); margin-bottom:10px; font-size:1.3rem; }
.offer-card p { color:var(--gray); font-size:0.93rem; }
.offer-tag { display:inline-block; margin-top:14px; padding:5px 14px; background:rgba(201,168,76,0.08); color:var(--gold); border-radius:var(--radius-full); font-size:0.82rem; font-weight:600; }

/* ── TESTIMONIALS ── */
.testimonials-section { padding:var(--section-padding); background:var(--dark); overflow-x:hidden; overflow-y:visible; max-width:100%; }
.testimonials-section > div:not(.container) { max-width:100%; overflow-x:hidden; }
.testimonials-track { display:flex; gap:28px; animation:scrollTestimonials 45s linear infinite; width:max-content; }
.testimonials-track:hover { animation-play-state:paused; }
@keyframes scrollTestimonials { 0%{transform:translateX(0);} 100%{transform:translateX(-50%);} }
.testimonial-card { background:linear-gradient(160deg,var(--dark-2),var(--dark-3)); border-radius:var(--radius-lg); padding:clamp(22px,4vw,28px); width:min(340px,calc(100vw - 32px),92vw); max-width:min(340px,100%); flex-shrink:0; border:1px solid var(--surface-border); box-shadow:var(--shadow-sm); box-sizing:border-box; }
.testimonial-stars { color:var(--gold); font-size:1.05rem; margin-bottom:14px; }
.testimonial-text { color:var(--gray-light); font-size:0.92rem; line-height:1.7; margin-bottom:18px; font-style:italic; }
.testimonial-author { display:flex; align-items:center; gap:11px; }
.testimonial-avatar { width:46px; height:46px; border-radius:50%; object-fit:cover; border:2px solid var(--gold); }
.testimonial-name { font-weight:600; color:var(--white); font-size:0.92rem; }
.testimonial-date { color:var(--gray); font-size:0.77rem; }

/* ── CTA ── */
.cta-section { padding:80px 0; background:var(--dark-1); position:relative; overflow:hidden; }
.cta-section::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 20% 50%,rgba(201,168,76,0.05) 0%,transparent 60%),radial-gradient(circle at 80% 50%,rgba(123,30,30,0.05) 0%,transparent 60%); }
.cta-content { text-align:center; position:relative; z-index:1; }
.cta-content h2 { color:var(--white); margin-bottom:14px; }
.cta-content p { color:var(--gray); font-size:1.07rem; max-width:580px; margin:0 auto 38px; }
.cta-buttons { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ── MENU PAGE ── */
.menu-section { padding:var(--section-padding); background:var(--dark); }
.menu-tabs { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:48px; }
.menu-tab { padding:11px 26px; border-radius:var(--radius-full); background:var(--dark-2); color:var(--gray); font-size:0.88rem; font-weight:500; border:1px solid rgba(255,255,255,0.05); cursor:pointer; transition:var(--transition); }
.menu-tab:hover { color:var(--gold); border-color:rgba(201,168,76,0.3); }
.menu-tab.active { background:var(--gradient-gold); color:var(--dark); border-color:transparent; font-weight:700; }
.menu-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr)); gap:22px; }
.menu-item { background:var(--dark-2); border-radius:var(--radius-lg); overflow:hidden; transition:var(--transition); border:1px solid rgba(255,255,255,0.05); display:none; flex-direction:column; }
.menu-item.active { display:flex; }
.menu-item:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:rgba(201,168,76,0.15); }
.menu-item-image { width:100%; height:195px; object-fit:cover; transition:transform 0.5s ease; }
.menu-item:hover .menu-item-image { transform:scale(1.05); }
.menu-item-body { padding:18px; flex:1; display:flex; flex-direction:column; }
.menu-item-header { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:8px 12px; margin-bottom:9px; }
.menu-item-name { font-family:var(--font-heading); font-size:1.15rem; color:var(--white); flex:1 1 12rem; min-width:0; padding-right:10px; }
.menu-item-price { font-family:var(--font-heading); font-size:1.25rem; font-weight:700; color:var(--gold); white-space:nowrap; }
.menu-item-desc { color:var(--gray); font-size:0.87rem; line-height:1.6; flex:1; margin-bottom:14px; }
.menu-item-tags { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:14px; }
.menu-tag { padding:3px 10px; border-radius:var(--radius-full); font-size:0.73rem; font-weight:500; }
.menu-tag.spicy { background:rgba(231,76,60,0.13); color:#E74C3C; }
.menu-tag.veg { background:rgba(39,174,96,0.13); color:#27AE60; }
.menu-tag.gf { background:rgba(243,156,18,0.13); color:#F39C12; }
.menu-tag.popular { background:rgba(201,168,76,0.13); color:var(--gold); }
.menu-item-add { width:100%; padding:11px; background:rgba(201,168,76,0.08); color:var(--gold); border-radius:var(--radius-md); font-size:0.87rem; font-weight:600; transition:var(--transition); border:1px solid rgba(201,168,76,0.18); }
.menu-item-add:hover { background:var(--gold); color:var(--dark); }

/* ── ABOUT ── */
.about-story { padding:var(--section-padding); background:var(--dark-1); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.about-image-stack { position:relative; height:580px; }
.about-img-1 { position:absolute; top:0; left:0; width:74%; height:390px; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); }
.about-img-2 { position:absolute; bottom:0; right:0; width:63%; height:280px; object-fit:cover; border-radius:var(--radius-lg); border:4px solid var(--dark-1); box-shadow:var(--shadow-md); }
.about-quote { background:var(--gradient-gold); color:var(--dark); padding:22px 26px; border-radius:var(--radius-lg); font-family:var(--font-heading); font-style:italic; font-size:1.05rem; margin:26px 0; }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:40px 0; }
.value-item { text-align:center; padding:24px 16px; background:var(--dark-2); border-radius:var(--radius-lg); border:1px solid rgba(255,255,255,0.04); transition:var(--transition); }
.value-item:hover { border-color:rgba(201,168,76,0.2); transform:translateY(-4px); }
.value-icon { font-size:2rem; margin-bottom:12px; }
.value-item h4 { color:var(--white); margin-bottom:8px; font-size:1rem; }
.value-item p { color:var(--gray); font-size:0.85rem; }
.team-section { padding:var(--section-padding); background:var(--dark); }
.team-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr)); gap:28px; }
.team-card { background:var(--dark-2); border-radius:var(--radius-lg); overflow:hidden; text-align:center; transition:var(--transition); border:1px solid rgba(255,255,255,0.05); }
.team-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-md); border-color:rgba(201,168,76,0.2); }
.team-image { width:100%; height:270px; object-fit:cover; object-position:top; }
.team-info { padding:22px; }
.team-name { font-family:var(--font-heading); font-size:1.25rem; color:var(--white); margin-bottom:5px; }
.team-role { color:var(--gold); font-size:0.82rem; font-weight:600; text-transform:uppercase; letter-spacing:1px; margin-bottom:10px; }
.team-bio { color:var(--gray); font-size:0.87rem; line-height:1.6; }
.awards-section { padding:var(--section-padding); background:var(--dark-1); }
.awards-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr)); gap:22px; }
.award-card { background:var(--dark-2); border-radius:var(--radius-lg); padding:30px 20px; text-align:center; border:1px solid rgba(201,168,76,0.12); transition:var(--transition); }
.award-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-gold); }
.award-icon { font-size:2.5rem; margin-bottom:14px; }
.award-title { font-family:var(--font-heading); color:var(--white); font-size:1rem; margin-bottom:5px; }
.award-year { color:var(--gold); font-size:0.82rem; font-weight:600; }

/* ── GALLERY ── */
.gallery-section { padding:var(--section-padding); background:var(--dark); }
.gallery-filters { display:flex; gap:10px; justify-content:center; margin-bottom:38px; flex-wrap:wrap; -webkit-overflow-scrolling:touch; }
.gallery-filter { padding:10px 22px; border-radius:var(--radius-full); background:var(--dark-2); color:var(--gray); font-size:0.87rem; cursor:pointer; transition:var(--transition); border:1px solid rgba(255,255,255,0.05); }
.gallery-filter:hover,.gallery-filter.active { background:var(--gold); color:var(--dark); font-weight:600; }
.gallery-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr)); gap:18px; }
.gallery-item { position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/3; cursor:pointer; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease; }
.gallery-overlay { position:absolute; inset:0; background:rgba(0,0,0,0.68); display:flex; align-items:center; justify-content:center; opacity:0; transition:var(--transition); }
.gallery-item:hover img { transform:scale(1.1); }
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-icon { color:var(--white); font-size:1.9rem; transform:scale(0); transition:transform 0.3s ease; }
.gallery-item:hover .gallery-icon { transform:scale(1); }
.lightbox { position:fixed; inset:0; background:rgba(0,0,0,0.96); z-index:2000; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity 0.3s ease; }
.lightbox.active { opacity:1; pointer-events:all; }
.lightbox-img { max-width:min(94vw,100%); max-height:min(85vh,85dvh); width:auto; height:auto; object-fit:contain; border-radius:var(--radius-md); box-shadow:var(--shadow-lg); box-sizing:border-box; }
.lightbox-close { position:absolute; top:max(22px, env(safe-area-inset-top, 0px)); right:max(22px, env(safe-area-inset-right, 0px)); color:var(--white); font-size:1.9rem; cursor:pointer; transition:var(--transition); background:none; border:none; min-width:44px; min-height:44px; display:flex; align-items:center; justify-content:center; border-radius:var(--radius-md); }
.lightbox-close:hover { color:var(--gold); transform:rotate(90deg); }

/* ── RESERVATIONS ── */
.reservations-section { padding:var(--section-padding); background:var(--dark-1); overflow-x:hidden; }
.reservations-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.reservations-grid > div { min-width:0; max-width:100%; }
.reservation-info-col h3,
.reservation-info-col p { overflow-wrap:anywhere; word-break:break-word; }
.reservation-book-row { display:flex; align-items:flex-start; gap:14px; padding:16px clamp(14px,4vw,18px); background:var(--dark-2); border-radius:var(--radius-lg); border:1px solid rgba(255,255,255,.05); min-width:0; max-width:100%; box-sizing:border-box; }
.reservation-book-row .reservation-book-icon { width:42px; height:42px; flex-shrink:0; background:rgba(201,168,76,.1); border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:1.1rem; }
.reservation-book-text { flex:1; min-width:0; overflow-wrap:anywhere; word-break:break-word; }
.reservation-policies { margin-top:30px; padding:clamp(18px,4vw,22px); background:rgba(201,168,76,.05); border-radius:var(--radius-lg); border:1px solid rgba(201,168,76,.15); max-width:100%; box-sizing:border-box; }
.reservation-policies ul { color:var(--gray); font-size:.85rem; line-height:1.8; list-style:disc; padding-left:1.25rem; margin:0; overflow-wrap:anywhere; }
.reservation-policies-title { color:var(--gold); margin-bottom:12px; font-family:var(--font-heading); }
.reservation-lead { color:var(--gray); margin-bottom:28px; overflow-wrap:anywhere; word-break:break-word; }
.reservation-book-extras { margin-top:36px; max-width:100%; }
.reservation-book-heading { color:var(--white); font-family:var(--font-heading); margin-bottom:18px; }
.reservation-book-list { display:flex; flex-direction:column; gap:14px; }
.reservation-book-title { color:var(--white); font-weight:600; font-size:.9rem; }
.reservation-book-detail { color:var(--gray); font-size:.85rem; overflow-wrap:anywhere; word-break:break-word; }
.reservation-demo-badge { font-size:.7rem; background:rgba(201,168,76,.1); color:var(--gold); padding:1px 6px; border-radius:20px; white-space:nowrap; vertical-align:middle; }
.form-agree-link { color:var(--gold); }
.private-dining-media { min-width:0; max-width:100%; }
.private-dining-list { color:var(--gray); font-size:.92rem; line-height:2; margin:0 0 28px; padding-left:0; list-style:none; overflow-wrap:anywhere; }
.private-dining-list li { padding-left:0; }
.private-dining-check { color:var(--gold); margin-right:8px; }
.form-agree-row { display:flex; align-items:flex-start; gap:10px; margin-bottom:24px; max-width:100%; }
.form-agree-row input[type=checkbox] { margin-top:4px; flex-shrink:0; accent-color:var(--gold); }
.form-agree-label { flex:1; min-width:0; color:var(--gray); font-size:.85rem; line-height:1.55; cursor:pointer; overflow-wrap:anywhere; word-break:break-word; }
.private-dining-cta { padding:clamp(48px,10vw,80px) 0; background:var(--dark); overflow-x:hidden; }
.private-dining-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5vw,50px); align-items:center; max-width:100%; }
.private-dining-img { width:100%; max-width:100%; height:auto; min-height:200px; max-height:420px; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); display:block; box-sizing:border-box; }
.private-dining-copy { min-width:0; max-width:100%; }
.private-dining-copy h2,
.private-dining-copy p,
.private-dining-copy li { overflow-wrap:anywhere; word-break:break-word; }
.reservation-info h3 { font-family:var(--font-heading); color:var(--white); font-size:1.75rem; margin-bottom:18px; }
.reservation-info p { color:var(--gray); margin-bottom:26px; }
.hours-list { margin-top:26px; }
.hours-item { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:8px 16px; padding:11px 0; border-bottom:1px solid rgba(255,255,255,0.05); color:var(--gray); font-size:0.92rem; }
.hours-item span:last-child { text-align:right; }
.hours-item:last-child { border-bottom:none; }
.hours-item span:first-child { color:var(--light); font-weight:500; }
.hours-item span:last-child { color:var(--gold); }
.reservation-form-wrapper { background:var(--dark-2); border-radius:var(--radius-xl); padding:48px; border:1px solid rgba(255,255,255,0.05); width:100%; max-width:100%; box-sizing:border-box; }
.reservation-form-wrapper h4,
.reservation-form-wrapper > p { overflow-wrap:anywhere; }
.reservations-section .form-group { min-width:0; max-width:100%; }
.reservations-section .form-control,
.reservations-section select.form-control { max-width:100%; box-sizing:border-box; }

/* ── FORMS ── */
.form-group { margin-bottom:22px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-label { display:block; font-size:0.83rem; font-weight:600; color:var(--gray-light); margin-bottom:7px; letter-spacing:0.4px; }
.form-control { width:100%; padding:13px 17px; background:var(--dark-3); border:1px solid rgba(255,255,255,0.08); border-radius:var(--radius-md); color:var(--light); font-size:0.93rem; transition:var(--transition); }
.form-control:focus { border-color:var(--gold); background:var(--dark-2); box-shadow:0 0 0 3px rgba(201,168,76,0.1); }
.form-control::placeholder { color:var(--gray); }
select.form-control { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23888' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:13px; padding-right:42px; }
textarea.form-control { resize:vertical; min-height:115px; }

/* ── ORDER PAGE ── */
.order-section { padding:var(--section-padding); background:var(--dark); overflow-x:hidden; }
.order-layout > div { min-width:0; max-width:100%; }
.order-type-btn { display:flex; align-items:center; justify-content:center; gap:9px; padding:12px clamp(16px,4vw,24px); border-radius:var(--radius-full); font-weight:600; font-size:clamp(.82rem,2.8vw,.92rem); cursor:pointer; transition:var(--transition); flex:1 1 130px; min-width:0; max-width:100%; box-sizing:border-box; text-align:center; line-height:1.3; border-width:1px; border-style:solid; }
.order-meta-chip { display:flex; align-items:center; gap:8px; padding:12px clamp(14px,3vw,18px); background:var(--dark-2); border-radius:var(--radius-full); color:var(--gray); font-size:clamp(.78rem,2.5vw,.85rem); border:1px solid rgba(255,255,255,.05); flex:1 1 180px; min-width:0; max-width:100%; box-sizing:border-box; overflow-wrap:anywhere; line-height:1.35; }
.order-meta-chip span { min-width:0; }
.order-item-name { overflow-wrap:anywhere; word-break:break-word; }
.order-item-desc { overflow-wrap:anywhere; word-break:break-word; }
.card-brand-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.card-brand-row > div { padding:6px 12px; background:var(--dark-3); border-radius:5px; color:var(--gray); font-size:.8rem; font-weight:700; letter-spacing:1px; }
.payment-trust-row { display:flex; align-items:flex-start; gap:10px; margin-bottom:20px; padding:14px; background:rgba(39,174,96,.05); border-radius:var(--radius-md); border:1px solid rgba(39,174,96,.15); max-width:100%; box-sizing:border-box; }
.payment-trust-row i { flex-shrink:0; margin-top:2px; }
.payment-trust-row span { flex:1; min-width:0; color:var(--gray); font-size:.82rem; line-height:1.5; overflow-wrap:anywhere; }
.order-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,min(370px,100%)); gap:clamp(18px,4vw,38px); align-items:start; }
.order-categories { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:26px; -webkit-overflow-scrolling:touch; }
.order-items-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr)); gap:18px; }
.order-item-card { background:var(--dark-2); border-radius:var(--radius-lg); overflow:hidden; transition:var(--transition); border:1px solid rgba(255,255,255,0.05); }
.order-item-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.order-item-image { width:100%; height:170px; object-fit:cover; }
.order-item-info { padding:15px; min-width:0; max-width:100%; box-sizing:border-box; }
.order-item-name { font-family:var(--font-heading); font-size:1.08rem; color:var(--white); margin-bottom:5px; }
.order-item-desc { color:var(--gray); font-size:0.83rem; margin-bottom:12px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.order-item-footer { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; }
.order-item-price { font-family:var(--font-heading); font-size:1.18rem; font-weight:700; color:var(--gold); }
.order-add-btn { width:35px; height:35px; border-radius:50%; background:var(--gold); color:var(--dark); font-size:1.2rem; font-weight:700; display:flex; align-items:center; justify-content:center; transition:var(--transition); border:none; cursor:pointer; }
.order-add-btn:hover { background:var(--gold-light); transform:scale(1.1); }

/* Cart Sidebar */
.cart-sidebar { background:var(--dark-2); border-radius:var(--radius-xl); padding:28px; position:sticky; top:100px; border:1px solid rgba(255,255,255,0.05); max-height:min(calc(100vh - 120px),calc(100dvh - 120px)); display:flex; flex-direction:column; min-width:0; max-width:100%; box-sizing:border-box; }
.cart-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,0.05); }
.cart-header h3 { font-family:var(--font-heading); color:var(--white); font-size:1.25rem; }
.cart-count { background:var(--gold); color:var(--dark); width:27px; height:27px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.82rem; font-weight:700; }
.cart-items { flex:1; overflow-y:auto; margin-bottom:18px; }
.cart-item { display:flex; gap:11px; align-items:center; padding:11px 0; border-bottom:1px solid rgba(255,255,255,0.05); }
.cart-item:last-child { border-bottom:none; }
.cart-item-image { width:58px; height:58px; border-radius:var(--radius-md); object-fit:cover; flex-shrink:0; }
.cart-item-info { flex:1; min-width:0; }
.cart-item-name { color:var(--white); font-size:0.87rem; font-weight:500; margin-bottom:3px; overflow-wrap:anywhere; }
.cart-item-price { color:var(--gold); font-size:0.87rem; font-weight:600; }
.cart-item-qty { display:flex; align-items:center; gap:7px; }
.qty-btn { width:27px; height:27px; border-radius:50%; background:var(--dark-3); color:var(--white); display:flex; align-items:center; justify-content:center; font-size:1rem; cursor:pointer; transition:var(--transition); border:none; }
.qty-btn:hover { background:var(--gold); color:var(--dark); }
.qty-value { color:var(--white); font-weight:600; min-width:18px; text-align:center; }
.cart-item-remove { width:27px; height:27px; border-radius:50%; background:rgba(239,68,68,.12); color:#ef4444; display:flex; align-items:center; justify-content:center; font-size:.72rem; cursor:pointer; transition:var(--transition); border:none; flex-shrink:0; }
.cart-item-remove:hover { background:#ef4444; color:var(--white); transform:scale(1.1); }
.cart-clear-btn { background:none; border:1px solid rgba(239,68,68,.25); cursor:pointer; color:#ef4444; font-size:.75rem; display:flex; align-items:center; gap:5px; transition:var(--transition); padding:4px 10px; border-radius:20px; font-family:var(--font-body); font-weight:500; }
.cart-clear-btn:hover { background:rgba(239,68,68,.12); border-color:#ef4444; }
.cart-clear-btn:disabled { opacity:0.35; cursor:not-allowed; }
.cart-empty { text-align:center; padding:38px 18px; color:var(--gray); }
.cart-empty-icon { font-size:2.8rem; margin-bottom:14px; opacity:0.45; }
.cart-summary { border-top:1px solid rgba(255,255,255,0.05); padding-top:18px; }
.cart-row { display:flex; justify-content:space-between; margin-bottom:9px; font-size:0.87rem; color:var(--gray); }
.cart-row.total { color:var(--white); font-weight:700; font-size:1.07rem; padding-top:9px; border-top:1px solid rgba(255,255,255,0.05); margin-top:9px; }
.cart-row span:last-child { color:var(--gold); }

/* ── PAYMENT MODAL ── */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.88); z-index:1500; display:flex; align-items:center; justify-content:center; padding:max(16px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); opacity:0; pointer-events:none; transition:opacity 0.3s ease; overflow-y:auto; -webkit-overflow-scrolling:touch; box-sizing:border-box; }
.modal-overlay.active { opacity:1; pointer-events:all; }
.modal { background:var(--dark-2); border-radius:var(--radius-xl); padding:38px 48px 48px; width:100%; max-width:580px; max-height:min(92vh,92dvh); overflow-y:auto; border:1px solid rgba(255,255,255,0.08); transform:translateY(-28px); transition:transform 0.3s ease; position:relative; margin:auto; box-sizing:border-box; }
.modal-overlay.active .modal { transform:translateY(0); }
.modal-close { position:absolute; top:18px; right:18px; color:var(--gray); font-size:1.45rem; cursor:pointer; transition:var(--transition); border:none; background:none; }
.modal-close:hover { color:var(--white); transform:rotate(90deg); }
.modal-header { margin-bottom:24px; }
.modal-header h3 { font-family:var(--font-heading); color:var(--white); font-size:1.55rem; margin-bottom:7px; }
.modal-header p { color:var(--gray); font-size:0.87rem; }

/* ── MODAL STEP INDICATOR ── */
.modal-steps { display:flex; align-items:center; margin-bottom:30px; padding-bottom:24px; border-bottom:1px solid rgba(255,255,255,.06); }
.modal-step { display:flex; flex-direction:column; align-items:center; gap:6px; flex-shrink:0; }
.step-dot { width:36px; height:36px; border-radius:50%; background:var(--dark-3); border:2px solid rgba(255,255,255,.1); color:var(--gray); font-size:.8rem; display:flex; align-items:center; justify-content:center; transition:all .35s ease; }
.modal-step.active .step-dot { background:var(--gradient-gold); border-color:var(--gold); color:var(--dark); box-shadow:0 0 0 4px rgba(201,168,76,.18); }
.modal-step.done .step-dot { background:rgba(39,174,96,.15); border-color:var(--success); color:var(--success); }
.step-label { font-size:.72rem; color:var(--gray); font-weight:500; letter-spacing:.04em; white-space:nowrap; transition:color .3s; }
.modal-step.active .step-label { color:var(--gold); font-weight:600; }
.modal-step.done .step-label { color:var(--success); }
.step-line { flex:1; height:2px; background:rgba(255,255,255,.07); margin:0 10px 18px; border-radius:2px; transition:background .4s ease; }
.step-line.done { background:var(--gold); }

/* ── ORDER REVIEW STEP ── */
.order-review-content { display:none; }
.review-items-container { max-height:290px; overflow-y:auto; margin-bottom:16px; scrollbar-width:thin; scrollbar-color:rgba(201,168,76,.3) transparent; }
.review-items-container::-webkit-scrollbar { width:4px; }
.review-items-container::-webkit-scrollbar-thumb { background:rgba(201,168,76,.3); border-radius:4px; }
.review-item { display:flex; align-items:center; gap:13px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.05); animation:fadeInUp .25s ease; }
.review-item:last-child { border-bottom:none; }
.review-item-img { width:58px; height:58px; border-radius:var(--radius-md); object-fit:cover; flex-shrink:0; }
.review-item-info { flex:1; min-width:0; }
.review-item-name { color:var(--white); font-size:.88rem; font-weight:500; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.review-item-unit { color:var(--gray); font-size:.76rem; }
.review-item-right { display:flex; flex-direction:column; align-items:flex-end; gap:7px; flex-shrink:0; }
.review-item-subtotal { color:var(--gold); font-weight:700; font-size:.92rem; }
.review-item-controls { display:flex; align-items:center; gap:5px; }
.review-summary { background:var(--dark-3); border-radius:var(--radius-lg); padding:16px 18px; border:1px solid rgba(255,255,255,.05); }
.review-sum-row { display:flex; justify-content:space-between; font-size:.85rem; color:var(--gray); margin-bottom:8px; }
.review-sum-row:last-child { margin-bottom:0; }
.review-sum-row.grand { color:var(--white); font-weight:700; font-size:1rem; padding-top:10px; border-top:1px solid rgba(255,255,255,.08); margin-top:6px; }
.review-sum-row.grand span:last-child { color:var(--gold); font-size:1.08rem; }
.review-empty { text-align:center; padding:32px 18px; color:var(--gray); }
.review-empty-icon { font-size:2.4rem; margin-bottom:12px; opacity:.4; }
.payment-methods { display:flex; gap:10px; margin-bottom:26px; }
.payment-method { flex:1; padding:13px; border:2px solid rgba(255,255,255,0.08); border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; gap:7px; cursor:pointer; transition:var(--transition); color:var(--gray); font-size:0.88rem; font-weight:500; }
.payment-method.active { border-color:var(--gold); color:var(--gold); background:rgba(201,168,76,0.05); }
.order-success { text-align:center; padding:28px 10px; display:none; }
.success-icon { width:78px; height:78px; background:rgba(39,174,96,0.13); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 22px; font-size:2.4rem; border:2px solid var(--success); animation:successPulse 0.8s ease; }
@keyframes successPulse { 0%{transform:scale(0);opacity:0;} 60%{transform:scale(1.12);} 100%{transform:scale(1);opacity:1;} }
.success-title { font-family:var(--font-heading); font-size:1.9rem; color:var(--white); margin-bottom:10px; }
.success-text { color:var(--gray); margin-bottom:20px; font-size:.9rem; line-height:1.6; }
.receipt-box { background:var(--dark-3); border-radius:var(--radius-lg); padding:18px 20px; text-align:left; border:1px solid rgba(255,255,255,.06); }
.receipt-meta-row { display:flex; justify-content:space-between; align-items:center; padding-bottom:9px; margin-bottom:9px; border-bottom:1px solid rgba(255,255,255,.05); font-size:.85rem; color:var(--gray); }
.receipt-item-row { display:flex; justify-content:space-between; align-items:flex-start; padding:9px 0; border-bottom:1px solid rgba(255,255,255,.04); font-size:.84rem; }
.receipt-item-row:last-child { border-bottom:none; }
.receipt-item-name { color:var(--white); flex:1; padding-right:10px; line-height:1.4; }
.receipt-item-qty { color:var(--gray); font-size:.78rem; margin-top:2px; }
.receipt-item-price { color:var(--gold); font-weight:600; flex-shrink:0; }
.receipt-divider { border:none; border-top:1px dashed rgba(255,255,255,.1); margin:14px 0; }
.receipt-total-row { display:flex; justify-content:space-between; font-size:.84rem; color:var(--gray); margin-bottom:7px; }
.receipt-total-row.grand { color:var(--white); font-weight:700; font-size:1rem; padding-top:9px; border-top:1px solid rgba(255,255,255,.08); margin-top:5px; }
.receipt-total-row.grand span:last-child { color:var(--gold); font-size:1.1rem; }

/* ── CONTACT ── */
.contact-section { padding:var(--section-padding); background:var(--dark); }
.contact-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:56px; }
.contact-info-cards { display:flex; flex-direction:column; gap:18px; }
.contact-info-card { background:var(--dark-2); border-radius:var(--radius-lg); padding:26px; border:1px solid rgba(255,255,255,0.05); display:flex; gap:18px; align-items:flex-start; transition:var(--transition); }
.contact-info-card:hover { border-color:rgba(201,168,76,0.2); transform:translateX(4px); }
.contact-info-icon { width:48px; height:48px; background:rgba(201,168,76,0.08); border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; font-size:1.25rem; color:var(--gold); flex-shrink:0; border:1px solid rgba(201,168,76,0.18); }
.contact-info-title { font-weight:600; color:var(--white); margin-bottom:5px; }
.contact-info-value { color:var(--gray); font-size:0.92rem; line-height:1.6; overflow-wrap:anywhere; }
.contact-info-badge { display:inline-block; font-size:0.68rem; background:rgba(201,168,76,0.1); color:var(--gold); padding:2px 7px; border-radius:var(--radius-full); margin-left:5px; vertical-align:middle; }
.contact-form-wrapper { background:var(--dark-2); border-radius:var(--radius-xl); padding:48px; border:1px solid rgba(255,255,255,0.05); }
.map-placeholder { margin-top:38px; height:clamp(200px,45vw,290px); min-height:200px; background:var(--dark-2); border-radius:var(--radius-lg); border:1px solid rgba(255,255,255,0.05); display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--gray); gap:11px; overflow:hidden; position:relative; }
.map-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(201,168,76,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,76,0.04) 1px,transparent 1px); background-size:38px 38px; }
.map-pin { position:relative; z-index:1; text-align:center; }

/* ── ORDER PAGE TOOLBAR ── */
.order-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:32px; }
.order-toolbar > * { max-width:100%; box-sizing:border-box; }

/* ── ABOUT TIMELINE (stacks on small screens) ── */
.about-timeline { max-width:720px; margin:0 auto; position:relative; padding:0 6px; box-sizing:border-box; }
.about-timeline-line { position:absolute; left:50%; top:0; bottom:0; width:2px; background:linear-gradient(to bottom,var(--gold),rgba(201,168,76,.1)); transform:translateX(-50%); pointer-events:none; }
@media (max-width:680px) {
  .about-timeline-line { display:none; }
  .about-timeline-row { display:flex !important; flex-direction:column; gap:14px; margin-bottom:36px !important; }
  .about-timeline-row > div { text-align:left !important; padding-left:0 !important; padding-right:0 !important; }
  .about-timeline-row > div:empty { display:none !important; }
}

.hero-text-block { box-sizing:border-box; }

/* ── DASHBOARD ── */
.dashboard-body { overflow-x:hidden; overflow-y:auto; max-width:100%; }
.dashboard-layout { display:flex; min-height:100vh; min-height:100dvh; width:100%; max-width:100%; background:var(--dark); position:relative; }
.dashboard-sidebar { width:min(255px,88vw); max-width:100%; background:var(--dark-1); padding:22px; border-right:1px solid rgba(255,255,255,0.05); position:fixed; top:0; left:0; bottom:0; overflow-y:auto; -webkit-overflow-scrolling:touch; z-index:100; transition:transform 0.3s ease; box-sizing:border-box; display:flex; flex-direction:column; }
.dashboard-logo { display:flex; align-items:center; gap:11px; padding:18px 0 26px; border-bottom:1px solid rgba(255,255,255,0.05); margin-bottom:26px; }
.dashboard-logo-icon { width:38px; height:38px; background:var(--gradient-gold); border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.dashboard-logo-text { font-family:var(--font-heading); font-size:1.15rem; color:var(--white); font-weight:700; }
.dashboard-logo-text span { color:var(--gold); }
.sidebar-section-title { font-size:0.68rem; font-weight:600; color:var(--gray); text-transform:uppercase; letter-spacing:2px; margin-bottom:10px; padding:0 10px; }
.sidebar-nav-item { display:flex; align-items:center; gap:11px; padding:11px 14px; border-radius:var(--radius-md); color:var(--gray); font-size:0.87rem; font-weight:500; cursor:pointer; transition:var(--transition); margin-bottom:3px; }
.sidebar-nav-item:hover { background:rgba(255,255,255,0.05); color:var(--white); }
.sidebar-nav-item.active { background:rgba(201,168,76,0.1); color:var(--gold); border:1px solid rgba(201,168,76,0.2); }
.sidebar-nav-icon { font-size:1.05rem; width:18px; text-align:center; }
.sidebar-badge { margin-left:auto; background:var(--burgundy); color:var(--white); font-size:0.68rem; font-weight:700; padding:2px 7px; border-radius:var(--radius-full); }
.dashboard-main { flex:1; margin-left:255px; padding:28px; overflow-x:hidden; overflow-y:auto; -webkit-overflow-scrolling:touch; min-width:0; max-width:100%; box-sizing:border-box; }
.dashboard-header { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:16px; margin-bottom:28px; padding-bottom:22px; border-bottom:1px solid rgba(255,255,255,0.05); }
.dashboard-header > div:first-child { min-width:0; flex:1 1 200px; }
.dashboard-header h1 { font-family:var(--font-heading); font-size:clamp(1.35rem,4vw,1.75rem); color:var(--white); }
.dashboard-header p { color:var(--gray); font-size:0.87rem; }
.dashboard-header-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:flex-end; flex:0 1 auto; max-width:100%; }
.dashboard-menu-toggle { display:none; align-items:center; justify-content:center; flex-shrink:0; cursor:pointer; position:relative; z-index:300; }
.dashboard-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:26px; }
.stat-card { background:var(--dark-2); border-radius:var(--radius-lg); padding:22px; border:1px solid rgba(255,255,255,0.05); transition:var(--transition); }
.stat-card:hover { border-color:rgba(201,168,76,0.2); transform:translateY(-2px); }
.stat-card-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:14px; }
.stat-card-icon { width:42px; height:42px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; font-size:1.15rem; }
.stat-card-icon.gold { background:rgba(201,168,76,0.13); color:var(--gold); }
.stat-card-icon.green { background:rgba(39,174,96,0.13); color:var(--success); }
.stat-card-icon.blue { background:rgba(52,152,219,0.13); color:#3498DB; }
.stat-card-icon.red { background:rgba(123,30,30,0.13); color:#E74C3C; }
.stat-card-trend { font-size:0.77rem; font-weight:600; padding:3px 7px; border-radius:var(--radius-full); }
.stat-card-trend.up { background:rgba(39,174,96,0.13); color:var(--success); }
.stat-card-trend.down { background:rgba(231,76,60,0.13); color:#E74C3C; }
.stat-card-value { font-family:var(--font-heading); font-size:2.1rem; font-weight:700; color:var(--white); margin-bottom:5px; }
.stat-card-label { color:var(--gray); font-size:0.82rem; }
.dashboard-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-bottom:22px; }
.dashboard-card { background:var(--dark-2); border-radius:var(--radius-lg); padding:22px; border:1px solid rgba(255,255,255,0.05); }
.dashboard-card-header { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:22px; }
.dashboard-card-title { font-family:var(--font-heading); font-size:1.15rem; color:var(--white); }
.chart-bars { display:flex; align-items:flex-end; gap:9px; height:155px; padding:0 3px; }
.chart-bar-wrapper { flex:1; display:flex; flex-direction:column; align-items:center; gap:5px; height:100%; justify-content:flex-end; }
.chart-bar { width:100%; background:rgba(201,168,76,0.12); border-radius:4px 4px 0 0; transition:background 0.3s ease; position:relative; border:1px solid rgba(201,168,76,0.18); }
.chart-bar.filled { background:var(--gradient-gold); }
.chart-bar:hover { background:var(--gold); }
.chart-bar-label { color:var(--gray); font-size:0.72rem; }
.chart-bar-value { position:absolute; top:-22px; left:50%; transform:translateX(-50%); font-size:0.72rem; color:var(--gold); white-space:nowrap; opacity:0; transition:opacity 0.3s ease; }
.chart-bar:hover .chart-bar-value { opacity:1; }
.orders-table { width:100%; min-width:580px; border-collapse:collapse; }
.orders-table th { text-align:left; padding:11px 14px; font-size:0.77rem; font-weight:600; color:var(--gray); text-transform:uppercase; letter-spacing:1px; border-bottom:1px solid rgba(255,255,255,0.05); }
.orders-table td { padding:13px 14px; font-size:0.87rem; color:var(--light); border-bottom:1px solid rgba(255,255,255,0.03); }
.orders-table tr:last-child td { border-bottom:none; }
.orders-table tr:hover td { background:rgba(255,255,255,0.02); }
.order-status { display:inline-flex; align-items:center; gap:5px; padding:3px 11px; border-radius:var(--radius-full); font-size:0.77rem; font-weight:600; }
.order-status.pending { background:rgba(243,156,18,0.13); color:var(--warning); }
.order-status.confirmed { background:rgba(52,152,219,0.13); color:#3498DB; }
.order-status.preparing { background:rgba(201,168,76,0.13); color:var(--gold); }
.order-status.ready { background:rgba(39,174,96,0.13); color:var(--success); }
.order-status.delivered { background:rgba(255,255,255,0.05); color:var(--gray); }
.order-status::before { content:''; width:5px; height:5px; border-radius:50%; background:currentColor; }
.popular-item { display:flex; align-items:center; gap:13px; padding:11px 0; border-bottom:1px solid rgba(255,255,255,0.03); }
.popular-item:last-child { border-bottom:none; }
.popular-item-img { width:48px; height:48px; border-radius:var(--radius-md); object-fit:cover; flex-shrink:0; }
.popular-item-info { flex:1; min-width:0; }
.popular-item-name { color:var(--white); font-size:0.87rem; font-weight:500; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.popular-item-orders { color:var(--gray); font-size:0.77rem; }
.popular-item-progress { flex:1; }
.progress-bar { height:4px; background:var(--dark-3); border-radius:var(--radius-full); overflow:hidden; }
.progress-fill { height:100%; background:var(--gradient-gold); border-radius:var(--radius-full); }
.popular-item-revenue { color:var(--gold); font-weight:600; font-size:0.87rem; white-space:nowrap; }

/* ── CHATBOT ── */
.chatbot-container { position:fixed; bottom:max(28px, env(safe-area-inset-bottom, 0px)); right:max(28px, env(safe-area-inset-right, 0px)); z-index:1200; max-width:calc(100vw - 16px); box-sizing:border-box; }
.chatbot-toggle { width:58px; height:58px; border-radius:50%; background:var(--gradient-gold); display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 6px 22px rgba(201,168,76,0.45); transition:var(--transition); border:none; font-size:1.45rem; position:relative; }
.chatbot-toggle:hover { transform:scale(1.1); box-shadow:0 8px 30px rgba(201,168,76,0.65); }
.pulse-ring { position:absolute; inset:-6px; border-radius:50%; border:2px solid rgba(201,168,76,0.38); animation:pulseRing 2.2s ease infinite; }
@keyframes pulseRing { 0%{transform:scale(1);opacity:1;} 100%{transform:scale(1.42);opacity:0;} }
.chatbot-notification { position:absolute; top:-4px; right:-4px; width:19px; height:19px; background:var(--burgundy); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.68rem; font-weight:700; color:var(--white); border:2px solid var(--dark); }
.chatbot-window { position:absolute; bottom:74px; right:0; left:auto; width:min(370px,calc(100vw - 24px),94vw); height:min(510px,calc(100dvh - 140px)); max-height:calc(100dvh - 100px); max-width:100vw; background:var(--dark-2); border-radius:var(--radius-xl); border:1px solid rgba(255,255,255,0.08); box-shadow:var(--shadow-lg); display:flex; flex-direction:column; overflow:hidden; transform:scale(0.8) translateY(20px); transform-origin:bottom right; transition:all 0.3s cubic-bezier(0.34,1.56,0.64,1); opacity:0; pointer-events:none; box-sizing:border-box; }
.chatbot-window.open { transform:scale(1) translateY(0); opacity:1; pointer-events:all; }
.chatbot-header { background:var(--dark-3); padding:18px; display:flex; align-items:center; gap:13px; border-bottom:1px solid rgba(255,255,255,0.05); }
.chatbot-avatar { width:42px; height:42px; border-radius:50%; background:var(--gradient-gold); display:flex; align-items:center; justify-content:center; font-size:1.25rem; flex-shrink:0; }
.chatbot-header-info h4 { color:var(--white); font-size:0.97rem; font-weight:600; margin-bottom:3px; }
.chatbot-status { display:flex; align-items:center; gap:5px; color:var(--success); font-size:0.77rem; }
.chatbot-status::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--success); animation:statusBlink 1.6s ease infinite; }
@keyframes statusBlink { 0%,100%{opacity:1;} 50%{opacity:0.35;} }
.chatbot-close { margin-left:auto; color:var(--gray); font-size:1.15rem; cursor:pointer; transition:var(--transition); background:none; border:none; }
.chatbot-close:hover { color:var(--white); }
.chatbot-messages { flex:1; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:14px; scrollbar-width:thin; scrollbar-color:var(--dark-4) transparent; }
.chatbot-messages::-webkit-scrollbar { width:3px; }
.chatbot-messages::-webkit-scrollbar-thumb { background:var(--dark-4); border-radius:var(--radius-full); }
.message { display:flex; gap:9px; align-items:flex-end; }
.message.user { flex-direction:row-reverse; }
.message-avatar { width:30px; height:30px; border-radius:50%; background:var(--gradient-gold); display:flex; align-items:center; justify-content:center; font-size:0.87rem; flex-shrink:0; }
.message.user .message-avatar { background:var(--dark-3); border:1px solid rgba(255,255,255,0.1); }
.message-content { max-width:75%; }
.message-bubble { padding:11px 15px; border-radius:17px; font-size:0.87rem; line-height:1.5; }
.message.bot .message-bubble { background:var(--dark-3); color:var(--light); border-bottom-left-radius:3px; }
.message.user .message-bubble { background:var(--gradient-gold); color:var(--dark); border-bottom-right-radius:3px; }
.message-time { font-size:0.68rem; color:var(--gray); margin-top:3px; padding:0 3px; }
.message.user .message-time { text-align:right; }
.typing-indicator { display:flex; gap:4px; padding:11px 15px; background:var(--dark-3); border-radius:17px; border-bottom-left-radius:3px; width:fit-content; }
.typing-dot { width:7px; height:7px; background:var(--gray); border-radius:50%; animation:typingBounce 1.4s ease infinite; }
.typing-dot:nth-child(2){animation-delay:0.2s;} .typing-dot:nth-child(3){animation-delay:0.4s;}
@keyframes typingBounce { 0%,60%,100%{transform:translateY(0);} 30%{transform:translateY(-8px);} }
.quick-replies { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
.quick-reply { padding:5px 13px; border-radius:var(--radius-full); border:1px solid rgba(201,168,76,0.28); color:var(--gold); font-size:0.77rem; cursor:pointer; transition:var(--transition); background:rgba(201,168,76,0.05); }
.quick-reply:hover { background:var(--gold); color:var(--dark); }
.chatbot-input { padding:14px 18px; border-top:1px solid rgba(255,255,255,0.05); display:flex; gap:10px; align-items:center; }
.chatbot-input input { flex:1; background:var(--dark-3); border:1px solid rgba(255,255,255,0.08); border-radius:var(--radius-full); padding:9px 16px; color:var(--white); font-size:0.87rem; }
.chatbot-input input:focus { border-color:rgba(201,168,76,0.4); outline:none; }
.chatbot-send { width:38px; height:38px; border-radius:50%; background:var(--gradient-gold); display:flex; align-items:center; justify-content:center; cursor:pointer; border:none; color:var(--dark); font-size:0.95rem; flex-shrink:0; transition:var(--transition); }
.chatbot-send:hover { transform:scale(1.1); box-shadow:var(--shadow-gold); }

/* ── FOOTER ── */
.footer { background:var(--dark-1); border-top:1px solid rgba(255,255,255,0.05); }
.footer-main { padding:78px 0 48px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; }
.footer-brand { max-width:310px; }
.footer-logo { display:flex; align-items:center; gap:11px; margin-bottom:18px; }
.footer-logo-icon { width:48px; height:48px; background:var(--gradient-gold); border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; font-size:1.45rem; }
.footer-logo-text { font-family:var(--font-heading); font-size:1.45rem; font-weight:700; color:var(--white); }
.footer-logo-text span { color:var(--gold); }
.footer-brand p { color:var(--gray); font-size:0.92rem; line-height:1.7; margin-bottom:22px; }
.footer-social { display:flex; gap:10px; }
.social-link { width:38px; height:38px; background:var(--dark-2); border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; color:var(--gray); font-size:0.95rem; border:1px solid rgba(255,255,255,0.05); transition:var(--transition); }
.social-link:hover { background:var(--gold); color:var(--dark); border-color:var(--gold); transform:translateY(-3px); }
.footer-col h4 { font-family:var(--font-heading); font-size:1.07rem; color:var(--white); margin-bottom:22px; }
.footer-links { display:flex; flex-direction:column; gap:9px; }
.footer-link { color:var(--gray); font-size:0.87rem; transition:var(--transition); display:flex; align-items:center; gap:5px; }
.footer-link::before { content:'→'; font-size:0.68rem; opacity:0; transition:var(--transition); }
.footer-link:hover { color:var(--gold); padding-left:4px; }
.footer-link:hover::before { opacity:1; }
.footer-contact-item { display:flex; gap:9px; align-items:flex-start; color:var(--gray); font-size:0.87rem; margin-bottom:11px; }
.footer-contact-item i { color:var(--gold); margin-top:3px; flex-shrink:0; }
.footer-contact-badge { display:inline-block; font-size:0.67rem; background:rgba(201,168,76,0.1); color:var(--gold); padding:1px 6px; border-radius:var(--radius-full); margin-left:4px; }
.footer-bottom { padding:22px 0 max(22px, env(safe-area-inset-bottom, 0px)); border-top:1px solid rgba(255,255,255,0.05); }
.footer-bottom-content { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }
.footer-copyright { color:var(--gray); font-size:0.83rem; line-height:1.6; overflow-wrap:anywhere; word-wrap:break-word; max-width:100%; }
.footer-copyright strong { color:var(--gold); }
.footer-wlc { display:flex; align-items:center; gap:9px; }
.footer-legal { display:flex; gap:18px; }
.footer-legal a { color:var(--gray); font-size:0.78rem; transition:var(--transition); }
.footer-legal a:hover { color:var(--gold); }

/* ── PAGE LOADER ── */
.page-loader { position:fixed; inset:0; background:var(--dark); z-index:9999; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; transition:opacity 0.5s ease,visibility 0.5s ease; }
.page-loader.hidden { opacity:0; visibility:hidden; }
.loader-logo { font-family:var(--font-heading); font-size:1.9rem; font-weight:700; color:var(--white); }
.loader-logo span { color:var(--gold); }
.loader-bar { width:190px; height:2px; background:var(--dark-3); border-radius:var(--radius-full); overflow:hidden; }
.loader-fill { height:100%; background:var(--gradient-gold); border-radius:var(--radius-full); animation:loaderFill 1.6s ease forwards; }
@keyframes loaderFill { 0%{width:0%;} 100%{width:100%;} }

/* ── TOAST ── */
.toast { position:fixed; top:max(95px, calc(env(safe-area-inset-top, 0px) + 72px)); right:max(16px, env(safe-area-inset-right, 0px)); left:auto; max-width:min(360px,calc(100vw - 32px)); background:var(--dark-2); border:1px solid var(--surface-border); border-radius:var(--radius-lg); padding:14px 18px; display:flex; align-items:center; gap:11px; z-index:2500; transform:translateX(220%); transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1); box-shadow:var(--shadow-lg); box-sizing:border-box; overflow-wrap:anywhere; }
.toast.show { transform:translateX(0); }
.toast.success { border-left:3px solid var(--success); }
.toast.error { border-left:3px solid #E74C3C; }
.toast.info { border-left:3px solid var(--gold); }
.toast-icon { font-size:1.25rem; flex-shrink:0; }
.toast-text { flex:1; }
.toast-title { font-weight:600; color:var(--white); font-size:0.87rem; }
.toast-message { color:var(--gray); font-size:0.82rem; }
.toast-close { color:var(--gray); font-size:0.97rem; cursor:pointer; transition:var(--transition); background:none; border:none; }
.toast-close:hover { color:var(--white); }

/* ── KEYFRAMES ── */
@keyframes fadeInUp { from{opacity:0;transform:translateY(28px);} to{opacity:1;transform:translateY(0);} }
@keyframes fadeInDown { from{opacity:0;transform:translateY(-18px);} to{opacity:1;transform:translateY(0);} }
@keyframes fadeIn { from{opacity:0;} to{opacity:1;} }
@keyframes scaleIn { from{opacity:0;transform:scale(0.9);} to{opacity:1;transform:scale(1);} }

/* ── SCROLLBAR ── */
::-webkit-scrollbar { width:5px; height:5px; }
::-webkit-scrollbar-track { background:var(--dark); }
::-webkit-scrollbar-thumb { background:var(--dark-3); border-radius:var(--radius-full); }
::-webkit-scrollbar-thumb:hover { background:var(--gold); }

/* ── RESPONSIVE ── */
@media (max-width:1200px) {
  .dashboard-stats { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr 1fr; gap:38px; }
  /* Mobile / tablet nav: viewport-fixed drawer */
  .nav-logo { flex:1 1 auto; min-width:0; }
  .nav-menu {
    position:fixed;
    top:0;
    right:0;
    width:min(320px,calc(100vw - 24px),92vw);
    max-width:100%;
    height:100vh;
    height:100dvh;
    margin:0;
    list-style:none;
    z-index:1002;
    flex-direction:column;
    align-items:stretch;
    padding:max(88px, calc(env(safe-area-inset-top, 0px) + 72px)) max(24px, env(safe-area-inset-right, 0px)) max(28px, env(safe-area-inset-bottom, 0px)) max(24px, env(safe-area-inset-left, 0px));
    gap:4px;
    background:rgba(14,12,10,0.98);
    border-left:1px solid var(--surface-border);
    box-shadow:-16px 0 48px rgba(0,0,0,0.5);
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    transform:translateX(100%);
    visibility:hidden;
    pointer-events:none;
    transition:transform 0.45s var(--ease-out),visibility 0s linear 0.45s;
  }
  .nav-menu.open {
    transform:translateX(0);
    visibility:visible;
    pointer-events:auto;
    transition:transform 0.45s var(--ease-out),visibility 0s linear 0s;
  }
  .nav-link { width:100%; padding:14px 16px; min-height:44px; display:flex; align-items:center; border-radius:var(--radius-md); box-sizing:border-box; }
  .nav-link::after { display:none; }
  .nav-link:hover { background:rgba(255,255,255,0.06); }
  .nav-cta { margin-left:0; margin-top:12px; width:100%; }
  .nav-cta .btn { width:100%; justify-content:center; min-height:48px; }
  .nav-toggle { display:flex !important; }
}
@media (max-width:992px) {
  .hero-section > div:not(.hero-bg):not(.container):not(.hero-scroll) { display:none; }
  .welcome-grid,.about-grid,.reservations-grid,.contact-grid { grid-template-columns:1fr; gap:clamp(28px,5vw,38px); }
  .private-dining-grid { grid-template-columns:1fr; }
  .offers-grid { grid-template-columns:1fr; }
  .order-layout { grid-template-columns:1fr; }
  .cart-sidebar { position:relative; top:0; max-height:none; }
  .dashboard-sidebar { transform:translateX(-100%); }
  .dashboard-sidebar.open { transform:translateX(0); z-index:260; box-shadow:8px 0 48px rgba(0,0,0,0.45); }
  .dashboard-menu-toggle { display:inline-flex !important; }
  .dashboard-main { margin-left:0; padding:20px max(20px, env(safe-area-inset-right, 0px)) 24px max(20px, env(safe-area-inset-left, 0px)); }
  .dashboard-grid { grid-template-columns:1fr; }
  .chatbot-window { width:min(370px,calc(100vw - 20px),94vw); max-width:none; right:0; }
  .values-grid { grid-template-columns:1fr !important; gap:18px !important; }
  .about-image-stack { height:auto; min-height:0; display:flex; flex-direction:column; gap:18px; position:relative; }
  .about-img-1,.about-img-2 { position:relative !important; width:100% !important; height:clamp(220px,45vw,340px) !important; top:auto !important; left:auto !important; right:auto !important; bottom:auto !important; border-width:3px !important; }
  #stepsGrid { grid-template-columns:repeat(2,1fr) !important; gap:28px !important; }
  .menu-tabs,.order-categories,.gallery-filters { flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; gap:8px; padding:4px 0 12px; margin-left:0; margin-right:0; padding-left:max(0px, env(safe-area-inset-left, 0px)); padding-right:max(0px, env(safe-area-inset-right, 0px)); scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; max-width:100%; box-sizing:border-box; }
  .menu-tab,.gallery-filter,.order-categories .menu-tab { flex-shrink:0; scroll-snap-align:start; }
}
@media (max-width:768px) {
  :root { --section-padding:clamp(52px,12vw,68px) 0; }
  .form-row { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom-content { flex-direction:column; text-align:center; }
  .footer-legal { justify-content:center; flex-wrap:wrap; }
  .footer-wlc img { max-width:min(200px,70vw); height:auto; }
  .dashboard-stats { grid-template-columns:1fr 1fr; }
  .reservation-form-wrapper,.contact-form-wrapper,.modal { padding:clamp(22px,5vw,28px) clamp(18px,4vw,22px); }
  .hero-buttons { flex-direction:column; align-items:stretch; }
  .hero-buttons .btn { max-width:100%; width:100%; justify-content:center; min-height:48px; }
  .hero-stats { flex-wrap:wrap; justify-content:center; gap:20px 28px; }
  .hero-stat-divider { display:none; }
  .hero-stat-num { font-size:clamp(1.45rem,5vw,1.65rem); }
  .welcome-image-accent { display:none; }
  .welcome-badge { left:12px; top:-12px; font-size:0.78rem; padding:10px 14px; }
  .awards-grid { grid-template-columns:1fr 1fr; }
  .gallery-grid { grid-template-columns:1fr; }
  .menu-grid { grid-template-columns:1fr; }
  .order-items-grid { grid-template-columns:1fr; }
  .testimonials-track { gap:18px; }
  .page-hero { min-height:clamp(280px,48vh,52vh); }
  #stepsGrid { grid-template-columns:1fr !important; gap:32px !important; }
  .modal-steps { overflow-x:auto; padding-bottom:12px; margin-bottom:22px; -webkit-overflow-scrolling:touch; justify-content:flex-start; flex-wrap:nowrap; gap:4px; }
  .modal-step { flex-shrink:0; }
  .step-line { flex:0 0 20px; min-width:12px; margin-bottom:22px; }
  .lightbox-img { max-width:min(90vw,100%); max-height:min(85vh,100dvh); }
}
@media (max-width:576px) {
  .btn-lg { padding-left:clamp(16px,5vw,24px); padding-right:clamp(16px,5vw,24px); }
  .container { padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px)); }
  .nav-container { padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px)); }
  .dashboard-stats { grid-template-columns:1fr; }
  .payment-methods { flex-direction:column; }
  .chatbot-container { bottom:max(16px, env(safe-area-inset-bottom, 0px)); right:max(16px, env(safe-area-inset-right, 0px)); }
  .awards-grid { grid-template-columns:1fr; }
  .section-header { margin-bottom:clamp(36px,10vw,48px); }
  .hero-scroll { bottom:max(24px, env(safe-area-inset-bottom, 0px)); }
}
@media (min-width:1201px) and (max-width:1320px) {
  .nav-link { padding:8px 10px; font-size:0.82rem; }
}
@media (min-width:993px) {
  .dashboard-sidebar { transform:translateX(0) !important; }
  .dashboard-menu-toggle { display:none !important; }
}
