/* ==========================================================================
   DEEPLOYALTY — стилі секцій сторінок
   Hero · Trust · Scenarios · Partnership · Hub · Products · Cases · Timeline
   Team · Mission · FAQ · Final CTA · Login · 404
   ========================================================================== */

/* Перемикач із «повзунком» (ритейл — «єдина точка входу», банк — «1% / 15%»).
   Повзунок їде на другу кнопку, коли блок у другому режимі: .ops[data-mode="via"], .tg[data-mode="target"]. */
.ops-switch {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 4px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.05);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.ops-switch__thumb {
  position: absolute;
  left: 4px; top: 4px; bottom: 4px;
  width: calc(50% - 4px);
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
  transition: transform 0.6s var(--ease-out), background-color 0.5s;
}
:is(.ops[data-mode="via"], .tg[data-mode="target"]) .ops-switch__thumb { transform: translateX(100%); background: rgba(47, 91, 239, 0.18); box-shadow: inset 0 0 0 1px rgba(124, 155, 255, 0.55), 0 8px 24px -14px rgba(47, 91, 239, 0.9); }
.ops-switch__opt {
  position: relative;
  padding: 10px 22px;
  border: 0;
  background: none;
  color: var(--text-on-dark-2);
  font: inherit;
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.4s;
}
.ops-switch__opt[aria-selected="true"] { color: var(--text-on-dark); }
/* короткі підписи перемикача на телефоні */
.ops-switch__short { display: none; }
@media (max-width: 760px) {
  .ops-switch__full { display: none; }
  .ops-switch__short { display: inline; }
}

