/* Base */
:root{
  --bg:#0b0b0c;
  --surface:#121214;
  --text:#e9e9ec;
  --muted:#b4b4bd;
  --gold:#C2A355;
  --gold-2:#E5CF8E;
  --stroke:rgba(255,255,255,.08);
  --shadow:0 10px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;overflow-x:hidden;max-width:100vw}
html{scroll-behavior:smooth}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  overflow-x:hidden;
  max-width:100vw;
  background:linear-gradient(180deg,#09090a, #0b0b0c 30%, #0b0b0c 70%, #0a0a0b);
  line-height:1.6;
}
img{display:block;max-width:100%;height:auto;border-radius:12px}
a{color:inherit;text-decoration:none}
button, a, input{outline:none}
button:focus-visible, a:focus-visible, input:focus-visible{box-shadow:0 0 0 3px rgba(229,207,142,.25);border-color:var(--gold)}

.container{width:min(1200px,90%);margin:auto}
.container.wide{width:min(1400px,92%)}
.container.narrow{width:min(1000px,90%)}

/* Header */
.site-header{
  position:sticky;top:0;z-index:50;
  backdrop-filter:saturate(1.2) blur(8px);
  background:rgba(9,9,10,.45);
  border-bottom:1px solid var(--stroke);
}

/* Customer Code Early Section */
.customer-code-early-section {
  background: rgba(9,9,10,.6);
  border-bottom: 1px solid var(--stroke);
  padding: 16px 0;
  position: sticky;
  top: 68px;
  z-index: 40;
  backdrop-filter: saturate(1.2) blur(8px);
}

.customer-code-box {
  max-width: 600px;
  margin: 0 auto;
}

.customer-code-input:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(194,163,85,.15);
}

.btn-load-customer:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(194,163,85,.3);
}

.btn-load-customer:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

