/* ============================================================ Страница КЛАССА начальной школы (page-class.php) Наследует дизайн-токены main.css + базовые стили front-page/school. Акцент: --color-primary #2563EB. Кнопки: .btn-write.btn-primary. ============================================================ */ /* ── Hero (тёмная тема, как ds-hero) ─────────────────────── */ .class-hero { background: radial-gradient(1200px 600px at 85% -10%, rgba(37, 99, 235, 0.35), transparent 60%), radial-gradient(900px 500px at -10% 110%, rgba(37, 99, 235, 0.18), transparent 60%), #0f172a; color: #fff; padding: 72px 0 88px; overflow: hidden; } .class-hero__inner { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 56px; align-items: center; } .class-hero__badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: rgba(37, 99, 235, 0.16); border: 1px solid rgba(37, 99, 235, 0.45); color: #bfdbfe; font-size: 13px; font-weight: 600; letter-spacing: 0.02em; margin-bottom: 20px; } .class-hero__h1 { font-family: var(--font-display); font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 700; line-height: 1.15; margin: 0 0 18px; text-wrap: balance; color: #fff; } .class-hero__subtitle { font-size: clamp(1rem, 1.2vw, 1.125rem); line-height: 1.7; color: #cbd5e1; max-width: 56ch; margin: 0 0 22px; text-wrap: pretty; } .class-hero__social-proof { display: flex; align-items: center; gap: 8px; color: #94a3b8; font-size: 14px; margin-bottom: 28px; } .class-hero__social-proof svg { color: #fbbf24; flex-shrink: 0; } .class-hero__actions { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-bottom: 36px; } .class-hero__cta { min-width: 260px; } .class-hero__phone { color: #e2e8f0; font-size: 18px; font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(148, 163, 184, 0.4); transition: color 0.2s, border-color 0.2s; } .class-hero__phone:hover { color: #fff; border-color: #fff; } .class-hero__stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; max-width: 480px; } .class-hero__stat { background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; } .class-hero__stat-number { font-family: var(--font-display); font-size: 22px; font-weight: 700; color: #fff; white-space: nowrap; } .class-hero__stat-label { font-size: 13px; color: #94a3b8; } .class-hero__visual { position: relative; } .class-hero__visual-glow { position: absolute; inset: -10%; background: radial-gradient(closest-side, rgba(37, 99, 235, 0.35), transparent 70%); z-index: 0; pointer-events: none; } .class-hero__photo { position: relative; z-index: 1; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 24px; border: 1px solid rgba(255, 255, 255, 0.12); box-shadow: 0 24px 60px -20px rgba(0, 0, 0, 0.6); } /* ── Программа ───────────────────────────────────────────── */ .class-program, .class-schedule, .class-testimonials, .class-faq { padding: 72px 0; background: #fff; } .class-program[data-bg="class-program"], .class-testimonials[data-bg="class-testimonials"] { background: #f8fafc; } .class-program__text { max-width: 72ch; } .class-program__grid { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; } .class-program__card { background: #fff; border: 1px solid #e2e8f0; border-radius: 18px; padding: 26px 22px; transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease; } .class-program__card:hover { transform: translateY(-4px); border-color: rgba(37, 99, 235, 0.35); box-shadow: 0 16px 40px -16px rgba(15, 23, 42, 0.16); } .class-program__icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: var(--color-primary-light); margin-bottom: 16px; } .class-program__icon img { filter: saturate(1); } .class-program__card-title { font-family: var(--font-display); font-size: 17px; font-weight: 700; margin: 0 0 8px; color: var(--color-text); } .class-program__card-text { font-size: 14px; line-height: 1.6; color: var(--color-text-muted); margin: 0; } .class-program__gallery { margin-top: 40px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; } .class-program__gallery-item { margin: 0; } .class-program__gallery-item img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; border-radius: 16px; display: block; } .class-program__gallery-item--wide { grid-column: span 2; grid-row: span 2; } .class-program__gallery-item--wide img { aspect-ratio: auto; } /* ── Расписание и стоимость ──────────────────────────────── */ .class-schedule__layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.5fr); gap: 28px; align-items: start; margin-top: 32px; } .class-schedule__table-wrap { overflow-x: auto; border: 1px solid #e2e8f0; border-radius: 18px; } .class-schedule__table { width: 100%; border-collapse: collapse; font-size: 15px; } .class-schedule__table th { text-align: left; padding: 14px 18px; background: #f1f5f9; color: var(--color-text); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; border-bottom: 1px solid #e2e8f0; } .class-schedule__table td { padding: 12px 18px; border-bottom: 1px solid #f1f5f9; color: var(--color-text); } .class-schedule__table tbody tr:last-child td { border-bottom: none; } .class-schedule__table tbody tr { transition: background 0.15s; } .class-schedule__table tbody tr:hover { background: #f8fafc; } .class-price { background: radial-gradient(500px 300px at 100% 0%, rgba(37, 99, 235, 0.14), transparent 60%), #0f172a; color: #fff; border-radius: 18px; padding: 30px 26px; display: flex; flex-direction: column; gap: 10px; position: sticky; top: 24px; } .class-price__label { font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; color: #94a3b8; } .class-price__amount { font-family: var(--font-display); font-size: 28px; font-weight: 700; line-height: 1.2; color: #fff; } .class-price__note { font-size: 14px; color: #cbd5e1; margin: 0 0 12px; } .class-price__cta { width: 100%; } /* ── Отзывы ──────────────────────────────────────────────── */ .class-testimonials__grid { margin-top: 32px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } .class-testimonials__card { background: #fff; border: 1px solid #e2e8f0; border-radius: 18px; padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; } .class-testimonials__stars { display: flex; gap: 3px; color: #fbbf24; } .class-testimonials__text { margin: 0; font-size: 15px; line-height: 1.7; color: var(--color-text); } .class-testimonials__author { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid #f1f5f9; } .class-testimonials__avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; } .class-testimonials__name { font-style: normal; font-weight: 600; font-size: 15px; color: var(--color-text); } /* ── FAQ ──────────────────────────────────────────────────── */ .class-faq__list { margin-top: 28px; max-width: 820px; } .class-faq__item { border: 1px solid #e2e8f0; border-radius: 14px; margin-bottom: 12px; background: #fff; overflow: hidden; } .class-faq__question { cursor: pointer; list-style: none; padding: 18px 22px; font-family: var(--font-display); font-size: 16px; font-weight: 600; color: var(--color-text); display: flex; align-items: center; justify-content: space-between; gap: 16px; transition: background 0.15s; } .class-faq__question::-webkit-details-marker { display: none; } .class-faq__question::after { content: "+"; font-size: 22px; font-weight: 400; color: var(--color-primary); flex-shrink: 0; transition: transform 0.2s ease; } .class-faq__item[open] .class-faq__question { background: #f8fafc; } .class-faq__item[open] .class-faq__question::after { transform: rotate(45deg); } .class-faq__answer { padding: 0 22px 18px; font-size: 15px; line-height: 1.7; color: var(--color-text-muted); } /* ── Финальный CTA ───────────────────────────────────────── */ .class-cta { padding: 72px 0; background: radial-gradient(900px 400px at 50% -20%, rgba(37, 99, 235, 0.3), transparent 60%), #0f172a; color: #fff; text-align: center; } .class-cta__inner { max-width: 720px; margin: 0 auto; } .class-cta__title { font-family: var(--font-display); font-size: clamp(1.5rem, 2.5vw, 2.25rem); font-weight: 700; line-height: 1.2; margin: 0 0 14px; text-wrap: balance; color: #fff; } .class-cta__text { font-size: 1.0625rem; line-height: 1.7; color: #cbd5e1; margin: 0 0 28px; text-wrap: pretty; } .class-cta__actions { display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap; margin-bottom: 22px; } .class-cta__phone { color: #e2e8f0; font-size: 18px; font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(148, 163, 184, 0.4); transition: color 0.2s, border-color 0.2s; } .class-cta__phone:hover { color: #fff; border-color: #fff; } .class-cta__msgs { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; } .class-cta__msgs-label { font-size: 14px; color: #94a3b8; } .class-cta__msg { padding: 8px 16px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.2); color: #e2e8f0; font-size: 14px; font-weight: 600; text-decoration: none; transition: background 0.2s, color 0.2s; } .class-cta__msg:hover { background: rgba(255, 255, 255, 0.1); color: #fff; } /* ── Адаптив ─────────────────────────────────────────────── */ @media (max-width: 1024px) { .class-hero__inner { grid-template-columns: 1fr; gap: 40px; } .class-program__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .class-schedule__layout { grid-template-columns: 1fr; } .class-price { position: static; } } @media (max-width: 768px) { .class-hero, .class-program, .class-schedule, .class-testimonials, .class-faq, .class-cta { padding: 48px 0 56px; } .class-hero__stats { grid-template-columns: 1fr 1fr; } .class-program__grid, .class-testimonials__grid { grid-template-columns: 1fr; } .class-program__gallery { grid-template-columns: 1fr 1fr; } .class-program__gallery-item--wide { grid-column: span 2; grid-row: auto; } .class-program__gallery-item--wide img { aspect-ratio: 4 / 3; } .class-schedule__table th { display: none; } .class-schedule__table td { display: block; padding: 8px 16px; border-bottom: none; } .class-schedule__table td::before { content: attr(data-label); display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #64748b; margin-bottom: 2px; } .class-schedule__table tbody tr { display: block; padding: 8px 0; border-bottom: 1px solid #f1f5f9; } }