/
aielx
/
intellect
Обзор
Документация
Войти
/
aielx
/
intellect
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/styles/global.css
322 строки
10 KB
AIEX
initial: статичный сайт образовательного центра «Интеллект» на Astro 7
06 авг 2026, 10:55
06 авг 2026, 10:55
2e0f7c2
Код
Авторство
О чём код?
/* ===== Шрифты (self-host, Onest, кириллица + латиница) ===== */ @font-face { font-family: 'Onest'; src: url('/fonts/onest-cyrillic-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @font-face { font-family: 'Onest'; src: url('/fonts/onest-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F, U+20A0-20BF; } @font-face { font-family: 'Onest'; src: url('/fonts/onest-cyrillic-500-normal.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @font-face { font-family: 'Onest'; src: url('/fonts/onest-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F, U+20A0-20BF; } @font-face { font-family: 'Onest'; src: url('/fonts/onest-cyrillic-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @font-face { font-family: 'Onest'; src: url('/fonts/onest-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F, U+20A0-20BF; } @font-face { font-family: 'Onest'; src: url('/fonts/onest-cyrillic-700-normal.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @font-face { font-family: 'Onest'; src: url('/fonts/onest-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F, U+20A0-20BF; } @font-face { font-family: 'Onest'; src: url('/fonts/onest-cyrillic-800-normal.woff2') format('woff2'); font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } @font-face { font-family: 'Onest'; src: url('/fonts/onest-latin-800-normal.woff2') format('woff2'); font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F, U+20A0-20BF; } /* ===== Дизайн-токены ===== */ /* Фирменная палитра «Интеллект»: логотип в фирменных цветах (бирюза + тёмно-синий), поэтому дизайн построен на индиго (основной, доверие/образование) + фирменном бирюзовом (акцент-связка с логотипом: метки, ссылки, градиенты) + янтарном (минимум — звёзды отзывов, «детское тепло»). Так логотип и сайт — единое семейство. */ :root { --indigo: #312e81; --indigo-dark: #1e1b4b; --indigo-light: #4338ca; --violet: #6d28d9; /* Фирменный бирюзовый — цвета головы логотипа */ --teal: #0e9aa8; --teal-bright: #31bfc9; --teal-light: #14b8a6; /* Янтарный — только для звёзд и редких акцентов */ --amber: #f59e0b; --amber-dark: #d97706; /* Коралл — только для суб-страниц Аватар/ManGO */ --coral: #fb7185; --grad-cta: linear-gradient(120deg, #312e81 0%, #6d28d9 100%); --grad-brand: linear-gradient(135deg, #312e81 0%, #0e9aa8 100%); --grad-teal: linear-gradient(135deg, #31bfc9 0%, #0e9aa8 100%); /* --grad-warm оставлен для суб-страниц (Аватар/ManGO) */ --grad-warm: linear-gradient(135deg, #f59e0b 0%, #fb7185 100%); --bg: #f8f9fc; --surface: #ffffff; --tint: #ecfdf5; --tint-soft: #f0fdfa; --text: #1e1b4b; --muted: #5b5470; --line: #e2e8f0; --radius: 18px; --radius-sm: 12px; --radius-lg: 24px; --shadow: 0 10px 30px -12px rgb(49 46 129 / 0.14); --shadow-lg: 0 24px 60px -20px rgb(14 154 168 / 0.28); --shadow-warm: 0 16px 40px -16px rgb(14 154 168 / 0.30); --font: 'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif; } /* ===== Reset ===== */ *, *::before, *::after { box-sizing: border-box; } * { margin: 0; } html { scroll-behavior: smooth; scroll-padding-top: 92px; } body { font-family: var(--font); font-size: 17px; line-height: 1.6; color: var(--text); background: var(--bg); -webkit-font-smoothing: antialiased; } img, picture, svg, video { display: block; max-width: 100%; } input, button, textarea, select { font: inherit; color: inherit; } button { cursor: pointer; background: none; border: 0; } a { color: var(--indigo-light); } ul[role='list'], ol[role='list'] { list-style: none; padding: 0; } :focus-visible { outline: 3px solid var(--indigo); outline-offset: 2px; border-radius: 4px; } .skip-link { position: absolute; left: 16px; top: -60px; z-index: 200; padding: 10px 18px; background: var(--text); color: #fff; border-radius: 8px; transition: top 0.2s; } .skip-link:focus { top: 12px; } /* ===== Раскладка ===== */ .container { width: 100%; max-width: 1180px; margin-inline: auto; padding-inline: 20px; } .section { padding-block: clamp(56px, 8vw, 96px); } .section--tint { background: var(--surface); } .section--warm { background: var(--tint); } .section-head { max-width: 720px; margin-bottom: clamp(32px, 5vw, 52px); } .section-head--center { margin-inline: auto; text-align: center; } .kicker { display: inline-block; margin-bottom: 12px; font-size: 14px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--teal); } h1, h2, h3 { line-height: 1.15; letter-spacing: -0.02em; } h1 { font-size: clamp(30px, 5.4vw, 52px); font-weight: 800; } h2 { font-size: clamp(26px, 4vw, 40px); font-weight: 800; } h3 { font-size: 21px; font-weight: 700; } .lead { margin-top: 16px; font-size: clamp(17px, 2vw, 20px); color: var(--muted); } /* ===== Кнопки ===== */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 26px; border-radius: 999px; font-weight: 700; font-size: 16px; line-height: 1.2; text-decoration: none; transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease; white-space: nowrap; } .btn--primary { background: var(--grad-cta); color: #fff; box-shadow: 0 10px 24px -10px rgb(109 40 217 / 0.55); } .btn--primary:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); } .btn--warm { background: var(--grad-warm); color: #fff; box-shadow: 0 10px 24px -10px rgb(245 158 11 / 0.55); } .btn--warm:hover { transform: translateY(-2px); box-shadow: var(--shadow-warm); } .btn--outline { background: var(--surface); color: var(--indigo); border: 2px solid var(--indigo); } .btn--outline:hover { background: #f3f2ff; } .btn--ghost { color: var(--indigo); } .btn--lg { padding: 17px 34px; font-size: 17px; } /* ===== Карточки и бейджи ===== */ .card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); } .badge { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 999px; background: var(--tint); color: var(--teal); font-weight: 700; font-size: 14px; } .badge--amber { background: #fef3c7; color: #92400e; } /* ===== Формы ===== */ .field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; } .field label { font-weight: 600; font-size: 15px; } .field input, .field select, .field textarea { padding: 13px 16px; border: 1.5px solid var(--line); border-radius: var(--radius-sm); background: #fff; transition: border-color 0.15s, box-shadow 0.15s; } .field textarea { resize: vertical; min-height: 90px; } .field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--indigo); box-shadow: 0 0 0 4px rgb(49 46 129 / 0.12); } .field input[aria-invalid='true'] { border-color: #dc2626; } .field .error { display: none; color: #dc2626; font-size: 13.5px; } .field input[aria-invalid='true'] ~ .error, .field select[aria-invalid='true'] ~ .error { display: block; } .consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: var(--muted); margin: 4px 0 18px; } .consent input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--indigo); flex-shrink: 0; } .form-note { margin-top: 14px; font-size: 14px; color: var(--muted); } .form-success { display: none; padding: 18px; border-radius: var(--radius-sm); background: #fef3c7; color: #92400e; font-weight: 600; } .form-success.is-visible { display: block; } .form-error { display: none; margin-top: 14px; padding: 16px 18px; border-radius: var(--radius-sm); background: #fee2e2; color: #991b1b; font-size: 14.5px; line-height: 1.5; } .form-error.is-visible { display: block; } .form-error a { color: #991b1b; font-weight: 700; text-decoration: underline; } /* ===== Юридические страницы ===== */ .legal { max-width: 780px; } .legal h1 { margin-bottom: 8px; } .legal h2 { font-size: clamp(20px, 2.6vw, 26px); margin-top: 36px; margin-bottom: 12px; } .legal p, .legal li { margin-bottom: 12px; color: var(--muted); } .legal ul, .legal ol { padding-left: 22px; } /* ===== Появление по скроллу ===== */ .reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; } .reveal.is-visible { opacity: 1; transform: none; } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .reveal { opacity: 1; transform: none; transition: none; } } /* ===== Платёжные системы (CSS-only) ===== */ .ps { display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; } .ps__logo { display: inline-grid; place-items: center; height: 32px; padding: 0 10px; border-radius: 6px; background: #fff; border: 1px solid var(--line); font-weight: 800; font-size: 13px; letter-spacing: 0.02em; } .ps__logo--mir { color: #0f754e; } .ps__logo--visa { color: #1a1f71; } .ps__logo--mc { color: #eb001b; } .ps__logo--jcb { color: #0e4c96; } @media (max-width: 720px) { body { font-size: 16px; } .btn { padding: 13px 20px; font-size: 15px; } }