@media (max-width: 768px) {
  .customer-code-early-section {
    top: 60px;
    padding: 12px 0;
  }
  
  .customer-code-box {
    padding: 0 16px;
  }
  
  .customer-code-box > div {
    flex-direction: column;
  }
  
  .btn-load-customer {
    width: 100%;
  }
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.06em}
.brand-logo{width:36px;height:36px;object-fit:contain;border-radius:8px;box-shadow:var(--shadow)}
.brand-name{font-family:"Playfair Display",serif;font-size:18px}
.menu{display:flex;gap:22px;align-items:center}
.menu a{opacity:.9}
.menu a:hover{opacity:1}
.auth-links{display:flex;gap:12px;align-items:center}
.auth-link{text-decoration:none;padding:8px 16px;border-radius:8px;transition:all .25s;font-weight:500;font-size:14px}
.auth-link.login-link{color:var(--text);border:1px solid rgba(255,255,255,.2)}
.auth-link.login-link:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.3);opacity:1}
.auth-link.register-link{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#1a1a1a;border:1px solid var(--gold);font-weight:600}
.auth-link.register-link:hover{background:linear-gradient(135deg,var(--gold-2),var(--gold));box-shadow:0 4px 12px rgba(229,207,142,.3);opacity:1;transform:translateY(-1px)}
.user-menu-wrapper{display:flex;gap:12px;align-items:center}
.notification-toggle{position:relative;background:none;border:none;cursor:pointer;padding:8px;color:var(--text);opacity:.9;transition:.25s;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px}
.notification-toggle:hover{background:rgba(255,255,255,.05);opacity:1}
.notification-icon{font-size:20px}
.notification-badge{position:absolute;top:4px;right:4px;background:var(--gold);color:#1a1a1a;border-radius:10px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;padding:0 4px;border:2px solid #0b0b0c}

/* Notification Panel */
.notification-panel{position:absolute;top:calc(100% + 10px);right:0;width:380px;max-height:500px;background:rgba(18,18,20,.98);backdrop-filter:blur(20px);border:1px solid rgba(229,207,142,.2);border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .3s ease;z-index:1000;overflow:hidden}
.notification-panel.open{opacity:1;visibility:visible;transform:translateY(0)}
.notification-panel-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid rgba(229,207,142,.1)}
.notification-panel-header h3{margin:0;font-size:18px;font-weight:600;color:var(--gold)}
.notification-close-btn{background:none;border:none;color:var(--text);font-size:24px;cursor:pointer;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s;opacity:.7}
.notification-close-btn:hover{background:rgba(255,255,255,.1);opacity:1}
.notification-panel-body{max-height:400px;overflow-y:auto;padding:10px}
.notification-panel-body::-webkit-scrollbar{width:6px}
.notification-panel-body::-webkit-scrollbar-track{background:rgba(255,255,255,.05)}
.notification-panel-body::-webkit-scrollbar-thumb{background:rgba(229,207,142,.3);border-radius:3px}
.notification-panel-body::-webkit-scrollbar-thumb:hover{background:rgba(229,207,142,.5)}
.notification-empty{text-align:center;padding:40px 20px;color:rgba(255,255,255,.5)}
.notification-empty-icon{font-size:48px;margin-bottom:12px;opacity:.5}
.notification-item{display:flex;gap:12px;padding:16px;margin-bottom:8px;background:rgba(255,255,255,.03);border:1px solid rgba(229,207,142,.1);border-radius:12px;transition:all .2s;cursor:pointer;position:relative}
.notification-item:hover{background:rgba(255,255,255,.05);border-color:rgba(229,207,142,.2)}
.notification-item.unread{background:rgba(229,207,142,.08);border-color:rgba(229,207,142,.3)}
.notification-item.unread::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--gold);border-radius:0 3px 3px 0}
.notification-item.error{border-color:rgba(255,0,0,.3);background:rgba(255,0,0,.05)}
.notification-toast.error{border-color:rgba(255,0,0,.5);background:rgba(18,18,20,.98)}
.notification-item-icon{font-size:24px;flex-shrink:0}
.notification-item-content{flex:1;min-width:0}
.notification-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}
.notification-item-title{margin:0;font-size:15px;font-weight:600;color:var(--text)}
.notification-item-delete{background:none;border:none;color:rgba(255,255,255,.4);font-size:20px;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;flex-shrink:0}
.notification-item-delete:hover{background:rgba(255,0,0,.2);color:#ff4444}
.notification-item-message{margin:0 0 8px 0;font-size:13px;color:rgba(255,255,255,.7);line-height:1.5}
.notification-item-footer{display:flex;justify-content:space-between;align-items:center;gap:8px}
.notification-item-time{font-size:11px;color:rgba(255,255,255,.4)}
.notification-item-mark-read{background:none;border:none;color:var(--gold);font-size:11px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}
.notification-item-mark-read:hover{background:rgba(229,207,142,.1)}
.notification-panel-footer{padding:16px 20px;border-top:1px solid rgba(229,207,142,.1);text-align:center}
.notification-clear-btn{background:rgba(255,0,0,.1);border:1px solid rgba(255,0,0,.3);color:#ff6666;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:13px;transition:all .2s}
.notification-clear-btn:hover{background:rgba(255,0,0,.2);border-color:rgba(255,0,0,.5)}
.notification-confirm-dialog{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);z-index:10001;display:flex;align-items:center;justify-content:center;padding:20px}
.notification-confirm-content{background:rgba(18,18,20,.98);backdrop-filter:blur(20px);border:1px solid rgba(229,207,142,.3);border-radius:16px;padding:24px;max-width:400px;width:100%;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.notification-confirm-content h3{margin:0 0 12px 0;font-size:20px;font-weight:600;color:var(--gold)}
.notification-confirm-content p{margin:0 0 24px 0;color:rgba(255,255,255,.7);line-height:1.6}
.notification-confirm-actions{display:flex;gap:12px;justify-content:flex-end}
.notification-confirm-btn{padding:10px 20px;border-radius:8px;border:none;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}
.notification-confirm-cancel{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:var(--text)}
.notification-confirm-cancel:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3)}
.notification-confirm-delete{background:rgba(255,0,0,.2);border:1px solid rgba(255,0,0,.4);color:#ff6666}
.notification-confirm-delete:hover{background:rgba(255,0,0,.3);border-color:rgba(255,0,0,.6)}
.notification-toast{position:fixed;top:20px;right:20px;width:380px;max-width:calc(100vw - 40px);background:rgba(18,18,20,.98);backdrop-filter:blur(20px);border:1px solid rgba(229,207,142,.3);border-radius:12px;padding:16px;box-shadow:0 10px 40px rgba(0,0,0,.5);z-index:10000;display:flex;gap:12px;align-items:flex-start;opacity:0;transform:translateX(400px);transition:all .3s ease;cursor:pointer}
.notification-toast:hover{background:rgba(18,18,20,1);border-color:rgba(229,207,142,.5);transform:translateX(0) scale(1.02)}
.notification-toast.show{opacity:1;transform:translateX(0)}
.notification-toast-icon{font-size:24px;flex-shrink:0}
.notification-toast-content{flex:1;min-width:0}
.notification-toast-title{font-size:15px;font-weight:600;color:var(--text);margin:0 0 4px 0}
.notification-toast-message{font-size:13px;color:rgba(255,255,255,.7);margin:0;line-height:1.5}
.notification-toast-close{background:none;border:none;color:rgba(255,255,255,.4);font-size:20px;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;flex-shrink:0}
.notification-toast-close:hover{background:rgba(255,255,255,.1);color:var(--text)}
@media (max-width:768px){.notification-panel{width:calc(100vw - 20px);right:10px}.notification-toast{width:calc(100vw - 40px)}}
.user-menu{position:relative}
.user-menu-toggle{display:flex;align-items:center;gap:8px;background:none;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:6px 12px;cursor:pointer;transition:all .25s;color:var(--text)}
.user-menu-toggle:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.3)}
.user-avatar{font-size:18px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:rgba(229,207,142,.15);border-radius:50%}
.user-name{font-size:14px;font-weight:500;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-chevron{font-size:10px;opacity:.6;transition:transform .25s}
.user-menu.active .user-chevron{transform:rotate(180deg)}
.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:rgba(15,15,18,.98);border:1px solid var(--stroke);border-radius:12px;min-width:220px;box-shadow:0 10px 30px rgba(0,0,0,.45);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .25s;z-index:100;padding:8px}
.user-menu.active .user-menu-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.user-info{padding:12px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:4px}
.user-email{font-size:13px;color:var(--text);font-weight:500;margin-bottom:4px}
.user-status{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}
.user-status.verified::before{content:"✓";color:var(--gold);font-weight:700}
.user-menu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;color:var(--text);text-decoration:none;border-radius:6px;transition:all .25s;font-size:14px}
.user-menu-item:hover{background:rgba(255,255,255,.05);color:var(--gold)}
.user-menu-item span{font-size:16px}
.cart-toggle{position:relative;background:none;border:none;cursor:pointer;padding:8px;color:var(--text);opacity:.9;transition:.25s;display:flex;align-items:center;gap:8px}
.cart-toggle:hover{opacity:1}
/* Ensure cart toggle is ALWAYS visible - both when cart is open and closed */
.cart-toggle,
#cartToggle,
body .cart-toggle,
body #cartToggle,
body.cart-open .cart-toggle,
body.cart-open #cartToggle,
body:not(.cart-open) .cart-toggle,
body:not(.cart-open) #cartToggle {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  position: relative !important;
}
.cart-icon{font-size:20px;display:block}
.cart-badge{position:absolute;top:-4px;right:-4px;background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#1a1a1a;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;z-index:1}
.cart-toggle span:not(.cart-icon):not(.cart-badge){font-size:14px;font-weight:500}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:100px;border:1px solid var(--stroke);transition:.25s ease;gap:8px}
.btn.primary{background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#1a1a1a;border:none;font-weight:600}
.btn.primary:hover{filter:brightness(1.05)}
.btn.ghost{border-color:var(--gold);color:var(--gold)}
.btn.ghost:hover{background:rgba(194,163,85,.08)}

.burger{display:none;flex-direction:column;gap:5px;background:none;border:none}
.burger span{width:22px;height:2px;background:var(--text);display:block}

/* Hero */
.hero{padding:72px 0 48px;border-bottom:1px solid var(--stroke)}
.hero-bg{position:absolute;inset:0;pointer-events:none}
.hero{position:relative;overflow:hidden;z-index:1}
.hero .blob{position:absolute;width:540px;height:540px;right:-120px;top:-140px;background:radial-gradient(closest-side,rgba(229,207,142,.35),rgba(229,207,142,0));filter:blur(12px);}
.hero .grain{position:absolute;inset:-20%;background:radial-gradient(circle at 20% 10%, rgba(255,255,255,.04), transparent 40%), radial-gradient(circle at 80% 30%, rgba(255,255,255,.03), transparent 40%);mix-blend:overlay}
.hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:42px;align-items:center;position:relative;z-index:2}
.hero-text h1{font-family:"Playfair Display",serif;font-size:clamp(36px,5vw,64px);line-height:1.08;margin:0 0 12px;color:#fff;letter-spacing:.005em}
.hero-text p{color:var(--muted);margin:0 0 22px}
.hero-ctas{display:flex;gap:14px;margin-bottom:18px}
.stats{display:flex;gap:28px;margin-top:14px}
.stats div{display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.stats strong{font-size:22px}
.stats span{color:var(--muted);font-size:12px}
.hero-visual img{box-shadow:var(--shadow)}
.hero-visual figcaption{margin-top:10px;color:var(--muted);font-size:12px}
.badges{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.badge{border:1px solid var(--stroke);background:rgba(255,255,255,.04);padding:6px 10px;border-radius:999px;font-size:12px;color:#d9d9df}

/* Sections */
.section{padding:88px 0;border-bottom:1px solid var(--stroke)}
.divider{color:#0e0e10}
.divider svg{display:block;width:100%;height:70px}
.section-head h2{font-family:"Playfair Display",serif;font-size:clamp(28px,3.5vw,48px);margin:0 0 12px;font-weight:700;letter-spacing:-0.02em}
.section-head p{margin:0 0 28px;color:var(--muted);font-size:16px;line-height:1.7}
.section-head.split{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;align-items:end}
.section-head .overline{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-size:12px}
.menu-controls{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap}
.menu-controls.sticky{position:sticky;top:86px;z-index:5;background:rgba(9,9,10,.6);backdrop-filter:saturate(1.2) blur(8px);padding:10px 12px;border:1px solid var(--stroke);border-radius:12px}

/* Cards */
.grid.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{background:linear-gradient(180deg,#111,#0f0f11);border:1px solid var(--stroke);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);transition:transform .25s ease, box-shadow .25s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.45)}
.card-body{padding:14px}
.card h3{margin:0 0 6px;font-size:18px}
.card p{margin:0 0 10px;color:var(--muted)}
.price{color:var(--gold);font-weight:600}
.section-cta{margin-top:18px;text-align:center}

/* Menu */
.menu-section{position:relative;overflow:hidden}
.menu-section .container{position:relative;z-index:2}
.menu-controls{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap}
.menu-tabs{display:flex;gap:10px;flex-wrap:wrap;padding:4px 0}
.menu-tabs .chip{
  padding:12px 20px;
  border:1.5px solid rgba(255,255,255,.1);
  border-radius:12px;
  color:#d9d9df;
  cursor:pointer;
  background:rgba(255,255,255,.04);
  backdrop-filter:saturate(1.2) blur(8px);
  transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);
  position:relative;
  font-weight:600;
  font-size:14px;
  white-space:nowrap;
}
.menu-tabs .chip:hover{
  border-color:rgba(229,207,142,.4);
  background:rgba(255,255,255,.06);
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.menu-tabs .chip.active{
  background:linear-gradient(135deg,var(--gold),var(--gold-2));
  color:#1a1a1a;
  border-color:var(--gold);
  font-weight:700;
  box-shadow:0 6px 20px rgba(229,207,142,.3),
              0 2px 8px rgba(229,207,142,.2);
  transform:translateY(-1px);
}
.menu-tabs .chip.active:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(229,207,142,.4),
              0 4px 12px rgba(229,207,142,.25);
}
.menu-search{
  flex:1;
  min-width:220px;
  background:rgba(255,255,255,.05);
  border:1.5px solid rgba(255,255,255,.1);
  border-radius:12px;
  padding:12px 18px;
  color:var(--text);
  font-size:14px;
  transition:all .3s ease;
  backdrop-filter:blur(8px);
}
.menu-search:focus{
  outline:none;
  border-color:var(--gold);
  background:rgba(255,255,255,.08);
  box-shadow:0 0 0 3px rgba(229,207,142,.1);
}
.menu-search::placeholder{color:#9a9aa3;opacity:.7}
.menu-list{display:grid;grid-template-columns:1fr;gap:24px}
.menu-category{position:relative;border:1px solid var(--stroke);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#101012,#0f0f11);margin-bottom:0}
.menu-category::before{content:"";position:absolute;inset:0;border-radius:16px;padding:1px;background:linear-gradient(135deg,rgba(229,207,142,.35),rgba(255,255,255,0) 40%, rgba(229,207,142,.25));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.menu-category summary{list-style:none;cursor:pointer;padding:18px 20px;font-weight:700;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#121216,#101014);position:relative}
.menu-category summary::after{content:"";position:absolute;inset:0;background:var(--summary-bg, none);background-size:cover;background-position:center right;opacity:.12;mask-image:linear-gradient(to left, rgba(0,0,0,.8), rgba(0,0,0,0));}
.menu-category summary::-webkit-details-marker{display:none}
.menu-category summary .meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-weight:600;font-size:13px}
.menu-category summary .chev{transition:transform .25s;color:var(--muted);display:inline-flex;align-items:center}
details.menu-category[open] summary .chev{transform:rotate(180deg)}
.menu-items{padding:0 18px 14px;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.category-description{grid-column:1/-1;padding:16px 20px;margin-bottom:16px;background:linear-gradient(145deg, rgba(229,207,142,.08) 0%, rgba(255,255,255,.03) 100%);border:1px solid rgba(229,207,142,.15);border-radius:12px;color:#d0d0d5;font-size:14px;line-height:1.7;font-style:italic;border-left:3px solid var(--gold)}
.menu-item{display:grid;grid-template-columns:1fr auto;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08);align-items:center}
.menu-item:last-child{border-bottom:none}
.menu-item:hover{background:rgba(255,255,255,.02);margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:6px}
.menu-item-content{flex:1;cursor:pointer;transition:all .25s}
.menu-item-content:hover{opacity:.9}
.menu-item-content:active{opacity:.7}
.menu-item .name{font-weight:700;display:flex;align-items:flex-start;gap:8px}
.menu-item .desc{color:var(--muted);font-size:13px;margin-top:6px}
.menu-item .price{color:var(--text);font-weight:700;white-space:nowrap;cursor:pointer;transition:opacity .25s}
.menu-item .price:hover{opacity:.8}
.menu-item .add-btn{background:rgba(229,207,142,.15);border:1px solid rgba(229,207,142,.35);color:var(--gold);border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;white-space:nowrap;user-select:none}
.badge-featured{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--gold);border:1px solid rgba(229,207,142,.35);border-radius:999px;padding:2px 8px;background:rgba(229,207,142,.06)}

/* About */
.about{position:relative;overflow:hidden}
.about-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;position:relative;z-index:2}
.about-text h2{font-family:"Playfair Display",serif;margin:0 0 16px;font-size:clamp(28px, 4vw, 40px);background:linear-gradient(135deg, #fff 0%, var(--gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.about-text p{font-size:16px;line-height:1.8;color:#d0d0d5;margin-bottom:24px}
.pill-list{display:flex;gap:14px;flex-wrap:wrap;margin:24px 0 0}
.pill-item{display:flex;align-items:center;gap:10px;padding:14px 20px;border-radius:16px;background:linear-gradient(135deg, rgba(229,207,142,.08) 0%, rgba(229,207,142,.03) 100%);border:1px solid rgba(229,207,142,.2);backdrop-filter:blur(10px);transition:all .4s cubic-bezier(0.4,0,0.2,1);cursor:pointer;position:relative;overflow:hidden}
.pill-item::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg, var(--gold) 0%, var(--gold-2) 100%);opacity:0;transition:opacity .4s ease}
.pill-item:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(229,207,142,.25);border-color:rgba(229,207,142,.4)}
.pill-item:hover::before{opacity:1}
.pill-item:hover .pill-icon{transform:scale(1.2) rotate(5deg)}
.pill-item:hover span{color:#1a1a1a;position:relative;z-index:1;font-weight:600}
.pill-icon{font-size:20px;transition:transform .4s cubic-bezier(0.34,1.56,0.64,1);position:relative;z-index:1}
.pill-item span{color:#e5e5ea;font-size:14px;font-weight:500;position:relative;z-index:1;transition:color .4s ease, font-weight .4s ease}
.about-visual{position:relative;border-radius:24px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.about-image-wrapper{position:relative;overflow:hidden;border-radius:24px}
.about-visual img{width:100%;height:auto;display:block;transition:transform .8s cubic-bezier(0.4,0,0.2,1)}
.about-visual:hover img{transform:scale(1.08)}
.about-overlay{position:absolute;inset:0;background:linear-gradient(135deg, rgba(0,0,0,.2) 0%, transparent 50%, rgba(0,0,0,.1) 100%);pointer-events:none;transition:opacity .4s ease}
.about-visual:hover .about-overlay{opacity:0.7}

/* Reviews */
.reviews{position:relative;overflow:hidden}
.reviews::before{content:'';position:absolute;top:-50%;right:-10%;width:600px;height:600px;background:radial-gradient(circle, rgba(229,207,142,.08) 0%, transparent 70%);border-radius:50%;pointer-events:none;z-index:0}
.reviews .container{position:relative;z-index:2}
.reviews .section-head h2{font-family:"Playfair Display",serif;font-size:clamp(32px, 5vw, 48px);margin-bottom:8px;background:linear-gradient(135deg, #fff 0%, var(--gold) 50%, #fff 100%);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:0% center}100%{background-position:200% center}}
.reviews .section-head p{color:var(--muted);font-size:16px;margin-top:8px;font-style:italic}
.grid.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:50px}
.review-card{position:relative;margin:0;padding:38px 32px;background:linear-gradient(145deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.01) 50%, rgba(229,207,142,.02) 100%);border:1px solid rgba(229,207,142,.2);border-radius:24px;color:#e0e0e5;transition:all .6s cubic-bezier(0.4,0,0.2,1);overflow:hidden;cursor:pointer;backdrop-filter:blur(20px);box-shadow:0 8px 32px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.1)}
.review-card::before{content:'';position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg, var(--gold), var(--gold-2), var(--gold), var(--gold-2));opacity:0;transition:opacity .6s ease;box-shadow:0 0 20px rgba(229,207,142,.5)}
.review-card::after{content:'';position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle, rgba(229,207,142,.1) 0%, transparent 70%);opacity:0;transition:opacity .6s ease;pointer-events:none}
.review-card:hover{transform:translateY(-12px) scale(1.02);box-shadow:0 25px 60px rgba(229,207,142,.3), inset 0 1px 0 rgba(255,255,255,.2);border-color:rgba(229,207,142,.5);background:linear-gradient(145deg, rgba(229,207,142,.12) 0%, rgba(255,255,255,.05) 50%, rgba(229,207,142,.08) 100%)}
.review-card:hover::before{opacity:1}
.review-card:hover::after{opacity:1}
.quote-icon{position:absolute;top:16px;right:28px;font-size:100px;font-family:"Playfair Display",serif;color:rgba(229,207,142,.12);line-height:1;transition:all .6s ease;text-shadow:0 2px 10px rgba(229,207,142,.2);pointer-events:none}
.review-card:hover .quote-icon{color:rgba(229,207,142,.25);transform:scale(1.15) rotate(5deg);text-shadow:0 4px 20px rgba(229,207,142,.4)}
.review-stars{font-size:20px;margin-bottom:20px;letter-spacing:3px;filter:drop-shadow(0 2px 8px rgba(229,207,142,.4));position:relative;z-index:2}
.review-text{font-size:15px;line-height:1.9;margin:0 0 28px;color:#d8d8dd;position:relative;z-index:2;font-style:italic}
.review-author{display:flex;align-items:center;gap:16px;padding-top:24px;border-top:1px solid rgba(255,255,255,.15);position:relative;z-index:2}
.author-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg, var(--gold) 0%, var(--gold-2) 50%, var(--gold) 100%);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;color:#1a1a1a;flex-shrink:0;box-shadow:0 6px 20px rgba(229,207,142,.4), inset 0 1px 0 rgba(255,255,255,.3);transition:transform .4s ease;position:relative;overflow:hidden}
.author-avatar::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.4) 0%, transparent 70%);pointer-events:none}
.review-card:hover .author-avatar{transform:scale(1.1) rotate(5deg);box-shadow:0 8px 25px rgba(229,207,142,.5), inset 0 1px 0 rgba(255,255,255,.4)}
.review-author strong{display:block;color:#fff;font-size:16px;margin-bottom:6px;font-weight:600;letter-spacing:.3px}
.review-author span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1px}
.review-author span::before{content:'⭐';font-size:10px}
.review-loading{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--muted);font-size:16px}

/* Reserve */
.reserve{position:relative;overflow:hidden}
.reserve::before{content:'';position:absolute;bottom:-30%;left:-10%;width:500px;height:500px;background:radial-gradient(circle, rgba(229,207,142,.06) 0%, transparent 70%);border-radius:50%;pointer-events:none;z-index:0}
.reserve-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;position:relative;z-index:1}
.reserve-content h2{font-family:"Playfair Display",serif;font-size:clamp(32px, 5vw, 42px);margin-bottom:12px;background:linear-gradient(135deg, #fff 0%, var(--gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.reserve-content p{color:var(--muted);font-size:16px;line-height:1.7;margin-bottom:32px}
.reserve-form{margin-top:20px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.form-group{display:flex;flex-direction:column;gap:8px}
.form-group label{color:#d0d0d5;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:1px}
.reserve-form input{background:linear-gradient(145deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.01) 100%);border:1.5px solid rgba(229,207,142,.15);border-radius:12px;padding:14px 18px;color:var(--text);font-size:15px;transition:all .4s cubic-bezier(0.4,0,0.2,1);backdrop-filter:blur(10px);outline:none}
.reserve-form input::placeholder{color:var(--muted);opacity:.6}
.reserve-form input:focus{background:linear-gradient(145deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.03) 100%);border-color:var(--gold);box-shadow:0 0 0 4px rgba(229,207,142,.1), 0 8px 24px rgba(0,0,0,.2);transform:translateY(-2px)}
.reserve-form input:hover:not(:focus){border-color:rgba(229,207,142,.3)}
.reserve-submit{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 28px;font-size:16px;font-weight:600;border-radius:12px;transition:all .4s cubic-bezier(0.4,0,0.2,1);position:relative;overflow:hidden}
.reserve-submit svg{transition:transform .4s ease}
.reserve-submit:hover svg{transform:translateX(4px)}
.reserve-submit:active{transform:scale(0.98)}
.reserve-visual{position:relative;border-radius:24px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.reserve-image-wrapper{position:relative;overflow:hidden;border-radius:24px}
.reserve-visual img{width:100%;height:auto;display:block;transition:transform .8s cubic-bezier(0.4,0,0.2,1)}
.reserve-visual:hover img{transform:scale(1.1)}
.reserve-overlay{position:absolute;inset:0;background:linear-gradient(135deg, rgba(0,0,0,.1) 0%, transparent 50%, rgba(0,0,0,.2) 100%);pointer-events:none;transition:opacity .4s ease}
.reserve-visual:hover .reserve-overlay{opacity:0.8}

/* Contact */
.contact{position:relative;overflow:hidden;z-index:1}
.contact::before{content:'';position:absolute;top:-20%;right:-15%;width:500px;height:500px;background:radial-gradient(circle, rgba(229,207,142,.05) 0%, transparent 70%);border-radius:50%;pointer-events:none;z-index:0}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;position:relative;z-index:2}
.contact-header{margin-bottom:32px}
.contact-header h2{font-family:"Playfair Display",serif;font-size:clamp(32px, 5vw, 42px);margin-bottom:8px;background:linear-gradient(135deg, #fff 0%, var(--gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.contact-header p{color:var(--muted);font-size:16px;font-style:italic}
.contact-details{display:flex;flex-direction:column;gap:24px;margin-bottom:32px}
.contact-item{display:flex;align-items:flex-start;gap:16px;padding:20px;background:linear-gradient(145deg, rgba(255,255,255,.03) 0%, rgba(255,255,255,.01) 100%);border:1px solid rgba(229,207,142,.1);border-radius:16px;transition:all .4s cubic-bezier(0.4,0,0.2,1);backdrop-filter:blur(10px)}
.contact-item:hover{transform:translateY(-4px);border-color:rgba(229,207,142,.3);box-shadow:0 12px 30px rgba(0,0,0,.2);background:linear-gradient(145deg, rgba(229,207,142,.08) 0%, rgba(255,255,255,.03) 100%)}
.contact-icon{font-size:24px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, rgba(229,207,142,.15) 0%, rgba(229,207,142,.08) 100%);border-radius:12px;flex-shrink:0;border:1px solid rgba(229,207,142,.2)}
.contact-text{flex:1;display:flex;flex-direction:column;gap:6px}
.contact-text strong{color:#fff;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}
.contact-text span{color:#d0d0d5;font-size:15px;line-height:1.6}
.contact-text a{color:var(--gold);text-decoration:none;font-size:15px;transition:color .3s ease;display:inline-block}
.contact-text a:hover{color:var(--gold-2);text-decoration:underline}
.contact-actions{display:flex;gap:14px;flex-wrap:wrap}
.contact-actions .btn{display:flex;align-items:center;gap:10px;padding:14px 24px;font-size:15px;font-weight:600;border-radius:12px;transition:all .4s cubic-bezier(0.4,0,0.2,1)}
.contact-actions .btn svg{transition:transform .4s ease}
.contact-actions .btn:hover svg{transform:scale(1.1)}
.contact-map{position:relative;border-radius:24px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4);height:500px}
.map{width:100%;height:100%;border:none;display:block;border-radius:24px}
.map-overlay{position:absolute;inset:0;background:linear-gradient(135deg, rgba(0,0,0,.02) 0%, transparent 60%, rgba(0,0,0,.03) 100%);pointer-events:none;border-radius:24px;transition:opacity .4s ease;opacity:0.3}
.contact-map:hover .map-overlay{opacity:0.1}

/* Footer */
.site-footer{position:relative;background:linear-gradient(180deg, rgba(255,255,255,.02) 0%, rgba(0,0,0,.3) 100%);border-top:1px solid rgba(229,207,142,.15);margin-top:60px;padding-bottom:20px}
@media (max-width: 720px){
  .site-footer{padding-bottom:100px}
}
.footer-top{padding:48px 0 32px}
.footer-inner{display:grid;grid-template-columns:1fr 2fr;gap:48px;align-items:start}
.footer-brand{margin-bottom:24px}
.brand-mini{display:flex;align-items:center;gap:16px}
.brand-mini img{width:56px;height:56px;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.3)}
.brand-text{display:flex;flex-direction:column;gap:4px}
.brand-name{font-family:"Playfair Display",serif;font-size:24px;font-weight:700;color:#fff;letter-spacing:.5px;background:linear-gradient(135deg, #fff 0%, var(--gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.brand-tagline{font-size:13px;color:var(--muted);font-style:italic}
.footer-content{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.footer-nav-section h4,.footer-contact h4,.footer-hours h4{font-size:14px;font-weight:600;color:#fff;margin-bottom:16px;text-transform:uppercase;letter-spacing:1px;padding-bottom:8px;border-bottom:1px solid rgba(229,207,142,.2)}
.footer-nav-section{display:flex;flex-direction:column;gap:12px}
.footer-nav-section a{color:var(--muted);text-decoration:none;font-size:14px;transition:all .3s ease;position:relative;padding-left:0;display:inline-block;width:fit-content}
.footer-nav-section a::before{content:'';position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--gold);transition:width .3s ease}
.footer-nav-section a:hover{color:var(--gold);padding-left:8px}
.footer-nav-section a:hover::before{width:20px}
.footer-contact{display:flex;flex-direction:column;gap:16px}
.footer-contact-item{display:flex;align-items:flex-start;gap:12px;color:var(--muted);font-size:14px;line-height:1.6}
.footer-icon{font-size:18px;flex-shrink:0;margin-top:2px}
.footer-contact-item a{color:var(--muted);text-decoration:none;transition:color .3s ease}
.footer-contact-item a:hover{color:var(--gold)}
.footer-hours{display:flex;flex-direction:column;gap:12px}
.hours-list{display:flex;flex-direction:column;gap:8px}
.hours-item{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:14px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.hours-item span:first-child{font-weight:500;color:#d0d0d5}
.footer-bottom{background:rgba(0,0,0,.3);padding:20px 0;border-top:1px solid rgba(229,207,142,.1)}
.footer-bottom-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.legal{color:var(--muted);font-size:13px}
.footer-social{display:flex;gap:12px;align-items:center}
.social-link{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(229,207,142,.2);border-radius:50%;color:var(--muted);transition:all .3s ease;background:rgba(255,255,255,.02)}
.social-link:hover{color:var(--gold);border-color:var(--gold);background:rgba(229,207,142,.1);transform:translateY(-2px);box-shadow:0 4px 12px rgba(229,207,142,.2)}

/* Animated Decorations */
.decorative-element{position:absolute;pointer-events:none;z-index:1;opacity:0.6}
.hero .decorative-element{z-index:0}

/* Butterflies for Menu Section */
.butterfly{position:absolute;font-size:24px;animation:butterflyFloat 20s infinite ease-in-out;opacity:0.7}
.butterfly:nth-child(1){left:5%;animation-delay:0s;animation-duration:18s}
.butterfly:nth-child(2){left:25%;animation-delay:3s;animation-duration:22s}
.butterfly:nth-child(3){left:50%;animation-delay:6s;animation-duration:20s}
.butterfly:nth-child(4){left:75%;animation-delay:9s;animation-duration:19s}
.butterfly:nth-child(5){left:90%;animation-delay:12s;animation-duration:21s}
@keyframes butterflyFloat{0%,100%{transform:translateY(0) translateX(0) rotate(0deg);opacity:0.7}25%{transform:translateY(-30px) translateX(20px) rotate(5deg);opacity:0.9}50%{transform:translateY(-60px) translateX(-15px) rotate(-5deg);opacity:0.8}75%{transform:translateY(-30px) translateX(10px) rotate(3deg);opacity:0.9}}

/* Page Load Animations */
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}

/* Animation Classes - Initially Hidden */
.page-load-animate{opacity:0}
.animate-fade-in-up{animation:fadeInUp 0.8s ease-out forwards}
.animate-fade-in{animation:fadeIn 0.6s ease-out forwards}
.animate-fade-in-down{animation:fadeInDown 0.6s ease-out forwards}
.animate-slide-in-left{animation:slideInLeft 0.7s ease-out forwards}
.animate-slide-in-right{animation:slideInRight 0.7s ease-out forwards}
.animate-scale-in{animation:scaleIn 0.6s ease-out forwards}

/* Stagger delays for sequential animations */
.animate-delay-1{animation-delay:0.1s}
.animate-delay-2{animation-delay:0.2s}
.animate-delay-3{animation-delay:0.3s}
.animate-delay-4{animation-delay:0.4s}
.animate-delay-5{animation-delay:0.5s}
.animate-delay-6{animation-delay:0.6s}
.animate-delay-7{animation-delay:0.7s}
.animate-delay-8{animation-delay:0.8s}

/* Intro/Loading Screen */
body:has(#introScreen:not(.hidden)) {
  overflow: hidden;
}
.intro-screen{
  position:fixed;
  inset:0;
  background:linear-gradient(180deg, #0b0b0c 0%, #121214 50%, #0b0b0c 100%);
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:1;
  transition:opacity 0.8s ease-out, visibility 0.8s ease-out;
  visibility:visible;
  overflow:hidden;
}
.intro-screen.hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

/* Animated Background Orbs */
.intro-background{
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:1;
}
.intro-gradient-orb{
  position:absolute;
  border-radius:50%;
  filter:blur(80px);
  opacity:0.4;
  animation:orbFloat 8s ease-in-out infinite;
}
.orb-1{
  width:400px;
  height:400px;
  background:radial-gradient(circle, rgba(194,163,85,0.3) 0%, transparent 70%);
  top:-100px;
  left:10%;
  animation-delay:0s;
}
.orb-2{
  width:300px;
  height:300px;
  background:radial-gradient(circle, rgba(229,207,142,0.25) 0%, transparent 70%);
  bottom:-50px;
  right:15%;
  animation-delay:2s;
}
.orb-3{
  width:350px;
  height:350px;
  background:radial-gradient(circle, rgba(194,163,85,0.2) 0%, transparent 70%);
  top:50%;
  left:50%;
  transform:translate(-50%, -50%);
  animation-delay:4s;
}
@keyframes orbFloat{
  0%,100%{transform:translate(0, 0) scale(1);opacity:0.4}
  33%{transform:translate(30px, -30px) scale(1.1);opacity:0.5}
  66%{transform:translate(-20px, 20px) scale(0.9);opacity:0.3}
}

/* Floating Particles */
.intro-particles{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}
.intro-particles .particle{
  position:absolute;
  width:4px;
  height:4px;
  background:var(--gold);
  border-radius:50%;
  opacity:0.6;
  animation:particleFloat 15s linear infinite;
  box-shadow:0 0 6px rgba(194,163,85,0.8);
}
.intro-particles .particle:nth-child(1){left:10%;animation-delay:0s;animation-duration:12s}
.intro-particles .particle:nth-child(2){left:20%;animation-delay:1.5s;animation-duration:14s}
.intro-particles .particle:nth-child(3){left:30%;animation-delay:3s;animation-duration:13s}
.intro-particles .particle:nth-child(4){left:40%;animation-delay:4.5s;animation-duration:15s}
.intro-particles .particle:nth-child(5){left:50%;animation-delay:6s;animation-duration:12s}
.intro-particles .particle:nth-child(6){left:60%;animation-delay:7.5s;animation-duration:14s}
.intro-particles .particle:nth-child(7){left:70%;animation-delay:9s;animation-duration:13s}
.intro-particles .particle:nth-child(8){left:80%;animation-delay:10.5s;animation-duration:15s}
.intro-particles .particle:nth-child(9){left:90%;animation-delay:12s;animation-duration:12s}
.intro-particles .particle:nth-child(10){left:15%;animation-delay:13.5s;animation-duration:14s}
@keyframes particleFloat{
  0%{transform:translateY(100vh) translateX(0) scale(0);opacity:0}
  10%{opacity:0.6}
  90%{opacity:0.6}
  100%{transform:translateY(-100px) translateX(50px) scale(1);opacity:0}
}

/* Sparkles */
.intro-sparkles{
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
}
.intro-sparkles .sparkle{
  position:absolute;
  font-size:20px;
  opacity:0;
  animation:sparkleFloat 3s ease-in-out infinite;
}
.intro-sparkles .sparkle:nth-child(1){top:20%;left:15%;animation-delay:0s}
.intro-sparkles .sparkle:nth-child(2){top:30%;right:20%;animation-delay:0.5s}
.intro-sparkles .sparkle:nth-child(3){bottom:25%;left:25%;animation-delay:1s}
.intro-sparkles .sparkle:nth-child(4){bottom:35%;right:15%;animation-delay:1.5s}
.intro-sparkles .sparkle:nth-child(5){top:50%;left:10%;animation-delay:2s}
.intro-sparkles .sparkle:nth-child(6){top:60%;right:25%;animation-delay:2.5s}
@keyframes sparkleFloat{
  0%,100%{opacity:0;transform:translateY(0) scale(0) rotate(0deg)}
  50%{opacity:1;transform:translateY(-20px) scale(1.2) rotate(180deg)}
}

.intro-content{
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:24px;
  position:relative;
  z-index:10;
}
.intro-logo-wrapper{
  position:relative;
  animation:logoFloat 3s ease-in-out infinite;
  margin-bottom:8px;
}
.logo-ring{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%, -50%);
  border:2px solid var(--gold);
  border-radius:50%;
  opacity:0.3;
  animation:ringPulse 2s ease-in-out infinite;
}
.ring-1{
  width:140px;
  height:140px;
  animation-delay:0s;
}
.ring-2{
  width:160px;
  height:160px;
  animation-delay:0.3s;
}
.ring-3{
  width:180px;
  height:180px;
  animation-delay:0.6s;
}
@keyframes ringPulse{
  0%,100%{transform:translate(-50%, -50%) scale(1);opacity:0.3}
  50%{transform:translate(-50%, -50%) scale(1.2);opacity:0.1}
}
@keyframes logoFloat{
  0%,100%{transform:translateY(0) scale(1) rotate(0deg)}
  25%{transform:translateY(-8px) scale(1.03) rotate(-2deg)}
  50%{transform:translateY(-12px) scale(1.05) rotate(0deg)}
  75%{transform:translateY(-8px) scale(1.03) rotate(2deg)}
}
.intro-logo{
  width:120px;
  height:120px;
  object-fit:contain;
  filter:drop-shadow(0 10px 30px rgba(194,163,85,0.4));
  animation:logoGlow 2.5s ease-in-out infinite, logoRotate 20s linear infinite;
  position:relative;
  z-index:1;
}
@keyframes logoGlow{
  0%,100%{filter:drop-shadow(0 10px 30px rgba(194,163,85,0.4)) drop-shadow(0 0 20px rgba(194,163,85,0.2))}
  50%{filter:drop-shadow(0 15px 50px rgba(194,163,85,0.7)) drop-shadow(0 0 40px rgba(194,163,85,0.5))}
}
@keyframes logoRotate{
  0%{transform:rotate(0deg)}
  100%{transform:rotate(360deg)}
}
.intro-text{
  animation:fadeInUp 0.8s ease-out 0.3s both;
}
.intro-title{
  font-family:"Playfair Display",serif;
  font-size:clamp(32px, 5vw, 48px);
  font-weight:700;
  color:#fff;
  margin:0 0 8px 0;
  letter-spacing:0.1em;
  background:linear-gradient(135deg, #fff 0%, var(--gold) 50%, #fff 100%);
  background-size:200% auto;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:shimmer 3s linear infinite, titlePulse 2s ease-in-out infinite;
  position:relative;
}
@keyframes titlePulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.02)}
}
.intro-subtitle{
  font-size:14px;
  color:var(--gold);
  margin:0;
  letter-spacing:0.15em;
  text-transform:uppercase;
  font-weight:300;
  opacity:0.9;
  animation:subtitleFade 2s ease-in-out infinite;
}
@keyframes subtitleFade{
  0%,100%{opacity:0.9}
  50%{opacity:1}
}
.intro-loader{
  width:240px;
  height:3px;
  background:rgba(255,255,255,0.1);
  border-radius:3px;
  overflow:hidden;
  margin-top:16px;
  animation:fadeIn 0.8s ease-out 0.6s both;
  position:relative;
  box-shadow:0 0 20px rgba(0,0,0,0.3);
}
.loader-line{
  height:100%;
  width:0;
  background:linear-gradient(90deg, var(--gold), var(--gold-2), var(--gold));
  background-size:200% 100%;
  border-radius:3px;
  animation:loaderProgress 2s ease-in-out 0.6s forwards, loaderShimmer 1.5s linear infinite;
  box-shadow:0 0 15px rgba(194,163,85,0.6), 0 0 30px rgba(194,163,85,0.3);
  position:relative;
  z-index:1;
}
.loader-glow{
  position:absolute;
  top:50%;
  left:0;
  transform:translateY(-50%);
  width:0;
  height:100%;
  background:radial-gradient(circle, rgba(194,163,85,0.8) 0%, transparent 70%);
  animation:loaderGlow 2s ease-in-out 0.6s forwards;
  filter:blur(8px);
}
@keyframes loaderProgress{
  0%{width:0}
  100%{width:100%}
}
@keyframes loaderShimmer{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}
@keyframes loaderGlow{
  0%{width:0;opacity:0}
  50%{opacity:0.8}
  100%{width:100%;opacity:0}
}

/* Floating Leaves for Gallery */
.leaf{position:absolute;font-size:20px;animation:leafFall 15s infinite linear;opacity:0.5}
.leaf:nth-child(1){left:10%;animation-delay:0s;animation-duration:12s}
.leaf:nth-child(2){left:30%;animation-delay:2s;animation-duration:14s}
.leaf:nth-child(3){left:60%;animation-delay:4s;animation-duration:13s}
.leaf:nth-child(4){left:80%;animation-delay:6s;animation-duration:15s}
@keyframes leafFall{0%{transform:translateY(-100vh) translateX(0) rotate(0deg);opacity:0}10%{opacity:0.5}90%{opacity:0.5}100%{transform:translateY(100vh) translateX(50px) rotate(360deg);opacity:0}}

/* Sparkles for Hero Section */
.sparkle{position:absolute;width:4px;height:4px;background:var(--gold);border-radius:50%;animation:sparkleTwinkle 3s infinite;box-shadow:0 0 6px var(--gold)}
.sparkle:nth-child(odd){animation-duration:2s}
.sparkle:nth-child(even){animation-duration:2.5s}
@keyframes sparkleTwinkle{0%,100%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}}

/* Floating Particles */
.particle{position:absolute;width:6px;height:6px;background:radial-gradient(circle,var(--gold-2),transparent);border-radius:50%;animation:particleFloat 20s infinite ease-in-out;opacity:0.4}
@keyframes particleFloat{0%,100%{transform:translateY(0) translateX(0) scale(1);opacity:0.4}33%{transform:translateY(-50px) translateX(30px) scale(1.2);opacity:0.6}66%{transform:translateY(-100px) translateX(-20px) scale(0.8);opacity:0.5}}

/* Waves for About Section */
.wave{position:absolute;width:100px;height:100px;border:2px solid rgba(229,207,142,.15);border-radius:50%;animation:waveExpand 4s infinite ease-out}
.wave:nth-child(1){animation-delay:0s}
.wave:nth-child(2){animation-delay:1.3s}
.wave:nth-child(3){animation-delay:2.6s}
@keyframes waveExpand{0%{transform:scale(0);opacity:0.8}50%{opacity:0.4}100%{transform:scale(3);opacity:0}}

/* Twinkling Stars for Reviews */
.star{position:absolute;font-size:16px;color:var(--gold);animation:starTwinkle 3s infinite;opacity:0.6}
.star:nth-child(odd){animation-duration:2s}
.star:nth-child(even){animation-duration:2.5s}
@keyframes starTwinkle{0%,100%{opacity:0.3;transform:scale(0.8)}50%{opacity:1;transform:scale(1.2)}}

/* Floating Bubbles for Contact */
.bubble{position:absolute;width:40px;height:40px;border:2px solid rgba(229,207,142,.2);border-radius:50%;animation:bubbleRise 15s infinite ease-in-out;background:radial-gradient(circle,rgba(229,207,142,.1),transparent)}
.bubble:nth-child(1){left:10%;animation-delay:0s;animation-duration:12s;width:30px;height:30px}
.bubble:nth-child(2){left:40%;animation-delay:3s;animation-duration:14s;width:50px;height:50px}
.bubble:nth-child(3){left:70%;animation-delay:6s;animation-duration:13s;width:35px;height:35px}
@keyframes bubbleRise{0%{transform:translateY(100vh) translateX(0) scale(0);opacity:0}10%{opacity:0.6}90%{opacity:0.6}100%{transform:translateY(-100px) translateX(30px) scale(1);opacity:0}}

/* Floating Flowers */
.flower{position:absolute;font-size:18px;animation:flowerFloat 25s infinite ease-in-out;opacity:0.5}
.flower:nth-child(1){left:15%;animation-delay:0s}
.flower:nth-child(2){left:45%;animation-delay:5s}
.flower:nth-child(3){left:75%;animation-delay:10s}
@keyframes flowerFloat{0%,100%{transform:translateY(0) translateX(0) rotate(0deg);opacity:0.5}25%{transform:translateY(-40px) translateX(25px) rotate(90deg);opacity:0.7}50%{transform:translateY(-80px) translateX(-20px) rotate(180deg);opacity:0.6}75%{transform:translateY(-40px) translateX(15px) rotate(270deg);opacity:0.7}}

/* Responsive */
@media (max-width: 1024px){
  .grid.cards{grid-template-columns:repeat(2,1fr)}
  .grid.quotes{grid-template-columns:1fr 1fr;gap:20px}
  .hero-inner{grid-template-columns:1fr}
  .section-head.split{grid-template-columns:1fr}
  .menu-list{column-count:1}
}
@media (max-width: 720px){
  .menu{display:none}
  .burger{display:flex}
  .grid.cards{grid-template-columns:1fr}
  .grid.quotes{grid-template-columns:1fr}
  .review-card{padding:24px 20px}
  .about-inner,.reserve-inner,.contact-inner{grid-template-columns:1fr}
  .contact-map{height:350px}
  .form-row{grid-template-columns:1fr}
  .reserve-submit{width:100%}
  .menu-list{grid-template-columns:1fr}
  .menu-items{grid-template-columns:1fr}
  .menu.open{display:flex;flex-direction:column;gap:14px;position:absolute;top:64px;right:5%;padding:14px;background:rgba(15,15,18,.95);border:1px solid var(--stroke);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.45)}
  .auth-links{flex-direction:column;gap:8px;width:100%}
  .auth-link{width:100%;text-align:center}
  .user-menu-wrapper{flex-direction:column;gap:8px;width:100%}
  .user-menu-dropdown{right:auto;left:0;width:100%}
  .user-name{max-width:100px}
  .footer-inner{grid-template-columns:1fr;gap:32px}
  .footer-content{grid-template-columns:1fr;gap:24px}
  .footer-bottom-inner{flex-direction:column;text-align:center;gap:16px}
  .footer-top{padding:32px 0 24px}
  .footer-brand{margin-bottom:20px}
  .brand-mini{flex-direction:column;text-align:center;gap:12px}
  .brand-mini img{width:48px;height:48px}
  .brand-name{font-size:20px}
  .brand-tagline{font-size:12px}
  .footer-nav-section h4,.footer-contact h4,.footer-hours h4{font-size:13px;margin-bottom:12px}
  .footer-nav-section a,.footer-contact-item,.hours-item{font-size:13px}
  .footer-icon{font-size:16px}
}

/* Gallery Scroller */
.gallery-scroller {
  overflow: hidden;
  padding: 20px 0;
  -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
  mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}
.gallery-track {
  display: flex;
  gap: 20px;
  animation: scroll 10s linear infinite;
}
.gallery-scroller:hover .gallery-track {
  animation-play-state: paused;
}
.gallery-track img {
  height: 450px;
  width: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 16px;
  cursor: pointer;
  transition: transform .3s ease, box-shadow .3s ease;
}
.gallery-track img:hover {
  transform: scale(1.05);
  box-shadow: 0 10px 30px rgba(0,0,0,.4);
}
@keyframes scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.95);display:none;align-items:center;justify-content:center;z-index:100;backdrop-filter:blur(8px);opacity:0;transition:opacity .3s ease}
.lightbox[aria-hidden="false"]{display:flex;opacity:1}
.lightbox-img{max-width:min(92vw,1400px);max-height:90vh;border-radius:20px;box-shadow:0 40px 100px rgba(0,0,0,.8);animation:lightboxZoomIn .4s cubic-bezier(0.4,0,0.2,1)}
@keyframes lightboxZoomIn{from{transform:scale(0.9);opacity:0}to{transform:scale(1);opacity:1}}
.lightbox-close{position:absolute;top:28px;right:28px;width:48px;height:48px;border-radius:50%;border:2px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);color:#fff;font-size:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s ease;backdrop-filter:blur(8px)}
.lightbox-close:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.4);transform:rotate(90deg)}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;border:2px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);color:#fff;font-size:28px;font-weight:300;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s ease;backdrop-filter:blur(8px)}
.lightbox-nav:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.4);transform:translateY(-50%) scale(1.1)}
.lightbox-nav.prev{left:28px}
.lightbox-nav.next{right:28px}

