/* ========================================
   KAERI Nikkei Cuisine — v4
   ======================================== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --bk:#000;--bk2:#060606;--bk3:#0c0c0c;--bk4:#111;
  --gd:#b8965a;--gd-l:#d4b67a;--gd-m:rgba(184,150,90,.10);
  --cr:#f0ebe3;--cr2:#c8c0b4;--gr:#6b6b6b;--wh:#fff;
  --sf:'Cormorant Garamond',Georgia,serif;
  --sn:'Inter','Helvetica Neue',sans-serif;
  --jp:'Noto Serif JP',serif;
  --e:cubic-bezier(.16,1,.3,1);
}
html{scroll-behavior:smooth;font-size:16px;-webkit-font-smoothing:antialiased}
body{font-family:var(--sn);background:var(--bk);color:var(--cr);overflow-x:hidden;line-height:1.7;font-weight:300}
::selection{background:var(--gd);color:var(--bk)}
::-webkit-scrollbar{width:0;display:none}
html{scrollbar-width:none}
a{text-decoration:none;color:inherit}img{max-width:100%;display:block}button{cursor:pointer;font-family:var(--sn)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* === PRELOADER === */
@property --enso-angle{syntax:'<angle>';initial-value:0deg;inherits:false}

.preloader{position:fixed;inset:0;background:var(--bk);z-index:10000;display:flex;align-items:center;justify-content:center;flex-direction:column;padding-bottom:30px}
.preloader.done{animation:preOut 1.8s var(--e) forwards}
@keyframes preOut{to{opacity:0;visibility:hidden;pointer-events:none}}

/* Symbol container (ensō + chakana stacked) */
.pre-symbol{position:relative;width:202px;height:202px}

/* Layer 1: Ensō — circular brush reveal starting at 6 o'clock (180deg) */
.pre-enso{position:absolute;inset:0;opacity:0;animation:ensoFadeIn .4s ease .3s forwards}
.pre-enso img{
  width:100%;height:100%;object-fit:contain;
  --enso-angle:0deg;
  -webkit-mask-image:conic-gradient(from 180deg,#000 var(--enso-angle),transparent 0deg);
  mask-image:conic-gradient(from 180deg,#000 var(--enso-angle),transparent 0deg);
  animation:ensoPaint 3s cubic-bezier(.25,.46,.45,.94) .5s forwards;
}
@keyframes ensoFadeIn{to{opacity:1}}
@keyframes ensoPaint{to{--enso-angle:360deg}}

/* Layer 2: Chakana — simple fade in */
.pre-chakana{
  position:absolute;
  top:0%;left:0%;width:100%;height:100%;
  opacity:0;animation:chakanaAppear 3s ease .8s forwards;
}
.pre-chakana img{width:100%;height:100%;object-fit:contain}
@keyframes chakanaAppear{to{opacity:1}}


/* === NAVBAR === */
.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;padding:30px 60px;display:flex;align-items:center;justify-content:space-between;transition:all .6s var(--e);background:transparent}
.navbar.scrolled{background:transparent;backdrop-filter:blur(15px);padding:18px 60px}
.nav-logo-img{height:50px;width:auto;object-fit:contain;transition:all .4s var(--e);filter:brightness(1.1)}
.navbar.scrolled .nav-logo-img{height:38px}

.nav-links{display:flex;list-style:none;gap:45px;align-items:center}
.nav-links a{font-size:.72rem;letter-spacing:3.5px;text-transform:uppercase;color:rgba(255,255,255,.95);padding:6px 0;transition:color .4s;font-weight:300;position:relative}
.nav-links a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:.5px;background:var(--gd);transition:width .5s var(--e)}
.nav-links a:hover{color:var(--wh)}
.nav-links a:hover::after{width:100%}

.nav-right{display:flex;align-items:center;gap:20px}
.cart-badge{width:20px;height:20px;background:var(--bk);color:var(--gd);font-size:.55rem;font-weight:600;border-radius:50%;display:none;align-items:center;justify-content:center}
.cart-badge.vis{display:flex}
.cart-badge.bump{animation:pop .4s var(--e)}
@keyframes pop{50%{transform:scale(1.5)}}

.hamburger{display:none;flex-direction:column;gap:6px;cursor:pointer;z-index:1001;padding:5px}
.hamburger span{width:24px;height:1px;background:var(--cr);transition:all .4s var(--e)}
.hamburger.on span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.on span:nth-child(2){opacity:0}
.hamburger.on span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

