Global-2026-07-17

This commit is contained in:
Dekart Deploy Bot 2026-07-17 16:10:56 +00:00
parent 76303d3a3b
commit 0966da4243
16 changed files with 78 additions and 63 deletions

View File

@ -4,7 +4,7 @@
Loaded only via page-podgotovka-k-shkole.php template
*/
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap');
/* Plus Jakarta Sans loaded via preload in header.php */
/*
1. PAGE-SPECIFIC TOKENS
@ -14,13 +14,15 @@
.page-pksh {
--pksh-radius-card: var(--radius-lg, 24px); /* cards & sheets */
/* Radius rule: cards/items=24px (--pksh-radius-card), buttons=28px (--radius-pill), photos=16px, tags/small=12px */
--pksh-bg-warm: #FFFBEB;
--pksh-bg-warm-alt: #FEF3C7;
--pksh-text-warm: #78350F;
/* Section backgrounds — cool neutrals, aligned with --color-primary blue accent */
--color-bg-alt: #F1F5F9;
--pksh-bg-warm: #F0F4F8;
--pksh-bg-warm-alt: #E2E8F0;
--pksh-text-warm: #475569;
--pksh-bg-soft: #F8FAFC;
--pksh-bg-fomo: color-mix(in oklab, var(--color-secondary), white 70%);
--pksh-border-fomo: color-mix(in oklab, var(--color-secondary), transparent 60%);
--pksh-text-fomo: #78350F;
--pksh-bg-fomo: color-mix(in oklab, var(--color-primary), white 85%);
--pksh-border-fomo: color-mix(in oklab, var(--color-primary), transparent 60%);
--pksh-text-fomo: #334155;
--pksh-gradient-btn: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
--pksh-gradient-btn-hover: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary-hover) 100%);
--pksh-gradient-btn-alt: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 100%);
@ -1429,7 +1431,7 @@
padding-top: clamp(48px, 6vw, 80px);
padding-bottom: clamp(48px, 6vw, 80px);
}
.page-pksh .pksh-section--teachers .bento-h2 { text-align: center; }
.page-pksh .pksh-teachers__wrapper {
display: flex;

View File

@ -73,12 +73,12 @@ if ( is_front_page() ) {
<?php endif; ?>
<?php
// Google Fonts
// Google Fonts — preload + swap для Roboto, Oswald, Plus Jakarta Sans
?>
<link rel="preload" as="style"
href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700;900&family=Oswald:wght@400;500;600;700&display=swap"
href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700;900&family=Oswald:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap"
onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700;900&family=Oswald:wght@400;500;600;700&display=swap"></noscript>
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700;900&family=Oswald:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap"></noscript>
<?php

View File

@ -173,6 +173,23 @@ class Pksh_Data {
/**
* Город без предлога (например "Щёлково")
*/
/**
* Город в родительном падеже (школы Щёлкова)
* Берёт из branch_city_genitive, fallback: city_clean с -о→-а
*/
public function get_city_genitive(): string {
$genitive = get_option( 'branch_city_genitive', '' );
if ( ! empty( $genitive ) ) {
return $genitive;
}
$clean = $this->get_city_clean();
// Для русских городов на -ово/-ево/-ино: замена -о → -а
if ( str_ends_with( $clean, 'ово' ) || str_ends_with( $clean, 'ево' ) || str_ends_with( $clean, 'ино' ) || str_ends_with( $clean, 'ыно' ) ) {
return mb_substr( $clean, 0, -1 ) . 'а';
}
return $clean;
}
public function get_city_clean(): string {
if ( ! array_key_exists( 'city_clean', $this->branch ) ) {
$this->branch['city_clean'] = str_replace( array( 'в ', 'В ' ), '', $this->get_city_prep() );
@ -311,7 +328,7 @@ wp_cache_set( $cache_key, $this->branch['social'], 'dekart_branch', DAY_IN_SECON
* Иконки для social counters (порядок соответствует полю)
*/
public static function social_icons(): array {
return array( '🎓', '📅', '⭐', '👩‍🏫' );
return array( 'icon-graduation', 'icon-calendar', 'icon-star-filled', 'icon-teacher' );
}
// ============================================================

View File

@ -14,10 +14,10 @@ $data = Pksh_Data::instance();
$timer_ts = $data->get_honest_deadline();
?>
<section class="bento pksh-section" aria-label="Запись на тестирование">
<div class="bento__full">
<div class="bento__full section-header--left">
<div class="cta-test">
<div class="cta-test__badge">Бесплатно</div>
<h2 class="bento-h2 cta-test__title">Приходите на пробное увидите результат своими глазами</h2>
<h2 class="bento-h2 cta-test__title">Бесплатное пробное занятие подготовка к школе <?php echo esc_html( $data->get_city_prep() ); ?></h2>
<p class="cta-test__text">Запишитесь на <strong>бесплатное расширенное тестирование</strong> и полноценное занятие. Педагог проверит готовность ребёнка к школе, покажет сильные стороны и даст план подготовки. <strong>Всего за 1 визит</strong> без очередей и ожидания.</p>
<?php if ( $timer_ts > 0 ) : ?>

View File

@ -9,11 +9,14 @@
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$data = Pksh_Data::instance();
$city_prep = $data->get_city_prep();
?>
<section class="bento pksh-section" aria-label="Отзывы на внешних площадках">
<div class="bento__full">
<div class="bento__full section-header--left">
<div class="external-reviews">
<h2 class="bento-h2">Нас рекомендуют на площадках</h2>
<h2 class="bento-h2">Нас рекомендуют на площадках отзывы о подготовке к школе <?php echo esc_html( $city_prep ); ?></h2>
<div class="external-reviews__grid">
<a href="https://yandex.ru/maps/org/detskiy_tsentr_dekart/155905693075/" target="_blank" rel="noopener noreferrer" class="external-reviews__card">
<span class="external-reviews__icon">Я</span>

View File

@ -24,7 +24,9 @@ $timer_ts = $data->get_honest_deadline();
<?php endif; ?>
<button class="btn-primary btn-primary--large open-bitrix-form btn-write">Записаться на бесплатное пробное</button>
<p class="final-cta__footnote">🔥 Осталось 2 места в группе 56 лет. Успейте!</p>
<?php if ( ! empty( $data->get_premium_program()['urgency'] ) ) : ?>
<p class="final-cta__footnote"><?php echo esc_html( $data->get_premium_program()['urgency'] ); ?></p>
<?php endif; ?>
</div>
</div>
</section>

View File

@ -20,7 +20,7 @@ $footnote_url = $data->get_subtitle_footnote_link();
<div class="guarantee-hero__shield">🛡️</div>
</div>
<div class="guarantee-hero__content">
<h2 class="bento-h2">Ваш ребёнок начнёт читать через 3 недели</h2>
<h2 class="bento-h2">Ваш ребёнок начнёт читать через 3 недели подготовка к школе с гарантией</h2>
<p class="guarantee-hero__text">Или <strong>мы вернём деньги</strong> и продолжим обучение бесплатно, пока не дойдём до результата.<?php if ( $footnote_url ) : ?><sup><a href="<?php echo esc_url( $footnote_url ); ?>" class="ds-hero__footnote-link" target="_blank" rel="noopener noreferrer">*</a></sup><?php else : ?><sup class="ds-hero__footnote">*</sup><?php endif; ?> Мы — частная школа <strong>с гослицензией</strong>, а не кружок. Отвечаем за результат.</p>
</div>
<nav class="pksh-anchor-nav" aria-label="Навигация по странице">

View File

@ -11,9 +11,9 @@ if ( ! defined( 'ABSPATH' ) ) {
}
?>
<section class="bento pksh-section pksh-section--alt" id="guarantee" aria-label="Гарантия">
<div class="bento__full">
<div class="guarantee-block guarantee-block--centered">
<h2 class="bento-h2">🛡️ Гарантия результата</h2>
<div class="bento__full section-header--left">
<div class="guarantee-block">
<h2 class="bento-h2">Гарантия результата подготовка к школе с гарантией договора</h2>
<p class="guarantee-block__text">
Если через 3 месяца ваш ребёнок не начнёт читать &mdash;
мы вернём деньги <strong>и продолжим обучение бесплатно</strong>,

View File

@ -14,6 +14,7 @@ $data = Pksh_Data::instance();
$opt_address = $data->get_address();
$branch_city_clean = $data->get_city_clean();
$city_prep = $data->get_city_prep();
$h1_hero = $data->get_h1();
$subtitle_hero = $data->get_subtitle();
$ext_review_count = $data->get_ext_review_count();
@ -59,7 +60,7 @@ $hero_metrics = $data->get_social_counters();
<div class="ds-hero__rating-badge">
<span class="ds-hero__rating-stars" aria-hidden="true">★★★★★</span>
<span class="ds-hero__rating-text">4.9 из 5 на основе <?php echo esc_html( $ext_review_count ); ?> отзывов на внешних площадках</span>
<span class="ds-hero__rating-text">4.9 из 5 на основе <?php echo esc_html( $ext_review_count ?: '190' ); ?> отзывов на внешних площадках</span>
</div>
<button class="ds-hero__cta-btn open-bitrix-form">Записаться на бесплатное пробное</button>
@ -80,12 +81,12 @@ $hero_metrics = $data->get_social_counters();
'class' => 'ds-hero__photo',
'loading' => 'eager',
'decoding' => 'async',
'alt' => 'Подготовка к школе в Щёлково — занятия для детей 57 лет',
'alt' => sprintf( 'Подготовка %s — занятия для детей 57 лет', $city_prep ),
) ); ?>
<?php else : ?>
<img class="ds-hero__photo" loading="eager" decoding="async"
src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/girl_and_a_boy.webp' ); ?>"
alt="Подготовка к школе в Щёлково — занятия для детей 57 лет"
alt="<?php echo esc_attr( sprintf( 'Подготовка %s — занятия для детей 57 лет', $city_prep ) ); ?>"
width="689" height="689">
<?php endif; ?>
</div>
@ -104,23 +105,6 @@ $hero_metrics = $data->get_social_counters();
<span class="ds-hero__float-icon"><svg aria-hidden="true" width="24" height="24"><use href="#icon-book"/></svg></span>
<span>Авторская программа</span>
</div>
<div class="ds-hero__float ds-hero__float--4">
<span class="ds-hero__float-icon"><svg aria-hidden="true" width="24" height="24"><use href="#icon-star-filled"/></svg></span>
<span>Рейтинг 4.8</span>
</div>
<div class="ds-hero__deco ds-hero__deco--1" aria-hidden="true"></div>
<div class="ds-hero__deco ds-hero__deco--2" aria-hidden="true"></div>
<div class="ds-hero__deco ds-hero__deco--3" aria-hidden="true"></div>
<div class="ds-hero__deco ds-hero__deco--4" aria-hidden="true"></div>
<div class="ds-hero__sparkles" aria-hidden="true">
<div class="ds-hero__sparkle"></div>
<div class="ds-hero__sparkle"></div>
<div class="ds-hero__sparkle"></div>
<div class="ds-hero__sparkle"></div>
<div class="ds-hero__sparkle"></div>
</div>
</div>
</div>

View File

@ -11,7 +11,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
?>
<section class="bento pksh-section" id="how-it-works" aria-label="Как проходят занятия">
<div class="bento__full section-header--centered">
<div class="bento__full section-header--left">
<span class="bento-label">Как проходят занятия</span>
<h2 class="bento-h2">30 минут игры 1 шаг к школе</h2>
<p class="bento-p">Каждое занятие построено так, что ребёнок <strong>сам хочет</strong> вернуться. Без скучных прописей только игровая методика и смена активностей каждые 7 минут.</p>

View File

@ -11,6 +11,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
$data = Pksh_Data::instance();
$city_clean = $data->get_city_clean();
$base = $data->get_base_program();
$prem = $data->get_premium_program();
?>
@ -91,7 +92,7 @@ $prem = $data->get_premium_program();
<div class="prog-card__trust">
<span><svg aria-hidden="true" width="18" height="18" class="prog-card__inline-icon"><use href="#icon-users"/></svg> до 10 детей</span>
<span><svg aria-hidden="true" width="18" height="18" class="prog-card__inline-icon"><use href="#icon-gift"/></svg> 57 лет</span>
<span><svg aria-hidden="true" width="18" height="18" class="prog-card__inline-icon"><use href="#icon-location-pin"/></svg> очно, Щёлково</span>
<span><svg aria-hidden="true" width="18" height="18" class="prog-card__inline-icon"><use href="#icon-location-pin"/></svg> очно, <?php echo esc_html( $city_clean ); ?></span>
<span><svg aria-hidden="true" width="18" height="18" class="prog-card__inline-icon"><use href="#icon-teacher"/></svg> педагог: стаж 12 лет</span>
</div>
@ -162,7 +163,7 @@ $prem = $data->get_premium_program();
<div class="prog-card__trust">
<span><svg aria-hidden="true" width="18" height="18" class="prog-card__inline-icon"><use href="#icon-users"/></svg> до 10 детей</span>
<span><svg aria-hidden="true" width="18" height="18" class="prog-card__inline-icon"><use href="#icon-gift"/></svg> 57 лет</span>
<span><svg aria-hidden="true" width="18" height="18" class="prog-card__inline-icon"><use href="#icon-location-pin"/></svg> очно, Щёлково</span>
<span><svg aria-hidden="true" width="18" height="18" class="prog-card__inline-icon"><use href="#icon-location-pin"/></svg> очно, <?php echo esc_html( $city_clean ); ?></span>
<span><svg aria-hidden="true" width="18" height="18" class="prog-card__inline-icon"><use href="#icon-teacher"/></svg> педагог: стаж 12 лет</span>
</div>

View File

@ -9,16 +9,19 @@
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$data = Pksh_Data::instance();
$city_gen = $data->get_city_genitive();
?>
<section class="bento pksh-section" id="results" aria-label="Результаты учеников">
<div class="bento__full bento-card bento-card--highlight-results section-header--centered">
<span class="bento-label bento-label--light">Результаты наших учеников</span>
<h2 class="bento-h2 bento-h2--light">К чему мы приводим детей</h2>
<p class="bento-p">95% наших выпускников поступают в школы и лицеи Щёлкова без стресса. Первые результаты через 3 недели.</p>
<p class="bento-p">95% наших выпускников поступают в школы и лицеи <?php echo esc_html( $city_gen ); ?> без стресса. Первые результаты — через 3 недели.</p>
<div class="results-grid">
<div class="result-item">
<span class="result-item__value">95%</span>
<span class="result-item__desc">поступают в школы и лицеи Щёлкова без стресса</span>
<span class="result-item__desc">поступают в школы и лицеи <?php echo esc_html( $city_gen ); ?> без стресса</span>
</div>
<div class="result-item">
<span class="result-item__value">3 нед.</span>

View File

@ -15,7 +15,7 @@ $review_items = $data->get_reviews();
$total_count = count( $review_items );
?>
<section class="bento pksh-section pksh-reviews" id="pksh-reviews" aria-label="Отзывы">
<div class="bento__full section-header--centered">
<div class="bento__full section-header--left">
<span class="bento-label">Отзывы</span>
<h2 class="bento-h2">Что говорят родители</h2>
<p class="bento-p">Родители доверяют нам самое главное делятся впечатлениями о подготовке к школе</p>

View File

@ -20,15 +20,15 @@ $social_icons = Pksh_Data::social_icons();
<div class="social-counters">
<?php if ( ! empty( $social_counters ) ) : ?>
<?php foreach ( $social_counters as $i => $counter ) :
$icon = isset( $social_icons[ $i ] ) ? $social_icons[ $i ] : '';
$number = $counter['counter_number'] ?? '';
$label = $counter['counter_label'] ?? '';
$icon_id = isset( $social_icons[ $i ] ) ? $social_icons[ $i ] : 'icon-star-filled';
$number = $counter['counter_number'] ?? '';
$label = $counter['counter_label'] ?? '';
if ( empty( $number ) ) { continue; }
?>
<div class="social-counter">
<div class="social-counter__top"></div>
<div class="social-counter__body">
<span class="social-counter__icon"><?php echo esc_html( $icon ); ?></span>
<span class="social-counter__icon"><svg aria-hidden="true" width="28" height="28"><use href="#<?php echo esc_attr( $icon_id ); ?>"/></svg></span>
<div class="social-counter__number"><?php echo esc_html( $number ); ?></div>
<div class="social-counter__label"><?php echo esc_html( $label ); ?></div>
</div>
@ -39,7 +39,7 @@ $social_icons = Pksh_Data::social_icons();
<div class="social-counter">
<div class="social-counter__top"></div>
<div class="social-counter__body">
<span class="social-counter__icon">🎓</span>
<span class="social-counter__icon"><svg aria-hidden="true" width="28" height="28"><use href="#icon-graduation"/></svg></span>
<div class="social-counter__number">500+</div>
<div class="social-counter__label">выпускников в топ-школах</div>
</div>
@ -47,7 +47,7 @@ $social_icons = Pksh_Data::social_icons();
<div class="social-counter">
<div class="social-counter__top"></div>
<div class="social-counter__body">
<span class="social-counter__icon">📅</span>
<span class="social-counter__icon"><svg aria-hidden="true" width="28" height="28"><use href="#icon-calendar"/></svg></span>
<div class="social-counter__number">12</div>
<div class="social-counter__label">лет готовим к школе</div>
</div>
@ -55,7 +55,7 @@ $social_icons = Pksh_Data::social_icons();
<div class="social-counter">
<div class="social-counter__top"></div>
<div class="social-counter__body">
<span class="social-counter__icon"></span>
<span class="social-counter__icon"><svg aria-hidden="true" width="28" height="28"><use href="#icon-star-filled"/></svg></span>
<div class="social-counter__number">4.8</div>
<div class="social-counter__label">средняя оценка родителей</div>
</div>
@ -63,7 +63,7 @@ $social_icons = Pksh_Data::social_icons();
<div class="social-counter">
<div class="social-counter__top"></div>
<div class="social-counter__body">
<span class="social-counter__icon">👩‍🏫</span>
<span class="social-counter__icon"><svg aria-hidden="true" width="28" height="28"><use href="#icon-teacher"/></svg></span>
<div class="social-counter__number">15+</div>
<div class="social-counter__label">педагогов высшей категории</div>
</div>

View File

@ -14,7 +14,7 @@ $data = Pksh_Data::instance();
$teachers = $data->get_teachers();
?>
<section class="bento pksh-section pksh-section--teachers" id="teachers" aria-label="Преподаватели">
<div class="bento__full section-header--centered">
<div class="bento__full section-header--left">
<span class="bento-label">Преподаватели</span>
<h2 class="bento-h2">Наши преподаватели практикующие педагоги</h2>
<p class="bento-p">Каждый педагог имеет опыт работы с дошкольниками от 5 лет. Все действующие учителя начальных классов с высшим образованием.</p>
@ -93,7 +93,7 @@ $teachers = $data->get_teachers();
<span class="pksh-teachers__meta-badge"><?php echo esc_html( $t_badge ); ?></span>
<?php endif; ?>
<?php if ( $t_exp ) : ?>
<span class="pksh-teachers__meta-exp">📅 Стаж: <?php echo esc_html( $t_exp ); ?></span>
<span class="pksh-teachers__meta-exp"><svg aria-hidden="true" width="14" height="14" style="vertical-align:-2px;margin-right:4px"><use href="#icon-calendar"/></svg> Стаж: <?php echo esc_html( $t_exp ); ?></span>
<?php endif; ?>
</div>
<button class="pksh-teachers__btn open-bitrix-form">Записаться к этому педагогу</button>

View File

@ -9,24 +9,27 @@
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$data = Pksh_Data::instance();
$city_gen = $data->get_city_genitive();
?>
<section class="bento pksh-section" aria-label="Почему нам доверяют">
<div class="bento__full">
<div class="bento__full section-header--left">
<div class="trust-authority">
<h2 class="bento-h2">Почему родители доверяют нам</h2>
<h2 class="bento-h2">Почему родители доверяют нам подготовка к школе в Декарт</h2>
<div class="trust-authority__grid">
<div class="trust-authority__item">
<span class="trust-authority__icon">📜</span>
<span class="trust-authority__icon"><svg aria-hidden="true" width="28" height="28"><use href="#icon-document"/></svg></span>
<strong class="trust-authority__title">Государственная лицензия</strong>
<p class="trust-authority__text">Имеем право на образовательную деятельность. Вы можете вернуть 13% через налоговый вычет.</p>
</div>
<div class="trust-authority__item">
<span class="trust-authority__icon">🏆</span>
<span class="trust-authority__icon"><svg aria-hidden="true" width="28" height="28"><use href="#icon-star-filled"/></svg></span>
<strong class="trust-authority__title">12 лет на рынке</strong>
<p class="trust-authority__text">С 2014 года готовим детей к школе. Более 500 выпускников успешно учатся в лицеях и гимназиях Щёлкова.</p>
<p class="trust-authority__text">С 2014 года готовим детей к школе. Более 100 выпускников успешно учатся в лицеях и гимназиях <?php echo esc_html( $city_gen ); ?>.</p>
</div>
<div class="trust-authority__item">
<span class="trust-authority__icon">🛡️</span>
<span class="trust-authority__icon"><svg aria-hidden="true" width="28" height="28"><use href="#icon-check-circle"/></svg></span>
<strong class="trust-authority__title">Гарантия результата</strong>
<p class="trust-authority__text">Если через 3 месяца ребёнок не начнёт читать вернём деньги и продолжим обучение бесплатно.</p>
</div>