/* Cart */
.cart-sidebar{position:fixed;top:0;right:-400px;width:380px;height:100vh;background:linear-gradient(180deg,#101012,#0f0f11);border-left:1px solid var(--stroke);z-index:100;transition:right .3s ease;display:flex;flex-direction:column;overflow:hidden}
.cart-sidebar.open{right:0}
/* Hide button when cart is open - global rule */
/* HIGHEST PRIORITY: Hide fixed order button when cart is open */
body.cart-open .fixed-order-btn:not(.force-show),
body.cart-open #fixedOrderBtn:not(.force-show),
body.cart-open button.fixed-order-btn:not(.force-show),
body.cart-open button#fixedOrderBtn:not(.force-show),
body.cart-open .menu-order-page .fixed-order-btn:not(.force-show),
body.cart-open .menu-order-page #fixedOrderBtn:not(.force-show){
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
  transform: translateX(200%) !important;
  position: fixed !important;
  right: -9999px !important;
  bottom: -9999px !important;
  z-index: -1 !important;
}

/* DEFAULT: Button should be visible by default */
.fixed-order-btn,
#fixedOrderBtn,
button.fixed-order-btn,
button#fixedOrderBtn {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Ensure button is ALWAYS visible when cart is NOT open - HIGHEST PRIORITY */
.fixed-order-btn.force-show,
#fixedOrderBtn.force-show,
button.fixed-order-btn.force-show,
button#fixedOrderBtn.force-show,
body:not(.cart-open) .fixed-order-btn,
body:not(.cart-open) #fixedOrderBtn,
body:not(.cart-open) button.fixed-order-btn,
body:not(.cart-open) button#fixedOrderBtn {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  position: fixed !important;
  transform: none !important;
  right: 20px !important;
  bottom: 20px !important;
  left: auto !important;
  top: auto !important;
  z-index: 99999 !important;
}

