/* ===== SEO-блок: анимированная таблица и списки в стиле Vodka ===== */

/* ---------- Таблица ---------- */
.textSeo .seoTable {
    position: relative;
    margin: 24px 0 28px;
    overflow-x: auto;
    border-radius: 16px;
    background: linear-gradient(180deg, #172e50 0%, #121a29 100%);
    border: 1px solid rgba(43, 144, 254, .35);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .35), 0 0 0 1px rgba(121, 205, 253, .06) inset;
    -webkit-overflow-scrolling: touch;
}
.textSeo .seoTable::before {          /* бегущая подсветка по рамке */
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(110deg, transparent 30%, rgba(65, 198, 255, .9) 50%, transparent 70%) 0 0 / 250% 100%;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation: seo-border-run 4.5s linear infinite;
    pointer-events: none;
}
.textSeo .seoTable:focus-visible { outline: 2px solid #41c6ff; outline-offset: 3px; }
.textSeo .seoTable table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
    font-size: 15px;
    color: #fff;
}
.textSeo .seoTable caption {
    padding: 18px 20px 6px;
    text-align: left;
    font-weight: 700;
    font-size: 17px;
    color: #79cdfd;
    letter-spacing: .02em;
}
.textSeo .seoTable thead th {
    position: relative;
    overflow: hidden;
    padding: 14px 20px;
    text-align: left;
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #fff;
    background: linear-gradient(90deg, #1a64fc, #2b91fe);
}
.textSeo .seoTable thead th::after {  /* блик по шапке */
    content: "";
    position: absolute;
    top: 0; bottom: 0; left: -60%;
    width: 40%;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .28), transparent);
    animation: seo-shine 3.8s ease-in-out infinite;
}
.textSeo .seoTable tbody th,
.textSeo .seoTable tbody td {
    padding: 14px 20px;
    text-align: left;
    vertical-align: middle;
    line-height: 1.4;
    border-top: 1px solid rgba(71, 87, 116, .45);
}
.textSeo .seoTable tbody th { font-weight: 600; color: #79cdfd; width: 32%; }
.textSeo .seoTable tbody td { color: rgba(255, 255, 255, .88); }
.textSeo .seoTable tbody tr { transition: background-color .25s ease, transform .25s ease; }
.textSeo .seoTable tbody tr:hover { background: rgba(43, 145, 254, .12); }
.textSeo .seoTable tbody tr:hover th { color: #41c6ff; }

.textSeo .seoTag {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}
.textSeo .seoTag--ok  { background: rgba(43, 145, 254, .18); color: #79cdfd; border: 1px solid rgba(43, 145, 254, .45); }
.textSeo .seoTag--win { background: rgba(76, 232, 146, .14); color: #4ce892; border: 1px solid rgba(76, 232, 146, .45); animation: seo-glow 2.4s ease-in-out infinite; }

/* ---------- Списки ---------- */
.textSeo .seoList {
    list-style: none;
    margin: 18px 0 22px;
    padding: 0;
    display: grid;
    gap: 10px;
}
.textSeo .seoList li {
    position: relative;
    padding: 14px 18px 14px 56px;
    line-height: 1.45;
    border-radius: 12px;
    background: #121a29;
    border: 1px solid rgba(71, 87, 116, .5);
    transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.textSeo .seoList li:hover {
    border-color: rgba(43, 145, 254, .7);
    transform: translateX(4px);
    box-shadow: 0 6px 18px rgba(26, 100, 252, .2);
}
.textSeo .seoList li strong { color: #79cdfd; }

/* маркер-искра */
.textSeo .seoList--spark li::before {
    content: "";
    position: absolute;
    left: 20px; top: 50%;
    width: 14px; height: 14px;
    margin-top: -7px;
    background: linear-gradient(135deg, #41c6ff, #1a64fc);
    clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%);
    animation: seo-spin 6s linear infinite;
}

/* нумерованные шаги */
.textSeo .seoList--steps { counter-reset: seo-step; }
.textSeo .seoList--steps li { counter-increment: seo-step; }
.textSeo .seoList--steps li::before {
    content: counter(seo-step);
    position: absolute;
    left: 14px; top: 50%;
    width: 28px; height: 28px;
    margin-top: -14px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-weight: 700;
    font-size: 14px;
    color: #fff;
    background: linear-gradient(135deg, #2b91fe, #1a64fc);
    box-shadow: 0 0 0 0 rgba(43, 145, 254, .6);
    animation: seo-pulse 2.6s ease-out infinite;
}
.textSeo .seoList--steps li:not(:last-child)::after {  /* линия, соединяющая шаги */
    content: "";
    position: absolute;
    left: 27px; top: calc(50% + 15px);
    width: 2px; height: calc(50% + 10px);
    background: linear-gradient(#2b91fe, transparent);
}

/* галочки-щиты */
.textSeo .seoList--shield li::before {
    content: "";
    position: absolute;
    left: 18px; top: 50%;
    width: 20px; height: 20px;
    margin-top: -10px;
    border-radius: 50%;
    background: rgba(76, 232, 146, .15);
    border: 1px solid rgba(76, 232, 146, .6);
}
.textSeo .seoList--shield li::after {
    content: "";
    position: absolute;
    left: 25px; top: 50%;
    width: 5px; height: 9px;
    margin-top: -6px;
    border: solid #4ce892;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* ---------- Появление при прокрутке (только если работает JS) ---------- */
.seo-anim .textSeo .seoTable,
.seo-anim .textSeo .seoList li,
.seo-anim .textSeo .seoTable tbody tr {
    opacity: 0;
}
.seo-anim .textSeo .seoTable { transform: translateY(24px) scale(.98); }
.seo-anim .textSeo .seoTable tbody tr { transform: translateX(-16px); }
.seo-anim .textSeo .seoList li { transform: translateX(-24px); }

.seo-anim .textSeo .is-visible.seoTable,
.seo-anim .textSeo .is-visible tbody tr,
.seo-anim .textSeo .is-visible li {
    opacity: 1;
    transform: none;
    transition: opacity .6s ease, transform .6s cubic-bezier(.2, .9, .3, 1.1);
    transition-delay: calc(var(--i, 0) * 110ms);
}
.seo-anim .textSeo .is-visible li:hover { transform: translateX(4px); transition-delay: 0s; }

@keyframes seo-border-run { to { background-position: -250% 0; } }
@keyframes seo-shine { 0% { left: -60%; } 55%, 100% { left: 130%; } }
@keyframes seo-glow { 50% { box-shadow: 0 0 12px rgba(76, 232, 146, .45); } }
@keyframes seo-spin { to { transform: rotate(360deg); } }
@keyframes seo-pulse { 0% { box-shadow: 0 0 0 0 rgba(43, 145, 254, .55); } 70%, 100% { box-shadow: 0 0 0 10px rgba(43, 145, 254, 0); } }

@media (max-width: 767px) {
    .textSeo .seoTable table { font-size: 14px; }
    .textSeo .seoTable tbody th, .textSeo .seoTable tbody td, .textSeo .seoTable thead th { padding: 12px 14px; }
    .textSeo .seoList li { padding: 12px 14px 12px 50px; }
}

@media (prefers-reduced-motion: reduce) {
    .textSeo .seoTable::before,
    .textSeo .seoTable thead th::after,
    .textSeo .seoTag--win,
    .textSeo .seoList li::before { animation: none; }
    .seo-anim .textSeo .seoTable,
    .seo-anim .textSeo .seoList li,
    .seo-anim .textSeo .seoTable tbody tr { opacity: 1; transform: none; transition: none; }
}