/* === HERO === */
.hero{position:relative;height:100vh;min-height:700px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--bk)}
.hero-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;background-repeat:no-repeat;transition:opacity 1s}
.hero-bg video{width:100%;height:100%;object-fit:cover}
.hero-bg img{width:100%;height:100%;object-fit:cover}

/* Smoke layers */
.hero-smoke{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.smoke-l{position:absolute;width:100%;height:100%;filter:blur(70px);animation:sd1 10s ease-in-out infinite alternate}
.smoke-l:nth-child(1){background:radial-gradient(ellipse at 50% 60%,rgba(184,150,90,.1) 0%,transparent 60%)}
.smoke-l:nth-child(2){background:radial-gradient(ellipse at 30% 70%,rgba(139,69,19,.1) 0%,transparent 50%);filter:blur(90px);animation:sd2 12s ease-in-out infinite alternate}
.smoke-l:nth-child(3){background:radial-gradient(ellipse at 70% 40%,rgba(184,150,90,.07) 0%,transparent 55%);filter:blur(50px);animation:sd3 8s ease-in-out infinite alternate}
@keyframes sd1{from{transform:translate(0,0) scale(1)}to{transform:translate(-30px,20px) scale(1.1)}}
@keyframes sd2{from{transform:translate(0,0) scale(1.05)}to{transform:translate(40px,-30px) scale(1)}}
@keyframes sd3{from{transform:translate(0,0);opacity:.5}to{transform:translate(-20px,40px);opacity:1}}

#emberCanvas{position:absolute;inset:0;z-index:2;pointer-events:none}

.hero-overlay{position:absolute;inset:0;z-index:3;background:linear-gradient(to bottom,rgba(0,0,0,.5) 0%,rgba(0,0,0,.1) 40%,rgba(0,0,0,.4) 75%,rgba(0,0,0,1) 100%)}
.hero::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:120px;z-index:5;background:linear-gradient(to bottom,transparent,#000);pointer-events:none}
.hero-content{position:relative;z-index:4;text-align:center;max-width:800px;padding:0 20px}
.hero-title{font-family:var(--sf);font-size:clamp(3.5rem,8vw,7rem);font-weight:300;letter-spacing:18px;color:var(--wh);text-transform:uppercase;line-height:1;margin-bottom:15px;opacity:0;animation:ht 2.5s var(--e) 5s forwards}
.hero-jp{font-family:var(--jp);font-size:1.24rem;color:var(--gd-l);letter-spacing:8px;font-weight:300;margin-bottom:35px;opacity:0;animation:hjp 2s var(--e) 5.4s forwards}

.hero-symbols{display:flex;justify-content:center;align-items:center;gap:40px;margin-bottom:35px;opacity:0;animation:hsym 2s var(--e) 5.7s forwards}
.hero-sym{text-align:center}
.hero-sym-char{font-family:var(--jp);font-size:2.08rem;color:var(--gd-l);font-weight:300}
.hero-sym-label{font-size:.65rem;letter-spacing:3px;text-transform:uppercase;color:var(--gr);margin-top:5px}
.hero-sym-div{width:30px;height:.5px;background:rgba(184,150,90,.3);transform:rotate(-60deg)}

.hero-philosophy{font-family:var(--sf);font-size:clamp(1.24rem,1.95vw,1.5rem);font-style:italic;color:var(--cr2);font-weight:300;line-height:1.9;max-width:500px;margin:0 auto 40px;opacity:0;animation:hph 2s var(--e) 6s forwards}
.hero-cta{display:inline-block;border:1px solid rgba(184,150,90,.4);color:var(--cr);padding:15px 50px;font-size:.78rem;letter-spacing:4px;text-transform:uppercase;transition:all .6s var(--e);background:transparent;font-family:var(--sn);font-weight:400;opacity:0;animation:hcta 2s var(--e) 6.3s forwards}
.hero-cta:hover{background:var(--gd);border-color:var(--gd);color:var(--bk);letter-spacing:6px}

/* Hero title — scale down + letter-spacing cinch + slight blur clear */
@keyframes ht{from{opacity:0;transform:translateY(40px) scale(1.15);letter-spacing:35px;filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);letter-spacing:18px;filter:blur(0)}}
/* Subtitle — slide up with slight scale */
@keyframes hjp{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
/* Symbols — fade in with spread from center */
@keyframes hsym{from{opacity:0;transform:translateY(15px);letter-spacing:8px}to{opacity:1;transform:translateY(0);letter-spacing:0}}
/* Philosophy — gentle rise with slight blur */
@keyframes hph{from{opacity:0;transform:translateY(20px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
/* CTA — scale up from small */
@keyframes hcta{from{opacity:0;transform:translateY(15px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}

.hero-scroll{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);z-index:4;opacity:0;animation:hcta 1.5s var(--e) 6.7s forwards}
.hero-scroll .ln{width:1px;height:45px;margin:0 auto;position:relative;overflow:hidden}
.hero-scroll .ln::after{content:'';position:absolute;top:-45px;left:0;width:1px;height:45px;background:var(--gd);animation:scrl 2s ease infinite}
@keyframes scrl{0%{top:-45px}100%{top:45px}}


/* === SHARED === */
.sec{padding:120px 8%;position:relative}
.sec-eye{font-size:.58rem;letter-spacing:5px;text-transform:uppercase;color:var(--gd);margin-bottom:18px;font-weight:400;display:block}
.sec-h{font-family:var(--sf);font-size:clamp(2rem,4vw,3rem);font-weight:300;color:var(--wh);line-height:1.2;margin-bottom:20px;letter-spacing:2px}
.sec-p{color:var(--cr2);max-width:550px;line-height:1.9;font-weight:300;font-size:.88rem}
.g-line{width:45px;height:.5px;background:var(--gd);margin:25px 0}
.g-line-c{width:45px;height:.5px;background:var(--gd);margin:25px auto}
.tc{text-align:center}

/* Depth texture overlay for sections */
.sec-depth{position:relative}
.sec-depth::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 30%,rgba(184,150,90,.03) 0%,transparent 50%);pointer-events:none}


/* === MENU CATEGORIES === */
.menu-cats{background:transparent;padding:100px 8%;position:relative}
.menu-cats-top{text-align:center;margin-bottom:70px}
.menu-cats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;max-width:1000px;margin:0 auto}
.mcat{
  background:var(--bk2);padding:45px 20px;text-align:center;cursor:pointer;
  transition:all .5s var(--e);position:relative;overflow:hidden;
  border:1px solid rgba(184,150,90,.06);
}
.mcat::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(184,150,90,.04) 0%,transparent 70%);opacity:0;transition:opacity .5s}
.mcat:hover::before,.mcat.active::before{opacity:1}
.mcat:hover,.mcat.active{background:var(--bk3);border-color:rgba(184,150,90,.15)}
.mcat.active::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:30px;height:1px;background:var(--gd)}
.mcat-icon{width:120px;height:120px;margin:0 auto 25px}
.mcat-icon svg{width:100%;height:100%}
.mcat-name{font-family:var(--sf);font-size:1.1rem;color:var(--gd-l);letter-spacing:3px;text-transform:uppercase;font-weight:400;transition:color .3s}
.mcat:hover .mcat-name{color:var(--wh)}
.btn-ver-todo{padding:14px 45px;border:1px solid rgba(184,150,90,.3);color:var(--cr2);font-size:.6rem;letter-spacing:4px;text-transform:uppercase;background:transparent;font-family:var(--sn);font-weight:400;transition:all .5s var(--e)}
.btn-ver-todo:hover,.btn-ver-todo.active{background:var(--gd);border-color:var(--gd);color:var(--bk);letter-spacing:5px}

