/* Лендинги комплектов (/<lang>/packages/...). Всё внутри .pkg — общие стили сайта не затрагиваются.
   Цвета подстраиваются под тему сайта (data-theme="dark"). */

.pkg {
  --pkg-a: #2487ce;
  --pkg-b: #8b5cf6;
  --pkg-ink: #0a0d1a;
  --pkg-text: var(--text-primary, #124265);
  --pkg-muted: var(--text-muted, #6b7280);
  --pkg-card: #ffffff;
  --pkg-soft: #f3f6fb;
  --pkg-line: rgba(18, 66, 101, 0.12);
  --pkg-shadow: 0 24px 60px -30px rgba(18, 66, 101, 0.45);
  --pkg-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  position: relative;
  z-index: 1;
  padding: 110px 0 40px;
  color: var(--pkg-text);
  font-family: 'Poppins', system-ui, sans-serif;
}
.pkg-wedding .pkg, .pkg .pkg-wedding, .pkg[data-pkg="wedding"] { --pkg-a: #f472b6; --pkg-b: #fbbf24; }
.pkg[data-pkg="party"], .pkg .pkg-party { --pkg-a: #8b5cf6; --pkg-b: #22d3ee; }
.pkg[data-pkg="concert"], .pkg .pkg-concert { --pkg-a: #ff6a3d; --pkg-b: #4facfe; }
.pkg .pkg-wedding { --pkg-a: #f472b6; --pkg-b: #fbbf24; }
[data-theme="dark"] .pkg {
  --pkg-card: #17203a;
  --pkg-soft: #111a30;
  --pkg-line: rgba(255, 255, 255, 0.1);
  --pkg-shadow: 0 24px 60px -30px rgba(0, 0, 0, 0.8);
}
.pkg a { text-decoration: none; }
.pkg h1, .pkg h2, .pkg h3, .pkg h4 { color: var(--pkg-text); font-family: 'Montserrat', sans-serif; }

/* Хлебные крошки */
.pkg-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 18px; padding: 0; list-style: none; font-size: 13px; color: var(--pkg-muted); }
.pkg-crumbs li + li::before { content: '›'; margin-right: 6px; opacity: 0.6; }
.pkg-crumbs a { color: var(--pkg-muted); }
.pkg-crumbs a:hover { color: var(--pkg-a); }

/* Первый экран */
.pkg-hero { display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: center; }
.pkg-eyebrow {
  display: inline-flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 6px 14px;
  border-radius: 999px; background: color-mix(in srgb, var(--pkg-a) 14%, transparent);
  color: color-mix(in srgb, var(--pkg-a) 70%, var(--pkg-text)); font-size: 13px; font-weight: 600;
}
.pkg-h1 { margin: 0 0 16px; font-size: clamp(30px, 4.2vw, 50px); font-weight: 800; line-height: 1.08; letter-spacing: -0.02em; }
.pkg-lead { margin: 0 0 20px; max-width: 560px; font-size: 17px; line-height: 1.6; color: var(--pkg-muted); }
.pkg-badges { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 24px; padding: 0; list-style: none; font-size: 14px; font-weight: 500; }
.pkg-badges i { margin-right: 6px; color: var(--pkg-a); }
.pkg-hero-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.pkg-hero-price strong {
  font-family: 'Montserrat', sans-serif; font-size: 44px; font-weight: 800; letter-spacing: -0.02em;
  background: linear-gradient(120deg, var(--pkg-a), var(--pkg-b)); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.pkg-from, .pkg-per { color: var(--pkg-muted); font-size: 15px; }
.pkg-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; }

.pkg-hero-art {
  position: relative; border-radius: 32px; overflow: hidden; aspect-ratio: 600 / 420;
  background: radial-gradient(120% 90% at 50% 0%, #252b52 0%, #12152b 55%, #090b17 100%);
  box-shadow: 0 40px 80px -30px color-mix(in srgb, var(--pkg-a) 60%, transparent), inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}
.pkg-scene { display: block; width: 100%; height: 100%; }
.pkg-hero-chip {
  position: absolute; display: flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 14px;
  background: rgba(255, 255, 255, 0.92); color: #12152b; font-size: 13px; font-weight: 600;
  box-shadow: 0 12px 30px -12px rgba(0, 0, 0, 0.5); animation: pkg-float 5s ease-in-out infinite;
}
.pkg-hero-chip i { color: var(--pkg-a); }
.pkg-chip-1 { top: 18px; left: 18px; }
.pkg-chip-2 { right: 18px; bottom: 18px; animation-delay: -2.5s; }

/* Кнопки */
.pkg-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 13px 22px;
  border: 0; border-radius: 999px; font-size: 15px; font-weight: 600; line-height: 1.2; cursor: pointer;
  transition: transform 0.15s, box-shadow 0.3s, background-position 0.4s var(--pkg-ease), background 0.2s, color 0.2s;
}
.pkg-btn:active { transform: scale(0.98); }
.pkg-btn-primary {
  color: #fff; background: linear-gradient(120deg, var(--pkg-a), var(--pkg-b)); background-size: 160% 100%;
  box-shadow: 0 14px 30px -14px color-mix(in srgb, var(--pkg-a) 90%, transparent);
}
.pkg-btn-primary:hover { color: #fff; background-position: 100% 0; box-shadow: 0 18px 36px -14px color-mix(in srgb, var(--pkg-b) 90%, transparent); }
.pkg-btn-ghost { color: var(--pkg-text); background: var(--pkg-card); box-shadow: inset 0 0 0 1.5px var(--pkg-line); }
.pkg-btn-ghost:hover { color: var(--pkg-a); box-shadow: inset 0 0 0 1.5px var(--pkg-a); }
.pkg-btn-link { padding: 13px 10px; color: var(--pkg-a); background: none; }
.pkg-btn-link:hover { color: var(--pkg-b); }
.pkg-btn-light { color: #12152b; background: #fff; }
.pkg-btn-light:hover { color: #12152b; background: #f1f1f1; }
.pkg-btn-outline { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.6); background: transparent; }
.pkg-btn-outline:hover { color: #fff; background: rgba(255, 255, 255, 0.12); }

/* Разделы */
.pkg-section { margin-top: 90px; }
.pkg-h2 { margin: 0 0 30px; font-size: clamp(24px, 3vw, 36px); font-weight: 800; letter-spacing: -0.02em; text-align: center; }
.pkg-note { margin: 22px auto 0; max-width: 760px; text-align: center; font-size: 13px; color: var(--pkg-muted); }
.pkg-note i { color: var(--pkg-a); }

/* Карточки уровней */
.pkg-tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; align-items: stretch; }
.pkg-tier {
  position: relative; display: flex; flex-direction: column; padding: 30px 26px 24px; border-radius: 26px;
  background: var(--pkg-card); box-shadow: var(--pkg-shadow), inset 0 0 0 1px var(--pkg-line);
  transition: transform 0.35s var(--pkg-ease), box-shadow 0.35s;
}
.pkg-tier:hover { transform: translateY(-6px); }
.pkg-tier.is-popular {
  background:
    linear-gradient(var(--pkg-card), var(--pkg-card)) padding-box,
    linear-gradient(140deg, var(--pkg-a), var(--pkg-b)) border-box;
  border: 2px solid transparent;
  box-shadow: 0 30px 70px -28px color-mix(in srgb, var(--pkg-a) 70%, transparent);
  transform: translateY(-10px);
}
.pkg-tier.is-popular:hover { transform: translateY(-16px); }
.pkg-tier-premium { background: linear-gradient(170deg, color-mix(in srgb, var(--pkg-b) 10%, var(--pkg-card)), var(--pkg-card) 45%); }
.pkg-ribbon {
  position: absolute; top: -14px; left: 50%; transform: translateX(-50%); padding: 6px 14px; border-radius: 999px;
  background: linear-gradient(120deg, var(--pkg-a), var(--pkg-b)); color: #fff; font-size: 12px; font-weight: 700; white-space: nowrap;
}
.pkg-tier-label { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--pkg-a); }
.pkg-tier-name { margin: 6px 0 8px; font-size: 24px; font-weight: 800; }
.pkg-tier-blurb { min-height: 66px; margin: 0 0 18px; font-size: 14px; line-height: 1.55; color: var(--pkg-muted); }
.pkg-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 16px 0; border-top: 1px dashed var(--pkg-line); border-bottom: 1px dashed var(--pkg-line); }
.pkg-price strong { font-family: 'Montserrat', sans-serif; font-size: 38px; font-weight: 800; letter-spacing: -0.02em; color: var(--pkg-text); }
.pkg-old { font-size: 13px; color: var(--pkg-muted); }
.pkg-save {
  padding: 4px 10px; border-radius: 999px; background: color-mix(in srgb, #22c55e 15%, transparent);
  color: #15803d; font-size: 12px; font-weight: 700;
}
[data-theme="dark"] .pkg-save { color: #4ade80; }

.pkg-meters { display: grid; gap: 12px; margin: 18px 0; }
.pkg-meters > div { display: grid; grid-template-columns: 1fr auto; row-gap: 6px; font-size: 13px; }
.pkg-meters dt { font-weight: 500; color: var(--pkg-muted); }
.pkg-meters dt i { margin-right: 4px; color: var(--pkg-a); }
.pkg-meters dd { margin: 0; font-weight: 700; }
.pkg-bar { grid-column: 1 / -1; height: 6px; border-radius: 6px; background: var(--pkg-soft); overflow: hidden; }
.pkg-bar i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--pkg-a), var(--pkg-b)); transition: width 1.2s var(--pkg-ease) 0.2s; }
.pkg-tier.is-in .pkg-bar i { width: var(--w); }

/* «Огоньки»: по одному на каждый световой прибор */
.pkg-dots { display: flex; flex-wrap: wrap; gap: 5px; min-height: 12px; margin-bottom: 16px; }
.pkg-dots i {
  width: 9px; height: 9px; border-radius: 50%; background: var(--pkg-a);
  box-shadow: 0 0 8px var(--pkg-a); opacity: 0.25; animation: pkg-led 2.4s ease-in-out infinite;
}
.pkg-dots i:nth-child(3n) { background: var(--pkg-b); box-shadow: 0 0 8px var(--pkg-b); animation-delay: -0.8s; }
.pkg-dots i:nth-child(4n) { animation-delay: -1.6s; }
.pkg-dots i:nth-child(5n + 1) { animation-delay: -0.4s; }

.pkg-key { flex: 1; margin: 0 0 20px; padding: 0; list-style: none; font-size: 14px; }
.pkg-key li { padding: 5px 0; }
.pkg-key b { display: inline-block; min-width: 30px; color: var(--pkg-a); }
.pkg-more { color: var(--pkg-muted); }
.pkg-tier-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pkg-tier-cta .pkg-btn-primary { flex: 1 1 100%; }
.pkg-tier-cta .pkg-btn-link { margin: 0 auto; }

/* Состав: вкладки */
.pkg-tabs {
  display: flex; gap: 6px; width: fit-content; max-width: 100%; margin: 0 auto 26px; padding: 6px;
  border-radius: 999px; background: var(--pkg-soft); overflow-x: auto;
}
.pkg-tabs button {
  display: flex; flex-direction: column; align-items: center; padding: 10px 22px; border: 0; border-radius: 999px;
  background: transparent; color: var(--pkg-muted); font: inherit; font-size: 15px; font-weight: 600; white-space: nowrap;
  transition: background 0.25s, color 0.25s, box-shadow 0.25s;
}
.pkg-tabs button small { font-size: 12px; font-weight: 500; opacity: 0.8; }
.pkg-tabs button[aria-selected="true"] { background: var(--pkg-card); color: var(--pkg-a); box-shadow: 0 6px 18px -8px rgba(18, 66, 101, 0.35); }
.pkg-panel { display: none; }
.pkg-panel.is-active { display: block; animation: pkg-fade 0.45s var(--pkg-ease); }
.pkg-panel-title { margin: 0 0 6px; font-size: 18px; text-align: center; color: var(--pkg-muted) !important; font-weight: 600; }
.pkg-group { display: flex; align-items: center; gap: 8px; margin: 26px 0 12px; font-size: 16px; font-weight: 700; }
.pkg-group i { color: var(--pkg-a); }
.pkg-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.pkg-item {
  display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 18px;
  background: var(--pkg-card); box-shadow: inset 0 0 0 1px var(--pkg-line);
  transition: transform 0.25s var(--pkg-ease), box-shadow 0.25s;
}
.pkg-item:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pkg-a) 45%, transparent), 0 14px 30px -18px rgba(18, 66, 101, 0.5); }
.pkg-item-img { display: grid; flex: 0 0 64px; place-items: center; width: 64px; height: 64px; border-radius: 14px; background: #fff; overflow: hidden; }
.pkg-item-img img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.pkg-item-img i { font-size: 24px; color: var(--pkg-muted); }
.pkg-item-text { flex: 1; min-width: 0; }
.pkg-item-text b { display: block; font-size: 14px; font-weight: 600; }
.pkg-item-text span { display: block; overflow: hidden; font-size: 12px; color: var(--pkg-muted); text-overflow: ellipsis; white-space: nowrap; }
.pkg-qty { flex-shrink: 0; padding: 5px 10px; border-radius: 999px; background: color-mix(in srgb, var(--pkg-a) 12%, transparent); color: var(--pkg-a); font-size: 13px; font-weight: 700; }

/* Таблица сравнения */
.pkg-table-wrap { overflow-x: auto; border-radius: 22px; background: var(--pkg-card); box-shadow: var(--pkg-shadow), inset 0 0 0 1px var(--pkg-line); }
.pkg-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14px; }
.pkg-table caption { padding: 18px 20px 6px; caption-side: top; font-weight: 700; color: var(--pkg-text); }
.pkg-table th, .pkg-table td { padding: 11px 16px; border-bottom: 1px solid var(--pkg-line); text-align: center; }
.pkg-table thead th { position: sticky; top: 0; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--pkg-a); background: var(--pkg-card); }
.pkg-table thead th small { display: block; font-size: 13px; text-transform: none; letter-spacing: 0; color: var(--pkg-text); }
.pkg-table thead th.is-popular { background: color-mix(in srgb, var(--pkg-a) 8%, var(--pkg-card)); }
.pkg-table tbody th { font-weight: 500; text-align: left; }
.pkg-table tbody th small { display: block; font-size: 12px; color: var(--pkg-muted); }
.pkg-table tbody tr:hover { background: var(--pkg-soft); }
.pkg-row-key td { font-weight: 700; }
.pkg-yes { display: inline-grid; place-items: center; min-width: 30px; height: 30px; padding: 0 6px; border-radius: 10px; background: color-mix(in srgb, var(--pkg-a) 14%, transparent); color: var(--pkg-a); font-weight: 700; }
.pkg-no { color: var(--pkg-muted); opacity: 0.5; }

