/* Asian BBQ Bistro — trogen migrering från asianbbqbistro.se (HighLevel) */
:root{
  --bg:#0b0d12;
  --card:#171a20;
  --line:#232832;
  --ink:#e7eaf0;
  --muted:#9aa3af;
  --gold:#d4af37;
  --gold-deep:#8c6b15;
  --coral:#e34d45;
  --white:#ffffff;
  --font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --font-display:'Bebas Neue',var(--font);
  --nav-h:64px;
  --ease:cubic-bezier(.2,.65,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font);font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:var(--gold)}
h1,h2,h3{line-height:1.12;margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
[id]{scroll-margin-top:calc(var(--nav-h) + 24px)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px}
@media(max-width:560px){.wrap{padding:0 20px}}

/* ---------- Nav ---------- */
.nav-brand{
  position:fixed;top:14px;left:16px;z-index:60;
  display:flex;align-items:center;gap:10px;
  padding:6px 12px 6px 6px;border-radius:9999px;
  background:rgba(0,0,0,.34);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.12);
  text-decoration:none;color:var(--white);
  transition:background .2s var(--ease);
}
.nav-brand:hover{background:rgba(0,0,0,.55)}
.nav-brand img{height:44px;width:auto}
.nav-brand span{font-size:13px;font-weight:600;letter-spacing:.04em}
@media(max-width:720px){.nav-brand span{display:none}.nav-brand{padding:5px}}
.topnav{
  position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:60;
  display:flex;gap:4px;align-items:center;padding:7px;border-radius:9999px;
  background:rgba(0,0,0,.32);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.12);
  transition:background .25s var(--ease),box-shadow .25s var(--ease),top .25s var(--ease);
}
.topnav.scrolled{background:rgba(11,13,18,.88);box-shadow:0 8px 30px rgba(0,0,0,.45);top:10px}
.topnav a{
  color:#f2f4f8;text-decoration:none;font-size:13.5px;font-weight:600;letter-spacing:.02em;
  padding:9px 15px;border-radius:9999px;white-space:nowrap;
  transition:background .18s var(--ease),color .18s var(--ease);
}
.topnav a:hover{background:rgba(255,255,255,.12)}
.topnav a.nav-cta{background:var(--gold);color:#141005}
.topnav a.nav-cta:hover{background:#e2c34f}
@media(max-width:860px){.topnav{display:none}}

/* Mobil-meny */
.nav-toggle{
  display:none;position:fixed;top:16px;right:16px;z-index:70;
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  cursor:pointer;align-items:center;justify-content:center;
}
.nav-toggle svg{display:block}
@media(max-width:860px){.nav-toggle{display:flex}}
body.menu-open .nav-toggle{opacity:0;pointer-events:none}
.mobile-menu{
  position:fixed;inset:0;z-index:80;background:rgba(11,13,18,.97);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  opacity:0;pointer-events:none;transition:opacity .25s var(--ease);
}
body.menu-open .mobile-menu{opacity:1;pointer-events:auto}
.mobile-menu a{
  color:var(--ink);text-decoration:none;font-size:26px;font-weight:700;padding:12px 24px;border-radius:14px;
}
.mobile-menu a:active{background:rgba(255,255,255,.08)}
.mobile-menu a.nav-cta{margin-top:16px;background:var(--gold);color:#141005;font-size:18px;padding:14px 30px;border-radius:9999px}
.mobile-close{
  position:absolute;top:16px;right:16px;width:46px;height:46px;border-radius:50%;
  border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);
  color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;
}

/* ---------- Knappar ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 26px;border-radius:9999px;border:0;cursor:pointer;
  font-family:var(--font);font-size:15px;font-weight:700;letter-spacing:.01em;
  text-decoration:none;transition:transform .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease);
}
.btn svg{transition:transform .18s var(--ease)}
@media(hover:hover){
  .btn:hover{transform:translateY(-2px)}
  .btn:hover svg{transform:translateX(3px)}
}
.btn:active{transform:translateY(0) scale(.98);transition-duration:.09s}
.btn-white{background:var(--white);color:#111}
.btn-white:hover{box-shadow:0 10px 26px rgba(0,0,0,.4)}
.btn-outline{background:transparent;color:var(--white);border:1.5px solid rgba(255,255,255,.55)}
.btn-outline:hover{border-color:var(--white);background:rgba(255,255,255,.08)}
.btn-gold{background:var(--gold);color:#141005}
.btn-gold:hover{background:#e2c34f;box-shadow:0 10px 26px rgba(0,0,0,.45)}

/* ---------- Sektioner & typografi ---------- */
.section{padding:104px 0}
@media(max-width:720px){.section{padding:56px 0}}
.kicker{
  display:flex;align-items:center;gap:14px;
  color:var(--gold);font-size:13px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
}
.kicker::after{content:"";flex:0 0 56px;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}
h2.sect-title{font-size:clamp(28px,4.4vw,44px);font-weight:800;color:var(--white);margin-top:14px}

/* ---------- Scroll-reveal ---------- */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal-d1{transition-delay:.08s}
.js .reveal-d2{transition-delay:.16s}
.js .reveal-d3{transition-delay:.24s}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}
/* Hero-stagger (radvis) */
.js .stag>*{opacity:0;transform:translateY(18px);animation:stagIn .7s var(--ease) forwards}
.js .stag>*:nth-child(1){animation-delay:.05s}
.js .stag>*:nth-child(2){animation-delay:.15s}
.js .stag>*:nth-child(3){animation-delay:.25s}
.js .stag>*:nth-child(4){animation-delay:.35s}
@keyframes stagIn{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.js .stag>*{opacity:1;transform:none;animation:none}}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;isolation:isolate}
.hero-slider{position:absolute;inset:0;z-index:-2}
.hero-slide{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transform:scale(1.05);
  transition:opacity .9s ease,transform 5.5s ease;will-change:opacity,transform;
}
.hero-slide.active{opacity:1;transform:scale(1)}
@media(prefers-reduced-motion:reduce){.hero-slide{transform:none;transition:opacity .5s ease}}
.hero-overlay{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(11,13,18,.35) 0%,rgba(0,0,0,0) 40%),
    linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(11,13,18,.72) 100%),
    radial-gradient(120% 100% at 22% 32%,rgba(0,0,0,.55) 0%,rgba(0,0,0,.2) 55%,rgba(0,0,0,.5) 100%);
}
.hero-inner{width:100%;padding-top:120px;padding-bottom:140px}
.hero h1{font-size:clamp(44px,7.4vw,96px);font-weight:800;color:var(--white);letter-spacing:-.015em;max-width:9ch}
.hero .lead{margin-top:26px;max-width:46ch;color:#eef1f6;font-size:clamp(15px,1.4vw,18px)}
.hero .hero-cta{margin-top:34px}
@media(max-width:720px){.hero-inner{padding-top:104px;padding-bottom:120px}.hero .lead{margin-top:18px}.hero .hero-cta{margin-top:26px}}

/* Slider-kontroller */
.hero-dots{position:absolute;left:32px;bottom:26px;display:flex;gap:8px;z-index:2}
.hero-dots button{
  width:30px;height:25px;border-radius:99px;border:0;cursor:pointer;
  background:rgba(255,255,255,.35);transition:background .2s;
  padding:10px 2px;background-clip:content-box;
}
.hero-dots button.on{background:var(--white);background-clip:content-box}
.hero-arrows{position:absolute;top:20px;right:76px;display:flex;gap:8px;z-index:2}
.hero-arrows button{
  width:40px;height:40px;border-radius:50%;cursor:pointer;
  border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.25);color:var(--white);
  display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s;
}
.hero-arrows button:hover{background:rgba(0,0,0,.5);border-color:rgba(255,255,255,.6)}
@media(max-width:860px){.hero-arrows{display:none}.hero-dots{left:20px}}