/* === MENU ITEMS === */
.menu-sec{background:var(--bk);padding:80px 5% 120px;position:relative}
.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1px;max-width:1100px;margin:0 auto;background:rgba(184,150,90,.04)}
.m-card{background:var(--bk2);padding:38px 32px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;transition:background .5s;position:relative;overflow:hidden}
.m-card::before{content:'';position:absolute;top:0;left:0;width:0;height:100%;background:rgba(184,150,90,.02);transition:width .6s var(--e)}
.m-card:hover::before{width:100%}
.m-card:hover{background:var(--bk3)}
.m-badge{position:absolute;top:12px;right:12px;font-size:.45rem;letter-spacing:2px;text-transform:uppercase;color:var(--gd);border:.5px solid var(--gd-m);padding:3px 10px}
.m-body{flex:1;position:relative;z-index:1}
.m-name{font-family:var(--sf);font-size:1.2rem;font-weight:400;color:var(--wh);margin-bottom:7px;letter-spacing:1px}
.m-desc{font-size:.75rem;color:var(--gr);line-height:1.7;font-weight:300;max-width:270px}
.m-right{display:flex;flex-direction:column;align-items:flex-end;gap:14px;position:relative;z-index:1}
.m-price{font-family:var(--sf);font-size:1.15rem;color:var(--gd-l);font-weight:400;white-space:nowrap}
.m-add{width:34px;height:34px;border:.5px solid rgba(184,150,90,.25);background:transparent;color:var(--gd);font-size:.95rem;display:flex;align-items:center;justify-content:center;transition:all .4s var(--e);font-weight:300}
.m-add:hover,.m-add.added{background:var(--gd);color:var(--bk);border-color:var(--gd)}
.m-add.added{animation:pop .4s var(--e)}