/* Что входит, шаги, FAQ */
.pkg-included { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.pkg-inc { padding: 26px 22px; border-radius: 22px; background: var(--pkg-card); box-shadow: inset 0 0 0 1px var(--pkg-line); }
.pkg-inc i {
  display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 14px; border-radius: 16px; font-size: 24px;
  color: #fff; background: linear-gradient(140deg, var(--pkg-a), var(--pkg-b));
}
.pkg-inc h3 { margin: 0 0 6px; font-size: 16px; font-weight: 700; }
.pkg-inc p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--pkg-muted); }

.pkg-steps { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 0; padding: 0; list-style: none; counter-reset: s; }
.pkg-steps::before { content: ''; position: absolute; top: 26px; left: 12%; right: 12%; height: 2px; background: linear-gradient(90deg, var(--pkg-a), var(--pkg-b)); opacity: 0.35; }
.pkg-steps li { position: relative; text-align: center; }
.pkg-steps span {
  display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 14px; border-radius: 50%;
  background: var(--pkg-card); color: var(--pkg-a); font-family: 'Montserrat', sans-serif; font-size: 20px; font-weight: 800;
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--pkg-a) 12%, transparent), inset 0 0 0 2px var(--pkg-a);
}
.pkg-steps h3 { margin: 0 0 6px; font-size: 16px; font-weight: 700; }
.pkg-steps p { margin: 0 auto; max-width: 230px; font-size: 14px; color: var(--pkg-muted); }

