/* ============================================================
   ЛЮМЕН — блоки
   Каждый объект лежит на своей стеклянной плите с цветной тенью.
   Подпись макета: световая сфера вокруг портрета и карточки,
   которые поворачиваются за курсором и светятся.
   ============================================================ */

/* ---------- Шапка ---------- */
.lum-top { position: sticky; inset-block-start: 0; z-index: 90; padding-block: var(--lum-3); }
.lum-top__in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lum-5);
  padding-block: var(--lum-2);
  padding-inline: var(--lum-5) var(--lum-2);
  border-radius: var(--lum-pill);
  background: var(--lum-glass);
  border: 1px solid var(--lum-edge);
  box-shadow: var(--lum-lift), var(--lum-inner);
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
}

.lum-logo { display: flex; align-items: center; gap: var(--lum-2); }
.lum-logo__d {
  inline-size: 30px; block-size: 30px; border-radius: 50%;
  background: var(--lum-grad);
  box-shadow: 0 0 22px 2px rgba(214,31,105,.75);
  flex: none;
}
.lum-logo__t { font-family: var(--lum-d); font-size: 1.2rem; color: var(--lum-white); letter-spacing: .01em; }

.lum-nav { display: flex; align-items: center; gap: var(--lum-5); }
.lum-nav a, .lum-nav .lum-off { font-size: var(--lum-t-sm); font-weight: 500; color: var(--lum-soft); transition: color .2s; }
.lum-nav a:hover { color: var(--lum-white); }

.lum-top__side { display: flex; align-items: center; gap: var(--lum-2); }
.lum-lang { font-size: var(--lum-t-xs); font-weight: 700; letter-spacing: .14em; color: var(--lum-dim); padding-inline: var(--lum-2); }

.lum-burger { display: none; inline-size: 46px; block-size: 46px; border-radius: 50%; background: var(--lum-glass); border: 1px solid var(--lum-edge); position: relative; }
.lum-burger span { position: absolute; inset-inline: 14px; block-size: 2px; border-radius: 2px; background: var(--lum-white); transition: transform .3s var(--lum-ease), opacity .2s; }
.lum-burger span:nth-child(1) { inset-block-start: 17px; }
.lum-burger span:nth-child(2) { inset-block-start: 22px; }
.lum-burger span:nth-child(3) { inset-block-start: 27px; }
.lum-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.lum-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.lum-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

.lum-drop { display: none; margin-block-start: var(--lum-3); padding: var(--lum-4) var(--lum-5) var(--lum-5); border-radius: var(--lum-r-lg);
  background: var(--lum-glass-2); border: 1px solid var(--lum-edge); box-shadow: var(--lum-lift);
  backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px); }
.lum-drop.is-open { display: block; }
.lum-drop li + li { border-block-start: 1px solid var(--lum-edge); }
.lum-drop a, .lum-drop .lum-off { display: block; padding: var(--lum-3) 0; font-weight: 500; color: var(--lum-white); }

@media (max-width: 1040px) {
  .lum-nav { display: none; }
  .lum-burger { display: block; }
  .lum-top__side .lum-btn { display: none; }
}

/* ---------- Первый экран ---------- */
.lum-hero { padding-block: var(--lum-9) var(--lum-8); position: relative; }
.lum-hero__in { display: grid; grid-template-columns: 1.06fr .94fr; gap: var(--lum-8); align-items: center; }
.lum-hero__t { margin-block: var(--lum-5) var(--lum-5); }
.lum-hero__t span { display: block; }
.lum-hero__t .lum-fill { display: inline-block; }
.lum-hero__sub { margin-block-end: var(--lum-6); }

/* Световая сфера вокруг портрета */
.lum-orb { position: relative; display: grid; place-items: center; }
.lum-hero { overflow: clip; }
.lum-orb__light {
  position: absolute;
  inline-size: 116%; block-size: 116%;
  border-radius: 50%;
  background: conic-gradient(from 210deg, var(--lum-magenta), var(--lum-violet), var(--lum-blue), var(--lum-coral), var(--lum-magenta));
  filter: blur(58px);
  opacity: .68;
  animation: lum-spin 22s linear infinite;
}
@keyframes lum-spin { to { transform: rotate(360deg); } }

.lum-orb__pic {
  position: relative;
  z-index: 1;
  inline-size: 100%;
  aspect-ratio: 4 / 5;
  border-radius: var(--lum-r-xl);
  overflow: hidden;
  border: 1px solid var(--lum-edge-2);
  box-shadow: var(--lum-lift-2), var(--lum-inner);
}
.lum-orb__pic img { inline-size: 100%; block-size: 100%; object-fit: cover; }