/* === GALLERY (static grid like Clay) === */
.gallery-sec{background:var(--bk);padding:0;overflow:hidden}
.gallery-top{text-align:center;padding:100px 8% 50px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}
.gallery-item{aspect-ratio:1/1;overflow:hidden;position:relative;background:var(--bk3)}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--e);will-change:transform}
.gallery-overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;padding:20px;opacity:0;transition:opacity .5s var(--e);pointer-events:none}
.gallery-item:hover .gallery-overlay{opacity:1;pointer-events:auto}
.gallery-name{font-family:var(--sf);font-size:clamp(1.3rem,2.5vw,1.8rem);color:#d4a843;letter-spacing:5px;text-transform:uppercase;font-weight:400;text-align:center;line-height:1.5;text-shadow:0 2px 15px rgba(0,0,0,.8),0 0 30px rgba(184,150,90,.3)}
.gallery-cart{display:flex;align-items:center;gap:12px}
.gc-btn{width:32px;height:32px;border-radius:50%;border:1px solid rgba(184,150,90,.5);background:rgba(0,0,0,.5);color:var(--gd-l);font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s var(--e);line-height:1}
.gc-btn:hover{background:var(--gd);color:var(--bk);border-color:var(--gd);transform:scale(1.15)}
.gc-qty{font-family:var(--sn);font-size:.85rem;color:var(--cr);min-width:20px;text-align:center;font-weight:500;letter-spacing:1px}

/* === EVENTS === */
.events-sec{background:var(--bk)}
.events-sec::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 30%,rgba(184,150,90,.03) 0%,transparent 50%);pointer-events:none}
.events-top{text-align:center;max-width:700px;margin:0 auto 50px}
.events-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1100px;margin:0 auto 60px}
.ev-photo{aspect-ratio:9/16;overflow:hidden;position:relative;background:var(--bk3);border:1px solid rgba(184,150,90,.06);transition:border-color .4s}
.ev-photo:hover{border-color:rgba(184,150,90,.2)}
.ev-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--e)}
.ev-photo:hover img{transform:scale(1.04)}
.ev-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--bk3) 0%,rgba(184,150,90,.03) 50%,var(--bk3) 100%)}
.events-bottom{max-width:800px;margin:0 auto}
.ev-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(184,150,90,.05)}
.ev-card{background:var(--bk2);padding:22px 20px;transition:background .4s}
.ev-card:hover{background:var(--bk3)}
.ev-card h4{font-family:var(--sf);font-size:.95rem;color:var(--wh);font-weight:400;margin-bottom:6px}
.ev-card p{font-size:.7rem;color:var(--gr);line-height:1.6;font-weight:300}
.btn-reserva{display:inline-block;margin-top:40px;padding:16px 45px;border:1px solid rgba(184,150,90,.4);color:var(--cr);font-size:.65rem;letter-spacing:4px;text-transform:uppercase;transition:all .6s var(--e);background:transparent;font-family:var(--sn);font-weight:400}
.btn-reserva:hover{background:var(--gd);border-color:var(--gd);color:var(--bk);letter-spacing:5px}

