/* Главная страница (index.html): page-specific стили, вынесенные из inline <style>.
   Общие компоненты (контейнер .astra-wrap, .astra-section, заголовки
   main h2.astra-heading, .astra-label, .astra-copy, форма .site-contact form,
   .site-*) и базовые правила (margin, box-sizing, [hidden], :focus-visible,
   cursor, prefers-reduced-motion) задают assets/tailwind.css и assets/site.css,
   которые загружаются раньше — здесь они не дублируются.
   Где site.css уже переопределяет .astra-* unified-слоем (в т.ч. через !important),
   значения ниже повторяют фактически отрисованные, чтобы визуал не изменился.
   Старые стили шапки/подвала/мобильной навигации (.astra-skip, .astra-nav-link,
   .astra-menu-toggle, .astra-mobile-nav, .astra-footer) и нижнего мобильного CTA
   (.astra-bottom-cta) удалены: соответствующего DOM на странице нет — используются
   .site-header/.site-footer, а нижний мобильный CTA удалён полностью
   (разметки, стилей и JS для него не осталось). */

/* Отключение tap-подсветки оставлено странице: в unified-слое такого правила нет. */
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }

/* Типографика: размеры и интерлиньяж .astra-heading/.astra-label/.astra-copy
   задаёт unified-слой site.css, здесь остаются только свойства без конфликтов. */
