shkola/wp-content/themes/dekart/page-podgotovka-k-shkole.php
Dekart Deploy Bot 6ed9de7c2c CSS
2026-07-07 18:04:17 +00:00

1088 lines
71 KiB
PHP
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.

<?php
/**
* Template Name: Подготовка к школе (Bento 2026)
*
* Асимметричная Bento-сетка. Нейрокопирайтинг.
* CSS: main.css (секции Bento/Social/Guarantee) + podgotovka-k-shkole.css (переопределения 2026)
*
* @package Dekart
*/
get_header();
$post_id = get_the_ID();
// ─── ДАННЫЕ ОРГАНИЗАЦИИ ───
$opt_address = get_option( 'branch_address' ) ?: carbon_get_theme_option( 'site_address' ) ?: carbon_get_post_meta( $post_id, 'contact_address' ) ?: '';
$opt_coords = get_option( 'branch_coords' ) ?: carbon_get_post_meta( $post_id, 'contact_location' ) ?: '';
$opt_phone = get_option( 'branch_phone' ) ?: carbon_get_theme_option( 'site_phone' ) ?: carbon_get_post_meta( $post_id, 'contact_tel' ) ?: '';
$opt_email = get_option( 'branch_email' ) ?: carbon_get_theme_option( 'site_mail' ) ?: carbon_get_post_meta( $post_id, 'contact_mail' ) ?: '';
$opt_name = get_option( 'branch_name' ) ?: carbon_get_theme_option( 'site_name' ) ?: 'Декарт';
$opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_id, 'social_media' ) ?: [];
?>
<main class="page page-pksh">
<!-- ════════════════════════════════════════════ -->
<!-- Breadcrumbs (outside hero) -->
<!-- ════════════════════════════════════════════ -->
<?php
$branch_city_prep = get_option( 'branch_city_prep', 'в Щёлково' );
$branch_city_clean = str_replace( array( 'в ', 'В ' ), '', $branch_city_prep );
$banner_img_id = carbon_get_post_meta( $post_id, 'banner_image' );
$h1_hero = carbon_get_post_meta( $post_id, 'banner_h1' );
$subtitle_hero = carbon_get_post_meta( $post_id, 'banner_subtitle' );
$hero_metrics = carbon_get_post_meta( $post_id, 'pksh_social_counters' );
$ext_review_count = get_option( 'branch_ext_review_count', '247' );
$hero_phone_clean = preg_replace( '/[^0-9+]/', '', $opt_phone );
?>
<!-- ════════════════════════════════════════════ -->
<!-- Breadcrumbs -->
<!-- ════════════════════════════════════════════ -->
<div class="container breadcrumbs-wrapper">
<ul class="breadcrumbs" itemscope itemtype="https://schema.org/BreadcrumbList" role="navigation" aria-label="Breadcrumb">
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="<?php echo esc_url( home_url( '/' ) ); ?>" itemprop="item" title="Главная">
<span itemprop="name">Главная</span>
</a>
<meta itemprop="position" content="1">
</li>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<span class="last_item" itemprop="name">Подготовка к школе</span>
<meta itemprop="position" content="2">
</li>
</ul>
</div>
<!-- ════════════════════════════════════════════ -->
<!-- Hero (ds-hero: dark bg, white grid) -->
<!-- ════════════════════════════════════════════ -->
<section class="section-bg ds-hero" data-bg="hero" id="ds-hero" aria-label="Подготовка к школе">
<div class="ds-container">
<div class="ds-hero__inner">
<!-- Left: Content -->
<div class="ds-hero__content">
<!-- Address pill -->
<div class="ds-hero__address">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/>
<circle cx="12" cy="10" r="3"/>
</svg>
<span><?php echo esc_html( $opt_address ?: 'ул. Талсинская, 24' ); ?> — центр <?php echo esc_html( $branch_city_clean ?: 'Щёлково' ); ?></span>
</div>
<!-- H1 -->
<h1 class="ds-hero__h1"><?php echo esc_html( $h1_hero ?: 'Подготовка к школе в Щёлково' ); ?></h1>
<!-- Subtitle -->
<?php if ( '' !== $subtitle_hero ) : ?>
<p class="ds-hero__subtitle"><?php echo esc_html( $subtitle_hero ); ?></p>
<?php endif; ?>
<!-- Metrics (из pksh_social_counters) -->
<?php if ( ! empty( $hero_metrics ) && is_array( $hero_metrics ) ) : ?>
<div class="ds-hero__metrics">
<?php foreach ( $hero_metrics as $metric ) :
$num = $metric['counter_number'] ?? '';
$lbl = $metric['counter_label'] ?? '';
if ( empty( $num ) ) continue;
?>
<div class="ds-hero__metric reveal">
<span class="ds-hero__metric-number"><?php echo esc_html( $num ); ?></span>
<span class="ds-hero__metric-label"><?php echo esc_html( $lbl ); ?></span>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
<!-- Rating badge -->
<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>
</div>
<!-- CTA -->
<button class="ds-hero__cta-btn open-bitrix-form">Записаться на бесплатное пробное</button>
<!-- Phone -->
<?php if ( $opt_phone ) : ?>
<p class="ds-hero__phone">Или позвоните: <a href="tel:<?php echo esc_attr( $hero_phone_clean ); ?>" aria-label="Позвонить в школу Декарт: <?php echo esc_attr( $opt_phone ); ?>"><?php echo esc_html( $opt_phone ); ?></a></p>
<?php endif; ?>
</div>
<!-- Right: Visual -->
<div class="ds-hero__visual">
<div class="ds-hero__visual-glow" aria-hidden="true"></div>
<div class="ds-hero__photo-wrap">
<div class="ds-hero__photo-frame">
<?php if ( $banner_img_id ) : ?>
<?php echo wp_get_attachment_image( $banner_img_id, 'full', false, array(
'class' => 'ds-hero__photo',
'loading' => 'eager',
'decoding' => 'async',
'alt' => 'Подготовка к школе в Щёлково — занятия для детей 57 лет',
) ); ?>
<?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 лет"
width="689" height="689">
<?php endif; ?>
</div>
<div class="ds-hero__photo-ring" aria-hidden="true"></div>
</div>
<!-- Floating badges -->
<div class="ds-hero__float ds-hero__float--1">
<span class="ds-hero__float-icon">👩‍🏫</span>
<span>Педагоги с опытом 15+ лет</span>
</div>
<div class="ds-hero__float ds-hero__float--2">
<span class="ds-hero__float-icon">🎮</span>
<span>Игровая методика</span>
</div>
<div class="ds-hero__float ds-hero__float--3">
<span class="ds-hero__float-icon">📚</span>
<span>Авторская программа</span>
</div>
<div class="ds-hero__float ds-hero__float--4">
<span class="ds-hero__float-icon">🌟</span>
<span>Рейтинг 4.8</span>
</div>
<!-- Decorative shapes -->
<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>
<!-- Sparkle particles (обёртка для nth-child) -->
<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>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- Social Proof — Confidence counters (4 cards) -->
<!-- ════════════════════════════════════════════ -->
<?php
$social_counters = carbon_get_post_meta( $post_id, 'pksh_social_counters' );
$social_icons = array( '🎓', '📅', '⭐', '👩‍🏫' );
?>
<section class="bento pksh-section" aria-label="Социальное доказательство">
<div class="bento__full">
<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'] ?? '';
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>
<div class="social-counter__number"><?php echo esc_html( $number ); ?></div>
<div class="social-counter__label"><?php echo esc_html( $label ); ?></div>
</div>
</div>
<?php endforeach; ?>
<?php else : ?>
<!-- Fallback, если поля не заполнены -->
<div class="social-counter">
<div class="social-counter__top"></div>
<div class="social-counter__body">
<span class="social-counter__icon">🎓</span>
<div class="social-counter__number">500+</div>
<div class="social-counter__label">выпускников в топ-школах</div>
</div>
</div>
<div class="social-counter">
<div class="social-counter__top"></div>
<div class="social-counter__body">
<span class="social-counter__icon">📅</span>
<div class="social-counter__number">12</div>
<div class="social-counter__label">лет готовим к школе</div>
</div>
</div>
<div class="social-counter">
<div class="social-counter__top"></div>
<div class="social-counter__body">
<span class="social-counter__icon">⭐</span>
<div class="social-counter__number">4.8</div>
<div class="social-counter__label">средняя оценка родителей</div>
</div>
</div>
<div class="social-counter">
<div class="social-counter__top"></div>
<div class="social-counter__body">
<span class="social-counter__icon">👩‍🏫</span>
<div class="social-counter__number">20+</div>
<div class="social-counter__label">опытных педагогов</div>
</div>
</div>
<?php endif; ?>
</div>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- Micro-Commitment: Checklist download -->
<!-- ════════════════════════════════════════════ -->
<section class="bento pksh-section" aria-label="Скачать чек-лист">
<div class="bento__full bento-card bento-card--checklist">
<div class="micro-commit">
<div class="micro-commit__content">
<span class="bento-label">Бесплатно</span>
<h2 class="bento-h2">Скачайте чек-лист готовности к школе</h2>
<p class="bento-p">10 признаков, что ваш ребёнок готов к 1-му классу. Проверьте за 5 минут — и узнайте, на какие навыки обратить внимание.</p>
<div class="micro-commit__action">
<button class="btn-primary btn-write micro-commit__btn">Получить чек-лист бесплатно</button>
</div>
</div>
<div class="micro-commit__visual">
<svg class="micro-commit__svg" viewBox="0 0 130 170" fill="none" aria-hidden="true">
<rect x="8" y="4" width="114" height="162" rx="8" fill="white" stroke="#DED3C0" stroke-width="1.2"/>
<rect x="24" y="20" width="82" height="4" rx="2" fill="#7C3AED" opacity="0.15"/>
<rect x="24" y="38" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
<path d="M26 44l3 3 5-5" stroke="#7C3AED" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" opacity="0.4"/>
<rect x="44" y="40" width="50" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
<rect x="24" y="62" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
<path d="M26 68l3 3 5-5" stroke="#7C3AED" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" opacity="0.4"/>
<rect x="44" y="64" width="62" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
<rect x="24" y="86" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
<rect x="44" y="88" width="42" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
<rect x="24" y="110" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
<rect x="44" y="112" width="56" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
<g transform="translate(92, 130) rotate(-30)">
<rect x="0" y="0" width="6" height="28" rx="1" fill="#7C3AED" opacity="0.12"/>
<polygon points="0,0 6,0 3,-6" fill="#7C3AED" opacity="0.15"/>
</g>
</svg>
</div>
</div>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- Guarantee Hero + Navigation -->
<!-- ════════════════════════════════════════════ -->
<section class="bento pksh-section" aria-label="Гарантия">
<div class="bento__full">
<div class="guarantee-hero">
<div class="guarantee-hero__badges">
<div class="guarantee-hero__shield">🛡️</div>
</div>
<div class="guarantee-hero__content">
<h2 class="bento-h2">Ваш ребёнок начнёт читать через 3 недели</h2>
<p class="guarantee-hero__text">Или <strong>мы вернём деньги</strong> и продолжим обучение бесплатно, пока не дойдём до результата. Мы — частная школа <strong>с гослицензией</strong>, а не кружок. Отвечаем за результат.</p>
</div>
<nav class="pksh-anchor-nav" aria-label="Навигация по странице">
<a href="#how-it-works" class="pksh-anchor-link">Как проходят занятия</a>
<a href="#results" class="pksh-anchor-link">Результаты</a>
<a href="#programs" class="pksh-anchor-link">Программы</a>
<a href="#teachers" class="pksh-anchor-link">Преподаватели</a>
<a href="#faq" class="pksh-anchor-link">Вопросы</a>
</nav>
</div>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- Bento Row 1: How it works + Why us -->
<!-- ════════════════════════════════════════════ -->
<section class="bento pksh-section" id="how-it-works" aria-label="Как проходят занятия">
<div class="bento__full" style="text-align: center;">
<span class="bento-label">Как проходят занятия</span>
<h2 class="bento-h2">30 минут игры — 1 шаг к школе</h2>
<p class="bento-p">Каждое занятие построено так, что ребёнок <strong>сам хочет</strong> вернуться. Без скучных прописей — только игровая методика и смена активностей каждые 7 минут.</p>
</div>
<div class="bento__half bento-card bento-card--soft">
<span class="bento-label">Структура занятия</span>
<h2 class="bento-h2">Каждый урок — мини-путешествие</h2>
<p class="bento-p">Ребёнок не сидит за партой 30 минут. Мы меняем активность каждые 7 минут — мозг не устаёт, интерес не гаснет.</p>
<div class="steps-3">
<div class="step">
<div class="step__icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
</div>
<div>
<strong>Вход в тему</strong>
<span>Короткая история или загадка — включаем интерес</span>
</div>
</div>
<div class="step">
<div class="step__icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
</div>
<div>
<strong>Игровое задание</strong>
<span>Чтение, счёт, логика — через механику игры</span>
</div>
</div>
<div class="step">
<div class="step__icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
</div>
<div>
<strong>Рефлексия</strong>
<span>Ребёнок сам рассказывает, чему научился</span>
</div>
</div>
</div>
</div>
<div class="bento__half bento-card bento-card--objections">
<span class="bento-label">Почему родители выбирают нас</span>
<h2 class="bento-h2">Три главных вопроса — честные ответы</h2>
<p class="bento-p">Мы не обещаем чуда — мы даём системную подготовку к школе, которую <strong>видят учителя</strong> в первую же неделю.</p>
<div class="objection-list">
<div class="objection-item">
<div class="objection-item__icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
</div>
<div>
<strong>Не перегрузят ли ребёнка?</strong>
<p>Занятия по 3040 минут. Каждые 7 минут — смена активности. Ребёнок не устаёт.</p>
</div>
</div>
<div class="objection-item">
<div class="objection-item__icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
</div>
<div>
<strong>Успеем ли до сентября?</strong>
<p>Да. Наша программа рассчитана на 46 месяцев. Первые результаты — через 3 недели.</p>
</div>
</div>
<div class="objection-item">
<div class="objection-item__icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
</div>
<div>
<strong>Дорого?</strong>
<p>От 600 ₽ за занятие. Первое — бесплатно. А если не понравится — вернём деньги.</p>
</div>
</div>
</div>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- CTA: Бесплатное тестирование + занятие -->
<!-- ════════════════════════════════════════════ -->
<section class="bento pksh-section" aria-label="Запись на тестирование">
<div class="bento__full">
<div class="cta-test">
<div class="cta-test__badge">Бесплатно</div>
<h2 class="bento-h2 cta-test__title">Приходите на пробное — увидите результат своими глазами</h2>
<p class="cta-test__text">Запишитесь на <strong>бесплатное расширенное тестирование</strong> и полноценное занятие. Педагог проверит готовность ребёнка к школе, покажет сильные стороны и даст план подготовки. <strong>Всего за 1 визит</strong> — без очередей и ожидания.</p>
<button class="btn-primary btn-primary--large open-bitrix-form cta-test__btn">Записаться на бесплатное тестирование</button>
</div>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- Bento Row 2: Results / Data -->
<!-- ════════════════════════════════════════════ -->
<section class="bento pksh-section" id="results" aria-label="Результаты учеников">
<div class="bento__full bento-card bento-card--highlight-results" style="text-align: center;">
<span class="bento-label bento-label--light">Результаты наших учеников</span>
<h2 class="bento-h2 bento-h2--light">К чему мы приводим детей</h2>
<p class="bento-p bento-p--light">95% наших выпускников поступают в школы и лицеи Щёлкова без стресса. Первые результаты — через 3 недели.</p>
<div class="results-grid">
<div class="result-item">
<span class="result-item__value">95%</span>
<span class="result-item__desc">поступают в школы и лицеи Щёлкова без стресса</span>
</div>
<div class="result-item">
<span class="result-item__value">3 нед.</span>
<span class="result-item__desc">— первый осмысленный слог у нечитавших детей</span>
</div>
<div class="result-item">
<span class="result-item__value">87%</span>
<span class="result-item__desc">родителей отмечают рост самостоятельности</span>
</div>
<div class="result-item">
<span class="result-item__value">2,5×</span>
<span class="result-item__desc">быстрее адаптируются в первом классе</span>
</div>
</div>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- Bento Row 3: Programs / Курсы -->
<!-- ════════════════════════════════════════════ -->
<?php
// Данные из админки (CF)
$base_name = carbon_get_post_meta( $post_id, 'pksh_prog_base_name' ) ?: 'Уверенный старт';
$base_subname = carbon_get_post_meta( $post_id, 'pksh_prog_base_subname' ) ?: '2 раза в неделю — комфортный темп без перегрузки';
$base_schedule = carbon_get_post_meta( $post_id, 'pksh_prog_base_schedule' ) ?: 'вт, чт — 18:0019:30';
$base_price_sub = carbon_get_post_meta( $post_id, 'pksh_prog_base_price_sub' ) ?: '7 500 ₽';
$base_price_single = carbon_get_post_meta( $post_id, 'pksh_prog_base_price_single' ) ?: '1 000 ₽';
$base_urgency = carbon_get_post_meta( $post_id, 'pksh_prog_base_urgency' ) ?: 'Осталось 2 места в группе';
$prem_name = carbon_get_post_meta( $post_id, 'pksh_prog_prem_name' ) ?: 'Результат за 3 месяца';
$prem_subname = carbon_get_post_meta( $post_id, 'pksh_prog_prem_subname' ) ?: '3 раза в неделю — быстрый прогресс';
$prem_schedule = carbon_get_post_meta( $post_id, 'pksh_prog_prem_schedule' ) ?: 'пн, ср, пт — 16:3018:00';
$prem_price_sub = carbon_get_post_meta( $post_id, 'pksh_prog_prem_price_sub' ) ?: '10 500 ₽';
$prem_price_single = carbon_get_post_meta( $post_id, 'pksh_prog_prem_price_single' ) ?: '1 500 ₽';
$prem_urgency = carbon_get_post_meta( $post_id, 'pksh_prog_prem_urgency' ) ?: 'Осталось 3 места в группе';
?>
<section class="bento pksh-section" id="programs" aria-label="Программы подготовки">
<div class="bento__full" style="text-align: center;">
<span class="bento-label">Программы</span>
<h2 class="bento-h2">Выберите формат подготовки</h2>
<p class="bento-p">Все программы ведут действующие педагоги начальных классов.
Группы до 8 человек — каждому ребёнку уделяем внимание.</p>
<div class="programs-grid">
<!-- ═══ Базовая: Уверенный старт ═══ -->
<div class="prog-card prog-card--base">
<div class="prog-card__header">
<div class="prog-card__header-badge">Первое занятие — бесплатно</div>
<div class="prog-card__header-row">
<div class="prog-card__icon">⭐</div>
<div>
<div class="prog-card__name"><?php echo esc_html( $base_name ); ?></div>
<div class="prog-card__subname"><?php echo esc_html( $base_subname ); ?></div>
</div>
</div>
</div>
<div class="prog-card__body">
<!-- Цена — сразу под шапкой -->
<div class="prog-card__pricing">
<div class="prog-card__price"><?php echo esc_html( $base_price_sub ); ?> <span class="prog-card__price-period">стоимость абонемента за 4 недели</span></div>
<div class="prog-card__price-sub"><?php echo esc_html( $base_price_single ); ?> за занятие — дешевле репетитора</div>
<div class="prog-card__price-single">Разовое занятие вне абонемента: <?php echo esc_html( $base_price_single ); ?></div>
<div class="prog-card__urgency"><?php echo esc_html( $base_urgency ); ?></div>
</div>
<!-- Результат с гарантией -->
<div class="prog-card__result">
<span class="prog-card__result-icon">🎯</span>
<span><strong>Через 2 месяца</strong> — осознанное чтение по слогам</span>
</div>
<!-- Что получит ребёнок -->
<div class="prog-card__block">
<div class="prog-card__block-title">Что получит ребёнок</div>
<ul class="prog-card__checklist">
<li>Чтение по слогам, письмо, математика — готовность к 1-му классу</li>
<li>Поднимает руку, отвечает у доски — без страха</li>
<li>Ребёнок идёт на занятия с удовольствием — игровая методика</li>
<li>Все материалы и пособия включены в стоимость</li>
</ul>
</div>
<!-- Расписание + Структура одним блоком -->
<div class="prog-card__block">
<div class="prog-card__block-title">Расписание</div>
<div class="prog-card__schedule"><?php echo esc_html( $base_schedule ); ?></div>
</div>
<div class="prog-card__block">
<div class="prog-card__block-title">Структура занятия</div>
<div class="prog-card__tags">
<span class="prog-card__tag">Нейрогимнастика</span>
<span class="prog-card__tag">Математика и логика</span>
<span class="prog-card__tag">Активная перемена</span>
<span class="prog-card__tag">Чтение и письмо</span>
<span class="prog-card__tag">Творчество</span>
</div>
</div>
<!-- Доверие -->
<div class="prog-card__trust">
<span>👥 до 8 детей</span>
<span>🎂 57 лет</span>
<span>📍 очно, Щёлково</span>
<span>👩‍🏫 педагог: стаж 12 лет</span>
</div>
<!-- Соцдок-во -->
<div class="prog-card__social-proof">
<span>⭐ 4.8 — рейтинг программы</span>
<span>🎓 500+ детей уже прошли</span>
</div>
<!-- Кнопка -->
<button class="prog-card__btn open-bitrix-form">Попробовать бесплатно</button>
<div class="prog-card__footnote">Тестирование и первое занятие — бесплатно. Результат увидите до оплаты.</div>
</div>
</div>
<!-- ═══ Расширенная: Результат за 3 месяца ═══ -->
<div class="prog-card prog-card--premium">
<div class="prog-card__badge">Популярный&nbsp;выбор · 70% родителей выбирают эту программу</div>
<div class="prog-card__header">
<div class="prog-card__header-badge">Первое занятие — бесплатно</div>
<div class="prog-card__header-row">
<div class="prog-card__icon prog-card__icon--double">⭐⭐</div>
<div>
<div class="prog-card__name"><?php echo esc_html( $prem_name ); ?></div>
<div class="prog-card__subname"><?php echo esc_html( $prem_subname ); ?></div>
</div>
</div>
</div>
<div class="prog-card__body">
<!-- Цена — сразу под шапкой -->
<div class="prog-card__pricing">
<div class="prog-card__price prog-card__price--premium"><?php echo esc_html( $prem_price_sub ); ?> <span class="prog-card__price-period">стоимость абонемента за 4 недели</span></div>
<div class="prog-card__price-sub"><?php echo esc_html( $prem_price_single ); ?> за занятие — дешевле репетитора</div>
<div class="prog-card__price-single">Разовое занятие вне абонемента: <?php echo esc_html( $prem_price_single ); ?></div>
<div class="prog-card__urgency"><?php echo esc_html( $prem_urgency ); ?></div>
</div>
<!-- Результат с гарантией -->
<div class="prog-card__result">
<span class="prog-card__result-icon">🎯</span>
<span><strong>Через 2 месяца</strong> — чтение целыми словами и счёт до 20</span>
</div>
<!-- Что получит ребёнок -->
<div class="prog-card__block">
<div class="prog-card__block-title">Что получит ребёнок</div>
<ul class="prog-card__checklist">
<li>Чтение целыми словами, письмо, математика — готовность к 1-му классу</li>
<li>Поднимает руку, отвечает у доски — без страха</li>
<li>Ребёнок идёт на занятия с удовольствием — игровая методика</li>
<li>Все материалы и пособия включены в стоимость</li>
<li class="prog-card__checklist--plus">✚ На 30% больше практики — результат в 1,5 раза быстрее</li>
<li class="prog-card__checklist--plus">✚ Углублённая подготовка: ребёнок опережает сверстников на полгода</li>
<li class="prog-card__checklist--plus">✚ Творческие задания и проекты — развиваем мышление, а не память</li>
</ul>
</div>
<!-- Сравнение с базовой -->
<div class="prog-card__compare">
<span class="prog-card__compare-icon">📈</span>
<span><strong>На 50% больше занятий</strong> — результат наступает на 3 недели раньше, чем при стандартной нагрузке</span>
</div>
<!-- Расписание + Структура -->
<div class="prog-card__block">
<div class="prog-card__block-title">Расписание</div>
<div class="prog-card__schedule"><?php echo esc_html( $prem_schedule ); ?></div>
</div>
<div class="prog-card__block">
<div class="prog-card__block-title">Структура занятия</div>
<div class="prog-card__tags">
<span class="prog-card__tag">Нейрогимнастика</span>
<span class="prog-card__tag">Математика и логика</span>
<span class="prog-card__tag">Активная перемена</span>
<span class="prog-card__tag">Чтение и письмо</span>
<span class="prog-card__tag">Творчество</span>
</div>
</div>
<!-- Доверие -->
<div class="prog-card__trust">
<span>👥 до 8 детей</span>
<span>🎂 57 лет</span>
<span>📍 очно, Щёлково</span>
<span>👩‍🏫 педагог: стаж 12 лет</span>
</div>
<!-- Соцдок-во -->
<div class="prog-card__social-proof">
<span>⭐ 4.8 — рейтинг программы</span>
<span>🎓 500+ детей уже прошли</span>
</div>
<!-- Кнопка -->
<button class="prog-card__btn open-bitrix-form">Попробовать бесплатно</button>
<div class="prog-card__footnote">Тестирование и первое занятие — бесплатно. Результат увидите до оплаты.</div>
</div>
</div>
</div>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- Bento Row 4: Schedule & Price -->
<!-- ════════════════════════════════════════════ -->
<?php get_template_part('template-parts/block-price'); ?>
<!-- ════════════════════════════════════════════ -->
<!-- Bento Row 4: Teachers (camp-style cards) -->
<!-- ════════════════════════════════════════════ -->
<section class="bento pksh-section pksh-section--teachers" id="teachers" aria-label="Преподаватели">
<div class="bento__full" style="text-align: center;">
<span class="bento-label">Преподаватели</span>
<h2 class="bento-h2">Наши преподаватели — практикующие педагоги</h2>
<p class="bento-p">Каждый педагог имеет опыт работы с дошкольниками от 5 лет. Все — действующие учителя начальных классов с высшим образованием.</p>
</div>
<div class="bento__full">
<div class="pksh-teachers__scroll-x">
<div class="pksh-teachers__wrapper">
<?php
$pksh_teachers = carbon_get_post_meta(get_the_ID(), 'pksh_teachers');
if (is_array($pksh_teachers) && !empty($pksh_teachers)) :
foreach ($pksh_teachers as $item) :
$t_id = $item['teacher_id'] ?? 0;
$t_subj = $item['teacher_subject'] ?? '';
$t_about = $item['teacher_about'] ?? '';
// Получаем данные из CPT teacher
$t_post = $t_id ? get_post($t_id) : null;
$t_name = $t_post ? $t_post->post_title : '—';
// Фото: _teacher_avatar или _thumbnail_id
$t_photo = 0;
if ($t_post) {
$t_photo = get_post_meta($t_id, '_teacher_avatar', true);
if (!$t_photo) {
$t_photo = get_post_meta($t_id, '_thumbnail_id', true);
}
}
// Subject fallback: сначала из CF, потом из CPT _teacher_direction
if (empty($t_subj) && $t_post) {
$t_subj = get_post_meta($t_id, '_teacher_direction', true);
}
// About fallback
if (empty($t_about) && $t_post) {
$t_about = get_post_meta($t_id, '_teacher_about', true);
}
?>
<div class="pksh-teachers__item">
<div class="pksh-teachers__card">
<div class="pksh-teachers__card-top">
<?php if ($t_photo) : ?>
<?php $photo_url = wp_get_attachment_image_url($t_photo, array(280, 280)); ?>
<img class="pksh-teachers__photo" loading="lazy" width="140" height="140"
src="<?php echo esc_url($photo_url ?: get_template_directory_uri() . '/assets/images/no-photo.png'); ?>"
alt="<?php echo esc_attr($t_name); ?>">
<?php else : ?>
<img class="pksh-teachers__photo" loading="lazy" width="140" height="140"
src="<?php echo get_template_directory_uri(); ?>/assets/images/no-photo.png"
alt="<?php echo esc_attr($t_name); ?>">
<?php endif; ?>
</div>
<div class="pksh-teachers__card-body">
<h3 class="pksh-teachers__name"><?php echo esc_html($t_name); ?></h3>
<?php if ($t_subj) : ?>
<p class="pksh-teachers__subj"><?php echo esc_html($t_subj); ?></p>
<?php endif; ?>
<?php if ($t_post) :
$t_desc = get_post_meta($t_id, '_teacher_description', true);
if (!empty($t_desc)) : ?>
<p class="pksh-teachers__desc"><?php echo esc_html(wp_strip_all_tags($t_desc)); ?></p>
<?php endif; ?>
<?php endif; ?>
<div class="pksh-teachers__meta">
<span class="pksh-teachers__meta-badge">👶 Работает с дошкольниками</span>
<?php if ($t_post) :
$exp_years = '';
$start_year = get_post_meta($t_id, '_teacher_start_year', true);
if ($start_year && is_numeric($start_year)) {
$exp = (int)date('Y') - (int)$start_year;
if ($exp > 0) {
$exp_years = $exp . ' лет';
}
}
if ($exp_years) : ?>
<span class="pksh-teachers__meta-exp">📅 Стаж: <?php echo esc_html($exp_years); ?></span>
<?php endif; ?>
<?php endif; ?>
</div>
<button class="pksh-teachers__btn open-bitrix-form">Записаться к этому педагогу</button>
</div>
</div>
</div>
<?php
endforeach;
endif;
?>
</div>
</div>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- Bento Row 5: Guarantee (standalone) -->
<!-- ════════════════════════════════════════════ -->
<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>
<p class="guarantee-block__text">
Если через 3 месяца ваш ребёнок не начнёт читать &mdash;
мы вернём деньги <strong>и продолжим обучение бесплатно</strong>,
пока не дойдём до результата.
</p>
<span class="guarantee-block__badge">Так работают только те, кто уверен в своём методе</span>
</div>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- Bento Row 6: FAQ (на всю ширину, section-bg) -->
<!-- ════════════════════════════════════════════ -->
<section class="section-bg faq-section" id="faq" aria-label="Вопросы и ответы">
<div class="container">
<h2 class="faq-section__title">Часто задаваемые вопросы</h2>
<?php
$faq_items = carbon_get_post_meta($post_id, 'pksh_faq_items');
if (!empty($faq_items) && is_array($faq_items)) :
$col1 = '';
$col2 = '';
$count = 0;
foreach ($faq_items as $item) :
$q = $item['faq_question'] ?? '';
$a = $item['faq_answer'] ?? '';
if (empty($q) && empty($a)) continue;
$accordion = '<div class="box__accordion">'
. '<div class="box__accordion_label" role="button" tabindex="0">'
. '<span>' . esc_html($q) . '</span>'
. '<svg role="presentation" focusable="false" width="24px" height="24px" viewBox="0 0 24 24">'
. '<g stroke="none" stroke-width="2px" fill="none" fill-rule="evenodd" stroke-linecap="square">'
. '<g transform="translate(1.000000, 1.000000)" stroke="currentColor">'
. '<path d="M0,11 L22,11"></path>'
. '<path d="M11,0 L11,22"></path>'
. '</g></g></svg></div>'
. '<div class="box__accordion_content">'
. '<div class="box__accordion_content-text">' . wp_kses_post($a) . '</div>'
. '</div></div>';
if ($count % 2 === 0) {
$col1 .= $accordion;
} else {
$col2 .= $accordion;
}
$count++;
endforeach;
if (!empty($col1) || !empty($col2)) :
?>
<div class="faq-section__wrapper">
<div class="faq-section__col"><?php echo $col1; ?></div>
<div class="faq-section__col"><?php echo $col2; ?></div>
</div>
<?php endif; endif; ?>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- Reviews (lw-card inline, camp-style) -->
<!-- ════════════════════════════════════════════ -->
<section class="pksh-reviews reviews-cards" id="pksh-reviews" aria-label="Отзывы">
<h2 class="bento-h2">Что говорят родители</h2>
<?php
$review_items = carbon_get_post_meta($post_id, 'pksh_reviews_list');
$total_count = is_array($review_items) ? count($review_items) : 0;
if ($total_count > 0) :
$items = array_values($review_items);
$card_idx = 0;
?>
<div class="reviews-cards">
<div class="lw-scroll-x">
<div class="lw-grid lw-grid--3">
<?php foreach ($items as $item) :
$card_idx++;
$author = $item['review_author'] ?? '';
$text = $item['review_text'] ?? '';
$raw_rating = $item['review_rating'] ?? '';
$avatar_id = !empty($item['review_avatar']) ? (int)$item['review_avatar'] : 0;
$teacher = $item['review_teacher'] ?? array();
$date = $item['review_date'] ?? '';
$stars = max(1, min(5, (int)$raw_rating));
$name = $author ?: 'Анонимно';
$is_long = strlen( wp_strip_all_tags( $text ) ) > 350;
$batch = (int) ceil( $card_idx / 12 );
if (empty($text)) continue;
?>
<article class="lw-card reveal" data-batch="<?php echo (int) $batch; ?>">
<div class="lw-flex lw-flex--row lw-gap-12 lw-items-start">
<div class="lw-avatar lw-avatar--48">
<?php if ($avatar_id && wp_attachment_is_image($avatar_id)) : ?>
<?php echo wp_get_attachment_image($avatar_id, [48, 48], false, ['class' => 'lw-avatar__img', 'loading' => 'lazy', 'alt' => esc_attr($name)]); ?>
<?php else : ?>
<div class="lw-avatar lw-avatar--48 lw-avatar--letter">
<span class="lw-avatar__letter"><?php echo esc_html( $name ? mb_strtoupper( mb_substr( $name, 0, 1 ) ) : '?' ); ?></span>
</div>
<?php endif; ?>
</div>
<div class="lw-flex lw-flex--col" style="flex:1; min-width:0;">
<div class="lw-text-dark lw-font-semibold"><?php echo esc_html($name); ?></div>
<?php if ( ! empty( $teacher[0]['id'] ) ) : ?>
<div class="lw-text-xs lw-text-gray">
Преподаватель: <a href="<?php echo esc_url( get_permalink( $teacher[0]['id'] ) ); ?>" class="review-card__teacher-link"><?php echo esc_html( get_the_title( $teacher[0]['id'] ) ); ?></a>
</div>
<?php endif; ?>
<div class="lw-badge lw-badge--verified">✓ Проверенный отзыв</div>
</div>
</div>
<div class="lw-stars lw-mt-8">
<?php for ($i = 1; $i <= 5; $i++) : ?>
<svg class="lw-star <?php echo $i <= $stars ? 'lw-star--filled' : ''; ?>" width="16" height="16" viewBox="0 0 21 19" fill="none">
<path d="M9.58463 1.50884C9.89101 0.602477 11.1729 0.602476 11.4793 1.50884L13.1158 6.35007C13.2531 6.75637 13.6343 7.02985 14.0631 7.02985H19.2721C20.2504 7.02985 20.6467 8.28958 19.8447 8.84971L15.6995 11.7446C15.335 11.9991 15.1822 12.4636 15.3247 12.8847L16.9239 17.6158C17.233 18.5302 16.1954 19.3085 15.404 18.7559L11.1045 15.7533C10.7606 15.5131 10.3033 15.5131 9.95941 15.7533L5.65991 18.7559C4.86857 19.3085 3.83092 18.5302 4.14001 17.6158L5.73926 12.8847C5.8816 12.4636 5.72891 11.9991 5.36448 11.7446L1.21924 8.84971C0.417196 8.28958 0.813532 7.02985 1.79181 7.02985H7.00081C7.42969 7.02985 7.81081 6.75637 7.94815 6.35007L9.58463 1.50884Z" fill="currentColor"/>
</svg>
<?php endfor; ?>
</div>
<div class="lw-card__text lw-mt-8<?php echo $is_long ? ' review-card__text--clamped' : ''; ?>">
<?php echo wp_kses_post($text); ?>
</div>
<div class="review-card__footer">
<?php if ( $is_long ) : ?>
<button class="review-card__btn-more" aria-label="Читать ещё">Читать ещё</button>
<?php endif; ?>
<?php if ( ! empty( $date ) ) : ?>
<span class="review-card__date"><?php echo esc_html( $date ); ?></span>
<?php endif; ?>
</div>
</article>
<?php endforeach; ?>
</div>
</div>
</div>
<?php if ( $total_count > 12 ) : ?>
<div class="reviews-loadmore" id="reviews-loadmore">
<button type="button" class="reviews-loadmore__btn">Показать ещё</button>
</div>
<?php endif; ?>
<?php endif; ?>
</section>
<!-- ════════════════════════════════════════════ -->
<section class="bento pksh-section" aria-label="Почему нам доверяют">
<div class="bento__full">
<div class="trust-authority">
<h2 class="bento-h2">Почему родители доверяют нам</h2>
<div class="trust-authority__grid">
<div class="trust-authority__item">
<span class="trust-authority__icon">📜</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>
<strong class="trust-authority__title">12 лет на рынке</strong>
<p class="trust-authority__text">С 2014 года готовим детей к школе. Более 500 выпускников успешно учатся в лицеях и гимназиях Щёлкова.</p>
</div>
<div class="trust-authority__item">
<span class="trust-authority__icon">🛡️</span>
<strong class="trust-authority__title">Гарантия результата</strong>
<p class="trust-authority__text">Если через 3 месяца ребёнок не начнёт читать — вернём деньги и продолжим обучение бесплатно.</p>
</div>
</div>
</div>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- External Reviews — Social Proof -->
<!-- ════════════════════════════════════════════ -->
<section class="bento pksh-section" aria-label="Отзывы на внешних площадках">
<div class="bento__full">
<div class="external-reviews">
<h2 class="bento-h2">Нас рекомендуют на площадках</h2>
<div class="external-reviews__grid">
<a href="https://yandex.ru/maps/org/detskiy_tsentr_dekart/..." target="_blank" rel="noopener noreferrer" class="external-reviews__card">
<span class="external-reviews__icon">Я</span>
<span class="external-reviews__name">Яндекс.Карты</span>
<span class="external-reviews__rating">⭐ 4.8</span>
</a>
<a href="https://2gis.ru/search/..." target="_blank" rel="noopener noreferrer" class="external-reviews__card">
<span class="external-reviews__icon">2ГИС</span>
<span class="external-reviews__name">2ГИС</span>
<span class="external-reviews__rating">⭐ 4.7</span>
</a>
<a href="https://vk.com/topic-..." target="_blank" rel="noopener noreferrer" class="external-reviews__card">
<span class="external-reviews__icon">ВК</span>
<span class="external-reviews__name">ВКонтакте</span>
<span class="external-reviews__rating">⭐ 4.9</span>
</a>
<a href="https://otzovik.com/..." target="_blank" rel="noopener noreferrer" class="external-reviews__card">
<span class="external-reviews__icon">O</span>
<span class="external-reviews__name">Otzovik</span>
<span class="external-reviews__rating">⭐ 4.6</span>
</a>
</div>
</div>
</div>
</section>
<!-- ════════════════════════════════════════════ -->
<!-- Final CTA — Low Friction + Countdown Timer -->
<!-- ════════════════════════════════════════════ -->
<section class="bento pksh-section" id="final-cta" aria-label="Запись">
<div class="bento__full">
<div class="final-cta">
<h2 class="bento-h2">Первое занятие — бесплатно</h2>
<p class="final-cta__text">Ребёнок познакомится с педагогом, попробует задания. Вы увидите методику своими глазами. Никакой оплаты и договоров.</p>
<!-- Countdown timer -->
<div class="final-cta__timer" id="cta-timer">
<span class="final-cta__timer-label">Скидка 10% действует ещё:</span>
<div class="final-cta__timer-digits">
<div class="final-cta__timer-unit">
<span class="final-cta__timer-num" id="timer-hours">24</span>
<span class="final-cta__timer-text">часов</span>
</div>
<span class="final-cta__timer-sep">:</span>
<div class="final-cta__timer-unit">
<span class="final-cta__timer-num" id="timer-minutes">00</span>
<span class="final-cta__timer-text">минут</span>
</div>
<span class="final-cta__timer-sep">:</span>
<div class="final-cta__timer-unit">
<span class="final-cta__timer-num" id="timer-seconds">00</span>
<span class="final-cta__timer-text">секунд</span>
</div>
</div>
</div>
<button class="btn-primary btn-primary--large open-bitrix-form btn-write">Записаться на бесплатное пробное</button>
<p class="final-cta__footnote">🔥 Осталось 2 места в группе 56 лет. Успейте!</p>
</div>
</div>
</section>
<script>
(function() {
var hours = 24, minutes = 0, seconds = 0;
var hEl = document.getElementById('timer-hours');
var mEl = document.getElementById('timer-minutes');
var sEl = document.getElementById('timer-seconds');
if (!hEl || !mEl || !sEl) return;
function pad(n) { return n < 10 ? '0' + n : '' + n; }
function tick() {
if (hours === 0 && minutes === 0 && seconds === 0) return;
if (seconds === 0) {
if (minutes === 0) { hours--; minutes = 59; seconds = 59; }
else { minutes--; seconds = 59; }
} else { seconds--; }
hEl.textContent = pad(hours);
mEl.textContent = pad(minutes);
sEl.textContent = pad(seconds);
}
setInterval(tick, 1000);
})();
</script>
<!-- ════════════════════════════════════════════ -->
<!-- Contacts — как на странице лагеря -->
<!-- ════════════════════════════════════════════ -->
<section class="bento pksh-section" id="pksh-contact" aria-label="Контакты">
<div class="bento__full pksh-contact">
<h2 class="bento-h2">Наш адрес</h2>
<div class="pksh-contact__wrapper">
<div class="pksh-contact__info">
<?php if (!empty($opt_phone)) : ?>
<div class="pksh-contact__subtitle">Телефон:</div>
<a class="pksh-contact__value" href="tel:+<?php echo preg_replace('/[^0-9]/', '', $opt_phone); ?>"><?php echo esc_html($opt_phone); ?></a>
<?php endif; ?>
<?php if (!empty($opt_email)) : ?>
<div class="pksh-contact__subtitle">Почта:</div>
<a class="pksh-contact__value" href="mailto:<?php echo esc_attr($opt_email); ?>"><?php echo esc_html($opt_email); ?></a>
<?php endif; ?>
<?php if (!empty($opt_address)) : ?>
<div class="pksh-contact__subtitle">Адрес:</div>
<div class="pksh-contact__value"><?php echo esc_html($opt_address); ?></div>
<?php endif; ?>
<?php if (!empty($opt_social_raw) && is_array($opt_social_raw)) : ?>
<div class="pksh-contact__subtitle">Наши соцсети:</div>
<div class="pksh-contact__social">
<?php foreach ($opt_social_raw as $item) :
$link = $item['url'] ?? '';
$name = $item['name'] ?? '';
if ($link) : ?>
<a class="pksh-contact__social-link" href="<?php echo esc_url($link); ?>" target="_blank" rel="noopener noreferrer" title="<?php echo esc_attr($name); ?>">
<?php echo esc_html($name ?: $link); ?>
</a>
<?php endif; ?>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
<div class="pksh-contact__map">
<div id="ya-map" style="width: 100%; height: 100%; min-height: 400px;"></div>
</div>
</div>
</div>
</section>
<script>
(function() {
var mapCoords = [<?php echo esc_js($opt_coords ?: '55.7558,37.6173'); ?>];
var mapLabel = '<?php echo esc_js($opt_name); ?>';
var mapLoaded = false;
var apiLoading = false;
function initMap() {
ymaps.ready(function() {
var map = new ymaps.Map('ya-map', {
center: mapCoords,
zoom: 16
}, {
searchControlProvider: 'yandex#search'
});
var placemark = new ymaps.Placemark(
mapCoords,
{ iconContent: mapLabel },
{ preset: 'islands#redStretchyIcon' }
);
map.geoObjects.add(placemark);
mapLoaded = true;
});
}
function loadYandexMaps() {
if (mapLoaded || apiLoading) return;
apiLoading = true;
var script = document.createElement('script');
script.src = 'https://api-maps.yandex.ru/2.1/?lang=ru_RU';
script.onload = initMap;
document.head.appendChild(script);
}
function onScroll() {
if ((window.pageYOffset || document.documentElement.scrollTop) > 100) {
loadYandexMaps();
window.removeEventListener('scroll', onScroll);
}
}
window.addEventListener('load', function() {
setTimeout(function() {
if (!mapLoaded && !apiLoading) loadYandexMaps();
}, 3000);
});
window.addEventListener('scroll', onScroll, { passive: true });
})();
</script>
<!-- ════════════════════════════════════════════ -->
<!-- Sticky CTA — Mobile -->
<!-- ════════════════════════════════════════════ -->
<div class="sticky-cta-mobile" aria-label="Запись">
<div class="sticky-cta-mobile__inner">
<span class="sticky-cta-mobile__text">Первое занятие — <strong>бесплатно</strong></span>
<button class="sticky-cta-mobile__btn btn-write">Записаться</button>
</div>
</div>
</main>
<?php
get_footer();