/* ====== TOKENS / BASE ====== */
:root{
  --bg:#0b0b0b;
  --bg-2:#121212;
  --text:#f2f2f2;
  --muted:#d6d6d6;
  --gold:#cda349;
  --btn-bg:#cda349;
  --btn-bg-hover:#e2b652;
  --btn-text:#121212;
  --overlay-1: hsla(0,0%,0%,.35);
  --overlay-2: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.55) 40%, rgba(0,0,0,.35) 65%, rgba(0,0,0,.15) 100%);
  --maxw: 1200px;
  --radius: 16px;
  --shadow: 0 10px 30px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%; height:auto; display:block}

/* ====== HERO ====== */
.hero{
  position:relative;
  min-height:100dvh;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#000 url('../assets/hero.jpg') center/cover no-repeat;
  isolation:isolate;
}
.hero video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  opacity:.82; filter:saturate(1.05) contrast(1.06);
  z-index:-2;
}
.hero::after{
  content:"";
  position:absolute; inset:0; z-index:-1;
  background: var(--overlay-2);
}
.hero .content{
  width:min(92vw, var(--maxw));
  padding: clamp(16px, 4vw, 48px);
  text-align:center;
}
.badge{
  display:inline-flex; gap:.5rem; align-items:center;
  padding:.4rem .7rem;
  border:1px solid rgba(205,163,73,.5);
  color:var(--gold);
  border-radius:999px;
  backdrop-filter: blur(8px);
  background: rgba(0,0,0,.25);
  font-size:.9rem; letter-spacing:.02em;
}
h1{
  margin:.8rem 0 1rem;
  font-family: ui-serif, Georgia, "Times New Roman", Times, serif;
  font-weight:700;
  font-size: clamp(1.6rem, 3.8vw + .6rem, 3.2rem);
  line-height:1.15;
  text-wrap:balance;
  text-shadow: 0 6px 32px rgba(0,0,0,.55);
}
.lead{
  margin:0 auto 1.6rem;
  max-width:60ch;
  color:var(--muted);
  font-size: clamp(.98rem, .7vw + .7rem, 1.15rem);
  text-align:center; /* важно для мобилы */
}
.cta{
  display:flex; gap:.75rem; flex-wrap:wrap; justify-content:center;
  margin-top:1.2rem;
}
.btn{
  --pad-y:.85rem; --pad-x:1.1rem;
  appearance:none; border:0; cursor:pointer; text-decoration:none;
  border-radius:999px;
  padding:var(--pad-y) var(--pad-x);
  font-weight:600;
  box-shadow:var(--shadow);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
  display:inline-flex; align-items:center; gap:.6rem;
  will-change: transform;
}
.btn:active{ transform: translateY(1px) scale(.99) }
.btn-primary{ background:var(--btn-bg); color:var(--btn-text) }
.btn-primary:hover{ background:var(--btn-bg-hover) }
.btn-ghost{
  background: rgba(0,0,0,.35);
  color:var(--text);
  border:1px solid rgba(255,255,255,.18);
}
.btn-ghost:hover{ border-color: rgba(255,255,255,.4) }

.scroll-hint{
  position:absolute; left:50%; bottom:18px; translate:-50% 0;
  font-size:.85rem; color:#fff; opacity:.85;
  display:flex; align-items:center; gap:.5rem;
  padding:.4rem .7rem; border-radius:999px;
  background: rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(6px);
}
.scroll-hint svg{ opacity:.8 }

/* ====== COMMON SECTIONS / STUBS ====== */
section.stub{
  padding:64px 20px;
  background:var(--bg-2);
  border-top:1px solid rgba(255,255,255,.06);
}
.container{ max-width:var(--maxw); margin:0 auto }
.stub h2{
  font-family: ui-serif, Georgia, "Times New Roman", Times, serif;
  margin:0 0 .5rem; font-size: clamp(1.2rem, 2vw + .7rem, 1.8rem);
}
.stub p{ color:var(--muted); margin:.25rem 0 0 }

/* ====== SECTION HELPERS ====== */
.section{ padding: clamp(40px, 6vw, 80px) 16px; border-top:1px solid rgba(255,255,255,.06) }
.h2{
  margin:0 0 .5rem;
  font-family: ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size: clamp(1.3rem, 2.2vw + .6rem, 2rem);
  line-height:1.2;
}
.muted{ color:var(--muted) }