/* Кругла іконка мережі в мокапах інтерфейсів (brand_logo() у app/bootstrap.php) */
.brand-logo { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; overflow: hidden; color: #fff; }
.brand-logo .logo-mark { max-width: 78%; }
.brand-logo--s { width: 26px; height: 26px; }
.brand-logo--xs { width: 22px; height: 22px; }
.brand-logo--wog { background: #12a150; }
.brand-logo--foxtrot { background: #ff5b1a; }
.brand-logo--podorozhnyk { background: #00a04a; }
.brand-logo--glovo { background: #ffc244; color: #00a082; }
.brand-logo--socar { background: #fff; color: #173f8f; }
.brand-logo--kims { background: #fff; color: #1674c4; }
.brand-logo--varus { background: #fff; color: #11823b; }
.brand-logo--avrora { background: #fff; color: #d4142a; }
.brand-logo--abank { background: #fff; color: #111; }
/* білі кола на білому тлі — з тонким контуром */
:is(.brand-logo--socar, .brand-logo--kims, .brand-logo--varus, .brand-logo--avrora, .brand-logo--abank) { box-shadow: inset 0 0 0 1px rgba(13, 15, 23, 0.1); }

/* Trust ----------------------------------------------------------------- */
.trust { background: var(--surface-ink); }
.trust__sheet {
  padding: var(--section-y) 0 var(--space-64);
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  background: var(--surface-white);
}
.trust__head {
  display: flex;
  align-items: flex-end;
  gap: var(--space-24);
}
.trust__title { flex: 1 1 auto; max-width: 792px; }
.visa-badge {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: var(--space-16);
  margin-left: auto;
  padding-bottom: 6px;
}
.visa-badge__logo {
  flex: none;
  width: 66px; height: 22px;
  background: #1a1f71;
  -webkit-mask: var(--logo) center / contain no-repeat;
          mask: var(--logo) center / contain no-repeat;
}
.visa-badge > div { padding-left: var(--space-16); border-left: 1px solid var(--line); }
.visa-badge .heading-s { font-size: 15px; line-height: 20px; }
.visa-badge .caption { color: var(--fg-2); }

.stats { border-bottom: 1px solid var(--line); }
.stat {
  display: flex;
  align-items: flex-end;
  gap: var(--space-24);
  padding-block: var(--space-24);
  border-top: 1px solid var(--line);
}
.stat__value {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: var(--space-12);
  white-space: nowrap;
}
.stat__caption { flex: 0 0 384px; padding-bottom: var(--space-12); }

@media (max-width: 960px) {
  .trust__head { flex-direction: column; align-items: flex-start; gap: var(--space-32); }
  .visa-badge { margin-left: 0; }
  .stat { flex-direction: column; align-items: flex-start; gap: var(--space-12); }
  .stat__caption { flex-basis: auto; max-width: 420px; padding-bottom: 0; }
}

/* Scenarios ------------------------------------------------------------- */
.scenarios { padding-bottom: var(--section-y); }
.scenarios__tiles { display: flex; gap: var(--space-24); }
.scenario {
  position: relative;
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-48);
  min-width: 0;
  padding: var(--space-48) var(--space-48) 0;
  border-radius: var(--radius-l);
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.6s var(--ease-out), box-shadow 0.6s var(--ease-out);
}
.scenario--bank { background: var(--surface-ink); }
.scenario--retail { background: var(--surface-lavender); }
.scenario:hover { box-shadow: 0 30px 60px -30px rgba(5, 6, 12, 0.35); }
.scenario__copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-24);
}
.scenario__action { padding-top: var(--space-8); }
.scenario__visual {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  height: 360px;
  padding-top: 8px;
  overflow: hidden;
}

/* Візуали сценаріїв: один предмет-символ, без інтерфейсу */

/* Ритейл — мінімальний телефон із застосунком банку, де живе картка вашої мережі; поруч — ріст продажів */
.sc-phone { position: relative; display: block; height: 360px; padding: 0; overflow: visible; }
.sc-phone__body {
  position: absolute;
  left: 50%; top: 24px;
  /* пропорції iPhone 15 Pro (≈ 1 : 2,17), як у кейсі Sense Bank; у кадрі видно верхню частину */
  width: 290px; height: 630px;
  translate: -50% 0;
  padding: 9px;
  border-radius: 50px;
  background: linear-gradient(150deg, #2c2f38, #111217 60%, #2a2d36);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14), 0 40px 80px -36px rgba(20, 28, 70, 0.6);
  transition: transform 0.9s var(--ease-out), opacity 0.7s ease;
}
.sc-phone__screen {
  position: relative;
  height: 100%;
  padding: 0 14px;
  border-radius: 42px;
  background: #f5f6fa;
  color: var(--ui-ink);
  font-size: 12.5px;
  line-height: 17px;
  font-feature-settings: "tnum", "cv11";
  overflow: hidden;
}
.sc-phone__island { position: absolute; left: 50%; top: 11px; width: 86px; height: 25px; translate: -50% 0; border-radius: 14px; background: #000; }
.sc-phone__status { display: flex; justify-content: space-between; align-items: center; height: 42px; padding: 0 8px; font-size: 12.5px; }
.sc-phone__status span { display: flex; gap: 2px; align-items: flex-end; }
.sc-phone__status i { width: 3px; background: var(--ui-ink); border-radius: 1px; }
.sc-phone__status i:nth-child(1) { height: 5px; } .sc-phone__status i:nth-child(2) { height: 7px; } .sc-phone__status i:nth-child(3) { height: 9px; }
.sc-phone__head { display: flex; align-items: center; gap: 9px; margin: 6px 0 16px; font-size: 16px; }
.sc-phone__head b { flex: 1; font-weight: 700; letter-spacing: -0.02em; }
.sc-phone__avatar { width: 28px; height: 28px; border-radius: 50%; background: #dfe3ee; }
.sc-phone__label { margin-bottom: 8px; font-size: 13px; font-weight: 600; }
/* картка мережі всередині застосунку банку */
.sc-chain {
  position: relative;
  display: flex; flex-direction: column;
  aspect-ratio: 1.586;
  padding: 14px;
  border-radius: 14px;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(170, 195, 255, 0.45), transparent 60%),
    linear-gradient(135deg, var(--button-primary-hover) 0%, var(--theme-accent) 55%, #1a2fa8 100%);
  box-shadow: 0 16px 30px -18px rgba(33, 67, 224, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.sc-chain__logo { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: rgba(255, 255, 255, 0.18); }
.sc-chain__name { margin-top: auto; display: flex; flex-direction: column; font-size: 17px; line-height: 21px; font-weight: 700; letter-spacing: -0.01em; }
.sc-chain__name small { font-size: 11px; font-weight: 500; letter-spacing: 0; opacity: 0.85; }
.sc-chain__pan { position: absolute; right: 14px; top: 16px; font-size: 11px; letter-spacing: 0.08em; opacity: 0.8; }
.sc-offer { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding: 10px; border-radius: 14px; background: #fff; box-shadow: 0 1px 0 rgba(13, 15, 23, 0.04); }
.sc-offer__pct { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #e9eeff; color: var(--theme-accent); font-weight: 700; }
.sc-offer__text { display: flex; flex-direction: column; font-weight: 600; font-size: 12px; line-height: 16px; }
.sc-offer__text small { font-size: 11px; font-weight: 400; color: var(--ui-mute); }
/* плашка-підсумок поруч із телефоном (однакова для банку й ритейлу) */
.sc-note {
  position: absolute;
  /* заходить на правий край телефона, на рівні картки */
  right: 0; top: 220px;
  z-index: 3;
  display: flex; align-items: center; gap: 12px;
  padding: 10px 20px 10px 10px;
  border-radius: var(--radius-pill);
  background: #fff;
  color: var(--ui-ink);
  box-shadow: 0 0 0 1px rgba(13, 15, 23, 0.04), 0 26px 50px -22px rgba(20, 28, 70, 0.45);
  transition: transform 0.8s var(--ease-out) 1.2s, opacity 0.6s ease 1.2s;
}
.sc-note__icon { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: #fff; }
.sc-note--blue .sc-note__icon { background: linear-gradient(180deg, var(--button-primary-hover), var(--theme-accent)); box-shadow: 0 6px 16px -6px rgba(47, 91, 239, 0.8); }
.sc-note__text { display: flex; flex-direction: column; font-size: 15px; line-height: 20px; font-weight: 500; letter-spacing: -0.005em; white-space: nowrap; }
.sc-note__text small { font-size: 12.5px; line-height: 17px; font-weight: 400; letter-spacing: 0; color: var(--ui-mute); }
.sc-phone--dark .sc-note { background: rgba(255, 255, 255, 0.1); color: var(--ui-text-on-dark); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14), 0 26px 50px -22px rgba(0, 0, 0, 0.7); }
.sc-phone--dark .sc-note__text small { color: var(--ui-mute-dark); }

/* Банк — гаманець (як Apple Wallet): ваша картка піднімається з-під інших і стає першою */
.sc-phone--dark .sc-phone__body { background: linear-gradient(150deg, #3a3e4a, #15161b 60%, #33363f); }
.sc-phone--dark .sc-phone__screen { background: #0b0c12; color: var(--ui-text-on-dark); }
.sc-phone--dark .sc-phone__status i { background: var(--ui-text-on-dark); }
.sc-phone__head--wallet { justify-content: space-between; font-size: 22px; }
.sc-phone__plus { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #1d2029; color: var(--accent-soft); font-size: 18px; font-weight: 500; }
.sc-stack { position: relative; height: 360px; container-type: inline-size; --ch: calc(100cqw / 1.586 + 12px); }
.sc-wc {
  position: absolute;
  left: 0; right: 0;
  aspect-ratio: 1.586;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 -6px 18px -8px rgba(0, 0, 0, 0.8);
  transition: transform 1s var(--ease-in-out);
}
.sc-wc__chip { position: absolute; left: 14px; top: 14px; width: 24px; height: 18px; border-radius: 4px; background: linear-gradient(135deg, #f3e6b8, #b49654); opacity: 0.7; }
.sc-wc__net { position: absolute; right: 12px; bottom: 12px; width: 34px; height: 11px; color: #fff; opacity: 0.6; }
.sc-wc__nfc { position: absolute; right: 12px; top: 16px; opacity: 0.85; }
.sc-wc__pan { position: absolute; left: 14px; bottom: 12px; font-size: 12px; letter-spacing: 0.12em; font-feature-settings: "tnum"; }
.sc-wc--graphite { background: linear-gradient(135deg, #4b505e, #24272f 70%); }
.sc-wc--plum { background: linear-gradient(135deg, #4a3a58, #211a2a 70%); }
.sc-wc--teal { background: linear-gradient(135deg, #2f4a50, #152225 70%); }
.sc-wc--yours {
  top: 0;
  z-index: 5;
  color: #fff;
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(124, 155, 255, 0.55), transparent 60%),
    linear-gradient(135deg, var(--brand-blue-bright) 0%, var(--band-blue) 45%, #142078 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 18px 34px -14px rgba(33, 67, 224, 0.9);
}
.sc-wc--yours .sc-wc__chip, .sc-wc--yours .sc-wc__net { opacity: 0.95; }
/* фінал: ваша картка зверху повністю (top: 0 вище), інші — смужками під нею (як у Wallet) */
.sc-wc:not(.sc-wc--yours) { top: calc(var(--ch) + var(--i) * 34px); }
/* до появи: ваша картка — в самому низу стосу, інші — нагорі */
.js:not(.no-motion) .sc-phone:not(.is-live) .sc-wc:not(.sc-wc--yours) { transform: translateY(calc(var(--ch) * -1)); }
.js:not(.no-motion) .sc-phone:not(.is-live) .sc-wc--yours { transform: translateY(102px) scale(0.96); z-index: 0; }
.js:not(.no-motion) .sc-phone.is-live .sc-wc--yours { animation: wc-rise 1.4s var(--ease-in-out) 0.6s backwards; }
.js:not(.no-motion) .sc-phone.is-live .sc-wc:not(.sc-wc--yours) { transition-delay: 0.9s; }
@keyframes wc-rise {
  0% { transform: translateY(102px) scale(0.96); z-index: 0; }
  40% { transform: translateY(150px) scale(0.96); z-index: 0; }
  41% { z-index: 5; }
  100% { transform: none; z-index: 5; }
}

.scenario:hover .sc-phone__body { transform: translateY(-8px); }
.js:not(.no-motion) .sc-phone:not(.is-live) .sc-phone__body { transform: translateY(40px); opacity: 0; }
.js:not(.no-motion) .sc-phone:not(.is-live) .sc-note { transform: translateY(14px); opacity: 0; }
.no-motion .sc-phone__body, .no-motion .sc-note, .no-motion .sc-wc { transition: none !important; animation: none !important; }

.scenario--retail .tag { background: var(--surface-mist); }

@media (max-width: 960px) {
  .scenarios__tiles { flex-direction: column; }
  .scenario { flex: none; }
}
@media (max-width: 720px) {
  .scenario { padding: var(--space-32) var(--space-24) 0; gap: var(--space-32); }
  .sc-phone { height: 330px; }
  .sc-phone__body { width: 250px; height: 542px; border-radius: 44px; }
  .sc-phone__screen { border-radius: 36px; }
  .sc-note { left: auto; right: -10px; top: 236px; padding: 8px 16px 8px 8px; gap: 10px; }
  .sc-phone__body { top: 16px; left: 44%; }
  .sc-note__icon { width: 30px; height: 30px; }
  .sc-note__text { font-size: 14px; line-height: 18px; }
  .sc-note__text small { font-size: 11px; line-height: 14px; }
}

/* Partnership ----------------------------------------------------------- */
.partnership { padding-top: var(--space-48); }
.compare { display: flex; gap: var(--space-24); }
.compare__usual {
  flex: 0 0 486px;
  display: flex;
  flex-direction: column;
  gap: var(--space-32);
  padding: var(--space-48);
  border-radius: var(--radius-l);
  background: var(--surface-ink);
  color: var(--text-on-dark);
}
.path-steps { border-bottom: 1px solid var(--line); }
.path-step {
  display: flex;
  align-items: center;
  gap: var(--space-24);
  padding-block: var(--space-12);
  border-top: 1px solid var(--line);
}
.path-step .label-text { width: 32px; flex: none; }
.path-step__text {
  color: var(--text-on-dark-2);
  background-image: linear-gradient(var(--brand-blue), var(--brand-blue));
  background-repeat: no-repeat;
  background-position: 0 55%;
  background-size: 0 1.5px;
  transition: background-size 0.6s var(--ease-out), color 0.6s var(--ease-out);
}
.path-step.is-struck .path-step__text { background-size: 100% 1.5px; color: var(--text-on-dark-3); }

.compare__with {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-32);
  padding: var(--space-48);
  border-radius: var(--radius-l);
  background: var(--surface-lavender);
  box-shadow: 0 0 0 rgba(61, 107, 255, 0);
  transition: box-shadow 1s var(--ease-out);
}
.compare.is-resolved .compare__with { box-shadow: inset 0 0 0 1px rgba(47, 91, 239, 0.18), 0 30px 70px -36px rgba(61, 107, 255, 0.45); }
.compare__with > .heading-l { max-width: 480px; }
.features li {
  display: flex;
  gap: var(--space-24);
  padding-block: var(--space-24);
  border-top: 1px solid var(--line);
}
.features li img { flex: none; width: 24px; height: 24px; margin-top: 4px; }
.features li > div { display: flex; flex-direction: column; gap: var(--space-8); }

@media (max-width: 1100px) {
  .compare { flex-direction: column; }
  .compare__usual { flex-basis: auto; }
}
@media (max-width: 720px) {
  .partnership.section { padding-bottom: var(--space-64); }
  .partnership .stack-64 { gap: var(--space-32); }
  .compare { gap: var(--space-12); }
  .compare__usual, .compare__with { gap: var(--space-16); padding: var(--space-24) 20px; }
  .compare__usual .body-l { font-size: 15px; line-height: 22px; }
  /* шлях — у дві колонки: три рядки замість шести */
  .path-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-16); }
  .path-step { gap: 10px; padding-block: 10px; }
  .path-step .label-text { width: auto; font-size: 12px; }
  /* закреслення лінією тексту — коректно проходить і по двох рядках */
  .path-step__text {
    font-size: 15px; line-height: 20px;
    background: none;
    text-decoration: line-through;
    text-decoration-thickness: 1.5px;
    text-decoration-color: transparent;
    transition: text-decoration-color 0.6s var(--ease-out), color 0.6s var(--ease-out);
  }
  .path-step.is-struck .path-step__text { text-decoration-color: var(--brand-blue); }
  .compare__with > .heading-l { font-size: 22px; line-height: 28px; }
  .features li { gap: var(--space-12); padding-block: var(--space-16); }
  .features li img { width: 20px; height: 20px; margin-top: 1px; }
  .features .heading-s { font-size: 16px; line-height: 22px; }
  .features .body-m { font-size: 14px; line-height: 20px; }
  .features li > div { gap: 4px; }
}

/* Hub ------------------------------------------------------------------- */
/* Блок фіксованого розміру, що пропорційно масштабується (JS задає --fit) */
.fit-box { --fit: 1; position: relative; height: calc(528px * var(--fit)); }
.fit-box > * { position: absolute; left: 0; top: 0; transform: scale(var(--fit)); transform-origin: 0 0; }

.hub { position: relative; overflow: hidden; }
.hub > .container { position: relative; z-index: 1; }
.hub .section-head--top { align-items: flex-start; }
/* фон: сітка, як на першому екрані, розчиняється до країв у темряву + мʼяке синє світіння за схемою */
.hub__bg { position: absolute; left: 0; right: 0; top: 0; height: 1400px; pointer-events: none; }
.hub__bg i { position: absolute; inset: 0; }
.hub__glow { background: radial-gradient(42% 38% at 50% 56%, rgba(47, 91, 239, 0.2), rgba(47, 91, 239, 0.06) 55%, transparent 80%); }
.hub__grid {
  background-image:
    linear-gradient(rgba(140, 170, 255, 0.088) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140, 170, 255, 0.088) 1px, transparent 1px);
  background-size: 56px 56px;
  background-position: 50% 0;
  -webkit-mask-image: radial-gradient(62% 52% at 50% 54%, #000 0%, rgba(0, 0, 0, 0.55) 50%, transparent 100%);
          mask-image: radial-gradient(62% 52% at 50% 54%, #000 0%, rgba(0, 0, 0, 0.55) 50%, transparent 100%);
}
.flow-box { height: calc(520px * var(--fit)); margin-top: calc(-8px * var(--fit)); }
.flow { width: 1200px; height: 520px; }
.flow > * { position: absolute; }
.flow__lines { left: 0; top: 0; overflow: visible; }
.flow__path { fill: none; stroke-width: 1.2; }

/* ---------- Ліворуч: «гаманець» ---------- */
.wallet { left: 60px; top: 120px; width: 340px; height: 330px; }
.wallet__back {
  /* друга картка в гаманці, що визирає зверху */
  position: absolute;
  left: 15px; top: 14px;
  width: 300px; height: 188px;
  border-radius: 16px;
  /* друга картка — легке скло, щоб не важчила композицію */
  background: linear-gradient(135deg, rgba(150, 170, 255, 0.16) 0%, rgba(120, 140, 220, 0.06) 70%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), inset 0 0 0 1px rgba(255, 255, 255, 0.08);
  transform: scale(0.92);
  transform-origin: 50% 0;
}
.pay-card {
  position: absolute;
  left: 15px; top: 36px;
  width: 300px; height: 188px;
  border-radius: 16px;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(124, 155, 255, 0.5), transparent 60%),
    linear-gradient(135deg, var(--brand-blue-bright) 0%, var(--band-blue) 45%, #142078 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), inset 0 0 0 1px rgba(255, 255, 255, 0.1), 0 40px 70px -30px rgba(33, 67, 224, 0.75);
}
.pay-card::after {
  content: "";
  position: absolute;
  inset: -40%;
  background: linear-gradient(115deg, transparent 44%, rgba(255, 255, 255, 0.2) 50%, transparent 56%);
  animation: sheen 7s var(--ease-in-out) infinite;
}
.pay-card__chip { position: absolute; left: 22px; top: 24px; width: 38px; height: 28px; border-radius: 6px; background: linear-gradient(135deg, #f3e6b8, #b49654); opacity: 0.92; }
.pay-card__nfc { position: absolute; right: 20px; top: 28px; opacity: 0.85; }
.pay-card__pan { position: absolute; left: 22px; bottom: 26px; font-size: 16px; letter-spacing: 0.14em; font-variant-numeric: tabular-nums; }
.pay-card__brand { position: absolute; right: 20px; bottom: 20px; width: 54px; height: 18px; color: #fff; }
.wallet__wave {
  position: absolute;
  left: 150px; top: 100px;
  width: 30px; height: 30px;
  border-radius: 50%;
  border: 1.5px solid rgba(190, 210, 255, 0.7);
  opacity: 0;
}
.wallet__done {
  position: absolute;
  left: 15px; top: 254px;
  width: 300px;
  display: flex; align-items: center; justify-content: center; gap: 12px;
  color: var(--success-on-dark);
}
.wallet__done span { display: flex; flex-direction: column; line-height: 20px; }
.wallet__done b { font-size: 16px; font-weight: 600; color: var(--text-on-dark); }
.wallet__done small { font-size: 14px; color: var(--text-on-dark-2); font-variant-numeric: tabular-nums; }
.wallet__ring { stroke-dasharray: 117; stroke-dashoffset: 0; transform: rotate(-90deg); transform-origin: center; }
.wallet__tick { stroke-dasharray: 26; stroke-dashoffset: 0; }

/* ---------- Центр ---------- */
.flow-core { left: 538px; top: 188px; width: 124px; height: 124px; }
.flow-core__caption {
  position: absolute;
  left: 50%; top: calc(100% + 16px);
  translate: -50% 0;
  font-size: 13px; line-height: 18px; font-weight: 500;
  color: var(--text-on-dark-3);
  white-space: nowrap;
}
/* мʼяка градієнтна пульсація під центром */
.flow-core__pulse {
  position: absolute;
  left: 50%; top: 50%;
  width: 420px; height: 420px;
  margin: -210px 0 0 -210px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(86, 124, 255, 0.5), rgba(61, 107, 255, 0.18) 45%, rgba(61, 107, 255, 0) 100%);
  animation: core-breathe 4.5s var(--ease-in-out) infinite;
  pointer-events: none;
}
@keyframes core-breathe { 0%, 100% { transform: scale(0.82); opacity: 0.65; } 50% { transform: scale(1); opacity: 1; } }
.flow-core__disc {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.16), transparent 55%),
    radial-gradient(circle at 50% 30%, #18266a 0%, #0a0f2e 60%, #060918 100%);
  box-shadow: inset 0 0 0 1px rgba(170, 192, 255, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 0 0 10px rgba(61, 107, 255, 0.06), 0 0 90px rgba(36, 72, 232, 0.45);
}
.flow-core__disc img { width: 56px; height: auto; }
.flow-core__ring { position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(190, 210, 255, 0.6); opacity: 0; }

/* ---------- Праворуч: етапи, розділені тонкими лініями ---------- */
.flow__path--out { stroke: rgba(159, 182, 255, 0.35); }
/* етапи висять на вертикальній «шині» (x = 820): вузол на рівні підпису, тонкий розділювач між етапами */
.flow__spine { fill: none; stroke: rgba(159, 182, 255, 0.22); stroke-width: 1.2; }
.tl-step {
  left: 820px; width: 340px;
  height: 112px;
  padding: 14px 0 0 28px;
}
/* коротке підсвічування етапу в момент, коли до нього доходить імпульс */
.tl-step::after {
  content: "";
  position: absolute;
  left: 14px; right: 0; top: 4px; bottom: 6px;
  border-radius: 14px;
  background: linear-gradient(90deg, rgba(124, 155, 255, 0.14), rgba(124, 155, 255, 0) 80%);
  opacity: 0;
  pointer-events: none;
}
.tl-step + .tl-step::before {
  content: "";
  position: absolute;
  left: 28px; right: 0; top: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}
/* вузол на шині: порожнє кільце, що загоряється, коли етап активний */
.tl-step__bar {
  position: absolute;
  left: -5px; top: 17px;
  width: 11px; height: 11px;
  border-radius: 50%;
  background: var(--surface-ink);
  box-shadow: inset 0 0 0 1.5px var(--accent-soft), 0 0 0 4px rgba(124, 155, 255, 0.12), 0 0 14px rgba(124, 155, 255, 0.7);
}
.tl-step__bar::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--accent-soft); }
.tl-step__label { font-size: 13px; line-height: 18px; font-weight: 500; color: var(--text-on-dark-2); }
.tl-step__value { display: flex; align-items: baseline; gap: 8px; margin-top: 6px; font-size: 24px; line-height: 30px; font-weight: 500; letter-spacing: -0.025em; color: var(--text-on-dark); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tl-step__value small { font-size: 14px; line-height: 20px; font-weight: 400; letter-spacing: 0; color: var(--text-on-dark-2); }
.tl-step__sub { display: flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 13px; line-height: 18px; color: var(--text-on-dark-3); white-space: nowrap; }
.tl-step--accent .tl-step__value { color: var(--accent-soft); }   /* сума кешбеку — акцент, не статус */

/* Рухомі точки */
.flow__dot {
  left: 0; top: 0;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(143, 176, 255, 0.18), 0 0 14px 3px rgba(143, 176, 255, 0.85);
  offset-rotate: 0deg;
  opacity: 0;
}

/* ---------- Сценарій оплати: цикл 9 с, стартує, коли блок на екрані ---------- */
.flow.is-live .pay-card { animation: card-up 9s var(--ease-out) infinite; }
.flow.is-live .wallet__wave { animation: wave 9s var(--ease-out) infinite; }
.flow.is-live .wallet__wave--2 { animation-delay: 0.25s; }
.flow.is-live .wallet__done { animation: done 9s var(--ease-out) infinite; }
.flow.is-live .wallet__ring { animation: ring-draw 9s var(--ease-out) infinite; }
.flow.is-live .wallet__tick { animation: tick-draw 9s var(--ease-out) infinite; }
.flow.is-live .flow__dot--in { animation: dot-in 9s var(--ease-in-out) infinite; }
.flow.is-live .flow-core__ring { animation: core-ring 9s var(--ease-out) infinite; }
.flow.is-live .flow-core__pulse { animation: core-burst 9s var(--ease-out) infinite; }
.flow.is-live .flow__dot--out { animation: dot-out 9s linear infinite; }
.flow.is-live .flow__dot--up { animation: dot-up 9s var(--ease-in-out) infinite; }
.flow.is-live .flow__dot--down { animation: dot-down 9s var(--ease-in-out) infinite; }
.flow.is-live .tl-step[style*="--i: 0"]::after { animation: tl-glow-0 9s var(--ease-out) infinite; }
.flow.is-live .tl-step[style*="--i: 1"]::after { animation: tl-glow-1 9s var(--ease-out) infinite; }
.flow.is-live .tl-step[style*="--i: 2"]::after { animation: tl-glow-2 9s var(--ease-out) infinite; }
.flow.is-live .wallet__back { animation: back-up 9s var(--ease-out) infinite; }
/* точка доходить до етапів на ~38% циклу; етапи загоряються зверху вниз із кроком ~0,55 с (6%),
   а гаснуть усі разом (90–95%) — новий цикл оплати починається, лише коли стрічка порожня */
.flow.is-live .tl-step[style*="--i: 0"] { animation: tl-dim-0 9s linear infinite; }
.flow.is-live .tl-step[style*="--i: 1"] { animation: tl-dim-1 9s linear infinite; }
.flow.is-live .tl-step[style*="--i: 2"] { animation: tl-dim-2 9s linear infinite; }
.flow.is-live .tl-step[style*="--i: 0"] .tl-step__bar { animation: tl-bar-0 9s var(--ease-out) infinite; }
.flow.is-live .tl-step[style*="--i: 1"] .tl-step__bar { animation: tl-bar-1 9s var(--ease-out) infinite; }
.flow.is-live .tl-step[style*="--i: 2"] .tl-step__bar { animation: tl-bar-2 9s var(--ease-out) infinite; }
.flow.is-live .tl-step[style*="--i: 0"] :is(.tl-step__value, .tl-step__sub) { animation: tl-in-0 9s var(--ease-out) infinite; }
.flow.is-live .tl-step[style*="--i: 1"] :is(.tl-step__value, .tl-step__sub) { animation: tl-in-1 9s var(--ease-out) infinite; }
.flow.is-live .tl-step[style*="--i: 2"] :is(.tl-step__value, .tl-step__sub) { animation: tl-in-2 9s var(--ease-out) infinite; }

@keyframes card-up {
  0% { transform: translateY(70px) scale(0.94); opacity: 0; }
  8%, 92% { transform: none; opacity: 1; }
  10% { transform: translateY(-4px); }
  12% { transform: none; }
  97%, 100% { transform: translateY(70px) scale(0.94); opacity: 0; }
}
@keyframes wave {
  0%, 12% { opacity: 0; transform: scale(1); }
  14% { opacity: 1; }
  24%, 100% { opacity: 0; transform: scale(5); }
}
@keyframes done {
  0%, 17% { opacity: 0; transform: translateY(6px); }
  20%, 92% { opacity: 1; transform: none; }
  97%, 100% { opacity: 0; }
}
@keyframes ring-draw { 0%, 17% { stroke-dashoffset: 117; } 23%, 100% { stroke-dashoffset: 0; } }
@keyframes tick-draw { 0%, 21% { stroke-dashoffset: 26; } 25%, 100% { stroke-dashoffset: 0; } }
@keyframes dot-in {
  0%, 22% { offset-distance: 0%; opacity: 0; }
  24% { opacity: 1; }
  29% { opacity: 1; }
  31%, 100% { offset-distance: 100%; opacity: 0; }
}
@keyframes core-burst {
  0%, 29% { transform: scale(0.82); opacity: 0.6; }
  33% { transform: scale(1.18); opacity: 1; }
  50%, 100% { transform: scale(0.82); opacity: 0.6; }
}
@keyframes core-ring {
  0%, 30% { opacity: 0; transform: scale(1); }
  32% { opacity: 0.9; transform: scale(1); }
  44%, 100% { opacity: 0; transform: scale(1.8); }
}
@keyframes dot-out {
  0%, 32% { offset-distance: 0%; opacity: 0; }
  34% { opacity: 1; }
  37% { opacity: 1; }
  39%, 100% { offset-distance: 100%; opacity: 0; }
}
@keyframes back-up {
  0% { transform: translateY(50px) scale(0.88); opacity: 0; }
  6%, 93% { transform: scale(0.92); opacity: 1; }
  99%, 100% { transform: translateY(50px) scale(0.88); opacity: 0; }
}
@keyframes tl-dim-0 { 0%, 41% { opacity: 0.35; } 43%, 90% { opacity: 1; } 95%, 100% { opacity: 0.35; } }
@keyframes tl-bar-0 { 0%, 41% { opacity: 0.35; transform: scale(0.6); } 44%, 90% { opacity: 1; transform: none; } 95%, 100% { opacity: 0.35; transform: scale(0.6); } }
@keyframes tl-in-0 { 0%, 41% { opacity: 0; transform: translateY(6px); filter: blur(4px); } 46%, 90% { opacity: 1; transform: none; filter: none; } 95%, 100% { opacity: 0; } }
@keyframes tl-glow-0 { 0%, 41% { opacity: 0; } 43% { opacity: 1; } 56%, 100% { opacity: 0; } }
@keyframes tl-dim-1 { 0%, 45% { opacity: 0.35; } 47%, 90% { opacity: 1; } 95%, 100% { opacity: 0.35; } }
@keyframes tl-bar-1 { 0%, 45% { opacity: 0.35; transform: scale(0.6); } 48%, 90% { opacity: 1; transform: none; } 95%, 100% { opacity: 0.35; transform: scale(0.6); } }
@keyframes tl-in-1 { 0%, 45% { opacity: 0; transform: translateY(6px); filter: blur(4px); } 50%, 90% { opacity: 1; transform: none; filter: none; } 95%, 100% { opacity: 0; } }
@keyframes tl-glow-1 { 0%, 45% { opacity: 0; } 47% { opacity: 1; } 60%, 100% { opacity: 0; } }
@keyframes tl-dim-2 { 0%, 51% { opacity: 0.35; } 53%, 90% { opacity: 1; } 95%, 100% { opacity: 0.35; } }
@keyframes tl-bar-2 { 0%, 51% { opacity: 0.35; transform: scale(0.6); } 54%, 90% { opacity: 1; transform: none; } 95%, 100% { opacity: 0.35; transform: scale(0.6); } }
@keyframes tl-in-2 { 0%, 51% { opacity: 0; transform: translateY(6px); filter: blur(4px); } 56%, 90% { opacity: 1; transform: none; filter: none; } 95%, 100% { opacity: 0; } }
@keyframes tl-glow-2 { 0%, 51% { opacity: 0; } 53% { opacity: 1; } 66%, 100% { opacity: 0; } }
@keyframes dot-up {
  0%, 39% { offset-distance: 0%; opacity: 0; }
  39.5% { opacity: 1; }
  42% { offset-distance: 100%; opacity: 1; }
  43%, 100% { offset-distance: 100%; opacity: 0; }
}
@keyframes dot-down {
  0%, 48% { offset-distance: 0%; opacity: 0; }
  48.5% { opacity: 1; }
  51.5% { offset-distance: 100%; opacity: 1; }
  52.5%, 100% { offset-distance: 100%; opacity: 0; }
}
.no-motion .flow * { animation: none !important; }

/* ---------- Мобільна версія: спрощений таймлайн .flow-m (3 кроки) замість великої схеми ---------- */
.flow-m { display: none; }
@media (max-width: 760px) {
  .flow-box { display: none; }
  .flow-m { position: relative; display: flex; flex-direction: column; gap: 28px; margin: 0; padding: 0; list-style: none; }
  /* вісь через центри іконок */
  .flow-m::before {
    content: ""; position: absolute; left: 19.5px; top: 22px; bottom: 22px; width: 1px;
    background: linear-gradient(rgba(159, 182, 255, 0.4), rgba(159, 182, 255, 0.15));
  }
  /* імпульс: біжить від оплати до DEEPLOYALTY, потім до кешбеку */
  .flow-m__pulse {
    position: absolute; left: 16.5px; top: 18px;
    width: 7px; height: 7px; border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(143, 176, 255, 0.2), 0 0 14px 3px rgba(143, 176, 255, 0.9);
    opacity: 0;
  }
  .flow-m__row { position: relative; display: flex; gap: 16px; align-items: center; }
  .flow-m__icon { position: relative; z-index: 1; flex: none; display: grid; place-items: center; width: 40px; height: 40px; }
  .flow-m__icon--card i {
    position: relative; width: 38px; height: 26px; border-radius: 5px;
    background: radial-gradient(120% 90% at 100% 0%, rgba(124, 155, 255, 0.5), transparent 60%), linear-gradient(135deg, var(--brand-blue-bright), var(--band-blue) 50%, #142078);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 8px 18px -8px rgba(33, 67, 224, 0.9);
  }
  .flow-m__icon--card i::after { content: ""; position: absolute; left: 5px; top: 6px; width: 8px; height: 6px; border-radius: 1.5px; background: linear-gradient(135deg, #f3e6b8, #b49654); }
  .flow-m__icon--core {
    border-radius: 50%;
    background: radial-gradient(circle at 50% 30%, #18266a 0%, #0a0f2e 60%, #060918 100%);
    box-shadow: inset 0 0 0 1px rgba(170, 192, 255, 0.45), 0 0 0 5px rgba(61, 107, 255, 0.08), 0 0 24px rgba(36, 72, 232, 0.6);
  }
  .flow-m__icon--core img { width: 20px; height: auto; }
  .flow-m__icon--node::before {
    content: ""; width: 13px; height: 13px; border-radius: 50%;
    background: var(--accent-soft);
    box-shadow: 0 0 0 5px rgba(124, 155, 255, 0.16), 0 0 18px rgba(124, 155, 255, 0.9);
  }
  .flow-m__body { min-width: 0; }
  .flow-m__label { font-size: 13px; line-height: 18px; font-weight: 500; color: var(--text-on-dark-2); }
  .flow-m__value { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 2px; font-size: 22px; line-height: 28px; font-weight: 500; letter-spacing: -0.02em; color: var(--text-on-dark); font-variant-numeric: tabular-nums; }
  .flow-m__value small { font-size: 14px; line-height: 20px; font-weight: 400; letter-spacing: 0; color: var(--text-on-dark-2); }
  .flow-m__row--result .flow-m__value { color: var(--accent-soft); }
  .flow-m__ok { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: var(--radius-pill); background: rgba(16, 185, 129, 0.16); color: var(--success-on-dark); font-size: 11.5px; line-height: 1; font-weight: 600; letter-spacing: 0; }
  .flow-m__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
  .flow-m__chip {
    display: inline-flex; align-items: center; gap: 5px;
    height: 26px; padding: 0 10px 0 8px;
    border-radius: var(--radius-pill);
    background: rgba(124, 155, 255, 0.1);
    box-shadow: inset 0 0 0 1px rgba(124, 155, 255, 0.25);
    font-size: 13px; line-height: 1; font-weight: 500; color: var(--accent-pale);
  }
  .flow-m__chip svg { color: var(--accent-soft); }

  /* Цикл 7 с: оплата → імпульс → DEEPLOYALTY (мітки по черзі) → імпульс → кешбек → пауза → згасання */
  .flow-m.is-live .flow-m__row--pay { animation: fm-row-1 7s var(--ease-out) infinite; }
  .flow-m.is-live .flow-m__row--core { animation: fm-row-2 7s var(--ease-out) infinite; }
  .flow-m.is-live .flow-m__row--result { animation: fm-row-3 7s var(--ease-out) infinite; }
  .flow-m.is-live .flow-m__chip { animation: fm-chip 7s var(--ease-out) infinite; animation-delay: calc(var(--n) * 0.25s); }
  .flow-m.is-live .flow-m__pulse { animation: fm-pulse 7s var(--ease-in-out) infinite; }
  .flow-m.is-live .flow-m__row--result .flow-m__value { animation: fm-glow 7s var(--ease-out) infinite; }
  @keyframes fm-row-1 { 0% { opacity: 0.35; } 6%, 88% { opacity: 1; } 96%, 100% { opacity: 0.35; } }
  @keyframes fm-row-2 { 0%, 22% { opacity: 0.35; } 28%, 88% { opacity: 1; } 96%, 100% { opacity: 0.35; } }
  @keyframes fm-row-3 { 0%, 50% { opacity: 0.35; } 56%, 88% { opacity: 1; } 96%, 100% { opacity: 0.35; } }
  @keyframes fm-chip { 0%, 30% { opacity: 0; transform: translateY(4px) scale(0.96); } 36%, 88% { opacity: 1; transform: none; } 96%, 100% { opacity: 0; } }
  @keyframes fm-glow { 0%, 54% { text-shadow: none; } 60% { text-shadow: 0 0 18px rgba(159, 182, 255, 0.9); } 75%, 100% { text-shadow: none; } }
  /* імпульс: старт біля оплати, пауза в DEEPLOYALTY, фініш біля кешбеку (відстані — частки висоти списку) */
  @keyframes fm-pulse {
    0%, 8% { top: 18px; opacity: 0; }
    10% { opacity: 1; }
    22% { top: calc(50% - 4px); opacity: 1; }
    26%, 38% { top: calc(50% - 4px); opacity: 0; }
    40% { top: calc(50% - 4px); opacity: 1; }
    52% { top: calc(100% - 26px); opacity: 1; }
    56%, 100% { top: calc(100% - 26px); opacity: 0; }
  }
  .no-motion .flow-m * { animation: none !important; }
}

.hub-outcome { display: flex; flex-direction: column; align-items: center; gap: var(--space-48); }
.hub-outcome__head { display: flex; flex-direction: column; gap: var(--space-12); max-width: 1000px; text-align: center; }
.hub-outcome__cols { display: flex; gap: var(--space-48); width: 100%; }
.hub-outcome__switch { display: none; }
.hub-outcome__cols > div { flex: 1 1 0; display: flex; flex-direction: column; gap: var(--space-16); min-width: 0; }

@media (max-width: 760px) {
  /* компактно: менші проміжки, дрібніший текст списків вигод */
  .hub-outcome { gap: var(--space-32); }
  .hub-outcome__head .body-l { font-size: 15px; line-height: 22px; }
  .hub-outcome__cols { flex-direction: column; gap: var(--space-32); width: 100%; }
  /* перемикач: показуємо один список */
  .hub-outcome__switch { display: grid; width: 100%; max-width: 340px; }
  .hub-outcome__switch[data-active="1"] .ops-switch__thumb { transform: translateX(100%); background: rgba(47, 91, 239, 0.18); box-shadow: inset 0 0 0 1px rgba(124, 155, 255, 0.55); }
  .hub-outcome__switch[data-active="0"] .ops-switch__thumb { background: rgba(47, 91, 239, 0.18); box-shadow: inset 0 0 0 1px rgba(124, 155, 255, 0.55); }
  .hub-outcome__cols[data-active="0"] > div:nth-child(2),
  .hub-outcome__cols[data-active="1"] > div:nth-child(1) { display: none; }
  .hub-outcome__cols > div > .label { display: none; }   /* назву групи вже показує перемикач */
  .hub-outcome__cols > div { animation: benefit-in 0.45s var(--ease-out); }
  @keyframes benefit-in { from { opacity: 0; transform: translateY(6px); } }
  .hub-outcome__cols > div { gap: var(--space-8); }
  .hub-outcome .check-list li { gap: var(--space-12); padding-block: 10px; font-size: 15px; line-height: 21px; }
  .hub-outcome .check-list li img { width: 18px; height: 18px; margin-top: 2px; }
}

/* Ціна (синя секція) — банк і ритейл, templates/sections/pricing-band.php ------ */
.pricing-band {
  overflow: hidden;
  background: linear-gradient(145deg, var(--band-blue) 7%, var(--band-blue-end) 79%);
}
.pricing-band__inner { position: relative; z-index: 1; }
/* заголовок і лід ліворуч, праворуч — квадратна кнопка заввишки із заголовок (3 рядки display-l) */
.pricing-band__intro {
  --tile: max(176px, calc(3 * 1.125 * clamp(32px, 3.34vw, 48px)));
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--tile);
  column-gap: var(--space-64);
  row-gap: var(--space-32);
}
.pricing-band__title { grid-column: 1; grid-row: 1; max-width: 860px; }
.pricing-band__lead { grid-column: 1; grid-row: 2; max-width: 792px; }

.cta-tile {
  grid-column: 2; grid-row: 1 / span 2; align-self: start;   /* поруч із заголовком і лідом — під ними не утворюється дірка */
  position: relative;
  display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start;
  width: var(--tile); height: var(--tile);
  padding: 20px;
  border-radius: var(--radius-l);
  text-align: left;
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: background-color 0.45s var(--ease-out), color 0.45s var(--ease-out), box-shadow 0.45s var(--ease-out), translate 0.5s var(--ease-out);
}
.cta-tile__icon {
  display: grid; place-items: center;
  width: 44px; height: 44px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
  transition: box-shadow 0.45s var(--ease-out);
}
.cta-tile__arrow { position: absolute; top: 20px; right: 20px; display: grid; transition: transform 0.45s var(--ease-out); }
.cta-tile__arrow svg { width: 22px; height: 22px; }
.cta-tile__label { font-size: 16px; line-height: 22px; font-weight: 500; letter-spacing: -0.01em; }
.cta-tile:hover { background: #fff; color: var(--band-blue); translate: 0 -4px; box-shadow: 0 30px 60px -30px rgba(5, 10, 60, 0.6); }
.cta-tile:hover .cta-tile__icon { box-shadow: inset 0 0 0 1px rgba(33, 67, 224, 0.35); }
.cta-tile:hover .cta-tile__arrow { transform: translate(3px, -3px) rotate(-45deg); }

/* Сітка на синьому тлі праворуч */
.pricing-lines {
  position: absolute; z-index: -1;
  top: calc(var(--section-y) * -1); bottom: -16px;
  right: calc((100vw - 100%) / -2);
  width: min(58vw, 880px); height: calc(100% + var(--section-y) + 16px);
  pointer-events: none;
  fill: none;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 40%), linear-gradient(180deg, #000 75%, transparent);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent, #000 40%), linear-gradient(180deg, #000 75%, transparent);
  mask-composite: intersect;
}
.pricing-lines__grid path { stroke: rgba(255, 255, 255, 0.08); stroke-width: 1; }
.pricing-band__cols { display: flex; gap: var(--space-24); }
.pricing-band__col {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  padding-top: var(--space-24);
  border-top: 1px solid var(--overlay-white-12);
}
.pricing-band__col::before {
  /* біла лінія пробігає по верхній межі при наведенні */
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  height: 1px;
  background: #fff;
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 0.7s var(--ease-out);
}
.pricing-band__col:hover::before { transform: none; }

@media (max-width: 1024px) {
  .pricing-band__cols { flex-direction: column; gap: var(--space-32); }
}
@media (max-width: 960px) {
  /* кнопка-плитка стає широкою кнопкою після ліду */
  .pricing-band__intro { grid-template-columns: minmax(0, 1fr); }
  .cta-tile {
    grid-column: 1; grid-row: 3;
    flex-direction: row; align-items: center; gap: var(--space-16);
    width: 100%; max-width: 520px; height: auto;
    padding: 14px 56px 14px 14px;
  }
  .cta-tile__arrow { top: 50%; translate: 0 -50%; }
  .pricing-lines { width: 100%; opacity: 0.6; }
}
@media (max-width: 600px) {
  .cta-tile__label { font-size: 15px; }
}

/* Products (bento) ------------------------------------------------------ */
.products__title { max-width: 960px; text-wrap: balance; }

.bento-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-l);
  overflow: hidden;
  background: var(--surface-white);
  isolation: isolate;
  transition: translate 0.6s var(--ease-out), box-shadow 0.6s var(--ease-out);
}
.bento-card:hover { translate: 0 -4px; box-shadow: 0 30px 60px -36px rgba(10, 11, 20, 0.35); }
.bento-card__copy { display: flex; flex-direction: column; gap: var(--space-12); padding: var(--space-32); }

.bento-card__visual { position: relative; display: flex; justify-content: center; }

.products .bento-card { box-shadow: 0 0 0 1px rgba(13, 15, 23, 0.04); }

/* Візуали продуктів: справжній інтерфейс, що виїжджає знизу й обрізаний краєм картки */
.pv { overflow: hidden; align-items: flex-start; }
.pv__rise { margin-top: 24px; transition: transform 1.1s var(--ease-out), opacity 0.9s var(--ease-out); }
.bento-card:hover .pv.is-live .pv__rise { transform: translateY(-6px); transition-duration: 0.6s; transition-delay: 0s; }

@keyframes plan-pulse-green { 50% { box-shadow: 0 0 0 6px rgba(16, 185, 129, 0.05); } }

/* Шапка панелей плану / повернення клієнта */
.cmp__head { display: flex; align-items: center; gap: 12px; padding-bottom: 12px; }
.cmp__title { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: 14px; font-weight: 600; letter-spacing: -0.01em; white-space: nowrap; }
.cmp__title small { overflow: hidden; text-overflow: ellipsis; font-size: 12px; font-weight: 400; letter-spacing: 0; color: var(--ui-mute); }
.cmp__status {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 24px;
  padding: 0 10px 0 8px;
  border-radius: var(--radius-pill);
  background: var(--success-soft);
  color: var(--success-on-light);
  font-size: 12px;
  transition: background 0.5s ease, color 0.5s ease;
}
.cmp__status i { width: 6px; height: 6px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 3px var(--success-ring); transition: background 0.5s ease, box-shadow 0.5s ease; }
.cmp__status b { font-weight: 600; transition: opacity 0.4s ease; }
.cmp__draft { position: absolute; left: 22px; opacity: 0; }

/* статус — одна зелена капсула з крапкою на весь сайт (.cmp__status, .es__status, .pp__label--ok) */
.es__status, .pp__label--ok { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px 0 8px; border-radius: var(--radius-pill); background: var(--success-soft); color: var(--success-on-light); font-size: 12px; font-weight: 600; }
.es__status i { width: 6px; height: 6px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 3px var(--success-ring); }
.pp--dark .pp__label--ok { background: rgba(16, 185, 129, 0.16); color: var(--success-on-dark); }

/* Широка картка банку: план директора з лояльності */
.bento-card--plan { flex: 1 1 100%; flex-direction: row; }
.bento-card--plan .bento-card__copy { flex: 1; justify-content: center; padding-right: var(--space-48); }
.bento-card__plan { flex: 0 0 640px; height: 344px; }

.plan {
  width: 560px;
  min-height: 380px;
  padding: 14px 18px 18px;
  border-radius: 18px;
  background: #fff;
  color: var(--ui-ink);
  font-size: 13px;
  line-height: 18px;
  font-feature-settings: "tnum", "cv11";
  box-shadow: 0 0 0 1px rgba(13, 15, 23, 0.04), 0 30px 60px -28px rgba(20, 28, 70, 0.32);
}
.plan__avatar {
  flex: none;
  display: grid;
  place-items: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 25%, #2a3150, var(--ui-ink) 70%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}
.plan__bar { display: flex; align-items: baseline; justify-content: space-between; padding: 12px 0 10px; border-top: 1px solid var(--ui-line); }
.plan__title { font-size: 13px; font-weight: 600; }
.plan__period { font-size: 12px; color: var(--ui-mute); }
.plan__grid { position: relative; display: grid; grid-template-columns: 196px 1fr; align-items: center; }
.plan__axis { display: grid; grid-template-columns: repeat(6, 1fr); height: 22px; font-size: 11px; color: #9aa0b5; }
.plan__axis span { padding-left: 6px; border-left: 1px solid var(--ui-line); line-height: 22px; }
.plan__label { display: flex; align-items: center; gap: 8px; height: 36px; padding-right: 12px; font-size: 12.5px; font-weight: 500; white-space: nowrap; }
.plan__label i { flex: none; width: 8px; height: 8px; border-radius: 50%; }
.plan__label--done i { background: var(--success); }
.plan__label--active i { background: var(--theme-accent); box-shadow: 0 0 0 3px rgba(47, 91, 239, 0.18); animation: plan-pulse 2.4s ease-in-out infinite; }
.plan__label--next { color: var(--ui-mute); }
.plan__label--next i { background: transparent; box-shadow: inset 0 0 0 1.5px #b5bbcc; }
.plan__lane {
  position: relative;
  height: 36px;
  background: repeating-linear-gradient(90deg, var(--ui-line) 0 1px, transparent 1px calc(100% / 6));
  border-top: 1px solid #f4f5f9;
}
.plan__task {
  position: absolute;
  top: 12px;
  height: 12px;
  border-radius: var(--radius-pill);
  transform-origin: left center;
  transition: transform 0.9s var(--ease-out), opacity 0.5s ease;
  transition-delay: calc(0.5s + var(--i) * 0.22s);
}
.plan__task--done { background: linear-gradient(90deg, var(--brand-violet), var(--theme-accent)); }
.plan__task--active { background: #dde5ff; overflow: hidden; }
.plan__task--active::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 57%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--brand-violet), var(--theme-accent));
}
.plan__task--next { background: #eceff6; box-shadow: inset 0 0 0 1px #e0e4ee; }
.plan__now {
  position: absolute;
  top: 22px; bottom: 0;
  left: calc(196px + (100% - 196px) * 0.5);
  width: 0;
  border-left: 1.5px solid var(--theme-accent);
  transition: opacity 0.5s ease 1.6s;
}
.plan__now b {
  position: absolute;
  bottom: -24px;
  left: 0;
  translate: -50% 0;
  padding: 2px 7px;
  border-radius: var(--radius-pill);
  background: var(--theme-accent);
  color: #fff;
  font-size: 10.5px;
  line-height: 14px;
  font-weight: 600;
  white-space: nowrap;
}
@keyframes plan-pulse { 50% { box-shadow: 0 0 0 6px rgba(47, 91, 239, 0.06); } }
.js:not(.no-motion) .pv--plan:not(.is-live) .plan__task { transform: scaleX(0); opacity: 0; }
.js:not(.no-motion) .pv--plan:not(.is-live) .plan__now { opacity: 0; }
.no-motion .plan__label--active i { animation: none; }

/* Широка картка ритейлу: неактивний клієнт повертається після оплати банківською карткою */
.plan__avatar--user { background: #eef1f8; color: var(--ui-mute); box-shadow: none; }
.cbk { padding-bottom: 6px; }
.cbk__axis { height: 22px; }
.cbk__lane {
  position: relative;
  height: 40px;
  background: repeating-linear-gradient(90deg, var(--ui-line) 0 1px, transparent 1px calc(100% / 6));
}
.cbk__lane::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: 50%;
  height: 1px;
  background: #e3e6ee;
}
.cbk__gap {
  position: absolute;
  top: 6px; bottom: 6px;
  border-radius: 8px;
  background: repeating-linear-gradient(135deg, #f1f3f8 0 6px, #e8ebf3 6px 7px);
  transition: opacity 0.6s ease 0.7s;
}
.cbk__gap b {
  position: absolute;
  left: 50%; top: 50%;
  translate: -50% -50%;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  background: #fff;
  box-shadow: 0 0 0 1px #e3e6ee;
  font-size: 11px;
  line-height: 15px;
  font-weight: 500;
  color: var(--ui-mute);
  white-space: nowrap;
}
.cbk__gap-short { display: none; }
.cbk__dot {
  position: absolute;
  top: 50%;
  width: 10px; height: 10px;
  margin: -5px 0 0 -5px;
  border-radius: 50%;
  background: #b5bdd3;
  box-shadow: 0 0 0 3px #fff;
  transition: transform 0.5s var(--ease-out), opacity 0.4s ease;
  transition-delay: calc(0.3s + var(--i) * 0.1s);
}
.cbk__dot--pay {
  width: 16px; height: 16px;
  margin: -8px 0 0 -8px;
  background: var(--theme-accent);
  box-shadow: 0 0 0 3px #fff, 0 0 0 7px rgba(47, 91, 239, 0.16);
  transition-delay: 1.3s;
}
.cbk__dot--after { background: var(--theme-accent); transition-delay: calc(2.7s + var(--i) * 0.25s); }
.cbk__log { margin-top: 6px; border-top: 1px solid var(--ui-line); }
.cbk__row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid #f2f4f8;
  font-size: 12.5px;
  transition: opacity 0.5s var(--ease-out), transform 0.6s var(--ease-out);
  transition-delay: calc(1.6s + var(--i) * 0.3s);
}
.cbk__row:last-child { border-bottom: 0; }
.cbk__row i { flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--theme-accent); }
.cbk__row span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cbk__row time { flex: none; font-size: 11.5px; color: #9aa0b5; }
.cbk__row--accent span { font-weight: 600; color: var(--theme-accent); }
.cbk__row--accent i { background: var(--theme-accent); box-shadow: 0 0 0 3px rgba(47, 91, 239, 0.16); }
.pv--comeback .cmp__status, .pv--comeback .cmp__status i, .pv--comeback .cmp__status b { transition-delay: 2.5s; }
.js:not(.no-motion) .pv--comeback:not(.is-live) .cbk__dot { transform: scale(0); opacity: 0; }
.js:not(.no-motion) .pv--comeback:not(.is-live) .cbk__gap { opacity: 0; }
.js:not(.no-motion) .pv--comeback:not(.is-live) .cbk__row { opacity: 0; transform: translateY(6px); }
.js:not(.no-motion) .pv--comeback:not(.is-live) .cmp__status { background: #f0f2f7; color: #6b7189; }
.js:not(.no-motion) .pv--comeback:not(.is-live) .cmp__status i { background: #a3a8bb; box-shadow: 0 0 0 3px rgba(163, 168, 187, 0.2); }
.js:not(.no-motion) .pv--comeback:not(.is-live) .cmp__draft { opacity: 1; }
.js:not(.no-motion) .pv--comeback:not(.is-live) .cmp__live { opacity: 0; }

/* Спрощена версія (?products=lite): рівна сітка 2×2, картки чергуються за контрастом,
   у кожній — одна панель над тонкою лінійною сіткою, обрізана нижнім краєм картки */
.pgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-24); }
.pcard {
  display: flex; flex-direction: column;
  min-width: 0;
  border-radius: var(--radius-l);
  overflow: hidden;
  isolation: isolate;
  transition: translate 0.6s var(--ease-out), box-shadow 0.6s var(--ease-out);
}
.pcard:hover { translate: 0 -4px; box-shadow: 0 30px 60px -36px rgba(10, 11, 20, 0.35); }
.pcard--light { background: var(--surface-white); box-shadow: 0 0 0 1px rgba(13, 15, 23, 0.04); }
.pcard--dark { background: var(--surface-ink); }
.pcard--blue { background: linear-gradient(135deg, var(--brand-blue-bright) 0%, #2448e6 55%, #1a35c4 100%); }
.pcard__copy { display: flex; flex-direction: column; gap: var(--space-12); padding: var(--space-32) var(--space-32) 0; max-width: 520px; }
/* тонка лінійна сітка під панеллю — як на першому екрані та в хабі */
.pcard__visual {
  position: relative;
  height: 290px;
  margin-top: auto;
  padding-top: 44px;
  display: flex; justify-content: center;
  overflow: hidden;
  --grid: rgba(47, 91, 239, 0.16);
}
.pcard--dark .pcard__visual { --grid: rgba(159, 182, 255, 0.16); }
.pcard--blue .pcard__visual { --grid: rgba(255, 255, 255, 0.22); }
.pcard__visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 32px 32px;
  background-position: center bottom;
  -webkit-mask-image: radial-gradient(75% 100% at 50% 100%, #000 35%, transparent 80%);
          mask-image: radial-gradient(75% 100% at 50% 100%, #000 35%, transparent 80%);
}
/* панель */
.pp {
  position: relative;
  z-index: 1;
  width: min(380px, 84%);
  min-height: 260px;
  display: flex; flex-direction: column;
  padding: 20px 22px;
  border-radius: 18px 18px 0 0;
  background: #fff;
  color: var(--ui-ink);
  font-size: 14px;
  line-height: 20px;
  font-feature-settings: "tnum", "cv11";
  box-shadow: 0 30px 60px -28px rgba(5, 6, 20, 0.55);
}
.pp--dark { background: var(--ui-panel-dark); color: var(--ui-text-on-dark); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06), 0 30px 60px -28px rgba(5, 6, 20, 0.55); }
.pp__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.pp__head b { font-weight: 600; letter-spacing: -0.01em; white-space: nowrap; }
.pp__label { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 500; color: var(--ui-text-2); white-space: nowrap; }
.pp--dark .pp__label { color: var(--ui-mute-dark); }
.pp__label i { width: 6px; height: 6px; border-radius: 50%; background: var(--theme-accent); box-shadow: 0 0 0 3px rgba(47, 91, 239, 0.16); }
.pp--dark .pp__label i { background: var(--brand-violet); }
/* статус («Активна», «наживо») — зелена крапка; звичайна мітка лишається синьою */
.pp__label--ok i, .pp--dark .pp__label--ok i { background: var(--success); box-shadow: 0 0 0 3px var(--success-ring); }
.pp__value { display: flex; align-items: baseline; gap: 10px; margin-top: 18px; font-size: 44px; line-height: 1; font-weight: 500; letter-spacing: -0.04em; color: var(--theme-accent); white-space: nowrap; }
.pp--dark .pp__value { color: var(--accent-soft); }
.pp__value small { font-size: 15px; font-weight: 400; letter-spacing: 0; color: var(--ui-text-2); white-space: normal; line-height: 19px; }
.pp--dark .pp__value small { color: var(--ui-mute-dark); }
.pp__meta { margin-top: 10px; font-size: 13px; color: var(--ui-mute); }
.pp--dark .pp__meta { color: #7c84a0; }
.pp__meta--top { margin: 2px 0 10px; }
.pp__row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-top: 1px solid var(--ui-line); color: var(--ui-text-2); }
.pp__value + .pp__meta + .pp__row { margin-top: 16px; }
.pp__row--gap { margin-top: 18px; }
.pp--dark .pp__row { border-top-color: rgba(255, 255, 255, 0.07); color: var(--ui-mute-dark); }
.pp__row b { font-weight: 500; color: inherit; }
.pp__brand { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.pp__brand--pair .brand-logo + .brand-logo { margin-left: -16px; box-shadow: 0 0 0 2px #fff, inset 0 0 0 1px rgba(13, 15, 23, 0.1); }
.pp__meta--brand { display: flex; align-items: center; gap: 8px; }
.pp--dark .brand-logo { box-shadow: none; }
.pp__bar { display: block; height: 6px; margin-top: 18px; border-radius: var(--radius-pill); background: rgba(255, 255, 255, 0.1); overflow: hidden; }
.pp__bar span { display: block; width: 84%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--brand-violet), var(--theme-accent)); }

@media (max-width: 1100px) {
  .pp__value { font-size: 38px; }
  .pcard__copy { padding: var(--space-24) var(--space-24) 0; }
}
@media (max-width: 760px) {
  .pgrid { grid-template-columns: minmax(0, 1fr); gap: var(--space-16); }
  .pcard__visual { height: 250px; padding-top: 32px; }
  .pp { width: calc(100% - 48px); padding: 18px 18px; }
}

/* широка картка під сіткою 2×2: темна (остання картка сітки — світла), панель плану — світла над тонкою сіткою */
.pgrid-wide { margin-top: calc(var(--space-24) - var(--space-48)); }
.pgrid-wide .bento-card--plan { background: var(--surface-ink); }
.pgrid-wide .bento-card__plan { margin-top: 0; height: 344px; padding-top: 0; }

.pgrid-wide .pcard__visual { --grid: rgba(159, 182, 255, 0.16); }
.pgrid-wide .plan { position: relative; z-index: 1; margin-top: 32px; }

/* Початковий стан до появи в полі зору (лише з JS і анімаціями) */
.js:not(.no-motion) .pv:not(.is-live) .pv__rise { transform: translateY(48px); opacity: 0; }

.no-motion .pv *, .no-motion .pv { transition: none !important; }

@media (max-width: 1100px) {
  
  .bento-card--plan { flex-direction: column; flex-basis: auto; }
  .bento-card--plan .bento-card__copy { padding-right: var(--space-32); }
  .bento-card__plan { flex: none; height: 320px; justify-content: center; }
  
  
  
}
@media (max-width: 760px) {
  
  
  
  
  .bento-card__copy { padding: var(--space-24); }
  
  .cmp { width: min(336px, calc(100% - 32px)); }
  
  .bento-card--plan .bento-card__copy { padding: var(--space-24); }
  .bento-card--plan, .bento-card__plan { min-width: 0; }
  .bento-card__plan { height: 392px; }
  .plan { width: calc(100% - 32px); padding: 14px 14px 18px; }
  .plan__label { position: relative; z-index: 1; justify-self: start; padding-right: 8px !important; background: #fff; }
  .plan__period { display: none; }
  .plan__grid { grid-template-columns: 1fr; }
  .plan__grid > span:first-child { display: none; }
  .plan__axis span { padding-left: 4px; font-size: 10px; }
  .plan__label { height: auto; padding: 8px 0 2px; font-size: 12px; }
  .plan__lane { height: 22px; border-top: 0; }
  .plan__task { top: 5px; }
  .plan__now { left: 50%; }
  .cbk__row { align-items: flex-start; }
  .cbk__row i { margin-top: 6px; }
  .cbk__row span { white-space: normal; }
  .cbk__gap b { font-size: 10px; padding: 1px 6px; }
  .cbk__gap-long { display: none; }
  .cbk__gap-short { display: inline; }
  
  
  
  
}

/* Cases ----------------------------------------------------------------- */
.cases { background: linear-gradient(134deg, var(--band-blue) 7%, var(--band-blue-end) 79%); overflow: hidden; }
.cases .container { position: relative; z-index: 1; }
.case-list { border-bottom: 1px solid var(--overlay-white-12); }
.case {
  position: relative;
  display: flex;
  gap: var(--space-24);
  padding-block: var(--space-32);
  border-top: 1px solid var(--overlay-white-12);
}
.case::before {
  /* підсвітка рядка при наведенні */
  content: "";
  position: absolute;
  inset: 0 calc(var(--gutter) * -0.5);
  border-radius: var(--radius-m);
  background: rgba(255, 255, 255, 0.05);
  opacity: 0;
  transition: opacity 0.4s var(--ease-out);
  pointer-events: none;
}
.case:hover::before { opacity: 1; }
.case__logo { flex: 0 0 156px; padding-top: var(--space-8); color: #fff; }
.case__metric { flex: 0 0 456px; display: flex; flex-direction: column; gap: var(--space-8); }
.case__story { flex: 1 1 auto; display: flex; flex-direction: column; gap: var(--space-12); min-width: 0; }
.case__facts { display: flex; flex-direction: column; gap: var(--space-8); padding-top: var(--space-8); }
.case__facts li { position: relative; padding-left: 18px; color: var(--text-on-dark); }
.case__facts li::before {
  content: "";
  position: absolute;
  left: 0; top: 9px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--text-on-dark);
}

@media (max-width: 1100px) {
  .case { flex-wrap: wrap; }
  .case__metric { flex-basis: calc(100% - 180px); }
  .case__story { flex-basis: 100%; padding-left: 180px; }
}
@media (max-width: 720px) {
  .case { flex-direction: column; gap: var(--space-16); }
  .case__metric, .case__story { flex-basis: auto; padding-left: 0; }
  .case__logo { flex-basis: auto; padding-top: 0; }
}

/* Timeline -------------------------------------------------------------- */
.timeline__inner { display: flex; flex-direction: column; gap: var(--space-96); }
.steps { display: flex; gap: var(--space-24); }
.step { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: var(--space-24); }
.step__marker { display: flex; align-items: center; }
.step__dot {
  flex: none;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--brand-blue);
  transition: background-color 0.5s, box-shadow 0.5s;
}
.step__line { position: relative; flex: 1; height: 1px; background: var(--overlay-white-12); }
.step__line i {
  position: absolute;
  left: 0; top: -0.5px;
  width: 100%;
  height: 2px;
  background: var(--brand-blue-bright);
  transform: scaleX(0);
  transform-origin: 0 50%;
}
.step__num { color: var(--fg-mute); transition: color 0.6s var(--ease-out); }
.step__copy { display: flex; flex-direction: column; gap: var(--space-8); }
.step__copy .heading-m { min-height: 60px; }
.step.is-active .step__dot { background: var(--beam-core-hi); box-shadow: 0 0 12px 2px rgba(143, 176, 255, 0.7); }
.step.is-active .step__num { color: var(--fg); }
.no-js .step:first-child .step__line i,
.no-motion .step:first-child .step__line i { transform: none; }

@media (max-width: 1000px) {
  .timeline__inner { gap: var(--space-64); }
  .steps { flex-wrap: wrap; row-gap: var(--space-48); }
  .step { flex: 1 1 calc(50% - 12px); }
}
@media (max-width: 600px) {
  .steps { flex-direction: column; }
  .step { gap: var(--space-16); }
  .step__copy .heading-m { min-height: 0; }
}

/* Team ------------------------------------------------------------------ */
.team__proof { display: flex; gap: var(--space-24); }
.team__intro { flex: 0 0 384px; color: var(--fg); }
.index-list { flex: 1; border-bottom: 1px solid var(--line); }
.index-list li {
  display: flex;
  gap: var(--space-24);
  padding-block: var(--space-16);
  border-top: 1px solid var(--line);
}
.index-list .label-text { flex: 0 0 48px; padding-top: var(--space-4); }

.people { display: flex; gap: var(--space-24); }
.person { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: var(--space-24); }
.person__photo {
  position: relative;
  height: 420px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-l);
  background: var(--surface-lavender);
  overflow: hidden;
  isolation: isolate;
}
.person__photo::before {
  /* мʼяке світло, що слідує за курсором */
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 40%), rgba(61, 107, 255, 0.16), transparent 70%);
  opacity: 0;
  transition: opacity 0.5s var(--ease-out);
  z-index: -1;
}
.person:hover .person__photo::before { opacity: 1; }
.person__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.person:hover .person__photo img { transform: scale(1.04); }
.person__monogram {
  display: grid;
  place-items: center;
  width: 120px; height: 120px;
  border-radius: 50%;
  border: 1px solid var(--text-on-light-mute);
  font-size: 32px;
  line-height: 38px;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--text-on-light-mute);
  transition: transform 0.8s var(--ease-out), border-color 0.5s, color 0.5s;
}
.person:hover .person__monogram { transform: scale(1.06); border-color: var(--theme-accent); color: var(--theme-accent); }
.person__caption { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-16); }
.person__who { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
/* LinkedIn — кругла кнопка праворуч від імені (показується, якщо посилання вказано) */
.person__link {
  flex: none; display: grid; place-items: center; width: 40px; height: 40px; margin-top: 2px;
  border: 1px solid var(--line); border-radius: 50%;
  color: var(--fg-2);
  transition: color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out);
}
.person__link:hover { color: #fff; border-color: #0a66c2; background: #0a66c2; }

@media (max-width: 1000px) {
  .team__proof { flex-direction: column; }
  .team__intro { flex-basis: auto; }
  .people { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-48) var(--space-24); }
  .person__photo { height: 360px; }
}
@media (max-width: 600px) {
  .people { grid-template-columns: minmax(0, 1fr); }
  .person { gap: var(--space-16); }
  .person__photo { height: 320px; }
  .index-list li { gap: var(--space-12); }
  .index-list .label-text { flex-basis: 32px; }
}

/* Mission --------------------------------------------------------------- */
.mission { overflow: hidden; }
.mission__bg { position: absolute; inset: 0; pointer-events: none; }
.mission__bg img {
  position: absolute;
  right: -6%; top: 0;
  width: min(1240px, 84%);
  height: auto;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.3) 35%, #000 70%), linear-gradient(180deg, #000 40%, transparent 85%);
  -webkit-mask-composite: source-in;
          mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.3) 35%, #000 70%), linear-gradient(180deg, #000 40%, transparent 85%);
          mask-composite: intersect;
  opacity: 0.55;
}
.mission__inner { position: relative; z-index: 1; display: flex; flex-direction: column; }
.mission__head { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-32); }
.mission__head .display-xl { max-width: 1000px; }

/* Теза + пояснення: два рівні замість одного довгого абзацу */
.mission__body {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--space-64);
  align-items: end;
  margin-top: var(--space-64);
}
.mission__statement {
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.32;
  font-weight: 400;
  letter-spacing: -0.015em;
  color: var(--text-on-dark);
  max-width: 640px;
}
.mission__text { font-size: 18px; line-height: 28px; color: var(--text-on-dark-2); max-width: 440px; }
.mission__text b { font-weight: 500; color: var(--text-on-dark); }

/* Принципи: «Єдиний/Єдина» приглушено, ключове слово — біле */
.mprinciples { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-48); margin-top: 120px; }
.mprinciple { display: flex; flex-direction: column; padding-top: var(--space-24); border-top: 1px solid rgba(255, 255, 255, 0.14); }

.mprinciple__title {
  margin-top: var(--space-48);
  font-size: clamp(28px, 2.6vw, 40px);
  line-height: 1.1;
  font-weight: 400;
  letter-spacing: -0.025em;
  color: var(--text-on-dark-2);
}
.mprinciple__title b { font-weight: 500; color: var(--text-on-dark); }
.mprinciple__text { margin-top: var(--space-12); font-size: 16px; line-height: 24px; color: var(--text-on-dark-2); }

@media (max-width: 960px) {
  .mission__body { grid-template-columns: 1fr; gap: var(--space-24); margin-top: var(--space-48); }
  .mprinciples { grid-template-columns: 1fr; gap: var(--space-32); margin-top: var(--space-64); }
  .mprinciple__title { margin-top: var(--space-16); }
  .mission__bg img { width: 160%; right: -40%; opacity: 0.4; }
}

/* FAQ ------------------------------------------------------------------- */
.faq__cols { display: flex; gap: var(--space-24); }
.faq__aside {
  flex: 0 0 384px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-48);
}
.faq__help {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-16);
  padding-top: var(--space-24);
  border-top: 1px solid var(--line);
}
.faq__list { flex: 1 1 auto; min-width: 0; border-bottom: 1px solid var(--line); }
.faq-item { border-top: 1px solid var(--line); }
.faq-item__q button {
  display: flex;
  align-items: center;
  gap: var(--space-24);
  width: 100%;
  padding-block: var(--space-32);
  text-align: left;
  cursor: pointer;
}
.faq-item__q .label-text { flex: 0 0 40px; }
.faq-item__text { flex: 1; transition: color 0.3s; }
.faq-item__q button:hover .faq-item__text { color: var(--theme-accent); }
.faq-item__toggle {
  position: relative;
  flex: none;
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1px solid var(--line);
  transition: background-color 0.3s, border-color 0.3s;
}
.faq-item__q button:hover .faq-item__toggle { border-color: var(--fg); }
.faq-item__toggle i {
  position: absolute;
  left: 50%; top: 50%;
  width: 14px; height: 1.5px;
  margin: -0.75px 0 0 -7px;
  border-radius: 2px;
  background: var(--fg);
  transition: transform 0.45s var(--ease-out);
}
.faq-item__toggle i:last-child { transform: rotate(90deg); }
.faq-item.is-open .faq-item__toggle i:last-child { transform: rotate(0deg); }
.faq-item__a {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.55s var(--ease-out);
}
.faq-item__a > p {
  overflow: hidden;
  max-width: calc(690px + 128px);
  padding-inline: 64px;
  opacity: 0;
  transition: opacity 0.4s var(--ease-out), padding 0.55s var(--ease-out);
}
.faq-item.is-open .faq-item__a { grid-template-rows: 1fr; }
.faq-item.is-open .faq-item__a > p { opacity: 1; padding-bottom: var(--space-32); margin-top: calc(var(--space-16) * -1); }
.no-js .faq-item__a { grid-template-rows: 1fr; }
.no-js .faq-item__a > p { opacity: 1; padding-bottom: var(--space-32); }

@media (max-width: 960px) {
  .faq__cols { flex-direction: column; gap: var(--space-48); }
  .faq__aside { display: contents; }
  .faq__aside > h2 { order: 0; }
  .faq__cols .faq__list { order: 1; }
  .faq__help { order: 2; }
}
@media (max-width: 600px) {
  .faq-item__q button { gap: var(--space-12); padding-block: var(--space-24); }
  .faq-item__q .label-text { display: none; }
  .faq-item__a > p { padding-inline: 0 48px; }
}

/* Final CTA ------------------------------------------------------------- */
.final-cta {
  --hz-w: max(1500px, 277.78vw);
  --visible: 230px;
  position: relative;
  overflow: hidden;
  padding: var(--space-128) 0 calc(var(--visible) + 44px);
  background: var(--surface-ink);
  isolation: isolate;
}
.final-cta__beam { --beam-w: 1800px; width: 1800px; left: -570px; top: 330px; }
.final-cta__beam .beam__wide { height: 350px; }
.final-cta__beam .beam__mid { height: 120px; }
.final-cta__beam .beam__inner { height: 32px; }
.final-cta__horizon { top: calc(100% - var(--visible)); width: var(--hz-w); }
.final-cta__atmosphere { top: calc(100% - var(--visible) - var(--hz-w) * 0.02); width: calc(var(--hz-w) * 1.04); }
.final-cta__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-32);
  text-align: center;
}
.final-cta__inner .display-l { max-width: 900px; }
.final-cta__inner .lead { max-width: 760px; }
.final-cta__action { padding-top: var(--space-16); }

@media (max-width: 720px) {
  .final-cta { --visible: 150px; padding-top: var(--space-96); }
  .final-cta__beam { left: -900px; top: 200px; }
}

/* Login ----------------------------------------------------------------- */
.login {
  --hz-w: max(1500px, 277.78vw);
  --visible: 180px;
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-48);
  padding: 32px 0 40px;
  overflow: hidden;
  background: var(--surface-ink);
  isolation: isolate;
}
.login__horizon { top: calc(100% - var(--visible)); width: var(--hz-w); z-index: -1; }
.login__atmosphere { top: calc(100% - var(--visible) - var(--hz-w) * 0.02); width: calc(var(--hz-w) * 1.04); z-index: -1; }
.login__top { display: flex; align-items: center; justify-content: space-between; }
.login__top .lang-switch { padding-right: 0; }
.login__card {
  position: relative;
  width: min(440px, 100% - 32px);
  display: flex;
  flex-direction: column;
  gap: var(--space-32);
  padding: 40px;
  border-radius: var(--radius-l);
  border: 1px solid var(--line-on-dark);
  background: var(--overlay-ink-60);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 40px 120px -40px rgba(36, 71, 232, 0.35);
}
.login__head { display: flex; flex-direction: column; gap: var(--space-8); }
.login__form { display: flex; flex-direction: column; gap: var(--space-16); }
.login__form .field__input { border-radius: var(--radius-s); }
.login__form .btn { margin-top: var(--space-16); }
.login__forgot { align-self: flex-end; color: var(--brand-blue); transition: color 0.3s; }
.login__forgot:hover { color: var(--brand-violet); }
.login__demo {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-8);
  padding-top: var(--space-24);
  border-top: 1px solid var(--line-on-dark);
}
.login__demo button { color: var(--brand-blue); font-weight: 500; transition: color 0.3s; }
.login__demo button:hover { color: var(--brand-violet); }

@media (max-width: 520px) {
  .login { --visible: 120px; }
  .login__card { padding: 28px 20px; }
}

/* 404 ------------------------------------------------------------------- */
.notfound {
  --hz-w: max(1500px, 277.78vw);
  --visible: 200px;
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 96px 0 calc(var(--visible) + 40px);
  background: var(--surface-ink);
  isolation: isolate;
}
.notfound__horizon { top: calc(100% - var(--visible)); width: var(--hz-w); z-index: -1; }
.notfound__atmosphere { top: calc(100% - var(--visible) - var(--hz-w) * 0.02); width: calc(var(--hz-w) * 1.04); z-index: -1; }
.notfound__inner { display: flex; flex-direction: column; align-items: center; gap: var(--space-24); text-align: center; }
.notfound__inner .body-l { max-width: 520px; }
.notfound__logo { position: absolute; top: 32px; left: 50%; transform: translateX(-50%); }
.notfound__code {
  font-size: clamp(96px, 16vw, 200px);
  line-height: 0.9;
  font-weight: 500;
  letter-spacing: -0.05em;
  background: linear-gradient(180deg, var(--text-on-dark) 20%, rgba(124, 155, 255, 0.35));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Moment: повноекранне фото «людина за транзакцією» (головна, перед хабом) ---- */
.moment { --moment-end: var(--surface-ink); position: relative; background: var(--moment-end); overflow: hidden; }
/* фото внизу розчиняється рівно в колір наступної секції (на банку й ритейлі далі йде section--dark) */
.moment--end-dark { --moment-end: var(--surface-dark); }
.moment__frame { position: relative; height: clamp(480px, 42vw, 680px); overflow: hidden; }
.moment__img { position: absolute; inset: -6% 0; width: 100%; height: 112%; object-fit: cover; object-position: 70% 40%; max-width: none; }
/* затемнення: ліворуч під текст, зверху й знизу — злиття з темними секціями поруч */
.moment__shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, var(--surface-dark) 0%, rgba(10, 11, 20, 0) 16%, transparent 50%, color-mix(in srgb, var(--moment-end) 30%, transparent) 66%, color-mix(in srgb, var(--moment-end) 70%, transparent) 82%, color-mix(in srgb, var(--moment-end) 92%, transparent) 93%, var(--moment-end) 100%),
    linear-gradient(90deg, rgba(5, 6, 12, 0.75) 0%, rgba(5, 6, 12, 0.45) 30%, rgba(5, 6, 12, 0) 55%);
}
/* текст і сповіщення — у лівій колонці основного контейнера, по центру кадру по вертикалі */
.moment__copy {
  position: absolute;
  left: 0; right: 0; top: 0; bottom: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 40px;
}
.moment__title { max-width: 660px; color: var(--text-on-dark); text-wrap: pretty; }
.moment__title em { color: rgba(242, 244, 250, 0.62); }
/* ритейл (фото store): покупниця ближче до центру кадру — кадр трохи ширший і зсунутий праворуч, заголовок вужчий */
.moment--store .moment__img { width: 112%; left: 0; object-position: 0 40%; }
.moment--store .moment__title { max-width: 11.8em; }

/* плашка «оплачено → кешбек»: світле скло, тонка рамка, сума — головний акцент */
.moment__note {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 26px 14px 14px;
  border-radius: var(--radius-pill);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.06));
  -webkit-backdrop-filter: blur(22px) saturate(150%);
          backdrop-filter: blur(22px) saturate(150%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 30px 60px -24px rgba(0, 0, 0, 0.55);
  color: #fff;
  transition: opacity 0.8s var(--ease-out) 0.7s, transform 1s var(--ease-out) 0.7s;
}
.moment__tick {
  position: relative;
  flex: none;
  display: grid; place-items: center;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: linear-gradient(180deg, var(--button-primary-hover), var(--theme-accent));
  box-shadow: 0 0 0 5px rgba(74, 116, 255, 0.18), 0 8px 24px -6px rgba(47, 91, 239, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.3);
  color: #fff;
}
/* тихий «пульс» навколо галочки */
.moment__tick::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; box-shadow: 0 0 0 1px rgba(124, 155, 255, 0.6); opacity: 0; }
.moment__frame.is-live .moment__tick::after { animation: tick-ring 3.2s ease-out 1.4s infinite; }
@keyframes tick-ring { 0% { transform: scale(1); opacity: 0.8; } 70%, 100% { transform: scale(1.7); opacity: 0; } }
.no-motion .moment__tick::after { animation: none; }
.moment__note-body { display: flex; flex-direction: column; }
.moment__note-label { font-size: 13px; line-height: 18px; color: rgba(255, 255, 255, 0.7); }
.moment__note-value { font-size: 22px; line-height: 28px; font-weight: 600; letter-spacing: -0.02em; font-feature-settings: "tnum"; white-space: nowrap; }
.moment__note-value small { font-size: 15px; font-weight: 500; letter-spacing: 0; color: rgba(255, 255, 255, 0.72); }
.js:not(.no-motion) .moment__frame:not(.is-live) .moment__note { opacity: 0; transform: translateY(-12px) scale(0.97); }
.no-motion .moment__note { transition: none; }

/* планшет і телефон: дівчина в центрі кадру, текст і плашка — унизу на затемненні */
@media (max-width: 1100px) {
  .moment__frame { height: max(560px, 72vw); max-height: 760px; }
  .moment__img { object-position: 72% center; }
  .moment--store .moment__img { width: 100%; object-position: 58% center; }
  .moment--store .moment__title { max-width: 660px; }
  .moment__shade {
    background:
      linear-gradient(180deg, var(--surface-dark) 0%, rgba(10, 11, 20, 0) 14%, transparent 38%, color-mix(in srgb, var(--moment-end) 85%, transparent) 70%, var(--moment-end) 100%);
  }
  .moment__copy { justify-content: flex-end; gap: 20px; padding-bottom: 40px; }
  .moment__note-value { font-size: 20px; line-height: 26px; }
}

/* Юридичні сторінки: Політика конфіденційності, Умови використання (templates/sections/legal-doc.php) ---- */
.legal-hero { padding-block: clamp(140px, 18vh, 200px) var(--space-64); }
.legal-hero__inner { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-16); }
.legal-hero__inner .display-l { margin-top: var(--space-8); }
.legal-hero__intro { max-width: 720px; }
.legal { padding-block: var(--space-96) var(--section-y); }
.legal__cols { display: grid; grid-template-columns: 280px minmax(0, 760px); gap: var(--space-96); align-items: start; }
.legal__toc { position: sticky; top: 120px; display: flex; flex-direction: column; gap: var(--space-16); }
.legal__toc ol { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; list-style: none; counter-reset: toc; }
.legal__toc li { counter-increment: toc; }
.legal__toc a {
  display: grid; grid-template-columns: 28px 1fr;
  padding: 6px 0;
  font-size: 15px; line-height: 22px; color: var(--fg-2);
  transition: color 0.25s;
}
.legal__toc a::before { content: counter(toc, decimal-leading-zero); font-size: 13px; color: var(--fg-3); font-variant-numeric: tabular-nums; }
.legal__toc a:hover { color: var(--fg); }
.legal__body { display: flex; flex-direction: column; gap: var(--space-48); }
.legal__sec { display: flex; flex-direction: column; gap: var(--space-16); scroll-margin-top: 110px; }
.legal__sec h2 { display: flex; align-items: baseline; gap: var(--space-16); }
.legal__sec h2 .label-text { flex: none; width: 28px; }
.legal__sec > p, .legal__list { padding-left: 44px; }
.legal__list { display: flex; flex-direction: column; gap: var(--space-8); margin: 0; list-style: none; }
.legal__list li { position: relative; padding-left: 20px; }
.legal__list li::before { content: ""; position: absolute; left: 2px; top: 10px; width: 6px; height: 6px; border-radius: 2px; background: var(--brand-blue); }
.legal__body b { color: var(--fg); font-weight: 500; }
.legal__body a { color: var(--brand-blue-bright); text-decoration: underline; text-underline-offset: 3px; }
.legal__body code { font: inherit; padding: 1px 6px; border-radius: 6px; background: var(--surface-mist); color: var(--fg); }
.legal__draft { padding: var(--space-16) var(--space-24); border-radius: var(--radius-m); background: #fff6db; color: #6b4e00; }
.legal__todo { padding: 0 3px; border-radius: 4px; background: #ffe9a8; color: #4a3800; }
/* номери й підпис «Зміст» — темніші за звичайний сірий: на білому фоні дрібний текст має бути ≥ 4.5:1 */
.legal .label-text, .legal__toc a::before { color: var(--text-on-light-2); }

@media (max-width: 960px) {
  .legal { padding-top: var(--space-48); }
  .legal__cols { grid-template-columns: minmax(0, 1fr); gap: var(--space-48); }
  .legal__toc { position: static; padding-bottom: var(--space-32); border-bottom: 1px solid var(--line); }
}
@media (max-width: 600px) {
  .legal-hero { padding-bottom: var(--space-48); }
  .legal__sec > p, .legal__list { padding-left: 0; }
  .legal__sec h2 { gap: var(--space-12); }
}