/* Стеклянные плашки, висящие поверх портрета */
.lum-chip {
  position: absolute;
  z-index: 2;
  padding: var(--lum-3) var(--lum-5);
  border-radius: var(--lum-r);
  background: var(--lum-glass-2);
  border: 1px solid var(--lum-edge);
  box-shadow: var(--lum-lift), var(--lum-inner);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  animation: lum-float 7s ease-in-out infinite;
}
.lum-chip--a { inset-block-start: 9%; inset-inline-start: -7%; }
.lum-chip--b { inset-block-end: 13%; inset-inline-end: -6%; animation-delay: -3.5s; }
@keyframes lum-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-13px); } }
.lum-chip__k { font-size: var(--lum-t-xs); color: var(--lum-dim); letter-spacing: .08em; }
.lum-chip__v { font-family: var(--lum-d); font-size: 1.35rem; color: var(--lum-white); line-height: 1.2; }
.lum-chip__v em { font-style: normal; background: var(--lum-grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }

@media (max-width: 980px) {
  .lum-hero { padding-block: var(--lum-7) var(--lum-7); }
  .lum-hero__in { grid-template-columns: 1fr; gap: var(--lum-7); }
  .lum-orb { order: -1; max-inline-size: 420px; margin-inline: auto; }
}
@media (max-width: 520px) {
  .lum-chip--a { inset-inline-start: -2%; }
  .lum-chip--b { inset-inline-end: -2%; }
}

/* ---------- Полоса показателей ---------- */
.lum-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; overflow: hidden; padding: 0; }
.lum-stat { padding: var(--lum-6) var(--lum-5); text-align: center; position: relative; }
.lum-stat + .lum-stat::before {
  content: '';
  position: absolute;
  inset-block: 22%;
  inset-inline-start: 0;
  inline-size: 1px;
  background: linear-gradient(transparent, var(--lum-edge), transparent);
}
.lum-stat__n { font-family: var(--lum-d); font-size: clamp(1.9rem, 4vw, 2.8rem); line-height: 1; }
.lum-stat__l { font-size: var(--lum-t-xs); letter-spacing: .1em; color: var(--lum-dim); margin-block-start: var(--lum-2); }
@media (max-width: 700px) {
  .lum-stats { grid-template-columns: 1fr 1fr; }
  .lum-stat:nth-child(3)::before { display: none; }
}

/* ---------- Карточки танцовщиц ---------- */
/* Карточка целится в 350px по ширине. Колонки заданы явно, а не через
   auto-fill: при двадцати танцовщицах четыре в ряд дают пять ровных рядов,
   а auto-fill на некоторых ширинах срывался бы на три и оставлял огрызок. */
.lum-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--lum-5); }
@media (max-width: 1180px) { .lum-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 860px)  { .lum-grid { grid-template-columns: repeat(2, 1fr); gap: var(--lum-4); } }
@media (max-width: 430px)  { .lum-grid { grid-template-columns: 1fr; } }

.lum-girl {
  position: relative;
  display: block;
  border-radius: var(--lum-r-lg);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  border: 1px solid var(--lum-edge);
  box-shadow: var(--lum-lift);
  transform-style: preserve-3d;
  transition: box-shadow .45s var(--lum-ease), transform .45s var(--lum-ease);
  will-change: transform;
}
.lum-girl img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform .9s var(--lum-ease); }
.lum-girl::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(21,10,36,.94) 2%, rgba(21,10,36,.25) 46%, rgba(21,10,36,.04));
  transition: opacity .4s;
}
.lum-girl__b { position: absolute; z-index: 2; inset-inline: var(--lum-4); inset-block-end: var(--lum-4); }
.lum-girl__n { font-family: var(--lum-d); font-size: 1.3rem; color: #fff; line-height: 1.15; }
.lum-girl__m { font-size: var(--lum-t-xs); letter-spacing: .08em; color: rgba(255,255,255,.82); margin-block-start: 2px; }
.lum-girl__s {
  position: absolute; z-index: 2;
  inset-block-start: var(--lum-3); inset-inline-start: var(--lum-3);
  padding: 5px var(--lum-3);
  border-radius: var(--lum-pill);
  background: linear-gradient(158deg, rgba(255,255,255,.30), rgba(255,255,255,.12));
  border: 1px solid rgba(255,255,255,.4);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: var(--lum-t-xs);
  font-weight: 500;
  color: #fff;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity .4s var(--lum-ease), transform .4s var(--lum-ease);
}
.lum-girl:hover { box-shadow: var(--lum-glow-2), var(--lum-lift-2); }
.lum-girl:hover img { transform: scale(1.07); }
.lum-girl:hover .lum-girl__s { opacity: 1; transform: none; }

/* ---------- Форматы ---------- */
.lum-plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--lum-5); align-items: start; }
@media (max-width: 940px) { .lum-plans { grid-template-columns: 1fr; } }

.lum-plan { padding: var(--lum-7) var(--lum-6); display: flex; flex-direction: column; transition: transform .4s var(--lum-ease), box-shadow .4s; }
.lum-plan:hover { transform: translateY(-6px); box-shadow: var(--lum-lift-2), var(--lum-inner); }
.lum-plan--top {
  background: linear-gradient(158deg, rgba(255,255,255,.2), rgba(255,255,255,.06));
  box-shadow: var(--lum-glow), var(--lum-inner);
}
@media (min-width: 941px) { .lum-plan--top { transform: translateY(-18px); } .lum-plan--top:hover { transform: translateY(-24px); } }
.lum-plan__b {
  align-self: flex-start;
  padding: 5px var(--lum-4);
  border-radius: var(--lum-pill);
  background: var(--lum-grad);
  color: #fff;
  font-size: var(--lum-t-xs);
  font-weight: 700;
  letter-spacing: .06em;
  box-shadow: 0 10px 26px -8px rgba(214,31,105,.8);
  margin-block-end: var(--lum-4);
}
.lum-plan__t { font-family: var(--lum-d); font-size: 1.6rem; color: var(--lum-white); }
.lum-plan__p { font-family: var(--lum-d); font-size: clamp(2.6rem, 5vw, 3.4rem); line-height: 1.05; margin-block: var(--lum-3) 0; }
.lum-plan__d { font-size: var(--lum-t-xs); letter-spacing: .1em; color: var(--lum-dim); }
.lum-plan__x { font-size: var(--lum-t-sm); color: var(--lum-soft); margin-block: var(--lum-4) var(--lum-5); line-height: 1.7; }
.lum-plan__l { display: grid; gap: var(--lum-3); margin-block-end: var(--lum-6); }
.lum-plan__l li { position: relative; padding-inline-start: var(--lum-6); font-size: var(--lum-t-sm); color: var(--lum-soft); }
.lum-plan__l li::before {
  content: '';
  position: absolute;
  inset-inline-start: 0; inset-block-start: .42em;
  inline-size: 16px; block-size: 16px;
  border-radius: 50%;
  background: var(--lum-grad);
  box-shadow: 0 0 14px -2px rgba(255,77,125,.9);
}
.lum-plan__l li::after {
  content: '';
  position: absolute;
  inset-inline-start: 5px; inset-block-start: .74em;
  inline-size: 5px; block-size: 2.5px;
  border-inline-start: 1.6px solid #fff;
  border-block-end: 1.6px solid #fff;
  transform: rotate(-45deg);
}
.lum-plan .lum-btn { margin-block-start: auto; }