/* ====== ABOUT ====== */
.about{ background:var(--bg-2) }
.about__inner{
  display:grid; gap: clamp(16px, 3vw, 32px);
  grid-template-columns: 1fr;
  align-items:center;
}
@media (min-width: 900px){
  .about__inner{ grid-template-columns: 1.1fr .9fr; }
}
.about__text{ padding: clamp(8px, 1vw, 12px) }
.about .lead{ margin-top:.25rem } /* переназначаем для отступа под заголовком */
.about__bullets{
  margin:1rem 0 0; padding:0; list-style:none; color:var(--text);
  display:grid; gap:.5rem;
}
.about__bullets li{ display:flex; gap:.6rem; align-items:flex-start }
.about__bullets li::before{
  content:""; width:10px; height:10px; border-radius:50%;
  background: radial-gradient(closest-side, var(--gold), var(--btn-bg-hover));
  margin-top:.45rem; flex:0 0 10px;
}
.about__media{
  position:relative; border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow);
}
.about__media img{
  width:100%; height:100%; object-fit:cover; aspect-ratio:16/10;
  filter:saturate(1.02) contrast(1.04);
  transform:scale(1.01);
  transition: transform .5s ease;
}
.about__media:hover img{ transform:scale(1.03) }

/* ====== HALLS ====== */
.halls__grid{
  display:grid; gap: clamp(12px, 2vw, 20px);
  grid-template-columns: 1fr;           /* по умолчанию 1 колонка (моб.) */
  margin-top: clamp(16px, 2.5vw, 24px);
}
@media (min-width: 840px){
  .halls__grid{ grid-template-columns: repeat(2, 1fr); } /* планшет */
}
@media (min-width: 1280px){
  .halls__grid{ grid-template-columns: repeat(3, 1fr); } /* десктоп */
}
.hall{
  position:relative; display:block; border-radius:var(--radius); overflow:hidden;
  background:#000; box-shadow:var(--shadow); text-decoration:none; color:inherit;
}
.hall__figure{ position:relative; margin:0 }
.hall__figure img{
  width:100%; height:100%; object-fit:cover; aspect-ratio:16/10;
  transition: transform .6s ease, filter .6s ease;
  filter:saturate(1.03) contrast(1.05) brightness(.98);
}
.hall::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.05) 40%, rgba(0,0,0,.6) 75%, rgba(0,0,0,.9) 100%);
  pointer-events:none;
}
.hall:hover .hall__figure img{
  transform: scale(1.04);
  filter:saturate(1.06) contrast(1.08) brightness(1);
}
.hall__caption{
  position:absolute; left:0; right:0; bottom:0; padding:18px 16px 16px;
  display:grid; gap:6px;
}
.hall__badge{
  display:inline-block; align-self:start;
  padding:.38rem .7rem; border-radius:999px;
  color:#121212; background:var(--gold); font-weight:700; font-size:.9rem;
  box-shadow:0 4px 18px rgba(0,0,0,.35);
}
.hall__title{
  margin:.2rem 0 0; font-weight:700;
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  text-shadow:0 2px 12px rgba(0,0,0,.6);
}
.hall__desc{
  margin:0; color:var(--muted); font-size:.98rem;
  text-shadow:0 2px 10px rgba(0,0,0,.55);
}

/* ====== ACCESSIBILITY / SAFE AREAS ====== */
@media (prefers-reduced-motion: reduce){
  .hero video{ display:none }
}
.safe-pads{
  padding-left:max(16px, env(safe-area-inset-left));
  padding-right:max(16px, env(safe-area-inset-right));
}

/* ====== MOBILE TWEAKS ====== */
@media (max-width: 640px){
  #about .about__text{ text-align:center }
  #about .about__bullets{ justify-content:center }
}
@media (max-width: 480px){
  h1{ font-size: clamp(1.4rem, 6vw, 2rem); }
  .h2{ font-size: 1.25rem; }
  .lead{ font-size: .95rem; }
}
/* ====== ENTERTAINMENT ====== */
.entertainment .section__head{ margin-bottom: clamp(10px, 2vw, 16px); }

/* Иконки-фичи */
.features{
  list-style:none; margin:0; padding:0;
  display:grid; gap:12px 14px;
  grid-template-columns: 1fr 1fr;
}
@media (min-width: 900px){
  .features{ grid-template-columns: repeat(4, 1fr); }
}
.feature{
  display:flex; align-items:center; gap:.75rem;
  border:1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
  border-radius: 14px;
  padding:.75rem .9rem;
}
.feature .icon{
  color: var(--gold); display:inline-flex; align-items:center; justify-content:center;
}
.feature .ftext h3{
  margin:0; font-size: clamp(1rem, .9vw + .7rem, 1.05rem); font-weight:700;
}
.feature .ftext p{
  margin:.15rem 0 0; color:var(--muted); font-size:.95rem;
}

/* Галерея изображений */
.ent-gallery{
  margin-top: clamp(14px, 2.6vw, 22px);
  display:grid; gap: clamp(12px, 2vw, 18px);
  grid-template-columns: 1fr;               /* моб. — одна колонка, крупные фото */
}
@media (min-width: 720px){
  .ent-gallery{ grid-template-columns: 1fr 1fr; } /* планшет — 2 колонки */
}
.ent-card{
  position:relative; border-radius: var(--radius); overflow:hidden;
  background:#000; box-shadow: var(--shadow);
}
.ent-card img{
  width:100%; height:100%; object-fit:cover; aspect-ratio: 16/9;
  filter:saturate(1.03) contrast(1.05) brightness(.98);
  transition: transform .5s ease, filter .5s ease;
}
.ent-card::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.02) 55%, rgba(0,0,0,.55) 85%, rgba(0,0,0,.85) 100%);
  pointer-events:none;
}
.ent-card:hover img{
  transform: scale(1.03);
  filter:saturate(1.07) contrast(1.08) brightness(1);
}
.ent-card figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding: 14px 14px 12px;
  font-weight:700; letter-spacing:.01em;
  text-shadow:0 2px 12px rgba(0,0,0,.65);
}

