/* ============================================================
   style.css — премиум тёмная ресторанная тема «AURUM»
   Общий для всех страниц. Адаптив, mobile-first акценты.
   ============================================================ */

/* ---------- Шрифты ---------- */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Jost:wght@300;400;500;600&display=swap');

/* ---------- Токены ---------- */
:root{
  --bg:        #0c0b0a;        /* почти чёрный, тёплый */
  --bg-2:      #131210;
  --surface:   #19171410;      /* стекло */
  --card:      #1a1815;
  --line:      #2c2823;
  --text:      #f3ece0;        /* тёплый белый — высокий контраст */
  --muted:     #a89c89;
  --gold:      #c9a86a;        /* акцент золото */
  --gold-2:    #e7c98c;
  --green:     #6fae7d;
  --red:       #c97d6a;
  --amber:     #d9b15a;
  --radius:    14px;
  --maxw:      1180px;
  --shadow:    0 24px 60px -20px rgba(0,0,0,.7);
  --ease:      cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:'Jost',system-ui,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
h1,h2,h3{ font-family:'Cormorant Garamond',serif; font-weight:600; line-height:1.1; letter-spacing:.01em; }
button{ font-family:inherit; cursor:pointer; }

/* фоновое тёплое свечение */
body::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(60% 50% at 80% -10%, rgba(201,168,106,.12), transparent 60%),
    radial-gradient(50% 40% at 0% 100%, rgba(201,168,106,.07), transparent 60%),
    var(--bg);
}

/* ---------- Утилиты ---------- */
.container{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px; }
.section{ padding:96px 0; }
.eyebrow{
  font-size:.74rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold); margin-bottom:18px; display:inline-block;
}
.eyebrow::before{ content:"— "; }
.section-title{ font-size:clamp(2rem,5vw,3.4rem); margin-bottom:18px; }
.lead{ color:var(--muted); max-width:56ch; font-size:1.05rem; }
.muted{ color:var(--muted); }
.center{ text-align:center; } .center .lead{ margin-inline:auto; }

/* ---------- Кнопки ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  background:linear-gradient(180deg,var(--gold-2),var(--gold));
  color:#231c10; font-weight:600; letter-spacing:.02em;
  padding:14px 30px; border:none; border-radius:50px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), filter .3s;
  box-shadow:0 10px 30px -10px rgba(201,168,106,.55);
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 16px 36px -10px rgba(201,168,106,.7); }
.btn:active{ transform:translateY(0); }
.btn:disabled{ filter:grayscale(.7) brightness(.7); cursor:not-allowed; box-shadow:none; }
.btn--ghost{
  background:transparent; color:var(--gold); border:1px solid var(--gold);
  box-shadow:none;
}
.btn--ghost:hover{ background:rgba(201,168,106,.1); box-shadow:none; }
.btn--sm{ padding:9px 18px; font-size:.85rem; }
.btn--lg{ padding:17px 40px; font-size:1.05rem; }
.btn.added{ background:var(--green); color:#08140c; }

/* ---------- Навигация ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(12,11,10,.72); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav__inner{ display:flex; align-items:center; justify-content:space-between; height:72px; }
.brand{ font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:700; letter-spacing:.18em; }
.brand span{ color:var(--gold); }
.nav__links{ display:flex; align-items:center; gap:30px; }
.nav__links a{ font-size:.92rem; color:var(--muted); transition:color .25s; position:relative; padding:6px 0; }
.nav__links a:hover, .nav__links a.active{ color:var(--text); }
.nav__links a.active::after{
  content:""; position:absolute; left:0; bottom:-2px; width:100%; height:1px; background:var(--gold);
}
.nav__cta{ margin-left:8px; }
.nav__burger{ display:none; background:none; border:none; width:30px; height:24px; position:relative; }
.nav__burger span{ position:absolute; left:0; width:100%; height:2px; background:var(--text); transition:.3s; }
.nav__burger span:nth-child(1){ top:0; } .nav__burger span:nth-child(2){ top:11px; } .nav__burger span:nth-child(3){ top:22px; }
.nav__burger.active span:nth-child(1){ top:11px; transform:rotate(45deg); }
.nav__burger.active span:nth-child(2){ opacity:0; }
.nav__burger.active span:nth-child(3){ top:11px; transform:rotate(-45deg); }
.cart-link{ position:relative; }
.cart-count{
  position:absolute; top:-8px; right:-12px; min-width:18px; height:18px; padding:0 4px;
  background:var(--gold); color:#231c10; font-size:.7rem; font-weight:600;
  border-radius:9px; display:none; align-items:center; justify-content:center;
}

/* ---------- Герой ---------- */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:center;
  overflow:hidden;
}
.hero__bg{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(12,11,10,.4) 0%, rgba(12,11,10,.75) 60%, var(--bg) 100%),
    radial-gradient(120% 90% at 70% 20%, #2a2218 0%, #14110d 55%, var(--bg) 100%);
}
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(45deg, rgba(201,168,106,.04) 0 2px, transparent 2px 22px);
  mask-image:radial-gradient(60% 60% at 70% 30%, #000, transparent 75%);
}
.hero__content{ max-width:720px; padding:60px 0; }
.hero h1{ font-size:clamp(2.8rem,8vw,5.6rem); margin:14px 0 22px; }
.hero h1 em{ font-style:italic; color:var(--gold-2); }
.hero__sub{ font-size:1.15rem; color:var(--muted); max-width:50ch; margin-bottom:36px; }
.hero__actions{ display:flex; gap:16px; flex-wrap:wrap; }
.hero__scroll{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%);
  font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--muted); }
