/* =========================================================
   КОРНИ — дизайн-система
   Молочный + пыльная терракота, liquid glass (iOS/macOS 26)
   ========================================================= */
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(/fonts/golos-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(/fonts/golos-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(/fonts/golos-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(/fonts/golos-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(/fonts/playfair-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(/fonts/playfair-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(/fonts/playfair-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  /* Фоны */
  --bg-primary: #0A0A0A;
  --bg-secondary: #141414;
  --bg-tertiary: #1E1E1E;
  --bg-elevated: #252525;
  --bg-grad-hero: linear-gradient(180deg, #0A0A0A 0%, #141414 40%, #1A1A1A 70%, #0D0D0D 100%);
  --bg-grad-section: linear-gradient(135deg, #0A0A0A 0%, #1C1C1C 50%, #0A0A0A 100%);
  --bg-grad-card: linear-gradient(180deg, #1A1A1A 0%, #121212 100%);

  /* Текст */
  --text-primary: #F5F5F5;
  --text-secondary: #BDBDBD;
  --text-muted: #757575;
  --text-on-dark: #FFFFFF;
  --text-on-light: #0A0A0A;

  /* Кнопки */
  --btn-bg: linear-gradient(180deg, #4A4A4A 0%, #2E2E2E 100%);
  --btn-bg-hover: linear-gradient(180deg, #5A5A5A 0%, #3A3A3A 100%);
  --btn-text: #FFFFFF;
  --btn-border: rgba(255,255,255,0.15);
  --btn-outline-bg: transparent;
  --btn-outline-border: rgba(255,255,255,0.4);
  --btn-outline-text: #F5F5F5;
  --btn-outline-hover-bg: rgba(255,255,255,0.08);

  /* Рамки */
  --border-subtle: rgba(255,255,255,0.06);
  --border-default: rgba(255,255,255,0.12);
  --border-strong: rgba(255,255,255,0.24);

  /* Тени */
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.6);
  --shadow-md: 0 4px 24px rgba(0,0,0,0.7);
  --shadow-lg: 0 8px 48px rgba(0,0,0,0.8);
  --shadow-inset: inset 0 1px 0 rgba(255,255,255,0.08);

  /* Оверлеи */
  --overlay-dark: rgba(0,0,0,0.75);
  --overlay-medium: rgba(0,0,0,0.55);
  --overlay-light: rgba(0,0,0,0.35);
  --overlay-gradient: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.85) 100%);

  /* Поля */
  --input-bg: #1A1A1A;
  --input-border: rgba(255,255,255,0.15);
  --input-border-focus: rgba(255,255,255,0.5);
  --input-text: #F5F5F5;
  --input-placeholder: #616161;

  /* Состояния */
  --success: #9E9E9E;
  --success-bg: rgba(158,158,158,0.1);
  --error: #BDBDBD;
  --error-bg: rgba(189,189,189,0.1);

  /* Скролл */
  --scrollbar-track: #0A0A0A;
  --scrollbar-thumb: #3A3A3A;
  --scrollbar-thumb-hover: #525252;

  /* Совместимость со старыми именами */
  --bg-base:        var(--bg-primary);
  --bg-elevated-2:  var(--bg-tertiary);
  --glass-fill:     rgba(255,255,255,0.06);
  --glass-fill-strong: rgba(255,255,255,0.10);
  --glass-border:   var(--border-default);
  --glass-highlight: rgba(255,255,255,0.08);
  --accent:         #4A4A4A;
  --accent-soft:    #BDBDBD;
  --accent-dim:     rgba(255,255,255,0.12);
  --on-accent:      #FFFFFF;
  --divider:        var(--border-subtle);
  --danger:         var(--error);

  /* Типографика */
  --font-display: 'Playfair Display', 'Georgia', serif;
  --font-body: 'Golos Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-tag: var(--font-body);

  /* Форма */
  --radius-lg: 28px;
  --radius-md: 20px;
  --radius-sm: 14px;
  --radius-pill: 999px;

  /* Тень */
  --shadow-soft: var(--shadow-md);
  --shadow-glow: 0 0 34px -8px rgba(255,255,255,0.12);

  --ease-out: cubic-bezier(.22,1,.36,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
}

html{ overflow-x:clip; }
body{
  margin:0;
  background:var(--bg-base);
  color:var(--text-primary);
  font-family:var(--font-body);
  font-weight:500;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul, ol{ list-style:none; margin:0; padding:0; }
button{
  font-family:inherit;
  cursor:pointer;
  margin:0;
  color:inherit;
  appearance:none;
  -webkit-appearance:none;
}

.container{
  width:100%;
  max-width:1160px;
  margin:0 auto;
  padding:0 20px;
}

/* Организационная текстура: корневые узоры на фоне */
.root-texture{
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    var(--overlay-gradient),
    var(--bg-primary);
}
.root-texture::before,
.root-texture::after{
  content:"";
  position:absolute;
  background-repeat:no-repeat;
  background-size:contain;
  opacity:0.12;
  filter:invert(1) brightness(0.9);
}
html.is-decorated .root-texture::before,
html.is-decorated .root-texture::after{
  background-image:url('/assets/logo-icon.webp');
}
.root-texture::before{
  width:640px; height:400px;
  top:-60px; left:-140px;
  transform:rotate(-8deg);
  animation:texture-drift 32s ease-in-out infinite alternate;
}
.root-texture::after{
  width:760px; height:470px;
  bottom:-120px; right:-180px;
  transform:rotate(6deg) scaleX(-1);
  animation:texture-drift-alt 38s ease-in-out infinite alternate;
}
@keyframes texture-drift{
  from{ transform:rotate(-8deg) translate(0,0); }
  to{ transform:rotate(-5deg) translate(18px, 10px); }
}
@keyframes texture-drift-alt{
  from{ transform:rotate(6deg) scaleX(-1) translate(0,0); }
  to{ transform:rotate(4deg) scaleX(-1) translate(-16px, -12px); }
}
@media (max-width:700px){
  .root-texture::before{ width:360px; height:225px; top:-30px; left:-110px; }
  .root-texture::after{ width:420px; height:260px; bottom:-60px; right:-130px; }
}

/* =========================
   Плашка согласия — внизу по центру, без блюра
   ========================= */
.consent-overlay{
  position:fixed; inset:0; z-index:400;
  display:flex; align-items:flex-end; justify-content:center;
  padding:16px 16px 24px;
  background:transparent;
  opacity:0; pointer-events:none;
  transition:opacity .35s var(--ease-out);
}
.consent-overlay.is-open{ opacity:1; }
.consent-overlay:not(.is-open) .consent-modal{ pointer-events:none; }
@media (max-width:880px){ .consent-overlay{ padding-bottom:104px; } }

.consent-modal{
  width:100%; max-width:420px;
  pointer-events:auto;
  background:var(--bg-elevated);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
  padding:28px 26px;
  text-align:center;
  transform:translateY(16px); opacity:0;
  transition:transform .4s var(--ease-out), opacity .4s var(--ease-out);
}
.consent-overlay.is-open .consent-modal{ transform:translateY(0); opacity:1; }

.consent-modal h3{
  font-family:var(--font-display); font-weight:600; font-size:21px;
  margin:0 0 10px; color:var(--text-primary);
}
.consent-modal p{
  margin:0 0 12px; font-size:14px; line-height:1.6; color:var(--text-secondary);
}
.consent-modal p:last-of-type{ margin-bottom:20px; }
.consent-modal a{ color:var(--accent); border-bottom:1px solid transparent; }
.consent-modal a:hover{ border-color:var(--accent); }
.consent-modal .btn{ width:100%; justify-content:center; }

/* =========================
   Возраст 18+ — блокирует сайт до ответа
   ========================= */
.age-overlay{
  position:fixed; inset:0; z-index:500;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  background:var(--overlay-dark);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  opacity:0; pointer-events:none;
  transition:opacity .35s var(--ease-out);
}
.age-overlay.is-open,
.age-overlay.is-denied{ opacity:1; pointer-events:auto; }
body.is-age-locked,
body.is-age-denied{ overflow:hidden; overscroll-behavior:none; }
body.is-age-denied header,
body.is-age-denied main,
body.is-age-denied footer,
body.is-age-denied .tab-bar,
body.is-age-denied .call-fab,
body.is-age-denied .to-top,
body.is-age-denied .consent-overlay,
body.is-age-denied .sheet-overlay{
  visibility:hidden !important;
  pointer-events:none !important;
}
.age-modal{
  width:100%; max-width:440px;
  min-width:0;
  background:var(--bg-elevated);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
  padding:32px 28px 28px;
  text-align:center;
}
.age-modal h3{
  font-family:var(--font-display); font-weight:600; font-size:24px;
  margin:0 0 12px; color:var(--text-primary);
}
.age-modal p{
  margin:0 0 24px; font-size:14.5px; line-height:1.65; color:var(--text-secondary);
}
.age-overlay.is-denied .age-modal p{ margin-bottom:0; }
.age-modal__actions{ display:flex; flex-direction:column; gap:10px; }
.age-modal__actions .btn{ width:100%; justify-content:center; }

/* =========================
   Верхняя навигация (десктоп)
   ========================= */
.top-nav{
  position:fixed;
  top:18px; left:50%;
  transform:translateX(-50%);
  animation:nav-in .7s var(--ease-out) both;
  z-index:150;
  width:min(1040px, calc(100% - 32px));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 12px 10px 20px;
  border-radius:var(--radius-pill);
  background:rgba(45,18,22,0.92);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid var(--border-subtle);
  box-shadow:var(--shadow-soft), var(--shadow-inset);
}
.top-nav__logo{ font-family:var(--font-display); font-size:19px; letter-spacing:.02em; color:var(--text-primary); }

.logo-lockup{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 1 auto;
  min-width:0;
}
.logo-lockup__word{ height:16px; width:auto; display:block; flex:0 0 auto; filter:invert(1) brightness(0.9); }
.logo-lockup__divider{ width:1px; height:22px; background:var(--text-primary); opacity:.4; margin:0 2px; flex:0 0 auto; }
.logo-lockup__tag{
  font-family:var(--font-tag);
  font-weight:600;
  font-size:14.5px;
  color:var(--text-primary);
  white-space:nowrap;
  flex:0 0 auto;
}
.top-nav__links{ display:flex; gap:2px; flex:1 1 auto; justify-content:center; min-width:0; }
.top-nav__links a{
  font-size:14px;
  color:var(--text-secondary);
  padding:9px 13px;
  border-radius:var(--radius-pill);
  white-space:nowrap;
  transition:background .3s var(--ease-out), color .3s var(--ease-out);
}
.top-nav__links a:hover, .top-nav__links a.is-active{ color:var(--text-primary); background:var(--btn-outline-hover-bg); }
.top-nav__cta{
  font-size:14px; font-weight:600;
  padding:10px 20px;
  border-radius:var(--radius-pill);
  background:var(--btn-bg);
  background-origin:border-box;
  background-clip:padding-box;
  color:var(--btn-text);
  border:1px solid var(--btn-border);
  box-shadow:var(--shadow-sm);
  white-space:nowrap;
  flex:0 0 auto;
  transition:filter .3s var(--ease-out), transform .3s var(--ease-out), background .3s var(--ease-out), box-shadow .3s var(--ease-out);
}
.top-nav__cta:hover{ filter:none; transform:translateY(-1px); background:var(--btn-bg-hover); background-origin:border-box; background-clip:padding-box; box-shadow:var(--shadow-md); }

@media (max-width:880px){
  .top-nav__links{ display:none; }
  .top-nav{ padding:10px 10px 10px 20px; }
  .top-nav__cta{ font-size:13px; padding:9px 18px; }
  .logo-lockup{ gap:4px; }
  .logo-lockup__word{ height:13px; }
  .logo-lockup__divider{ height:16px; margin:0; }
  .logo-lockup__tag{ font-size:11px; }
}
@media (max-width:430px){
  .logo-lockup{ gap:4px; min-width:0; }
  .logo-lockup__divider{ display:block; height:12px; margin:0 1px; }
  .logo-lockup__tag{ display:block; font-size:10px; }
  .top-nav{ width:calc(100% - 16px); gap:8px; padding:8px 8px 8px 14px; }
  .top-nav__cta{ font-size:12px; padding:8px 14px; }
  .tab-bar{ width:calc(100% - 16px); max-width:calc(100vw - 16px); justify-content:space-around; gap:0; padding:6px; }
  .tab-bar__item{ width:auto; flex:1 1 0; min-width:0; padding:8px 0 7px; }
  .tab-bar__item span{ font-size:10px; }
  .hero__subtitle{ padding:0 16px; font-size:15px; }
  .hero__actions{ width:100%; padding:0 16px; }
  .hero__actions .btn{ flex:1 1 160px; justify-content:center; }
  .age-overlay{ padding:16px; }
  .age-modal{ min-width:0; max-width:100%; padding:28px 18px 22px; }
  .contact-legal p{ overflow-wrap:anywhere; }
  .social-pill{ max-width:100%; }
}
@media (min-width:881px) and (max-width:1024px){
  .logo-lockup{ gap:5px; }
  .logo-lockup__word{ height:14px; }
  .logo-lockup__divider{ height:18px; margin:0; }
  .logo-lockup__tag{ font-size:12px; }
  .top-nav__links a{ padding:9px 10px; }
}

/* =========================
   Нижняя овальная навигация (мобильная, liquid glass)
   ========================= */
.tab-bar{
  position:fixed;
  left:50%; bottom:16px;
  transform:translateX(-50%);
  z-index:150;
  display:none;
  align-items:center;
  gap:2px;
  padding:8px;
  border-radius:var(--radius-pill);
  background:var(--glass-fill-strong);
  backdrop-filter:blur(26px) saturate(160%);
  -webkit-backdrop-filter:blur(26px) saturate(160%);
  border:1px solid var(--glass-border);
  box-shadow:var(--shadow-soft), inset 0 1px 0 var(--glass-highlight);
}
.tab-bar__item{
  position:relative;
  isolation:isolate;
  z-index:0;
  display:flex; flex-direction:column; align-items:center; gap:3px;
  width:64px; padding:9px 0 8px;
  border-radius:var(--radius-pill);
  color:var(--text-primary);
  transition:color .35s var(--ease-out);
}
.tab-bar__item svg{ width:21px; height:21px; }
.tab-bar__item span{ font-size:10.5px; font-weight:700; }
.tab-bar__item.is-active{ color:var(--on-accent); }
.tab-bar__item.is-active::before{
  content:"";
  position:absolute; inset:0;
  background:var(--accent);
  border-radius:var(--radius-pill);
  z-index:-1;
  box-shadow:var(--shadow-glow);
}
@media (max-width:880px){
  .tab-bar{
    display:flex;
    animation:segments-intro .7s var(--ease-out) .2s both, segments-attention 1.8s var(--ease-out) 1.1s 1;
  }
}
@keyframes nav-in{
  from{ opacity:0; transform:translateX(-50%) translateY(-14px); }
  to{ opacity:1; transform:translateX(-50%) translateY(0); }
}
@keyframes tab-in{
  from{ opacity:0; transform:translateX(-50%) translateY(18px); }
  to{ opacity:1; transform:translateX(-50%) translateY(0); }
}

/* =========================
   Плавающая кнопка звонка
   ========================= */
.call-fab{
  position:fixed;
  right:20px; bottom:96px;
  z-index:150;
  width:58px; height:58px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--accent);
  color:var(--on-accent);
  border:none;
  box-shadow:var(--shadow-soft), var(--shadow-glow);
  animation:fab-pulse 3.2s ease-in-out infinite;
}
.call-fab svg{ width:24px; height:24px; }
@keyframes fab-pulse{
  0%,100%{ box-shadow:var(--shadow-soft), 0 0 0 0 rgba(255,255,255,0.18); }
  50%{ box-shadow:var(--shadow-soft), 0 0 0 10px rgba(255,255,255,0); }
}
@media (min-width:881px){ .call-fab{ bottom:28px; } }

/* Кнопка «наверх» — зеркало кнопки звонка слева */
.to-top{
  position:fixed;
  left:20px; bottom:96px;
  z-index:150;
  width:58px; height:58px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--glass-fill-strong);
  color:var(--text-primary);
  border:1px solid var(--glass-border);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  opacity:0;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .35s var(--ease-out), transform .35s var(--ease-out);
}
.to-top svg{ width:22px; height:22px; }
.to-top.is-visible{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
.to-top:hover{ background:var(--accent); color:var(--on-accent); }
@media (min-width:881px){ .to-top{ bottom:28px; } }

/* =========================
   Хлебные крошки
   ========================= */
.breadcrumbs{
  padding:110px 0 0;
}
.breadcrumbs ol{ display:flex; flex-wrap:wrap; gap:6px; font-size:13px; color:var(--text-muted); }
.breadcrumbs li:not(:last-child)::after{ content:"/"; margin-left:6px; color:var(--text-muted); }
.breadcrumbs a:hover{ color:var(--accent-soft); }

/* =========================
   Hero
   ========================= */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
  padding:120px 20px 80px;
}
.hero__media{
  position:absolute; inset:0; z-index:-2;
  background-image:
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px),
    var(--bg-grad-hero);
  background-size:40px 40px, 40px 40px, 100% 100%;
}
.hero__media img, .hero__media video{
  width:100%; height:100%; object-fit:cover;
  position:absolute; inset:0;
}
.hero__media video{ opacity:0; transition:opacity 1.2s var(--ease-out); }
.hero__media video.is-loaded{ opacity:1; }
.hero__scrim{
  position:absolute; inset:0; z-index:-1;
  background:var(--overlay-gradient);
}
.hero__logo{
  margin:0 auto;
  width:min(340px, 76vw);
  height:auto;
  aspect-ratio: 1 / 1;
  animation: logo-float 5.8s ease-in-out 1.5s infinite;
  filter:invert(1) brightness(0.9);
}
@media (min-width:881px){
  .hero__logo{ width:min(420px, 40vw); }
}
.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;
}
.hero__subtitle{
  max-width:480px;
  margin:24px auto 0;
  font-size:16.5px;
  line-height:1.6;
  color:var(--text-on-dark);
  text-shadow:0 1px 4px rgba(0,0,0,0.9);
  opacity:0;
  animation:reveal-up .9s var(--ease-out) .9s forwards;
}
.hero__actions{
  display:flex; gap:14px; flex-wrap:wrap; justify-content:center;
  margin-top:36px;
  opacity:0;
  animation:reveal-up .9s var(--ease-out) 1.1s forwards;
}
@keyframes reveal-up{ from{ opacity:0; transform:translateY(18px);} to{ opacity:1; transform:translateY(0);} }
@keyframes logo-reveal{ from{ opacity:0; transform:scale(0.85);} to{ opacity:1; transform:scale(1);} }
@keyframes logo-float{
  0%,100%{ transform:translateY(0) scale(1); }
  50%{ transform:translateY(-7px) scale(1); }
}

.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-size:15px; font-weight:600;
  padding:15px 28px;
  border-radius:var(--radius-pill);
  border:1px solid transparent;
  transition:transform .35s var(--ease-out), filter .35s var(--ease-out), background .35s var(--ease-out);
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:scale(0.97); }
.btn:disabled,
.btn[disabled]{
  opacity:.45;
  pointer-events:none;
  transform:none;
  cursor:not-allowed;
  filter:none;
}
.btn--primary{
  background:var(--btn-bg);
  background-origin:border-box;
  background-clip:padding-box;
  color:var(--btn-text);
  border:1px solid var(--btn-border);
  box-shadow:var(--shadow-sm);
}
.btn--primary:hover{
  filter:none;
  background:var(--btn-bg-hover);
  background-origin:border-box;
  background-clip:padding-box;
  box-shadow:var(--shadow-md);
}
.btn--ghost{
  background:var(--btn-outline-bg);
  color:var(--btn-outline-text);
  border-color:var(--btn-outline-border);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.btn--ghost:hover{ background:var(--btn-outline-hover-bg); border-color:rgba(255,255,255,0.5); }

.scroll-hint{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
  font-size:12px; color:var(--text-muted);
  display:flex; flex-direction:column; align-items:center; gap:8px;
}
.scroll-hint span:first-child{ width:1px; height:34px; background:linear-gradient(var(--accent-soft), transparent); animation:scroll-line 1.8s var(--ease-out) infinite; }
@keyframes scroll-line{ 0%{ transform:scaleY(0); transform-origin:top;} 50%{ transform:scaleY(1); transform-origin:top;} 51%{transform-origin:bottom;} 100%{ transform:scaleY(0); transform-origin:bottom;} }

/* =========================
   Секции — общее
   ========================= */
.section{
  padding:96px 0;
  position:relative;
  content-visibility:auto;
  contain-intrinsic-size:auto 800px;
  background:linear-gradient(180deg, #0A0A0A 0%, #121212 50%, #0A0A0A 100%);
  border-top:none;
}
.section:nth-of-type(4n+2){ background:linear-gradient(180deg, #0A0A0A 0%, #0E0E0E 50%, #0A0A0A 100%); }
.section:nth-of-type(4n+3){ background:linear-gradient(180deg, #0A0A0A 0%, #141414 50%, #0A0A0A 100%); }
.section:nth-of-type(4n+4){ background:linear-gradient(180deg, #0A0A0A 0%, #101010 50%, #0A0A0A 100%); }
.section:nth-of-type(4n+5){ background:linear-gradient(180deg, #0A0A0A 0%, #0C0C0C 50%, #0A0A0A 100%); }
.section--tight{
  padding:64px 0;
  background-image:
    url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E"),
    linear-gradient(180deg, #0A0A0A 0%, #101010 50%, #0A0A0A 100%);
}
#gallery{
  background:#0A0A0A;
  background-image:none;
}
.section-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
  margin-bottom:40px; flex-wrap:wrap;
}
.section-head h2{
  font-family:var(--font-display);
  font-weight:500;
  font-size:clamp(30px, 4vw, 42px);
  margin:0;
  max-width:520px;
  color:#FFFFFF;
}
.section-head p{ margin:10px 0 0; color:var(--text-secondary); max-width:440px; font-size:15px; line-height:1.6; }
.section-head__link{
  font-size:14px; color:var(--text-secondary);
  padding:12px 4px; white-space:nowrap;
  border-bottom:1px solid var(--border-default);
}
.section-head__link:hover{ color:var(--text-primary); border-color:var(--border-strong); }

/* =========================
   Меню — превью категорий
   ========================= */
.menu-scroller-wrap{
  position:relative;
  overflow:hidden;
  overscroll-behavior:contain;
}
.menu-scroller{
  display:flex; align-items:stretch; gap:18px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:4px 4px 8px;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  overscroll-behavior-x:contain;
  overscroll-behavior-y:none;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
}
.menu-scroller img{ -webkit-user-drag:none; user-select:none; }
.menu-scroller::-webkit-scrollbar{ display:none; }
.h-scroll-arrow{
  position:absolute; top:42%; transform:translateY(-50%);
  width:40px; height:40px; border-radius:50%;
  background:var(--glass-fill-strong); backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid var(--glass-border); color:var(--text-primary);
  display:flex; align-items:center; justify-content:center;
  line-height:0; font-size:0;
  cursor:pointer; z-index:3; padding:0;
  box-shadow:var(--shadow-soft);
}
.h-scroll-arrow svg{ width:16px; height:16px; display:block; flex-shrink:0; }
.h-scroll-arrow--prev{ left:6px; }
.h-scroll-arrow--prev svg{ transform:translateX(-1px); }
.h-scroll-arrow--next{ right:6px; }
.h-scroll-arrow--next svg{ transform:translateX(1px); }
.h-scroll-arrow:disabled,
.menu-scroller-wrap.is-static .h-scroll-arrow{
  opacity:0;
  pointer-events:none;
}
.h-scroll-arrow:active:not(:disabled){ transform:translateY(-50%) scale(0.96); }
@media (max-width: 720px){
  .h-scroll-arrow{ width:34px; height:34px; }
}
.btn, .filter-chip, .product-card, .related-card, .table-card, .segment, .promo-block, .menu-card{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.btn:active:not(:disabled){ filter:brightness(0.96); }
.menu-card{
  scroll-snap-align:start;
  scroll-snap-stop:always;
  display:flex; flex-direction:column;
  flex:0 0 250px;
  width:250px;
  height:auto;
  align-self:stretch;
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:var(--bg-grad-card);
  border:1px solid var(--border-subtle);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:var(--shadow-md);
  color:inherit;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  transform:none;
}
.menu-card__img{ aspect-ratio:3 / 4; height:auto; flex-shrink:0; overflow:hidden; }
.menu-card__img img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (hover: hover) and (pointer: fine){
  .menu-card{ transition:border-color .45s var(--ease-out), box-shadow .45s var(--ease-out); }
  .menu-card:hover{ border-color:var(--border-default); box-shadow:var(--shadow-lg); background:linear-gradient(180deg, #222222, #161616); }
  .menu-card__img img{ transition:transform .6s var(--ease-out); }
  .menu-card:hover .menu-card__img img{ transform:scale(1.06); }
}
.menu-card__body{ display:flex; flex-direction:column; flex:1; padding:18px 20px 22px; }
.menu-card__body h3{ font-family:var(--font-display); font-weight:500; font-size:19px; margin:0 0 6px; min-height:1.2em; color:var(--text-primary); }
.menu-card__body p{
  margin:0; font-size:13.5px; color:var(--text-secondary);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  min-height:calc(1.45em * 2); line-height:1.45;
}
.menu-card__count{ display:inline-block; margin-top:auto; padding-top:12px; font-size:12.5px; color:var(--accent-soft); }

/* =========================
   Акции
   ========================= */
.promo-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:18px; }
.promo-block{
  position:relative;
  aspect-ratio:3 / 4;
  min-height:0;
  border-radius:var(--radius-lg);
  padding:26px;
  display:flex; flex-direction:column; justify-content:flex-end;
  overflow:hidden;
  border:1px solid var(--glass-border);
  isolation:isolate;
  color:inherit;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.promo-block img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;
  transition:transform 1.1s var(--ease-out);
}
.promo-block:hover img{ transform:scale(1.05); }
.promo-block::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, var(--overlay-light), var(--overlay-dark));
}
.promo-block h3{ font-family:var(--font-display); font-weight:500; font-size:22px; margin:0 0 6px; color:var(--text-on-dark); }
.promo-block p{ margin:0; font-size:13.5px; color:var(--text-secondary); max-width:280px; }
.promo-block__tag{
  position:absolute; top:20px; left:20px;
  font-size:12px; font-weight:600; color:var(--on-accent);
  background:var(--accent-soft);
  padding:6px 14px; border-radius:var(--radius-pill);
}
@media (max-width:700px){ .promo-grid{ grid-template-columns:1fr; } }

/* =========================
   Галерея — авто-лента
   ========================= */
.gallery{ overflow:hidden; position:relative; }
.gallery::before, .gallery::after{
  content:""; position:absolute; top:0; bottom:0; width:80px; z-index:2; pointer-events:none;
}
.gallery::before{ left:0; background:linear-gradient(90deg, var(--bg-base), transparent); }
.gallery::after{ right:0; background:linear-gradient(270deg, var(--bg-base), transparent); }
.gallery-track{
  display:flex; gap:16px; width:max-content;
  animation:gallery-scroll 102s linear infinite;
}
.gallery:hover .gallery-track{ animation-play-state:paused; }
.gallery-track img{
  width:210px; height:280px; object-fit:cover;
  border-radius:var(--radius-md);
  border:1px solid var(--glass-border);
}
@keyframes gallery-scroll{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* =========================
   Статьи / блог-превью
   ========================= */
.article-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.article-grid .menu-error{ grid-column:1 / -1; }
.article-card{
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:var(--bg-grad-card);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid var(--border-subtle);
  box-shadow:var(--shadow-md);
  transition:transform .4s var(--ease-out);
}
.article-card:hover{ transform:translateY(-5px); border-color:var(--border-default); box-shadow:var(--shadow-lg); background:linear-gradient(180deg, #222222, #161616); }
.article-card__img{ aspect-ratio:3 / 4; height:auto; overflow:hidden; }
.article-card__img img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease-out); }
.article-card:hover .article-card__img img{ transform:scale(1.06); }
.article-card__body{ padding:20px 22px 24px; }
.article-card__date{ font-size:12px; color:var(--text-muted); }
.article-card h3{ font-family:var(--font-display); font-weight:500; font-size:18px; margin:10px 0 8px; line-height:1.3; color:var(--text-primary); }
.article-card p{ margin:0; font-size:13.5px; color:var(--text-secondary); line-height:1.55; }
@media (max-width:900px){ .article-grid{ grid-template-columns:1fr; } }

/* =========================
   Соцссылки
   ========================= */
.social-row{ display:flex; gap:14px; flex-wrap:wrap; }
.social-pill{
  display:flex; align-items:center; gap:10px;
  padding:14px 22px;
  border-radius:var(--radius-pill);
  background:var(--glass-fill);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  font-size:14px; font-weight:500;
  transition:background .35s var(--ease-out), transform .35s var(--ease-out);
}
.social-pill:hover{ background:var(--btn-outline-hover-bg); transform:translateY(-3px); }
.social-pill svg{ width:18px; height:18px; color:var(--accent-soft); }

/* =========================
   Футер
   ========================= */
.footer{ padding:60px 0 140px; border-top:none; background:linear-gradient(180deg, #0A0A0A 0%, #0A0A0A 100%); }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; }
.footer-brand h2{ font-family:var(--font-display); font-size:24px; margin:0 0 10px; color:#FFFFFF; }
.footer-brand p{ font-size:13.5px; color:var(--text-secondary); max-width:320px; line-height:1.6; }
.footer h4{ font-size:13px; color:var(--text-muted); margin:0 0 16px; font-weight:500; }
.footer ul li{ margin-bottom:10px; }
.footer ul a{ font-size:14px; color:var(--text-secondary); }
.footer ul a:hover{ color:var(--text-primary); }
.footer-bottom{
  margin-top:48px; padding-top:24px; border-top:1px solid var(--divider);
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  font-size:12.5px; color:var(--text-muted);
}
@media (max-width:800px){ .footer-grid{ grid-template-columns:1fr 1fr; } .footer-brand{ grid-column:1 / -1; } }
@media (max-width:880px){ .footer{ padding-bottom:150px; } }

/* =========================================================
   СТРАНИЦА МЕНЮ
   ========================================================= */

/* Заголовок страницы */
.page-head{ padding:16px 0 36px; }
.page-head h1{ font-family:var(--font-display); font-weight:500; font-size:clamp(34px,5vw,50px); margin:6px 0 10px; color:#FFFFFF; }
.page-head p{ margin:0; color:var(--text-secondary); max-width:480px; font-size:15px; line-height:1.6; }

/* Категории — десктопная строка табов; на телефоне только нижнее меню */
.category-tabs{
  position:sticky; top:80px; z-index:60;
  display:flex; gap:8px; overflow-x:auto;
  padding:8px; margin-bottom:12px;
  border-radius:var(--radius-pill);
  background:var(--glass-fill);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  box-shadow:var(--shadow-soft);
  scrollbar-width:none;
  width:fit-content;
}
.category-tabs::-webkit-scrollbar{ display:none; }
.category-tabs button{
  flex:0 0 auto;
  border:none; background:transparent;
  font-family:var(--font-body); font-size:14px; font-weight:700;
  color:var(--text-primary);
  padding:11px 20px;
  border-radius:var(--radius-pill);
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.category-tabs button.is-active{ background:var(--accent); color:var(--on-accent); }
@media (max-width:880px){ .category-tabs{ display:none; } }

.subcategory-tabs{
  position:sticky; top:148px; z-index:55;
  display:flex; flex-wrap:wrap;
  gap:8px;
  width:100%;
  padding:10px;
  margin-bottom:22px;
  border-radius:var(--radius-lg);
  background:var(--glass-fill);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  box-shadow:var(--shadow-soft);
}
.subcategory-tabs[hidden]{ display:none !important; }
.subcategory-tabs button{
  flex:0 0 auto;
  border:none;
  background:transparent;
  font-family:var(--font-body); font-size:13px; font-weight:600;
  color:var(--text-primary);
  padding:11px 18px;
  border-radius:var(--radius-pill);
  max-width:none;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.subcategory-tabs button.is-active{ background:var(--accent); color:var(--on-accent); }
@media (hover: hover) and (pointer: fine){
  .subcategory-tabs button:hover:not(.is-active){ background:var(--btn-outline-hover-bg); }
}
@media (max-width:880px){
  .subcategory-tabs{
    top:72px;
    display:grid;
    grid-template-columns:1fr 1fr;
    margin-bottom:16px;
  }
  .subcategory-tabs button{
    width:100%;
    text-align:center;
    padding:10px 8px;
    font-size:12.5px;
  }
}

/* Фильтры по тегам */
.filter-label{
  display:flex; align-items:center; gap:8px;
  margin-bottom:14px;
  font-size:13px; font-weight:600; color:var(--text-muted);
}
.filter-label svg{ width:16px; height:16px; color:var(--text-muted); }
.filter-chips{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px; }
.filter-chip{
  border:1px solid var(--glass-border);
  background:var(--glass-fill);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  color:var(--text-secondary);
  font-size:13.5px; font-weight:500;
  padding:9px 16px;
  border-radius:var(--radius-pill);
  transition:all .3s var(--ease-out);
}
.filter-chip:hover{ transform:translateY(-2px); border-color:var(--accent-dim); }
.filter-chip.is-active{ background:var(--accent-dim); border-color:var(--accent); color:var(--text-primary); }

/* Сетка товаров */
.product-section{ margin-bottom:64px; scroll-margin-top:140px; }
.product-section__title{ font-family:var(--font-display); font-weight:500; font-size:26px; margin:0 0 22px; color:#EEEEEE; }
.product-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
  gap:20px;
}
.product-card{
  display:flex; flex-direction:column;
  width:100%; height:100%; margin:0; padding:0;
  text-align:left; border:1px solid var(--border-subtle);
  background:var(--bg-grad-card);
  backdrop-filter:blur(44px) saturate(180%);
  -webkit-backdrop-filter:blur(44px) saturate(180%);
  border-radius:var(--radius-lg);
  overflow:hidden;
  cursor:pointer;
  color:var(--text-primary);
  appearance:none; -webkit-appearance:none;
  transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.product-card:hover{ transform:translateY(-5px); border-color:var(--border-default); box-shadow:var(--shadow-lg); background:linear-gradient(180deg, #222222, #161616); }
.product-card__img{ position:relative; aspect-ratio:3 / 4; height:auto; flex-shrink:0; overflow:hidden; }
.product-card__img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s var(--ease-out); }
.product-card:hover .product-card__img img{ transform:scale(1.06); }
.product-card__tags{ position:absolute; top:12px; left:12px; display:flex; gap:6px; flex-wrap:wrap; }
.product-card__tag{
  font-family:var(--font-tag); font-size:11px; font-weight:600;
  background:var(--glass-fill-strong);
  backdrop-filter:blur(10px);
  color:var(--text-primary);
  padding:5px 11px; border-radius:var(--radius-pill);
}
.product-card__body{ display:flex; flex-direction:column; flex:1; padding:16px 18px 20px; }
.product-card__row{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.product-card__row h3{
  font-family:var(--font-display); font-weight:500; font-size:17px; margin:0; line-height:1.25;
  color:var(--text-primary);
  -webkit-text-fill-color:var(--text-primary);
  flex:1 1 auto;
  min-width:0;
  padding-right:0.2em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  min-height:calc(1.25em * 2);
}
.product-card__row:has(.product-card__price--variants){
  flex-direction:column;
  align-items:stretch;
  gap:8px;
}
.product-card__row:has(.product-card__price--variants) h3{
  display:block;
  min-height:0;
  -webkit-line-clamp:unset;
  overflow:visible;
  padding-right:0;
}
.product-card__price{ font-weight:700; font-size:15px; color:#FFFFFF; white-space:nowrap; flex:0 0 auto; }
.product-card__price--variants,
.product-sheet__price--variants{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:4px;
  white-space:normal;
  text-align:right;
  font-size:12px;
  font-weight:600;
  line-height:1.25;
  max-width:58%;
}
.product-card__row:has(.product-card__price--variants) .product-card__price--variants{
  max-width:none;
  align-items:flex-start;
  text-align:left;
}
.product-card__price-variant,
.product-sheet__price-variant{ display:block; }
.product-card__price-variant em,
.product-sheet__price-variant em{
  display:block;
  font-style:normal;
  font-weight:500;
  color:var(--text-muted);
  font-size:11px;
}
.product-card__price--sale, .product-sheet__price--sale{
  display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; justify-content:flex-end;
}
.product-card__price s, .product-sheet__price s{
  color:var(--text-muted); font-weight:500; font-size:13px;
}
.discount-badge{
  background:var(--accent); color:var(--on-accent); font-weight:700;
  padding:2px 8px; border-radius:999px; font-size:12px;
}
.product-card__tag--sale{
  background:var(--accent); color:var(--on-accent); font-weight:700;
}
.menu-error{
  margin:24px 0 48px;
  padding:18px 20px;
  border-radius:var(--radius-lg, 20px);
  background:var(--bg-grad-card);
  border:1px solid var(--border-subtle);
  color:var(--text-secondary);
}
.menu-skeleton__title{
  width:180px; height:28px; border-radius:10px;
  background:var(--accent-dim); margin-bottom:22px;
}
.menu-skeleton__card{
  height:360px; border-radius:var(--radius-lg, 20px);
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent);
  background-size:200% 100%;
  animation: menuPulse 1.2s ease-in-out infinite;
}
@keyframes menuPulse{
  0%{ background-position:0 0; }
  100%{ background-position:200% 0; }
}
.product-card__desc{
  margin:8px 0 0; font-size:13px; color:var(--text-secondary); line-height:1.5;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}

/* Карточка товара: на телефоне — шторка чуть ниже верха, на ПК — на весь экран */
html.is-sheet-open,
html.is-sheet-open body{
  overflow:hidden;
  overscroll-behavior:none;
}
.sheet-overlay{
  position:fixed; inset:0; z-index:300;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding-top:6vh;
  background:var(--overlay-medium);
  opacity:0; pointer-events:none;
  transition:opacity .35s var(--ease-out);
  overscroll-behavior:none;
  touch-action:none;
}
.sheet-overlay.is-open{ opacity:1; pointer-events:auto; }
.product-sheet{
  position:relative;
  z-index:301;
  width:100%;
  max-width:100%;
  max-height:100%;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  touch-action:pan-y;
  background:var(--bg-elevated);
  border:1px solid var(--border-subtle);
  border-radius:28px 28px 0 0;
  box-shadow:var(--shadow-lg);
  padding:8px 18px 28px;
  transform:translateY(100%);
  transition:transform .5s cubic-bezier(.16,1,.3,1);
  -webkit-overflow-scrolling:touch;
}
.product-sheet.is-dragging-sheet{ transition:none; }
.sheet-overlay.is-open .product-sheet{ transform:translateY(0); }
.product-sheet__handle{
  width:44px; height:5px; border-radius:var(--radius-pill);
  background:var(--divider); margin:6px auto 14px;
  touch-action:none;
}
.product-sheet__close{
  position:absolute; top:12px; right:14px;
  width:36px; height:36px; border-radius:50%;
  border:1px solid var(--glass-border);
  background:var(--bg-elevated);
  color:var(--text-primary); font-size:14px; margin:0; padding:0;
  display:flex; align-items:center; justify-content:center;
  z-index:3;
  -webkit-tap-highlight-color:transparent;
}
.product-sheet__media{ margin:0 0 16px; }
.product-sheet__img{
  aspect-ratio:3 / 4;
  width:min(100%, calc(52vh * 3 / 4));
  max-height:52vh;
  height:auto;
  border-radius:var(--radius-md);
  overflow:hidden;
  margin:0 auto;
  position:relative;
}
.product-sheet__img img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.product-carousel{ position:relative; width:100%; height:100%; overflow:hidden; border-radius:var(--radius-md); }
.product-carousel__track{ display:flex; height:100%; transition:transform .45s var(--ease-out); }
.product-carousel__slide{
  flex:0 0 100%; width:100%; height:100%;
  object-fit:cover; object-position:center;
}
.product-carousel__arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:36px; height:36px; border-radius:50%;
  background:var(--bg-elevated);
  border:1px solid var(--glass-border); color:var(--text-primary);
  display:flex; align-items:center; justify-content:center;
  line-height:0; font-size:0;
  cursor:pointer; z-index:2; padding:0;
}
.product-carousel__arrow svg{
  width:16px; height:16px; display:block; flex-shrink:0;
}
.product-carousel__arrow--prev{ left:10px; }
.product-carousel__arrow--prev svg{ transform:translateX(-1px); }
.product-carousel__arrow--next{ right:10px; }
.product-carousel__arrow--next svg{ transform:translateX(1px); }
.product-carousel__dots{ position:absolute; bottom:10px; left:0; right:0; display:flex; gap:6px; justify-content:center; z-index:2; }
.product-carousel__dot{ width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.5); border:none; padding:0; cursor:pointer; }
.product-carousel__dot.is-active{ background:var(--text-on-dark); width:16px; border-radius:var(--radius-pill); transition:width .3s var(--ease-out); }
.product-sheet__row{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding-right:48px; }
.product-sheet__row h3{ font-family:var(--font-display); font-weight:600; font-size:24px; margin:0; color:#FFFFFF; }
.product-sheet__price{ font-size:19px; font-weight:700; color:#FFFFFF; white-space:nowrap; }
.product-sheet__price--variants{ font-size:14px; max-width:70%; }
.product-sheet__price-variant em{ font-size:12px; }
@media (max-width:879px){
  .product-sheet__row{
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    gap:12px;
    padding-right:0;
    padding-left:0;
  }
  .product-sheet__row h3{
    width:100%;
    text-align:center;
  }
  .product-sheet__price{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:44px;
    padding:10px 22px;
    background:var(--accent);
    color:var(--on-accent);
    border-radius:var(--radius-pill);
    white-space:nowrap;
  }
  .product-sheet__price s{
    color:color-mix(in srgb, var(--on-accent) 62%, transparent);
    font-weight:600;
  }
  .product-sheet__price--variants{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
    max-width:100%;
    background:transparent;
    color:inherit;
    padding:0;
    min-height:0;
  }
  .product-sheet__price-variant{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:8px 16px;
    background:var(--accent);
    color:var(--on-accent);
    border-radius:var(--radius-pill);
  }
  .product-sheet__tags{
    justify-content:center;
  }
}
.product-sheet__tags{ display:flex; gap:8px; flex-wrap:wrap; margin:12px 0 0; }
.product-sheet__desc{ margin:16px 0 0; color:var(--text-secondary); font-size:14.5px; line-height:1.65; }
.product-sheet h4{ font-size:13px; text-transform:none; color:var(--text-muted); margin:26px 0 10px; font-weight:600; }
.product-sheet__book-wrap{
  margin-top:22px;
}
.product-sheet__book{
  display:flex;
  width:100%;
  justify-content:center;
  min-height:48px;
  background:var(--accent);
  color:var(--on-accent);
  border-radius:var(--radius-pill);
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.composition-list{ display:flex; flex-direction:column; gap:8px; }
.composition-list li{
  display:flex; justify-content:space-between; gap:12px;
  font-size:14px; color:var(--text-primary);
  padding:10px 14px;
  background:var(--bg-tertiary);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-sm);
}
.composition-list li span{ color:var(--text-muted); font-size:13px; }
.related-row{
  display:flex; align-items:stretch; gap:14px;
  overflow-x:auto; padding-bottom:8px;
  scrollbar-width:none;
  overscroll-behavior-x:contain;
  flex-shrink:0;
}
.related-row::-webkit-scrollbar{ display:none; }
.related-card{
  display:flex; flex-direction:column;
  flex:0 0 auto; width:158px; margin:0; padding:0;
  text-align:left; font:inherit; color:var(--text-primary);
  border:1px solid var(--glass-border);
  background:var(--bg-elevated);
  border-radius:var(--radius-md);
  overflow:hidden;
  cursor:pointer;
  appearance:none; -webkit-appearance:none;
}
.related-card__img{ aspect-ratio:3 / 4; width:100%; height:auto; flex-shrink:0; overflow:hidden; }
.related-card__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.related-card__body{
  display:flex; flex-direction:column; flex:0 0 auto;
  padding:12px 12px 14px;
  background:var(--bg-elevated);
  min-height:4.4em;
  flex-shrink:0;
}
.related-card__name{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  min-height:calc(1.3em * 2); line-height:1.3;
  font-size:13px; font-weight:600; margin:0 0 6px;
  color:var(--text-primary);
}
.related-price{
  margin-top:auto;
  font-size:12px; color:var(--text-primary); font-weight:700; line-height:1.2;
}
.related-price--sale{ display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; }
.related-price--sale s{ color:var(--text-muted); font-weight:500; font-size:11px; }
.related-price--sale strong{ font-size:12px; font-weight:700; color:var(--text-primary); }
@media (min-width:880px){
  .sheet-overlay{
    padding:0;
    align-items:stretch;
    justify-content:stretch;
    touch-action:auto;
    background:var(--overlay-medium);
  }
  .product-sheet{
    display:grid;
    grid-template-columns:minmax(0, 1.1fr) minmax(380px, 0.9fr);
    grid-template-rows:minmax(0, 1fr);
    width:100%;
    height:100%;
    max-width:none;
    max-height:none;
    border-radius:0;
    border:none;
    padding:0;
    gap:0;
    overflow:hidden;
    transform:none;
  }
  .sheet-overlay.is-open .product-sheet{ transform:none; }
  .product-sheet__handle{ display:none; }
  .product-sheet__media{
    grid-column:1;
    grid-row:1;
    display:flex;
    align-items:center;
    justify-content:center;
    height:100%;
    max-height:none;
    margin:0;
    padding:32px 28px;
    background:var(--bg-secondary);
    min-height:0;
  }
  .product-sheet__img{
    aspect-ratio:3 / 4;
    width:auto;
    height:min(100%, calc(100vh - 64px));
    max-width:100%;
    max-height:calc(100vh - 64px);
    margin:0;
  }
  .product-sheet__img img,
  .product-sheet__img .product-carousel,
  .product-sheet__img .product-carousel__slide{
    width:100%;
    height:100%;
    min-height:0;
    object-fit:cover;
    object-position:center;
  }
  .product-carousel__arrow{
    width:44px;
    height:44px;
    top:50%;
    transform:translateY(-50%);
  }
  .product-sheet__close{
    top:32px;
    right:28px;
    width:40px;
    height:40px;
    background:var(--bg-elevated);
  }
  .product-sheet__content{
    grid-column:2;
    grid-row:1;
    display:flex;
    flex-direction:column;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:32px 40px 28px;
    max-height:none;
    height:100%;
    background:var(--bg-elevated);
    min-height:0;
  }
  .product-sheet__row{
    align-items:center;
    gap:16px;
    padding-right:52px;
  }
  .product-sheet__row h3{
    font-size:28px;
    line-height:1.15;
  }
  .product-sheet__price,
  .product-sheet__book{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    min-height:40px;
    height:40px;
    padding:0 20px;
    background:var(--accent);
    color:var(--on-accent);
    border-radius:var(--radius-pill);
    font-size:15px;
    font-weight:700;
    line-height:1;
    box-sizing:border-box;
  }
  .product-sheet__price s{
    color:color-mix(in srgb, var(--on-accent) 62%, transparent);
  }
  .product-sheet__price--variants{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:8px;
    max-width:60%;
    background:transparent;
    color:inherit;
    padding:0;
    min-height:0;
    height:auto;
  }
  .product-sheet__price-variant{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:40px;
    height:40px;
    padding:0 16px;
    background:var(--accent);
    color:var(--on-accent);
    border-radius:var(--radius-pill);
    box-sizing:border-box;
  }
  .product-sheet__desc{ margin:10px 0 0; }
  .product-sheet h4{ margin:12px 0 6px; }
  .composition-list{ gap:4px; }
  .composition-list li{ padding:6px 12px; font-size:13px; }
  .related-row{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    align-items:start;
    gap:12px;
    overflow:visible;
    width:100%;
    height:auto;
    padding-bottom:0;
    flex-shrink:0;
  }
  .related-card{
    width:auto;
    min-width:0;
    height:auto;
    align-self:start;
  }
  .related-card__img{
    aspect-ratio:1 / 1;
  }
  .related-card__body{
    display:flex;
    flex-shrink:0;
    min-height:4.2em;
    padding:8px 10px 10px;
  }
  .related-card__name{
    font-size:12.5px;
    min-height:calc(1.3em * 2);
  }
  .product-sheet__book-wrap{
    margin-top:16px;
    flex-shrink:0;
    position:static;
    padding:0;
    display:flex;
    justify-content:flex-start;
    align-items:center;
    background:transparent;
  }
  .product-sheet__book{
    width:auto;
    min-width:168px;
    font-size:14px;
    font-weight:600;
  }
}

/* Мобильные сегменты категорий вместо нижней навигации сайта */
.tab-bar--segments{
  padding:12px;
  gap:0;
  position:fixed;
  left:50%; bottom:20px;
  transform:translateX(-50%);
  width:min(94vw, 460px);
  animation:segments-intro .7s var(--ease-out) .2s both, segments-attention 1.8s var(--ease-out) 1.1s 1;
}
.segment-indicator{
  position:absolute;
  top:12px; bottom:12px; left:12px;
  width:64px;
  border-radius:var(--radius-pill);
  background:var(--accent);
  box-shadow:var(--shadow-glow);
  transition:transform .45s var(--ease-out), width .45s var(--ease-out);
  z-index:0;
}
.tab-bar--segments .segment{
  flex:1 1 auto;
  min-width:58px;
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:16px 8px 14px;
  border:none; background:transparent;
  border-radius:var(--radius-pill);
  color:var(--text-primary);
  font-family:var(--font-body);
  position:relative;
  z-index:1;
  transition:color .35s var(--ease-out);
}
.tab-bar--segments .segment span{ font-size:12.5px; font-weight:700; white-space:nowrap; }
.tab-bar--segments .segment.is-active{ color:var(--on-accent); isolation:isolate; }
.tab-bar--segments .segment.is-active::before{
  content:"";
  position:absolute; inset:0;
  background:var(--accent);
  border-radius:var(--radius-pill);
  z-index:-1;
  box-shadow:var(--shadow-glow);
}
@keyframes segments-intro{
  from{ opacity:0; transform:translateX(-50%) translateY(30px) scale(0.92); }
  to{ opacity:1; transform:translateX(-50%) translateY(0) scale(1); }
}
@keyframes segments-attention{
  0%, 100%{ transform:translateX(-50%) scale(1); }
  30%{ transform:translateX(-50%) scale(1.045); }
  50%{ transform:translateX(-50%) scale(0.99); }
  65%{ transform:translateX(-50%) scale(1.02); }
}

/* =========================================================
   Бронирование / контакты / политика
   ========================================================= */
.booking-form{ max-width:760px; padding-bottom:48px; }
.form-block{ margin-bottom:28px; }
.form-label{ display:block; font-size:13px; font-weight:600; margin:0 0 12px; color:var(--text-secondary); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:640px){ .form-row{ grid-template-columns:1fr; } }
.form-field{
  width:100%;
  padding:14px 16px;
  border-radius:var(--radius-sm);
  border:1px solid var(--input-border);
  background:var(--input-bg);
  color:var(--input-text);
  font:inherit;
  font-size:15px;
}
.form-field::placeholder{ color:var(--input-placeholder); }
.form-field:focus{ outline:none; border-color:var(--input-border-focus); box-shadow:0 0 0 3px rgba(255,255,255,0.06); }
textarea.form-field{ min-height:110px; resize:vertical; }
.form-field.field--invalid{ border-color:rgba(189,189,189,0.5); color:var(--error); }
.form-block.field--invalid{ outline:2px solid var(--danger); outline-offset:6px; border-radius:var(--radius-md); }

#dateBlock{
  position:relative;
  z-index:8;
}
.booking-date{
  position:relative;
  max-width:420px;
}
.booking-date__nav{
  display:flex;
  align-items:center;
  gap:8px;
}
.booking-date__arrow{
  flex:0 0 auto;
  width:48px;
  height:52px;
  border:1px solid var(--glass-border);
  border-radius:var(--radius-sm);
  background:var(--glass-fill);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  color:var(--text-primary);
  font-size:24px;
  line-height:1;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}
.booking-date__arrow:hover:not(:disabled){
  background:var(--glass-fill-strong);
  border-color:var(--accent-dim);
}
.booking-date__arrow:disabled{
  opacity:.38;
  cursor:default;
}
.booking-date__current{
  flex:1;
  min-height:52px;
  min-width:0;
  padding:0 16px;
  border-radius:var(--radius-sm);
  border:1px solid var(--glass-border);
  background:var(--bg-elevated);
  font:inherit;
  font-size:16px;
  font-weight:600;
  color:var(--text-primary);
  cursor:pointer;
  text-align:center;
  text-transform:capitalize;
  appearance:none;
  -webkit-appearance:none;
}
.booking-date__current:hover,
.booking-date__current[aria-expanded="true"]{
  border-color:var(--accent);
}
.booking-cal{
  position:relative;
  z-index:2;
  width:100%;
  margin-top:10px;
  padding:16px 14px 14px;
  border-radius:var(--radius-md);
  border:1px solid var(--glass-border);
  background:var(--bg-tertiary);
  backdrop-filter:blur(40px) saturate(1.4);
  -webkit-backdrop-filter:blur(40px) saturate(1.4);
  box-shadow:var(--shadow-soft), var(--shadow-inset);
}
.booking-cal::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:var(--bg-elevated);
  pointer-events:none;
}
.booking-cal[hidden]{ display:none; }
.booking-cal__head,
.booking-cal__board,
.booking-cal__today{
  position:relative;
  z-index:1;
}
.booking-cal__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:12px;
}
.booking-cal__head strong{
  font-family:var(--font-display);
  font-weight:500;
  font-size:18px;
  text-transform:capitalize;
}
.booking-cal__head .booking-date__arrow{
  width:44px;
  height:44px;
  background:var(--bg-tertiary);
}
.booking-cal__board{
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:6px;
  align-items:center;
  justify-items:stretch;
}
.booking-cal__wd{
  display:grid;
  place-items:center;
  min-height:28px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--text-secondary);
  text-transform:uppercase;
}
.booking-cal__day{
  aspect-ratio:1;
  width:100%;
  min-height:40px;
  height:auto;
  display:grid;
  place-items:center;
  border:none;
  border-radius:12px;
  background:transparent;
  color:var(--text-primary);
  font:inherit;
  font-size:15px;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}
.booking-cal__day:hover:not(:disabled):not(.is-selected){
  background:var(--accent-dim);
}
.booking-cal__day.is-out{ color:var(--text-muted); }
.booking-cal__day.is-today{ box-shadow:inset 0 0 0 1.5px var(--accent); }
.booking-cal__day.is-selected{
  background:var(--accent);
  color:var(--on-accent);
  font-weight:700;
  box-shadow:none;
}
.booking-cal__day:disabled{
  opacity:.38;
  cursor:default;
}
.booking-cal__today{
  width:100%;
  margin-top:10px;
  justify-content:center;
}
@media (max-width:640px){
  .booking-date{ max-width:none; }
}

.form-block h3{
  font-family:var(--font-display);
  font-weight:500;
  font-size:22px;
  margin:0 0 8px;
  color:var(--text-primary);
}
.form-block__hint{
  margin:0 0 16px;
  font-size:13.5px;
  line-height:1.5;
  color:var(--text-secondary);
}
.table-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(110px, 1fr));
  gap:12px;
}
.table-card{
  position:relative;
  overflow:hidden;
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:18px 10px;
  border-radius:var(--radius-md);
  background:var(--bg-grad-card);
  border:1px solid var(--border-subtle);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
  color:inherit;
  cursor:pointer;
  isolation:isolate;
  transition:
    transform .35s var(--ease-out),
    background .35s var(--ease-out),
    border-color .35s var(--ease-out),
    box-shadow .35s var(--ease-out);
}
.table-card strong{
  font-family:var(--font-display);
  font-size:20px;
  color:var(--text-primary);
  position:relative; z-index:1;
  transition:color .3s var(--ease-out), transform .45s var(--ease-out);
}
.table-card span{
  font-size:12.5px;
  color:var(--text-secondary);
  position:relative; z-index:1;
  transition:color .3s var(--ease-out);
}
.table-card:hover:not(.is-selected):not(.is-disabled){
  transform:translateY(-3px);
  border-color:var(--accent-dim);
  box-shadow:var(--shadow-soft);
}
.table-card.is-selected{
  background:var(--accent);
  border-color:var(--accent);
  box-shadow:var(--shadow-glow), inset 0 1px 0 rgba(255,255,255,0.38);
}
.table-card.is-selected strong, .table-card.is-selected span{ color:var(--on-accent); }
.table-card.is-picking{ animation:table-pick .58s var(--ease-out); }
.table-card.is-picking strong{ animation:table-pick-label .58s var(--ease-out); }
.table-card.is-disabled{ opacity:.35; pointer-events:none; }
.table-card__ripple{
  position:absolute;
  width:16px; height:16px;
  margin:-8px 0 0 -8px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.15) 55%, transparent 70%);
  pointer-events:none;
  z-index:0;
  animation:table-ripple .65s var(--ease-out) forwards;
}
@keyframes table-pick{
  0%{ transform:scale(0.9); box-shadow:0 0 0 0 rgba(255,255,255,0); }
  40%{ transform:scale(1.07); box-shadow:0 0 28px 2px rgba(255,255,255,0.18); }
  70%{ transform:scale(0.98); }
  100%{ transform:scale(1); box-shadow:var(--shadow-glow), inset 0 1px 0 rgba(255,255,255,0.38); }
}
@keyframes table-pick-label{
  0%{ transform:scale(0.86); }
  45%{ transform:scale(1.08); }
  100%{ transform:scale(1); }
}
@keyframes table-ripple{
  0%{ transform:scale(0.4); opacity:0.9; }
  100%{ transform:scale(16); opacity:0; }
}
.table-note{
  margin:14px 0 0;
  font-size:13.5px;
  line-height:1.55;
  color:var(--text-secondary);
}
.table-note a{ color:var(--accent); }

.hp-field{
  position:absolute;
  left:-10000px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}

.consent-check{ max-width:520px; }
.consent-check__label{
  display:flex;
  align-items:flex-start;
  gap:12px;
  cursor:pointer;
}
.consent-check input{
  position:absolute;
  opacity:0;
  width:1px; height:1px;
  pointer-events:none;
}
.consent-check__box{
  flex:0 0 auto;
  width:22px; height:22px;
  margin-top:1px;
  border-radius:7px;
  border:1px solid var(--glass-border);
  background:var(--bg-elevated);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.45);
  position:relative;
  transition:background .3s var(--ease-out), border-color .3s var(--ease-out), box-shadow .3s var(--ease-out);
}
.consent-check__box::after{
  content:"";
  position:absolute;
  left:6px; top:3px;
  width:7px; height:11px;
  border:solid var(--on-accent);
  border-width:0 2px 2px 0;
  transform:rotate(45deg) scale(0.4);
  opacity:0;
  transition:transform .28s var(--ease-out), opacity .2s var(--ease-out);
}
.consent-check input:checked + .consent-check__label .consent-check__box{
  background:var(--accent);
  border-color:var(--accent);
  box-shadow:var(--shadow-glow);
}
.consent-check input:checked + .consent-check__label .consent-check__box::after{
  opacity:1;
  transform:rotate(45deg) scale(1);
}
.consent-check input:focus-visible + .consent-check__label .consent-check__box{
  outline:2px solid var(--accent);
  outline-offset:3px;
}
.consent-check__text{
  font-size:13.5px;
  line-height:1.5;
  color:var(--text-secondary);
}
.consent-check__text a{
  color:var(--accent);
  border-bottom:1px solid transparent;
}
.consent-check__text a:hover{ border-color:var(--accent); }
.consent-check.field--invalid .consent-check__box{
  border-color:var(--danger);
  box-shadow:0 0 0 3px var(--error-bg);
}
.consent-checkbox{
  display:flex;
  align-items:flex-start;
  gap:10px;
  max-width:520px;
  margin:0 0 18px;
  font-size:14px;
  line-height:1.5;
  color:var(--text-secondary);
  cursor:pointer;
}
.consent-checkbox input{
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin-top:2px;
  accent-color:var(--accent-soft);
}
.consent-checkbox a{
  color:var(--accent-soft);
  border-bottom:1px solid transparent;
}
.consent-checkbox a:hover{ border-color:var(--accent-soft); }
.consent-checkbox.field--invalid{ color:var(--danger); }

.booking-slots{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:8px;
  margin-bottom:0;
  position:relative;
  z-index:1;
}
.booking-slots .filter-chip{
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  font:inherit;
  font-size:13.5px;
  font-weight:500;
  width:100%;
  justify-content:center;
  text-align:center;
  padding:9px 6px;
}
.booking-slots .filter-chip.is-taken,
.booking-slots .filter-chip:disabled{
  opacity:.38;
  pointer-events:none;
  text-decoration:line-through;
}
.booking-alternatives{
  margin:0 0 24px;
  padding:16px;
  border-radius:var(--radius-md);
  background:var(--accent-dim);
  border:1px solid var(--glass-border);
}
.booking-alternatives[hidden]{ display:none; }
.booking-alternatives .form-block__hint{ margin-bottom:12px; }
.stepper{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px;
  border-radius:var(--radius-pill);
  border:1px solid var(--glass-border);
  background:var(--bg-elevated);
}
.stepper button{
  width:40px; height:40px;
  border:none; border-radius:var(--radius-pill);
  background:var(--accent);
  color:var(--on-accent);
  font-size:22px; line-height:1;
}
.stepper output{ min-width:36px; text-align:center; font-weight:600; font-size:16px; }

.promo-block__until{ margin-top:10px; font-size:12px; color:var(--accent-soft); }

.contacts-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  padding-bottom:48px;
  align-items:start;
}
@media (max-width:800px){ .contacts-grid{ grid-template-columns:1fr; } }
.contact-list{ margin:0 0 28px; }
.contact-list dt{ font-size:12px; font-weight:600; color:var(--text-muted); margin:0 0 4px; }
.contact-list dd{ margin:0 0 18px; font-size:16px; line-height:1.45; }
.contact-list a:hover{ color:var(--accent); }
.contact-legal{
  margin:8px 0 28px;
  padding:18px 20px;
  border-radius:var(--radius-md);
  border:1px solid var(--glass-border);
  background:var(--bg-elevated);
}
.contact-legal h2{
  font-family:var(--font-display);
  font-size:18px;
  font-weight:600;
  margin:0 0 10px;
}
.contact-legal p{
  margin:0;
  font-size:14px;
  line-height:1.6;
  color:var(--text-secondary);
}
.menu-health-notice{
  margin:0 0 18px;
  font-size:12.5px;
  line-height:1.45;
  color:var(--text-muted);
}
.menu-health-notice[hidden]{ display:none; }
.contacts-map{
  min-height:340px;
  border-radius:var(--radius-lg);
  border:1px solid var(--glass-border);
  background:var(--bg-elevated);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
}
.contacts-map iframe{
  display:block;
  width:100%;
  height:400px;
  border:0;
}
.map-placeholder{
  min-height:340px;
  border-radius:var(--radius-lg);
  border:1px solid var(--glass-border);
  background:var(--bg-elevated-2);
  box-shadow:var(--shadow-soft);
  display:flex; align-items:center; justify-content:center;
  color:var(--text-muted);
  text-align:center;
  padding:24px;
  font-size:15px;
}

.legal-content{ max-width:720px; margin:0 auto; padding-bottom:40px; }
.legal-content h2{ font-family:var(--font-display); font-weight:500; font-size:22px; margin:36px 0 12px; color:var(--text-primary); }
.legal-content h2:first-child{ margin-top:0; }
.legal-content p{ font-size:14.5px; line-height:1.75; color:var(--text-secondary); margin:0 0 14px; }
.legal-content p:first-child{ margin-top:0; }
.legal-content strong{ color:var(--text-primary); font-weight:600; }
.legal-content a{ color:var(--text-primary); text-underline-offset:2px; }
.legal-content ul{ margin:0 0 14px; padding-left:20px; list-style:disc; }
.legal-content li{ font-size:14.5px; line-height:1.7; color:var(--text-secondary); margin-bottom:6px; }

.article-page{ max-width:720px; margin:0 auto; padding-bottom:56px; }
.article-page__cover{
  border-radius:var(--radius-lg);
  overflow:hidden;
  margin:0 auto 24px;
  aspect-ratio:3 / 4;
  width:min(100%, 420px);
  max-height:70vh;
  box-shadow:var(--shadow-soft);
}
.article-page__cover img{ width:100%; height:100%; object-fit:cover; }
.article-page__meta{ font-size:13px; color:var(--text-muted); margin:0 0 22px; }
.article-page h2{
  font-family:var(--font-display);
  font-weight:500;
  font-size:22px;
  margin:32px 0 12px;
  color:var(--text-primary);
}
.article-page p{ font-size:15px; line-height:1.75; color:var(--text-secondary); margin:0 0 16px; }
.article-page__content img{
  max-width:100%;
  border-radius:var(--radius-md);
  margin:8px 0 20px;
}
.article-page h3{
  font-family:var(--font-display);
  font-weight:500;
  font-size:18px;
  margin:24px 0 10px;
}
.article-page pre{
  overflow:auto;
  padding:14px 16px;
  border-radius:var(--radius-sm);
  background:var(--bg-tertiary);
  font-size:13px;
}
.article-page ul{ margin:0 0 16px; padding-left:20px; list-style:disc; }
.article-page li{ font-size:15px; line-height:1.7; color:var(--text-secondary); margin-bottom:8px; }
.article-page a{ color:var(--accent); border-bottom:1px solid transparent; }
.article-page a:hover{ border-color:var(--accent); }
.article-page a.btn{
  color:var(--on-accent);
  border-bottom:none;
}
.article-cta .btn{ justify-content:center; min-width:220px; }
.article-cta{
  margin:36px 0 8px;
  padding:24px;
  border-radius:var(--radius-lg);
  border:1px solid var(--border-subtle);
  background:var(--bg-grad-card);
  backdrop-filter:blur(14px);
}
.article-cta p{ margin:0 0 16px; color:var(--text-primary); }
.article-related{ margin-top:40px; padding-top:28px; border-top:1px solid var(--divider); }
.article-related h2{ margin-top:0; }
.article-related ul{ padding-left:0; list-style:none; }
.article-related li{ margin-bottom:10px; }

/* =========================
   Появление при скролле
   ========================= */
.reveal{
  opacity:0;
  transform:translateY(16px);
}
.reveal.is-in{
  animation:reveal-up .72s var(--ease-out) calc(var(--reveal-i, 0) * 70ms) forwards;
}
.age-overlay.is-open .age-modal{
  animation:reveal-up .45s var(--ease-out);
}

@media (prefers-reduced-motion: reduce){
  .reveal, .reveal.is-in{
    opacity:1;
    transform:none;
    animation:none !important;
  }
  .hero__logo{
    opacity:1;
    transform:none;
    animation:none !important;
  }
  .root-texture::before,
  .root-texture::after,
  .top-nav,
  .tab-bar,
  .call-fab{
    animation:none !important;
  }
}

/* =========================================================
   404 — ловля яблок
   ========================================================= */
.not-found{
  padding-top:110px;
  text-align:center;
}
.not-found .page-head p{
  margin-left:auto;
  margin-right:auto;
}

.catch-game{ max-width:640px; margin:0 auto; text-align:center; padding:20px 0 60px; }
.catch-game__score{
  font-family:var(--font-display); font-size:18px; color:var(--text-primary);
  margin-bottom:12px;
}
#catchCanvas{
  width:100%; height:420px; display:block; border-radius:var(--radius-lg);
  background:var(--glass-fill); border:1px solid var(--glass-border);
  touch-action:none; /* чтобы драг пальцем не скроллил страницу */
  cursor:pointer;
}
#catchCanvas:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
}
.catch-game__hint{ margin-top:12px; font-size:13px; color:var(--text-muted); }
.catch-game__actions{ display:flex; gap:12px; justify-content:center; margin-top:24px; }

.catch-game__fallback{
  display:none;
  padding:28px 20px 8px;
  border-radius:var(--radius-lg);
  background:var(--bg-grad-card);
  border:1px solid var(--border-subtle);
}
.catch-game__fallback img{
  width:min(240px, 70%);
  margin:0 auto 16px;
  filter:invert(1) brightness(0.9);
  mix-blend-mode:normal;
}
.catch-game__fallback p{
  margin:0 0 8px;
  color:var(--text-secondary);
  font-size:15px;
  line-height:1.55;
}
.catch-game--static .catch-game__score,
.catch-game--static #catchCanvas,
.catch-game--static .catch-game__hint{
  display:none;
}
.catch-game--static .catch-game__fallback{
  display:block;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .top-nav,
  .tab-bar,
  .btn--ghost,
  .call-fab,
  .to-top,
  .category-tabs,
  .subcategory-tabs,
  .age-overlay,
  .product-sheet {
    background: rgba(10, 10, 10, 0.96);
  }
  .age-overlay {
    background: var(--overlay-dark);
  }
}

@media (max-width: 880px) {
  .root-texture::before,
  .root-texture::after { animation: none; }
  .hero__logo { animation: none; }
  .menu-card,
  .product-card,
  .article-card,
  .promo-block,
  .btn--ghost,
  .top-nav,
  .tab-bar {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--scrollbar-track); }
::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-thumb-hover); }