/* ---------- География ---------- */
.lum-geo { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--lum-4); }
.lum-zone { padding: var(--lum-6); transition: transform .35s var(--lum-ease), box-shadow .35s; }
.lum-zone:hover { transform: translateY(-5px); box-shadow: var(--lum-lift-2), var(--lum-inner); }
.lum-zone__h { display: flex; align-items: baseline; justify-content: space-between; gap: var(--lum-3); margin-block-end: var(--lum-4); }
.lum-zone__r { font-family: var(--lum-d); font-size: 1.25rem; color: var(--lum-white); }
.lum-zone__e { font-size: var(--lum-t-xs); color: var(--lum-dim); white-space: nowrap; }
.lum-zone__l { display: flex; flex-wrap: wrap; gap: var(--lum-2); }
.lum-zone__l li { font-size: var(--lum-t-sm); }
.lum-zone__l a, .lum-zone__l span {
  display: inline-block;
  padding: 5px var(--lum-3);
  border-radius: var(--lum-pill);
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.09);
  color: var(--lum-soft);
  transition: background-color .25s, border-color .25s, color .25s, box-shadow .25s;
}
.lum-zone__l a:hover {
  background: var(--lum-grad);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 12px 28px -10px rgba(214,31,105,.85);
}

/* ---------- Шаги ---------- */
.lum-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--lum-4); }
@media (max-width: 920px) { .lum-steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .lum-steps { grid-template-columns: 1fr; } }
.lum-step { padding: var(--lum-6); transition: transform .35s var(--lum-ease), box-shadow .35s; }
.lum-step:hover { transform: translateY(-5px); box-shadow: var(--lum-lift-2), var(--lum-inner); }
.lum-step__n {
  inline-size: 52px; block-size: 52px;
  border-radius: var(--lum-r);
  display: grid; place-items: center;
  background: var(--lum-grad-cool);
  box-shadow: 0 16px 34px -14px rgba(67,97,255,.85), var(--lum-inner);
  font-family: var(--lum-d);
  font-size: 1.3rem;
  color: #fff;
  margin-block-end: var(--lum-5);
}
.lum-step__t { font-family: var(--lum-d); font-size: 1.2rem; color: var(--lum-white); margin-block-end: var(--lum-2); }
.lum-step__x { font-size: var(--lum-t-sm); color: var(--lum-soft); line-height: 1.7; }

/* ---------- Статья ---------- */
.lum-read { display: grid; grid-template-columns: clamp(240px, 30%, 380px) minmax(0, 1fr); gap: var(--lum-7); align-items: start; }
.lum-read__fig { position: sticky; inset-block-start: 112px; }
.lum-read__pic { border-radius: var(--lum-r-lg); overflow: hidden; aspect-ratio: 3 / 4; border: 1px solid var(--lum-edge); box-shadow: var(--lum-lift-2); }
.lum-read__cap { font-size: var(--lum-t-xs); color: var(--lum-dim); margin-block-start: var(--lum-3); }
.lum-read__body { padding: var(--lum-7); }
@media (max-width: 980px) {
  .lum-read { grid-template-columns: 1fr; gap: var(--lum-5); }
  .lum-read__fig { position: static; max-inline-size: 340px; }
  .lum-read__body { padding: var(--lum-5); }
}

/* ---------- Отзывы ---------- */
.lum-says { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--lum-4); }
@media (max-width: 940px) { .lum-says { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .lum-says { grid-template-columns: 1fr; } }
.lum-say { padding: var(--lum-6); display: flex; flex-direction: column; gap: var(--lum-4); transition: transform .35s var(--lum-ease), box-shadow .35s; }
.lum-say:hover { transform: translateY(-5px); box-shadow: var(--lum-lift-2), var(--lum-inner); }
.lum-say__s { color: var(--lum-coral); letter-spacing: .2em; font-size: .95rem; line-height: 1; }
.lum-say__t { font-size: var(--lum-t-sm); color: var(--lum-soft); line-height: 1.8; }
.lum-say__a { display: flex; align-items: center; gap: var(--lum-3); margin-block-start: auto; }
.lum-say__av {
  inline-size: 42px; block-size: 42px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--lum-grad-cool);
  box-shadow: 0 12px 26px -10px rgba(107,33,168,.9), var(--lum-inner);
  font-family: var(--lum-d);
  font-size: 1rem;
  color: #fff;
  flex: none;
}
.lum-say__w strong { display: block; color: var(--lum-white); font-weight: 500; font-size: var(--lum-t-sm); line-height: 1.3; }
.lum-say__w span { font-size: var(--lum-t-xs); color: var(--lum-dim); }

