/**
 * HAPVPN — тёмная тема, зелёные акценты, анимации (подключается последним)
 */
:root {
  --hap-bg-deep: #0a0f0d;
  --hap-bg: #0f1714;
  --hap-surface: #16231c;
  --hap-surface2: #1a2e22;
  --hap-border: rgba(34, 197, 94, 0.22);
  /* Основной текст — серый на тёмном фоне (не чёрный / не чисто белый) */
  --hap-text: #b8c9bc;
  --hap-heading: #d1ddd3;
  --hap-muted: #8a9a8f;
  --hap-green: #22c55e;
  --hap-green-dim: #16a34a;
  --hap-green-glow: rgba(34, 197, 94, 0.45);
  --hap-accent: #4ade80;
  /* Текст на зелёных кнопках — тёмно-серый, не чисто чёрный */
  --hap-on-green: #2a3830;
  --hap-gradient: linear-gradient(135deg, #052e16 0%, #0a1620 45%, #0f172a 100%);
  --hap-card: linear-gradient(160deg, #16231c 0%, #0f1714 100%);
  --hap-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes hap-glow-pulse {
  0%, 100% { box-shadow: 0 0 0 0 var(--hap-green-glow), 0 4px 24px rgba(0, 0, 0, 0.45); }
  50% { box-shadow: 0 0 28px 2px var(--hap-green-glow), 0 8px 32px rgba(0, 0, 0, 0.5); }
}

@keyframes hap-shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

@keyframes hap-fade-up {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

html {
  color-scheme: dark;
  scroll-behavior: smooth;
}

body {
  background: var(--hap-gradient) !important;
  background-attachment: fixed !important;
  color: var(--hap-text) !important;
  min-height: 100vh;
}

/* Заголовки — чуть светлее основного серого текста */
main h1,
main h2,
main h3,
main .tw-font-semibold,
main .tw-font-bold {
  color: var(--hap-heading) !important;
}

/* Tailwind «чёрный» — в серый заголовка */
.tw-text-black,
[class*="tw-text-black"] {
  color: var(--hap-heading) !important;
}

/* Главная (Tailwind-слои): типичные светлые фоны → тёмные */
.tw-bg-white,
[class*="tw-bg-white"] {
  background-color: var(--hap-surface) !important;
}

.tw-bg-gray-50,
.tw-bg-slate-50 {
  background-color: var(--hap-bg) !important;
}

.tw-bg-gray-100 {
  background-color: var(--hap-surface2) !important;
}

.tw-text-secondary-900,
.tw-text-dark-700,
.tw-text-slate-900 {
  color: var(--hap-text) !important;
}

.tw-text-gray-900 {
  color: var(--hap-heading) !important;
}

.tw-text-gray-600,
.tw-text-gray-500,
.tw-text-slate-600 {
  color: var(--hap-muted) !important;
}

.tw-border-gray-200,
.tw-border,
[class*="tw-border-\\[rgba\\(20"] {
  border-color: var(--hap-border) !important;
}

/* Кнопки и ссылки-CTA */
a.tw-inline-flex.tw-items-center.tw-justify-center,
button:not([disabled]),
.tw-bg-primary-600,
[class*="tw-bg-primary"],
.btn-primary,
input[type="submit"]:not(.no-hap-theme) {
  background: linear-gradient(145deg, var(--hap-green) 0%, var(--hap-green-dim) 100%) !important;
  color: var(--hap-on-green) !important;
  border: none !important;
  font-weight: 600 !important;
  transition: transform 0.2s var(--hap-ease), box-shadow 0.25s var(--hap-ease), filter 0.2s !important;
  box-shadow: 0 4px 16px rgba(34, 197, 94, 0.35) !important;
}

a.tw-inline-flex.tw-items-center.tw-justify-center:hover,
button:not([disabled]):hover,
.tw-bg-primary-600:hover,
.btn-primary:hover,
input[type="submit"]:not(.no-hap-theme):hover {
  transform: translateY(-2px) scale(1.02);
  filter: brightness(1.08);
  box-shadow: 0 8px 28px var(--hap-green-glow) !important;
  animation: hap-glow-pulse 2s ease-in-out infinite;
}

/* Карточки / блоки */
.tw-rounded-3xl.tw-border,
[class*="tw-rounded-3xl"][class*="tw-border"] {
  background: var(--hap-card) !important;
  border-color: var(--hap-border) !important;
  animation: hap-fade-up 0.5s var(--hap-ease) both;
}

/* Шапка лендинга */
header,
.tw-fixed.tw-top-0 {
  background: rgba(22, 33, 27, 0.94) !important;
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--hap-border) !important;
}

/* Шапка: «Войти» и «Регистрация» — белый текст (перекрывает tw-text-dark / --hap-on-green) */
header a[href*="sign_in"],
header a[href*="sign_in"] span,
header a[href*="sign_in"] * {
  color: #ffffff !important;
}

header a[href*="sign_in"] {
  border-color: rgba(255, 255, 255, 0.45) !important;
}

header a[href*="sign_in"]:hover,
header a[href*="sign_in"]:hover span,
header a[href*="sign_in"]:hover * {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.55) !important;
}

header a[href*="sign_up"],
header a[href*="sign_up"] span,
header a[href*="sign_up"] * {
  color: #ffffff !important;
}

header a[href*="sign_up"] svg,
header a[href*="sign_up"] svg path {
  fill: #ffffff !important;
}

/* Футер — отдельная тёмная полоса внизу страницы с зелёным акцентом */
footer {
  position: relative;
  z-index: 1;
  margin-top: 0 !important;
  padding-top: 2.75rem !important;
  padding-bottom: 2rem !important;
  background: linear-gradient(180deg, #0c1410 0%, #111b16 22%, #16231c 58%, #182822 100%) !important;
  color: var(--hap-muted) !important;
  border-top: 2px solid rgba(34, 197, 94, 0.38) !important;
  box-shadow:
    0 -16px 56px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(34, 197, 94, 0.08) !important;
}

footer::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(34, 197, 94, 0.45), transparent);
  pointer-events: none;
}

footer .tw-text-dark-600\/60,
footer .tw-text-secondary-900,
footer .tw-text-dark-700,
footer p,
footer span:not(.tw-text-primary-600) {
  color: var(--hap-muted) !important;
}

footer a[href]:not(.tw-bg-primary-600):not([class*="tw-bg-"]):not(.tw-inline-flex):not(.tw-flex) {
  color: var(--hap-muted) !important;
  transition: color 0.2s ease;
}

footer a[href]:hover:not(.tw-bg-primary-600):not([class*="tw-bg-"]):not(.tw-flex) {
  color: var(--hap-accent) !important;
}

/* Логотип/название в футере */
footer .tw-leading-none {
  color: var(--hap-heading) !important;
}

/* Полоса с копирайтом внутри футера */
footer .tw-rounded-3xl.tw-mt-9 {
  background: rgba(22, 35, 28, 0.94) !important;
  border: 1px solid rgba(34, 197, 94, 0.15) !important;
  box-shadow: inset 0 1px 0 rgba(34, 197, 94, 0.06);
}

footer .tw-rounded-3xl.tw-mt-9 .tw-absolute.tw-inset-0 {
  display: none !important;
}

/* Иконка Telegram в футере — зелёный акцент */
footer a.tw-bg-light-400 {
  background: rgba(34, 197, 94, 0.1) !important;
  border: 1px solid rgba(34, 197, 94, 0.2) !important;
}

footer a.tw-bg-light-400:hover {
  background: rgba(34, 197, 94, 0.22) !important;
  border-color: rgba(34, 197, 94, 0.35) !important;
  box-shadow: 0 0 20px rgba(34, 197, 94, 0.2) !important;
}

footer a.tw-bg-light-400 .tw-fill-dark-600\/60,
footer a.tw-bg-light-400 svg path {
  fill: var(--hap-accent) !important;
}

/* Формы auth-страниц */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
textarea,
select {
  background: var(--hap-surface) !important;
  color: var(--hap-text) !important;
  border-color: var(--hap-border) !important;
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--hap-green) !important;
  box-shadow: 0 0 0 3px var(--hap-green-glow) !important;
  outline: none !important;
}