/* Infokort (öppettider) */
.hero-card{
  position:absolute;right:40px;bottom:40px;z-index:2;width:min(320px,calc(100vw - 40px));
  background:rgba(15,17,22,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:16px;padding:20px 22px;
}
.hero-card h2{font-size:16px;font-weight:700;color:var(--white)}
.hero-card .oppet{margin-top:10px;font-size:13.5px;color:var(--muted)}
.hero-card .oppet strong{color:var(--ink);font-weight:600}
.hero-card .oppet div{display:flex;justify-content:space-between;gap:16px;padding:2px 0;font-variant-numeric:tabular-nums}
.hero-card .card-link{
  display:inline-flex;align-items:center;gap:6px;margin-top:14px;
  color:var(--gold);font-size:13.5px;font-weight:700;text-decoration:none;border-bottom:1px solid transparent;
  transition:border-color .18s;
}
.hero-card .card-link:hover{border-color:var(--gold)}
/* Mobil: kortet blir en flik på högerkanten som öppnar kortet */
.info-tab{display:none}
@media(max-width:860px){
  .hero-card{
    right:16px;bottom:84px;transform:translateX(calc(100% + 20px));opacity:0;
    transition:transform .3s var(--ease),opacity .3s var(--ease);pointer-events:none;
  }
  .hero-card.open{transform:none;opacity:1;pointer-events:auto}
  .info-tab{
    display:block;position:absolute;right:0;top:62%;z-index:3;
    writing-mode:vertical-rl;
    background:#0b0d12;color:var(--white);border:1px solid var(--line);border-right:0;
    border-radius:10px 0 0 10px;padding:14px 9px;font-size:12px;font-weight:700;letter-spacing:.14em;
    cursor:pointer;
  }
}

/* ---------- Om oss ---------- */
.om-grid{display:grid;grid-template-columns:0.9fr 1.4fr;gap:56px;align-items:start}
@media(max-width:860px){.om-grid{grid-template-columns:1fr;gap:28px}}
.om-copy p{color:#c7ccd6;margin-top:20px;font-size:16.5px;max-width:58ch}
.om-copy p strong{color:var(--gold);font-weight:700}
.om-copy .btn{margin-top:32px}
.om-imgs{display:grid;grid-template-columns:1.35fr 1fr;gap:20px;margin-top:64px}
.om-imgs img{width:100%;height:420px;object-fit:cover;border-radius:16px;border:1px solid var(--line)}
.om-imgs img:last-child{margin-top:56px;height:364px}
@media(max-width:720px){
  .om-imgs{grid-template-columns:1fr;gap:16px;margin-top:40px}
  .om-imgs img,.om-imgs img:last-child{height:260px;margin-top:0}
}

/* ---------- Boka-CTA & bildband ---------- */
.boka-cta{
  position:relative;min-height:520px;display:flex;align-items:center;justify-content:center;
  text-align:center;overflow:hidden;isolation:isolate;
}
.boka-cta .bg{position:absolute;inset:-8% 0;z-index:-2;background-size:cover;background-position:center;will-change:transform}
.boka-cta::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(8,9,13,.66)}
.boka-cta h2{font-size:clamp(32px,5vw,52px);font-weight:800;color:var(--white)}
.boka-cta p{margin-top:16px;color:#dfe3ea}
.boka-cta .btn{margin-top:30px}
.img-band{position:relative;height:min(78vh,680px);overflow:hidden}
.img-band .bg{position:absolute;inset:-10% 0;background-size:cover;background-position:center;will-change:transform}
@media(max-width:720px){.img-band{height:46vh}}

/* ---------- Meny ---------- */
.meny-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:36px 34px}
@media(max-width:560px){.meny-card{padding:22px 16px;border-radius:16px}}
.meny-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.meny-head h2{font-size:clamp(22px,2.6vw,28px);font-weight:800;color:var(--white)}
.loc-pill{background:var(--gold);color:#141005;font-size:13px;font-weight:800;letter-spacing:.04em;padding:7px 16px;border-radius:9999px}
.meny-tabs{display:flex;gap:8px;margin-top:24px;flex-wrap:wrap}
.meny-tabs button{
  font-family:var(--font);font-size:14px;font-weight:700;cursor:pointer;
  color:var(--ink);background:#0f1116;border:1px solid var(--line);border-radius:9999px;padding:10px 20px;
  transition:background .18s,color .18s,border-color .18s;
}
.meny-tabs button:hover{border-color:#3a4150}
.meny-tabs button.on{background:var(--gold);border-color:var(--gold);color:#141005}
.meny-panel{display:none;margin-top:10px}
.meny-panel.on{display:block}
.meny-sect{border-bottom:1px solid var(--line)}
.meny-sect:last-child{border-bottom:0}
.meny-sect>button{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:none;border:0;cursor:pointer;padding:20px 4px;
  font-family:var(--font);font-size:17px;font-weight:700;color:var(--white);text-align:left;
}
.meny-sect>button{transition:color .18s var(--ease)}
@media(hover:hover){.meny-sect>button:hover{color:var(--gold)}}
.meny-sect>button svg{flex:0 0 auto;transition:transform .25s var(--ease);color:var(--muted)}
.meny-sect.open>button svg{transform:rotate(180deg)}
.meny-items{display:none;padding:0 4px 22px}
.meny-sect.open .meny-items{display:grid;gap:10px}
.meny-item{
  background:#10131a;border:1px solid var(--line);border-radius:12px;padding:14px 18px;
  display:grid;grid-template-columns:1fr auto;gap:4px 18px;align-items:baseline;
  transition:border-color .18s var(--ease),transform .18s var(--ease);
}
@media(hover:hover){.meny-item:hover{border-color:#3a4150;transform:translateY(-1px)}}
.meny-item .t{font-weight:700;font-size:15px;color:var(--ink)}
.meny-item .p{color:var(--gold);font-weight:800;font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}
.meny-item .d{grid-column:1/-1;color:var(--muted);font-size:13.5px;line-height:1.55}
.meny-foot{margin-top:22px;color:var(--muted);font-size:12.5px}
.meny-duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:640px){.meny-duo{grid-template-columns:1fr}}

/* ---------- Hitta oss / karta ---------- */
.hitta{background:#0a0c10;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.hitta-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:0;min-height:520px}
@media(max-width:860px){.hitta-grid{grid-template-columns:1fr}}
.hitta-info{padding:56px 40px;display:flex;flex-direction:column;justify-content:center}
@media(max-width:560px){.hitta-info{padding:40px 20px}}
.hitta-info h2{font-size:clamp(24px,3vw,32px);font-weight:800;color:var(--white);margin-top:14px}
.unit-card{margin-top:28px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 24px}
.unit-card .name{font-weight:800;font-size:16px;color:var(--white)}
.unit-card .addr{color:var(--muted);font-size:14px;margin-top:6px}
.unit-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.tagchip{font-size:12.5px;padding:5px 11px;border-radius:9999px;background:#0f1116;border:1px solid var(--line);color:var(--ink)}
.tagchip.open{color:var(--gold);border-color:rgba(212,175,55,.4)}
.tagchip.closed{color:var(--coral);border-color:rgba(227,77,69,.4)}
.unit-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.unit-actions a{
  font-size:13.5px;font-weight:700;text-decoration:none;color:var(--ink);
  background:#0b0d12;border:1px solid #2a3140;padding:9px 14px;border-radius:10px;
  transition:border-color .18s,color .18s;
}
.unit-actions a:hover{border-color:var(--gold);color:var(--gold)}
#abb-map{min-height:520px;height:100%;background:#0e1014}
.abb-dark-tiles{filter:invert(1) hue-rotate(180deg) brightness(.92) saturate(.28) contrast(.92)}
@media(max-width:860px){#abb-map{min-height:360px}}
.leaflet-container{font-family:var(--font)}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#12151b;color:var(--ink);box-shadow:0 10px 30px rgba(0,0,0,.5)}
.leaflet-popup-content{margin:14px 16px}
.leaflet-bar a{background:#12151b;color:var(--ink);border-color:var(--line)}
.leaflet-bar a:hover{background:#1c2027;color:var(--white)}

/* ---------- Footer ---------- */
footer{background:#08090d;padding:88px 0 36px}
@media(max-width:720px){footer{padding:56px 0 28px}}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px}
@media(max-width:860px){.foot-grid{grid-template-columns:1fr;gap:36px}}
.foot-cta h2{font-size:clamp(26px,3.4vw,38px);font-weight:800;color:var(--white);max-width:14ch}
.foot-cta .btn{margin-top:26px}
footer h3{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.foot-links{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.foot-links a{color:var(--ink);text-decoration:none;font-size:15px;transition:color .18s}
.foot-links a:hover{color:var(--gold)}
.social-row{display:flex;gap:12px}
.social-row a{
  width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);color:var(--ink);transition:border-color .18s,color .18s,transform .18s;
}
.social-row a:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}
.foot-mail{display:inline-block;margin-top:18px;color:var(--ink);text-decoration:none;font-size:15px;border-bottom:1px solid var(--line);padding-bottom:2px;transition:color .18s,border-color .18s}
.foot-mail:hover{color:var(--gold);border-color:var(--gold)}
.foot-bottom{
  margin-top:64px;padding-top:24px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  color:var(--muted);font-size:13px;
}
.foot-bottom a{color:var(--muted);text-decoration:none}
.foot-bottom a:hover{color:var(--gold)}

/* ---------- Boka bord-sidan ---------- */
.boka-hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;isolation:isolate;padding:140px 0 100px}
.boka-hero .bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center}
.boka-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,9,13,.72),rgba(8,9,13,.86))}
.boka-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;width:100%}
@media(max-width:860px){.boka-grid{grid-template-columns:1fr;gap:36px}}
.boka-title h1{font-family:var(--font-display);font-size:clamp(64px,9vw,120px);font-weight:400;letter-spacing:.02em;color:var(--white);line-height:.95}
.boka-title p{margin-top:20px;color:#d9dee6;max-width:42ch}
.boka-form{background:rgba(15,17,22,.92);border:1px solid var(--line);border-radius:20px;padding:34px 32px}
@media(max-width:560px){.boka-form{padding:24px 18px}}
.boka-form h2{font-size:20px;font-weight:800;color:var(--white);margin-bottom:22px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.f-row{grid-template-columns:1fr}}
.f-field{display:grid;gap:7px;margin-bottom:14px}
.f-field label{font-size:13px;font-weight:600;color:var(--muted)}
.f-field input,.f-field textarea{
  width:100%;background:#0b0d12;border:1px solid var(--line);border-radius:10px;
  color:var(--ink);font-family:var(--font);font-size:15px;padding:12px 14px;
  transition:border-color .18s;
}
.f-field input:focus,.f-field textarea:focus{outline:none;border-color:var(--gold)}
.f-field textarea{min-height:96px;resize:vertical}
.f-consent{display:flex;gap:10px;align-items:flex-start;margin:6px 0 20px;font-size:13px;color:var(--muted)}
.f-consent input{margin-top:3px;accent-color:var(--gold)}
.f-status{margin-top:14px;font-size:14px;display:none}
.f-status.ok{display:block;color:var(--gold)}
.f-status.err{display:block;color:var(--coral)}
input[type="date"],input[type="time"]{color-scheme:dark}