/* ---------- Вопросы ---------- */
.lum-faq { display: grid; gap: var(--lum-3); grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
@media (max-width: 1000px) { .lum-faq { grid-template-columns: 1fr; } }
.lum-q { overflow: hidden; transition: box-shadow .35s, border-color .35s; }
.lum-q.is-open { box-shadow: var(--lum-glow), var(--lum-inner); border-color: var(--lum-edge-2); }
.lum-q__b { inline-size: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--lum-4); padding: var(--lum-5) var(--lum-6); text-align: start; }
.lum-q__t { font-family: var(--lum-d); font-size: 1.12rem; color: var(--lum-white); line-height: 1.3; }
.lum-q__i {
  flex: none;
  inline-size: 34px; block-size: 34px;
  border-radius: 50%;
  background: var(--lum-glass);
  border: 1px solid var(--lum-edge);
  position: relative;
  transition: background .35s, transform .35s var(--lum-ease);
}
.lum-q__i::before, .lum-q__i::after {
  content: '';
  position: absolute;
  inset: 0;
  margin: auto;
  inline-size: 13px; block-size: 2px;
  border-radius: 2px;
  background: var(--lum-white);
  transition: transform .35s var(--lum-ease), background .35s;
}
.lum-q__i::after { transform: rotate(90deg); }
.lum-q.is-open .lum-q__i { background: var(--lum-grad); border-color: transparent; box-shadow: 0 8px 20px -8px rgba(214,31,105,.7); }
.lum-q.is-open .lum-q__i::before,
.lum-q.is-open .lum-q__i::after { background: #fff; }
.lum-q.is-open .lum-q__i::after { transform: rotate(0); }
.lum-q__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s var(--lum-ease); }
.lum-q.is-open .lum-q__a { grid-template-rows: 1fr; }
.lum-q__a > div { overflow: hidden; }
.lum-q__a p { padding: 0 var(--lum-6) var(--lum-5); font-size: var(--lum-t-sm); line-height: 1.85; color: var(--lum-soft); }

/* ---------- Финал ---------- */
.lum-end { position: relative; margin-block: var(--lum-9); padding: var(--lum-10) var(--lum-6); text-align: center; overflow: hidden; border-radius: var(--lum-r-xl); }
.lum-end__glow {
  position: absolute;
  inset-inline-start: 50%;
  inset-block-start: 50%;
  inline-size: min(900px, 130%);
  block-size: min(900px, 130%);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: conic-gradient(from 40deg, var(--lum-magenta), var(--lum-violet), var(--lum-blue), var(--lum-coral), var(--lum-magenta));
  filter: blur(80px);
  opacity: .55;
  animation: lum-spin 26s linear infinite;
  pointer-events: none;
}
.lum-end__in { position: relative; z-index: 1; display: grid; gap: var(--lum-5); justify-items: center; }
.lum-end p { max-inline-size: 46ch; color: var(--lum-soft); }

/* ---------- Подвал ---------- */
.lum-foot { border-block-start: 1px solid var(--lum-edge); padding-block: var(--lum-8) var(--lum-6); background: var(--lum-foot-bg); }
.lum-foot__g { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr; gap: var(--lum-6); }
@media (max-width: 1180px) { .lum-foot__g { grid-template-columns: 1fr 1fr 1fr; } }
@media (max-width: 940px) { .lum-foot__g { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .lum-foot__g { grid-template-columns: 1fr; } }
.lum-foot__t { font-size: var(--lum-t-xs); letter-spacing: .16em; color: var(--lum-white); margin-block-end: var(--lum-4); }
.lum-foot ul { display: grid; gap: var(--lum-2); }
.lum-foot a, .lum-foot .lum-off { font-size: var(--lum-t-sm); color: var(--lum-dim); transition: color .2s; }
.lum-foot a:hover { color: var(--lum-rose); }
.lum-foot__x { font-size: var(--lum-t-sm); color: var(--lum-dim); max-inline-size: 40ch; margin-block-start: var(--lum-4); }
.lum-foot__b { margin-block-start: var(--lum-7); padding-block-start: var(--lum-5); border-block-start: 1px solid var(--lum-edge);
  display: flex; flex-wrap: wrap; gap: var(--lum-4); justify-content: space-between; font-size: var(--lum-t-xs); color: var(--lum-dim); }

/* ---------- Панель на телефоне ---------- */
.lum-dock {
  position: fixed; inset-inline: var(--lum-3); inset-block-end: var(--lum-3); z-index: 95;
  display: none; gap: var(--lum-2);
  padding: var(--lum-2);
  border-radius: var(--lum-pill);
  background: linear-gradient(158deg, rgba(255,255,255,.16), rgba(255,255,255,.05));
  border: 1px solid var(--lum-edge);
  box-shadow: var(--lum-lift-2), var(--lum-inner);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  transform: translateY(140%);
  transition: transform .4s var(--lum-spring);
}
.lum-dock.is-up { transform: none; }
.lum-dock .lum-btn { flex: 1; padding-inline: var(--lum-4); }
@media (max-width: 760px) { .lum-dock { display: flex; } body { padding-block-end: 92px; } }

.lum-enc { cursor: pointer; }

/* ---------- Внутренние страницы ---------- */
.lum-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lum-2); font-size: var(--lum-t-xs); color: var(--lum-dim); margin-block-end: var(--lum-5); }
.lum-crumbs a { transition: color .2s; }
.lum-crumbs a:hover { color: var(--lum-rose); }
.lum-crumbs i { font-style: normal; opacity: .5; }