/* Общие белые блоки в инлайновых стилях */
[style*="background: white"],
[style*="background:#fff"],
[style*="background: #fff"] {
  background: var(--hap-surface) !important;
  color: var(--hap-text) !important;
}

[style*="color: #1"],
[style*="color:#1f2937"],
[style*="color: #333"],
[style*="color:#0f172a"],
[style*="color: #0f172a"] {
  color: var(--hap-text) !important;
}

[style*="color: #000"],
[style*="color:#000"] {
  color: var(--hap-muted) !important;
}

/* Бургер-меню и мобильные панели */
.touch\:tw-bg-white,
[class*="touch:tw-bg-white"] {
  background-color: var(--hap-surface) !important;
}

/* Шапка: убрать общий зеленоватый фон-контейнер у группы кнопок */
#burger-menu-chunk,
#burger-menu-chunk.touch\:tw-bg-white,
header #burger-menu-chunk[class*="touch:tw-bg-white"] {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

header nav,
header nav ul {
  background: transparent !important;
  background-color: transparent !important;
}

/* Ссылки в навигации */
a.tw-cursor-pointer {
  color: var(--hap-muted) !important;
  transition: color 0.2s ease;
}
a.tw-cursor-pointer:hover {
  color: var(--hap-accent) !important;
}