.pkg-faq { display: grid; gap: 12px; max-width: 820px; margin: 0 auto; }
.pkg-faq details { border-radius: 18px; background: var(--pkg-card); box-shadow: inset 0 0 0 1px var(--pkg-line); }
.pkg-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; font-weight: 600; list-style: none; cursor: pointer; }
.pkg-faq summary::-webkit-details-marker { display: none; }
.pkg-faq summary i { flex-shrink: 0; color: var(--pkg-a); transition: transform 0.3s var(--pkg-ease); }
.pkg-faq details[open] summary i { transform: rotate(45deg); }
.pkg-faq p { margin: 0; padding: 0 22px 20px; line-height: 1.6; color: var(--pkg-muted); }

/* Призыв */
.pkg-cta {
  position: relative; display: flex; align-items: center; justify-content: space-between; gap: 30px; overflow: hidden;
  padding: 44px 48px; border-radius: 30px; color: #fff; background: linear-gradient(120deg, var(--pkg-a), var(--pkg-b));
}
.pkg-cta::after {
  content: ''; position: absolute; inset: -40% -10% auto auto; width: 360px; height: 360px; border-radius: 50%;
  background: rgba(255, 255, 255, 0.15); animation: pkg-pulse 6s ease-in-out infinite;
}
.pkg-cta > * { position: relative; z-index: 1; }
.pkg-cta h2 { margin: 0 0 8px; font-size: 28px; font-weight: 800; color: #fff !important; }
.pkg-cta p { margin: 0; max-width: 520px; opacity: 0.92; }
.pkg-cta-btns { display: flex; flex-wrap: wrap; gap: 10px; }

/* Другие комплекты */
.pkg-others { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.pkg-other {
  display: flex; align-items: center; gap: 18px; padding: 22px 24px; border-radius: 22px; color: var(--pkg-text);
  background: var(--pkg-card); box-shadow: inset 0 0 0 1px var(--pkg-line); transition: transform 0.3s var(--pkg-ease), box-shadow 0.3s;
}
.pkg-other:hover { color: var(--pkg-text); transform: translateY(-4px); box-shadow: inset 0 0 0 1.5px var(--pkg-a), var(--pkg-shadow); }
.pkg-other > .bi:first-child { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 16px; font-size: 24px; color: #fff; background: linear-gradient(140deg, var(--pkg-a), var(--pkg-b)); }
.pkg-other span { flex: 1; }
.pkg-other b { display: block; font-size: 17px; }
.pkg-other small { color: var(--pkg-muted); }
.pkg-arrow { color: var(--pkg-a); transition: transform 0.3s; }
.pkg-other:hover .pkg-arrow { transform: translateX(5px); }

/* Обзор комплектов */
.pkg-hub-head { max-width: 860px; margin-bottom: 40px; text-align: center; }
.pkg-hub-head .pkg-lead { margin: 0 auto; }
.pkg-hub-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.pkg-hub-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 28px; background: var(--pkg-card); box-shadow: var(--pkg-shadow), inset 0 0 0 1px var(--pkg-line); }
.pkg-hub-art { display: block; aspect-ratio: 600 / 420; background: radial-gradient(120% 90% at 50% 0%, #252b52 0%, #12152b 55%, #090b17 100%); }
.pkg-hub-body { display: flex; flex: 1; flex-direction: column; padding: 24px; }
.pkg-hub-body h2 { margin: 0 0 10px; font-size: 20px; font-weight: 800; line-height: 1.25; }
.pkg-hub-body h2 a { color: var(--pkg-text); }
.pkg-hub-body h2 a:hover { color: var(--pkg-a); }
.pkg-hub-body > p { font-size: 14px; color: var(--pkg-muted); }
.pkg-hub-tiers { flex: 1; margin: 6px 0 20px; padding: 0; list-style: none; }
.pkg-hub-tiers a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 0; border-bottom: 1px dashed var(--pkg-line); color: var(--pkg-text); }
.pkg-hub-tiers a:hover { color: var(--pkg-a); }
.pkg-hub-tiers span { font-size: 14px; font-weight: 600; }
.pkg-hub-tiers small { display: block; font-size: 12px; font-weight: 400; color: var(--pkg-muted); }
.pkg-hub-tiers b { font-size: 17px; white-space: nowrap; color: var(--pkg-a); }

/* Липкая плашка на телефоне */
.pkg-sticky { display: none; }

/* Появление при прокрутке (без JS всё видно сразу) */
.js-pkg .pkg-reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.7s var(--pkg-ease), transform 0.7s var(--pkg-ease); transition-delay: calc(var(--d, 0) * 0.12s); }
.js-pkg .pkg-reveal.is-in { opacity: 1; transform: none; }
.js-pkg .pkg-tier.is-popular.pkg-reveal.is-in { transform: translateY(-10px); }

/* Общие стили ссылок сайта (в т.ч. тёмной темы) не должны перекрашивать кнопки */
body .pkg a.pkg-btn-primary, body .pkg a.pkg-btn-primary:hover, body .pkg a.pkg-btn-primary:focus { color: #fff; }
body .pkg a.pkg-btn-light, body .pkg a.pkg-btn-light:hover { color: #12152b; }
body .pkg a.pkg-btn-outline, body .pkg a.pkg-btn-outline:hover { color: #fff; }
body .pkg a.pkg-btn-ghost { color: var(--pkg-text); }
body .pkg a.pkg-btn-ghost:hover, body .pkg a.pkg-btn-link { color: var(--pkg-a); }

/* ---------- Анимации сцен ---------- */
.pkg-twinkle { animation: pkg-twinkle 2.2s ease-in-out infinite; animation-delay: calc(var(--i) * -0.2s); }
.pkg-beam { transform-box: fill-box; animation: pkg-breathe 4s ease-in-out infinite; }
.pkg-beam-r { animation-delay: -2s; }
.pkg-cone { transform-box: fill-box; transform-origin: center; animation: pkg-thump 0.48s ease-in-out infinite alternate; }
.pkg-couple { animation: pkg-sway 6s ease-in-out infinite; transform-origin: 300px 372px; }
.pkg-sparks circle { animation: pkg-spark 1.3s linear infinite; animation-delay: calc(var(--n) * -0.13s); }
.pkg-petal { animation: pkg-petal 7s linear infinite; animation-delay: calc(var(--n) * -1.15s); }
.pkg-sweep { animation: pkg-sweep 5s ease-in-out infinite alternate; }
.pkg-sweep-2, .pkg-head-2, .pkg-head-4 { animation-delay: -2.5s; animation-direction: alternate-reverse; }
.pkg-sweep-3, .pkg-head-3 { animation-duration: 3.4s; }
.pkg-disco { animation: pkg-spin 6s linear infinite; }
.pkg-spin { animation: pkg-spin 1.6s linear infinite; }
.pkg-bob { animation: pkg-bob 0.95s ease-in-out infinite; }
.pkg-eq { transform-box: view-box; animation: pkg-eq 0.9s ease-in-out infinite alternate; animation-delay: calc(var(--n) * -0.11s); }
.pkg-jump { animation: pkg-jump 0.95s ease-in-out infinite; animation-delay: calc(var(--n) * -0.17s); }
.pkg-array { animation: pkg-breathe 3s ease-in-out infinite; }

@keyframes pkg-twinkle { 0%, 100% { opacity: 0.35; } 50% { opacity: 1; } }
@keyframes pkg-breathe { 0%, 100% { opacity: 0.6; } 50% { opacity: 1; } }
@keyframes pkg-thump { to { transform: scale(1.12); } }
@keyframes pkg-sway { 0%, 100% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } }
@keyframes pkg-spark {
  0% { transform: translate(0, 0); opacity: 1; }
  100% { transform: translate(calc((var(--n) - 4.5) * 7px), -140px); opacity: 0; }
}
@keyframes pkg-petal {
  0% { transform: translate(0, -20px) rotate(0); opacity: 0; }
  10% { opacity: 0.9; }
  100% { transform: translate(40px, 400px) rotate(320deg); opacity: 0; }
}
@keyframes pkg-sweep { from { transform: rotate(-24deg); } to { transform: rotate(24deg); } }
@keyframes pkg-spin { to { transform: rotate(360deg); } }
@keyframes pkg-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes pkg-eq { from { transform: scaleY(0.2); } to { transform: scaleY(1); } }
@keyframes pkg-jump { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-9px); } }
@keyframes pkg-led { 0%, 100% { opacity: 0.25; } 50% { opacity: 1; } }
@keyframes pkg-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes pkg-fade { from { opacity: 0; transform: translateY(10px); } }
@keyframes pkg-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.15); } }