.lum-phero { padding-block: var(--lum-8) var(--lum-7); }
.lum-phero__h1 { font-size: clamp(2.4rem, 6.5vw, 4.6rem); margin-block: var(--lum-4) var(--lum-5); }
.lum-phero__h1 em { font-style: normal; background: var(--lum-grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }

/* Плитки соседних городов */
.lum-near { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: var(--lum-3); }
.lum-near__i { padding: var(--lum-5); display: flex; flex-direction: column; gap: var(--lum-1); transition: transform .3s var(--lum-ease), box-shadow .3s; }
.lum-near__i:hover { transform: translateY(-4px); box-shadow: var(--lum-lift-2), var(--lum-inner); }
.lum-near__n { font-family: var(--lum-d); font-size: 1.05rem; color: var(--lum-white); line-height: 1.25; }
.lum-near__e { font-size: var(--lum-t-xs); color: var(--lum-dim); }

/* Лента блога */
.lum-arts { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--lum-4); }
.lum-art { padding: var(--lum-6); display: flex; flex-direction: column; gap: var(--lum-2);
  transition: transform .3s var(--lum-ease), box-shadow .3s; }
.lum-art:hover { transform: translateY(-4px); box-shadow: var(--lum-lift-2), var(--lum-inner); }
.lum-art:hover .lum-art__go { color: var(--lum-hot); }
.lum-art__m { display: flex; gap: var(--lum-3); align-items: center; font-size: var(--lum-t-xs); color: var(--lum-dim); }
.lum-art__r::before { content: '·'; margin-inline-end: var(--lum-3); }
.lum-art__t { font-family: var(--lum-d); font-size: 1.35rem; line-height: 1.2; color: var(--lum-white); }
.lum-art__x { color: var(--lum-soft); line-height: 1.65; }
.lum-art__go { margin-block-start: auto; padding-block-start: var(--lum-2); font-weight: 700;
  font-size: var(--lum-t-sm); color: var(--lum-white); transition: color .25s; }
@media (max-width: 640px) { .lum-art { padding: var(--lum-5); } .lum-art__t { font-size: 1.2rem; } }

/* Текст записи шире, чем узкая колонка по умолчанию */
.lum-body--wide { max-inline-size: 1040px; margin-inline: auto; }

/* Профиль танцовщицы */
.lum-model { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: var(--lum-7); align-items: start; }
@media (max-width: 900px) { .lum-model { grid-template-columns: 1fr; gap: var(--lum-5); } }
.lum-shot { position: relative; border-radius: var(--lum-r-xl); overflow: hidden; aspect-ratio: 4 / 5; border: 1px solid var(--lum-edge); box-shadow: var(--lum-lift-2); }
.lum-shot img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.lum-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: var(--lum-2); margin-block-start: var(--lum-3); }
.lum-thumbs img { border-radius: var(--lum-r); aspect-ratio: 1; object-fit: cover; cursor: pointer; border: 2px solid transparent; opacity: .68; transition: opacity .25s, border-color .25s, transform .25s; }
.lum-thumbs img:hover { opacity: 1; transform: translateY(-2px); }
.lum-thumbs img.is-on { opacity: 1; border-color: var(--lum-rose); }

