/* ==================== Cookie-уведомление ==================== */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:200;
  background:var(--white);border-top:1px solid var(--cloud);
  box-shadow:0 -8px 30px rgba(15,23,42,.08);
  padding:18px 24px;
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  transform:translateY(120%);transition:transform .35s ease;
}
.cookie-banner.is-visible{transform:translateY(0)}
.cookie-banner p{
  flex:1 1 420px;margin:0;font-size:14px;line-height:1.55;color:#334155;
}
.cookie-banner a{text-decoration:underline;font-weight:600;color:var(--navy)}
.cookie-banner a:hover{color:var(--violet)}
.cookie-banner .cookie-actions{display:flex;gap:10px;flex:none}

/* ==================== Плавающая кнопка обратной связи ==================== */
.feedback-fab{
  position:fixed;right:20px;bottom:20px;z-index:210;
  width:58px;height:58px;border-radius:50%;
  background:var(--grad);color:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 28px rgba(110,68,255,.38);
  transition:transform .18s ease, box-shadow .18s ease, bottom .25s ease;
}
.feedback-fab:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 16px 34px rgba(110,68,255,.46)}
.feedback-fab:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.feedback-fab svg{width:24px;height:24px}
body.has-cookie-banner .feedback-fab{bottom:104px}

/* ==================== Модалка ==================== */
.feedback-overlay{
  position:fixed;inset:0;z-index:220;
  background:rgba(15,23,42,.5);backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .2s ease;
}
.feedback-overlay.is-open{opacity:1;pointer-events:auto}
.feedback-modal{
  position:relative;width:100%;max-width:420px;background:var(--white);
  border-radius:24px;padding:32px;box-shadow:0 30px 80px rgba(15,23,42,.28);
  transform:translateY(16px) scale(.98);transition:transform .2s ease;
}
.feedback-overlay.is-open .feedback-modal{transform:translateY(0) scale(1)}
.feedback-close{
  position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:10px;
  border:1px solid var(--cloud);background:var(--white);cursor:pointer;
  display:flex;align-items:center;justify-content:center;color:var(--slate);
  font-size:16px;line-height:1;transition:border-color .15s ease, color .15s ease;
}
.feedback-close:hover{border-color:var(--violet);color:var(--violet)}
.feedback-modal h3{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px;padding-right:24px}
.feedback-modal .sub{font-size:14.5px;color:var(--slate);margin-bottom:22px}
.feedback-field{margin-bottom:16px}
.feedback-field label{display:block;font-size:13px;font-weight:700;color:var(--navy);margin-bottom:6px}
.feedback-field input{
  width:100%;padding:12px 14px;border-radius:12px;border:1.5px solid #E2E8F0;
  font:inherit;font-size:15px;color:var(--navy);background:#FBFCFE;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.feedback-field input:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px rgba(110,68,255,.14)}
.feedback-field input.is-invalid{border-color:#EF4444;box-shadow:0 0 0 3px rgba(239,68,68,.12)}
.feedback-field .err{display:none;margin-top:6px;font-size:12.5px;color:#DC2626;font-weight:600}
.feedback-field.is-invalid .err{display:block}
.feedback-hp{position:absolute;left:-9999px;top:-9999px;opacity:0;pointer-events:none}
.feedback-submit{
  width:100%;margin-top:6px;padding:13px 20px;border:none;border-radius:14px;
  background:var(--grad);color:#fff;font-weight:700;font-size:15px;cursor:pointer;
  box-shadow:0 10px 26px rgba(110,68,255,.3);transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
.feedback-submit:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(110,68,255,.38)}
.feedback-submit:disabled{opacity:.65;cursor:default;transform:none}
.feedback-note{margin-top:12px;font-size:12px;color:var(--slate);line-height:1.5}
.feedback-note a{color:inherit;text-decoration:underline}
.feedback-status{display:none;text-align:center;padding:12px 0 4px}
.feedback-status.is-shown{display:block}
.feedback-status .ico{
  width:52px;height:52px;border-radius:50%;margin:0 auto 16px;
  display:flex;align-items:center;justify-content:center;font-size:24px;
}
.feedback-status.success .ico{background:#DCFCE7;color:#16A34A}
.feedback-status.error .ico{background:#FEE2E2;color:#DC2626}
.feedback-status h4{font-size:18px;font-weight:800;margin-bottom:8px}
.feedback-status p{font-size:14.5px;color:var(--slate);line-height:1.55}
.feedback-form.is-hidden{display:none}

/* ==================== Промо-сплэш (14 дней бесплатно) ==================== */
.promo-overlay{
  position:fixed;inset:0;z-index:230;
  background:rgba(15,23,42,.55);backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.promo-overlay.is-open{opacity:1;pointer-events:auto}
.promo-card{
  position:relative;width:100%;max-width:440px;overflow:hidden;
  background:var(--grad);color:#fff;border-radius:28px;
  padding:40px 36px;text-align:center;
  box-shadow:0 30px 80px rgba(15,23,42,.35);
  transform:translateY(16px) scale(.96);transition:transform .25s ease;
}
.promo-overlay.is-open .promo-card{transform:translateY(0) scale(1)}
.promo-star-deco{position:absolute;right:-26px;top:-30px;width:170px;height:170px;opacity:.16;pointer-events:none;fill:#fff}
.promo-close{
  position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:10px;
  border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);cursor:pointer;
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;line-height:1;
  transition:background .15s ease;
}
.promo-close:hover{background:rgba(255,255,255,.24)}
.promo-eyebrow{
  position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.16);font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:7px 14px;border-radius:999px;margin-bottom:18px;
}
.promo-card h3{position:relative;z-index:1;font-size:26px;font-weight:800;letter-spacing:-.02em;margin-bottom:10px}
.promo-text{position:relative;z-index:1;font-size:16px;font-weight:600;opacity:.95;margin-bottom:26px}
.promo-cta{
  position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;
  background:#fff;color:var(--violet);font-weight:700;font-size:15px;
  padding:13px 28px;border-radius:14px;transition:transform .15s ease, box-shadow .15s ease;
}
.promo-cta:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.22)}

@media(max-width:640px){
  .cookie-banner{padding:16px;flex-direction:column;align-items:stretch;text-align:left}
  .cookie-banner .cookie-actions{width:100%}
  .cookie-banner .cookie-actions .btn{flex:1}
  .feedback-fab{right:16px;bottom:16px;width:52px;height:52px}
  body.has-cookie-banner .feedback-fab{bottom:128px}
  .feedback-modal{padding:26px 22px}
  .promo-card{padding:34px 24px}
  .promo-card h3{font-size:22px}
}
@media(prefers-reduced-motion:reduce){
  .cookie-banner,.feedback-fab,.feedback-overlay,.feedback-modal,.promo-overlay,.promo-card{transition-duration:.01ms}
}
