shkola/wp-content/themes/dekart/assets/css/podgotovka-k-shkole.css
2026-06-30 13:31:13 +00:00

3177 lines
81 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;
}
/* 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__num {
flex-shrink: 0;
width: 40px;
height: 40px;
border-radius: 50%;
background: linear-gradient(135deg, #7C3AED, #8B5CF6);
color: #fff;
display: flex;
align-items: center;
justify-content: center;
font-weight: 800;
font-size: 1rem;
box-shadow: 0 3px 10px rgba(124, 58, 237, 0.25);
}
.step strong {
display: block;
font-size: 0.9375rem;
color: var(--navy);
margin-bottom: 2px;
}
.step span:not(.step__num) {
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: wrap;
justify-content: center;
gap: 10px;
max-width: 900px;
margin: 0 auto;
padding: 48px 16px 56px;
overflow: visible;
}
.pksh-anchor-link {
flex-shrink: 0;
padding: 14px 28px;
border-radius: 100px;
background: #FFFFFF;
color: #475569;
font-size: 1rem;
font-weight: 600;
text-decoration: none;
border: 1.5px solid #E2E8F0;
transition: all 0.2s ease;
white-space: nowrap;
}
.pksh-anchor-link:hover,
.pksh-anchor-link:focus-visible {
background: #F5F3FF;
color: #7C3AED;
border-color: #7C3AED;
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(124, 58, 237, 0.15);
}
.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);
}
@media (max-width: 639px) {
.pksh-anchor-nav {
padding: 32px 16px 40px;
gap: 8px;
justify-content: center;
}
.pksh-anchor-link {
padding: 10px 18px;
font-size: 0.875rem;
min-height: 44px;
display: inline-flex;
align-items: center;
}
}
/* ============================================================
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 spacing ── */
.page-pksh .pksh-section + .pksh-section {
/* Sections already have padding: 80px 0; no extra margin needed */
}
.page-pksh .pksh-section + .pksh-anchor-nav,
.page-pksh .pksh-anchor-nav + .pksh-section {
margin-top: 0;
}
.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: center;
gap: 32px;
max-width: 900px;
margin: 0 auto;
padding: 32px 24px;
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: 4rem;
line-height: 1;
}
.guarantee-hero__content {
flex: 1;
}
.guarantee-hero__text {
font-size: 1rem;
line-height: 1.6;
color: var(--slate-600, #475569);
margin: 0 0 18px;
}
.guarantee-hero__text strong {
color: #6D28D9;
}
.guarantee-hero__btn {
padding: 14px 32px;
font-size: 1rem;
}
.guarantee-hero__badges {
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
flex-shrink: 0;
}
@media (max-width: 639px) {
.guarantee-hero {
flex-direction: column;
text-align: center;
gap: 16px;
padding: 24px 20px;
}
.guarantee-hero__badges {
flex-direction: row;
gap: 16px;
}
.guarantee-hero__shield {
font-size: 3rem;
}
}
/* ============================================================
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;
padding: 32px 32px 48px;
}
@media (max-width: 860px) {
.page-pksh .bento[aria-label="Гарантия"] {
padding: 24px 16px 32px;
}
}
/* ============================================================
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;
}
.micro-commit__disclaimer {
font-size: 0.75rem;
color: #94A3B8;
margin: 8px 0 0;
}
@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;
}
/* ═══════════════════════════════════════════════════════════
/* ═══════════════════════════════════════════════════════════
39. HERO — PHOTO-LED REDESIGN v4.0 (May 2026)
Psychology:
- Photo of children → oxytocin (caregiver bond, trust)
- Warm golden gradient → safety, happiness, optimism
- Floating badges like ribbons → achievement, social proof
- Decorative frame → premium feel, anchors the photo
- Sparkles → delight, childhood magic
- Bold purple CTA with glow → urgency, premium action
═══════════════════════════════════════════════════════ */
/* ── Hero container ── */
.page-pksh .hero-pksh {
position: relative;
min-height: 600px;
display: flex;
flex-direction: column;
overflow: hidden;
background: linear-gradient(165deg,
#FFFAF0 0%,
#FFF1E0 20%,
#FFE4C8 40%,
#F3E8FF 70%,
#FEF7E6 100%
);
}
/* ── Background layer ── */
.hero-pksh__bg {
position: absolute;
inset: 0;
z-index: 0;
pointer-events: none;
}
/* ── Blobs — warmer, more visible, more organic motion ── */
.hero-pksh__blob {
position: absolute;
border-radius: 50%;
filter: blur(120px);
will-change: transform;
}
.hero-pksh__blob--1 {
width: 700px; height: 700px;
background: #FFB088;
top: -280px; right: -100px;
opacity: 0.20;
animation: heroBlob1 12s ease-in-out infinite alternate;
}
.hero-pksh__blob--2 {
width: 520px; height: 520px;
background: #FFC857;
bottom: -200px; left: -120px;
opacity: 0.16;
animation: heroBlob2 14s ease-in-out infinite alternate;
}
.hero-pksh__blob--3 {
width: 400px; height: 400px;
background: #D4A0E8;
top: 25%; left: 35%;
opacity: 0.13;
animation: heroBlob3 10s ease-in-out infinite alternate;
}
.hero-pksh__blob--4 {
width: 240px; height: 240px;
background: #FEC8D8;
bottom: 10%; right: 15%;
opacity: 0.12;
animation: heroBlob4 8s ease-in-out infinite alternate;
}
@keyframes heroBlob1 {
0% { transform: translate(0, 0) scale(1); }
100% { transform: translate(-60px, 50px) scale(1.12); }
}
@keyframes heroBlob2 {
0% { transform: translate(0, 0) scale(1); }
100% { transform: translate(50px, -40px) scale(1.08); }
}
@keyframes heroBlob3 {
0% { transform: translate(0, 0) scale(1); opacity: 0.13; }
100% { transform: translate(30px, 20px) scale(1.2); opacity: 0.20; }
}
@keyframes heroBlob4 {
0% { transform: translate(0, 0) scale(1); opacity: 0.12; }
100% { transform: translate(-20px, -15px) scale(1.1); opacity: 0.18; }
}
/* ── Sparkle particles ── */
.hero-pksh__sparkle {
position: absolute;
width: 5px;
height: 5px;
border-radius: 50%;
background: #FFD700;
box-shadow: 0 0 6px rgba(255, 215, 0, 0.4);
animation: sparkleFloat 4s ease-in-out infinite;
pointer-events: none;
}
.hero-pksh__sparkle:nth-child(1) { top: 15%; left: 10%; width: 4px; height: 4px; animation-delay: 0s; background: #D4A0E8; box-shadow: 0 0 8px rgba(212, 160, 232, 0.4); }
.hero-pksh__sparkle:nth-child(2) { top: 30%; right: 18%; width: 6px; height: 6px; animation-delay: 1.2s; }
.hero-pksh__sparkle:nth-child(3) { bottom: 35%; left: 5%; width: 3px; height: 3px; animation-delay: 2s; }
.hero-pksh__sparkle:nth-child(4) { top: 55%; right: 8%; width: 5px; height: 5px; animation-delay: 0.8s; }
.hero-pksh__sparkle:nth-child(5) { bottom: 12%; left: 20%; width: 4px; height: 4px; animation-delay: 3s; }
@keyframes sparkleFloat {
0%, 100% { transform: translateY(0) scale(1); opacity: 0.4; }
50% { transform: translateY(-20px) scale(1.4); opacity: 0.9; }
}
/* ── Dot pattern ── */
.hero-pksh__pattern {
position: absolute;
inset: 0;
background-image: radial-gradient(rgba(255, 154, 118, 0.05) 1px, transparent 1px);
background-size: 32px 32px;
}
/* ── Breadcrumbs ── */
.hero-pksh__breadcrumbs {
position: relative;
z-index: 2;
padding-top: 24px;
}
@media (max-width: 860px) {
.hero-pksh__breadcrumbs {
padding-top: 96px;
}
}
.hero-pksh__breadcrumbs .breadcrumbs a,
.hero-pksh__breadcrumbs .breadcrumbs span {
color: #A0AEC0;
font-weight: 500;
}
.hero-pksh__breadcrumbs .breadcrumbs a:hover {
color: #7C3AED;
}
/* ── Main layout grid ── */
.hero-pksh__layout {
position: relative;
z-index: 1;
flex: 1;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
max-width: 1280px;
margin: 0 auto;
padding: 28px 32px 48px;
width: 100%;
align-items: center;
}
/* ── Left column ── */
.hero-pksh__content {
display: flex;
flex-direction: column;
gap: 16px;
}
/* ── Address pill ── */
.hero-pksh__address {
display: inline-flex;
align-items: center;
gap: 8px;
font-family: 'Roboto', sans-serif;
font-size: 14px;
font-weight: 500;
color: #6B7280;
background: rgba(124, 58, 237, 0.06);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
padding: 8px 18px;
border-radius: 100px;
max-width: fit-content;
border: 1px solid rgba(124, 58, 237, 0.10);
transition: all 0.2s;
}
.hero-pksh__address:hover {
background: rgba(124, 58, 237, 0.10);
border-color: rgba(124, 58, 237, 0.20);
}
.hero-pksh__address svg {
width: 16px; height: 16px;
flex-shrink: 0;
color: #7C3AED;
}
/* ── Headline — solid dark for readability, purple for emotion ── */
.hero-pksh__title {
font-family: 'Oswald', sans-serif;
font-size: 52px;
font-weight: 700;
line-height: 1.06;
color: #1E293B;
margin: 2px 0;
max-width: 600px;
}
/* ── Subtitle ── */
.hero-pksh__subtitle {
font-family: 'Roboto', sans-serif;
font-size: 20px;
font-weight: 400;
line-height: 1.55;
color: #475569;
margin: 0;
max-width: 520px;
}
/* ── Actions ── */
.hero-pksh__actions {
display: flex;
flex-direction: column;
gap: 12px;
margin-top: 10px;
}
/* ── CTA — bold purple with glow ── */
.hero-pksh__cta {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 20px 44px;
font-family: 'Roboto', sans-serif;
font-size: 18px;
font-weight: 700;
color: #fff;
background: linear-gradient(135deg, #7C3AED 0%, #9F6EF0 50%, #B794F4 100%);
border: none;
border-radius: 100px;
cursor: pointer;
transition: transform 0.25s ease, box-shadow 0.25s ease;
box-shadow: 0 8px 32px rgba(124, 58, 237, 0.30), 0 2px 8px rgba(124, 58, 237, 0.15);
max-width: fit-content;
text-transform: none;
letter-spacing: 0.01em;
position: relative;
overflow: hidden;
animation: ctaGlow 3s ease-in-out infinite;
}
@keyframes ctaGlow {
0%, 100% { box-shadow: 0 8px 32px rgba(124, 58, 237, 0.30), 0 2px 8px rgba(124, 58, 237, 0.15); }
50% { box-shadow: 0 12px 48px rgba(124, 58, 237, 0.45), 0 4px 16px rgba(124, 58, 237, 0.25); }
}
.hero-pksh__cta::after {
content: '';
position: absolute;
inset: -2px;
border-radius: 102px;
background: linear-gradient(135deg, rgba(255,255,255,0.15), transparent 50%);
pointer-events: none;
}
.hero-pksh__cta:hover {
transform: translateY(-3px);
box-shadow: 0 14px 40px rgba(124, 58, 237, 0.40), 0 4px 12px rgba(124, 58, 237, 0.20);
}
.hero-pksh__cta:active {
transform: translateY(-1px);
box-shadow: 0 6px 20px rgba(124, 58, 237, 0.25);
}
.hero-pksh__cta-arrow {
display: inline-block;
transition: transform 0.2s;
font-size: 20px;
line-height: 1;
}
.hero-pksh__cta:hover .hero-pksh__cta-arrow {
transform: translateX(4px);
}
/* ── Scarcity badge ── */
.hero-pksh__scarcity {
font-family: 'Roboto', sans-serif;
font-size: 14px;
font-weight: 600;
color: #9A3412;
background: #FFF7ED;
padding: 10px 22px;
border-radius: 100px;
max-width: fit-content;
border: 1.5px solid rgba(249, 115, 22, 0.15);
animation: heroScarcityPulse 3s ease-in-out infinite;
}
.hero-pksh__scarcity strong {
color: #C2410C;
font-weight: 800;
}
@keyframes heroScarcityPulse {
0%, 100% { transform: scale(1); background: #FFF7ED; }
50% { transform: scale(1.02); background: #FFEDD5; }
}
/* ── Trust bar ── */
.hero-pksh__trust {
display: flex;
flex-wrap: wrap;
gap: 20px;
margin-top: 8px;
}
.hero-pksh__trust-item {
display: inline-flex;
align-items: center;
gap: 8px;
font-family: 'Roboto', sans-serif;
font-size: 14px;
color: #64748B;
background: rgba(255,255,255,0.7);
padding: 6px 14px;
border-radius: 100px;
border: 1px solid rgba(0,0,0,0.04);
}
.hero-pksh__trust-icon {
font-size: 16px;
line-height: 1;
}
.hero-pksh__trust-label strong {
color: #1E293B;
font-weight: 700;
}
/* ═══════════════════════════════════════════════════════════
RIGHT COLUMN: Photo of children + floating badges
Photo is the emotional anchor — triggers oxytocin.
Floating badges provide social proof + curiosity.
Decorative frame makes the photo feel premium.
═══════════════════════════════════════════════════════ */
/* ── Visual column container ── */
.hero-pksh__visual {
position: relative;
display: flex;
align-items: center;
justify-content: center;
min-height: 480px;
}
/* ── Purple glow backdrop ── */
.hero-pksh__visual-glow {
position: absolute;
width: 420px;
height: 420px;
border-radius: 50%;
background: radial-gradient(circle, rgba(124,58,237,0.08) 0%, rgba(168,85,247,0.05) 30%, transparent 65%);
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
pointer-events: none;
}
/* ── Photo wrapper — contains frame and ring ── */
.hero-pksh__photo-wrap {
position: relative;
z-index: 2;
display: flex;
align-items: center;
justify-content: center;
}
/* ── Decorative photo frame ── */
.hero-pksh__photo-frame {
position: relative;
width: 380px;
height: 380px;
border-radius: 50%;
overflow: hidden;
box-shadow:
0 20px 60px rgba(124, 58, 237, 0.15),
0 8px 24px rgba(0, 0, 0, 0.08),
inset 0 0 0 4px rgba(255, 255, 255, 0.6);
border: 6px solid rgba(255, 255, 255, 0.8);
animation: photoFloat 6s ease-in-out infinite;
}
.hero-pksh__photo {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
@keyframes photoFloat {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-8px); }
}
/* ── Photo accent ring ── */
.hero-pksh__photo-ring {
position: absolute;
width: 420px;
height: 420px;
border-radius: 50%;
border: 2px solid rgba(124, 58, 237, 0.08);
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
pointer-events: none;
animation: ringPulse 4s ease-in-out infinite;
}
@keyframes ringPulse {
0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
50% { transform: translate(-50%, -50%) scale(1.04); opacity: 0.6; }
}
/* ── Floating badges — ribbon/sticky-note style ── */
.hero-pksh__float {
position: absolute;
display: flex;
align-items: center;
gap: 8px;
padding: 10px 20px;
border-radius: 100px;
font-family: 'Roboto', sans-serif;
font-size: 13px;
font-weight: 600;
white-space: nowrap;
animation: heroFloat 5s ease-in-out infinite;
z-index: 3;
}
.hero-pksh__float--1 {
top: 4%;
right: -8px;
animation-delay: 0s;
background: linear-gradient(135deg, rgba(124,58,237,0.12), rgba(168,85,247,0.08));
color: #6D28D9;
border: 1px solid rgba(124,58,237,0.12);
backdrop-filter: blur(8px);
}
.hero-pksh__float--2 {
bottom: 22%;
left: -24px;
animation-delay: 1.2s;
background: linear-gradient(135deg, rgba(255,183,77,0.18), rgba(255,154,118,0.10));
color: #92400E;
border: 1px solid rgba(255,183,77,0.15);
backdrop-filter: blur(8px);
}
.hero-pksh__float--3 {
bottom: 4%;
right: 6%;
animation-delay: 2.4s;
background: linear-gradient(135deg, rgba(72,187,120,0.15), rgba(104,211,145,0.08));
color: #276749;
border: 1px solid rgba(72,187,120,0.12);
backdrop-filter: blur(8px);
}
.hero-pksh__float--4 {
top: 48%;
left: -28px;
animation-delay: 3.5s;
background: linear-gradient(135deg, rgba(255,215,0,0.20), rgba(255,183,77,0.12));
color: #92400E;
border: 1px solid rgba(255,215,0,0.15);
backdrop-filter: blur(8px);
font-size: 12px;
padding: 8px 16px;
}
.hero-pksh__float--4 strong {
color: #7C3AED;
}
.hero-pksh__float-icon {
font-size: 18px;
line-height: 1;
}
@keyframes heroFloat {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
/* ── Decorative shapes ── */
.hero-pksh__deco {
position: absolute;
border-radius: 50%;
pointer-events: none;
z-index: 1;
}
.hero-pksh__deco--1 {
width: 40px; height: 40px;
background: rgba(255, 183, 77, 0.15);
top: 12%;
left: 2%;
animation: decoFloat 6s ease-in-out infinite;
}
.hero-pksh__deco--2 {
width: 24px; height: 24px;
background: rgba(206, 147, 216, 0.18);
bottom: 40%;
right: -6px;
animation: decoFloat 8s ease-in-out infinite 1s;
}
.hero-pksh__deco--3 {
width: 16px; height: 16px;
background: rgba(255, 154, 118, 0.20);
top: 48%;
left: -8px;
animation: decoFloat 7s ease-in-out infinite 2s;
}
.hero-pksh__deco--4 {
width: 10px; height: 10px;
background: rgba(212, 160, 232, 0.25);
bottom: 15%;
right: -4px;
animation: decoFloat 5s ease-in-out infinite 3s;
}
@keyframes decoFloat {
0%, 100% { transform: translateY(0) scale(1); }
50% { transform: translateY(-12px) scale(1.1); }
}
/* ═══════════════════════════════════════════════════════════
39b. HERO — Responsive (Tablet)
═══════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
.hero-pksh__layout { gap: 36px; padding: 20px 24px 40px; }
.hero-pksh__title { font-size: 40px; }
.hero-pksh__subtitle { font-size: 18px; }
.hero-pksh__photo-frame { width: 300px; height: 300px; }
.hero-pksh__photo-ring { width: 340px; height: 340px; }
.hero-pksh__float--1 { right: 0; }
.hero-pksh__float--2 { left: -16px; }
}
/* ═══════════════════════════════════════════════════════════
39c. HERO — Responsive (Mobile < 860px)
═══════════════════════════════════════════════════════ */
@media (max-width: 860px) {
.page-pksh .hero-pksh { min-height: auto; }
.hero-pksh__layout { grid-template-columns: 1fr; gap: 28px; padding: 12px 16px 40px; }
.hero-pksh__content { gap: 14px; align-items: flex-start; }
.hero-pksh__title { font-size: 32px; max-width: 100%; }
.hero-pksh__subtitle { font-size: 17px; max-width: 100%; }
.hero-pksh__address { font-size: 13px; padding: 6px 14px; }
.hero-pksh__cta { width: 100%; max-width: 100%; font-size: 16px; padding: 16px 24px; min-height: 52px; justify-content: center; text-align: center; }
.hero-pksh__actions { width: 100%; }
.hero-pksh__scarcity { width: 100%; max-width: 100%; text-align: center; font-size: 13px; padding: 8px 16px; box-sizing: border-box; }
.hero-pksh__trust { gap: 10px; }
.hero-pksh__trust-item { font-size: 12px; padding: 4px 10px; gap: 6px; }
.hero-pksh__visual { min-height: auto; order: 1; padding: 20px 0 10px; }
.hero-pksh__photo-frame { width: 220px; height: 220px; border-width: 4px; }
.hero-pksh__photo-ring { width: 250px; height: 250px; }
.hero-pksh__float--1 { top: 4%; right: 4px; font-size: 12px; padding: 6px 14px; }
.hero-pksh__float--2 { display: none; }
.hero-pksh__float--3 { display: none; }
.hero-pksh__float--4 { display: none; }
.hero-pksh__deco--1 { display: none; }
.hero-pksh__deco--2 { display: none; }
.hero-pksh__deco--3 { display: none; }
.hero-pksh__deco--4 { display: none; }
}
/* ═══════════════════════════════════════════════════════════
39d. HERO — Small mobile (< 480px)
═══════════════════════════════════════════════════════ */
@media (max-width: 480px) {
.hero-pksh__title { font-size: 26px; }
.hero-pksh__subtitle { font-size: 15px; }
.hero-pksh__trust { gap: 8px; }
.hero-pksh__trust-item { font-size: 11px; gap: 4px; }
.hero-pksh__photo-frame { width: 180px; height: 180px; border-width: 3px; }
.hero-pksh__photo-ring { width: 210px; height: 210px; }
}
/* ═══════════════════════════════════════════════════════════
39e. HERO — hide old mobile banner (safety net)
═══════════════════════════════════════════════════════ */
.page-pksh .banner__content.mobile {
display: none !important;
}
/* ═══════════════════════════════════════════════════════════
39f. Reduced motion — respect user preference
═══════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
.hero-pksh__blob,
.hero-pksh__sparkle,
.hero-pksh__float,
.hero-pksh__deco,
.hero-pksh__photo-frame,
.hero-pksh__photo-ring,
.hero-pksh__scarcity { animation: none !important; }
.hero-pksh__cta,
.hero-pksh__cta-arrow { transition: none !important; }
}
/* ═══════════════════════════════════════════════════════════
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);
padding: 40px 32px 48px;
position: relative;
}
/* 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;
}
@media (max-width: 860px) {
.page-pksh .bento[aria-label="Социальное доказательство"] {
padding: 28px 16px 36px;
}
}
/* ── 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;
}
}
@media (max-width: 480px) {
.page-pksh .bento[aria-label="Социальное доказательство"] .social-counters {
grid-template-columns: 1fr;
gap: 12px;
}
}
/* ── 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: none;
border-radius: 20px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
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 — constrained 900px content. White bg */
.page-pksh .bento[aria-label="Скачать чек-лист"] {
background: #FFFFFF;
padding: 40px 32px 48px;
}
@media (max-width: 860px) {
.page-pksh .bento[aria-label="Скачать чек-лист"] {
padding: 32px 16px 40px;
}
}
/* ── 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 — white bg with warm border + shadow for depth ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit {
display: flex;
align-items: center;
gap: 40px;
max-width: 900px;
margin: 0 auto;
padding: 36px 32px;
background: #FFFFFF;
border: 1.5px solid #DED3C0;
border-radius: 24px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
}
@media (max-width: 860px) {
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit {
flex-direction: column;
text-align: center;
padding: 28px 20px;
gap: 24px;
border-width: 1px;
}
}
/* ── 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: #FFFFFF;
border: 1.5px solid #DED3C0;
border-radius: 12px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}
@media (max-width: 860px) {
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit__visual {
width: 96px;
height: 126px;
}
}
/* ── Checklist illustration SVG fills the visual container ── */
.page-pksh .micro-commit__svg {
width: 100%;
height: 100%;
display: block;
}
/* ── Content ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit__content {
flex: 1;
}
/* ── Tag "Бесплатно" — purple accent (was orange) ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .bento-label {
color: #7C3AED;
}
/* ── H2 heading — slightly larger for conviction ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .bento-h2 {
font-size: 1.75rem;
color: #1E293B;
}
@media (max-width: 860px) {
.page-pksh .bento[aria-label="Скачать чек-лист"] .bento-h2 {
font-size: 1.375rem;
}
}
/* ── Description text ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .bento-p {
font-size: 1rem;
color: #475569;
line-height: 1.6;
}
/* ── CTA button — accent gradient, enhanced sizing ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit__btn {
margin-top: 8px;
padding: 16px 36px;
font-size: 1rem;
border-radius: 100px;
box-shadow: 0 4px 16px rgba(124, 58, 237, 0.20);
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 24px rgba(124, 58, 237, 0.30);
}
/* ── Disclaimer — subtle on warm card bg ── */
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit__disclaimer {
font-size: 0.75rem;
color: #94A3B8;
margin: 8px 0 0;
}
/* ============================================================
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. */
/* 🔵 WHITE (#FFFFFF) — Checklist (clean card presentation) */
.page-pksh .bento[aria-label="Скачать чек-лист"] {
background-color: #FFFFFF;
}
/* 🔵 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;
}
}
/* ============================================================
53. MICRO-COMMIT — Inline form
============================================================ */
.micro-commit__form {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 12px;
}
.micro-commit__input {
padding: 14px 18px;
font-size: 1rem;
border: 1.5px solid #DED3C0;
border-radius: 12px;
font-family: inherit;
background: #fff;
transition: border-color 0.2s;
width: 100%;
max-width: 360px;
box-sizing: border-box;
}
.micro-commit__input:focus {
outline: none;
border-color: #7C3AED;
box-shadow: 0 0 0 3px rgba(124,58,237,0.1);
}
.micro-commit__form .micro-commit__btn {
margin-top: 4px;
}
@media (max-width: 639px) {
.micro-commit__input {
max-width: 100%;
}
}
/* ============================================================
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) {
/* Hero animations */
.hero-pksh__blob,
.hero-pksh__sparkle,
.hero-pksh__float,
.hero-pksh__deco,
.hero-pksh__photo-frame,
.hero-pksh__photo-ring,
.hero-pksh__scarcity,
.hero-pksh__cta {
animation: none !important;
transition: none !important;
}
/* 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;
}
/* Hero CTA glow */
.hero-pksh__cta {
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;
}
}