/* === CONTACT === */
.contact-sec{background:var(--bk);text-align:center;overflow:hidden}
.contact-sec::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(184,150,90,.14) 0%,transparent 55%);pointer-events:none;filter:blur(50px);animation:sd1 10s ease-in-out infinite alternate}
.contact-inner{max-width:550px;margin:0 auto;position:relative;z-index:1}
.contact-btns{display:flex;justify-content:center;gap:12px;margin-top:45px}
.c-btn{padding:14px 35px;border:.5px solid rgba(184,150,90,.25);font-size:.6rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--cr2);transition:all .5s var(--e);font-weight:400;background:transparent}
.c-btn:hover{background:var(--gd);border-color:var(--gd);color:var(--bk)}
.c-btn.wa{border-color:#25d366;color:#25d366}
.c-btn.wa:hover{background:#25d366;color:var(--wh)}
.contact-hrs{margin-top:55px;padding:35px;border:.5px solid rgba(184,150,90,.06);display:inline-block}
.contact-hrs h4{font-family:var(--sf);font-size:.95rem;font-weight:400;color:var(--wh);letter-spacing:3px;text-transform:uppercase;margin-bottom:15px}
.contact-hrs p{font-size:.78rem;color:var(--gr);line-height:2;font-weight:300}
.contact-hrs .note{margin-top:12px;font-size:.65rem;color:var(--gd);letter-spacing:1px}

/* === HISTORY === */
.history-sec{background:var(--bk)}
.history-sec::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 20% 70%,rgba(184,150,90,.03) 0%,transparent 50%);pointer-events:none}
.history-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;max-width:1100px;margin:0 auto;align-items:center}
.history-visual{position:relative}
.history-visual .img-w{position:relative;overflow:hidden;aspect-ratio:3/4}
.history-visual .img-w img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e)}
.history-visual:hover .img-w img{transform:scale(1.03)}
.history-visual .frame{position:absolute;top:18px;left:18px;right:-18px;bottom:-18px;border:.5px solid var(--gd-m);pointer-events:none}
.history-quote{font-family:var(--sf);font-size:clamp(1.1rem,2vw,1.4rem);font-style:italic;font-weight:300;color:var(--cr);line-height:2;margin-top:30px}
.history-jp{font-family:var(--jp);font-size:.75rem;color:rgba(184,150,90,.5);margin-top:30px;letter-spacing:3px}
.history-sec .sec-p{position:relative;padding-left:20px;border-left:1px solid rgba(184,150,90,.15)}
.history-sec .sec-p::before{content:'';position:absolute;left:-3px;top:0;width:5px;height:5px;border-radius:50%;background:var(--gd)}

/* === FOOTER SMOKE (same as hero) === */
.footer-smoke{position:relative;width:100%;min-height:300px;overflow:hidden;background:var(--bk);display:flex;flex-direction:column;justify-content:flex-end}
.footer-smoke .fs-smoke{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.footer-smoke .fs-l{position:absolute;width:100%;height:100%}
.footer-smoke .fs-l:nth-child(1){background:radial-gradient(ellipse at 50% 60%,rgba(184,150,90,.1) 0%,transparent 60%);filter:blur(70px);animation:sd1 10s ease-in-out infinite alternate}
.footer-smoke .fs-l:nth-child(2){background:radial-gradient(ellipse at 30% 70%,rgba(139,69,19,.1) 0%,transparent 50%);filter:blur(90px);animation:sd2 12s ease-in-out infinite alternate}
.footer-smoke .fs-l:nth-child(3){background:radial-gradient(ellipse at 70% 40%,rgba(184,150,90,.07) 0%,transparent 55%);filter:blur(50px);animation:sd3 8s ease-in-out infinite alternate}
.footer-smoke canvas{position:absolute;inset:0;pointer-events:none}

/* === FOOTER === */
.footer{background:transparent;border-top:.5px solid rgba(184,150,90,.06);padding:45px 8%;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:10}
.ft-left{display:flex;flex-direction:column;gap:3px}
.ft-brand{font-family:var(--sf);font-size:1rem;letter-spacing:6px;color:rgba(255,255,255,.95);text-transform:uppercase;font-weight:400}
.ft-sub{font-size:.5rem;letter-spacing:3px;color:rgba(255,255,255,.6);text-transform:uppercase}
.ft-center{font-size:.55rem;color:rgba(255,255,255,.6);letter-spacing:1.5px}
.ft-right{display:flex;gap:22px}
.ft-link{font-size:.55rem;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.7);transition:color .3s;font-weight:400;display:flex;align-items:center;gap:6px}
.ft-link svg{flex-shrink:0}
.ft-link:hover{color:var(--gd)}

