:root {
  --primary: #1e90ff;
  --secondary: #00ced1;
  --clean: #f0fff0;
  --ink: #14213d;
  --footer: #1a1a2e;
}

html { scroll-behavior: smooth; }
body { color: var(--ink); background: #fff; }
body.menu-open { overflow: hidden; }

* { scrollbar-width: thin; scrollbar-color: rgba(30, 144, 255, .45) transparent; }
*::-webkit-scrollbar { width: 7px; height: 7px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: rgba(30, 144, 255, .42); border-radius: 999px; }
*::-webkit-scrollbar-thumb:hover { background: rgba(30, 144, 255, .65); }

.site-nav { transition: background-color .25s ease, box-shadow .25s ease; }
.site-logo, .nav-link, .burger-line { transition: color .25s ease, background-color .25s ease, transform .25s ease, opacity .2s ease; }
.nav-link { position: relative; }
.nav-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -7px; height: 2px; background: var(--secondary); transform: scaleX(0); transition: transform .2s ease; }
.nav-link:hover::after, .nav-link[aria-current="page"]::after { transform: scaleX(1); }
.nav-link[aria-current="page"] { color: var(--primary); }

.burger { width: 44px; height: 44px; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border-radius: 10px; }
.burger-line { width: 24px; height: 2px; border-radius: 2px; background: currentColor; transform-origin: center; }
.burger.is-open .burger-line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.is-open .burger-line:nth-child(2) { opacity: 0; }
.burger.is-open .burger-line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mobile-menu { position: fixed; inset: 0; z-index: 40; display: flex; flex-direction: column; padding: 104px 24px 32px; background: #fff; opacity: 0; visibility: hidden; transform: translateX(100%); transition: transform .3s ease, opacity .25s ease, visibility .3s; }
.mobile-menu.is-open { opacity: 1; visibility: visible; transform: translateX(0); }

.fade-in { opacity: 0; transition: opacity .65s ease; }
.fade-in.is-visible { opacity: 1; }
.slide-up { opacity: 0; transform: translateY(24px); transition: opacity .65s ease, transform .65s ease; }
.slide-up.is-visible { opacity: 1; transform: translateY(0); }

.breadcrumbs { color: #64748b; font-size: .875rem; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: .5rem; color: #94a3b8; }
.breadcrumbs a:hover { color: var(--primary); }
.breadcrumbs [aria-current="page"] { color: #334155; }

.hypo-badge { display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .75rem; color: #087f5b; background: #e8fff5; border: 1px solid #b7f0d9; border-radius: 999px; font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.hypo-badge::before { content: "✦"; color: var(--secondary); }
.service-card { transition: transform .25s ease, box-shadow .25s ease; }
.service-card:hover { transform: translateY(-6px); box-shadow: 0 18px 45px rgba(20, 33, 61, .12); }

.skeleton { position: relative; overflow: hidden; background: #e8edf3; }
.skeleton::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent); animation: skeleton-pulse 1.5s infinite; }
@keyframes skeleton-pulse { to { transform: translateX(100%); } }

.cta { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; padding: .7rem 1.25rem; border: 1px solid transparent; border-radius: 8px; font-size: .875rem; font-weight: 600; transition: transform .2s ease, background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.cta:hover { transform: translateY(-2px); }
.cta-primary { color: #fff; background: var(--primary); box-shadow: 0 8px 22px rgba(30,144,255,.22); }
.cta-primary:hover { background: #087cec; }
.cta-secondary { color: #062a30; background: var(--secondary); }
.cta-secondary:hover { background: #00b9bc; }
.cta-outline { color: var(--primary); background: transparent; border-color: currentColor; }
.cta-outline:hover { color: #fff; background: var(--primary); }
.site-nav .cta-primary { color: var(--primary); background: #fff; border-color: #dbeafe; box-shadow: 0 5px 16px rgba(15, 23, 42, .08); }
.site-nav .cta-primary:hover { background: #f1f5f9; }

.lazy-image { opacity: 0; transition: opacity .5s ease; }
.lazy-image.is-loaded { opacity: 1; }
.back-to-top { opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .2s ease, transform .2s ease, visibility .2s; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }

@media (min-width: 640px) { .mobile-menu { padding-inline: 48px; } }
@media (min-width: 1024px) { .mobile-menu { display: none; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/* Главная страница */
.hero-section { position: relative; min-height: 100vh; overflow: hidden; background: #0a0e17; }
.hero-canvas, .hero-overlay { position: absolute; inset: 0; }
.hero-canvas { z-index: 0; overflow: hidden; pointer-events: none; }
.hero-canvas canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; pointer-events: none; }
.hero-overlay { z-index: 1; background: linear-gradient(90deg, rgba(4, 8, 15, .82) 0%, rgba(4, 8, 15, .58) 42%, rgba(4, 8, 15, .2) 72%, rgba(4, 8, 15, .1) 100%); pointer-events: none; }
.hero-content { position: relative; z-index: 2; display: flex; min-height: 100vh; flex-direction: column; justify-content: center; padding-top: 23vh; padding-bottom: 2rem; }
.hero-trust { display: inline-flex; width: fit-content; align-items: center; gap: .65rem; padding: .45rem .8rem; border: 1px solid rgba(255,255,255,.2); border-radius: 50px; background: rgba(255,255,255,.15); backdrop-filter: blur(10px); color: #fff; font-size: .78rem; font-weight: 400; }
.hero-trust-tag { padding: .25rem .55rem; border-radius: 5px; background: #fff; color: #0a1628; font-size: .7rem; font-weight: 600; }
.hero-title { max-width: 950px; margin-top: 1.25rem; color: #fff; font-size: clamp(2rem, 7.5vw, 2.625rem); font-weight: 500; line-height: 1.2; letter-spacing: -.025em; }
.hero-title .word { margin-right: .24em; }
.hero-subtitle { max-width: 720px; margin-top: 1.25rem; color: rgba(255,255,255,.8); font-size: .9375rem; line-height: 1.7; opacity: 0; transform: translateY(12px); transition: opacity .7s ease, transform .7s ease; }
.hero-subtitle.is-animated { opacity: 1; transform: translateY(0); }
.hero-actions { display: flex; flex-direction: column; gap: .75rem; margin-top: 1.75rem; }
.hero-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: .875rem 1.75rem; border: 2px solid transparent; border-radius: 8px; font-size: .9375rem; font-weight: 500; transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.hero-button:hover { transform: translateY(-2px); }
.hero-button-primary { background: #fff; color: #0a1628; }
.hero-button-primary:hover { background: #f3f4f6; }
.hero-button-outline { border-color: #fff; color: #fff; }
.hero-button-outline:hover { background: #fff; color: #0a1628; }
.hero-reviews { display: flex; align-items: center; gap: 1rem; margin-top: auto; padding-top: 2rem; }
.avatar-cluster { display: flex; padding-left: 15px; }
.avatar { display: grid; width: 42px; height: 42px; place-items: center; margin-left: -15px; border: 2px solid rgba(255,255,255,.9); border-radius: 999px; color: #183046; font-size: .7rem; font-weight: 700; }
.section-space { padding: 4.5rem 0; }
.section-heading { text-align: center; }
.section-heading h2, .home-cta h2 { color: #14213d; font-size: 2rem; font-weight: 700; line-height: 1.2; }
.section-heading p { margin-top: .75rem; color: #64748b; font-size: 1rem; }
.home-card { display: flex; min-height: 100%; flex-direction: column; padding: 1.75rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; box-shadow: 0 6px 22px rgba(15,23,42,.05); }
.home-card:hover { transform: translateY(-8px); box-shadow: 0 22px 45px rgba(15,23,42,.13); }
.card-icon { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: .75rem; background: #eff8ff; font-size: 1.55rem; }
.home-card h3, .blog-card h3 { margin-top: 1.25rem; color: #14213d; font-size: 1.25rem; font-weight: 500; line-height: 1.35; }
.home-card p, .blog-card p, .advantage-item p, .work-steps p { margin-top: .75rem; color: #64748b; font-size: .875rem; line-height: 1.65; }
.card-price { margin-top: 1.25rem; color: #14213d; font-size: 1rem; }
.card-link, .blog-card a { width: fit-content; margin-top: auto; padding-top: 1.25rem; color: var(--primary); font-size: .875rem; font-weight: 600; }
.advantage-item { display: flex; align-items: flex-start; gap: 1rem; padding: 1.5rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; }
.advantage-item > span { font-size: 1.8rem; }
.advantage-item h3, .work-steps h3 { color: #14213d; font-size: 1.125rem; font-weight: 600; }
.work-steps { display: grid; gap: 2rem; }
.work-steps li { position: relative; text-align: center; }
.step-number { display: grid; width: 3rem; height: 3rem; place-items: center; margin: 0 auto 1rem; border-radius: 999px; background: var(--primary); color: #fff; font-weight: 700; box-shadow: 0 0 0 7px #eaf4ff; }
.blog-card { overflow: hidden; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; box-shadow: 0 6px 22px rgba(15,23,42,.05); }
.article-placeholder { display: grid; aspect-ratio: 3 / 2; place-items: center; background: linear-gradient(135deg, #dce3ea, #cbd5e1); color: #64748b; font-size: .875rem; }
.article-category { display: inline-flex; padding: .3rem .6rem; border-radius: 999px; background: #e8f7ff; color: #087cec; font-size: .7rem; font-weight: 700; }
.blog-card time { display: block; margin-top: 1rem; color: #94a3b8; font-size: .75rem; }
.home-cta { padding: 4.5rem 0; background: linear-gradient(110deg, var(--primary), var(--secondary)); color: #fff; }
.home-cta h2 { color: #fff; }
.home-cta p { margin-top: .85rem; font-size: 1rem; }
.home-cta small { display: block; margin-top: 1rem; color: rgba(255,255,255,.8); }

@media (min-width: 640px) {
  .hero-actions { flex-direction: row; }
  .hero-title { font-size: 2.625rem; }
}
@media (min-width: 768px) {
  .section-space, .home-cta { padding: 6rem 0; }
  .work-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
  .work-steps li:not(:last-child)::after { content: ""; position: absolute; top: 1.5rem; left: calc(50% + 2rem); width: calc(100% - 4rem); height: 2px; background: #bfdbfe; }
}
@media (min-width: 1024px) {
  .hero-content { padding-top: 20vh; padding-bottom: 3rem; }
}

/* Обзорная страница услуг */
.services-hero { position: relative; display: flex; min-height: 340px; align-items: center; overflow: hidden; background: linear-gradient(115deg, var(--primary), var(--secondary)); color: #fff; }
.services-hero-pattern { position: absolute; inset: 0; opacity: .22; background-image: radial-gradient(circle at 20% 30%, rgba(255,255,255,.7) 0 2px, transparent 3px), radial-gradient(circle at 75% 70%, rgba(255,255,255,.5) 0 3px, transparent 4px); background-size: 82px 82px, 130px 130px; transform: rotate(-5deg) scale(1.1); }
.services-hero h1 { font-size: clamp(2.25rem, 8vw, 2.625rem); font-weight: 500; line-height: 1.15; }
.services-hero p { max-width: 660px; margin-top: 1rem; color: rgba(255,255,255,.8); font-size: 1rem; }
.service-detail-section { padding: 4.5rem 0; }
.service-detail-grid { display: grid; gap: 2rem; align-items: start; }
.service-detail-image { width: 100%; max-width: 480px; height: auto; border-radius: 1.25rem; box-shadow: 0 22px 48px rgba(15,23,42,.14); }
.service-detail-grid h2, .services-section-heading h2, .services-cta h2 { color: #14213d; font-size: clamp(1.8rem, 5vw, 2.25rem); font-weight: 600; line-height: 1.2; }
.service-rating { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; margin-top: .8rem; }
.service-rating span { color: #f6b80b; letter-spacing: .08em; }
.service-rating p { color: #64748b; font-size: .82rem; }
.service-lead { margin-top: 1.4rem; color: #475569; font-size: 1rem; line-height: 1.75; }
.service-detail-columns { display: grid; gap: 1.75rem; margin-top: 2rem; }
.service-detail-columns h3 { margin-bottom: .9rem; color: #14213d; font-size: 1.05rem; font-weight: 700; }
.check-list { display: grid; gap: .65rem; }
.check-list li { position: relative; padding-left: 1.45rem; color: #475569; font-size: .875rem; line-height: 1.55; }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: #0eaa7b; font-weight: 800; }
.price-list { overflow: hidden; border: 1px solid #e2e8f0; border-radius: .8rem; background: rgba(255,255,255,.7); }
.price-list p { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem .9rem; color: #475569; font-size: .82rem; }
.price-list p + p { border-top: 1px solid #e2e8f0; }
.price-list strong { flex: 0 0 auto; color: #14213d; }
.service-notes { display: grid; gap: .75rem; margin-top: 1.75rem; }
.service-notes p { display: grid; grid-template-columns: auto 1fr; gap: .15rem .65rem; padding: 1rem; border-radius: .8rem; background: #eef8ff; color: #475569; font-size: .875rem; line-height: 1.55; }
.service-notes p > span { grid-row: span 2; }
.service-notes strong { color: #14213d; }
.service-actions { display: flex; flex-direction: column; gap: .75rem; margin-top: 1.75rem; }
.services-section { padding: 4.5rem 0; }
.services-section-heading { text-align: center; }
.services-section-heading p { margin-top: .75rem; color: #64748b; }
.comparison-wrap { margin-top: 2.5rem; }
.comparison-table { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; box-shadow: 0 8px 28px rgba(15,23,42,.05); }
.comparison-table th, .comparison-table td { padding: 1rem; border-bottom: 1px solid #e2e8f0; text-align: center; font-size: .875rem; }
.comparison-table thead th { background: #14213d; color: #fff; font-weight: 600; }
.comparison-table tbody th { color: #334155; text-align: left; font-weight: 600; }
.comparison-table td { color: #0e9f76; font-weight: 700; }
.comparison-table td.no { color: #ef4444; }
.comparison-table tr:last-child th, .comparison-table tr:last-child td { border-bottom: 0; }
.faq-list { margin-top: 2.5rem; border-top: 1px solid #e2e8f0; }
.faq-item { border-bottom: 1px solid #e2e8f0; }
.faq-question { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 0; color: #14213d; text-align: left; font-size: 1rem; font-weight: 600; }
.faq-question > span:last-child { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border-radius: 999px; background: #eef8ff; color: var(--primary); font-size: 1.25rem; transition: transform .3s ease; }
.faq-item.is-open .faq-question > span:last-child { transform: rotate(45deg); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-answer p { padding: 0 2.8rem 1.25rem 0; color: #64748b; font-size: .9rem; line-height: 1.65; }
.services-cta { padding: 4.5rem 0; background: linear-gradient(110deg, var(--primary), var(--secondary)); color: #fff; }
.services-cta h2 { color: #fff; }
.services-cta p { margin-top: 1rem; font-size: 1rem; }
.services-phone { color: #fff; font-size: clamp(1.5rem, 6vw, 2rem); font-weight: 700; }

@media (max-width: 767px) {
  .comparison-table, .comparison-table tbody, .comparison-table tr, .comparison-table th, .comparison-table td { display: block; width: 100%; }
  .comparison-table { border: 0; overflow: visible; background: transparent; box-shadow: none; }
  .comparison-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .comparison-table tbody { display: grid; gap: 1rem; }
  .comparison-table tr { overflow: hidden; border: 1px solid #e2e8f0; border-radius: .8rem; background: #fff; box-shadow: 0 6px 18px rgba(15,23,42,.04); }
  .comparison-table tbody th { padding: 1rem; border-bottom: 1px solid #e2e8f0; background: #f8fafc; text-align: center; }
  .comparison-table td { display: flex; align-items: center; justify-content: space-between; padding: .75rem 1rem; border-bottom: 1px solid #f1f5f9; text-align: right; }
  .comparison-table td::before { content: attr(data-label); max-width: 70%; color: #64748b; text-align: left; font-weight: 500; }
}
@media (min-width: 640px) {
  .service-actions { flex-direction: row; }
}
@media (min-width: 768px) {
  .services-section, .services-cta { padding: 6rem 0; }
  .service-detail-columns { grid-template-columns: 1fr 1fr; }
  .service-notes { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px) {
  .service-detail-section { padding: 6.5rem 0; }
  .service-detail-grid { grid-template-columns: minmax(300px, .75fr) minmax(0, 1.5fr); gap: 4.5rem; }
  .service-detail-reverse { grid-template-columns: minmax(0, 1.5fr) minmax(300px, .75fr); }
  .service-detail-reverse > div:first-child { grid-column: 2; }
  .service-detail-reverse > div:last-child { grid-column: 1; grid-row: 1; }
  .service-detail-image { position: sticky; top: 7rem; }
}

/* Детальные лендинги услуг */
.landing-section { padding: 4.5rem 0; }
.landing-heading { max-width: 780px; }
.landing-heading.center { margin-inline: auto; text-align: center; }
.landing-heading h2 { color: #14213d; font-size: clamp(1.75rem, 5vw, 2.25rem); font-weight: 650; line-height: 1.2; }
.landing-heading p { margin-top: .8rem; color: #64748b; line-height: 1.7; }
.about-service { display: grid; gap: 2rem; align-items: start; }
.about-copy { color: #475569; font-size: .98rem; line-height: 1.82; }
.about-copy p + p { margin-top: 1rem; }
.about-service img { width: 100%; border-radius: 1.25rem; box-shadow: 0 22px 50px rgba(15,23,42,.13); }
.included-grid, .benefits-grid, .audience-grid, .reviews-grid, .related-grid { display: grid; gap: 1rem; margin-top: 2.5rem; }
.included-item { display: grid; grid-template-columns: auto 1fr; gap: 1rem; padding: 1.25rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; }
.included-number { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: .75rem; background: #e8f5ff; color: var(--primary); font-weight: 800; }
.included-item h3, .benefit-card h3, .audience-card h3, .review-card h3, .related-card h3 { color: #14213d; font-size: 1rem; font-weight: 650; }
.included-item p, .benefit-card p, .audience-card p, .review-card p, .related-card p { margin-top: .45rem; color: #64748b; font-size: .86rem; line-height: 1.6; }
.benefit-card, .audience-card { padding: 1.4rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; }
.benefit-icon, .audience-icon { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; margin-bottom: 1rem; border-radius: .8rem; background: #eaf8f4; font-size: 1.35rem; }
.landing-prices { width: 100%; margin-top: 2.5rem; border-collapse: separate; border-spacing: 0; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; }
.landing-prices th, .landing-prices td { padding: .95rem 1rem; border-bottom: 1px solid #e2e8f0; color: #475569; text-align: left; font-size: .9rem; }
.landing-prices thead th { background: #14213d; color: #fff; }
.landing-prices td:last-child { color: #14213d; text-align: right; font-weight: 700; }
.landing-prices tr:last-child td { border-bottom: 0; }
.before-after-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: 2.5rem; }
.before-after-card { overflow: hidden; border-radius: .85rem; background: #fff; box-shadow: 0 8px 26px rgba(15,23,42,.07); }
.before-after-card img { width: 100%; height: auto; }
.before-after-card span { display: block; padding: .7rem; color: #475569; text-align: center; font-size: .78rem; font-weight: 700; }
.landing-process { display: grid; gap: 1.25rem; margin-top: 2.5rem; counter-reset: service-step; }
.landing-process li { position: relative; padding: 1.4rem; border-radius: 1rem; background: #fff; text-align: center; box-shadow: 0 8px 26px rgba(15,23,42,.06); counter-increment: service-step; }
.landing-process li::before { content: counter(service-step); display: grid; width: 2.75rem; height: 2.75rem; place-items: center; margin: 0 auto 1rem; border-radius: 999px; background: var(--primary); color: #fff; font-weight: 800; }
.landing-process h3 { color: #14213d; font-weight: 700; }
.landing-process p { margin-top: .5rem; color: #64748b; font-size: .85rem; line-height: 1.55; }
.review-card { padding: 1.4rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; }
.review-author { display: flex; align-items: center; gap: .85rem; }
.review-avatar { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border-radius: 999px; background: #bfdbfe; color: #14213d; font-size: .75rem; font-weight: 800; }
.review-stars { margin-top: 1rem; color: #f6b80b; letter-spacing: .08em; }
.related-card { display: block; padding: 1.5rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; transition: transform .2s ease, box-shadow .2s ease; }
.related-card:hover { transform: translateY(-5px); box-shadow: 0 16px 36px rgba(15,23,42,.1); }

@media (min-width: 640px) {
  .included-grid, .benefits-grid, .audience-grid, .reviews-grid, .related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .before-after-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
  .landing-section { padding: 6rem 0; }
  .benefits-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .audience-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .reviews-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .landing-process { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .about-service { grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr); gap: 4rem; }
  .about-service img { position: sticky; top: 7rem; }
  .included-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* О компании и отзывы */
.calm-hero { position: relative; display: flex; min-height: 350px; align-items: center; overflow: hidden; background: linear-gradient(120deg, #0a1628, #0d3b3b); color: #fff; }
.calm-hero::after { content: ""; position: absolute; inset: 0; opacity: .18; background: radial-gradient(circle at 20% 30%, #fff 0 2px, transparent 3px) 0 0/90px 90px; }
.calm-hero > div { position: relative; z-index: 1; }
.calm-hero h1 { font-size: clamp(2.25rem, 8vw, 2.625rem); font-weight: 500; line-height: 1.15; }
.calm-hero p { margin-top: 1rem; color: rgba(255,255,255,.8); }
.mission-grid { display: grid; gap: 2.5rem; }
.mission-copy p { margin-top: 1rem; color: #475569; line-height: 1.75; }
.stats-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.stat-card { padding: 1.5rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; text-align: center; box-shadow: 0 7px 22px rgba(15,23,42,.05); }
.stat-card strong { display: block; color: var(--primary); font-size: 2rem; font-weight: 750; }
.stat-card span { display: block; margin-top: .35rem; color: #64748b; font-size: .82rem; }
.company-timeline { display: grid; gap: 1.5rem; margin-top: 2.5rem; }
.timeline-item { position: relative; padding-left: 2.4rem; }
.timeline-item::before { content: ""; position: absolute; left: .45rem; top: .35rem; width: .8rem; height: .8rem; border-radius: 999px; background: var(--secondary); box-shadow: 0 0 0 6px #dffafa; }
.timeline-item:not(:last-child)::after { content: ""; position: absolute; left: .8rem; top: 1.2rem; bottom: -1.6rem; width: 2px; background: #bfdbfe; }
.timeline-item h3 { color: #14213d; font-size: 1.1rem; font-weight: 750; }
.timeline-item p { margin-top: .35rem; color: #64748b; font-size: .875rem; line-height: 1.55; }
.team-grid, .certificate-grid, .products-grid, .principles-grid, .review-grid, .video-grid, .platform-grid { display: grid; gap: 1.25rem; margin-top: 2.5rem; }
.team-card, .certificate-card, .product-card, .principle-card, .client-review, .video-card, .platform-card { border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; }
.team-card { padding: 1.5rem; text-align: center; }
.team-card img { width: 160px; height: 160px; margin: 0 auto; border-radius: 999px; }
.team-card h3 { margin-top: 1.1rem; color: #14213d; font-size: 1.125rem; font-weight: 600; }
.team-role { margin-top: .25rem; color: var(--primary); font-size: .82rem; }
.team-card p { margin-top: .8rem; color: #64748b; font-size: .85rem; line-height: 1.6; }
.certified { display: inline-flex; margin-top: 1rem; padding: .3rem .65rem; border-radius: 999px; background: #eaf8f4; color: #087f5b; font-size: .72rem; font-weight: 700; }
.certificate-card { overflow: hidden; cursor: zoom-in; }
.certificate-card img { width: 100%; }
.certificate-card p { padding: 1rem; color: #334155; font-size: .86rem; font-weight: 600; }
.product-card, .principle-card { padding: 1.5rem; }
.product-card > span, .principle-card > span { font-size: 1.7rem; }
.product-card h3, .principle-card h3 { margin-top: .8rem; color: #14213d; font-size: 1.05rem; font-weight: 650; }
.product-card ul { display: grid; gap: .5rem; margin-top: 1rem; color: #64748b; font-size: .85rem; }
.product-card li::before { content: "✓ "; color: #0e9f76; font-weight: 800; }
.principle-card p { margin-top: .6rem; color: #64748b; font-size: .85rem; line-height: 1.6; }
.image-modal { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 1.5rem; background: rgba(3,10,20,.8); opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s; }
.image-modal.is-open { opacity: 1; visibility: visible; }
.image-modal img { max-width: min(900px, 92vw); max-height: 82vh; border-radius: .8rem; }
.image-modal button { position: absolute; top: 1rem; right: 1rem; width: 2.75rem; height: 2.75rem; border-radius: 999px; background: #fff; color: #14213d; font-size: 1.4rem; }
.review-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.review-filters { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 2.5rem; }
.review-filter { padding: .6rem 1rem; border: 1px solid #cbd5e1; border-radius: 999px; color: #475569; font-size: .82rem; transition: .2s ease; }
.review-filter:hover, .review-filter.is-active { border-color: var(--primary); background: var(--primary); color: #fff; }
.client-review { display: flex; flex-direction: column; padding: 1.35rem; }
.client-review.is-hidden { display: none; }
.client-head { display: flex; align-items: center; gap: .8rem; }
.client-head img { width: 60px; height: 60px; border-radius: 999px; }
.client-head h3 { color: #14213d; font-weight: 650; }
.client-head time { color: #94a3b8; font-size: .72rem; }
.review-tag { display: inline-flex; width: fit-content; margin-top: .7rem; padding: .28rem .6rem; border-radius: 999px; background: #edf7ff; color: #087cec; font-size: .7rem; font-weight: 700; }
.client-review > p { margin-top: .9rem; color: #475569; font-size: .85rem; line-height: 1.65; }
.review-photos { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: 1rem; }
.review-photos img { width: 100%; border-radius: .5rem; }
.video-card { overflow: hidden; }
.video-placeholder { position: relative; display: grid; aspect-ratio: 8/5; place-items: center; background: linear-gradient(135deg,#cbd5e1,#94a3b8); color: #fff; font-size: 2.4rem; }
.video-card p { padding: 1rem; color: #334155; font-size: .85rem; }
.review-form { display: grid; gap: 1rem; max-width: 760px; margin: 2.5rem auto 0; padding: 1.5rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; }
.review-form label { display: grid; gap: .45rem; color: #334155; font-size: .85rem; font-weight: 600; }
.review-form input, .review-form select, .review-form textarea { width: 100%; padding: .75rem .9rem; border: 1px solid #cbd5e1; border-radius: .6rem; background: #fff; color: #14213d; font-weight: 400; }
.star-picker { display: flex; gap: .2rem; }
.star-picker button { color: #cbd5e1; font-size: 2rem; line-height: 1; transition: color .15s ease, transform .15s ease; }
.star-picker button.is-lit { color: #f6b80b; transform: scale(1.06); }
.platform-card { padding: 1.5rem; text-align: center; }
.platform-card h3 { margin-top: .7rem; color: #14213d; font-weight: 650; }
.platform-card strong { display: block; margin-top: .6rem; color: #f6b80b; font-size: 1.25rem; }
.platform-card p { color: #64748b; font-size: .82rem; }

@media (min-width: 640px) { .team-grid, .certificate-grid, .principles-grid, .review-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .products-grid, .video-grid, .platform-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (min-width: 768px) { .mission-grid { grid-template-columns: 1.15fr .85fr; align-items: start; } .review-summary { grid-template-columns: repeat(4,minmax(0,1fr)); } .review-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (min-width: 1024px) { .team-grid, .certificate-grid, .principles-grid { grid-template-columns: repeat(4,minmax(0,1fr)); } .company-timeline { grid-template-columns: repeat(7,minmax(0,1fr)); gap: 1rem; } .timeline-item { padding: 2.3rem .5rem 0; text-align: center; } .timeline-item::before { left: 50%; top: .4rem; transform: translateX(-50%); } .timeline-item:not(:last-child)::after { left: calc(50% + .4rem); top: .78rem; bottom: auto; width: calc(100% - .8rem); height: 2px; } }

/* Контакты и форма заявки */
.contact-layout { display: grid; gap: 2rem; align-items: start; }
.contact-form-card, .contact-info-card { padding: 1.5rem; border: 1px solid #e2e8f0; border-radius: 1.25rem; background: #fff; box-shadow: 0 10px 35px rgba(15,23,42,.06); }
.contact-form-card h2 { color: #14213d; font-size: 1.75rem; font-weight: 650; }
.contact-form-card > p { margin-top: .5rem; color: #64748b; }
.contact-form { display: grid; gap: 1.15rem; margin-top: 1.75rem; }
.form-field, .form-fieldset { display: grid; gap: .45rem; }
.form-field label, .form-fieldset legend { color: #334155; font-size: .84rem; font-weight: 650; }
.form-field input, .form-field select, .form-field textarea { width: 100%; padding: .8rem .9rem; border: 1px solid #cbd5e1; border-radius: .65rem; background: #fff; color: #14213d; outline: none; transition: border-color .2s ease, box-shadow .2s ease; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(30,144,255,.12); }
.form-field.has-error input, .form-field.has-error select, .form-field.has-error textarea, .form-fieldset.has-error { border-color: #ef4444; }
.field-error { min-height: 1rem; color: #dc2626; font-size: .72rem; }
.object-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; margin-top: .35rem; }
.object-option { display: flex; align-items: center; gap: .45rem; padding: .7rem; border: 1px solid #e2e8f0; border-radius: .6rem; color: #475569; font-size: .78rem; cursor: pointer; }
.object-option:has(input:checked) { border-color: var(--primary); background: #eff8ff; color: #087cec; }
.consent-label { display: flex; align-items: flex-start; gap: .65rem; color: #475569; font-size: .8rem; line-height: 1.5; }
.consent-label input { margin-top: .2rem; }
.form-notification { display: none; padding: .9rem 1rem; border-radius: .65rem; font-size: .85rem; opacity: 0; transform: translateY(8px); }
.form-notification.is-visible { display: block; animation: notice-in .3s ease forwards; }
.form-notification.success { background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
.form-notification.error { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
@keyframes notice-in { to { opacity: 1; transform: translateY(0); } }
.button-spinner { width: 1rem; height: 1rem; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 999px; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.contact-info-card { display: grid; gap: 1.5rem; }
.contact-block { display: grid; grid-template-columns: auto 1fr; gap: .8rem; }
.contact-icon { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: .75rem; background: #eaf5ff; font-size: 1.1rem; }
.contact-block h3 { color: #14213d; font-size: .9rem; font-weight: 700; }
.contact-block a, .contact-block strong { display: block; margin-top: .2rem; color: #087cec; font-size: 1.05rem; font-weight: 650; }
.contact-block p { margin-top: .25rem; color: #64748b; font-size: .78rem; line-height: 1.5; }
.messenger-links, .social-links { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .5rem; }
.messenger-link, .social-link { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; border-radius: 999px; color: #fff !important; font-size: .76rem !important; }
.map-placeholder { display: grid; aspect-ratio: 8/5; place-items: center; border-radius: .85rem; background: linear-gradient(135deg,#d1d5db,#94a3b8); color: #475569; font-weight: 700; }
@media (min-width: 768px) { .contact-form-card, .contact-info-card { padding: 2rem; } .object-options { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (min-width: 1024px) { .contact-layout { grid-template-columns: minmax(0,3fr) minmax(330px,2fr); gap: 2.5rem; } }

/* Блог */
.blog-hero-search { position: relative; max-width: 620px; margin-top: 1.5rem; }
.blog-hero-search span { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: #64748b; }
.blog-hero-search input { width: 100%; padding: .85rem 1rem .85rem 2.8rem; border: 1px solid rgba(255,255,255,.35); border-radius: .75rem; background: rgba(255,255,255,.94); color: #14213d; outline: none; }
.blog-categories { display: flex; flex-wrap: wrap; gap: .65rem; }
.blog-filter { padding: .6rem 1rem; border: 1px solid #cbd5e1; border-radius: 999px; color: #475569; font-size: .8rem; transition: .2s ease; }
.blog-filter:hover, .blog-filter.is-active { border-color: var(--primary); background: var(--primary); color: #fff; }
.blog-layout { display: grid; gap: 2.5rem; margin-top: 2.5rem; align-items: start; }
.blog-grid { display: grid; gap: 1.25rem; }
.article-card { display: flex; overflow: hidden; flex-direction: column; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; box-shadow: 0 7px 24px rgba(15,23,42,.05); transition: transform .2s ease, box-shadow .2s ease; }
.article-card:hover { transform: translateY(-5px); box-shadow: 0 18px 38px rgba(15,23,42,.11); }
.article-image-wrap { position: relative; }
.article-image-wrap img { width: 100%; height: auto; }
.article-card-category { position: absolute; left: .8rem; top: .8rem; padding: .32rem .6rem; border-radius: 999px; background: rgba(255,255,255,.94); color: #087cec; font-size: .68rem; font-weight: 750; }
.article-card-body { display: flex; flex: 1; flex-direction: column; padding: 1.25rem; }
.article-card h2 { display: -webkit-box; overflow: hidden; color: #14213d; font-size: 1.18rem; font-weight: 600; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.article-excerpt { display: -webkit-box; overflow: hidden; margin-top: .7rem; color: #64748b; font-size: .86rem; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.article-meta { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1rem; color: #94a3b8; font-size: .72rem; }
.article-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.article-tags button, .tag-cloud button { border-radius: 999px; background: #f1f5f9; color: #475569; }
.article-tags button { padding: .25rem .5rem; font-size: .68rem; }
.article-read { width: fit-content; margin-top: auto; padding-top: 1.1rem; color: var(--primary); font-size: .82rem; font-weight: 700; }
.popular-sidebar { padding: 1.4rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; }
.popular-sidebar h2 { color: #14213d; font-size: 1.35rem; font-weight: 650; }
.popular-list { display: grid; gap: 1rem; margin-top: 1.2rem; }
.popular-item { display: grid; grid-template-columns: 60px 1fr; gap: .75rem; align-items: center; }
.popular-item img { width: 60px; height: 60px; border-radius: .55rem; }
.popular-item h3 { color: #334155; font-size: .8rem; font-weight: 600; line-height: 1.4; }
.popular-item time { color: #94a3b8; font-size: .68rem; }
.blog-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem; margin-top: 2.5rem; }
.page-button { min-width: 2.6rem; min-height: 2.6rem; padding: .55rem .75rem; border: 1px solid #cbd5e1; border-radius: .55rem; color: #475569; font-size: .78rem; }
.page-button.is-active { border-color: var(--primary); background: var(--primary); color: #fff; }
.page-button:disabled { opacity: .38; cursor: not-allowed; }
.newsletter { padding: 2rem; border-radius: 1.25rem; background: #f8fafc; text-align: center; }
.newsletter h2 { color: #14213d; font-size: 1.75rem; font-weight: 650; }
.newsletter p { margin-top: .65rem; color: #64748b; }
.newsletter-form { display: flex; max-width: 620px; flex-direction: column; gap: .75rem; margin: 1.5rem auto 0; }
.newsletter-form input { flex: 1; padding: .8rem .9rem; border: 1px solid #cbd5e1; border-radius: .65rem; background: #fff; }
.newsletter-status { margin-top: .8rem; color: #047857; font-size: .82rem; }
.newsletter-consent { display: flex; align-items: flex-start; gap: .5rem; width: 100%; color: var(--muted-text); text-align: left; font-size: .72rem; line-height: 1.5; }
.newsletter-consent a { color: var(--primary); text-decoration: underline; }
@media (min-width: 640px) { .newsletter-consent { flex-basis: 100%; } }
.tag-cloud { display: flex; flex-wrap: wrap; justify-content: center; gap: .65rem; margin-top: 2rem; align-items: center; }
.tag-cloud button { padding: .45rem .75rem; transition: background .2s ease, color .2s ease; }
.tag-cloud button:hover, .tag-cloud button.is-active { background: var(--primary); color: #fff; }
.blog-empty { grid-column: 1/-1; padding: 3rem 1rem; color: #64748b; text-align: center; }
@media (min-width: 640px) { .blog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .newsletter-form { flex-direction: row; } }
@media (min-width: 1024px) { .blog-layout { grid-template-columns: minmax(0,1fr) 300px; } .blog-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } .popular-sidebar { position: sticky; top: 6.5rem; } }

/* Темы, плавность и liquid glass */
:root {
  --ease-fluid: cubic-bezier(.22, 1, .36, 1);
  --page-bg: #f4f9ff;
  --page-text: #14213d;
  --muted-text: #64748b;
  --glass-bg: rgba(255, 255, 255, .66);
  --glass-strong: rgba(255, 255, 255, .84);
  --glass-border: rgba(255, 255, 255, .76);
  --glass-shadow: 0 18px 50px rgba(30, 78, 121, .11), inset 0 1px 0 rgba(255,255,255,.8);
  --surface-soft: rgba(240, 248, 255, .72);
}
.dark-theme {
  --page-bg: #07111f;
  --page-text: #e8f2ff;
  --muted-text: #9fb1c7;
  --glass-bg: rgba(13, 29, 48, .66);
  --glass-strong: rgba(14, 31, 51, .86);
  --glass-border: rgba(139, 199, 255, .16);
  --glass-shadow: 0 22px 60px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255,255,255,.08);
  --surface-soft: rgba(8, 22, 38, .78);
}
body { color: var(--page-text); background-color: var(--page-bg); background-image: radial-gradient(circle at 8% 12%, rgba(30,144,255,.13), transparent 28rem), radial-gradient(circle at 92% 35%, rgba(0,206,209,.1), transparent 32rem); background-attachment: fixed; transition: color .55s var(--ease-fluid), background-color .55s var(--ease-fluid); }
.site-nav, .mobile-menu, section, footer, input, select, textarea,
.home-card, .advantage-item, .blog-card, .included-item, .benefit-card, .audience-card,
.review-card, .related-card, .stat-card, .team-card, .certificate-card, .product-card,
.principle-card, .client-review, .video-card, .platform-card, .contact-form-card,
.contact-info-card, .article-card, .popular-sidebar, .newsletter, .service-detail-section {
  transition: color .5s var(--ease-fluid), background-color .5s var(--ease-fluid), background .5s var(--ease-fluid), border-color .5s var(--ease-fluid), box-shadow .5s var(--ease-fluid), transform .45s var(--ease-fluid);
}
.fade-in { transition: opacity .9s var(--ease-fluid); }
.slide-up { transition: opacity .9s var(--ease-fluid), transform .9s var(--ease-fluid); }
.mobile-menu { transition: transform .48s var(--ease-fluid), opacity .4s ease, visibility .48s; }
.service-card, .article-card, .related-card, .cta, .hero-button, .review-filter, .blog-filter, .tag-cloud button { transition-duration: .42s; transition-timing-function: var(--ease-fluid); }

.site-nav.bg-white { background: rgba(255,255,255,.7) !important; border-bottom: 1px solid rgba(255,255,255,.72); box-shadow: 0 12px 36px rgba(30,78,121,.1) !important; backdrop-filter: blur(22px) saturate(145%); -webkit-backdrop-filter: blur(22px) saturate(145%); }
.theme-toggle { position: relative; display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; overflow: hidden; border: 1px solid rgba(255,255,255,.62); border-radius: 999px; background: rgba(255,255,255,.2); color: currentColor; box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 8px 24px rgba(15,23,42,.08); backdrop-filter: blur(14px); transition: transform .4s var(--ease-fluid), background .4s var(--ease-fluid), color .4s ease; }
.theme-toggle::before { content: ""; position: absolute; width: 24px; height: 24px; border-radius: 50%; background: linear-gradient(135deg, rgba(255,255,255,.75), rgba(0,206,209,.2)); filter: blur(7px); }
.theme-toggle span { position: relative; z-index: 1; font-size: 1.2rem; line-height: 1; }
.theme-toggle:hover { transform: translateY(-2px) rotate(8deg); background: rgba(255,255,255,.34); }
.site-nav.bg-transparent .theme-toggle { color: #fff; }
.nav-actions { margin-left: auto; }
@media (min-width: 1024px) { .nav-actions { margin-left: 0; } }

:is(.home-card, .advantage-item, .blog-card, .included-item, .benefit-card, .audience-card, .review-card, .related-card, .stat-card, .team-card, .certificate-card, .product-card, .principle-card, .client-review, .video-card, .platform-card, .contact-form-card, .contact-info-card, .article-card, .popular-sidebar, .newsletter, .service-notes p, .landing-process li) {
  background: var(--glass-bg); border-color: var(--glass-border); box-shadow: var(--glass-shadow); backdrop-filter: blur(18px) saturate(130%); -webkit-backdrop-filter: blur(18px) saturate(130%);
}
:is(.home-card, .service-card, .article-card, .related-card, .team-card, .principle-card, .client-review):hover { transform: translateY(-7px) scale(1.008); box-shadow: 0 26px 65px rgba(30,78,121,.17), inset 0 1px 0 rgba(255,255,255,.72); }
.bg-white { background-color: rgba(255,255,255,.55) !important; }
.bg-slate-50 { background-color: rgba(241,247,253,.66) !important; }
.landing-prices, .comparison-table, .price-list, .review-form { background: var(--glass-strong); border-color: var(--glass-border); box-shadow: var(--glass-shadow); backdrop-filter: blur(18px); }

.dark-theme .site-nav.bg-white { background: rgba(7,17,31,.72) !important; border-color: rgba(139,199,255,.14); box-shadow: 0 14px 42px rgba(0,0,0,.28) !important; }
.dark-theme .mobile-menu { background: rgba(7,17,31,.96); color: #e8f2ff; backdrop-filter: blur(24px); }
.dark-theme .bg-white { background-color: rgba(8,22,38,.64) !important; }
.dark-theme .bg-slate-50 { background-color: rgba(5,16,29,.78) !important; }
.dark-theme footer { background: rgba(4,11,23,.94) !important; }
.dark-theme .site-logo, .dark-theme .site-nav.bg-white .nav-link, .dark-theme .site-nav.bg-white .burger { color: #e8f2ff !important; }
.dark-theme .theme-toggle { color: #dff8ff; border-color: rgba(139,199,255,.2); background: rgba(16,39,63,.7); }
.dark-theme :is(.landing-heading h2, .section-heading h2, .home-card h3, .blog-card h3, .advantage-item h3, .work-steps h3, .service-detail-grid h2, .service-detail-columns h3, .services-section-heading h2, .included-item h3, .benefit-card h3, .audience-card h3, .review-card h3, .related-card h3, .mission-copy h2, .timeline-item h3, .team-card h3, .product-card h3, .principle-card h3, .client-head h3, .platform-card h3, .contact-form-card h2, .contact-block h3, .article-card h2, .popular-sidebar h2, .popular-item h3, .newsletter h2) { color: #e8f2ff; }
.dark-theme :is(.section-heading p, .home-card p, .blog-card p, .advantage-item p, .work-steps p, .service-lead, .check-list li, .service-notes p, .services-section-heading p, .included-item p, .benefit-card p, .audience-card p, .review-card p, .related-card p, .about-copy, .about-copy p, .mission-copy p, .timeline-item p, .team-card p, .product-card ul, .principle-card p, .client-review>p, .platform-card p, .contact-form-card>p, .contact-block p, .article-excerpt, .newsletter p, .breadcrumbs) { color: var(--muted-text); }
.dark-theme :is(.text-slate-900, .text-slate-800, .text-slate-700) { color: #e8f2ff !important; }
.dark-theme :is(.text-slate-600, .text-slate-500, .text-slate-400, .text-slate-300) { color: #9fb1c7 !important; }
.dark-theme :is(input, select, textarea) { color: #e8f2ff; background: rgba(5,16,29,.72); border-color: rgba(139,199,255,.18); }
.dark-theme :is(.landing-prices th, .landing-prices td, .price-list p, .comparison-table tbody th) { color: #c8d8ea; border-color: rgba(139,199,255,.12); }
.dark-theme :is(.landing-prices td:last-child, .price-list strong, .service-notes strong, .card-price, .faq-question, .review-form label, .review-form legend, .before-after-card span) { color: #e8f2ff; }
.dark-theme .landing-prices thead th, .dark-theme .comparison-table thead th { background: rgba(4,13,25,.88); color: #fff; }
.dark-theme .comparison-table tbody th { background: rgba(12,29,47,.78); }
.dark-theme .article-tags button, .dark-theme .tag-cloud button { color: #b9cce1; background: rgba(139,199,255,.09); }
.dark-theme .article-card-category { background: rgba(7,17,31,.88); color: #73c5ff; }
.dark-theme .object-option { color: #b9cce1; border-color: rgba(139,199,255,.15); }
.dark-theme .object-option:has(input:checked) { background: rgba(30,144,255,.16); }
.dark-theme .nav-link[aria-current="page"] { color: #69c7ff !important; }
@media (prefers-reduced-motion: reduce) { .theme-toggle:hover, :is(.home-card, .service-card, .article-card, .related-card):hover { transform: none; } }

/* Three.js-эффекты секций */
.section-three-host { position: relative; isolation: isolate; overflow: hidden; }
.section-three-effect { position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .76; }
.section-three-effect canvas { display: block; width: 100%; height: 100%; }
.section-three-host > :not(.section-three-effect, .services-hero-pattern, .hero-canvas, .hero-overlay) { position: relative; z-index: 2; }
#hero .section-three-effect { z-index: 1; opacity: .58; }
#hero .hero-overlay { z-index: 2; }
#hero .hero-content { z-index: 3; }
.services-hero .section-three-effect, .calm-hero .section-three-effect { opacity: .7; }
.services-cta .section-three-effect, .home-cta .section-three-effect { opacity: .3; filter: saturate(1.25); }
.dark-theme .section-three-effect { opacity: .82; }
@media (max-width: 767px) { .section-three-effect { opacity: .36 !important; transform: translateY(12%); } }

/* Cookie consent и юридические ссылки */
.cookie-banner { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 100; max-width: 1180px; margin: 0 auto; padding: 1rem; border: 1px solid var(--glass-border); border-radius: 1.15rem; background: var(--glass-strong); color: var(--page-text); box-shadow: 0 24px 80px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.45); backdrop-filter: blur(24px) saturate(145%); transform: translateY(calc(100% + 2rem)); opacity: 0; visibility: hidden; transition: transform .55s var(--ease-fluid), opacity .4s ease, visibility .55s; }
.cookie-banner.is-visible { transform: translateY(0); opacity: 1; visibility: visible; }
.cookie-banner h2 { font-size: 1rem; font-weight: 750; }
.cookie-banner p { margin-top: .4rem; color: var(--muted-text); font-size: .78rem; line-height: 1.55; }
.cookie-banner a, .cookie-settings-modal a { color: var(--primary); text-decoration: underline; text-underline-offset: 2px; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .85rem; }
.cookie-button { min-height: 40px; padding: .6rem .9rem; border: 1px solid rgba(30,144,255,.35); border-radius: .65rem; color: var(--primary); font-size: .76rem; font-weight: 700; }
.cookie-button.primary { border-color: var(--primary); background: var(--primary); color: #fff; }
.cookie-settings-modal { position: fixed; inset: 0; z-index: 110; display: grid; place-items: center; padding: 1rem; background: rgba(2,8,18,.68); opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s; }
.cookie-settings-modal.is-open { opacity: 1; visibility: visible; }
.cookie-settings-panel { width: min(620px, 100%); max-height: 88vh; overflow: auto; padding: 1.4rem; border: 1px solid var(--glass-border); border-radius: 1.2rem; background: var(--glass-strong); color: var(--page-text); box-shadow: var(--glass-shadow); backdrop-filter: blur(26px); }
.cookie-settings-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.cookie-settings-head h2 { font-size: 1.25rem; font-weight: 750; }
.cookie-close { width: 2.4rem; height: 2.4rem; border-radius: 999px; background: var(--surface-soft); font-size: 1.2rem; }
.cookie-option { display: grid; grid-template-columns: 1fr auto; gap: .5rem 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(148,163,184,.2); }
.cookie-option h3 { font-size: .9rem; font-weight: 700; }
.cookie-option p { color: var(--muted-text); font-size: .76rem; line-height: 1.5; }
.cookie-switch { position: relative; width: 46px; height: 26px; }
.cookie-switch input { position: absolute; opacity: 0; }
.cookie-switch span { position: absolute; inset: 0; border-radius: 999px; background: #94a3b8; cursor: pointer; transition: background .25s ease; }
.cookie-switch span::after { content: ""; position: absolute; width: 20px; height: 20px; left: 3px; top: 3px; border-radius: 50%; background: #fff; transition: transform .25s var(--ease-fluid); }
.cookie-switch input:checked + span { background: var(--primary); }
.cookie-switch input:checked + span::after { transform: translateX(20px); }
.cookie-switch input:disabled + span { opacity: .65; cursor: not-allowed; }
.legal-footer-links { display: flex; flex: 1 0 100%; flex-wrap: wrap; gap: .65rem 1rem; width: 100%; margin-top: .65rem; color: #aebbd0; font-size: .72rem; }
.border-t:has(.legal-footer-links) { flex-wrap: wrap; }
.legal-footer-links a:hover, .legal-footer-links button:hover { color: #fff; }
.legal-document { max-width: 960px; margin: 0 auto; padding: 3rem 1rem 6rem; }
.legal-document h1 { color: var(--page-text); font-size: clamp(2rem,6vw,2.8rem); font-weight: 750; line-height: 1.15; }
.legal-document h2 { margin-top: 2rem; color: var(--page-text); font-size: 1.35rem; font-weight: 700; }
.legal-document h3 { margin-top: 1.25rem; color: var(--page-text); font-size: 1rem; font-weight: 700; }
.legal-document p, .legal-document li { margin-top: .7rem; color: var(--muted-text); line-height: 1.75; }
.legal-document ul, .legal-document ol { padding-left: 1.35rem; }
.legal-document ul { list-style: disc; }
.legal-document ol { list-style: decimal; }
.legal-notice { margin: 1.5rem 0; padding: 1rem; border: 1px solid #f0c36a; border-radius: .8rem; background: rgba(254,243,199,.65); color: #7c4a03; }
.dark-theme .legal-notice { background: rgba(120,75,5,.2); color: #ffd889; }
@media (min-width: 768px) { .cookie-banner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 1.25rem; padding: 1.1rem 1.25rem; } .cookie-actions { margin-top: 0; justify-content: flex-end; } }