.hero__scroll::after{ content:""; display:block; width:1px; height:34px; margin:10px auto 0;
  background:linear-gradient(var(--gold),transparent); animation:scrolldot 2.2s infinite; }
@keyframes scrolldot{ 0%{opacity:.2;transform:scaleY(.4)} 50%{opacity:1} 100%{opacity:.2;transform:scaleY(.4)} }

/* ---------- «О ресторане» ---------- */
.about{ display:grid; grid-template-columns:1.1fr 1fr; gap:64px; align-items:center; }
.about__media{ position:relative; aspect-ratio:4/5; border-radius:var(--radius);
  background:linear-gradient(160deg,#241d14,#15120d); border:1px solid var(--line);
  overflow:hidden; box-shadow:var(--shadow); }
.about__media::after{ content:"AURUM"; position:absolute; inset:0; display:grid; place-items:center;
  font-family:'Cormorant Garamond',serif; font-size:3rem; letter-spacing:.3em; color:rgba(201,168,106,.18); }
/* фото интерьера поверх градиента (перекрывает вензель, если фото загрузилось) */
.about__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; }
.about__media::before{ content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(12,11,10,.5) 100%); }

/* ---------- Преимущества ---------- */
.features{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:24px; }
.feature{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:30px 26px; transition:transform .4s var(--ease), border-color .4s; }
.feature:hover{ transform:translateY(-5px); border-color:rgba(201,168,106,.4); }
.feature__icon{ display:inline-grid; place-items:center; width:52px; height:52px; margin-bottom:18px;
  border-radius:50%; border:1px solid rgba(201,168,106,.4); color:var(--gold-2); font-size:1.4rem; }
.feature h3{ font-size:1.5rem; margin-bottom:10px; }
.feature p{ color:var(--muted); font-size:.92rem; }

/* ---------- Галерея атмосферы ---------- */
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:18px; }
.gallery__item{ position:relative; overflow:hidden; border-radius:var(--radius);
  border:1px solid var(--line); }
.gallery__item img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.gallery__item:hover img{ transform:scale(1.06); }
.gallery__item--tall{ grid-row:span 2; }
.gallery__item--wide{ grid-column:span 2; }
/* фолбэк, если фото галереи не загрузилось: тёплая плитка с вензелем вместо «битой» иконки */
.gallery__item.img-broken{ background:linear-gradient(160deg,#241d14,#15120d); }
.gallery__item.img-broken::after{ content:"AURUM"; position:absolute; inset:0; display:grid;
  place-items:center; font-family:'Cormorant Garamond',serif; letter-spacing:.3em;
  font-size:1.4rem; color:rgba(201,168,106,.18); }

/* ---------- Информация: часы / адрес / контакты ---------- */
.info-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:24px; }
.info-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:30px 28px; }
.info-card .eyebrow{ margin-bottom:20px; }
.info-list{ list-style:none; }
.info-list li{ display:flex; justify-content:space-between; gap:14px; padding:9px 0;
  border-bottom:1px solid var(--line); font-size:.95rem; }