.astra-heading { color: var(--color-primary); }
.astra-label { text-transform: uppercase; font-weight: 700; color: #5971b1; }
.astra-copy { color: #64748b; }
.astra-icon { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #dce3f4; border-radius: 12px; background: #f5f7fe; color: #6472c7; flex-shrink: 0; }
.astra-icon svg { width: 21px; height: 21px; }
.astra-link { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: #4b64af; }
.astra-link:hover { color: #2379b3; }
.astra-link svg { width: 16px; height: 16px; }

/* Первый экран: фон hero задаёт unified-слой .astra-hero в site.css
   (linear-gradient(115deg, #31475b, #192734)), здесь — композиция и декор. */
.astra-hero { position: relative; isolation: isolate; overflow: hidden; }
.astra-hero-image { position: absolute; inset: 0; height: 100%; width: 100%; object-fit: cover; z-index: -3; }
.astra-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,29,45,.94) 0%, rgba(26,37,48,.84) 44%, rgba(26,37,48,.35) 100%); z-index: -2; }
.astra-hero::after { content: ''; position: absolute; width: 650px; height: 650px; top: -280px; right: -130px; border-radius: 50%; background: #686fd1; filter: blur(140px); opacity: .13; z-index: -1; }
.astra-grid { position: absolute; inset: 0; pointer-events: none; opacity: .35; background-image: linear-gradient(#a8c3e326 1px, transparent 1px), linear-gradient(90deg, #a8c3e326 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(90deg, transparent, black); z-index: -1; }
.astra-hero-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 72px; align-items: center; padding-block: 76px 72px; }
.astra-hero h1 { color: white; }
.astra-hero-accent { background-image: linear-gradient(120deg, #c5caf3, #82bfe6); background-clip: text; -webkit-background-clip: text; color: transparent; }
.astra-badge { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border: 1px solid #ffffff26; border-radius: 6px; background: #ffffff06; color: #cbd9ed; font-size: 12px; }
.astra-ghost { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid #ffffff40; border-radius: 8px; padding: 13px 22px; color: white; font-size: 14px; font-weight: 600; background: #ffffff05; transition: background .2s; }
.astra-ghost:hover { background: #ffffff15; }

/* Иллюстрация платформы в hero. */
.astra-platform { border: 1px solid rgba(255,255,255,.14); border-radius: 18px; background: rgba(255,255,255,.06); box-shadow: 0 24px 60px #0b12264d; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); padding: 26px; position: relative; }
.astra-platform::before { content: ''; position: absolute; left: 34px; right: 34px; top: -1px; height: 1px; background: linear-gradient(90deg, transparent, #bbbeff, transparent); }
.astra-app { border: 1px solid #ffffff1c; border-radius: 9px; background: #ffffff08; padding: 14px 6px; text-align: center; color: #e4ebf7; font-size: 12px; }
.astra-app svg { display: block; width: 20px; height: 20px; margin: 0 auto 10px; color: #a6b9f3; }
.astra-connector { width: 1px; height: 22px; margin: 0 auto; background: linear-gradient(#6d83b0, #9fbeff); }
.astra-core { padding: 21px 14px; border: 1px solid #969fec73; border-radius: 10px; background: linear-gradient(120deg, #686fd12b, #3498db1a); text-align: center; }
.astra-node { display: flex; align-items: center; gap: 9px; padding: 13px 12px; border: 1px solid #ffffff24; border-radius: 9px; color: #d5e0ef; font-size: 13px; }
.astra-dot { height: 6px; width: 6px; border-radius: 50%; background: #90baa9; flex-shrink: 0; }

/* Карточки сервисов. Рамка и скругление приходят из unified-слоя
   .astra-service в site.css (var(--site-border), 12px). */
.astra-service { position: relative; display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--site-border); border-radius: 12px; background: white; padding: 26px; transition: border-color .2s, transform .2s, box-shadow .2s; }
.astra-service:hover { transform: translateY(-4px); box-shadow: 0 16px 35px -18px #2c3e5033; }
.astra-service h3 { color: #2c3e50; font-size: 18px; font-weight: 600; letter-spacing: -.025em; margin-top: 25px; }
.astra-service p { font-size: 13px; line-height: 1.75; margin-block: 11px 24px; color: #64748b; }
.astra-service .astra-link { margin-top: auto; }
.astra-service-tag { position: absolute; top: 28px; right: 24px; font-size: 12px; letter-spacing: .06em; font-weight: 600; color: #7383a2; }
.astra-featured { background: linear-gradient(145deg, #f5f5fd, #f1f8fd); }
.astra-check-list { display: grid; gap: 13px; font-size: 14px; line-height: 1.6; }
.astra-check-list li { display: flex; gap: 10px; }
.astra-check-list svg { width: 17px; height: 17px; flex-shrink: 0; margin-top: 3px; color: #6479b9; }

/* Фото ЦОД и блоки доверия. */
.astra-dc-photo { position: relative; min-height: 390px; border-radius: 16px; overflow: hidden; background: #1b2938; }
.astra-dc-photo img { width: 100%; height: 100%; position: absolute; object-fit: cover; }
.astra-dc-caption { position: absolute; inset: auto 0 0; padding: 60px 27px 25px; background: linear-gradient(transparent, #132234ed); }
.astra-proof { display: flex; gap: 16px; padding-block: 20px; }
.astra-proof + .astra-proof { border-top: 1px solid #e4e9f0; }

/* Шаги миграции. */
.astra-step { position: relative; padding: 0 24px 0 0; }
.astra-step-number { display: flex; align-items: center; gap: 20px; margin-bottom: 23px; color: #6572ba; font-size: 13px; font-weight: 600; }
.astra-step-number::after { content: ''; flex: 1; height: 1px; background: #dfe4ef; }

/* FAQ: aria-expanded для details.astra-faq синхронизирует assets/site.js. */
.astra-faq { border-bottom: 1px solid #dfe5ed; }
.astra-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 0; font-size: 15px; font-weight: 600; color: #2c3e50; list-style: none; }
.astra-faq summary::-webkit-details-marker { display: none; }
.astra-faq summary::after { content: '+'; color: #6e7cb0; font-size: 25px; font-weight: 400; flex-shrink: 0; }
.astra-faq[open] summary::after { content: '−'; }
.astra-faq p { padding: 0 35px 24px 0; font-size: 14px; line-height: 1.85; color: #64748b; }

/* Контактная секция: фон/декор и оформление формы полностью задаёт
   unified-слой .site-contact в site.css; ниже — только то, что он не трогает. */
.astra-form { position: relative; }
.astra-form label:not(.astra-consent) { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 600; color: #475569; }
.astra-field { width: 100%; min-height: 46px; border: 1px solid #dce3ec; border-radius: 7px; background: #f8fafc; padding: 11px 12px; font: inherit; font-size: 13px; color: #26384b; }
.astra-field::placeholder { color: #8995a5; }
.astra-field:focus { background: white; }
.astra-form button:disabled { cursor: wait; opacity: .65; transform: none; }

@media (max-width: 1199px) {
    .astra-hero-grid { gap: 35px; }
    .astra-platform { padding: 22px; }
}
@media (max-width: 1023px) {
    .astra-hero-grid { grid-template-columns: 1fr; padding-block: 58px 45px; }
    .astra-platform { max-width: 580px; width: 100%; }
    .astra-dc-photo { min-height: 360px; }
}
@media (max-width: 639px) {
    .astra-hero-grid { padding-block: 42px 34px; gap: 36px; }
    .astra-platform { padding: 20px; }
    .astra-step { padding-right: 0; }
}

/* Сравнение встроено в подбор услуг, без отдельного повторяющегося блока. */
.astra-service-comparison p a { color: #326d9a; text-decoration: underline; text-underline-offset: 3px; }
.astra-service-comparison summary { padding-block: 18px; }