/* ---------- Адаптив ---------- */
@media (max-width: 1100px) {
  .pkg-hub-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 991px) {
  .pkg { padding-top: 60px; }
  .pkg-hero { grid-template-columns: 1fr; gap: 30px; }
  .pkg-hero-art { order: -1; }
  .pkg-tiers { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }
  .pkg-tier.is-popular, .js-pkg .pkg-tier.is-popular.pkg-reveal.is-in { transform: none; }
  .pkg-tier-blurb { min-height: 0; }
  .pkg-included, .pkg-steps { grid-template-columns: 1fr 1fr; }
  .pkg-steps::before { display: none; }
  .pkg-cta { flex-direction: column; align-items: flex-start; padding: 34px 28px; }
}
@media (max-width: 767px) {
  .pkg { padding-top: 4px; }
}
@media (max-width: 640px) {
  .pkg-section { margin-top: 64px; }
  .pkg-hero-price strong { font-size: 36px; }
  .pkg-included, .pkg-steps, .pkg-others, .pkg-hub-grid { grid-template-columns: 1fr; }
  .pkg-hero-chip { font-size: 11px; padding: 6px 10px; }
  .pkg-sticky {
    position: fixed; right: 12px; bottom: 12px; left: 12px; z-index: 990; display: flex; align-items: center; justify-content: space-between;
    gap: 10px; padding: 10px 10px 10px 18px; border-radius: 999px; background: var(--pkg-card);
    box-shadow: 0 18px 40px -12px rgba(0, 0, 0, 0.45), inset 0 0 0 1px var(--pkg-line);
    transform: translateY(140%); transition: transform 0.4s var(--pkg-ease);
  }
  .pkg-sticky.is-shown { transform: none; }
  .pkg-sticky .pkg-btn { padding: 11px 18px; font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .pkg *, .pkg *::before, .pkg *::after { animation: none !important; transition: none !important; }
  .js-pkg .pkg-reveal { opacity: 1; transform: none; }
  .pkg-bar i { width: var(--w); }
}