.info-list li:last-child{ border-bottom:none; }
.info-list li span{ color:var(--muted); }
.info-list li b{ font-weight:500; }
.info-big{ font-family:'Cormorant Garamond',serif; font-size:1.7rem; line-height:1.25; margin-bottom:10px; }
.info-big a{ color:var(--gold-2); transition:color .25s; }
.info-big a:hover{ color:var(--gold); }
.stats{ display:flex; gap:40px; margin-top:36px; flex-wrap:wrap; }
.stat b{ font-family:'Cormorant Garamond',serif; font-size:2.6rem; color:var(--gold-2); display:block; line-height:1; }
.stat span{ font-size:.82rem; color:var(--muted); letter-spacing:.05em; }

/* ---------- Карточки блюд ---------- */
.dish-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:26px; }
.dish-grid--preview{ grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.dish-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; transition:transform .4s var(--ease), border-color .4s, box-shadow .4s;
}
.dish-card:hover{ transform:translateY(-6px); border-color:rgba(201,168,106,.4); box-shadow:var(--shadow); }
.dish-card__img{ position:relative; aspect-ratio:4/3; overflow:hidden; background:#211c15; }
/* реальное фото блюда: заполняет плитку, мягкое затемнение снизу под бейдж/контраст */
.dish-card__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .6s var(--ease); }
.dish-card:hover .dish-card__img img{ transform:scale(1.05); }
.dish-card__img.has-photo::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,rgba(12,11,10,.25) 0%,transparent 30%,transparent 70%,rgba(12,11,10,.45) 100%); }
.dish-card__cat{ position:absolute; top:12px; left:12px; font-size:.68rem; letter-spacing:.12em;
  text-transform:uppercase; background:rgba(12,11,10,.6); color:var(--gold-2);
  padding:5px 10px; border-radius:30px; backdrop-filter:blur(6px); }
.dish-card__body{ padding:20px; }
.dish-card__body h3{ font-size:1.5rem; margin-bottom:6px; }
.dish-card__body p{ font-size:.9rem; color:var(--muted); min-height:2.6em; }
.dish-card__row{ display:flex; align-items:center; justify-content:space-between; margin-top:16px; gap:10px; }
.dish-card__price{ font-family:'Cormorant Garamond',serif; font-size:1.5rem; color:var(--gold-2); font-weight:600; }

