shkola/wp-content/themes/dekart/assets/css/podgotovka-k-shkole.css

2571 lines
64 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ============================================================
podgotovka-k-shkole.css — v4.0 (Hero Photo-led Redesign 2026)
Page-specific styles for "Подготовка к школе"
Loaded only via page-podgotovka-k-shkole.php template
============================================================ */
/* ============================================================
1. DESIGN TOKENS (page-pksh scoped)
============================================================ */
.page-pksh {
--bg-deep: #0F172A;
--bg-soft-2026: #F8FAFC;
--bg-warm: #F8F4F0; /* warm cream — primary warm section bg */
--bg-warm-alt: #F5F0E8; /* warm stone — secondary warm section bg */
--navy: #0F172A;
--slate-600: #475569;
--slate-400: #94A3B8;
--radius-2026: 24px;
}
/* ─── Guard: prevent horizontal overflow on mobile ─── */
.page-pksh {
overflow-x: clip;
gap: 0; /* override main's flex gap: 70px — we control spacing via section padding */
}
/* ─── DS Hero heading override — long text smaller on desktop ─── */
.page-pksh .ds-hero__h1 {
font-size: clamp(22px, 3.2vw, 40px);
}
/* Unified purple design system (was orange in v1).
--accent defined in main.css :root (#7C3AED). */
/* ============================================================
2. BANNER — address & scarcity
============================================================ */
.banner__address {
font-family: 'Roboto', sans-serif;
font-size: 16px;
color: #fff;
text-align: center;
margin-bottom: 8px;
letter-spacing: 0.02em;
}
.banner__scarcity {
font-family: 'Roboto', sans-serif;
font-size: 14px;
font-weight: 700;
color: #fff;
text-align: center;
margin: 0 0 10px;
padding: 6px 18px;
background: rgba(124, 58, 237, 0.2);
border-radius: 100px;
backdrop-filter: blur(4px);
display: inline-block;
max-width: fit-content;
}
.banner__scarcity strong {
color: #C084FC;
}
.btn-banner--main {
font-size: 16px;
padding: 14px 32px;
}
@media (max-width: 860px) {
.banner__address {
font-size: 14px;
}
.banner__scarcity {
font-size: 12px;
padding: 4px 14px;
}
.btn-banner--main {
font-size: 14px;
padding: 12px 24px;
width: 100%;
max-width: 320px;
}
}
/* ============================================================
3. BENTO LABELS & HEADINGS
============================================================ */
.bento-label {
display: inline-block;
font-size: 0.8125rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--accent, #7C3AED);
margin-bottom: 8px;
}
.bento-label--light {
color: rgba(255,255,255,0.8);
}
.bento-h2 {
font-size: 1.625rem;
font-weight: 700;
line-height: 1.25;
color: var(--navy);
margin: 0 0 12px;
}
.bento-h2--light {
color: #fff;
}
.bento-p {
font-size: 1rem;
line-height: 1.6;
color: var(--slate-600);
margin: 0 0 20px;
}
@media (min-width: 640px) {
.bento-h2 {
font-size: 1.875rem;
}
}
/* ============================================================
4. STEPS-3 — How classes work
============================================================ */
.steps-3 {
display: flex;
flex-direction: column;
gap: 16px;
margin-top: 16px;
}
.step {
display: flex;
align-items: flex-start;
gap: 14px;
}
.step__icon {
flex-shrink: 0;
width: 32px;
height: 32px;
color: var(--accent, #7C3AED);
margin-top: 2px;
filter: drop-shadow(0 1px 3px rgba(124, 58, 237, 0.2));
}
.step__icon svg {
width: 24px;
height: 24px;
display: block;
}
.step strong {
display: block;
font-size: 0.9375rem;
color: var(--navy);
margin-bottom: 2px;
}
.step span:not(.step__icon) {
display: block;
font-size: 0.875rem;
color: var(--slate-600);
line-height: 1.4;
}
/* ============================================================
5. OBJECTIONS — Why us cards
============================================================ */
/* WHITE cards on warm #F8F4F0 section = bright, contrast resolved.
Warm border + generous shadow replaces lost figure/ground. */
.bento-card--objections {
background: #FFFFFF;
border: 1.5px solid #EDE8DF;
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.07);
}
.bento-card--objections:hover {
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}
.objection-list {
display: flex;
flex-direction: column;
gap: 16px;
}
.objection-item {
display: flex;
gap: 12px;
align-items: flex-start;
}
.objection-item__icon {
flex-shrink: 0;
width: 32px;
height: 32px;
color: var(--accent, #7C3AED);
margin-top: 2px;
filter: drop-shadow(0 1px 3px rgba(124, 58, 237, 0.2));
}
.objection-item strong {
display: block;
font-size: 0.9375rem;
color: var(--navy);
margin-bottom: 2px;
}
.objection-item p {
font-size: 0.875rem;
color: var(--slate-600);
line-height: 1.45;
margin: 0;
}
/* ============================================================
6. RESULTS GRID — Highlight section
============================================================ */
.bento-card--highlight-results {
background: var(--bg-deep);
border-radius: var(--radius-2026);
padding: 32px 24px;
}
@media (min-width: 640px) {
.bento-card--highlight-results {
padding: 40px 32px;
}
}
.results-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-top: 8px;
}
@media (min-width: 640px) {
.results-grid {
grid-template-columns: repeat(4, 1fr);
gap: 24px;
}
}
.result-item {
text-align: center;
}
.result-item__value {
display: block;
font-size: 2.25rem;
font-weight: 800;
color: var(--accent, #7C3AED);
line-height: 1;
margin-bottom: 6px;
}
@media (min-width: 640px) {
.result-item__value {
font-size: 2.75rem;
}
}
.result-item__desc {
display: block;
font-size: 0.8125rem;
color: var(--slate-400);
line-height: 1.35;
}
/* ============================================================
7. GUARANTEE Bento Card
============================================================ */
/* .bento-card--guarantee moved to .guarantee-block--centered */
/* ============================================================
8. (removed — FAQ moved to section 44)
============================================================ */
/* ============================================================
9. PROGRAMS GRID
============================================================ */
.programs-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
margin: 28px 0 20px;
}
/* ── Card container ── */
.program-card {
display: flex;
flex-direction: column;
border-radius: 20px;
overflow: hidden;
background: #fff;
box-shadow: 0 4px 24px rgba(0,0,0,0.07);
transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.program-card:hover {
transform: translateY(-6px);
box-shadow: 0 16px 40px rgba(0,0,0,0.12);
}
/* ── Header ── */
.program-card__header {
padding: 20px 24px;
background: linear-gradient(135deg, var(--accent, #7C3AED), #A855F7);
color: #fff;
display: flex;
align-items: center;
gap: 12px;
}
.program-card__icon {
font-size: 1.6rem;
flex-shrink: 0;
width: 44px;
height: 44px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255,255,255,0.18);
border-radius: 12px;
}
.program-card__title {
margin: 0;
font-size: 1.1rem;
font-weight: 700;
color: #fff;
line-height: 1.25;
}
/* ── Body ── */
.program-card__body {
padding: 24px;
flex-grow: 1;
display: flex;
flex-direction: column;
gap: 18px;
}
/* ── Shared label ── */
.program-card__label {
display: block;
font-size: 0.8rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
color: #64748B;
margin-bottom: 4px;
}
/* ── Intensity ── */
.program-card__intensity {
font-size: 0.95rem;
color: #334155;
background: #F8FAFC;
padding: 10px 14px;
border-radius: 10px;
border-left: 3px solid var(--accent, #7C3AED);
}
/* ── Schedule ── */
.program-card__schedule ul {
list-style: none;
padding: 0;
margin: 0;
}
.program-card__schedule li {
position: relative;
padding-left: 18px;
margin-bottom: 4px;
font-size: 0.9rem;
color: #475569;
line-height: 1.5;
}
.program-card__schedule li::before {
content: "•";
position: absolute;
left: 4px;
color: var(--accent, #7C3AED);
font-weight: 700;
}
/* ── Lesson structure timeline ── */
.program-card__structure .program-card__label {
margin-bottom: 8px;
}
.program-card__timeline {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 6px;
}
.program-card__timeline-item {
display: flex;
align-items: center;
gap: 10px;
padding: 6px 10px;
background: #F8FAFC;
border-radius: 8px;
}
.program-card__timeline-badge {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 60px;
padding: 2px 8px;
font-size: 0.72rem;
font-weight: 700;
color: #fff;
background: var(--accent, #7C3AED);
border-radius: 6px;
white-space: nowrap;
}
.program-card__timeline-name {
font-size: 0.88rem;
color: #334155;
line-height: 1.35;
}
/* ── Includes (✅ list) ── */
.program-card__includes ul {
list-style: none;
padding: 0;
margin: 0;
}
.program-card__includes li {
position: relative;
padding-left: 20px;
margin-bottom: 4px;
font-size: 0.88rem;
color: #475569;
line-height: 1.5;
}
.program-card__includes li::before {
content: "✅";
position: absolute;
left: 0;
font-size: 0.7rem;
}
/* ── Pricing block ── */
.program-card__pricing {
margin-top: auto;
padding-top: 14px;
border-top: 1px solid #E9EDF4;
display: flex;
flex-direction: column;
gap: 4px;
}
.program-card__price-main {
display: flex;
align-items: baseline;
gap: 8px;
}
.program-card__price-value {
font-size: 1.5rem;
font-weight: 800;
color: #0F172A;
line-height: 1.1;
}
.program-card__price-period {
font-size: 0.8rem;
color: #64748B;
}
.program-card__price-single {
font-size: 0.8rem;
color: #94A3B8;
}
/* ── CTA button ── */
.program-card__btn {
display: block;
width: 100%;
padding: 12px;
border: none;
border-radius: 12px;
font-family: inherit;
font-size: 1rem;
font-weight: 700;
color: #fff;
cursor: pointer;
background: var(--accent, #7C3AED);
text-align: center;
text-decoration: none;
transition: opacity 0.15s, transform 0.15s, box-shadow 0.15s;
}
.program-card__btn:hover {
opacity: 0.9;
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(124, 58, 237, 0.3);
}
/* ── Programs grid responsive ── */
@media (max-width: 860px) {
.programs-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 639px) {
.programs-grid {
grid-template-columns: 1fr;
}
}
.programs-note {
text-align: center;
padding: 16px 0 0;
font-size: 0.925rem;
color: var(--slate-600);
}
.programs-note__link {
color: var(--accent, #7C3AED);
font-weight: 700;
text-decoration: underline;
text-underline-offset: 2px;
}
@media (max-width: 639px) {
.programs-grid {
grid-template-columns: 1fr;
gap: 16px;
}
.program-card__header {
padding: 14px 16px;
}
.program-card__title {
font-size: 0.95rem;
}
.program-card__body {
padding: 16px;
}
}
/* ============================================================
10. FINAL CTA
============================================================ */
.final-cta {
text-align: center;
padding: 24px 0;
}
.final-cta__text {
font-size: 1rem;
color: var(--slate-600);
line-height: 1.6;
max-width: 540px;
margin: 0 auto 24px;
}
.final-cta__footnote {
font-size: 0.8125rem;
color: var(--accent, #7C3AED);
font-weight: 600;
margin: 16px 0 0;
}
.btn-primary--large {
padding: 18px 40px;
font-size: 1.125rem;
min-height: 56px;
border-radius: 32px;
}
/* ============================================================
11. MOBILE OVERRIDES
============================================================ */
@media (max-width: 639px) {
.bento-card {
padding: 20px 16px;
border-radius: 20px;
}
.bento-h2 {
font-size: 1.375rem;
}
.result-item__value {
font-size: 1.75rem;
}
}
/* ============================================================
11b. MOBILE — Fixed header compensation
Header is 76px fixed at top. Banner must not hide behind it.
============================================================ */
@media (max-width: 860px) {
.page-pksh .banner {
padding-top: 76px;
margin-top: -76px; /* fixed header compensation */
}
.page-pksh .banner__content.mobile {
margin-top: 0; /* ensure no double gap */
}
}
/* ============================================================
11c. MOBILE — Banner scarcity on mobile wraps nicely
============================================================ */
@media (max-width: 639px) {
.banner__scarcity {
font-size: 12px;
padding: 4px 14px;
margin: 8px auto 0;
}
.btn-banner--main {
font-size: 14px;
padding: 12px 24px;
width: 100%;
max-width: 320px;
}
}
/* ============================================================
12. ANCHOR NAVIGATION
============================================================ */
/* ═══════════════════════════════════════════════════════════════
ANCHOR NAV — redesigned for desktop 2026-05
Problem: links were too small (8×18px padding, 14px font),
nav was 1280px wide (no alignment with 900px content axis of
sections 2-4), vertical rhythm was 12px vs section 80px.
Solution:
• Container → 900px (aligns with Social/Micro/Guarantee axis)
• Flex-wrap 2 rows × 3 pills, centered
• Pills → 14×28px padding, 16px font (body-text scale)
• Purple hover with translateY(-2px) + glow shadow
• Vertical padding 48/56px (matches section rhythm)
═══════════════════════════════════════════════════════════ */
.pksh-anchor-nav {
display: flex;
flex-wrap: nowrap;
justify-content: center;
gap: 10px;
margin: 0;
padding: 0;
overflow: visible;
width: 100%;
}
.pksh-anchor-link {
flex-shrink: 0;
padding: 14px 28px;
border-radius: 100px;
background: #6D28D9;
color: #FFFFFF;
font-size: 1rem;
font-weight: 700;
text-decoration: none;
border: none;
box-shadow: 0 4px 14px rgba(109, 40, 217, 0.25);
transition: all 0.2s ease;
white-space: nowrap;
letter-spacing: 0.02em;
}
.pksh-anchor-link:hover,
.pksh-anchor-link:focus-visible {
background: #7C3AED;
color: #FFFFFF;
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(109, 40, 217, 0.40);
}
.pksh-anchor-link--cta {
background: linear-gradient(135deg, #7C3AED, #8B5CF6);
color: #fff;
border-color: transparent;
}
.pksh-anchor-link--cta:hover,
.pksh-anchor-link--cta:focus-visible {
background: linear-gradient(135deg, #6D28D9, #7C3AED);
color: #fff;
border-color: transparent;
box-shadow: 0 4px 12px rgba(124, 58, 237, 0.3);
}
/* mobile anchor styles moved into @media (max-width: 860px) above */
/* ============================================================
13. FOMO SCARCITY BADGE
============================================================ */
.pksh-fomo {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
margin: 16px auto 0;
padding: 10px 24px;
background: linear-gradient(135deg, #F5F0FF, #EDE4FF);
border-radius: 100px;
max-width: fit-content;
border: 1px solid #D4C4F0;
}
.pksh-fomo__dot {
width: 10px;
height: 10px;
border-radius: 50%;
background: var(--accent, #7C3AED);
flex-shrink: 0;
animation: pksh-pulse 2s infinite;
}
@keyframes pksh-pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.6; transform: scale(1.3); }
}
.pksh-fomo__text {
font-size: 0.875rem;
font-weight: 600;
color: #9A3412;
}
/* ============================================================
14. MOBILE STICKY CTA — only shown on mobile (< 861px)
============================================================ */
.sticky-cta-mobile {
display: none;
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 999;
background: rgba(255,255,255,0.97);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border-top: 1px solid #E2E8F0;
padding: 12px 16px;
box-shadow: 0 -4px 20px rgba(0,0,0,0.08);
animation: stickyFadeIn 0.3s ease;
}
.sticky-cta-mobile__inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
max-width: 500px;
margin: 0 auto;
}
.sticky-cta-mobile__text {
font-size: 0.9375rem;
color: #0F172A;
font-weight: 500;
line-height: 1.3;
}
.sticky-cta-mobile__text strong {
color: #7C3AED;
}
.sticky-cta-mobile__btn {
flex-shrink: 0;
padding: 12px 24px;
font-size: 0.9375rem;
font-weight: 700;
border: none;
border-radius: 32px;
background: linear-gradient(135deg, #7C3AED, #8B5CF6);
color: #fff;
cursor: pointer;
font-family: 'Roboto', sans-serif;
transition: opacity 0.15s, transform 0.15s;
white-space: nowrap;
min-height: 48px;
}
.sticky-cta-mobile__btn:hover {
opacity: 0.95;
transform: translateY(-1px);
}
@media (max-width: 860px) {
.sticky-cta-mobile {
display: block;
}
body {
padding-bottom: 76px !important;
}
}
@media (max-width: 380px) {
.sticky-cta-mobile__text {
font-size: 0.8125rem;
}
.sticky-cta-mobile__btn {
padding: 10px 18px;
font-size: 0.875rem;
}
}
@media (min-width: 861px) {
.sticky-cta-mobile {
display: none !important;
}
}
/* ============================================================
16. OVERRIDE: Teachers section — constrain on mobile
Swiper overflows viewport at <640px
============================================================ */
@media (max-width: 639px) {
.page-pksh .our-teachers .container {
padding-left: 16px !important;
padding-right: 16px !important;
}
.page-pksh .teachers-owl-wrapper {
padding: 0 !important;
}
}
/* ============================================================
18. (removed — program-card__btn moved to base styles)
============================================================ */
/* ============================================================
19. OVERRIDE: Header btn-lilac — use accent
Legacy header button should match brand
============================================================ */
.page-pksh button.btn-lilac,
.page-pksh a.btn-lilac,
.page-pksh .btn-lilac {
background: linear-gradient(135deg, var(--accent, #7C3AED), var(--accent-500, #8B5CF6));
font-family: 'Roboto', sans-serif;
font-weight: 700;
text-transform: none;
border-radius: var(--radius-pill, 28px);
border: none;
}
.page-pksh .btn-lilac:hover,
.page-pksh .btn-lilac:focus {
background: linear-gradient(135deg, var(--accent-hover, #6D28D9), var(--accent-700, #5B21B6));
}
/* ============================================================
15. OVERRIDE: Banner CTA accent
Use accent (purple) for banner CTA to match brand
============================================================ */
.page-pksh .btn-banner--main {
background: linear-gradient(135deg, var(--accent, #7C3AED), var(--accent-500, #8B5CF6));
border: none;
color: #fff;
font-family: 'Roboto', sans-serif;
font-weight: 700;
text-transform: none;
letter-spacing: 0;
}
.page-pksh .btn-banner--main:hover {
background: linear-gradient(135deg, var(--accent-hover, #6D28D9), var(--accent-700, #5B21B6));
}
/* ============================================================
21. DESKTOP LAYOUT — ширину.всё.
Force ALL bento sections to fill max-width (1280px).
Fix: inline-block-like collapse when content narrower.
============================================================ */
.page-pksh .bento {
width: 100%;
}
/* Inner grid items fill their cells (CSS Grid default is stretch) */
.page-pksh .bento__full,
.page-pksh .bento__half,
.page-pksh .bento__wide {
min-width: 0; /* prevent grid overflow from long words */
box-sizing: border-box;
}
/* ── 21b. Social Counters — center content ── */
.page-pksh .social-counters {
width: 100%;
display: flex;
justify-content: space-evenly;
align-items: center;
flex-wrap: wrap;
gap: 24px;
}
.page-pksh .social-counter {
flex: 1 1 180px;
max-width: 280px;
display: flex;
align-items: center;
gap: 14px;
}
/* ── 21c. Programs grid — fill bento width ── */
.page-pksh .programs-grid {
width: 100%;
}
/* ── 21d. Final CTA — full width + centered content ── */
.page-pksh #final-cta .bento__full {
width: 100%;
max-width: 700px;
margin: 0 auto;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
/* ── 21f. Consistent section vertical rhythm ── */
.page-pksh .pksh-section {
padding: 48px 32px;
}
@media (max-width: 860px) {
.page-pksh .pksh-section {
padding: 32px 16px;
}
}
/* (pksh-anchor-nav теперь внутри секции гарантии — отдельный margin не нужен) */
.page-pksh .pksh-section + :not(.pksh-section):not(.pksh-anchor-nav) {
/* map, etc. — no extra spacing */
}
/* ── 21g. Guarantee card ── fill height ── */
/* (removed — guarantee uses .guarantee-block--centered now) */
/* ============================================================
22. DESKTOP — program cards keep 3-col (base grid handles it)
Override removed — base .programs-grid already uses 3 columns.
============================================================ */
/* ============================================================
23. DESKTOP — teacher cards in bento ── constrain within grid
Teachers.php uses .container with padding:20px 90px which
overflows when bento is 1280px. Reduce padding to grid padding.
============================================================ */
.page-pksh #teachers .our-teachers .container {
max-width: 100%;
width: 100%;
padding: 20px 24px 40px;
}
/* Teacher slides — fix fixed width on desktop */
.page-pksh .teachers-owl .swiper-slide {
width: auto !important;
flex: 0 0 236px;
}
/* ============================================================
23b. Price section (legacy) — prevent narrow collapse
The price section uses .container with padding, outside bento grid
============================================================ */
.page-pksh .price .container {
max-width: 1280px;
padding-left: 32px;
padding-right: 32px;
}
/* ============================================================
25. BANNER GUARANTEE MICRO
============================================================ */
.banner__guarantee {
font-family: 'Roboto', sans-serif;
font-size: 13px;
font-weight: 600;
color: #FFD43E;
text-align: center;
margin: 10px 0 0;
padding: 8px 18px;
background: rgba(15, 23, 42, 0.6);
border: 1px solid rgba(255, 212, 62, 0.3);
border-radius: 100px;
display: inline-block;
max-width: fit-content;
backdrop-filter: blur(4px);
}
.banner__guarantee strong {
color: #fff;
}
@media (max-width: 860px) {
.banner__guarantee {
font-size: 11px;
padding: 6px 14px;
}
}
/* ============================================================
26. GUARANTEE HERO BLOCK (Risk Reversal showcase)
Unified to purple design system: warm neutral card ×
purple border/accents. Orange → purple migration.
============================================================ */
.guarantee-hero {
display: flex;
align-items: stretch;
flex-wrap: wrap;
gap: 20px 32px;
max-width: 1000px;
margin: 0 auto;
padding: 40px 36px;
background: linear-gradient(135deg, #F8F4F0 0%, #F0EBE5 50%, #F8F4F0 100%);
border: 2px solid #7C3AED;
border-radius: var(--radius-2026, 24px);
}
.guarantee-hero__shield {
flex-shrink: 0;
font-size: 5rem;
line-height: 1;
}
.guarantee-hero__content {
flex: 1;
display: flex;
flex-direction: column;
align-items: flex-start;
}
.guarantee-hero__text {
font-size: 1rem;
line-height: 1.6;
color: var(--slate-600, #475569);
margin: 0 0 24px;
}
.guarantee-hero__text strong {
color: #6D28D9;
}
/* (btn removed — перенесён в anchor nav) */
.guarantee-hero__badges {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 12px;
flex-shrink: 0;
}
@media (max-width: 860px) {
.guarantee-hero {
flex-direction: column;
text-align: center;
gap: 20px;
padding: 28px 20px;
}
.guarantee-hero__badges {
flex-direction: row;
gap: 16px;
}
.guarantee-hero__shield {
font-size: 3rem;
}
.guarantee-hero__content {
align-items: center;
}
.guarantee-hero__text {
margin-bottom: 20px;
}
.pksh-anchor-nav {
flex-wrap: wrap;
justify-content: center;
gap: 8px;
margin: 0;
}
.pksh-anchor-link {
padding: 10px 18px;
font-size: 0.875rem;
min-height: 44px;
display: inline-flex;
align-items: center;
}
}
/* ============================================================
26b. GUARANTEE HERO — section background + spacing override
Base .pksh-section--alt gives cool #F8FAFC — clashes with
warm palette. White keeps the visual rhythm consistent:
gradient → white → warm stone → white → nav
Padding reduced from 80px → 32/48 for 80px gap rhythm.
============================================================ */
.page-pksh .bento[aria-label="Гарантия"] {
background: #FFFFFF;
}
/* ============================================================
27. MICRO-COMMITMENT (checklist download)
============================================================ */
.micro-commit {
display: flex;
align-items: center;
gap: 40px;
max-width: 900px;
margin: 0 auto;
padding: 32px 24px;
background: #fff;
border-radius: var(--radius-2026, 24px);
box-shadow: 0 8px 32px rgba(0,0,0,0.06);
}
.micro-commit__content {
flex: 1;
}
.micro-commit__visual {
flex-shrink: 0;
width: 120px;
height: 120px;
background: #F5F0FF;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.micro-commit__btn {
padding: 14px 32px;
font-size: 1rem;
margin-top: 8px;
}
@media (max-width: 639px) {
.micro-commit {
flex-direction: column;
text-align: center;
gap: 20px;
padding: 24px 20px;
}
.micro-commit__visual {
width: 80px;
height: 80px;
}
}
/* ============================================================
28. DESKTOP STICKY CTA
============================================================ */
.sticky-cta-desktop {
display: none;
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 999;
background: rgba(255,255,255,0.95);
backdrop-filter: blur(12px);
border-top: 1px solid #E2E8F0;
padding: 12px 32px;
box-shadow: 0 -4px 20px rgba(0,0,0,0.06);
animation: stickyFadeIn 0.3s ease;
}
@keyframes stickyFadeIn {
from { opacity: 0; transform: translateY(16px); }
to { opacity: 1; transform: translateY(0); }
}
.sticky-cta-desktop__inner {
max-width: 1280px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
}
.sticky-cta-desktop__info {
display: flex;
align-items: center;
gap: 16px;
}
.sticky-cta-desktop__badge {
display: inline-block;
padding: 4px 14px;
background: var(--accent, #7C3AED);
color: #fff;
font-size: 0.8125rem;
font-weight: 700;
border-radius: 100px;
}
.sticky-cta-desktop__text {
font-size: 0.9375rem;
color: var(--navy, #0F172A);
font-weight: 500;
}
.sticky-cta-desktop__text strong {
color: var(--accent, #7C3AED);
}
.sticky-cta-desktop__btn {
padding: 14px 32px;
font-size: 1rem;
font-weight: 700;
border: none;
border-radius: 32px;
background: linear-gradient(135deg, var(--accent, #7C3AED), var(--accent-500, #8B5CF6));
color: #fff;
cursor: pointer;
font-family: 'Roboto', sans-serif;
transition: opacity 0.15s, transform 0.15s;
white-space: nowrap;
}
.sticky-cta-desktop__btn:hover {
opacity: 0.95;
transform: translateY(-1px);
}
/* Desktop sticky — show after scrolling past header (~200px) via IntersectionObserver
but default to hidden. Will be shown by JS. */
@media (min-width: 861px) {
.sticky-cta-desktop {
display: block;
transform: translateY(100%);
transition: transform 0.3s ease;
}
.sticky-cta-desktop.visible {
transform: translateY(0);
}
body {
padding-bottom: 0;
}
}
/* ============================================================
29. TAP TARGET SIZE FIX (Mobile 48px minimum)
============================================================ */
@media (max-width: 639px) {
.page-pksh .btn-primary,
.page-pksh .btn-banner--main,
.page-pksh .program-card__btn,
.page-pksh .sticky-cta-btn,
.page-pksh .guarantee-hero__btn,
.page-pksh .micro-commit__btn {
min-height: 48px;
padding-top: 14px;
padding-bottom: 14px;
font-size: 1rem;
}
/* (FAQ trigger removed — FAQ uses box__accordion now) */
/* Social counters — make entire card tappable */
.page-pksh .social-counter {
min-height: 48px;
}
/* Final CTA footnote — ensure sufficient height */
.page-pksh .final-cta__footnote {
padding: 8px 0;
}
}
/* ============================================================
30. SCARCITY ANIMATION & VISUAL WEIGHT
============================================================ */
.banner__scarcity {
animation: scarcityPulse 2s ease-in-out infinite;
}
@keyframes scarcityPulse {
0%, 100% { transform: scale(1); background: rgba(249, 115, 22, 0.25); }
50% { transform: scale(1.03); background: rgba(249, 115, 22, 0.35); }
}
/* Hover on scarcity increases urgency */
.banner__scarcity:hover {
animation-play-state: paused;
background: rgba(249, 115, 22, 0.4);
}
/* ============================================================
31. BANNER ADDRESS — visual enhancement
============================================================ */
.banner__address {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
opacity: 0.9;
}
/* ============================================================
32. FOMO SCARCITY — make more urgent
Replace pulsing dot with stronger indicator
============================================================ */
.pksh-fomo {
cursor: pointer;
transition: transform 0.2s, box-shadow 0.2s;
}
.pksh-fomo:hover {
transform: scale(1.02);
box-shadow: 0 4px 16px rgba(234, 88, 12, 0.15);
}
/* ============================================================
33. TEACHERS — show experience/credentials
Teacher direction already shows. Style enhancement.
============================================================ */
.page-pksh .ourteacher_title {
font-size: 0.8125rem;
min-height: 36px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 0 4px;
}
/* ============================================================
34. (removed — 2-col override conflicting with base 3-col grid)
============================================================ */
/* ============================================================
36. SCROLL PROGRESS INDICATOR (optional enhancement)
============================================================ */
.page-pksh .pksh-scroll-progress {
position: fixed;
top: 0;
left: 0;
height: 3px;
background: linear-gradient(90deg, var(--accent, #7C3AED), #A855F7);
z-index: 10000;
width: 0%;
transition: width 0.1s linear;
}
/* ============================================================
37. MOBILE BANNER OVERRIDE — show CTA inside banner__content
Main.css hides .banner__content .btn-write on mobile.
We moved button INSIDE .banner__content.mobile — unhide.
============================================================ */
@media (max-width: 860px) {
.page-pksh .banner__content.mobile .btn-write {
display: block !important;
width: 100%;
max-width: 320px;
margin: 10px auto 0;
padding: 14px 24px;
font-size: 16px;
border-radius: 32px;
background: linear-gradient(135deg, var(--accent, #7C3AED), var(--accent-500, #8B5CF6));
border: none;
color: #fff;
font-weight: 700;
font-family: 'Roboto', sans-serif;
cursor: pointer;
transition: opacity 0.15s;
}
.page-pksh .banner__content.mobile .btn-write:hover {
opacity: 0.95;
}
.page-pksh .banner__content.mobile .banner__scarcity {
display: block;
margin: 8px auto 0;
font-size: 12px;
}
.page-pksh .banner__content.mobile .banner__guarantee {
display: inline-block;
margin: 8px auto 0;
font-size: 11px;
}
.page-pksh .banner__content.mobile .banner__address {
font-size: 13px;
margin-bottom: 6px;
opacity: 0.85;
}
/* Mobile banner content — ensure proper spacing for stacked elements */
.page-pksh .banner__content.mobile {
padding: 16px 20px;
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
}
.page-pksh .banner__content.mobile .page_title {
font-size: 22px;
line-height: 1.2;
margin: 4px 0;
}
.page-pksh .banner__content.mobile .banner_text {
font-size: 15px;
margin: 4px 0;
}
}
/* ============================================================
38. PKSH ANCHOR NAV — scroll offset for fixed header
============================================================ */
.page-pksh #how-it-works,
.page-pksh #results,
.page-pksh #programs,
.page-pksh #teachers,
.page-pksh #results,
.page-pksh #programs,
.page-pksh #teachers,
.page-pksh #faq,
.page-pksh #final-cta {
scroll-margin-top: 100px;
}
40. SOCIAL PROOF Premium counters redesign v4.0
Psychology:
- White cards with colored tops = achievement ribbons
- Subtle background pattern = premium texture
- Gradient numbers = premium, celebratory
- Hover lift = tactile, encourages engagement
- Warm coordinating colors: purple, gold, green, coral
*/
/* ── Section container warm background ── */
.page-pksh .bento[aria-label="Социальное доказательство"] {
background: var(--bg-warm, #F8F4F0);
position: relative;
}
@media (min-width: 861px) {
.page-pksh .bento[aria-label="Социальное доказательство"] {
padding-bottom: 60px;
}
}
/* Subtle background pattern for depth */
.page-pksh .bento[aria-label="Социальное доказательство"]::before {
content: '';
position: absolute;
inset: 0;
background-image: radial-gradient(rgba(124, 58, 237, 0.03) 1px, transparent 1px);
background-size: 24px 24px;
pointer-events: none;
}
/* ── Grid: 4 columns desktop, 2 tablet, 1 mobile ── */
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counters {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
max-width: 1000px;
margin: 0 auto;
width: 100%;
position: relative;
z-index: 1;
}
@media (max-width: 860px) {
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counters {
grid-template-columns: repeat(2, 1fr);
gap: 14px;
max-width: 500px;
}
}
/* Mobile: 2 columns at all sizes (no 1-column breakpoint) */
/* ── Counter card ── */
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
gap: 0;
padding: 0;
background: #FFFFFF;
border: 1px solid #E2D8CC;
border-radius: 20px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
overflow: hidden;
transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:hover {
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.10);
transform: translateY(-4px);
}
/* ── Card colored top bar ── */
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter__top {
width: 100%;
height: 5px;
flex-shrink: 0;
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:nth-child(1) .social-counter__top {
background: linear-gradient(90deg, #7C3AED, #A855F7);
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:nth-child(2) .social-counter__top {
background: linear-gradient(90deg, #F59E0B, #F97316);
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:nth-child(3) .social-counter__top {
background: linear-gradient(90deg, #10B981, #34D399);
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:nth-child(4) .social-counter__top {
background: linear-gradient(90deg, #EC4899, #F472B6);
}
/* ── Card body ── */
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter__body {
padding: 24px 16px 26px;
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
width: 100%;
}
/* ── Icon ── */
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter__icon {
font-size: 30px;
flex-shrink: 0;
width: 56px;
height: 56px;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, rgba(124,58,237,0.08), rgba(168,85,247,0.05));
border-radius: 16px;
margin-bottom: 2px;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.social-counter:hover .social-counter__icon {
transform: scale(1.08);
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:nth-child(2) .social-counter__icon {
background: linear-gradient(135deg, rgba(245,158,11,0.12), rgba(249,115,22,0.08));
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:nth-child(3) .social-counter__icon {
background: linear-gradient(135deg, rgba(16,185,129,0.10), rgba(52,211,153,0.06));
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:nth-child(4) .social-counter__icon {
background: linear-gradient(135deg, rgba(236,72,153,0.10), rgba(244,114,182,0.06));
}
/* ── Number ── */
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter__number {
font-family: 'Oswald', sans-serif;
font-size: 34px;
font-weight: 700;
color: #1E293B;
line-height: 1;
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:nth-child(1) .social-counter__number {
color: #7C3AED;
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:nth-child(2) .social-counter__number {
color: #D97706;
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:nth-child(3) .social-counter__number {
color: #059669;
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter:nth-child(4) .social-counter__number {
color: #DB2777;
}
/* ── Label ── */
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter__label {
font-family: 'Roboto', sans-serif;
font-size: 14px;
color: #64748B;
line-height: 1.35;
}
@media (max-width: 860px) {
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter__icon {
width: 48px;
height: 48px;
font-size: 24px;
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter__number {
font-size: 28px;
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter__body {
padding: 18px 12px 22px;
}
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counter__label {
font-size: 13px;
}
}
41. MICRO-COMMITMENT warm section, white card, animated SVG
Unlike social counters (white bg × cream cards),
this section alternates: warm bg × white card.
Creates vertical rhythm and visual distinction.
SVG ring: slow rotation = calm, not flashy.
============================================================ */
/* NARROW section — no background (section bg transparent) */
.page-pksh .bento[aria-label="Скачать чек-лист"] {
/* transparent — card handles its own bg */
}
/* ── Full-width sections: warm #F8F4F0 alternation ── */
.page-pksh .bento[aria-label="Как проходят занятия"],
.page-pksh .bento#teachers {
background: #F8F4F0;
}
/* ── Section 6 cards: white on warm, with definition ── */
.page-pksh #how-it-works .bento-card--soft {
background: #FFFFFF;
border: 1.5px solid #EDE8DF;
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.07);
}
.page-pksh #how-it-works .bento-card--soft:hover {
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}
/* ── Card — dark bg, white text, accent button ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit {
display: flex;
align-items: center;
gap: 40px;
max-width: 1000px;
margin: 0 auto;
padding: 40px 36px;
background: #0F172A;
border: 1px solid #1E293B;
border-radius: 24px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.30);
text-align: center;
position: relative;
}
@media (max-width: 860px) {
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit {
flex-direction: column;
text-align: center;
padding: 32px 20px;
gap: 24px;
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
}
}
/* ── Visual — document preview placeholder (replaces circle+ring) ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit__visual {
flex-shrink: 0;
width: 130px;
height: 170px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
background: #1E293B;
border: 1.5px solid #334155;
border-radius: 12px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.20);
}
@media (max-width: 860px) {
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit__visual {
display: none;
}
}
/* ── Checklist illustration SVG fills the visual container ── */
.page-pksh .micro-commit__svg {
width: 100%;
height: 100%;
display: block;
}
/* ── Content — centered now (no form fields) ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit__content {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
}
/* ── Tag "Бесплатно" — rating amber (matches hero metrics) ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .bento-label {
color: #F59E0B;
font-weight: 700;
letter-spacing: 0.03em;
}
/* ── H2 heading — white on dark ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .bento-h2 {
font-size: 1.75rem;
color: #FFFFFF;
}
@media (max-width: 860px) {
.page-pksh .bento[aria-label="Скачать чек-лист"] .bento-h2 {
font-size: 1.375rem;
}
}
/* ── Description text — light gray on dark ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .bento-p {
font-size: 1rem;
color: #CBD5E1;
line-height: 1.6;
}
/* ── Action wrapper — button alone, centered ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit__action {
display: flex;
justify-content: center;
margin-top: 12px;
}
/* ── CTA button — bright accent on dark card ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit__btn {
padding: 16px 40px;
font-size: 1.0625rem;
font-weight: 600;
border-radius: 100px;
background: linear-gradient(135deg, #7C3AED, #A855F7);
color: #FFFFFF;
border: none;
box-shadow: 0 4px 20px rgba(124, 58, 237, 0.35);
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit__btn:hover {
transform: translateY(-2px);
box-shadow: 0 8px 28px rgba(124, 58, 237, 0.50);
}
/* ============================================================
42. REVIEWS — standalone section (camp-style)
lw-card rendering from Carbon Fields complex field.
Same pattern as .camp-reviews on camp page.
============================================================ */
/* ── Section full-width background ── */
.page-pksh .pksh-reviews {
position: relative;
padding: 80px 32px;
max-width: 1280px;
margin: 0 auto;
}
@media (max-width: 768px) {
.page-pksh .pksh-reviews {
padding: 40px 0;
}
}
/* ============================================================
44. CONTACTS — как на странице лагеря
============================================================ */
.page-pksh .pksh-contact {
padding: 0;
background: transparent;
box-shadow: none;
}
.page-pksh .pksh-contact__wrapper {
display: flex;
gap: 30px;
align-items: stretch;
}
.page-pksh .pksh-contact__info {
width: 35%;
display: flex;
flex-direction: column;
gap: 8px;
padding: 32px 0;
}
.page-pksh .pksh-contact__subtitle {
font-size: 15px;
font-weight: 700;
line-height: 1.3;
color: var(--slate-500, #64748B);
text-transform: uppercase;
letter-spacing: 0.06em;
margin-top: 12px;
}
.page-pksh .pksh-contact__subtitle:first-child {
margin-top: 0;
}
.page-pksh .pksh-contact__value {
font-size: clamp(17px, 2vw, 22px);
font-weight: 600;
line-height: 1.3;
color: var(--accent, #7C3AED);
text-decoration: none;
}
.page-pksh .pksh-contact__value:hover {
text-decoration: underline;
}
.page-pksh .pksh-contact__social {
display: flex;
flex-wrap: wrap;
gap: 12px;
}
.page-pksh .pksh-contact__social-link {
display: inline-flex;
align-items: center;
font-size: clamp(16px, 1.8vw, 20px);
font-weight: 600;
color: var(--accent, #7C3AED);
text-decoration: none;
transition: color 0.2s;
position: relative;
}
.page-pksh .pksh-contact__social-link:hover {
color: var(--accent-hover, #6D28D9);
}
.page-pksh .pksh-contact__social-link + .pksh-contact__social-link::before {
content: '·';
margin-right: 12px;
color: var(--slate-400, #94A3B8);
font-weight: 400;
}
.page-pksh .pksh-contact__map {
flex: 1;
border-radius: 24px;
overflow: hidden;
min-height: 400px;
box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}
@media (max-width: 768px) {
.page-pksh .pksh-contact__wrapper {
flex-direction: column-reverse;
}
.page-pksh .pksh-contact__info {
width: 100%;
padding: 0;
}
.page-pksh .pksh-contact__map {
min-height: 280px;
margin: 0 -20px;
border-radius: 0;
box-shadow: none;
}
}
/* ============================================================
45. FAQ — как на странице лагеря (pksh-faq)
============================================================ */
.page-pksh .pksh-faq {
padding: 0;
background: transparent;
box-shadow: none;
}
.page-pksh .pksh-faq__wrapper {
display: flex;
gap: 30px;
}
.page-pksh .pksh-faq__col {
width: 50%;
display: flex;
flex-direction: column;
gap: 0;
border-top: 1px solid var(--slate-200, #E2E8F0);
}
.page-pksh .pksh-faq .box__accordion {
position: relative;
cursor: pointer;
border-bottom: 1px solid var(--slate-200, #E2E8F0);
border-radius: 0;
}
.page-pksh .pksh-faq .box__accordion_label {
position: relative;
padding: 20px 0;
cursor: pointer;
display: flex;
align-items: center;
gap: 20px;
justify-content: space-between;
padding-left: 0;
}
.page-pksh .pksh-faq .box__accordion_label span {
font-size: clamp(17px, 2vw, 21px);
line-height: 1.3;
font-weight: 600;
color: var(--navy, #1c2b2d);
}
.page-pksh .pksh-faq .box__accordion_label svg {
width: 36px;
height: 36px;
padding: 8px;
border-radius: 50%;
background: var(--accent, #7C3AED);
stroke: #fff;
transition: background 0.2s;
flex-shrink: 0;
}
.page-pksh .pksh-faq .box__accordion_label svg g {
stroke: #fff;
}
.page-pksh .pksh-faq .active .box__accordion_label svg {
rotate: 45deg;
background: var(--accent-hover, #6D28D9);
}
.page-pksh .pksh-faq .box__accordion_content {
display: flex;
position: relative;
overflow: hidden;
max-height: 0;
transition: max-height 0.3s;
gap: 20px;
align-items: center;
}
.page-pksh .pksh-faq .box__accordion_content-text {
display: flex;
flex-direction: column;
gap: 10px;
font-size: 16px;
line-height: 1.6;
color: var(--slate-600, #475569);
padding-bottom: 20px;
}
@media (max-width: 768px) {
.page-pksh .pksh-faq__wrapper {
flex-direction: column;
gap: 0;
}
.page-pksh .pksh-faq__col {
width: 100%;
border-top: none;
}
.page-pksh .pksh-faq__col:first-child {
border-top: 1px solid var(--slate-200, #E2E8F0);
}
}
/* ============================================================
46. TEACHERS — camp-style cards
============================================================ */
.page-pksh .pksh-section--teachers {
background: var(--bg-soft-2026, #F8FAFC);
padding-top: 60px;
padding-bottom: 60px;
}
.page-pksh .pksh-section--teachers .bento-h2 {
text-align: center;
}
.pksh-teachers__wrapper {
display: flex;
flex-wrap: wrap;
gap: 24px;
justify-content: center;
}
.pksh-teachers__item {
width: calc(25% - 18px);
min-width: 240px;
}
.pksh-teachers__card {
background: #fff;
border-radius: 20px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(0,0,0,0.06);
transition: transform 0.25s ease, box-shadow 0.25s ease;
display: flex;
flex-direction: column;
height: 100%;
}
.pksh-teachers__card:hover {
transform: translateY(-4px);
box-shadow: 0 8px 24px rgba(0,0,0,0.10);
}
.pksh-teachers__card-top {
background: linear-gradient(135deg, rgba(124, 58, 237, 0.05), rgba(139, 92, 246, 0.08));
display: flex;
justify-content: center;
padding: 28px 24px 18px;
}
.pksh-teachers__photo {
width: 130px;
height: 130px;
border-radius: 50%;
object-fit: cover;
border: 4px solid #fff;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.pksh-teachers__card-body {
padding: 18px 24px 24px;
display: flex;
flex-direction: column;
gap: 8px;
flex: 1;
}
.pksh-teachers__name {
font-size: 1.125rem;
font-weight: 700;
line-height: 1.3;
color: var(--navy, #0F172A);
text-align: center;
margin: 0;
}
.pksh-teachers__subj {
font-size: 0.875rem;
line-height: 1.4;
color: var(--accent, #7C3AED);
text-align: center;
font-weight: 600;
margin: 0;
}
.pksh-teachers__about {
font-size: 0.875rem;
line-height: 1.5;
color: var(--slate-600, #475569);
text-align: center;
margin: 0;
}
@media (max-width: 768px) {
.page-pksh .pksh-section--teachers {
padding-top: 40px;
padding-bottom: 40px;
}
.pksh-teachers__item {
width: calc(50% - 12px);
min-width: 0;
}
.pksh-teachers__wrapper {
gap: 16px;
}
.pksh-teachers__card-top {
padding: 24px 16px 14px;
}
.pksh-teachers__photo {
width: 110px;
height: 110px;
}
.pksh-teachers__card-body {
padding: 14px 18px 20px;
gap: 6px;
}
.pksh-teachers__name {
font-size: 1rem;
}
.pksh-teachers__subj,
.pksh-teachers__about {
font-size: 0.8125rem;
}
}
@media (max-width: 480px) {
.pksh-teachers__item {
width: 100%;
max-width: 320px;
}
}
@supports (scrollbar-width: thin) {
.pksh-teachers__scroll-x {
scrollbar-width: thin;
scrollbar-color: #ccc transparent;
}
}
.pksh-teachers__scroll-x::-webkit-scrollbar {
height: 6px;
}
.pksh-teachers__scroll-x::-webkit-scrollbar-thumb {
background: #ccc;
border-radius: 8px;
}
/* ═══════════════════════════════════════════════════════════
42. BACKGROUND SYSTEM v2.1 — Coherent warm palette
Unified background rhythm across all sections.
PROBLEMS SOLVED:
• White cluster — 3+ white sections in a row
• Warm/cool undertone conflict — #F8F4F0 vs #F8FAFC
• Missing backgrounds — Programs etc had no explicit bg
• Inconsistent rhythm — no visual breathing between sections
DESIGN:
• WARM (#F8F4F0) = rhythm sections — how-it-works,
programs, teachers, final CTA
• WARM-ALT (#F5F0E8) = variety — FAQ
• WHITE = clean backdrop for content cards — checklist,
guarantee hero, results, guarantee standalone
• NAVY = emphasis — results inner card (unchanged)
═══════════════════════════════════════════════════════ */
/* ── 42a. Global --alt override: warm instead of cool ── */
/* Main.css gives .pksh-section--alt: var(--bg-soft) = #F8FAFC (cool gray).
This overrides all --alt sections to warm palette.
NOTE: uses background shorthand (not background-color) because
these sections do NOT have decorative background-image patterns. */
.page-pksh .pksh-section--alt {
background: var(--bg-warm, #F8F4F0);
}
/* ── 42b. Section-by-section background color assignments ── */
/* Uses background-color (not shorthand) to avoid resetting
background-image set in 42d. */
/* 🔵 WARM — Checklist card stands out against warm bg */
/* .page-pksh .bento[aria-label="Скачать чек-лист"] bg set in section 27 override */
/* 🔵 WHITE — Guarantee hero (strong purple border card) */
.page-pksh .bento[aria-label="Гарантия"] {
background-color: #FFFFFF;
}
/* 🔵 WHITE — Results (navy inner card needs clean backdrop) */
.page-pksh #results.bento.pksh-section--alt {
background-color: #FFFFFF;
}
/* 🔵 WHITE — Guarantee standalone (clean) */
.page-pksh #guarantee.bento.pksh-section--alt {
background-color: #FFFFFF;
}
/* 🟤 WARM — Programs (was transparent, now rhythm warm) */
.page-pksh #programs.bento.pksh-section {
background-color: var(--bg-warm, #F8F4F0);
}
/* 🟤 WARM — Final CTA (was cool via --alt, now warm) */
.page-pksh #final-cta.bento.pksh-section--alt {
background-color: var(--bg-warm, #F8F4F0);
}
/* 🟠 WARM-ALT — FAQ (warm stone for variety) */
.page-pksh #faq.bento.pksh-section--alt {
background-color: var(--bg-warm-alt, #F5F0E8);
}
/* ── 42c. Contacts — transparent (let footer handle it) ── */
.page-pksh #pksh-contact.bento.pksh-section {
background-color: transparent;
}
/* ── 42d. Background decorative gradients ── */
/* Adds subtle radial gradient overlays to warm sections
for subtle depth without visual noise.
Safely combines with background-color from 42b. */
.page-pksh #programs.bento.pksh-section {
background-image:
radial-gradient(ellipse at 80% 20%, rgba(124, 58, 237, 0.018) 0%, transparent 55%),
radial-gradient(ellipse at 10% 80%, rgba(0, 0, 0, 0.012) 0%, transparent 50%);
}
.page-pksh #final-cta.bento.pksh-section--alt {
background-image:
radial-gradient(ellipse at 50% 0%, rgba(124, 58, 237, 0.025) 0%, transparent 60%);
}
.page-pksh #faq.bento.pksh-section--alt {
background-image:
radial-gradient(ellipse at 30% 90%, rgba(124, 58, 237, 0.015) 0%, transparent 50%),
radial-gradient(ellipse at 70% 10%, rgba(0, 0, 0, 0.01) 0%, transparent 50%);
}
/* ── 42e. Section separators ── */
/* Subtle light border-top on warm sections following white
to create intentional visual stratification. */
.page-pksh #programs.bento.pksh-section,
.page-pksh #final-cta.bento.pksh-section--alt {
border-top: 1px solid rgba(0, 0, 0, 0.03);
}
/* ── 42f. Mobile-responsive final CTA ── */
@media (max-width: 860px) {
.page-pksh #final-cta.bento.pksh-section--alt {
background-color: var(--bg-warm, #F8F4F0);
background-image:
radial-gradient(ellipse at 50% 0%, rgba(124, 58, 237, 0.025) 0%, transparent 60%);
}
}
/* ============================================================
50. TRUST AUTHORITY — Why Trust Us block
============================================================ */
.trust-authority {
max-width: 1000px;
margin: 0 auto;
text-align: center;
}
.trust-authority__grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
margin-top: 32px;
}
.trust-authority__item {
background: #fff;
border-radius: 20px;
padding: 32px 24px;
text-align: center;
box-shadow: 0 4px 20px rgba(0,0,0,0.05);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.trust-authority__item:hover {
transform: translateY(-4px);
box-shadow: 0 12px 36px rgba(0,0,0,0.10);
}
.trust-authority__icon {
font-size: 2.5rem;
display: block;
margin-bottom: 16px;
}
.trust-authority__title {
display: block;
font-size: 1.125rem;
font-weight: 700;
color: #0F172A;
margin-bottom: 8px;
}
.trust-authority__text {
font-size: 0.9375rem;
color: #475569;
line-height: 1.55;
margin: 0;
}
@media (max-width: 768px) {
.trust-authority__grid {
grid-template-columns: 1fr;
gap: 16px;
}
.trust-authority__item {
padding: 24px 20px;
}
}
/* ============================================================
51. EXTERNAL REVIEWS — Cross-links
============================================================ */
.external-reviews {
max-width: 1000px;
margin: 0 auto;
text-align: center;
}
.external-reviews__grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
margin-top: 32px;
}
.external-reviews__card {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
padding: 24px 16px;
background: #fff;
border-radius: 16px;
text-decoration: none;
box-shadow: 0 2px 12px rgba(0,0,0,0.05);
transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.external-reviews__card:hover {
transform: translateY(-3px);
box-shadow: 0 8px 24px rgba(0,0,0,0.10);
}
.external-reviews__icon {
font-size: 1.5rem;
font-weight: 800;
color: #7C3AED;
width: 48px;
height: 48px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(124,58,237,0.08);
border-radius: 12px;
}
.external-reviews__name {
font-size: 0.9375rem;
font-weight: 600;
color: #0F172A;
}
.external-reviews__rating {
font-size: 0.875rem;
color: #475569;
}
@media (max-width: 768px) {
.external-reviews__grid {
grid-template-columns: repeat(2, 1fr);
gap: 12px;
}
}
/* ============================================================
52. FINAL CTA — Countdown timer
============================================================ */
.final-cta__timer {
margin: 20px auto 24px;
text-align: center;
}
.final-cta__timer-label {
display: block;
font-size: 0.875rem;
font-weight: 600;
color: #7C3AED;
margin-bottom: 12px;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.final-cta__timer-digits {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
}
.final-cta__timer-unit {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
}
.final-cta__timer-num {
font-size: 2.5rem;
font-weight: 800;
color: #0F172A;
line-height: 1;
font-family: 'Oswald', sans-serif;
min-width: 60px;
text-align: center;
background: #F8FAFC;
padding: 8px 12px;
border-radius: 12px;
border: 1px solid #E2E8F0;
}
.final-cta__timer-text {
font-size: 0.75rem;
color: #94A3B8;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.final-cta__timer-sep {
font-size: 2rem;
font-weight: 700;
color: #7C3AED;
margin-top: -20px;
}
@media (max-width: 480px) {
.final-cta__timer-num {
font-size: 1.75rem;
min-width: 44px;
padding: 6px 8px;
}
.final-cta__timer-sep {
font-size: 1.5rem;
}
}
/* ═══════════════════════════════════════════════════════════
54. CONTAINER QUERIES — Card components adapt to container
Support: Chrome 111+, Safari 17+, Firefox 124+
============================================================ */
/* ── Program cards — container context ── */
.page-pksh .programs-grid {
container-type: inline-size;
container-name: programs-grid;
}
@container programs-grid (max-width: 400px) {
.program-card__header {
flex-direction: column;
text-align: center;
padding: 16px;
}
.program-card__pricing {
align-items: center;
text-align: center;
}
.program-card__price-main {
flex-direction: column;
align-items: center;
}
}
/* ── Trust authority cards — container context ── */
.page-pksh .trust-authority__grid {
container-type: inline-size;
container-name: trust-grid;
}
@container trust-grid (max-width: 350px) {
.trust-authority__item {
padding: 20px 16px;
}
}
/* ============================================================
55. REDUCED MOTION — Comprehensive preferences
============================================================ */
@media (prefers-reduced-motion: reduce) {
/* Card hover effects */
.program-card,
.program-card__btn,
.social-counter,
.trust-authority__item,
.external-reviews__card,
.lw-card {
transition: none !important;
transform: none !important;
}
.program-card:hover,
.social-counter:hover,
.trust-authority__item:hover,
.external-reviews__card:hover,
.lw-card:hover {
transform: none !important;
}
/* Sticky elements fade */
.sticky-cta-desktop,
.sticky-cta-mobile {
animation: none !important;
}
/* Scarcity pulse */
.pksh-fomo__dot,
.banner__scarcity {
animation: none !important;
}
/* Ensure elements that depend on scroll-driven animations are static */
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
scroll-behavior: auto !important;
}
}
/* ============================================================
56. IMPROVED SCROLLBAR STYLING — System-wide
============================================================ */
@media (prefers-reduced-motion: no-preference) {
html {
scroll-behavior: smooth;
}
}
/* ============================================================
57. CTA TEST — Бесплатное тестирование перед results
============================================================ */
.page-pksh .bento[aria-label="Запись на тестирование"] {
background: var(--bg-warm, #F8F4F0);
}
.cta-test {
max-width: 800px;
margin: 0 auto;
text-align: center;
padding: 8px 0;
}
.cta-test__badge {
display: inline-block;
padding: 6px 18px;
background: #F59E0B;
color: #FFFFFF;
font-size: 0.875rem;
font-weight: 700;
border-radius: 100px;
margin-bottom: 16px;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.cta-test__title {
margin-bottom: 12px;
}
.cta-test__text {
font-size: 1.0625rem;
line-height: 1.65;
color: var(--slate-600, #475569);
max-width: 680px;
margin: 0 auto 28px;
}
.cta-test__btn {
padding: 18px 44px;
font-size: 1.125rem;
font-weight: 700;
border-radius: 100px;
box-shadow: 0 6px 24px rgba(124, 58, 237, 0.25);
}
.cta-test__btn:hover {
transform: translateY(-2px);
box-shadow: 0 10px 32px rgba(124, 58, 237, 0.35);
}
@media (max-width: 860px) {
.cta-test {
padding: 4px 0;
}
.cta-test__text {
font-size: 1rem;
}
.cta-test__btn {
padding: 16px 32px;
font-size: 1rem;
width: 100%;
}
}