/* === CART === */
.cart-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:2000;opacity:0;visibility:hidden;transition:all .4s;backdrop-filter:blur(5px)}
.cart-overlay.open{opacity:1;visibility:visible}
.cart-panel{position:fixed;top:0;right:0;width:420px;max-width:92vw;height:100vh;background:var(--bk2);z-index:2001;display:flex;flex-direction:column;border-left:.5px solid rgba(184,150,90,.08);transform:translateX(100%);transition:transform .5s var(--e)}
.cart-panel.open{transform:translateX(0)}
.cart-top{padding:28px 32px;border-bottom:.5px solid rgba(184,150,90,.06);display:flex;align-items:center;justify-content:space-between}
.cart-top h3{font-family:var(--sf);font-size:1rem;font-weight:400;letter-spacing:4px;text-transform:uppercase;color:var(--wh)}
.cart-x{background:none;border:none;color:var(--cr2);font-size:.6rem;letter-spacing:2px;text-transform:uppercase;transition:color .3s}
.cart-x:hover{color:var(--gd)}
.cart-body{flex:1;overflow-y:auto;padding:20px 32px}
.cart-empty{text-align:center;padding:50px 0}
.cart-empty p{color:var(--gr);font-size:.78rem;font-weight:300}
.cart-empty .sub{font-size:.65rem;margin-top:8px;color:rgba(107,107,107,.5)}
.cart-item{display:flex;gap:18px;padding:18px 0;border-bottom:.5px solid rgba(255,255,255,.03)}
.cart-item:last-child{border-bottom:none}
.cart-i-info{flex:1}
.cart-i-name{font-family:var(--sf);font-size:.9rem;color:var(--wh);font-weight:400;margin-bottom:3px}
.cart-i-unit{font-size:.68rem;color:var(--gd-l);font-weight:300}
.cart-i-ctrls{display:flex;align-items:center;gap:10px;margin-top:10px}
.cart-i-ctrls button{width:22px;height:22px;border:.5px solid rgba(184,150,90,.2);background:transparent;color:var(--cr2);font-size:.65rem;display:flex;align-items:center;justify-content:center;transition:all .3s}
.cart-i-ctrls button:hover{border-color:var(--gd);color:var(--gd)}
.cart-i-ctrls span{font-size:.78rem;min-width:16px;text-align:center}
.cart-rm{background:none!important;border:none!important;width:auto!important;height:auto!important;color:var(--gr)!important;font-size:.55rem!important;letter-spacing:1px;text-transform:uppercase;margin-left:8px}
.cart-rm:hover{color:#cc3333!important}
.cart-i-sub{font-family:var(--sf);font-size:.95rem;color:var(--gd-l);padding-top:2px}
.cart-bot{padding:28px 32px;border-top:.5px solid rgba(184,150,90,.06)}
.cart-tot{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.cart-tot-l{font-size:.6rem;letter-spacing:3px;text-transform:uppercase;color:var(--gr)}
.cart-tot-v{font-family:var(--sf);font-size:1.3rem;color:var(--gd);font-weight:400}
.cart-acts{display:flex;flex-direction:column;gap:8px}
.cart-btn{width:100%;padding:14px;border:none;font-size:.58rem;letter-spacing:3px;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .4s var(--e);font-weight:400;font-family:var(--sn)}
.cart-btn.wa{background:#25d366;color:white}
.cart-btn.wa:hover{background:#1ebe5c}
.cart-btn.ig{background:transparent;border:.5px solid rgba(184,150,90,.25);color:var(--cr2)}
.cart-btn.ig:hover{background:var(--gd);border-color:var(--gd);color:var(--bk)}

/* === TOAST === */
.toast{position:fixed;bottom:35px;left:50%;transform:translateX(-50%) translateY(30px);background:var(--bk2);border:.5px solid var(--gd-m);color:var(--cr);padding:14px 36px;font-size:.7rem;letter-spacing:1px;z-index:3000;opacity:0;transition:all .5s var(--e);pointer-events:none}
.toast.vis{opacity:1;transform:translateX(-50%) translateY(0)}

/* === FLOAT BUTTONS === */
.pedido-float,.wa-float{
  position:fixed;right:28px;z-index:900;
  display:flex;align-items:center;justify-content:center;gap:10px;
  min-width:170px;padding:13px 26px;border:none;
  font-size:.58rem;letter-spacing:3px;text-transform:uppercase;font-weight:500;
  transition:all .5s var(--e);opacity:0;transform:translateY(20px);
  font-family:var(--sn);
}
.pedido-float{bottom:28px;background:var(--gd);color:var(--bk);box-shadow:0 4px 30px rgba(184,150,90,.3)}
.wa-float{bottom:76px;background:#25d366;color:white;box-shadow:0 4px 30px rgba(37,211,102,.3)}
.pedido-float.vis,.wa-float.vis{opacity:1;transform:translateY(0)}
.pedido-float:hover{background:var(--gd-l);box-shadow:0 6px 40px rgba(184,150,90,.5)}
.wa-float:hover{background:#1ebe5c;box-shadow:0 6px 40px rgba(37,211,102,.5)}
.pedido-float .cart-badge{background:var(--bk);color:var(--gd)}
.wa-float svg{width:18px;height:18px;fill:currentColor}

/* === DOT NAV === */
.dot-nav{position:fixed;right:24px;top:50%;transform:translateY(-50%);z-index:999;display:flex;flex-direction:column;gap:22px;align-items:center}
.dot-nav a{display:block;width:11px;height:11px;border-radius:50%;border:2px solid rgba(184,150,90,.6);background:transparent;transition:all .4s var(--e);position:relative;box-shadow:0 0 6px rgba(184,150,90,.15)}
.dot-nav a:hover,.dot-nav a.active{background:var(--gd);border-color:var(--gd);transform:scale(1.4);box-shadow:0 0 12px rgba(184,150,90,.5)}
.dot-nav a .dot-label{position:absolute;right:26px;top:50%;transform:translateY(-50%);font-size:.55rem;letter-spacing:2px;text-transform:uppercase;color:var(--gd-l);white-space:nowrap;opacity:0;transition:opacity .3s;pointer-events:none;font-family:var(--sn);font-weight:500}
.dot-nav a:hover .dot-label,.dot-nav a.active .dot-label{opacity:1}

/* === MUSIC TOGGLE === */
.music-toggle{
  position:fixed;bottom:28px;left:28px;z-index:900;
  width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(184,150,90,.4);background:rgba(0,0,0,.6);
  backdrop-filter:blur(10px);color:var(--gd);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .4s var(--e);opacity:0;transform:translateY(10px);
}
.music-toggle.vis{opacity:1;transform:translateY(0)}
.music-toggle:hover{background:rgba(184,150,90,.15);border-color:var(--gd);box-shadow:0 0 15px rgba(184,150,90,.3)}
.music-toggle svg{width:20px;height:20px}
.music-toggle .ico-off{display:none}
.music-toggle.muted .ico-on{display:none}
.music-toggle.muted .ico-off{display:block}

/* === REVEAL === */
.rv{opacity:0;transform:translateY(45px);transition:opacity 1s var(--e),transform 1s var(--e)}
.rv.in{opacity:1;transform:translateY(0)}
.rv-d1{transition-delay:.15s}.rv-d2{transition-delay:.3s}

/* === RESPONSIVE === */
@media(max-width:1024px){
  .nav-links{position:fixed;top:0;right:-100%;width:100%;height:100vh;background:var(--bk);flex-direction:column;justify-content:center;align-items:center;gap:30px;transition:right .5s var(--e)}
  .nav-links.open{right:0}
  .nav-links a{font-size:.85rem;letter-spacing:4px}
  .hamburger{display:flex}
  .dot-nav{display:none}
  .history-layout{grid-template-columns:1fr;gap:50px}
  .history-visual{max-width:420px;margin:0 auto}
  .events-photos{grid-template-columns:repeat(2,1fr);gap:15px}
  .menu-cats-grid{grid-template-columns:1fr 1fr}
  .menu-grid{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .footer{flex-direction:column;gap:18px;text-align:center}
  .ft-right{justify-content:center}
}
@media(max-width:640px){
  .navbar{padding:16px 20px}
  .navbar.scrolled{padding:12px 20px}
  .sec{padding:80px 6%}
  .menu-cats{padding:70px 6%}
  .menu-cats-grid{grid-template-columns:1fr 1fr}
  .mcat{padding:30px 15px}
  .mcat-icon{width:80px;height:80px}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .events-photos{grid-template-columns:repeat(2,1fr);gap:10px}
  .ev-grid{grid-template-columns:1fr}
  .contact-btns{flex-direction:column;align-items:center}
  .c-btn{width:100%;max-width:260px;text-align:center}
  .hero-title{letter-spacing:10px}
  .hero-symbols{gap:25px}
  .pedido-float,.wa-float{right:18px;min-width:150px;padding:12px 20px;font-size:.55rem}
  .pedido-float{bottom:18px}
  .wa-float{bottom:65px}
}