.lum-info { padding: var(--lum-7); }
@media (max-width: 620px) { .lum-info { padding: var(--lum-5); } }
.lum-info__n { font-family: var(--lum-d); font-size: clamp(2rem, 5vw, 3rem); line-height: 1.05; color: var(--lum-white); }
.lum-params { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: var(--lum-2); margin-block: var(--lum-5); }
.lum-param { padding: var(--lum-4) var(--lum-3); border-radius: var(--lum-r); background: rgba(255,255,255,.42); border: 1px solid var(--lum-edge); text-align: center; }
.lum-param__k { display: block; font-size: var(--lum-t-xs); color: var(--lum-dim); letter-spacing: .06em; }
.lum-param__v { display: block; font-family: var(--lum-d); font-size: 1.35rem; line-height: 1.2; margin-block-start: 2px; }
.lum-tags { display: flex; flex-wrap: wrap; gap: var(--lum-2); margin-block: var(--lum-5); }
.lum-tag { display: inline-block; padding: 6px var(--lum-4); border-radius: var(--lum-pill); background: rgba(255,255,255,.5); border: 1px solid var(--lum-edge); font-size: var(--lum-t-sm); transition: background .25s, color .25s, border-color .25s, box-shadow .25s; }
.lum-tag:hover { background: var(--lum-grad); color: #fff; border-color: transparent; box-shadow: 0 12px 26px -10px rgba(214,31,105,.8); }
.lum-info__lbl { font-size: var(--lum-t-xs); letter-spacing: .14em; color: var(--lum-dim); margin-block-end: var(--lum-2); }
.lum-info__p { color: var(--lum-soft); font-size: var(--lum-t-sm); line-height: 1.8; }
.lum-info .lum-btns { margin-block-start: var(--lum-6); }

/* Список кварталов и площадок */
.lum-chips { display: flex; flex-wrap: wrap; gap: var(--lum-2); }
.lum-chips li { padding: 7px var(--lum-4); border-radius: var(--lum-pill); background: rgba(255,255,255,.5); border: 1px solid var(--lum-edge); font-size: var(--lum-t-sm); color: var(--lum-soft); }

/* Содержимое страницы из редактора */
.lum-body { padding: var(--lum-7); }
@media (max-width: 620px) { .lum-body { padding: var(--lum-5); } }
.lum-body > * + * { margin-block-start: var(--lum-4); }
.lum-body h2 { font-size: var(--lum-t-h2); margin-block-start: var(--lum-7); }
.lum-body h3 { font-size: var(--lum-t-h3); margin-block-start: var(--lum-6); display: flex; align-items: center; gap: var(--lum-3); }
.lum-body h3::before { content: ''; inline-size: 22px; block-size: 3px; border-radius: 2px; background: var(--lum-grad); flex: none; }
.lum-body h2 + p, .lum-body h3 + p { margin-block-start: var(--lum-3); }
.lum-body p, .lum-body li { color: var(--lum-soft); }
.lum-body strong { color: var(--lum-white); font-weight: 500; }
.lum-body a { color: var(--lum-rose); border-block-end: 1px solid rgba(255,77,125,.4); }
.lum-body a:hover { color: var(--lum-coral); border-block-end-color: var(--lum-coral); }
.lum-body ul { display: grid; gap: var(--lum-2); }
.lum-body ul li { position: relative; padding-inline-start: var(--lum-5); }
.lum-body ul li::before { content: ''; position: absolute; inset-inline-start: 0; inset-block-start: .72em; inline-size: 8px; block-size: 8px; border-radius: 50%; background: var(--lum-grad); }
/* Чипсы внутри текстового блока. Правила .lum-body ul весят больше
   и превращали их в столбец во всю ширину с точками. */
.lum-body .lum-chips { display: flex; flex-wrap: wrap; }
.lum-body .lum-chips li { padding: 7px var(--lum-4); padding-inline-start: var(--lum-4); }
.lum-body .lum-chips li::before { content: none; }
.lum-body img { border-radius: var(--lum-r-lg); box-shadow: var(--lum-lift); }
.lum-fig { margin-block: var(--lum-6); }
.lum-fig img { display: block; inline-size: 100%; block-size: auto; }
.lum-fig figcaption { margin-block-start: var(--lum-3); font-size: var(--lum-t-sm); color: var(--lum-dim); }

/* Постраничная навигация */
.lum-pages { display: flex; justify-content: center; gap: var(--lum-2); margin-block-start: var(--lum-7); }

/* Пустая страница и 404 */
.lum-blank { min-block-size: 56vh; display: grid; place-items: center; text-align: center; padding-block: var(--lum-9); }
.lum-blank__n { font-family: var(--lum-d); font-size: clamp(5rem, 18vw, 11rem); line-height: 1; }

/* ---------- Переключатель языков ---------- */
.lum-langs { display: flex; gap: 2px; padding: 3px; border-radius: var(--lum-pill); background: rgba(255,255,255,.5); border: 1px solid var(--lum-edge); }
.lum-lang { padding: 6px var(--lum-3); border-radius: var(--lum-pill); font-size: var(--lum-t-xs); font-weight: 700; letter-spacing: .1em; color: var(--lum-dim); transition: background .25s, color .25s; }
.lum-lang:hover { color: var(--lum-white); }
.lum-lang.is-on { background: var(--lum-grad); color: #fff; }

/* ---------- Кадр в карточке формата ---------- */
.lum-plan__pic {
  margin: calc(-1 * var(--lum-7) + var(--lum-2)) calc(-1 * var(--lum-6) + var(--lum-2)) var(--lum-5);
  border-radius: var(--lum-r-lg);
  overflow: hidden;
  aspect-ratio: 16 / 10;
  border: 1px solid var(--lum-edge);
  box-shadow: var(--lum-lift);
}
.lum-plan__pic img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform .8s var(--lum-ease); }
.lum-plan:hover .lum-plan__pic img { transform: scale(1.05); }
.lum-plan__b { position: relative; z-index: 1; }

/* ---------- Поводы ---------- */
.lum-occ { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--lum-4); }
@media (max-width: 900px) { .lum-occ { grid-template-columns: 1fr 1fr; } }
@media (max-width: 430px) { .lum-occ { grid-template-columns: 1fr; } }
.lum-occ__i {
  padding: var(--lum-6);
  display: flex; flex-direction: column; gap: var(--lum-2);
  position: relative;
  transition: transform .35s var(--lum-ease), box-shadow .35s;
}
.lum-occ__i:not(.is-flat)::after {
  content: '';
  position: absolute;
  inset-block-start: var(--lum-5);
  inset-inline-end: var(--lum-5);
  inline-size: 9px; block-size: 9px;
  border-block-start: 2px solid var(--lum-rose);
  border-inline-end: 2px solid var(--lum-rose);
  transform: rotate(45deg);
  opacity: .55;
  transition: transform .35s var(--lum-ease), opacity .35s;
}
[dir="rtl"] .lum-occ__i:not(.is-flat)::after { transform: rotate(-135deg); }
.lum-occ__i:not(.is-flat):hover { transform: translateY(-5px); box-shadow: var(--lum-lift-2), var(--lum-inner); }
.lum-occ__i:not(.is-flat):hover::after { opacity: 1; }
.lum-occ__i.is-flat { opacity: .78; }
.lum-occ__n { font-family: var(--lum-d); font-size: 1.25rem; color: var(--lum-white); line-height: 1.2; }
.lum-occ__x { font-size: var(--lum-t-sm); color: var(--lum-soft); }