/* Force-show class overrides everything - HIGHEST PRIORITY */
.fixed-order-btn.force-show,
#fixedOrderBtn.force-show,
button.fixed-order-btn.force-show,
button#fixedOrderBtn.force-show,
body.cart-open .fixed-order-btn.force-show,
body.cart-open #fixedOrderBtn.force-show,
body.cart-open button.fixed-order-btn.force-show,
body.cart-open button#fixedOrderBtn.force-show {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  position: fixed !important;
  transform: none !important;
  right: 20px !important;
  bottom: 20px !important;
  left: auto !important;
  top: auto !important;
  z-index: 99999 !important;
}

/* Only hide when cart is open AND not force-show */
body.cart-open .fixed-order-btn:not(.force-show),
body.cart-open #fixedOrderBtn:not(.force-show),
body.cart-open button.fixed-order-btn:not(.force-show),
body.cart-open button#fixedOrderBtn:not(.force-show) {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.cart-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--stroke)}
.cart-header h3{font-family:"Playfair Display",serif;margin:0;font-size:24px}
.cart-close{background:none;border:none;color:var(--text);font-size:32px;cursor:pointer;opacity:.7;transition:.25s;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}
.cart-close:hover{opacity:1}
.cart-items{flex:1;overflow-y:auto;padding:16px}
.cart-empty{text-align:center;color:var(--muted);padding:40px 20px}
.cart-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.cart-item:last-child{border-bottom:none}
.cart-item-info{flex:1}
.cart-item-name{font-weight:600;margin-bottom:4px}
.cart-item-price{color:var(--gold);font-size:14px}
.cart-item-qty{display:flex;align-items:center;gap:8px;margin-top:8px}
.cart-item-qty button{background:rgba(255,255,255,.1);border:1px solid var(--stroke);color:var(--text);width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}
.cart-item-qty button:hover{background:rgba(255,255,255,.15)}
.cart-item-qty span{min-width:24px;text-align:center}
.cart-item-actions{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.cart-item-note-btn{background:rgba(229,207,142,.1);border:1px solid rgba(229,207,142,.3);color:var(--gold);padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer;transition:all .25s;display:flex;align-items:center;gap:6px}
.cart-item-note-btn:hover{background:rgba(229,207,142,.2);border-color:rgba(229,207,142,.5)}
.cart-item-note{margin-top:8px;padding:8px 12px;background:rgba(229,207,142,.08);border-left:3px solid var(--gold);border-radius:6px;font-size:12px;color:#d0d0d5;line-height:1.5}
.cart-item-note .note-label{color:var(--gold);font-weight:600;margin-right:6px}
.cart-item-remove{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;opacity:.7;transition:.25s}
.cart-item-remove:hover{opacity:1;color:#ff4444}
.cart-footer{
  padding:20px;
  border-top:1px solid var(--stroke);
  background:rgba(0,0,0,.4);
  flex-shrink:0;
  position:sticky;
  bottom:0;
  z-index:10;
  display:flex !important;
  flex-direction:column !important;
  visibility:visible !important;
  opacity:1 !important;
}
.cart-total{margin-bottom:16px;font-size:18px;text-align:center;color:#fff;font-weight:700}
.cart-total strong{color:#fff}
.cart-total span{color:var(--gold);font-size:20px;font-weight:800}
.cart-checkout{
  width:100%;
  padding:14px;
  font-size:16px;
  font-weight:700;
  background:linear-gradient(135deg, var(--gold), var(--gold-2));
  color:#1a1a1a;
  border:none;
  border-radius:12px;
  cursor:pointer;
  transition:all .3s ease;
  box-shadow:0 4px 12px rgba(194, 163, 85, 0.3);
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}
.cart-checkout:hover:not(:disabled){
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(194, 163, 85, 0.4);
  filter:brightness(1.05);
}
.cart-checkout:disabled{
  opacity:0.6;
  cursor:not-allowed;
  transform:none;
  background:linear-gradient(135deg, rgba(194,163,85,0.6), rgba(194,163,85,0.5));
}
.cart-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99;opacity:0;pointer-events:none;transition:opacity .3s ease;backdrop-filter:blur(4px)}
.cart-overlay.active{opacity:1;pointer-events:auto}

/* Note Modal */
.note-modal{position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:101;display:none;align-items:center;justify-content:center;backdrop-filter:blur(8px);opacity:0;transition:opacity .3s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.note-modal-content{background:linear-gradient(145deg, #121214, #0f0f11);border:1px solid rgba(229,207,142,.2);border-radius:20px;width:90%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.6);animation:slideUp .3s ease}
@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.note-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(229,207,142,.15)}
.note-modal-header h3{font-family:"Playfair Display",serif;font-size:20px;margin:0;color:#fff}
.note-modal-close{background:none;border:none;color:var(--muted);font-size:28px;cursor:pointer;opacity:.7;transition:.25s;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.note-modal-close:hover{opacity:1;color:#fff;background:rgba(255,255,255,.1)}
.note-modal-body{padding:24px;flex:1;overflow-y:auto}
.note-item-name{font-weight:600;color:#fff;margin-bottom:16px;font-size:16px;line-height:1.5}
.note-item-name span{display:block;margin-top:4px}
.quantity-selector{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding:12px;background:rgba(255,255,255,.03);border-radius:10px}
.quantity-selector label{font-weight:600;color:#fff;font-size:14px}
.quantity-controls{display:flex;align-items:center;gap:8px}
.qty-btn{width:32px;height:32px;background:rgba(255,255,255,.1);border:1px solid rgba(229,207,142,.3);border-radius:6px;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s}
.qty-btn:hover{background:rgba(229,207,142,.2);border-color:var(--gold);transform:scale(1.1)}
.quantity-input{width:50px;text-align:center;background:rgba(255,255,255,.05);border:1px solid rgba(229,207,142,.2);border-radius:6px;padding:6px;color:#fff;font-size:16px;font-weight:600;outline:none}
.quantity-input:focus{border-color:var(--gold);background:rgba(255,255,255,.08)}
.note-input{width:100%;background:rgba(255,255,255,.04);border:1.5px solid rgba(229,207,142,.2);border-radius:12px;padding:14px;color:var(--text);font-size:14px;font-family:inherit;resize:vertical;transition:all .3s;outline:none;margin-bottom:8px}
.note-input:focus{border-color:var(--gold);background:rgba(255,255,255,.06);box-shadow:0 0 0 4px rgba(229,207,142,.1)}
.note-input::placeholder{color:var(--muted);opacity:.6}
.note-hint{margin-top:0;font-size:11px;color:var(--muted);font-style:italic}
.note-modal-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;border-top:1px solid rgba(229,207,142,.15)}
.modal-total{font-size:20px;font-weight:700;color:var(--gold)}
.modal-actions{display:flex;gap:12px}

/* Payment Method Modal */
.payment-modal{position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:102;display:none;align-items:center;justify-content:center;backdrop-filter:blur(8px);opacity:0;transition:opacity .3s ease;overflow-y:auto;padding:20px}
.payment-modal-content{background:linear-gradient(145deg, #121214, #0f0f11);border:1px solid rgba(229,207,142,.2);border-radius:20px;width:90%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.6);animation:slideUp .3s ease}
.payment-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(229,207,142,.15);flex-shrink:0}
.payment-modal-header h3{font-family:"Playfair Display",serif;font-size:20px;margin:0;color:#fff}
.payment-modal-close{background:none;border:none;color:var(--muted);font-size:28px;cursor:pointer;opacity:.7;transition:.25s;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.payment-modal-close:hover{opacity:1;color:#fff;background:rgba(255,255,255,.1)}
.payment-modal-body{padding:24px;overflow-y:auto;flex:1}
.payment-section{margin-bottom:24px}
.payment-section:last-child{margin-bottom:0}
.payment-section-title{font-size:16px;font-weight:600;color:#fff;margin:0 0 16px 0;padding-bottom:8px;border-bottom:1px solid rgba(229,207,142,.1)}
.payment-form-group{margin-bottom:16px}
.payment-form-group label{display:block;font-size:14px;font-weight:500;color:rgba(255,255,255,.9);margin-bottom:8px}
.payment-form-row{display:grid;grid-template-columns:1fr 2fr;gap:16px}
.payment-input,.payment-textarea{width:100%;padding:12px 16px;background:rgba(255,255,255,.05);border:1.5px solid rgba(229,207,142,.2);border-radius:8px;color:#fff;font-size:14px;font-family:inherit;transition:all .3s;outline:none;box-sizing:border-box}
.payment-input:focus,.payment-textarea:focus{border-color:var(--gold);background:rgba(255,255,255,.08);box-shadow:0 0 0 4px rgba(229,207,142,.1)}

/* Table Selection */
.table-selection-header{margin-bottom:16px}
.table-selection-header h4{font-size:16px;font-weight:600;color:#fff;margin:0 0 12px 0}
.table-legend{display:flex;gap:20px;flex-wrap:wrap}
.legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,.7)}
.legend-color{width:16px;height:16px;border-radius:4px;display:inline-block}
.legend-color.available{background:#10b981;border:2px solid rgba(16,185,129,.3)}
.legend-color.reserved{background:#ef4444;border:2px solid rgba(239,68,68,.3)}
.table-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.table-btn{position:relative;aspect-ratio:1;border:2px solid rgba(229,207,142,.2);border-radius:12px;background:rgba(255,255,255,.03);color:#fff;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:600;padding:12px}
.table-btn:hover:not(:disabled){border-color:var(--gold);background:rgba(229,207,142,.1);transform:translateY(-2px);box-shadow:0 4px 12px rgba(229,207,142,.2)}
.table-btn.available{border-color:rgba(16,185,129,.4);background:rgba(16,185,129,.05)}
.table-btn.available.selectable{cursor:pointer}
.table-btn.available.selectable:hover{border-color:#10b981;background:rgba(16,185,129,.15)}
.table-btn.reserved{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.05);cursor:not-allowed;opacity:.6}
.table-btn:disabled{cursor:not-allowed;opacity:.5}
.table-btn.selected{border-color:var(--gold);background:linear-gradient(135deg,rgba(194,163,85,.2),rgba(229,207,142,.1));box-shadow:0 0 0 3px rgba(194,163,85,.2),0 4px 16px rgba(194,163,85,.3);transform:scale(1.05)}
.table-number{font-size:18px;font-weight:700;color:#fff}
.table-status{font-size:14px;opacity:.8}
.table-btn.available .table-status{color:#10b981}
.table-btn.reserved .table-status{color:#ef4444}
.table-btn.selected .table-number{color:var(--gold)}
@media (max-width:640px){
  .table-grid{grid-template-columns:repeat(3,1fr);gap:10px}
  .table-btn{padding:10px}
  .table-number{font-size:16px}
  .payment-modal{padding:10px}
  .payment-modal-content{width:95%;max-height:95vh;border-radius:16px}
  .payment-modal-header{padding:16px 18px}
  .payment-modal-header h3{font-size:18px}
  .payment-modal-body{padding:18px}
  .payment-section{margin-bottom:20px}
  .payment-section-title{font-size:15px;margin-bottom:12px}
  .payment-form-row{grid-template-columns:1fr;gap:12px}
  .payment-form-group{margin-bottom:14px}
  .payment-form-group label{font-size:13px;margin-bottom:6px}
  .payment-input,.payment-textarea{padding:10px 14px;font-size:13px}
  .payment-option{padding:14px;gap:12px}
  .payment-icon{font-size:28px}
  .payment-title{font-size:15px}
  .payment-subtitle{font-size:12px}
  .payment-summary{padding:14px}
  .payment-summary-row{font-size:13px;padding:6px 0}
  .payment-summary-row.payment-total{font-size:16px;padding-top:10px}
  .payment-modal-footer{padding:16px 18px;flex-direction:column-reverse;gap:10px}
  .payment-modal-footer .btn{width:100%;padding:14px}
  .auth-modal-content{width:95%;max-height:95vh;border-radius:16px}
  .auth-modal-header{padding:16px 18px}
  .auth-modal-header h3{font-size:18px}
  .auth-modal-body{padding:18px}
  .auth-form-group{margin-bottom:16px}
  .auth-form-group label{font-size:13px;margin-bottom:6px}
  .auth-form-group input{padding:12px 14px;font-size:14px}
  .auth-form-row{grid-template-columns:1fr;gap:12px}
  .auth-btn-primary{padding:14px;font-size:15px}
  .note-modal-content{width:95%;max-height:95vh;border-radius:16px}
  .note-modal-header{padding:16px 18px}
  .note-modal-header h3{font-size:18px}
  .note-modal-body{padding:18px}
  .note-item-name{font-size:15px;margin-bottom:14px}
  .quantity-selector{padding:10px;margin-bottom:14px}
  .quantity-selector label{font-size:13px}
  .qty-btn{width:28px;height:28px;font-size:16px}
  .quantity-input{width:45px;font-size:14px;padding:5px}
  .note-input{padding:12px;font-size:13px;margin-bottom:6px}
  .note-hint{font-size:10px}
  .note-modal-footer{padding:16px 18px;flex-direction:column-reverse;gap:10px}
  .note-modal-footer .btn{width:100%;padding:14px}
  .modal-total{font-size:18px}
}
.payment-input::placeholder,.payment-textarea::placeholder{color:rgba(255,255,255,.4)}
.payment-textarea{resize:vertical;min-height:80px}
.payment-options{display:flex;flex-direction:column;gap:12px}
.payment-option{display:flex;align-items:center;gap:16px;padding:16px;background:rgba(255,255,255,.04);border:2px solid rgba(229,207,142,.2);border-radius:12px;cursor:pointer;transition:all .3s ease;text-align:left;width:100%;position:relative}
.payment-option:hover{background:rgba(255,255,255,.08);border-color:var(--gold);transform:translateY(-2px);box-shadow:0 8px 24px rgba(229,207,142,.2)}
.payment-option.selected{background:rgba(194,163,85,.1);border-color:var(--gold);box-shadow:0 0 0 3px rgba(194,163,85,.2)}
.payment-icon{font-size:36px;line-height:1;flex-shrink:0}
.payment-text{flex:1}
.payment-title{font-size:16px;font-weight:600;color:#fff;margin-bottom:4px}
.payment-subtitle{font-size:13px;color:rgba(255,255,255,.6)}
.payment-check{position:absolute;top:12px;right:12px;width:24px;height:24px;border-radius:50%;background:var(--gold);color:#1a1a1a;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;opacity:0;transform:scale(0);transition:all .3s ease}
.payment-option.selected .payment-check{opacity:1;transform:scale(1)}
.payment-summary{background:rgba(255,255,255,.03);border-radius:12px;padding:16px;margin-top:8px}
.payment-summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;color:rgba(255,255,255,.8)}
.payment-summary-row.payment-total{border-top:1px solid rgba(229,207,142,.2);margin-top:8px;padding-top:12px;font-size:18px;font-weight:700;color:#fff}
.payment-total span:last-child{color:var(--gold)}
.payment-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid rgba(229,207,142,.15);flex-shrink:0}

/* Auth Modals */
.auth-modal{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:150;display:none;align-items:center;justify-content:center;backdrop-filter:blur(8px);opacity:0;transition:opacity .3s ease;overflow-y:auto;padding:20px}
.auth-modal.active{display:flex;opacity:1}
.auth-modal-content{background:linear-gradient(145deg, #121214, #0f0f11);border:1px solid rgba(229,207,142,.2);border-radius:20px;width:90%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.6);position:relative}
.auth-modal-content::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 50% 0%,rgba(229,207,142,.1) 0%,transparent 70%);opacity:0;pointer-events:none;transition:opacity .5s ease}
.auth-modal.active .auth-modal-content::before{opacity:1}
.auth-forms-container{position:relative;width:100%;overflow:hidden;flex:1;display:flex;min-height:500px}
.auth-form-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;pointer-events:none;display:none;flex-direction:column}
.auth-form-wrapper.active{position:relative;opacity:1;pointer-events:auto;z-index:1;display:flex}
.auth-form-wrapper:not(.active){z-index:0}
.auth-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(229,207,142,.15);flex-shrink:0}
.auth-modal-body{padding:24px;padding-bottom:40px;overflow-y:auto;flex:1;display:block;max-height:calc(90vh - 100px)}
.auth-form-group{margin-bottom:20px}
.auth-btn-primary{width:100%;padding:16px;background:linear-gradient(135deg,var(--gold) 0%,#d4af37 100%);border:none;border-radius:12px;color:#0b0b0c;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(0.34, 1.56, 0.64, 1);margin-top:8px;margin-bottom:8px;position:relative;overflow:hidden;box-shadow:0 4px 15px rgba(212,175,55,.3);display:block !important;visibility:visible !important;opacity:1 !important}
.auth-switch-link{text-align:center;margin-top:24px;color:rgba(255,255,255,.7);font-size:14px}
@keyframes authShake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}
.auth-modal-header h3{font-family:"Playfair Display",serif;font-size:22px;margin:0;color:#fff}
.auth-modal-close{background:none;border:none;color:var(--muted);font-size:28px;cursor:pointer;opacity:.7;transition:all .3s cubic-bezier(0.34, 1.56, 0.64, 1);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;position:relative}
.auth-modal-close::before{content:'';position:absolute;inset:0;border-radius:50%;background:rgba(255,255,255,.1);opacity:0;transform:scale(0);transition:all .3s cubic-bezier(0.34, 1.56, 0.64, 1)}
.auth-modal-close:hover{opacity:1;color:#fff;transform:rotate(90deg) scale(1.1)}
.auth-modal-close:hover::before{opacity:1;transform:scale(1)}
.auth-form-group label{display:block;font-size:14px;font-weight:600;color:rgba(255,255,255,.9);margin-bottom:8px}
.auth-form-group input{width:100%;padding:14px 16px;background:rgba(255,255,255,.05);border:1.5px solid rgba(229,207,142,.2);border-radius:8px;color:#fff;font-size:14px;font-family:inherit;transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);outline:none;box-sizing:border-box;transform:scale(1);position:relative}
.auth-form-group input:focus{border-color:var(--gold);background:rgba(255,255,255,.08);box-shadow:0 0 0 4px rgba(229,207,142,.15),0 4px 12px rgba(229,207,142,.1);transform:scale(1.01) translateY(-1px)}
.auth-form-group input:hover:not(:focus){border-color:rgba(229,207,142,.4);background:rgba(255,255,255,.06);transform:translateY(-1px)}
.auth-form-group input::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--gold),var(--gold-2));transform:scaleX(0);transition:transform .3s ease}
.auth-form-group input:focus::after{transform:scaleX(1)}
.auth-form-group input::placeholder{color:rgba(255,255,255,.4)}
.auth-form-row{display:grid;grid-template-columns:1fr 2fr;gap:16px}
.auth-required{color:var(--gold)}
.auth-info-text{color:rgba(255,255,255,.5);font-size:12px;margin-top:4px}
.auth-btn-primary{width:100%;padding:16px;background:linear-gradient(135deg,var(--gold) 0%,#d4af37 100%);border:none;border-radius:12px;color:#0b0b0c;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(0.34, 1.56, 0.64, 1);margin-top:8px;position:relative;overflow:hidden;box-shadow:0 4px 15px rgba(212,175,55,.3)}
.auth-btn-primary::before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.3);transform:translate(-50%,-50%);transition:width .6s cubic-bezier(0.4, 0, 0.2, 1),height .6s cubic-bezier(0.4, 0, 0.2, 1)}
.auth-btn-primary::after{content:'';position:absolute;inset:0;border-radius:12px;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 100%);opacity:0;transition:opacity .3s ease}
.auth-btn-primary:hover::before{width:400px;height:400px}
.auth-btn-primary:hover::after{opacity:1}
.auth-btn-primary:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 12px 35px rgba(212,175,55,.5),0 0 20px rgba(212,175,55,.2)}
.auth-btn-primary:active{transform:translateY(-1px) scale(0.98);box-shadow:0 4px 15px rgba(212,175,55,.3)}
.auth-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.auth-error-message{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:12px;border-radius:8px;margin-bottom:20px;font-size:14px;display:none;opacity:0;transform:translateY(-10px) scale(0.95);transition:all .3s cubic-bezier(0.34, 1.56, 0.64, 1)}
.auth-error-message.show{display:block;animation:authErrorShow .4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards}
.auth-success-message{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3);color:#86efac;padding:12px;border-radius:8px;margin-bottom:20px;font-size:14px;display:none;opacity:0;transform:translateY(-10px) scale(0.95);transition:all .3s cubic-bezier(0.34, 1.56, 0.64, 1)}
.auth-success-message.show{display:block;animation:authSuccessShow .4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards}
@keyframes authErrorShow{0%{opacity:0;transform:translateY(-10px) scale(0.95)}50%{transform:translateY(2px) scale(1.02)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes authSuccessShow{0%{opacity:0;transform:translateY(-10px) scale(0.95)}50%{transform:translateY(2px) scale(1.02)}100%{opacity:1;transform:translateY(0) scale(1)}}
.auth-success-message{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3);color:#86efac;padding:12px;border-radius:8px;margin-bottom:20px;font-size:14px;display:none;animation:authBounceIn .5s cubic-bezier(0.34, 1.56, 0.64, 1) both}
@keyframes authShake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}
@keyframes authBounceIn{0%{opacity:0;transform:scale(0.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(0.9)}100%{transform:scale(1)}}
.auth-switch-link{text-align:center;margin-top:24px;color:rgba(255,255,255,.7);font-size:14px}
.auth-switch-link a{color:var(--gold);text-decoration:none;font-weight:600}
.auth-switch-link a:hover{text-decoration:underline}
.auth-discount-badge{background:linear-gradient(135deg,var(--gold) 0%,#d4af37 100%);color:#0b0b0c;padding:16px;border-radius:12px;text-align:center;margin-top:24px;font-weight:600;opacity:0;transform:scale(0.9) translateY(10px);transition:all .4s cubic-bezier(0.34, 1.56, 0.64, 1);box-shadow:0 8px 25px rgba(212,175,55,.3)}
.auth-discount-badge.hidden{display:none}
.auth-discount-badge:not(.hidden){display:block;animation:authBadgePopIn .5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards}
.auth-verify-section{margin-top:24px;padding:20px;border:1px solid rgba(229,207,142,.2);border-radius:16px;background:rgba(12,12,14,.8);display:flex;flex-direction:column;gap:16px}
.auth-verify-section.hidden{display:none}
.auth-verify-header{display:flex;flex-direction:column;gap:4px}
.auth-verify-title{font-size:18px;font-weight:600;color:#fff}
.auth-verify-subtitle{font-size:14px;color:rgba(255,255,255,.7)}
.auth-verify-email{font-size:14px;color:var(--gold);font-weight:600}
.auth-verify-actions{display:flex;gap:12px;flex-wrap:wrap}
.auth-btn-secondary{flex:1;min-width:160px;padding:14px;border-radius:12px;border:1px solid rgba(229,207,142,.4);background:transparent;color:#fff;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(0.34, 1.56, 0.64, 1)}
.auth-btn-secondary:hover{background:rgba(229,207,142,.1);transform:translateY(-2px)}
.auth-btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}
.auth-link-button{background:none;border:none;color:rgba(255,255,255,.7);font-size:14px;cursor:pointer;text-decoration:underline;padding:0;margin:0}
.auth-verify-group input{text-transform:uppercase;letter-spacing:2px}
@keyframes authBadgePopIn{0%{opacity:0;transform:scale(0.9) translateY(10px)}50%{transform:scale(1.05) translateY(-2px)}100%{opacity:1;transform:scale(1) translateY(0)}}

/* Menu Book Page */
.menu-book-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.95);
  z-index:200;
  display:none;
  align-items:center;
  justify-content:center;
  opacity:0;
  transition:opacity .4s ease;
  backdrop-filter:blur(10px);
}
.menu-book-overlay.active{
  display:flex;
  opacity:1;
}
.menu-book-container{
  position:relative;
  width:min(90vw, 1400px);
  height:min(90vh, 900px);
  display:flex;
  align-items:center;
  justify-content:center;
  perspective:3000px;
  perspective-origin:center center;
}
.menu-book-close{
  position:absolute;
  top:-50px;
  right:0;
  width:48px;
  height:48px;
  background:rgba(255,255,255,.1);
  border:2px solid rgba(255,255,255,.2);
  border-radius:50%;
  color:#fff;
  font-size:32px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .3s ease;
  z-index:10;
  backdrop-filter:blur(10px);
}
.menu-book-close:hover{
  background:rgba(255,255,255,.2);
  border-color:var(--gold);
  transform:rotate(90deg);
}
.book-wrapper{
  position:relative;
  width:100%;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:24px;
}
.book{
  width:100%;
  height:100%;
  position:relative;
  transform-style:preserve-3d;
  /* Không xoay cả cuốn sách, chỉ lật từng trang */
}
.book-page{
  position:absolute;
  width:100%;
  height:100%;
  background:linear-gradient(180deg, #1a1a1a 0%, #0f0f11 100%);
  border:1px solid rgba(255,255,255,.1);
  border-radius:8px;
  overflow:hidden;
  padding:0;
  box-shadow:0 25px 80px rgba(0,0,0,.6),
              inset 0 1px 0 rgba(255,255,255,.05);
  transition:opacity 0.4s ease;
  display:flex;
  flex-direction:column;
  opacity:1;
  left:0;
  right:0;
}
.book-page.left{
  left:0;
  border-right:5px solid #9A8347;
  background:linear-gradient(to right, #111, #1a1a1a);
}
.book-page.right{
  right:0;
  border-left:5px solid #9A8347;
  background:linear-gradient(to left, #111, #1a1a1a);
}
.book-page::-webkit-scrollbar{
  width:8px;
}
.book-page::-webkit-scrollbar-track{
  background:rgba(255,255,255,.05);
  border-radius:4px;
}
.book-page::-webkit-scrollbar-thumb{
  background:rgba(194,163,85,.3);
  border-radius:4px;
}
.book-page::-webkit-scrollbar-thumb:hover{
  background:rgba(194,163,85,.5);
}
.book-page h2{
  font-family:"Playfair Display",serif;
  font-size:36px;
  margin:0 0 24px;
  color:var(--gold);
  border-bottom:2px solid rgba(194,163,85,.3);
  padding-bottom:14px;
  text-shadow:0 2px 8px rgba(194,163,85,.2);
  letter-spacing:-0.5px;
}
.book-page-content-wrapper{
  height:100%;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.book-page-content{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:14px;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:8px;
  margin-top:8px;
}
.book-page-content::-webkit-scrollbar{
  width:6px;
}
.book-page-content::-webkit-scrollbar-track{
  background:rgba(255,255,255,.03);
  border-radius:3px;
}
.book-page-content::-webkit-scrollbar-thumb{
  background:rgba(194,163,85,.3);
  border-radius:3px;
}
.book-page-content::-webkit-scrollbar-thumb:hover{
  background:rgba(194,163,85,.5);
}
.book-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  padding:16px;
  background:rgba(255,255,255,.05);
  border-radius:12px;
  backdrop-filter:blur(10px);
}
.book-nav-btn{
  width:48px;
  height:48px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  color:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .3s ease;
}
.book-nav-btn:hover{
  background:var(--gold);
  border-color:var(--gold);
  color:#1a1a1a;
  transform:scale(1.1);
}
.book-nav-btn:disabled{
  opacity:.3;
  cursor:not-allowed;
  transform:none;
}
.book-page-indicator{
  color:#fff;
  font-size:16px;
  font-weight:600;
  min-width:80px;
  text-align:center;
}
@media (max-width: 1024px){
  .menu-book-container{
    perspective:2000px;
  }
  .book{
    transition:transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
  .book-page{
    width:100%;
    padding:30px 24px;
    transition:transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
  .book-page.left{
    left:0;
    transform:none !important;
    border-right:none;
  }
  .book-page.right{
    right:0;
    display:none;
  }
  .book-page-content{
    grid-template-columns:1fr;
  }
}
.book-menu-item{
  padding:18px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  cursor:pointer;
  transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);
  position:relative;
  overflow:hidden;
}
.book-menu-item::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  width:3px;
  height:100%;
  background:var(--gold);
  transform:scaleY(0);
  transition:transform .3s ease;
}
.book-menu-item:hover::before{
  transform:scaleY(1);
}
.book-menu-item:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(194,163,85,.4);
  transform:translateX(6px);
  box-shadow:0 4px 16px rgba(0,0,0,.3);
}

/* Fixed Order Button (Horizontal Modern Design) */
.fixed-order-btn,
#fixedOrderBtn{
  position:fixed !important;
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  right:20px !important;
  bottom:20px !important;
  left:auto !important;
  top:auto !important;
  z-index:9999 !important;
  width:auto;
  min-width:320px;
  height:80px;
  background:linear-gradient(135deg, #F5DF9E, #D2B365);
  border:3px solid rgba(255, 255, 255, 0.5);
  border-radius:24px;
  padding:0 28px;
  cursor:pointer;
  box-shadow:0 16px 64px rgba(194, 163, 85, 0.8),
              0 8px 24px rgba(0,0,0,.4),
              0 0 0 6px rgba(194, 163, 85, 0.2),
              0 0 40px rgba(194, 163, 85, 0.6),
              inset 0 2px 0 rgba(255,255,255,.5);
  transition:all .4s cubic-bezier(0.4, 0, 0.2, 1);
  color:#1a1a1a;
  font-weight:800;
  overflow:visible;
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  flex-direction:row;
  align-items:center;
  gap:18px;
  animation:buttonGlow 2.5s ease-in-out infinite;
  backdrop-filter:blur(10px);
  pointer-events:auto !important;
}
@keyframes buttonGlow{
  0%, 100%{
    box-shadow:0 16px 64px rgba(194, 163, 85, 0.8),
                0 8px 24px rgba(0,0,0,.4),
                0 0 0 6px rgba(194, 163, 85, 0.2),
                0 0 40px rgba(194, 163, 85, 0.6),
                inset 0 2px 0 rgba(255,255,255,.5);
    transform:scale(1);
  }
  50%{
    box-shadow:0 20px 80px rgba(194, 163, 85, 1),
                0 12px 32px rgba(0,0,0,.5),
                0 0 0 8px rgba(194, 163, 85, 0.35),
                0 0 60px rgba(194, 163, 85, 0.9),
                inset 0 2px 0 rgba(255,255,255,.6);
    transform:scale(1.02);
  }
}
.fixed-order-btn:hover{
  transform:translateY(-6px) scale(1.08);
  background:linear-gradient(135deg, #FFE8A8, #E5CF8E);
  box-shadow:0 24px 96px rgba(194, 163, 85, 1),
              0 12px 40px rgba(0,0,0,.5),
              0 0 0 10px rgba(194, 163, 85, 0.4),
              0 0 80px rgba(194, 163, 85, 1),
              inset 0 2px 0 rgba(255,255,255,.7);
  filter:brightness(1.15) saturate(1.1);
  border-color:rgba(255, 255, 255, 0.7);
  animation:none;
}
.fixed-order-btn:active{
  transform:translateY(-2px) scale(1.02);
}
.fixed-order-btn.has-items{
  border-color:rgba(255, 255, 255, 0.6);
  background:linear-gradient(135deg, #FFE8A8, #E5CF8E);
  box-shadow:0 18px 72px rgba(194, 163, 85, 0.9),
              0 8px 28px rgba(0,0,0,.4),
              0 0 0 8px rgba(194, 163, 85, 0.3),
              inset 0 2px 0 rgba(255,255,255,.5),
              0 0 50px rgba(194, 163, 85, 0.8);
  animation:buttonPulse 1.8s ease-in-out infinite;
  filter:brightness(1.1);
}
@keyframes buttonPulse{
  0%, 100%{
    box-shadow:0 18px 72px rgba(194, 163, 85, 0.9),
                0 8px 28px rgba(0,0,0,.4),
                0 0 0 8px rgba(194, 163, 85, 0.3),
                inset 0 2px 0 rgba(255,255,255,.5),
                0 0 50px rgba(194, 163, 85, 0.8);
    transform:scale(1);
  }
  50%{
    box-shadow:0 24px 96px rgba(194, 163, 85, 1),
                0 12px 40px rgba(0,0,0,.5),
                0 0 0 12px rgba(194, 163, 85, 0.45),
                inset 0 2px 0 rgba(255,255,255,.7),
                0 0 70px rgba(194, 163, 85, 1);
    transform:scale(1.03);
  }
}
.order-btn-badge{
  position:absolute;
  top:-6px;
  right:-6px;
  min-width:22px;
  height:22px;
  background:#ff4444;
  border:2px solid #fff;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  font-weight:700;
  color:#fff;
  box-shadow:0 2px 8px rgba(255,68,68,.5);
  z-index:10;
  transition:all .3s ease;
  transform:scale(0);
  opacity:0;
}
.order-btn-badge.show{
  transform:scale(1);
  opacity:1;
}
.order-btn-badge.pulse{
  animation:badgePop .4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
@keyframes badgePop{
  0%{transform:scale(0);}
  50%{transform:scale(1.2);}
  100%{transform:scale(1);}
}
.order-btn-content{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:14px;
  width:100%;
}
.order-icon-wrapper{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.order-icon{
  width:36px;
  height:36px;
  color:#1a1a1a;
  transition:all .3s ease;
  filter:drop-shadow(0 3px 6px rgba(0,0,0,.3));
}
.fixed-order-btn:hover .order-icon{
  transform:translateY(-3px) scale(1.15) rotate(-5deg);
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.4));
}
.order-text{
  font-size:15px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:2px;
  color:#1a1a1a;
  white-space:nowrap;
  flex-shrink:0;
  text-shadow:0 2px 4px rgba(255,255,255,.5),
              0 0 10px rgba(255,255,255,.3);
}
.order-total{
  font-size:16px;
  font-weight:900;
  padding:12px 20px;
  background:rgba(26,26,26,.98);
  color:#FFE8A8;
  border-radius:16px;
  white-space:nowrap;
  text-align:center;
  transition:all .3s ease;
  margin-left:auto;
  flex-shrink:0;
  border:2px solid rgba(229, 207, 142, 0.5);
  box-shadow:0 4px 12px rgba(0,0,0,.4),
              inset 0 2px 0 rgba(255,255,255,.2),
              0 0 20px rgba(194, 163, 85, 0.4);
}
.fixed-order-btn:hover .order-total{
  background:rgba(26,26,26,1);
  color:#FFF4C8;
  transform:translateY(-2px) scale(1.05);
  border-color:rgba(229, 207, 142, 0.7);
  box-shadow:0 6px 16px rgba(0,0,0,.5),
              inset 0 2px 0 rgba(255,255,255,.25),
              0 0 30px rgba(194, 163, 85, 0.6);
}

/* Enhanced Menu Items with Images (like Hikari Sushi) */
.menu-item-card{
  display:grid;
  grid-template-columns:140px 1fr auto;
  gap:20px;
  padding:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.1);
  border-radius:16px;
  transition:all .4s cubic-bezier(0.4, 0, 0.2, 1);
  cursor:pointer;
  align-items:center;
  position:relative;
  overflow:hidden;
}
.menu-item-card::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(229,207,142,.05), transparent);
  opacity:0;
  transition:opacity .4s ease;
  pointer-events:none;
}
.menu-item-card:hover::before{
  opacity:1;
}
.menu-item-card:hover{
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  border-color:rgba(229,207,142,.4);
  transform:translateY(-4px);
  box-shadow:0 12px 32px rgba(0,0,0,.3),
              0 4px 16px rgba(229,207,142,.15);
}
.menu-item-image-wrapper{
  width:140px;
  height:180px;
  position:relative;
  border-radius:14px;
  overflow:hidden;
  background:linear-gradient(135deg, rgba(229,207,142,.1), rgba(255,255,255,.05));
  border:1.5px solid rgba(255,255,255,.12);
  flex-shrink:0;
  transition:all .4s ease;
  box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.menu-item-card:hover .menu-item-image-wrapper{
  transform:scale(1.05);
  border-color:rgba(229,207,142,.3);
  box-shadow:0 6px 16px rgba(0,0,0,.3);
}
.menu-item-image{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.menu-item-image-fallback{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  display:none;
  align-items:center;
  justify-content:center;
  font-size:32px;
  color:var(--muted);
  background:linear-gradient(135deg, rgba(229,207,142,.1), rgba(255,255,255,.05));
}
.menu-item-info{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.menu-item-name{
  font-weight:700;
  font-size:17px;
  color:#fff;
  line-height:1.4;
  margin-bottom:6px;
  transition:color .3s ease;
}
.menu-item-card:hover .menu-item-name{
  color:var(--gold-2);
}
.menu-item-desc{
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
  margin-top:4px;
}
.menu-item-actions{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:12px;
}
.menu-item-price{
  font-size:20px;
  font-weight:800;
  color:var(--gold);
  white-space:nowrap;
  margin-bottom:8px;
  letter-spacing:0.3px;
}
.menu-item-add-btn{
  background:linear-gradient(135deg, var(--gold), var(--gold-2));
  color:#1a1a1a;
  border:none;
  border-radius:10px;
  padding:12px 24px;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
  transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);
  white-space:nowrap;
  display:flex;
  align-items:center;
  gap:8px;
  box-shadow:0 4px 12px rgba(194,163,85,.25);
  position:relative;
  overflow:hidden;
}
.menu-item-add-btn::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, var(--gold-2), #f4d03f);
  opacity:0;
  transition:opacity .3s ease;
}
.menu-item-add-btn span{
  position:relative;
  z-index:1;
}
.menu-item-add-btn:hover{
  transform:translateY(-2px) scale(1.02);
  box-shadow:0 6px 20px rgba(194,163,85,.4);
}
.menu-item-add-btn:hover::before{
  opacity:1;
}
.menu-item-add-btn:active{
  transform:translateY(0) scale(0.98);
}

/* Menu Grid Layout (like Hikari Sushi) */
.menu-items-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:24px;
  padding:24px 0;
}
@media (max-width: 1024px){
  .menu-items-grid{
    grid-template-columns:1fr;
    gap:20px;
  }
  .menu-item-card{
    grid-template-columns:120px 1fr auto;
    gap:16px;
    padding:18px;
  }
  .menu-item-image-wrapper{
    width:120px;
    height:160px;
  }
}

@media (max-width: 720px){
  .cart-sidebar{width:100%;right:-100%}
  .cart-toggle{margin-left:auto}
  
  /* Cart Header - Mobile */
  .cart-header{
    padding:20px 16px;
    min-height:64px;
  }
  .cart-header h3{
    font-size:22px;
  }
  .cart-close{
    width:44px;
    height:44px;
    font-size:28px;
    min-width:44px;
    min-height:44px;
  }
  
  /* Cart Items - Mobile */
  .cart-items{
    padding:12px 16px;
  }
  .cart-item{
    padding:16px 0;
    gap:16px;
  }
  .cart-item-name{
    font-size:16px;
    margin-bottom:6px;
    line-height:1.4;
  }
  .cart-item-price{
    font-size:16px;
    font-weight:600;
  }
  
  /* Quantity Controls - Mobile - Larger touch targets */
  .cart-item-qty{
    gap:12px;
    margin-top:12px;
  }
  .cart-item-qty button{
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    font-size:20px;
    border-radius:8px;
    font-weight:600;
  }
  .cart-item-qty span{
    min-width:36px;
    font-size:18px;
    font-weight:600;
  }
  
  /* Remove Button - Mobile */
  .cart-item-remove{
    padding:8px;
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:20px;
  }
  
  /* Note Button - Mobile */
  .cart-item-note-btn{
    padding:10px 16px;
    font-size:14px;
    min-height:44px;
    border-radius:8px;
  }
  
  /* Cart Footer - Mobile */
  .cart-footer{
    padding:20px 16px;
    background:rgba(0,0,0,.6);
    backdrop-filter:blur(8px);
    border-top:2px solid rgba(229,207,142,0.2);
  }
  .cart-total{
    font-size:22px;
    margin-bottom:16px;
  }
  .cart-total span{
    font-size:26px;
  }
  .cart-checkout{
    padding:18px 20px;
    font-size:18px;
    font-weight:700;
    min-height:56px;
    border-radius:14px;
    box-shadow:0 6px 20px rgba(194, 163, 85, 0.4);
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    width:100% !important;
  }
  .cart-checkout:active:not(:disabled){
    transform:translateY(0);
    box-shadow:0 4px 12px rgba(194, 163, 85, 0.3);
  }
  .cart-checkout:disabled{
    opacity:0.7 !important;
    background:linear-gradient(135deg, rgba(194,163,85,0.7), rgba(194,163,85,0.6)) !important;
  }
  
  /* Ensure cart footer is always visible */
  .cart-footer{
    display:flex !important;
    flex-direction:column !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  
  /* Cart Empty State - Mobile */
  .cart-empty{
    padding:60px 20px;
    font-size:16px;
  }
  
  /* Cart Item Note - Mobile */
  .cart-item-note{
    margin-top:12px;
    padding:12px 16px;
    font-size:13px;
    line-height:1.6;
  }
  
  /* Cart Item Actions - Mobile */
  .cart-item-actions{
    gap:10px;
    margin-top:12px;
  }
  
  /* Ensure proper scrolling on mobile */
  .cart-items{
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    scrollbar-color:rgba(229,207,142,0.3) transparent;
  }
  .cart-items::-webkit-scrollbar{
    width:6px;
  }
  .cart-items::-webkit-scrollbar-track{
    background:transparent;
  }
  .cart-items::-webkit-scrollbar-thumb{
    background:rgba(229,207,142,0.3);
    border-radius:3px;
  }
  .cart-items::-webkit-scrollbar-thumb:hover{
    background:rgba(229,207,142,0.5);
  }
  
  /* Force fixed order button to be visible on mobile */
  .fixed-order-btn,
  #fixedOrderBtn,
  button.fixed-order-btn,
  button#fixedOrderBtn,
  body .fixed-order-btn,
  body #fixedOrderBtn,
  .menu-order-page .fixed-order-btn,
  .menu-order-page #fixedOrderBtn {
    position:fixed !important;
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    width:auto !important;
    min-width:180px !important;
    height:65px !important;
    padding:0 16px !important;
    right:12px !important;
    bottom:16px !important;
    left:auto !important;
    top:auto !important;
    border-radius:18px !important;
    gap:12px !important;
    z-index:99999 !important;
    pointer-events:auto !important;
    transform:none !important;
  }
  
  /* Force button visibility when cart is NOT open */
  body:not(.cart-open) .fixed-order-btn,
  body:not(.cart-open) #fixedOrderBtn,
  body:not(.cart-open) button.fixed-order-btn,
  body:not(.cart-open) button#fixedOrderBtn {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: fixed !important;
    right: 12px !important;
    bottom: 16px !important;
    z-index: 99999 !important;
  }
  
  /* Hide button only when cart is open AND not force-show - highest priority */
  /* HIGHEST PRIORITY: Hide fixed order button when cart is open on mobile */
  body.cart-open .fixed-order-btn:not(.force-show),
  body.cart-open #fixedOrderBtn:not(.force-show),
  body.cart-open button.fixed-order-btn:not(.force-show),
  body.cart-open button#fixedOrderBtn:not(.force-show),
  body.cart-open .menu-order-page .fixed-order-btn:not(.force-show),
  body.cart-open .menu-order-page #fixedOrderBtn:not(.force-show) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translateX(200%) !important;
    position: fixed !important;
    right: -9999px !important;
    bottom: -9999px !important;
    z-index: -1 !important;
  }
  
  /* Force-show class overrides everything on mobile too */
  .fixed-order-btn.force-show,
  #fixedOrderBtn.force-show,
  button.fixed-order-btn.force-show,
  button#fixedOrderBtn.force-show,
  body.cart-open .fixed-order-btn.force-show,
  body.cart-open #fixedOrderBtn.force-show,
  body.cart-open button.fixed-order-btn.force-show,
  body.cart-open button#fixedOrderBtn.force-show {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    position: fixed !important;
    transform: none !important;
    right: 12px !important;
    bottom: 16px !important;
    left: auto !important;
    top: auto !important;
    z-index: 99999 !important;
  }
  .order-btn-content{
    gap:10px;
  }
  .order-icon{
    width:24px;
    height:24px;
  }
  .order-text{
    font-size:11px;
    letter-spacing:0.8px;
  }
  .order-total{
    font-size:12px;
    padding:6px 10px;
    border-radius:10px;
  }
  .order-btn-badge{
    min-width:20px;
    height:20px;
    font-size:10px;
    top:-5px;
    right:-5px;
  }
  .menu-item-card{
    grid-template-columns:1fr;
    gap:12px;
  }
  .menu-item-image-wrapper{
    width:100%;
    height:180px;
  }
  .menu-item-actions{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    width:100%;
  }
}