/* Исключение: пункты «Войти» / «Регистрация» в шапке — белый текст (правило выше для nav) */
header a.tw-cursor-pointer[href*="sign_in"],
header a.tw-cursor-pointer[href*="sign_in"] span,
header a.tw-cursor-pointer[href*="sign_in"] *,
header a.tw-cursor-pointer[href*="sign_in"]:hover,
header a.tw-cursor-pointer[href*="sign_in"]:hover span,
header a.tw-cursor-pointer[href*="sign_in"]:hover * {
  color: #ffffff !important;
}

header a.tw-cursor-pointer[href*="sign_up"],
header a.tw-cursor-pointer[href*="sign_up"] span,
header a.tw-cursor-pointer[href*="sign_up"] *,
header a.tw-cursor-pointer[href*="sign_up"]:hover,
header a.tw-cursor-pointer[href*="sign_up"]:hover span,
header a.tw-cursor-pointer[href*="sign_up"]:hover * {
  color: #ffffff !important;
}

header a[href*="sign_up"] svg path {
  fill: #ffffff !important;
}

header a.hapvpn-nav-support.tw-cursor-pointer,
header a.hapvpn-nav-support.tw-cursor-pointer span {
  color: var(--hap-text) !important;
}

header a.hapvpn-nav-support.tw-cursor-pointer:hover span {
  color: var(--hap-accent) !important;
}

/* Лёгкая анимация для карточек в main (не для всех элементов) */
main .tw-rounded-3xl {
  animation: hap-fade-up 0.55s var(--hap-ease) both;
}

/* Вторичные кнопки outline */
.tw-border-primary-600 {
  border-color: var(--hap-green) !important;
  color: var(--hap-accent) !important;
}

/* Страницы оферты / политики (WordPress-шаблон) */
.Background {
  background: var(--hap-gradient) !important;
  background-color: var(--hap-bg) !important;
  min-height: 100vh;
}

/* Шапка страниц оферты / политики — без белого блока (HeaderV3--light) */
.HeaderV3--light {
  background: var(--hap-surface) !important;
  background-color: var(--hap-surface) !important;
  border-bottom: 1px solid var(--hap-border) !important;
}

.HeaderV3--light .HeaderV3__divider-bar {
  background-color: var(--hap-border) !important;
}

.HeaderV3--light a.HeaderV3__menu-link,
.HeaderV3--light button.HeaderV3__menu-link {
  color: var(--hap-heading) !important;
}

.HeaderV3--light a.HeaderV3__menu-link:hover,
.HeaderV3--light button.HeaderV3__menu-link:hover {
  color: var(--hap-accent) !important;
}

.HeaderV3--light .HeaderV3__dropdownWrapper .HeaderV3__dropdownArrow path,
.HeaderV3--light a.HeaderV3__menu-link svg,
.HeaderV3--light button.HeaderV3__menu-link svg {
  fill: var(--hap-heading) !important;
}

.wp-block-group,
.entry-content {
  color: var(--hap-text) !important;
}

/* Секция с кнопками скачивания на главной (tw-bg-light-400) */
.tw-bg-light-400 {
  background: linear-gradient(180deg, rgba(22, 35, 28, 0.95) 0%, rgba(15, 23, 17, 0.98) 100%) !important;
  border: 1px solid rgba(34, 197, 94, 0.12) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25) !important;
}

/* --- Nord / auth (css3: .bg-white, .text-black — вход, регистрация, сброс пароля) --- */
.bg-white {
  background: var(--hap-card) !important;
  background-color: var(--hap-surface) !important;
  color: var(--hap-text) !important;
  border: 1px solid var(--hap-border) !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4) !important;
}