/* фото-заглушки блюд (градиентные плитки вместо реальных фото) */
.ph{ background:#211c15; position:relative; }
.ph::before{ content:""; position:absolute; inset:0; opacity:.92;
  background:linear-gradient(135deg,var(--c1,#3a2f1f),var(--c2,#1a140d)); }
.ph::after{ content:""; position:absolute; inset:0;
  background:radial-gradient(60% 60% at 30% 25%, rgba(255,255,255,.07), transparent 60%); }
.ph--tartar{ --c1:#7a3b3b; --c2:#2a1414 } .ph--carpaccio{ --c1:#8a4a44; --c2:#2c1512 }
.ph--oysters{ --c1:#3a5a63; --c2:#16242a } .ph--ribeye{ --c1:#6e3a2c; --c2:#241010 }
.ph--seabass{ --c1:#37615f; --c2:#142625 } .ph--duck{ --c1:#7a4a2c; --c2:#251509 }
.ph--truffle{ --c1:#4a3d2a; --c2:#1c1610 } .ph--linguine{ --c1:#7a5e2e; --c2:#241c0d }
.ph--tiramisu{ --c1:#6b4f34; --c2:#241a10 } .ph--fondant{ --c1:#4a2f24; --c2:#1a0f0a }
.ph--wine{ --c1:#5a2436; --c2:#1f0d14 } .ph--lemonade{ --c1:#7a7a36; --c2:#242410 }

/* ---------- Chips (категории меню) ---------- */
.chips{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:40px; }
.chip{
  background:transparent; border:1px solid var(--line); color:var(--muted);
  padding:9px 20px; border-radius:30px; font-size:.88rem; transition:.25s;
}
.chip:hover{ color:var(--text); border-color:var(--gold); }
.chip.active{ background:var(--gold); color:#231c10; border-color:var(--gold); font-weight:500; }

/* ---------- Page header (внутренние страницы) ---------- */
.page-head{ padding:120px 0 50px; text-align:center; }
.page-head h1{ font-size:clamp(2.4rem,6vw,4rem); margin:10px 0; }

/* ---------- БРОНИРОВАНИЕ ---------- */
.booking-grid{ display:grid; grid-template-columns:1.4fr .9fr; gap:40px; align-items:start; }
.step{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:28px; margin-bottom:24px; }
.step__title{ display:flex; align-items:center; gap:12px; font-size:1.4rem; margin-bottom:20px; }
.step__num{ width:30px; height:30px; flex:none; border-radius:50%; background:var(--gold);
  color:#231c10; font-size:.95rem; font-weight:600; display:grid; place-items:center; font-family:'Jost'; }
.field-row{ display:flex; gap:16px; flex-wrap:wrap; }
.field{ flex:1; min-width:150px; }
.field label{ display:block; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.field input, .field select{
  width:100%; background:var(--bg-2); border:1px solid var(--line); color:var(--text);
  padding:13px 14px; border-radius:10px; font-family:inherit; font-size:1rem;
}
.field input:focus, .field select:focus{ outline:none; border-color:var(--gold); }
.guests{ display:flex; gap:10px; flex-wrap:wrap; }
.guests button{ width:46px; height:46px; border-radius:10px; background:var(--bg-2);
  border:1px solid var(--line); color:var(--text); font-size:1rem; transition:.2s; }
.guests button:hover{ border-color:var(--gold); }
.guests button.active{ background:var(--gold); color:#231c10; border-color:var(--gold); font-weight:600; }

/* схема зала */
.hall-wrap{ position:relative; }
.hall{
  position:relative; aspect-ratio:1/.62; border-radius:12px;
  background:
    linear-gradient(160deg,#1c1813,#141009);
  border:1px solid var(--line); overflow:hidden;
}
.hall::before{ /* "сцена/бар" */
  content:"БАР"; position:absolute; top:8px; left:50%; transform:translateX(-50%);
  font-size:.6rem; letter-spacing:.3em; color:var(--muted);
  width:38%; text-align:center; padding:5px 0; border:1px dashed var(--line); border-radius:6px;
}
.table-spot{
  position:absolute; transform:translate(-50%,-50%);
  width:54px; height:54px; border-radius:12px;
  background:#241f17; border:1px solid var(--line); color:var(--text);
  display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1;
  transition:.25s var(--ease);
}
.table-spot:hover:not([disabled]){ border-color:var(--gold); transform:translate(-50%,-50%) scale(1.08); }
.table-spot__num{ font-family:'Cormorant Garamond',serif; font-size:1.1rem; font-weight:600; }
.table-spot__seats{ font-size:.62rem; color:var(--muted); }
.table-spot__seats::after{ content:" мест"; }
.table-spot.is-busy{ background:#2a1715; border-color:#5a2c26; color:#7a5b56; cursor:not-allowed; }
.table-spot.is-small{ opacity:.4; cursor:not-allowed; }
.table-spot.is-selected{ background:var(--gold); color:#231c10; border-color:var(--gold-2);
  box-shadow:0 0 0 4px rgba(201,168,106,.25); }
.table-spot.is-selected .table-spot__seats{ color:#4a3a1c; }
.hall-legend{ display:flex; gap:20px; flex-wrap:wrap; margin-top:16px; font-size:.8rem; color:var(--muted); }
.hall-legend i{ display:inline-block; width:14px; height:14px; border-radius:4px; margin-right:6px; vertical-align:-2px; }
.lg-free{ background:#241f17; border:1px solid var(--line); }
.lg-busy{ background:#2a1715; border:1px solid #5a2c26; }
.lg-sel{ background:var(--gold); }

/* блюда к броне */
.bk-dish{ display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:14px;
  padding:12px 0; border-bottom:1px solid var(--line); }
.bk-dish:last-child{ border-bottom:none; }
/* мини-фото блюда в списке предзаказа (фото или градиент-заглушка) */
.bk-dish__thumb{ width:48px; height:48px; flex:none; border-radius:10px; object-fit:cover;
  border:1px solid var(--line); display:block; }
.bk-dish__price{ color:var(--gold-2); font-family:'Cormorant Garamond',serif; font-size:1.15rem; }
.qty{ display:flex; align-items:center; gap:10px; }
.qty button{ width:30px; height:30px; border-radius:8px; background:var(--bg-2); border:1px solid var(--line);
  color:var(--text); font-size:1.1rem; line-height:1; }
.qty button:hover{ border-color:var(--gold); }
.qty span{ min-width:18px; text-align:center; }

/* итог-сводка (sticky) */
.summary{ position:sticky; top:96px; background:var(--card); border:1px solid var(--gold);
  border-radius:var(--radius); padding:28px; box-shadow:var(--shadow); }
.summary h3{ font-size:1.7rem; margin-bottom:18px; }
.summary__row{ display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px solid var(--line);
  font-size:.95rem; }
.summary__row span:first-child{ color:var(--muted); }
.summary__total{ display:flex; justify-content:space-between; align-items:baseline; margin:18px 0 22px; }
.summary__total b{ font-family:'Cormorant Garamond',serif; font-size:2rem; color:var(--gold-2); }
.summary .btn{ width:100%; }
.summary__note{ font-size:.78rem; color:var(--muted); margin-top:12px; text-align:center; }

/* ---------- ЛИЧНЫЙ КАБИНЕТ ---------- */
.acc-head{ display:flex; align-items:center; gap:20px; margin-bottom:46px; flex-wrap:wrap; }
.acc-avatar{ width:72px; height:72px; border-radius:50%; flex:none;
  background:linear-gradient(140deg,var(--gold-2),var(--gold)); color:#231c10;
  display:grid; place-items:center; font-family:'Cormorant Garamond',serif; font-size:1.8rem; font-weight:700; }
.acc-head h1{ font-size:2.2rem; }
.bookings-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:24px; }
.booking-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:24px; display:flex; flex-direction:column; gap:16px;
  transition:border-color .3s, transform .3s; }
.booking-card:hover{ border-color:rgba(201,168,106,.4); transform:translateY(-3px); }
.booking-card__head{ display:flex; justify-content:space-between; align-items:center; }
.booking-card__id{ font-family:'Cormorant Garamond',serif; font-size:1.4rem; letter-spacing:.05em; }
.booking-card__info{ font-size:.95rem; color:var(--text); display:flex; flex-direction:column; gap:5px; }
.booking-card__info > div:nth-child(2){ color:var(--muted); font-size:.88rem; }
.booking-card__items{ color:var(--muted); font-size:.85rem; font-style:italic; }
.booking-card__actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:auto; }

/* бейджи статусов */
.badge{ font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; padding:5px 12px;
  border-radius:30px; font-weight:500; }
.badge--confirmed{ background:rgba(111,174,125,.15); color:var(--green); border:1px solid rgba(111,174,125,.4); }
.badge--completed{ background:rgba(168,156,137,.12); color:var(--muted); border:1px solid var(--line); }
.badge--pending{ background:rgba(217,177,90,.15); color:var(--amber); border:1px solid rgba(217,177,90,.4); }
.badge--cancelled{ background:rgba(201,125,106,.15); color:var(--red); border:1px solid rgba(201,125,106,.4); }

/* ---------- СТРАНИЦА ПРОПУСКА (QR) ---------- */
.pass{ max-width:460px; margin:0 auto; }
.pass-ticket{ background:var(--card); border:1px solid var(--gold); border-radius:20px;
  overflow:hidden; box-shadow:var(--shadow); }
.pass-ticket__top{ background:linear-gradient(140deg,#241d14,#15120d); padding:30px 30px 24px; text-align:center;
  border-bottom:1px dashed var(--line); position:relative; }
.pass-ticket__top::before, .pass-ticket__top::after{
  content:""; position:absolute; bottom:-11px; width:22px; height:22px; border-radius:50%; background:var(--bg); }
.pass-ticket__top::before{ left:-11px; } .pass-ticket__top::after{ right:-11px; }
.pass-ticket__brand{ font-family:'Cormorant Garamond',serif; letter-spacing:.3em; color:var(--gold); font-size:1.1rem; }
.pass-ticket__top h1{ font-size:1.8rem; margin:6px 0 10px; }
.pass-qr{ background:#fff; padding:16px; border-radius:14px; margin:22px auto 8px; width:max-content; }
.pass-qr img{ width:200px; height:200px; }
.pass-ticket__token{ font-family:monospace; letter-spacing:.1em; color:var(--muted); font-size:.85rem; margin-top:6px; }
.pass-ticket__body{ padding:26px 30px; }
.pass-details{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.pass-details > div span{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:3px; }
.pass-details > div b{ font-size:1.1rem; font-weight:500; }
.pass-items{ list-style:none; margin-top:24px; padding-top:18px; border-top:1px solid var(--line); }
.pass-items li{ display:flex; justify-content:space-between; padding:6px 0; font-size:.95rem; }
.pass-items li span{ color:var(--gold-2); }
.pass-hint{ text-align:center; color:var(--muted); font-size:.85rem; margin-top:24px; }

/* ============================================================
   ОПЛАТА — фейк-ЮKassa (СВЕТЛАЯ карточка на затемнённом фоне)
   Исключение из тёмной темы: имитируем платёжную форму ЮKassa.
   ============================================================ */
.yk-overlay{
  position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center;
  padding:24px;
  background:
    radial-gradient(60% 50% at 50% 0%, rgba(201,168,106,.10), transparent 60%),
    rgba(8,8,9,.92);
  -webkit-font-smoothing:antialiased;
}
.yk-card{
  width:100%; max-width:440px; background:#fff; color:#1a1a1a;
  border-radius:18px; overflow:hidden; box-shadow:0 30px 80px -20px rgba(0,0,0,.6);
  font-family:'Jost',system-ui,sans-serif; line-height:1.5;
  animation:yk-pop .45s var(--ease);
}
@keyframes yk-pop{ from{ opacity:0; transform:translateY(16px) scale(.97) } to{ opacity:1; transform:none } }
.yk-card__head{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 24px; border-bottom:1px solid #ececec;
}
.yk-logo{ display:flex; align-items:baseline; gap:1px; font-weight:700; font-size:1.35rem; letter-spacing:-.01em; }
.yk-logo b{ color:#1a1a1a; } .yk-logo span{ color:#8b3ffd; } /* фирменный фиолетовый ЮKassa */
.yk-secure{ font-size:.72rem; color:#8a8a8a; display:flex; align-items:center; gap:5px; }
.yk-secure::before{ content:"🔒"; font-size:.8rem; }
.yk-body{ padding:24px; }
.yk-amount{
  text-align:center; margin-bottom:22px; padding-bottom:20px; border-bottom:1px solid #f0f0f0;
}
.yk-amount small{ display:block; font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:#9a9a9a; margin-bottom:6px; }
.yk-amount b{ font-size:2.1rem; font-weight:600; color:#1a1a1a; }
.yk-amount .yk-order{ font-size:.8rem; color:#9a9a9a; margin-top:4px; }
.yk-field{ margin-bottom:16px; }
.yk-field label{ display:block; font-size:.78rem; color:#6a6a6a; margin-bottom:7px; }
.yk-input{
  width:100%; background:#f6f6f7; border:1.5px solid #ececec; color:#1a1a1a;
  padding:13px 14px; border-radius:10px; font-family:inherit; font-size:1rem; letter-spacing:.02em;
  transition:border-color .2s, background .2s;
}
.yk-input::placeholder{ color:#b6b6b6; letter-spacing:.06em; }
.yk-input:focus{ outline:none; border-color:#8b3ffd; background:#fff; }
.yk-input--card{ background-repeat:no-repeat; background-position:right 14px center; }
.yk-row{ display:flex; gap:12px; }
.yk-row .yk-field{ flex:1; }
.yk-pay-btn{
  width:100%; margin-top:8px; padding:15px; border:none; border-radius:10px;
  background:#8b3ffd; color:#fff; font-family:inherit; font-size:1.02rem; font-weight:600;
  transition:filter .2s, transform .15s; cursor:pointer;
}
.yk-pay-btn:hover{ filter:brightness(1.07); }
.yk-pay-btn:active{ transform:translateY(1px); }
.yk-pay-btn:disabled{ background:#cfc3e8; cursor:not-allowed; }
.yk-note{ text-align:center; font-size:.72rem; color:#a8a8a8; margin-top:16px; }
.yk-error{ color:#d23b3b; font-size:.78rem; margin-top:6px; min-height:1em; }

/* состояние «Обработка платежа» */
.yk-processing{ padding:48px 24px; text-align:center; }
.yk-spinner{
  width:52px; height:52px; margin:0 auto 22px; border-radius:50%;
  border:4px solid #ece3ff; border-top-color:#8b3ffd; animation:yk-spin .9s linear infinite;
}
@keyframes yk-spin{ to{ transform:rotate(360deg) } }
.yk-processing p{ color:#5a5a5a; font-size:1rem; }
.yk-processing small{ display:block; color:#a8a8a8; font-size:.8rem; margin-top:6px; }

/* состояние «Успех» — рисующаяся зелёная галочка + пульс */
.yk-success{ padding:44px 28px; text-align:center; }
.yk-check{
  width:104px; height:104px; margin:0 auto 24px; border-radius:50%;
  background:#eafaf0; display:grid; place-items:center;
  animation:yk-check-pulse 1.6s var(--ease) .2s infinite;
}
@keyframes yk-check-pulse{
  0%,100%{ box-shadow:0 0 0 0 rgba(60,190,110,.0) }
  35%{ box-shadow:0 0 0 14px rgba(60,190,110,.16) }
}
.yk-check svg{ width:60px; height:60px; }
.yk-check circle{ fill:none; stroke:#3cbe6e; stroke-width:5; stroke-dasharray:170; stroke-dashoffset:170;
  animation:yk-draw .55s var(--ease) forwards; }
.yk-check path{ fill:none; stroke:#3cbe6e; stroke-width:6; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:60; stroke-dashoffset:60; animation:yk-draw .4s var(--ease) .5s forwards; }
@keyframes yk-draw{ to{ stroke-dashoffset:0 } }
.yk-success h2{ font-family:'Jost',sans-serif; font-size:1.5rem; font-weight:600; color:#1a1a1a; margin-bottom:8px; }
.yk-success .yk-sum{ font-size:1.9rem; font-weight:600; color:#3cbe6e; margin:6px 0 4px; }
.yk-success p{ color:#8a8a8a; font-size:.9rem; margin-bottom:24px; }

/* ============================================================
   ФОРМЫ ВХОДА / РЕГИСТРАЦИИ (тёмная тема AURUM)
   ============================================================ */
.auth{ max-width:440px; margin:0 auto; }
.auth-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:36px 32px; box-shadow:var(--shadow);
}
.auth-card h1{ font-size:2rem; margin-bottom:6px; }
.auth-card .auth-sub{ color:var(--muted); font-size:.92rem; margin-bottom:26px; }
.auth-card .field{ margin-bottom:18px; }
.auth-card .field input{
  width:100%; background:var(--bg-2); border:1px solid var(--line); color:var(--text);
  padding:13px 14px; border-radius:10px; font-family:inherit; font-size:1rem;
}
.auth-card .field input:focus{ outline:none; border-color:var(--gold); }
.auth-card .btn{ width:100%; margin-top:8px; }
.auth-alt{ text-align:center; color:var(--muted); font-size:.9rem; margin-top:22px; }
.auth-alt a{ color:var(--gold); }
.auth-msg{ font-size:.85rem; margin-top:14px; min-height:1.1em; text-align:center; }
.auth-msg.is-error{ color:var(--red); }
.auth-msg.is-ok{ color:var(--green); }
/* honeypot — скрыто от людей, видно ботам */
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; opacity:0; }
/* капча-блок */
.captcha{ background:var(--bg-2); border:1px solid var(--line); border-radius:10px;
  padding:14px 16px; margin-bottom:18px; }
.captcha label{ display:block; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.captcha__row{ display:flex; align-items:center; gap:12px; }
.captcha__q{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--gold-2); white-space:nowrap; }
.captcha input{ flex:1; min-width:80px; background:var(--bg); border:1px solid var(--line); color:var(--text);
  padding:11px 12px; border-radius:9px; font-size:1rem; }
.captcha input:focus{ outline:none; border-color:var(--gold); }
/* код подтверждения email (6 цифр) */
.code-inputs{ display:flex; gap:10px; justify-content:center; margin:8px 0 22px; }
.code-inputs input{
  width:48px; height:58px; text-align:center; font-size:1.5rem; font-family:'Cormorant Garamond',serif;
  background:var(--bg-2); border:1px solid var(--line); color:var(--text); border-radius:10px;
}
.code-inputs input:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,168,106,.2); }
.auth-step{ display:none; } .auth-step.active{ display:block; }
/* переключатель способа подтверждения: email / телефон */
.verify-switch{ display:flex; gap:10px; margin-bottom:22px; }
.vm-btn{ flex:1; padding:11px 12px; border-radius:10px; cursor:pointer;
  background:var(--bg-2); border:1px solid var(--line); color:var(--muted);
  font-size:.9rem; letter-spacing:.02em; transition:all .25s; }
.vm-btn:hover{ color:var(--text); border-color:var(--gold); }
.vm-btn.active{ background:var(--gold); color:#231c10; border-color:var(--gold); font-weight:600; }

/* ---------- Футер ---------- */
.footer{ border-top:1px solid var(--line); padding:60px 0 34px; margin-top:40px; }
.footer__grid{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:40px; margin-bottom:40px; }
.footer__grid h4{ font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.footer__grid a, .footer__grid p{ display:block; color:var(--muted); font-size:.92rem; margin-bottom:8px; transition:color .25s; }
.footer__grid a:hover{ color:var(--text); }
.footer .brand{ font-size:1.8rem; margin-bottom:14px; }
.footer__bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  padding-top:24px; border-top:1px solid var(--line); color:var(--muted); font-size:.82rem; }

/* ---------- Reveal-анимация ---------- */
[data-reveal]{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); transition-delay:var(--d,0s); }
[data-reveal].is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; }
  [data-reveal]{ opacity:1; transform:none; transition:none; }
}

/* ---------- Адаптив ---------- */
@media (max-width:920px){
  .about{ grid-template-columns:1fr; gap:40px; }
  .about__media{ aspect-ratio:16/10; max-width:520px; }
  .booking-grid{ grid-template-columns:1fr; }
  .summary{ position:static; }
  .footer__grid{ grid-template-columns:1fr 1fr; }
  /* галерея: 2 колонки на планшете */
  .gallery{ grid-template-columns:repeat(2,1fr); }
  .gallery__item--wide{ grid-column:span 2; }
  .gallery__item--tall{ grid-row:span 1; }
}
@media (max-width:760px){
  .nav__burger{ display:block; }
  .nav__links{
    position:fixed; inset:72px 0 auto 0; flex-direction:column; gap:0; align-items:stretch;
    background:rgba(12,11,10,.97); backdrop-filter:blur(14px); border-bottom:1px solid var(--line);
    padding:8px 24px 20px; transform:translateY(-120%); transition:transform .4s var(--ease);
    pointer-events:none;
  }
  .nav__links.open{ transform:translateY(0); pointer-events:auto; }
  .nav__links a{ padding:14px 0; border-bottom:1px solid var(--line); }
  .nav__cta{ margin:14px 0 0; }
  .section{ padding:64px 0; }
  .page-head{ padding:90px 0 36px; }
  .pass-details{ grid-template-columns:1fr 1fr; }
}
@media (max-width:480px){
  .container{ padding:0 18px; }
  .hero{ min-height:88vh; }
  .stats{ gap:26px; }
  .table-spot{ width:46px; height:46px; }
  .footer__grid{ grid-template-columns:1fr; }
  /* галерея: 1 колонка на телефоне */
  .gallery{ grid-template-columns:1fr; grid-auto-rows:220px; }
  .gallery__item--wide,.gallery__item--tall{ grid-column:span 1; grid-row:span 1; }
  .pass-details{ grid-template-columns:1fr; }
  .yk-overlay{ padding:14px; }
  .yk-body{ padding:20px; }
  .auth-card{ padding:28px 22px; }
  .code-inputs input{ width:42px; height:52px; font-size:1.3rem; }
}