/* ---------- Полоса цен ---------- */
.lum-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; padding: 0; overflow: hidden; }
.lum-strip__i { padding: var(--lum-5) var(--lum-4); text-align: center; position: relative; }
.lum-strip__i + .lum-strip__i::before {
  content: ''; position: absolute; inset-block: 22%; inset-inline-start: 0;
  inline-size: 1px; background: linear-gradient(transparent, var(--lum-edge), transparent);
}
.lum-strip__t { display: block; font-size: var(--lum-t-xs); letter-spacing: .12em; color: var(--lum-dim); }
.lum-cur { font-family: var(--lum-s); font-weight: 700; font-size: .78em; letter-spacing: .01em; }
.lum-strip__p { display: block; font-family: var(--lum-d); font-size: clamp(1.6rem, 3.4vw, 2.2rem); line-height: 1.1; margin-block: 2px; }
.lum-strip__d { display: block; font-size: var(--lum-t-xs); color: var(--lum-dim); }
.lum-strip__x {
  grid-column: 1 / -1;
  padding: var(--lum-4) var(--lum-5);
  border-block-start: 1px solid var(--lum-edge);
  font-size: var(--lum-t-sm);
  color: var(--lum-soft);
  text-align: center;
}
@media (max-width: 560px) {
  .lum-strip { grid-template-columns: 1fr; }
  .lum-strip__i + .lum-strip__i::before { inset-block: auto; inset-block-start: 0; inset-inline: 22%; inline-size: auto; block-size: 1px; background: linear-gradient(90deg, transparent, var(--lum-edge), transparent); }
}

/* ---------- Сценарии вечера ---------- */
.lum-say__h { display: flex; flex-direction: column; gap: 2px; padding-block-end: var(--lum-3); border-block-end: 1px solid var(--lum-edge); }
.lum-say__place { font-family: var(--lum-d); font-size: 1.15rem; color: var(--lum-white); line-height: 1.2; }
.lum-say__meta { font-size: var(--lum-t-xs); letter-spacing: .06em; color: var(--lum-dim); }

/* ---------- Кадр внутри лонгрида ---------- */
.lum-fig { margin-block: var(--lum-6); }
.lum-fig__p { border-radius: var(--lum-r-lg); overflow: hidden; aspect-ratio: 16 / 10; border: 1px solid var(--lum-edge); box-shadow: var(--lum-lift); }
.lum-fig__p img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.lum-fig figcaption { font-size: var(--lum-t-xs); color: var(--lum-dim); margin-block-start: var(--lum-3); }

/* ---------- Пальцем по телефону ---------- */
@media (max-width: 760px) {
  .lum-zone__l li { margin-block: 2px; }
  .lum-zone__l a, .lum-zone__l span { display: inline-block; padding-block: 7px; }
  .lum-foot__l li + li { margin-block-start: 4px; }
  .lum-foot__l a { display: inline-block; padding-block: 6px; }
  .lum-chips li { padding-block: 10px; }
  .lum-tag { padding-block: 10px; }
  .lum-crumbs { gap: var(--lum-3); }
}

/* ---------- Широкий кадр под шапкой ---------- */
.lum-band { border-radius: var(--lum-r-xl); overflow: hidden; aspect-ratio: 16 / 7; border: 1px solid var(--lum-edge); box-shadow: var(--lum-lift-2); }
.lum-band img { inline-size: 100%; block-size: 100%; object-fit: cover; }
@media (max-width: 700px) { .lum-band { aspect-ratio: 4 / 3; } }