.text-black,
.nord-container.text-black {
  color: var(--hap-text) !important;
}

.text-grey-dark,
.text-grey-darker,
.text-grey-darkest {
  color: var(--hap-muted) !important;
}

.text-grey {
  color: var(--hap-muted) !important;
}

main .nord-text {
  color: var(--hap-text) !important;
}

main h1.nord-text,
main h2.nord-text,
main h3.nord-text,
main .nord-text.text-h4 {
  color: var(--hap-heading) !important;
}

footer a.c-bw-9 {
  color: var(--hap-muted) !important;
  transition: color 0.2s ease;
}

footer a.c-bw-9:hover {
  color: var(--hap-accent) !important;
}

/* Ссылки форм auth — зелёный акцент */
a.nord-link,
a.nord-link:visited,
a.nord-link span {
  color: var(--hap-accent) !important;
  background: transparent !important;
}

a.nord-link:hover,
a.nord-link:hover span {
  color: var(--hap-green) !important;
}

/* Nord «синие» кнопки → зелёная тема */
.nord-button.nord-button--c-blue,
.nord-button.bg-blue,
button.nord-button--c-blue {
  background: linear-gradient(145deg, var(--hap-green) 0%, var(--hap-green-dim) 100%) !important;
  color: var(--hap-on-green) !important;
  border-color: transparent !important;
  box-shadow: 0 4px 16px rgba(34, 197, 94, 0.35) !important;
}

.nord-button.nord-button--c-blue:hover,
button.nord-button--c-blue:hover {
  filter: brightness(1.08);
  box-shadow: 0 8px 28px var(--hap-green-glow) !important;
}

.border-grey {
  border-color: var(--hap-border) !important;
}

input.nord-input::placeholder,
input::placeholder,
textarea::placeholder {
  color: var(--hap-muted) !important;
  opacity: 0.92;
}

[style*="color: #4b5563"],
[style*="color:#4b5563"] {
  color: var(--hap-muted) !important;
}

[style*="color: #374151"],
[style*="color:#374151"] {
  color: var(--hap-text) !important;
}

/* Страницы входа / регистрации: убрать синий блик из dashboard/button-animations.css */
.hapvpn-auth-page button::before,
.hapvpn-auth-page .nord-button::before,
.hapvpn-auth-page input[type="submit"]::before {
  display: none !important;
  content: none !important;
  background: none !important;
}

/* Шапка: пункты меню — круглый фон (pill) */
header nav ul li {
  background: none !important;
}

header nav ul li > a,
header nav ul li a.tw-inline-block,
header nav ul li a.tw-inline-flex {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  background: linear-gradient(135deg, rgba(22, 35, 28, 0.96) 0%, rgba(15, 23, 20, 0.99) 100%) !important;
  background-color: rgba(18, 28, 22, 0.98) !important;
  border: 1px solid rgba(34, 197, 94, 0.22) !important;
  border-radius: 9999px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.22) !important;
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  animation: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease !important;
}

header nav ul li > a:hover,
header nav ul li a.tw-inline-block:hover,
header nav ul li a.tw-inline-flex:hover {
  border-color: rgba(34, 197, 94, 0.38) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.28) !important;
}

header nav ul li a.tw-inline-block::before,
header nav ul li a.tw-inline-block::after,
header nav ul li a.tw-inline-flex::before,
header nav ul li a.tw-inline-flex::after {
  display: none !important;
  content: none !important;
  background: none !important;
}

/* «Поддержка» + синяя иконка Telegram */
header a.hapvpn-nav-support {
  background: linear-gradient(135deg, rgba(22, 35, 28, 0.96) 0%, rgba(15, 23, 20, 0.99) 100%) !important;
  background-color: rgba(18, 28, 22, 0.98) !important;
  border: 1px solid rgba(34, 197, 94, 0.22) !important;
  border-radius: 9999px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.22) !important;
  opacity: 1 !important;
}

header a.hapvpn-nav-support span {
  color: var(--hap-text) !important;
  background: transparent !important;
}

header a.hapvpn-nav-support:hover span {
  color: var(--hap-accent) !important;
}

header a.hapvpn-nav-support:hover {
  border-color: rgba(34, 197, 94, 0.38) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.28) !important;
}

header a.hapvpn-nav-support .hapvpn-nav-tg-icon path {
  fill: #229ed9 !important;
}
