/* Kaigan Omakase — tinta, papel washi y bermellón */
:root{
  --bg:#0c0b0a;--fg:#f3ede2;--muted:#a9a194;--surface:#17150f;--line:rgba(243,237,226,.13);
  --accent:#e2553b;--accent-ink:#140806;--gold:#c9a45c;--radius:22px;
  --font-display:"Fraunces",Georgia,serif;--font-body:"Manrope",system-ui,sans-serif;
  --map-filter:grayscale(1) invert(.92) contrast(.9);
  color-scheme:dark;
}
.k-brand{font-family:var(--font-body);font-weight:800;letter-spacing:.32em;font-size:15px}
.hanko{width:34px;height:34px}

/* HERO */
.hero{position:relative;min-height:calc(100svh - 34px);display:grid;align-items:end;overflow:hidden;margin-top:-68px;padding:140px 0 90px;isolation:isolate}
.hero__bg,.hero__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}
.hero__bg img{object-position:62% 40%;transform:scale(1.08);animation:hero-zoom 2.6s cubic-bezier(.2,.8,.2,1) both}
@keyframes hero-zoom{from{transform:scale(1.22);filter:brightness(.4) blur(6px)}}
.hero__ink{position:absolute;inset:0;width:100%;height:100%;z-index:-2;mix-blend-mode:screen;opacity:.85}
.hero__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,11,10,.55) 0%,rgba(12,11,10,.15) 35%,rgba(12,11,10,.85) 82%,var(--bg) 100%),linear-gradient(90deg,rgba(12,11,10,.75),transparent 70%)}
.hero__kanji{position:absolute;right:max(20px,4vw);top:120px;writing-mode:vertical-rl;font-family:var(--font-display);font-size:clamp(60px,9vw,140px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(243,237,226,.35);letter-spacing:.1em;z-index:-1}
.hero__title{font-family:var(--font-display);font-weight:340;font-variation-settings:"opsz" 144;font-size:clamp(46px,8.4vw,128px);line-height:.95;letter-spacing:-.035em;margin:.2em 0 .25em;max-width:12ch}
.hero__sub{font-size:clamp(17px,1.4vw + 10px,22px);max-width:46ch;color:#e3dccf;margin:0 0 30px}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero__chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:34px 0 0}
.hero__chips li{padding:8px 14px;border:1px solid var(--line);border-radius:999px;font-size:13.5px;background:rgba(12,11,10,.35);backdrop-filter:blur(8px)}
.hero__scroll{position:absolute;left:50%;bottom:22px;translate:-50% 0;display:grid;justify-items:center;gap:8px;font-size:11px;letter-spacing:.3em;text-transform:uppercase;text-decoration:none;color:var(--muted)}
.hero__scroll i{width:1px;height:42px;background:linear-gradient(var(--fg),transparent);animation:drip 2.2s ease-in-out infinite}
@keyframes drip{0%{transform:translateY(-40%) scaleY(.15);opacity:0}35%{opacity:1}100%{transform:translateY(45%) scaleY(1);opacity:0}}
@supports (animation-timeline:view()){
  .hero__title{animation:wght linear both;animation-timeline:view();animation-range:exit 0% exit 80%}
  @keyframes wght{to{font-variation-settings:"opsz" 144,"wght" 680;letter-spacing:-.05em;opacity:.2}}
}
@media (max-width:820px){.hero{padding-bottom:80px}.hero__kanji{top:96px;font-size:64px}}

/* OMAKASE horizontal */
.oma{position:relative;height:calc(100vh + var(--oma-len,1800px))}
.oma__pin{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;gap:clamp(18px,3vh,40px);overflow:hidden;padding-top:60px}
.oma__head{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:end}
.oma__head .k-h2{margin-bottom:0}
.oma__price{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0 0;font-weight:700;color:var(--gold)}
.oma__rail{overflow:visible}
.oma__track{display:flex;gap:22px;list-style:none;margin:0;padding:0 max(20px,calc((100vw - 1200px)/2));will-change:transform}
.course{flex:none;width:clamp(260px,28vw,380px);position:relative}
.course__n{position:absolute;top:14px;left:16px;z-index:2;font:700 12px/1 var(--font-body);letter-spacing:.2em;padding:7px 10px;border-radius:999px;background:rgba(12,11,10,.6);backdrop-filter:blur(6px)}
.course__img,.course__art{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.course:hover .course__img{transform:scale(1.03)}
.course h3{font-family:var(--font-display);font-weight:420;font-size:24px;margin:16px 0 4px;line-height:1.15}
.course p{margin:0;color:var(--muted);font-size:15px}
.art-a{background:radial-gradient(circle at 50% 46%,#a8c686 0 18%,transparent 19%),radial-gradient(circle at 42% 40%,#e9f2d9 0 6%,transparent 7%),radial-gradient(circle at 58% 54%,#5d7d3c 0 9%,transparent 10%),radial-gradient(circle at 50% 50%,#1d1a14 0 34%,#26221b 35% 37%,#141210 38%);}
.art-b{background:radial-gradient(circle at 50% 50%,#7fa05a 0 22%,#5f7f40 23% 25%,transparent 26%),radial-gradient(circle at 46% 44%,rgba(255,255,255,.4) 0 3%,transparent 4%),repeating-radial-gradient(circle at 50% 50%,#1a1712 0 6px,#1f1b15 6px 7px)}
.oma__bar{height:2px;background:var(--line);position:relative}
.oma__bar i{position:absolute;inset:0;background:var(--accent);transform-origin:0 50%;transform:scaleX(var(--op,0))}
@media (max-width:900px){.oma__head{grid-template-columns:1fr;gap:6px}.oma__head .k-lead{font-size:16px}}
@media (max-height:880px) and (min-width:900px){.course{width:min(300px,24vw)}.course__img,.course__art{aspect-ratio:1}}
@media (max-width:600px){.course__img,.course__art{aspect-ratio:1}.oma__head .k-h2{font-size:34px}}
/* Sin movimiento: carrusel nativo */
.oma.is-static{height:auto}
.oma.is-static .oma__pin{position:static;height:auto;padding:90px 0}
.oma.is-static .oma__rail{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}
.oma.is-static .course{scroll-snap-align:start}
.oma.is-static .oma__bar{display:none}

/* CARTA */
.sec-head{max-width:760px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:34px 0 26px}
.tabs button{min-height:44px;padding:0 20px;border-radius:999px;border:1px solid var(--line);background:transparent;cursor:pointer;font-weight:650;transition:background .3s,color .3s}
.tabs button[aria-selected="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.menu__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.dish{display:grid;grid-template-columns:1fr auto;gap:6px 18px;padding:22px;border-radius:20px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(243,237,226,.04),transparent);view-transition-class:dish;transition:border-color .3s,transform .4s cubic-bezier(.2,.8,.2,1)}
.dish:hover{border-color:rgba(226,85,59,.5);transform:translateY(-3px)}
.dish h3{margin:0;font-family:var(--font-display);font-weight:450;font-size:21px;line-height:1.2}
.dish p{grid-column:1/-1;margin:0;color:var(--muted);font-size:14.5px}
.dish__price{font-weight:800;color:var(--gold);white-space:nowrap}
.dish__add{grid-column:1/-1;justify-self:start;margin-top:10px;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:transparent;cursor:pointer;font-weight:700;font-size:14px;display:inline-flex;gap:8px;align-items:center;transition:background .25s,color .25s,border-color .25s}
.dish__add:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.dish__add.is-done{background:#2c6b4a;border-color:#2c6b4a;color:#fff}
.dish__tag{grid-column:1/-1;justify-self:start}
::view-transition-group(*.dish){animation-duration:.4s}

/* CHEF */
.chef__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}
.chef__media{position:relative}
.chef__media>img:first-child{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.chef__float{position:absolute;width:48%;right:-6%;bottom:-10%;border-radius:18px;aspect-ratio:1;object-fit:cover;box-shadow:0 30px 70px rgba(0,0,0,.6);border:6px solid var(--bg)}
.chef__grid p{color:#d9d2c5}
@media (max-width:900px){.chef__grid{grid-template-columns:1fr}.chef__float{right:4%;width:42%}}

/* RESERVA */
.book{background:linear-gradient(180deg,transparent,#14110d 20%,#14110d 80%,transparent)}
.book__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(30px,6vw,80px);align-items:start}
.book__img{margin-top:30px;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius)}
.book__form{padding:clamp(20px,3vw,36px);border-radius:28px;background:var(--surface);border:1px solid var(--line);box-shadow:0 40px 100px -40px rgba(0,0,0,.8)}
.lbl,.slots legend{font-size:13px;font-weight:650;letter-spacing:.04em;color:var(--muted);padding:0}
.slots{border:0;margin:0;padding:0}
.slots__row{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.slot{min-height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:transparent;cursor:pointer;font-weight:700;font-variant-numeric:tabular-nums}
.slot[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.stepper{display:flex;align-items:center;justify-content:space-between;min-height:50px;border:1px solid var(--line);border-radius:14px;padding:4px}
.stepper button{width:42px;height:42px;border-radius:10px;border:0;background:rgba(243,237,226,.07);cursor:pointer;font-size:20px}
.stepper output{font-weight:800;font-size:18px}
.book__sum{margin:0;min-height:1.4em;font-weight:700;color:var(--gold)}
@media (max-width:900px){.book__grid{grid-template-columns:1fr}.book__img{display:none}}

/* CLUB */
.club{padding:20px 0 40px}
.club__in{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;padding:clamp(28px,4vw,52px);border-radius:32px;background:radial-gradient(600px 300px at 0% 0%,rgba(226,85,59,.35),transparent 60%),radial-gradient(500px 300px at 100% 100%,rgba(201,164,92,.25),transparent 60%),var(--surface);border:1px solid var(--line)}
.club__t{font-family:var(--font-display);font-weight:400;font-size:clamp(30px,4vw,48px);margin:0}
.club__in p{margin:6px 0 0;color:var(--muted)}
.club__form{display:flex;gap:10px}
.club__form .k-input{flex:1}
@media (max-width:760px){.club__in{grid-template-columns:1fr}.club__form{flex-direction:column}}

/* FAQ / VISITA */
.faq__grid,.visit__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,5vw,70px);align-items:start}
.visit__grid{align-items:center}
.visit__dl{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;margin:0 0 28px}
.visit__dl dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.visit__dl dd{margin:0}
@media (max-width:900px){.faq__grid,.visit__grid{grid-template-columns:1fr}}

/* CARRITO */
.cart-fab{position:fixed;left:50%;bottom:18px;translate:-50% 0;z-index:71;display:flex;align-items:center;gap:12px;min-height:56px;padding:0 22px 0 10px;border-radius:999px;border:0;background:var(--fg);color:var(--bg);font-weight:750;box-shadow:0 20px 50px rgba(0,0,0,.5);cursor:pointer;animation:k-pop .5s cubic-bezier(.2,.8,.2,1)}
.cart-fab[hidden]{display:none}
.cart-fab__n{display:grid;place-items:center;min-width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--accent-ink)}
.cart-fab.bump{animation:bump .45s}
@keyframes bump{40%{transform:scale(1.08)}}
@media (max-width:560px){.cart-fab{left:16px;translate:none;right:86px;justify-content:space-between}}
dialog.cart{margin:0 0 0 auto;height:100dvh;max-height:none;width:min(440px,100%);border:0;padding:0;background:var(--surface);color:var(--fg)}
dialog.cart::backdrop{background:rgba(0,0,0,.55);backdrop-filter:blur(4px)}
dialog.cart[open]{animation:slide .5s cubic-bezier(.2,.8,.2,1)}
@keyframes slide{from{transform:translateX(100%)}}
.cart__in{display:flex;flex-direction:column;gap:16px;height:100%;padding:24px}
.cart__head{display:flex;justify-content:space-between;align-items:center;position:relative}
.cart__head h2{margin:0;font-family:var(--font-display);font-weight:450}
.cart__head .k-sheet__x{position:static}
.cart__list{list-style:none;margin:0;padding:0;display:grid;gap:10px;overflow:auto;flex:1;align-content:start}
.cart__list li{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px;border-radius:14px;border:1px solid var(--line)}
.cart__list .q{display:flex;gap:6px;align-items:center}
.cart__list .q button{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:transparent;cursor:pointer}
.cart__mode{border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:8px}
.cart__mode legend{font-size:13px;color:var(--muted);padding:0 6px}
.cart__mode label{display:flex;gap:10px;align-items:center;cursor:pointer}
.cart__mode input{accent-color:var(--accent);width:18px;height:18px}
.cart__total{display:flex;justify-content:space-between;font-size:20px}
.cart__clear{background:none;border:0;color:var(--muted);text-decoration:underline;cursor:pointer;align-self:center}
.k-stars svg{fill:var(--gold);color:var(--gold)}

/* Escena inmersiva Kaigan */
.k-scene .hero__kanji{z-index:2;top:110px}
.k-scene .hero__title{color:#f3ede2}
.k-scene .k-scene__sub{color:#e3dccf}
.k-scene .hero__chips li{background:rgba(12,11,10,.5)}
.k-scene .k-btn--ghost{color:#f3ede2;border-color:rgba(243,237,226,.4)}
.k-scene__veil{background:linear-gradient(180deg,rgba(12,11,10,.6),rgba(12,11,10,.12) 35%,rgba(12,11,10,.2) 60%,rgba(12,11,10,.9))}
.quick__slots{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.quick__slots .slot{min-height:40px;padding:0 12px;border-radius:10px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;cursor:pointer;font-weight:700;font-variant-numeric:tabular-nums}
.quick__slots .slot[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
@media (max-width:700px){.k-scene .hero__chips{display:none}.k-scene .hero__kanji{display:none}.k-scene__copy--top{top:92px}}