/* ---------- Почему мы: пронумерованные плиты ---------- */
.lum-why { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--lum-4); }
@media (max-width: 1000px) { .lum-why { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px)  { .lum-why { grid-template-columns: 1fr; } }
.lum-why__i { padding: var(--lum-6); display: flex; flex-direction: column; gap: var(--lum-3); transition: transform .35s var(--lum-ease), box-shadow .35s; }
.lum-why__i:hover { transform: translateY(-4px); box-shadow: var(--lum-lift-2), var(--lum-inner); }
.lum-why__n { font-family: var(--lum-d); font-size: 1.6rem; line-height: 1; background: var(--lum-grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.lum-why__t { font-family: var(--lum-d); font-size: 1.15rem; line-height: 1.25; color: var(--lum-white); }
.lum-why__x { font-size: var(--lum-t-sm); color: var(--lum-soft); line-height: 1.75; }

/* ---------- Декор не должен растягивать документ ----------
   Свечения у портрета и у финального блока сидят на отрицательных
   отступах. Раньше их душили через overflow-x на html, но это
   убивало вертикальную прокрутку. Душим по месту. */
/* .lum-orb НЕ обрезаем: плашки с ценой и временем подачи специально
   свисают за край портрета на -7% и -6%, обрезка их срезала.
   Свечение душит .lum-hero, этого достаточно. */
.lum-hero, .lum-end { overflow: clip; }
.lum-sec { overflow-x: clip; }

/* Лонгрид без бокового кадра — в одну колонку */
.lum-read.is-solo { grid-template-columns: minmax(0, 1fr); }

/* ---------- Формат подробно ---------- */
.lum-show { display: grid; grid-template-columns: clamp(260px, 34%, 420px) minmax(0, 1fr); gap: var(--lum-6); align-items: start; margin-block-end: var(--lum-6); }
.lum-show.is-solo { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 820px) { .lum-show { grid-template-columns: minmax(0, 1fr); } }
.lum-show__pic { border-radius: var(--lum-r-lg); overflow: hidden; aspect-ratio: 4 / 5; border: 1px solid var(--lum-edge); box-shadow: var(--lum-lift-2); }
.lum-show__pic img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.lum-show__b { padding: var(--lum-6); display: flex; flex-direction: column; gap: var(--lum-3); }
.lum-show__h { display: flex; align-items: baseline; justify-content: space-between; gap: var(--lum-4); flex-wrap: wrap; }
.lum-show__t { font-family: var(--lum-d); font-size: clamp(1.4rem, 3vw, 1.9rem); line-height: 1.15; color: var(--lum-white); }
.lum-show__p { font-family: var(--lum-d); font-size: clamp(1.5rem, 3.2vw, 2rem); line-height: 1; }
.lum-show__d { font-size: var(--lum-t-xs); letter-spacing: .1em; color: var(--lum-dim); }
.lum-show__l { display: grid; gap: var(--lum-2); list-style: none; }
.lum-show__l li { position: relative; padding-inline-start: 20px; font-size: var(--lum-t-sm); }
.lum-show__l li::before { content: ''; position: absolute; inset-inline-start: 0; inset-block-start: .62em; inline-size: 7px; block-size: 7px; border-radius: 50%; background: var(--lum-grad); }
.lum-show__n { font-size: var(--lum-t-sm); color: var(--lum-dim); padding-block-start: var(--lum-3); border-block-start: 1px solid var(--lum-edge); }

/* ---------- Звонок в шапке ---------- */
.lum-tel {
  display: inline-flex; align-items: center; justify-content: center;
  inline-size: 44px; block-size: 44px; flex: none;
  border-radius: 50%;
  background: var(--lum-glass); border: 1px solid var(--lum-edge);
  box-shadow: var(--lum-lift);
  font-size: 0; color: transparent;
  position: relative;
  transition: transform .3s var(--lum-ease), box-shadow .3s;
}
.lum-tel::before {
  content: '';
  position: absolute; inset: 0; margin: auto;
  inline-size: 19px; block-size: 19px;
  background: var(--lum-grad);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.2.4 2.4.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.2 1l-2.3 2.2z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.2.4 2.4.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.2 1l-2.3 2.2z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.lum-tel:hover { transform: translateY(-2px); box-shadow: var(--lum-lift-2); }

/* ---------- Выпадающее меню ---------- */
.lum-drop__lbl {
  margin-block-start: var(--lum-4);
  padding-block-start: var(--lum-4);
  border-block-start: 1px solid var(--lum-edge);
  font-size: var(--lum-t-xs); letter-spacing: .12em; text-transform: uppercase;
  color: var(--lum-dim);
}
.lum-drop__g { display: grid; grid-template-columns: 1fr 1fr; gap: 2px var(--lum-4); margin-block-start: var(--lum-2); }
.lum-drop__g a { display: block; padding-block: 9px; font-size: var(--lum-t-sm); color: var(--lum-soft); }
.lum-drop__g a:hover { color: var(--lum-white); }
.lum-drop__cta { display: grid; gap: var(--lum-2); margin-block-start: var(--lum-4); padding-block-start: var(--lum-4); border-block-start: 1px solid var(--lum-edge); }

/* ---------- Пара кадров на всю ширину ---------- */
.lum-pair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lum-4); }
@media (max-width: 700px) { .lum-pair { grid-template-columns: 1fr; } }
.lum-pair__i { border-radius: var(--lum-r-lg); overflow: hidden; aspect-ratio: 4 / 3; border: 1px solid var(--lum-edge); box-shadow: var(--lum-lift-2); }
.lum-pair__i img { inline-size: 100%; block-size: 100%; object-fit: cover; }

/* ---------- Страницы каталога: свои классы ---------- */
.lum-pages__i {
  min-inline-size: 44px; block-size: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  padding-inline: var(--lum-3);
  border-radius: var(--lum-pill);
  background: var(--lum-glass); border: 1px solid var(--lum-edge);
  box-shadow: var(--lum-lift);
  font-weight: 500; color: var(--lum-soft);
  transition: transform .25s var(--lum-ease), box-shadow .25s, color .2s;
}
a.lum-pages__i:hover { transform: translateY(-2px); box-shadow: var(--lum-lift-2); color: var(--lum-white); }
.lum-pages__i.is-on { background: var(--lum-grad); border-color: transparent; color: #fff; box-shadow: var(--lum-glow); }

/* ---------- Стили танцовщицы с пояснением ---------- */
.lum-notes { display: grid; gap: var(--lum-4); grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.lum-note { padding: var(--lum-5); border-radius: var(--lum-r-lg); background: var(--lum-glass); border: 1px solid var(--lum-edge); box-shadow: var(--lum-lift); }
.lum-note__t { display: inline-block; font-family: var(--lum-d); font-size: var(--lum-t-h3); line-height: 1.2; margin-block-end: var(--lum-2); background: var(--lum-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lum-note__p { font-size: var(--lum-t-sm); color: var(--lum-soft); }