/* ====== MENU PREVIEW ====== */
.menu-prev .cuisines{ margin:.25rem 0 0 }

.chips{
  margin-top:12px;
  display:flex; gap:8px; overflow:auto; padding-bottom:2px;
  scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
}
.chip{
  scroll-snap-align:start;
  display:inline-flex; align-items:center; white-space:nowrap;
  padding:.5rem .8rem; border-radius:999px; font-weight:600;
  background:rgba(255,255,255,.06); color:var(--text); text-decoration:none;
  border:1px solid rgba(255,255,255,.1);
  transition: background .2s ease, border-color .2s ease;
}
.chip:hover{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.18) }
.chip--active{ background:var(--gold); color:#121212; border-color:var(--gold) }

.menu-cards{
  margin-top: clamp(14px, 2.6vw, 22px);
  display:grid; gap:12px;
  grid-template-columns: 1fr;
}
@media (min-width: 680px){ .menu-cards{ grid-template-columns: repeat(2,1fr) } }
@media (min-width: 1024px){ .menu-cards{ grid-template-columns: repeat(3,1fr) } }

.menu-card{
  position:relative; overflow:hidden; border-radius:14px; padding:16px;
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.08);
  box-shadow: var(--shadow); text-decoration:none; color:inherit;
  display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:center;
}
.menu-card::after{
  content:""; position:absolute; inset:-30% -20% auto auto; height:120%;
  background: radial-gradient(40% 40% at 50% 50%, rgba(205,163,73,.20), transparent 60%);
  transform: rotate(15deg);
}
.menu-card .micon{ color:var(--gold); z-index:1 }
.menu-card .mtitle{ font-weight:700; z-index:1 }
.menu-card .msub{ color:var(--muted); font-size:.95rem; grid-column:2; z-index:1 }
.menu-card:hover{ border-color: rgba(255,255,255,.16) }

.menu-actions{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:14px }


/* ====== BANQUETS ====== */
.banquets{ background: var(--bg-2); }
.banquets__inner{
  display:grid; gap: clamp(16px, 3vw, 28px);
  grid-template-columns: 1fr;
  align-items:center;
}
@media (min-width: 1024px){
  .banquets__inner{ grid-template-columns: 1.15fr .85fr; }
}

/* Галерея: большая слева (span 2), две малые справа друг под другом */
.banquets__gallery{
  display:grid; gap: clamp(10px, 1.8vw, 14px);
  grid-template-columns: 1.1fr .9fr;
}
.banq-card{
  position:relative; overflow:hidden; border-radius: var(--radius);
  background:#000; box-shadow: var(--shadow);
}
.banq-card img{
  width:100%; height:100%; object-fit:cover;
  aspect-ratio: 16/10;
  filter:saturate(1.03) contrast(1.05) brightness(.98);
  transition: transform .5s ease, filter .5s ease;
}
.banq-card.big{ grid-row: span 2; }
.banq-card::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.02) 55%, rgba(0,0,0,.55) 85%, rgba(0,0,0,.85) 100%);
  pointer-events:none;
}
.banq-card:hover img{ transform: scale(1.03); filter:saturate(1.07) contrast(1.08) brightness(1); }
.banq-card figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding: 12px 14px; font-weight:700; letter-spacing:.01em;
  text-shadow: 0 2px 12px rgba(0,0,0,.65);
}

/* Текст */
.banquets__text .lead{ margin-top:.3rem }
.banquets__bullets{
  margin: clamp(10px, 2vw, 14px) 0 0; padding:0; list-style:none;
  display:grid; gap:.5rem; color:var(--text);
}
.banquets__bullets li{
  display:flex; gap:.6rem; align-items:flex-start;
}
.banquets__bullets li::before{
  content:""; width:10px; height:10px; border-radius:50%;
  background: radial-gradient(closest-side, var(--gold), var(--btn-bg-hover));
  margin-top:.45rem; flex:0 0 10px;
}
.banquets__actions{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:12px }

/* Чипсы — перенос строк (в отличие от горизонтального скролла) */
.chips--wrap{ flex-wrap: wrap; overflow: visible; }

/* Мобильная адаптация: галерея — одна колонка */
@media (max-width: 720px){
  .banquets__gallery{ grid-template-columns: 1fr; }
  .banq-card.big{ grid-row: auto; }
  .banquets__text{ text-align:center }
  .banquets__bullets{ justify-content:center }
}
