This commit is contained in:
GP_DEV committed 2025-07-08 14:21:19 +03:00
1 parent a6bb81cbe1
commit 21562852ca
65 files changed
+7464 -1073

No files matched your search

+230
View File
@@ -0,0 +1,230 @@
<?php
get_header();
if (!function_exists('get_trainers_for_current_language')) {
function get_trainers_for_current_language()
{
$current_lang = pll_current_language();
$args = array(
'post_type' => 'trainer',
'posts_per_page' => -1,
'lang' => $current_lang,
'post_status' => 'publish',
'sort' => 'menu_order',
'order' => 'ASC',
);
return get_posts($args);
}
}
$trainers = get_trainers_for_current_language();
$trainers_data = array();
if ($trainers) {
foreach ($trainers as $trainer) {
$trainer_info = array(
'post' => $trainer,
'name' => '',
'exp' => '',
'short_desc' => ''
);
if (have_rows('short_info', $trainer->ID)) {
while (have_rows('short_info', $trainer->ID)) {
the_row();
$trainer_info['name'] = get_sub_field('name');
$trainer_info['exp'] = get_sub_field('exp');
$trainer_info['short_desc'] = get_sub_field('short_desc');
}
}
$trainers_data[] = $trainer_info;
}
}
?>
<section class="py-[90px] pb-[45px]">
<div class="container mx-auto">
<?php if ($trainers_data): ?>
<div class="grid grid-cols-4 gap-[24px]">
<?php foreach ($trainers_data as $trainer_data): ?>
<?php $trainer = $trainer_data['post']; ?>
<a href="<?php echo get_permalink($trainer->ID); ?>" class="!no-underline group block">
<div class="flex flex-col gap-[12px]">
<div class="flex relative rounded-[20px] overflow-hidden shadow-[0_2px_32px_0_rgba(16,_15,_15,_0.03)]">
<?php $photo_images = get_field('photo', $trainer->ID); ?>
<?php if ($photo_images && !empty($photo_images[0])): ?>
<div class="overflow-hidden h-[460px]">
<img src="<?php echo esc_url($photo_images[0]['url']); ?>"
alt="<?php echo esc_attr($photo_images[0]['alt']); ?>"
loading="lazy"
class="w-full h-full object-cover transition-transform"/>
</div>
<?php endif; ?>
<div class="flex gap-[4px] absolute left-[12px] bottom-[16px] group-hover:text-[#e21e24]">
<div class="text-[15px] leading-[110%] font-[600] text-[#fff] px-[12px] h-[29px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo pll_current_language('name'); ?>
</div>
<?php $exp = $trainer_data['exp']; ?>
<?php if ($exp): ?>
<div class="text-[15px] leading-[110%] font-[600] text-[#fff] px-[12px] h-[29px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo esc_html($exp); ?>
</div>
<?php endif; ?>
</div>
</div>
<div>
<?php $name = $trainer_data['name']; ?>
<?php if ($name): ?>
<div class="text-[24px] leading-[125%] font-[600]">
<?php echo esc_html($name); ?>
</div>
<?php endif; ?>
<?php $short_desc = $trainer_data['short_desc']; ?>
<?php if ($short_desc): ?>
<div class="text-[16px] leading-[145%] font-[500] mt-[4px] text-[#6c6b6b]">
<?php echo wp_kses_post($short_desc); ?>
</div>
<?php endif; ?>
</div>
</div>
</a>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</section>
<section class="py-[90px] pt-[45px] radial-gradient">
<div class="container mx-auto">
<?php $team_photo = get_field('team_photo'); ?>
<?php if ($team_photo) : ?>
<img
class="rounded-[20px] w-full h-[620px] object-cover"
src="<?php echo esc_url($team_photo['url']); ?>"
alt="<?php echo esc_attr($team_photo['alt']); ?>"/>
<?php endif; ?>
<?php
$blocks = [
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.7084 34.6648C19.4886 34.7747 19.2463 34.8318 19.0007 34.8318C18.755 34.8318 18.5127 34.7747 18.2929 34.6648L18.2866 34.6633L18.2739 34.6569L18.2343 34.6363C18.0057 34.5182 17.7787 34.3968 17.5535 34.2722C14.8741 32.7783 12.3564 31.0114 10.0406 28.9997C8.83735 27.9524 7.70983 26.8212 6.66648 25.6145C6.59119 25.5264 6.49773 25.4556 6.39251 25.4069C6.2873 25.3583 6.17282 25.333 6.0569 25.3327H3.16732C2.74739 25.3327 2.34466 25.1659 2.04773 24.8689C1.7508 24.572 1.58398 24.1693 1.58398 23.7493C1.58398 23.3294 1.7508 22.9267 2.04773 22.6298C2.34466 22.3328 2.74739 22.166 3.16732 22.166H9.50065C9.81704 22.1658 10.1261 22.0708 10.388 21.8933C10.6499 21.7158 10.8526 21.4639 10.97 21.1701L12.3728 17.6646C12.3962 17.6055 12.4367 17.5549 12.4892 17.5191C12.5418 17.4834 12.6038 17.4643 12.6673 17.4643C12.7308 17.4643 12.7929 17.4834 12.8454 17.5191C12.8979 17.5549 12.9385 17.6055 12.9618 17.6646L15.948 25.1284C16.0655 25.4223 16.2684 25.6741 16.5304 25.8516C16.7925 26.029 17.1017 26.1238 17.4181 26.1238C17.7346 26.1238 18.0438 26.029 18.3058 25.8516C18.5679 25.6741 18.7707 25.4223 18.8882 25.1284L20.6062 20.8313C20.6295 20.7722 20.6701 20.7215 20.7226 20.6858C20.7751 20.6501 20.8371 20.631 20.9007 20.631C20.9642 20.631 21.0262 20.6501 21.0787 20.6858C21.1312 20.7215 21.1718 20.7722 21.1952 20.8313L21.3313 21.1701C21.4487 21.4639 21.6514 21.7158 21.9133 21.8933C22.1752 22.0708 22.4843 22.1658 22.8007 22.166H25.334C25.7539 22.166 26.1566 21.9992 26.4536 21.7023C26.7505 21.4053 26.9173 21.0026 26.9173 20.5827C26.9173 20.1628 26.7505 19.76 26.4536 19.4631C26.1566 19.1662 25.7539 18.9993 25.334 18.9993H24.0863C24.0232 18.9991 23.9615 18.98 23.9093 18.9444C23.8571 18.9089 23.8168 18.8585 23.7934 18.7998L22.3716 15.2453C22.2541 14.9514 22.0512 14.6996 21.7891 14.5221C21.5271 14.3447 21.2179 14.2499 20.9014 14.2499C20.585 14.2499 20.2758 14.3447 20.0137 14.5221C19.7517 14.6996 19.5488 14.9514 19.4313 15.2453L17.7118 19.5424C17.6885 19.6015 17.6479 19.6522 17.5954 19.6879C17.5429 19.7236 17.4808 19.7427 17.4173 19.7427C17.3538 19.7427 17.2918 19.7236 17.2392 19.6879C17.1867 19.6522 17.1462 19.6015 17.1228 19.5424L14.1367 12.0802C14.0189 11.7868 13.816 11.5355 13.5541 11.3584C13.2923 11.1814 12.9834 11.0868 12.6673 11.0868C12.3512 11.0868 12.0424 11.1814 11.7805 11.3584C11.5186 11.5355 11.3158 11.7868 11.198 12.0802L8.42873 18.9993H3.16573C3.00493 19.0007 2.84774 18.9516 2.71625 18.8591C2.58477 18.7665 2.48559 18.635 2.43265 18.4832C1.87549 16.866 1.58875 15.1681 1.58398 13.4577C1.58398 11.1935 2.2569 8.66177 3.78957 6.65727C5.36182 4.6021 7.79699 3.16602 11.084 3.16602C14.3504 3.16602 16.6953 4.57677 18.1932 5.9606C18.4956 6.23927 18.7632 6.51635 19.0007 6.78393C19.2382 6.51635 19.5057 6.23927 19.8082 5.9606C21.3044 4.57677 23.6493 3.16602 26.9173 3.16602C30.2043 3.16602 32.6395 4.6021 34.2117 6.65727C35.7444 8.66177 36.4173 11.1935 36.4173 13.4577C36.4173 20.1013 32.0125 25.4514 27.9607 28.9981C25.491 31.1416 22.7925 33.0064 19.9142 34.5588L19.7686 34.6348L19.7274 34.6569L19.7147 34.6633L19.7084 34.6648Z" fill="url(#paint0_linear_2307_11127)" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.75 23C25.7554 23 24.8016 23.3951 24.0983 24.0983C23.3951 24.8016 23 25.7554 23 26.75V34.25C23 35.2446 23.3951 36.1984 24.0983 36.9017C24.8016 37.6049 25.7554 38 26.75 38H34.25C35.2446 38 36.1984 37.6049 36.9017 36.9017C37.6049 36.1984 38 35.2446 38 34.25V26.75C38 25.7554 37.6049 24.8016 36.9017 24.0983C36.1984 23.3951 35.2446 23 34.25 23H26.75ZM33.98 27.674C34.1327 27.8013 34.2286 27.9841 34.2466 28.1821C34.2646 28.3801 34.2032 28.5772 34.076 28.73L30.326 33.23C30.2612 33.3077 30.1814 33.3714 30.0914 33.4174C30.0013 33.4635 29.9029 33.4908 29.802 33.4978C29.7011 33.5048 29.5998 33.4914 29.5043 33.4582C29.4087 33.4251 29.3209 33.373 29.246 33.305L26.996 31.2597C26.8515 31.1253 26.7659 30.9393 26.7577 30.7421C26.7494 30.5449 26.8193 30.3524 26.952 30.2064C27.0847 30.0603 27.2697 29.9725 27.4667 29.9619C27.6638 29.9513 27.8571 30.0188 28.0048 30.1497L29.675 31.6685L32.924 27.77C33.0513 27.6173 33.2341 27.5214 33.4321 27.5034C33.6301 27.4854 33.8272 27.5468 33.98 27.674Z" fill="#E21E24" />
<defs>
<linearGradient id="paint0_linear_2307_11127" x1="1.58398" y1="18.9989" x2="36.4173" y2="18.9989" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'title' => 'Разные форматы — один подход',
'description' => 'Йога, пилатес, танцы, силовые, реабилитация — тренеры помогут найти тот формат, в котором телу и голове хорошо.'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.69186 23.2314L15.0099 14.9134L16.9968 16.9025C17.9336 17.8441 19.1805 18.3628 20.5075 18.3628C21.8344 18.3628 23.0813 17.8441 24.0185 16.9021C25.9458 14.9651 25.9458 11.8135 24.0185 9.87645L20.9032 6.75288L22.4507 5.39193C26.3435 1.98061 32.2647 2.37093 35.676 6.2637C39.0873 10.1565 38.697 16.0776 34.8042 19.489L32.5808 21.5439L30.1124 19.0756C28.6763 17.6394 26.3395 17.6394 24.9034 19.0756C24.2185 19.7604 23.8374 20.6676 23.8257 21.6343C22.8983 21.6461 21.9747 22.0042 21.2687 22.7102C20.5624 23.4166 20.2042 24.3409 20.1928 25.2687C19.2649 25.2802 18.3406 25.6384 17.6342 26.3448C16.1981 27.7809 16.198 30.1177 17.6341 31.5538L19.611 33.5307L17.9391 35.0759C16.7985 36.0755 15.0635 35.9611 14.0639 34.8205C13.0644 33.6799 13.1787 31.9449 14.3194 30.9454C13.1788 31.9449 11.4438 31.8306 10.4443 30.6899C9.44471 29.5493 9.55908 27.8143 10.6997 26.8148L10.6996 26.8146C9.559 27.8142 7.82399 27.6999 6.82441 26.5592C5.96785 25.5817 6.01743 24.3477 6.69186 23.2314Z" fill="url(#paint0_linear_2307_11133)" />
<path d="M2.74495 4.98813C6.40498 1.32818 12.3389 1.32818 15.9989 4.98813L22.4407 11.4469C23.21 12.2201 23.4463 13.4103 23.0405 14.421C22.5991 15.5206 21.4621 16.2246 20.2806 16.1265C19.6291 16.0724 19.0153 15.7797 18.5577 15.314L15.0114 11.7636L5.63889 21.136L2.74503 18.242C-0.914996 14.5821 -0.914996 8.64808 2.74495 4.98813ZM29.6539 25.8855L26.4783 22.7099C26.3426 22.575 26.235 22.4144 26.1617 22.2376C26.0885 22.0608 26.0511 21.8712 26.0516 21.6798C26.0511 21.4885 26.0885 21.2989 26.1617 21.1221C26.235 20.9453 26.3426 20.7847 26.4783 20.6498C26.7622 20.3658 27.1354 20.2238 27.5083 20.2238C27.8814 20.2238 28.2544 20.3658 28.5384 20.6498L31.7139 23.8254C32.2797 24.3911 32.2815 25.3102 31.72 25.8788C31.7107 25.8879 31.7012 25.8966 31.6918 25.9056C31.4193 26.1674 31.063 26.3122 30.6839 26.3122C30.4925 26.3127 30.3029 26.2753 30.1261 26.202C29.9493 26.1288 29.7888 26.0212 29.6539 25.8855ZM26.0191 29.5202L22.8435 26.3446C22.7079 26.2097 22.6003 26.0491 22.5271 25.8723C22.4538 25.6955 22.4164 25.5059 22.4169 25.3146C22.4164 25.1232 22.4539 24.9336 22.5271 24.7568C22.6003 24.58 22.7079 24.4195 22.8435 24.2845C23.1187 24.0094 23.4845 23.8578 23.8736 23.8578C24.2627 23.8578 24.6286 24.0094 24.9037 24.2845L28.0793 27.4601C28.215 27.595 28.3226 27.7556 28.3958 27.9324C28.4691 28.1092 28.5065 28.2988 28.506 28.4902C28.5065 28.6804 28.4694 28.8689 28.3969 29.0449C28.3245 29.2208 28.218 29.3807 28.0837 29.5155C28.0777 29.5214 28.0714 29.527 28.0654 29.5329C27.4963 30.0874 26.5827 30.0837 26.0191 29.5202ZM22.3846 33.1548L19.209 29.9793C18.6411 29.4113 18.641 28.487 19.209 27.9191C19.4842 27.644 19.8499 27.4924 20.2391 27.4924C20.6282 27.4924 20.994 27.6439 21.2691 27.919L24.4447 31.0946C24.5804 31.2296 24.688 31.3901 24.7612 31.567C24.8345 31.7438 24.8719 31.9333 24.8714 32.1247C24.8719 32.3156 24.8347 32.5046 24.7618 32.681C24.6889 32.8574 24.5819 33.0176 24.4469 33.1524C24.4439 33.1554 24.4409 33.1581 24.4379 33.161C23.8693 33.7224 22.9504 33.7206 22.3846 33.1548Z" fill="url(#paint1_linear_2307_11133)" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.75 23C25.7554 23 24.8016 23.3951 24.0983 24.0983C23.3951 24.8016 23 25.7554 23 26.75V34.25C23 35.2446 23.3951 36.1984 24.0983 36.9017C24.8016 37.6049 25.7554 38 26.75 38H34.25C35.2446 38 36.1984 37.6049 36.9017 36.9017C37.6049 36.1984 38 35.2446 38 34.25V26.75C38 25.7554 37.6049 24.8016 36.9017 24.0983C36.1984 23.3951 35.2446 23 34.25 23H26.75ZM33.98 27.674C34.1327 27.8013 34.2286 27.9841 34.2466 28.1821C34.2646 28.3801 34.2032 28.5772 34.076 28.73L30.326 33.23C30.2612 33.3077 30.1814 33.3714 30.0914 33.4174C30.0013 33.4635 29.9029 33.4908 29.802 33.4978C29.7011 33.5048 29.5998 33.4914 29.5043 33.4582C29.4087 33.4251 29.3209 33.373 29.246 33.305L26.996 31.2597C26.8515 31.1253 26.7659 30.9393 26.7577 30.7421C26.7494 30.5449 26.8193 30.3524 26.952 30.2064C27.0847 30.0603 27.2697 29.9725 27.4667 29.9619C27.6638 29.9513 27.8571 30.0188 28.0048 30.1497L29.675 31.6685L32.924 27.77C33.0513 27.6173 33.2341 27.5214 33.4321 27.5034C33.6301 27.4854 33.8272 27.5468 33.98 27.674Z" fill="#E21E24" />
<defs>
<linearGradient id="paint0_linear_2307_11133" x1="6.18359" y1="19.4126" x2="37.9996" y2="19.4126" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_2307_11133" x1="0" y1="17.9119" x2="32.1397" y2="17.9119" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'title' => 'Вовлечение и забота',
'description' => 'Мы подстраиваемся под клиента. Здесь нет "неправильных тел" или "слишком поздно начинать".'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2307_11139)">
<path d="M21.7141 21.7139H16.2856C14.7865 21.7139 13.5713 22.9291 13.5713 24.4282V35.2853C13.5713 36.7844 14.7865 37.9996 16.2856 37.9996H21.7141C23.2132 37.9996 24.4284 36.7844 24.4284 35.2853V24.4282C24.4284 22.9291 23.2132 21.7139 21.7141 21.7139Z" fill="url(#paint0_linear_2307_11139)" />
<path d="M8.14286 25.7861H2.71429C1.21523 25.7861 0 27.0014 0 28.5004V35.2861C0 36.7852 1.21523 38.0004 2.71429 38.0004H8.14286C9.64192 38.0004 10.8571 36.7852 10.8571 35.2861V28.5004C10.8571 27.0014 9.64192 25.7861 8.14286 25.7861Z" fill="url(#paint1_linear_2307_11139)" />
<path d="M35.2854 14.9287H29.8569C28.3578 14.9287 27.1426 16.1439 27.1426 17.643V35.2859C27.1426 36.7849 28.3578 38.0001 29.8569 38.0001H35.2854C36.7845 38.0001 37.9997 36.7849 37.9997 35.2859V17.643C37.9997 16.1439 36.7845 14.9287 35.2854 14.9287Z" fill="url(#paint2_linear_2307_11139)" />
<path d="M5.42857 20.3571C5.54162 20.357 5.65422 20.3429 5.76379 20.3151C10.6214 19.0776 15.2952 17.2068 19.665 14.7508C24.4222 12.0625 28.7687 8.70509 32.5714 4.78121V8.14286C32.5714 8.50279 32.7144 8.84799 32.9689 9.1025C33.2234 9.35702 33.5686 9.5 33.9286 9.5C34.2885 9.5 34.6337 9.35702 34.8882 9.1025C35.1427 8.84799 35.2857 8.50279 35.2857 8.14286V1.35714C35.2857 0.997206 35.1427 0.652012 34.8882 0.397498C34.6337 0.142984 34.2885 0 33.9286 0H27.1429C26.7829 0 26.4377 0.142984 26.1832 0.397498C25.9287 0.652012 25.7857 0.997206 25.7857 1.35714C25.7857 1.71708 25.9287 2.06227 26.1832 2.31679C26.4377 2.5713 26.7829 2.71429 27.1429 2.71429H30.7746C27.1203 6.52636 22.9297 9.78521 18.335 12.388C14.1723 14.7252 9.72021 16.5048 5.09336 17.6809C4.76906 17.7591 4.48497 17.9541 4.29532 18.2286C4.10567 18.5031 4.02375 18.8378 4.06521 19.1688C4.10667 19.4998 4.26861 19.804 4.52009 20.0232C4.77158 20.2424 5.09499 20.3613 5.42857 20.3571Z" fill="url(#paint3_linear_2307_11139)" />
<path d="M33 25.5L26 30V32.5L31 35.5L36 27.5L33 25.5Z" fill="white" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.75 23C25.7554 23 24.8016 23.3951 24.0983 24.0983C23.3951 24.8016 23 25.7554 23 26.75V34.25C23 35.2446 23.3951 36.1984 24.0983 36.9017C24.8016 37.6049 25.7554 38 26.75 38H34.25C35.2446 38 36.1984 37.6049 36.9017 36.9017C37.6049 36.1984 38 35.2446 38 34.25V26.75C38 25.7554 37.6049 24.8016 36.9017 24.0983C36.1984 23.3951 35.2446 23 34.25 23H26.75ZM33.98 27.674C34.1327 27.8013 34.2286 27.9841 34.2466 28.1821C34.2646 28.3801 34.2032 28.5772 34.076 28.73L30.326 33.23C30.2612 33.3077 30.1814 33.3714 30.0914 33.4174C30.0013 33.4635 29.9029 33.4908 29.802 33.4978C29.7011 33.5048 29.5998 33.4914 29.5043 33.4582C29.4087 33.4251 29.3209 33.373 29.246 33.305L26.996 31.2597C26.8515 31.1253 26.7659 30.9393 26.7577 30.7421C26.7494 30.5449 26.8193 30.3524 26.952 30.2064C27.0847 30.0603 27.2697 29.9725 27.4667 29.9619C27.6638 29.9513 27.8571 30.0188 28.0048 30.1497L29.675 31.6685L32.924 27.77C33.0513 27.6173 33.2341 27.5214 33.4321 27.5034C33.6301 27.4854 33.8272 27.5468 33.98 27.674Z" fill="#E21E24" />
</g>
<defs>
<linearGradient id="paint0_linear_2307_11139" x1="13.5713" y1="29.8567" x2="24.4284" y2="29.8567" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_2307_11139" x1="0" y1="31.8933" x2="10.8571" y2="31.8933" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_2307_11139" x1="27.1426" y1="26.4644" x2="37.9997" y2="26.4644" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint3_linear_2307_11139" x1="4.05469" y1="10.1786" x2="35.2857" y2="10.1786" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_2307_11139">
<rect width="38" height="38" fill="white" />
</clipPath>
</defs>
</svg>',
'title' => 'Постоянное развитие',
'description' => 'Наши специалисты обучаются каждый год: новые методики, индивидуальный подход, работа с возрастными клиентами.'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2307_11145)">
<path d="M29.2866 25.327C27.148 21.7037 23.2066 19.4414 19.0001 19.4414C14.7936 19.4414 10.8699 21.6861 8.71361 25.327C7.81221 26.8647 7.79454 28.7205 8.67826 30.2582C9.54431 31.7958 11.135 32.6972 12.8848 32.6972H25.0978C26.8652 32.6972 28.4383 31.7782 29.3043 30.2582C30.188 28.7028 30.1703 26.8647 29.269 25.327H29.2866Z" fill="url(#paint0_linear_2307_11145)" />
<path d="M19 18.5576C22.6605 18.5576 25.6279 15.5902 25.6279 11.9297C25.6279 8.26917 22.6605 5.30176 19 5.30176C15.3395 5.30176 12.3721 8.26917 12.3721 11.9297C12.3721 15.5902 15.3395 18.5576 19 18.5576Z" fill="url(#paint1_linear_2307_11145)" />
<path d="M36.6744 15.0233C35.9498 15.0233 35.3488 14.4223 35.3488 13.6977V6.62791C35.3488 4.43628 33.5637 2.65116 31.3721 2.65116H24.3023C23.5777 2.65116 22.9767 2.05023 22.9767 1.32558C22.9767 0.60093 23.5777 0 24.3023 0H31.3721C35.0307 0 38 2.9693 38 6.62791V13.6977C38 14.4223 37.3991 15.0233 36.6744 15.0233ZM31.3721 38H24.3023C23.5777 38 22.9767 37.3991 22.9767 36.6744C22.9767 35.9498 23.5777 35.3488 24.3023 35.3488H31.3721C33.5637 35.3488 35.3488 33.5637 35.3488 31.3721V24.3023C35.3488 23.5777 35.9498 22.9767 36.6744 22.9767C37.3991 22.9767 38 23.5777 38 24.3023V31.3721C38 35.0307 35.0307 38 31.3721 38ZM1.32558 15.0233C0.60093 15.0233 0 14.4223 0 13.6977V6.62791C0 2.9693 2.9693 0 6.62791 0H13.6977C14.4223 0 15.0233 0.60093 15.0233 1.32558C15.0233 2.05023 14.4223 2.65116 13.6977 2.65116H6.62791C4.43628 2.65116 2.65116 4.43628 2.65116 6.62791V13.6977C2.65116 14.4223 2.05023 15.0233 1.32558 15.0233ZM13.6977 38H6.62791C2.9693 38 0 35.0307 0 31.3721V24.3023C0 23.5777 0.60093 22.9767 1.32558 22.9767C2.05023 22.9767 2.65116 23.5777 2.65116 24.3023V31.3721C2.65116 33.5637 4.43628 35.3488 6.62791 35.3488H13.6977C14.4223 35.3488 15.0233 35.9498 15.0233 36.6744C15.0233 37.3991 14.4223 38 13.6977 38Z" fill="url(#paint2_linear_2307_11145)" />
<path d="M33 25.5L26 30V32.5L31 35.5L36 27.5L33 25.5Z" fill="white" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.75 23C25.7554 23 24.8016 23.3951 24.0983 24.0983C23.3951 24.8016 23 25.7554 23 26.75V34.25C23 35.2446 23.3951 36.1984 24.0983 36.9017C24.8016 37.6049 25.7554 38 26.75 38H34.25C35.2446 38 36.1984 37.6049 36.9017 36.9017C37.6049 36.1984 38 35.2446 38 34.25V26.75C38 25.7554 37.6049 24.8016 36.9017 24.0983C36.1984 23.3951 35.2446 23 34.25 23H26.75ZM33.98 27.674C34.1327 27.8013 34.2286 27.9841 34.2466 28.1821C34.2646 28.3801 34.2032 28.5772 34.076 28.73L30.326 33.23C30.2612 33.3077 30.1814 33.3714 30.0914 33.4174C30.0013 33.4635 29.9029 33.4908 29.802 33.4978C29.7011 33.5048 29.5998 33.4914 29.5043 33.4582C29.4087 33.4251 29.3209 33.373 29.246 33.305L26.996 31.2597C26.8515 31.1253 26.7659 30.9393 26.7577 30.7421C26.7494 30.5449 26.8193 30.3524 26.952 30.2064C27.0847 30.0603 27.2697 29.9725 27.4667 29.9619C27.6638 29.9513 27.8571 30.0188 28.0048 30.1497L29.675 31.6685L32.924 27.77C33.0513 27.6173 33.2341 27.5214 33.4321 27.5034C33.6301 27.4854 33.8272 27.5468 33.98 27.674Z" fill="#E21E24" />
</g>
<defs>
<linearGradient id="paint0_linear_2307_11145" x1="8.02637" y1="26.0693" x2="29.9562" y2="26.0693" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_2307_11145" x1="12.3721" y1="11.9297" x2="25.6279" y2="11.9297" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_2307_11145" x1="0" y1="19" x2="38" y2="19" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_2307_11145">
<rect width="38" height="38" fill="white" />
</clipPath>
</defs>
</svg>',
'title' => 'Про атмосферу, а не про давление',
'description' => 'Вы — в центре внимания. Тренировки без стресса, с ощущением заботы и прогресса.'
]
];
?>
<div class="mt-[40px] grid grid-cols-4 divide-x divide-[#e0e0e0]">
<?php foreach ($blocks as $index => $block): ?>
<div class="flex flex-col px-[24px] <?php echo $index === 0 ? 'pl-0' : ''; ?> <?php echo $index === 3 ? 'pr-0' : ''; ?>">
<div class="grid place-items-center w-[76px] h-[76px] rounded-[12px] small-shadow bg-[#f8f8f8]"> <?php echo $block['svg']; ?></div>
<p class="mt-[24px] w-full max-w-[220px] font-[600] text-[24px] leading-[125%]">
<?php echo htmlspecialchars($block['title']); ?>
</p>
<p class="mt-[12px] w-full max-w-[270px] font-[500] text-[16px] leading-[145%] text-[#6c6b6b]">
<?php echo htmlspecialchars($block['description']); ?>
</p>
</div>
<?php endforeach; ?>
</div>
</div>
</section>
<?php get_footer(); ?>
Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 531 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

+969 -160
View File
File diff suppressed because it is too large. Load diff
+1026 -261
View File
File diff suppressed because it is too large. Load diff
+17
View File
@@ -11,6 +11,23 @@
<?php do_action( 'tailpress_footer' ); ?> <?php do_action( 'tailpress_footer' ); ?>
<?php get_template_part('template-parts/la-components/footer'); ?> <?php get_template_part('template-parts/la-components/footer'); ?>
<script type="text/javascript" async="async" id="mobifitness_personal_widget_script_au1" src="//mobifitness.ru/personal-widget/js/code.js" data-div="mf_schedule_widget_cont_au1" data-test="0" data-debug="0" data-domain="mobifitness.ru" data-code="614482" data-version="v6" data-type="schedule" data-language="" data-club="1325"></script>
<script type="text/javascript"
defer="defer"
id="mobifitness_personal_widget_script_ksm"
src="//mobifitness.ru/personal-widget/js/code.js"
data-div="mf_personal_widget_cont_ksm"
data-code="614482"
data-domain="mobifitness.ru"
data-club="1325">
</script>
<script>
setTimeout(() => {
console.log('Div содержимое:', document.getElementById('mf_personal_widget_cont_ksm').innerHTML);
}, 3000);
</script>
</footer> </footer>
</div> </div>
+81 -1
View File
@@ -118,6 +118,11 @@ function get_current_room() {
$modal_file = get_template_directory() . '/template-parts/la-components/functions/modals.php'; $modal_file = get_template_directory() . '/template-parts/la-components/functions/modals.php';
$block_file = get_template_directory() . '/template-parts/la-components/functions/blocks.php'; $block_file = get_template_directory() . '/template-parts/la-components/functions/blocks.php';
$forms_file = get_template_directory() . '/template-parts/la-components/functions/forms.php'; $forms_file = get_template_directory() . '/template-parts/la-components/functions/forms.php';
$breadcrumbs_file = get_template_directory() . '/template-parts/la-components/functions/breadcrumbs.php';
if (file_exists($breadcrumbs_file)) {
require_once $breadcrumbs_file;
}
if (file_exists($block_file)) { if (file_exists($block_file)) {
require_once $block_file; require_once $block_file;
} }
@@ -168,4 +173,79 @@ function wider_language_cols() {
} }
</style>'; </style>';
} }
add_action('admin_head', 'wider_language_cols'); add_action('admin_head', 'wider_language_cols');
function get_simple_menu_items($menu_name = 'Шапка сайта') {
$menu = wp_get_nav_menu_object($menu_name);
if (!$menu) {
return array();
}
$menu_items = wp_get_nav_menu_items($menu->term_id);
$current_lang = function_exists('pll_current_language') ? pll_current_language() : null;
if (!$menu_items) {
return array();
}
$clean_title = function($title) {
return trim(preg_replace('/\s*\([^)]*\)/', '', $title));
};
$simple_items = array();
foreach ($menu_items as $item) {
$url = $item->url;
$title = $clean_title($item->title);
if ($current_lang && $item->object == 'page' && function_exists('pll_get_post')) {
$translated_page_id = pll_get_post($item->object_id, $current_lang);
if ($translated_page_id) {
$url = get_permalink($translated_page_id);
$translated_title = get_the_title($translated_page_id);
if ($translated_title) {
$title = $clean_title($translated_title);
}
}
}
$simple_items[] = array(
'title' => $title,
'url' => $url,
'id' => $item->ID
);
}
return $simple_items;
}
function add_dark_class_to_editor() {
$screen = get_current_screen();
if (!$screen || !in_array($screen->base, ['post', 'page'])) {
return;
}
$current_lang = '';
if (isset($_GET['post'])) {
$current_lang = pll_get_post_language($_GET['post']);
} elseif (isset($_GET['lang'])) {
$current_lang = $_GET['lang'];
} else {
$current_lang = pll_current_language();
}
if ($current_lang === 'gym') {
?>
<script>
jQuery(document).ready(function($) {
$('#editor').addClass('dark');
});
</script>
<?php
}
}
add_action('admin_head', 'add_dark_class_to_editor');
+63 -5
View File
@@ -11,7 +11,7 @@
<?php <?php
$room = get_current_room(); $room = get_current_room();
$base_classes = 'bg-[#f9f9f9] text-[#222]'; $base_classes = 'bg-[#f9f9f9] dark:bg-[#f4f4f4] text-[#222]';
if ($room === 'gym') { if ($room === 'gym') {
$body_classes = $base_classes . ' dark'; $body_classes = $base_classes . ' dark';
@@ -27,15 +27,15 @@ if ($room === 'gym') {
<div id="page" class="min-h-screen flex flex-col"> <div id="page" class="min-h-screen flex flex-col">
<?php do_action('tailpress_header'); ?> <?php do_action('tailpress_header'); ?>
<header class="container mx-auto absolute left-0 right-0 z-[1000] <?php echo is_admin_bar_showing() ? 'top-[32px]' : 'top-0'; ?>" <header class="container mx-auto absolute left-0 right-0 z-[49] <?php echo is_admin_bar_showing() ? 'top-[32px]' : 'top-0'; ?>"
id="site-header"> id="site-header">
<div class="pt-[24px] dark:text-[#f8f8f8]"> <div class="pt-[24px] dark:text-[#f8f8f8]">
<div> <div>
<div class="flex justify-between items-center"> <div class="flex justify-between items-center">
<div> <a href="<?php echo esc_url(home_url('/')); ?>">
<?php display_icon(get_current_room() === 'gym' ? 'dark_logo' : 'light_logo'); ?> <?php display_icon(get_current_room() === 'gym' ? 'dark_logo' : 'light_logo'); ?>
</div> </a>
<?php get_template_part('template-parts/la-components/language-switcher'); ?> <?php get_template_part('template-parts/la-components/language-switcher'); ?>
<div class="flex items-center gap-[12px]"> <div class="flex items-center gap-[12px]">
<div class="w-[8px] h-[8px] rounded-full bg-[#e21e24]"></div> <div class="w-[8px] h-[8px] rounded-full bg-[#e21e24]"></div>
@@ -115,8 +115,66 @@ if ($room === 'gym') {
</div> </div>
</div> </div>
</div> </div>
</header>
</header>
<?php
if (!is_front_page()) {
?>
<?php
if ($room === 'fitness') {
$body_classes = 'header-gradient';
} else {
$base_classes = 'bg-cover bg-center bg-no-repeat';
$bg_image = 'data:image/webp;base64,UklGRlYGAABXRUJQVlA4IEoGAAAwhQCdASqgBY8BPpFIoU0lpCMiIAgAsBIJaW7hcROkzhv8UWwDwWUuse5nyAKzdrxcnIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ychwKadSWOI62mG14uTkPfbJyHvtk5D32ych77rmy6qWlQLJdrx7l/S7Xi7HKqlrtcaZUgu0qBZLteLk5D32ych77ZOQ9/QZ8cbzbm2DjOqxp3a8XZmOcK/p9PqmRfS7Xi5OQ99snIe+2TkPfbJyHvtrm2snpIfB+sLXnT1Q45Rp50VJesOEPOFrp7ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZORIZOs8o09I8i7HKaWyXa8XJyHvtk4/0MgPJyHvtk5D32ych77ZOQ99snLewor1HAnIe+78B0WPEnIe+2TkPfb2Yr0aUu14uTkPfbJyHvtk5D32ycslQu+a334IJdo309snIe+2TkPtVfbJyHwYqZae2TkPfbJyHvtk5D32yciQkvU+BRdt3mxzfgKEXJyHvtk5D32ych9uqUA99snIe+2TkPfbJyHvuwNb9PbJy5VNqlFbuJHCC7SGlQLJdrxcnIj+YIB77ZOQ99snIe+2TkPjIoK8PHsD6LrMpE7p3/T2ycKnBf/oPgP0u14xH55OQ99snIe+2TkPfbJyI+F3gw1SkZoS06U8ogWS5SKIgu0qBZQDJdpwfBOQ99snIe+2TkPfbJ6xHPFycjCQtdKRqjyiBZKSIVB77ZOQ99yPzyi4/PJyHvtk5D32ych77ZYGjT0lFmGvmS7YIgnIe+4j0RDnPrxcnIe+5H55O0rc2vFych77ZOQ99snIe+2TkPfbY5RAsl24UoiHOJ0pSCJYfA+IDKgsI4QXaVAsl2vFych8DnKZD32yYzQlp7ZOQ99snH8iifFZLxNQ7zfnXConQ8nIe+2TkPfbJyHv6B3F4uiOsm2XT2ych77ZOQ9YimhLT2yc9xrc6fVAjEfnk5D32ych77ZOQ99snIjve+2TkPfbJyG/9PbJ6VAsl2vEiIT22BikiAe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2T4aWlQLJdryBtMCCLTKkF2lQLJdrxcnIe+2TkPfbJyHvtk5D325l939GqIuTkPfbKijehS6ES5OQ99snIe+2TkPfbJyHvtk5D32ych8B+l2syntPbJyHvtmMyCLUA7SoFku14uTkPfbJyHvtk5D32ych77ZOQ99spqNubXi5OQ/ZwIItRSyHvtk5D32ych77ZOQ99snIe+2TkPfbMZae2TkPfbN/M9rxhUEI/PSCX0u14uTkPfbJyHvtk5D32ych77ZOQ3/p7ZOQ99q45O0rc36SZhqXDV2lQLJdrxcnIe+2TkPfbJyHvtk5D32zGWnuJvtk5D357T3JID7Z1HqyHvtk5D32ych76wAA/v3T9/VuLcLE/Y7G/ZbBl3Ewmhr1flZuAn3R9da7SCpE7umqw0pLouLgAHoOx2OMsGsRJefDaj2aMkv6AAQT05kxqLdMyToNfQ1nQuAAAfDjb2mxSBRuIvqTV+ehuwXpgyFSGym8AAAAG8jp2azhrweGCPKA2vAAABLQ1AV8XezdxCrUWql+rj0p9B3pFePQAQ1+KNqfpcRhJRMAoZpxwgA5j1nYLRusklBegBUKRzEIVy4/wsBY03xliWb+re0NO/aqmpZv6r6AALroFk4+y3tSh6PXFSZarBYdZp1gAAh8JcRnXXWCks10vTEaRo7Nzm9ae9KNPcgZOo305nAFLCYj0PskctdiboDQSSy41PkVM3rQ6B7U1oGZuA3+cgAQzy31FXiL9zk48QLKmifmggACQPgJzdAV7KlGbFrqW1VIBdVO16EAAABM8S5BkK8EzKIHagIdzgACK4lx3scuwdaZ8/Smpzy6ttIMbFegAazB8HiL9tj6ltosVbuzNZ2db1/GCzalijwEd+wX7DaTp9bSVPUvmw2kG18DKK3sie5M+gQAAQgICIt0lv0wndyBgHpcADwCAr3vyjSxyZ9AsK7WEJOAqAgJvh30TVGMIHG4CxCBKW8FlC1DRT4WXx4RTgLkIC0M4TNmUvrITfYAYoQHYTIXY0mpzl2AAMUIFrlaXLE7aaiMT3dcBchAzC5duPMegAAAAA==';
$style_attr = 'style="background-image: url(' . esc_attr($bg_image) . ')"';
}
?>
<div class="<?php echo $base_classes . ' ' . $body_classes . ' ' ?> pt-[161px]"
<?php echo $style_attr ?>
>
<div class="container mx-auto pt-[32px] pb-[60px]">
<?php display_yandex_breadcrumbs(); ?>
<?php if (!is_front_page()) : ?>
<div class="container mx-auto mt-[24px]">
<?php if (get_field('h1_text')): ?>
<div class="flex justify-between flex-wrap gap-[12px]">
<div class="flex flex-col">
<h1 class="dark:text-[#f8f8f8] max-w-[900px] w-full text-[222] leading-[110%] text-[48px] font-[500]">
<?php echo get_field('h1_text'); ?>
</h1>
<?php
if (is_page('thank-you')) {
?>
<p class="font-[600] w-full max-w-[687px] text-[24px] leading-[125%] text-[#222] dark:text-[#f8f8f8] mt-[12px]">
Очень скоро с вами свяжется наш отдел заботы, чтобы ответить на все
интересующие
вопросы.</p>
<?php
}
?></div>
<?php display_icon(get_current_room() === 'gym' ? 'dark_logo_name' : 'light_logo_name'); ?>
</div>
<?php else:
$title = trim(preg_replace('/\s*\([^)]*\)/', '', get_the_title()));
?>
<h1 class="dark:text-[#f8f8f8] text-[222] leading-[110%] text-[48px] font-[700]">
<?php echo $title ?>
</h1>
<?php endif; ?>
</div>
<?php endif; ?>
</div>
</div>
<?php
}
?>
<div id="content" class="site-content grow"> <div id="content" class="site-content grow">
+91
View File
@@ -50,6 +50,97 @@ document.addEventListener('DOMContentLoaded', function() {
window.addEventListener('resize', updateMainPadding); window.addEventListener('resize', updateMainPadding);
});*/ });*/
// Используем делегирование событий для динамически загружаемых форм
document.addEventListener('DOMContentLoaded', function () {
// Делегирование для focus события
document.addEventListener('focus', function (e) {
if (e.target.matches('#fluentform_4 .ff-el-form-control')) {
var group = e.target.closest('.ff-el-group');
if (group) group.classList.add('focused');
}
}, true); // используем capture phase
// Делегирование для blur события
document.addEventListener('blur', function (e) {
if (e.target.matches('#fluentform_4 .ff-el-form-control')) {
var group = e.target.closest('.ff-el-group');
if (group) group.classList.remove('focused');
}
}, true);
// Делегирование для input события
document.addEventListener('input', function (e) {
// Обычные поля формы
if (e.target.matches('#fluentform_4 .ff-el-form-control')) {
var group = e.target.closest('.ff-el-group');
if (group) {
if (e.target.value.trim() !== '') {
group.classList.add('has-value');
} else {
group.classList.remove('has-value');
}
}
}
// Форматирование телефона
if (e.target.matches('#fluentform_4 .ff-el-phone')) {
formatPhoneNumber(e);
}
});
// Делегирование для keydown события (для телефона)
document.addEventListener('keydown', function (e) {
if (e.target.matches('#fluentform_4 .ff-el-phone')) {
handlePhoneKeydown(e);
}
});
// Функция форматирования телефона
function formatPhoneNumber(e) {
var value = e.target.value.replace(/\D/g, '');
// Заменяем 8 на 7
if (value.startsWith('8')) {
value = '7' + value.slice(1);
}
// Добавляем 7 если нет
if (!value.startsWith('7') && value.length > 0) {
value = '7' + value;
}
var formattedValue = '';
if (value.length > 0) {
formattedValue = '+7';
if (value.length > 1) {
formattedValue += ' (' + value.slice(1, 4);
if (value.length > 4) {
formattedValue += ') ' + value.slice(4, 7);
if (value.length > 7) {
formattedValue += '-' + value.slice(7, 9);
if (value.length > 9) {
formattedValue += '-' + value.slice(9, 11);
}
}
}
}
}
e.target.value = formattedValue;
}
// Функция обработки клавиш для телефона
function handlePhoneKeydown(e) {
if (e.key === 'Backspace' || e.key === 'Delete') {
var cursorPos = e.target.selectionStart;
var value = e.target.value;
if (cursorPos > 0 && [' ', '(', ')', '-'].includes(value[cursorPos - 1])) {
setTimeout(function () {
e.target.setSelectionRange(cursorPos - 1, cursorPos - 1);
}, 0);
}
}
}
});
/***/ }) /***/ })
/******/ }); /******/ });
+1
View File
@@ -1,4 +1,5 @@
@import 'tailwindcss'; @import 'tailwindcss';
@custom-variant dark (&:where(.dark, .dark *));
@import './theme.css'; @import './theme.css';
/* /*
+112
View File
@@ -96,4 +96,116 @@ html, body {
transition: background-position 180ms cubic-bezier(0.4, 0.0, 0.2, 1); transition: background-position 180ms cubic-bezier(0.4, 0.0, 0.2, 1);
} }
.radial-gradient {
background: linear-gradient(180deg, #f2f2f2 69.59%, #ededed 100%);
}
.header-gradient{
background: linear-gradient(180deg, #f9f9f9 69.59%, #ededed 100%);
}
.small-shadow{
box-shadow: 0 2px 32px 0 rgba(16, 15, 15, 0.03);
}
.dark-gradient{
background: linear-gradient(90deg, #2b2c35 53.4%, #4f5870 100%);
}
#fluentform_4 {
}
#fluentform_4 .ff-el-form-control {
border: none;
box-shadow: 0 2px 32px 0 rgba(16, 15, 15, 0.03);
background: #fff;
border-radius: 90px;
height: 77px;
padding-left: 32px;
padding-right: 32px;
outline: 1px solid transparent;
font-weight: 500;
font-size: 16px;
line-height: 130%;
color: #6c6b6b;
}
#fluentform_4 .ff-btn-submit {
height: 75px;
background: linear-gradient(90deg, #e21e24 39.42%, #ff2f35 92.9%);
border-radius: 90px;
font-weight: 600;
font-size: 18px;
line-height: 195%;
color: #f8f8f8;
display: grid;
place-content: center;
width: 100%;
cursor: pointer;
transition: 180ms ease-in;
}
#fluentform_4 .ff-btn-submit:hover {
font-weight: 700;
transition: 180ms ease-in;
}
#fluentform_4 .ff_submit_btn_wrapper {
margin-bottom: 0!important;
}
#fluentform_4 .error.text-danger {
position: absolute;
margin-top: 0;
bottom: -18px;
left: 0;
width: 100%;
text-align: center;
}
#fluentform_4 .ff-el-group {
position: relative;
margin-bottom: 18px;
}
#fluentform_4_success {
display: none!important;
}
#fluentform_4 .ff-el-input--label {
position: absolute;
top: 50%;
left: 32px;
transform: translateY(-50%);
pointer-events: none;
z-index: 2;
margin: 0;
transition: 180ms ease-in-out;
font-weight: 500;
font-size: 16px;
line-height: 130%;
color: #6c6b6b;
}
#fluentform_4 .ff-el-group.focused .ff-el-input--label,
#fluentform_4 .ff-el-group.has-value .ff-el-input--label {
top: 6px;
transform: translateY(0);
transition: 180ms ease-in-out;
font-size: 14px;
}
#fluentform_4 .ff-el-tc{
margin-top: 32px!important;
font-weight: 500!important;
font-size: 16px!important;
line-height: 145%!important;
color: #6c6b6b!important;
margin-bottom: 0!important;
}
+100
View File
@@ -14,3 +14,103 @@ document.addEventListener('DOMContentLoaded', function() {
updateMainPadding(); updateMainPadding();
window.addEventListener('resize', updateMainPadding); window.addEventListener('resize', updateMainPadding);
});*/ });*/
// Используем делегирование событий для динамически загружаемых форм
document.addEventListener('DOMContentLoaded', function() {
// Делегирование для focus события
document.addEventListener('focus', function(e) {
if (e.target.matches('#fluentform_4 .ff-el-form-control')) {
const group = e.target.closest('.ff-el-group');
if (group) group.classList.add('focused');
}
}, true); // используем capture phase
// Делегирование для blur события
document.addEventListener('blur', function(e) {
if (e.target.matches('#fluentform_4 .ff-el-form-control')) {
const group = e.target.closest('.ff-el-group');
if (group) group.classList.remove('focused');
}
}, true);
// Делегирование для input события
document.addEventListener('input', function(e) {
// Обычные поля формы
if (e.target.matches('#fluentform_4 .ff-el-form-control')) {
const group = e.target.closest('.ff-el-group');
if (group) {
if (e.target.value.trim() !== '') {
group.classList.add('has-value');
} else {
group.classList.remove('has-value');
}
}
}
// Форматирование телефона
if (e.target.matches('#fluentform_4 .ff-el-phone')) {
formatPhoneNumber(e);
}
});
// Делегирование для keydown события (для телефона)
document.addEventListener('keydown', function(e) {
if (e.target.matches('#fluentform_4 .ff-el-phone')) {
handlePhoneKeydown(e);
}
});
// Функция форматирования телефона
function formatPhoneNumber(e) {
let value = e.target.value.replace(/\D/g, '');
// Заменяем 8 на 7
if (value.startsWith('8')) {
value = '7' + value.slice(1);
}
// Добавляем 7 если нет
if (!value.startsWith('7') && value.length > 0) {
value = '7' + value;
}
let formattedValue = '';
if (value.length > 0) {
formattedValue = '+7';
if (value.length > 1) {
formattedValue += ' (' + value.slice(1, 4);
if (value.length > 4) {
formattedValue += ') ' + value.slice(4, 7);
if (value.length > 7) {
formattedValue += '-' + value.slice(7, 9);
if (value.length > 9) {
formattedValue += '-' + value.slice(9, 11);
}
}
}
}
}
e.target.value = formattedValue;
}
// Функция обработки клавиш для телефона
function handlePhoneKeydown(e) {
if (e.key === 'Backspace' || e.key === 'Delete') {
const cursorPos = e.target.selectionStart;
const value = e.target.value;
if (cursorPos > 0 && [' ', '(', ')', '-'].includes(value[cursorPos - 1])) {
setTimeout(() => {
e.target.setSelectionRange(cursorPos - 1, cursorPos - 1);
}, 0);
}
}
}
});
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

+181
View File
@@ -0,0 +1,181 @@
<?php
get_header();
// Получаем данные о тренере
$trainer_name = '';
$trainer_exp = '';
$trainer_short_desc = '';
if (have_rows('short_info')) {
while (have_rows('short_info')) {
the_row();
$trainer_name = get_sub_field('name');
$trainer_exp = get_sub_field('exp');
$trainer_short_desc = get_sub_field('short_desc');
}
}
$trainer_full_desc = '';
$trainer_desc_list = array();
$trainer_documents = array();
if (have_rows('full_info')) {
while (have_rows('full_info')) {
the_row();
$trainer_full_desc = get_sub_field('full_desc');
if (have_rows('desc_list')) {
while (have_rows('desc_list')) {
the_row();
$trainer_desc_list[] = get_sub_field('desc_list_item');
}
}
$documents = get_sub_field('documents');
if ($documents && is_array($documents)) {
$trainer_documents = $documents;
}
}
}
$trainer_photos = get_field('photo');
$trainer_trainings = get_field('trainings');
?>
<div class="py-[90px]">
<div class="container mx-auto">
<div class="grid grid-cols-1 lg:grid-cols-2 gap-[60px] mb-[90px]">
<!-- Фото тренера -->
<div class="flex flex-col gap-[20px]">
<?php if ($trainer_photos && !empty($trainer_photos[0])): ?>
<div class="rounded-[20px] overflow-hidden shadow-[0_2px_32px_0_rgba(16,_15,_15,_0.03)]">
<img src="<?php echo esc_url($trainer_photos[0]['url']); ?>"
alt="<?php echo esc_attr($trainer_photos[0]['alt']); ?>"
class="w-full h-[600px] object-cover"/>
</div>
<?php endif; ?>
<!-- Дополнительные фото (если есть) -->
<?php if ($trainer_photos && count($trainer_photos) > 1): ?>
<div class="grid grid-cols-3 gap-[12px]">
<?php for ($i = 1; $i < min(4, count($trainer_photos)); $i++): ?>
<div class="rounded-[12px] overflow-hidden">
<img src="<?php echo esc_url($trainer_photos[$i]['url']); ?>"
alt="<?php echo esc_attr($trainer_photos[$i]['alt']); ?>"
class="w-full h-[120px] object-cover"/>
</div>
<?php endfor; ?>
</div>
<?php endif; ?>
</div>
<!-- Информация о тренере -->
<div class="flex flex-col">
<div class="flex gap-[8px] mb-[20px]">
<div class="text-[15px] leading-[110%] font-[600] text-[#fff] px-[12px] h-[29px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo pll_current_language('name'); ?>
</div>
<?php if ($trainer_exp): ?>
<div class="text-[15px] leading-[110%] font-[600] text-[#fff] px-[12px] h-[29px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo esc_html($trainer_exp); ?>
</div>
<?php endif; ?>
</div>
<?php if ($trainer_name): ?>
<h1 class="text-[48px] leading-[120%] font-[600] mb-[20px]">
<?php echo esc_html($trainer_name); ?>
</h1>
<?php endif; ?>
<?php if ($trainer_short_desc): ?>
<div class="text-[20px] leading-[150%] font-[500] text-[#6c6b6b] mb-[30px]">
<?php echo wp_kses_post($trainer_short_desc); ?>
</div>
<?php endif; ?>
<?php if ($trainer_full_desc): ?>
<div class="text-[16px] leading-[160%] font-[400] text-[#2B2C35] mb-[30px]">
<?php echo wp_kses_post($trainer_full_desc); ?>
</div>
<?php endif; ?>
<!-- Список достижений/квалификаций -->
<?php if (!empty($trainer_desc_list)): ?>
<div class="mb-[30px]">
<h3 class="text-[24px] leading-[125%] font-[600] mb-[16px]">Квалификация и достижения</h3>
<ul class="space-y-[8px]">
<?php foreach ($trainer_desc_list as $desc_item): ?>
<?php if ($desc_item): ?>
<li class="flex items-start gap-[12px] text-[16px] leading-[160%] font-[400] text-[#2B2C35]">
<div class="w-[6px] h-[6px] rounded-full bg-[#E21E24] mt-[10px] flex-shrink-0"></div>
<?php echo wp_kses_post($desc_item); ?>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<!-- Документы/сертификаты -->
<?php if ($trainer_documents && !empty($trainer_documents)): ?>
<div class="mb-[30px]">
<h3 class="text-[24px] leading-[125%] font-[600] mb-[16px]">Документы</h3>
<div class="space-y-[12px]">
<?php foreach ($trainer_documents as $document): ?>
<a href="<?php echo esc_url($document['url']); ?>"
target="_blank"
class="flex items-center gap-[12px] px-[20px] py-[12px] bg-[#f8f8f8] hover:bg-[#e0e0e0] rounded-[12px] text-[16px] leading-[145%] font-[500] text-[#2B2C35] transition-colors duration-300">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.83334 8.33333L10 12.5L14.1667 8.33333" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10 12.5V2.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<div class="flex flex-col">
<span><?php echo esc_html($document['filename']); ?></span>
<span class="text-[14px] text-[#6c6b6b]">
<?php echo esc_html(size_format($document['filesize'])); ?>
</span>
</div>
</a>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
</div>
</div>
<!-- Связанные тренировки -->
<?php if ($trainer_trainings): ?>
<section class="py-[60px] px-[40px] bg-[#f8f8f8] rounded-[20px]">
<h2 class="text-[36px] leading-[125%] font-[600] mb-[40px] text-center">Тренировки с <?php echo esc_html($trainer_name ?: 'этим тренером'); ?></h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-[24px]">
<?php foreach ($trainer_trainings as $post): ?>
<?php setup_postdata($post); ?>
<a href="<?php the_permalink(); ?>"
class="block bg-white rounded-[16px] p-[24px] shadow-[0_2px_16px_0_rgba(16,_15,_15,_0.08)] hover:shadow-[0_8px_32px_0_rgba(16,_15,_15,_0.12)] transition-shadow duration-300">
<h3 class="text-[20px] leading-[130%] font-[600] mb-[12px] text-[#2B2C35]">
<?php the_title(); ?>
</h3>
<?php if (has_excerpt()): ?>
<p class="text-[16px] leading-[150%] font-[400] text-[#6c6b6b]">
<?php echo wp_trim_words(get_the_excerpt(), 15, '...'); ?>
</p>
<?php endif; ?>
<div class="mt-[16px] flex items-center gap-[8px] text-[14px] leading-[140%] font-[500] text-[#E21E24]">
Узнать больше
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 12L10 8L6 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
</a>
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>
</div>
</section>
<?php endif; ?>
</div>
</div>
<?php get_footer(); ?>
+235
View File
@@ -0,0 +1,235 @@
<?php
get_header();
// Получаем данные о тренировке
$training_name = '';
$training_short_desc = '';
$training_difficulty = '';
if (have_rows('short_info')) {
while (have_rows('short_info')) {
the_row();
$training_name = get_sub_field('name');
$training_short_desc = get_sub_field('short_desc');
$training_difficulty = get_sub_field('dificulty');
}
}
$training_full_desc = '';
$training_duration = '';
$what_happens_list = array();
$for_who_list = array();
if (have_rows('full_info')) {
while (have_rows('full_info')) {
the_row();
$training_full_desc = get_sub_field('full_desc');
$training_duration = get_sub_field('duration');
if (have_rows('what_happens')) {
while (have_rows('what_happens')) {
the_row();
$what_happens_list[] = get_sub_field('list_element');
}
}
if (have_rows('for_who')) {
while (have_rows('for_who')) {
the_row();
$for_who_list[] = get_sub_field('list_element');
}
}
}
}
$training_photos = get_field('photo');
$training_trainers = get_field('trainers');
?>
<div class="py-[90px]">
<div class="container mx-auto">
<!-- Навигация назад -->
<div class="mb-[40px]">
<a href="<?php echo get_post_type_archive_link('training'); ?>"
class="inline-flex items-center gap-[8px] text-[16px] leading-[145%] font-[500] text-[#6c6b6b] hover:text-[#2B2C35] transition-colors duration-300">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.5 15L7.5 10L12.5 5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
Все тренировки
</a>
</div>
<!-- Основная информация -->
<div class="grid grid-cols-1 lg:grid-cols-2 gap-[60px] mb-[90px]">
<!-- Фото тренировки -->
<div class="flex flex-col gap-[20px]">
<?php if ($training_photos && !empty($training_photos[0])): ?>
<div class="rounded-[20px] overflow-hidden shadow-[0_2px_32px_0_rgba(16,_15,_15,_0.03)]">
<img src="<?php echo esc_url($training_photos[0]['url']); ?>"
alt="<?php echo esc_attr($training_photos[0]['alt']); ?>"
class="w-full h-[600px] object-cover"/>
</div>
<?php endif; ?>
<!-- Дополнительные фото (если есть) -->
<?php if ($training_photos && count($training_photos) > 1): ?>
<div class="grid grid-cols-3 gap-[12px]">
<?php for ($i = 1; $i < min(4, count($training_photos)); $i++): ?>
<div class="rounded-[12px] overflow-hidden">
<img src="<?php echo esc_url($training_photos[$i]['url']); ?>"
alt="<?php echo esc_attr($training_photos[$i]['alt']); ?>"
class="w-full h-[120px] object-cover"/>
</div>
<?php endfor; ?>
</div>
<?php endif; ?>
</div>
<!-- Информация о тренировке -->
<div class="flex flex-col">
<div class="flex gap-[8px] mb-[20px]">
<div class="text-[15px] leading-[110%] font-[600] text-[#fff] px-[12px] h-[29px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo pll_current_language('name'); ?>
</div>
<?php if ($training_difficulty): ?>
<div class="text-[15px] leading-[110%] font-[600] text-[#fff] px-[12px] h-[29px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo esc_html($training_difficulty); ?>
</div>
<?php endif; ?>
<?php if ($training_duration): ?>
<div class="text-[15px] leading-[110%] font-[600] text-[#fff] px-[12px] h-[29px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo esc_html($training_duration); ?>
</div>
<?php endif; ?>
</div>
<?php if ($training_name): ?>
<h1 class="text-[48px] leading-[120%] font-[600] mb-[20px]">
<?php echo esc_html($training_name); ?>
</h1>
<?php endif; ?>
<?php if ($training_short_desc): ?>
<div class="text-[20px] leading-[150%] font-[500] text-[#6c6b6b] mb-[30px]">
<?php echo wp_kses_post($training_short_desc); ?>
</div>
<?php endif; ?>
<?php if ($training_full_desc): ?>
<div class="text-[16px] leading-[160%] font-[400] text-[#2B2C35] mb-[30px]">
<?php echo wp_kses_post($training_full_desc); ?>
</div>
<?php endif; ?>
<!-- Что происходит на тренировке -->
<?php if (!empty($what_happens_list)): ?>
<div class="mb-[30px]">
<h3 class="text-[24px] leading-[125%] font-[600] mb-[16px]">Что происходит на тренировке</h3>
<ul class="space-y-[8px]">
<?php foreach ($what_happens_list as $what_happens_item): ?>
<?php if ($what_happens_item): ?>
<li class="flex items-start gap-[12px] text-[16px] leading-[160%] font-[400] text-[#2B2C35]">
<div class="w-[6px] h-[6px] rounded-full bg-[#E21E24] mt-[10px] flex-shrink-0"></div>
<?php echo wp_kses_post($what_happens_item); ?>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<!-- Для кого подходит -->
<?php if (!empty($for_who_list)): ?>
<div class="mb-[30px]">
<h3 class="text-[24px] leading-[125%] font-[600] mb-[16px]">Для кого подходит</h3>
<ul class="space-y-[8px]">
<?php foreach ($for_who_list as $for_who_item): ?>
<?php if ($for_who_item): ?>
<li class="flex items-start gap-[12px] text-[16px] leading-[160%] font-[400] text-[#2B2C35]">
<div class="w-[6px] h-[6px] rounded-full bg-[#E21E24] mt-[10px] flex-shrink-0"></div>
<?php echo wp_kses_post($for_who_item); ?>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
</div>
</div>
<!-- Тренеры -->
<?php if ($training_trainers): ?>
<section class="py-[60px] px-[40px] bg-[#f8f8f8] rounded-[20px]">
<h2 class="text-[36px] leading-[125%] font-[600] mb-[40px] text-center">Тренеры</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-[24px]">
<?php foreach ($training_trainers as $post): ?>
<?php setup_postdata($post); ?>
<?php
// Получаем данные тренера
$trainer_name = '';
$trainer_exp = '';
$trainer_short_desc = '';
if (have_rows('short_info', $post->ID)) {
while (have_rows('short_info', $post->ID)) {
the_row();
$trainer_name = get_sub_field('name');
$trainer_exp = get_sub_field('exp');
$trainer_short_desc = get_sub_field('short_desc');
}
}
$trainer_photos = get_field('photo', $post->ID);
?>
<a href="<?php the_permalink(); ?>"
class="block bg-white rounded-[16px] overflow-hidden shadow-[0_2px_16px_0_rgba(16,_15,_15,_0.08)] hover:shadow-[0_8px_32px_0_rgba(16,_15,_15,_0.12)] transition-shadow duration-300">
<?php if ($trainer_photos && !empty($trainer_photos[0])): ?>
<div class="h-[280px] overflow-hidden">
<img src="<?php echo esc_url($trainer_photos[0]['url']); ?>"
alt="<?php echo esc_attr($trainer_photos[0]['alt']); ?>"
class="w-full h-full object-cover"/>
</div>
<?php endif; ?>
<div class="p-[20px]">
<div class="flex gap-[4px] mb-[12px]">
<div class="text-[13px] leading-[110%] font-[600] text-[#fff] px-[10px] h-[24px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo pll_current_language('name'); ?>
</div>
<?php if ($trainer_exp): ?>
<div class="text-[13px] leading-[110%] font-[600] text-[#fff] px-[10px] h-[24px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo esc_html($trainer_exp); ?>
</div>
<?php endif; ?>
</div>
<?php if ($trainer_name): ?>
<h3 class="text-[20px] leading-[130%] font-[600] mb-[8px] text-[#2B2C35]">
<?php echo esc_html($trainer_name); ?>
</h3>
<?php endif; ?>
<?php if ($trainer_short_desc): ?>
<p class="text-[14px] leading-[150%] font-[400] text-[#6c6b6b]">
<?php echo wp_trim_words($trainer_short_desc, 12, '...'); ?>
</p>
<?php endif; ?>
<div class="mt-[16px] flex items-center gap-[8px] text-[14px] leading-[140%] font-[500] text-[#E21E24]">
Подробнее
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 12L10 8L6 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
</div>
</a>
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>
</div>
</section>
<?php endif; ?>
</div>
</div>
<div id="mf_schedule_widget_cont_au1"></div>
<div id="mf_personal_widget_cont_ksm"></div>
<?php get_footer(); ?>
+775
View File
@@ -0,0 +1,775 @@
<?php
/*
Template Name: Страница клубных карт
*/
get_header();
if (!function_exists('get_club_cards_for_current_language')) {
function get_club_cards_for_current_language()
{
$current_lang = pll_current_language();
$args = array(
'post_type' => 'club-card',
'posts_per_page' => -1,
'lang' => $current_lang,
'post_status' => 'publish',
'sort' => 'menu_order',
'order' => 'ASC',
);
return get_posts($args);
}
}
$cards = get_club_cards_for_current_language();
?>
<section class="pt-[96px]">
<div class="container mx-auto">
<?php if ($cards): ?>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-[24px]">
<?php foreach ($cards as $card): ?>
<div class="bg-[#ffffff] rounded-[12px] p-[28px] pb-[16px] h-[258px] shadow-[0_2px_32px_0_rgba(16,_15,_15,_0.03)]">
<div class="flex flex-col h-full">
<div class="flex gap-[16px] items-center">
<?php
$card_image = get_field('image', $card->ID);
if ($card_image): ?>
<div class="overflow-hidden w-[32px] h-[32px]">
<img src="<?php echo esc_url($card_image['url']); ?>"
alt="<?php echo esc_attr($card_image['alt']); ?>"
class="w-full h-full object-cover"/>
</div>
<?php endif; ?>
<?php $card_heading = get_field('heading', $card->ID); ?>
<?php if ($card_heading): ?>
<h3 class="text-[24px] font-[600] leading-[125%]">
<?php echo esc_html($card_heading); ?>
</h3>
<?php endif; ?>
</div>
<?php $card_description = get_field('description', $card->ID); ?>
<?php if ($card_description): ?>
<div class="text-[16px] leading-[145%] font-[500] mt-[16px]">
<?php echo wp_kses_post($card_description); ?>
</div>
<?php endif; ?>
<div class="flex mt-auto pt-[16px] border-t border-t-[#f1f1f1] justify-between items-center gap-[12px] flex-wrap">
<?php $popup_button = get_field('popup_button', $card->ID); ?>
<?php $card_price = get_field('price', $card->ID) ?: ($card_prices['1_month']['day'] ?? ''); ?>
<?php
$card_prices = [];
if (have_rows('card_prices', $card->ID)) {
while (have_rows('card_prices', $card->ID)) {
the_row();
$periods = ['1_month', '3_month', '6_month', '12_month'];
foreach ($periods as $period) {
if (have_rows($period)) {
while (have_rows($period)) {
the_row();
$card_prices[$period] = [
'full' => get_sub_field('full'),
'day' => get_sub_field('day')
];
}
}
}
}
}
?>
<?php
$card_time = [];
if (have_rows('time', $card->ID)) {
while (have_rows('time', $card->ID)) {
the_row();
$card_time[] = [
'normal_days' => get_sub_field('normal_days'),
'vacation_days' => get_sub_field('vacation_days')
];
}
}
?>
<div>
<button
data-modal="club-card"
data-card-id="<?php echo $card->ID; ?>"
data-card-title="<?php echo esc_attr($card_heading); ?>"
data-card-prices='<?php echo esc_attr(json_encode($card_prices)); ?>'
data-card-time='<?php echo esc_attr(json_encode($card_time));
?>'
class="red-gradient-hover cursor-pointer flex text-[#f8f8f8] text-[18px] text-[#fff] font-[600] justify-center h-[59px] w-[160px] rounded-[90px] flex items-center">
<?php echo 'Оформить' ?>
</button>
</div>
<?php if ($card_price): ?>
<div class="flex items-center text-[20px] font-[600] leading-[125%]">
от 
<div class="rounded-[32px] px-[12px] h-[36px] flex items-center bg-[linear-gradient(90deg,_rgba(43,_44,_53,_0.06)_39.42%,_rgba(110,_121,_150,_0.06)_92.9%)]">
<span class="bg-[linear-gradient(90deg,_#2b2c35_67.31%,_#4f5870_92.9%)] text-[24px] flex items-center justify-center font-[600] bg-clip-text text-transparent"> <?php echo esc_html($card_price); ?> ₽ </span>
</div>
 в день
</div>
<?php endif; ?>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</section>
<section class="pt-[96px]">
<div class="container mx-auto">
<div class="p-[40px] dark:!border-none radial-gradient rounded-[24px] border-b-[4px] border-r-[0px] border-[#e21e24]"
<?php
if (get_current_room() === 'fitness') {
echo ' style="background: linear-gradient(180deg, #f9f9f9 69.59%, #ededed 100%);"';
} else {
echo ' style="background: linear-gradient(90deg, #2b2c35 53.4%, #4f5870 100%);"';
}
?>
>
<h2 class="font-[500] text-[32px] leading-[115%] text-[#222] dark:text-[#f8f8f8]">
<strong>В клубные карты</strong> входит
</h2>
<div class="mt-[24px] flex flex-wrap gap-[12px] w-full">
<?php
if (get_current_room() === 'fitness') {
$card_include = [
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2252_3443)">
<path d="M30.1357 13.7878C27.1811 11.2443 22.4588 12.0522 20.7407 15.6171C21.6969 15.8076 22.6197 16.1378 23.4796 16.5973C23.5448 16.632 23.6025 16.6792 23.6494 16.7363C23.6963 16.7933 23.7316 16.859 23.7531 16.9296C23.7746 17.0003 23.782 17.0745 23.7748 17.148C23.7677 17.2215 23.7461 17.2929 23.7114 17.358C23.6767 17.4232 23.6294 17.4809 23.5724 17.5278C23.5154 17.5748 23.4496 17.61 23.379 17.6315C23.3083 17.653 23.2341 17.6604 23.1606 17.6533C23.0871 17.6461 23.0158 17.6246 22.9506 17.5898C20.5335 16.2653 17.1725 16.0236 15.5747 18.9144L14.8915 17.8868L13.1186 15.2049C12.2108 13.8911 11.8325 11.4656 13.4518 10.5244C14.4427 9.95104 15.2182 9.06842 15.6593 8.01194H18.3017C18.4033 9.98804 19.0357 11.919 20.2891 11.919C20.494 11.8924 22.7806 11.9743 22.9483 11.8738C25.2801 11.2494 25.2858 3.05871 22.6491 2.95312H20.2891C19.03 2.95312 18.3977 4.901 18.296 6.88274H15.7271L15.2302 4.68645C15.1627 4.44481 15.0382 4.22287 14.8673 4.03918C14.6964 3.8555 14.484 3.71541 14.2478 3.63064C13.0571 3.18856 12.1842 4.47642 11.0014 4.48884L10.1037 4.6074C8.9423 4.60627 8.41891 6.01495 8.07112 6.88274H6.51282C6.41684 4.90664 5.78449 2.96442 4.52543 2.96442H2.1654C-0.550326 3.08524 -0.505158 11.8552 2.1654 11.9303C2.2196 11.9263 4.48195 11.9331 4.59883 11.9303C5.63205 11.823 6.13906 10.6227 6.39426 9.14114H5.24812C5.05051 10.18 4.7061 10.7615 4.53108 10.8011C4.26571 10.7446 3.6503 9.53636 3.6503 7.44734C3.6503 5.36397 4.26571 4.15008 4.52543 4.09362C4.76256 4.14443 5.28764 5.14377 5.38362 6.88274H4.60447C4.45473 6.88274 4.31112 6.94223 4.20524 7.04811C4.09936 7.15399 4.03987 7.2976 4.03987 7.44734C4.03987 7.59708 4.09936 7.74069 4.20524 7.84657C4.31112 7.95246 4.45473 8.01194 4.60447 8.01194C5.52816 8.01025 6.86231 8.01307 7.79446 8.01194C7.69968 8.56498 7.57147 9.11176 7.41054 9.64928C6.67656 12.2295 6.45072 15.9107 6.38861 18.5417C6.3403 20.5807 6.73721 22.6058 7.55169 24.4757L8.98013 27.7842C9.13735 28.1325 9.3857 28.4318 9.69895 28.6506C10.0122 28.8694 10.3787 28.9996 10.7598 29.0273C11.1409 29.0551 11.5224 28.9794 11.8641 28.8083C12.2057 28.6372 12.4948 28.377 12.7008 28.0552C12.7167 28.0298 12.7394 28.0094 12.7664 27.9964C12.7934 27.9834 12.8235 27.9784 12.8533 27.9818C20.6899 28.7497 27.2845 23.578 28.1257 22.8892C28.7524 22.6577 31.8069 21.376 32.1287 18.2538C32.1981 17.4019 32.0518 16.5463 31.7035 15.7658C31.3552 14.9854 30.816 14.3051 30.1357 13.7878ZM22.6491 4.08233C22.9088 4.13879 23.5242 5.34703 23.5242 7.43605C23.5242 9.51942 22.9088 10.7333 22.6547 10.7898C22.395 10.7333 21.7796 9.51942 21.7796 7.43605C21.7796 5.34703 22.395 4.13879 22.6491 4.08233Z" fill="url(#paint0_linear_2252_3443)" />
<path d="M23.2132 7.58476V7.29116C23.2132 7.14142 23.1537 6.99781 23.0478 6.89193C22.9419 6.78605 22.7983 6.72656 22.6486 6.72656C22.4988 6.72656 22.3552 6.78605 22.2494 6.89193C22.1435 6.99781 22.084 7.14142 22.084 7.29116V7.58476C22.084 7.7345 22.1435 7.87811 22.2494 7.98399C22.3552 8.08987 22.4988 8.14936 22.6486 8.14936C22.7983 8.14936 22.9419 8.08987 23.0478 7.98399C23.1537 7.87811 23.2132 7.7345 23.2132 7.58476Z" fill="url(#paint1_linear_2252_3443)" />
</g>
<defs>
<linearGradient id="paint0_linear_2252_3443" x1="0.145508" y1="15.993" x2="32.1455" y2="15.993" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_2252_3443" x1="22.084" y1="7.43796" x2="23.2132" y2="7.43796" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_2252_3443">
<rect width="32" height="32" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Тренажерный зал'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4045_11040)">
<path d="M27.25 23.875C28.8033 23.875 30.0625 22.6158 30.0625 21.0625C30.0625 19.5092 28.8033 18.25 27.25 18.25C25.6967 18.25 24.4375 19.5092 24.4375 21.0625C24.4375 22.6158 25.6967 23.875 27.25 23.875Z" fill="url(#paint0_linear_4045_11040)" />
<path d="M30.0609 24.8125C29.2772 25.4017 28.3038 25.7513 27.25 25.7513C26.1962 25.7513 25.2228 25.4017 24.4391 24.8125C23.2997 25.6676 22.5625 27.0296 22.5625 28.5638V32.0013H31C31.5177 32.0013 31.9375 31.5816 31.9375 31.0638V28.5638C31.9375 27.0296 31.2003 25.6676 30.0609 24.8125Z" fill="url(#paint1_linear_4045_11040)" />
<path d="M16 23.875C17.5533 23.875 18.8125 22.6158 18.8125 21.0625C18.8125 19.5092 17.5533 18.25 16 18.25C14.4467 18.25 13.1875 19.5092 13.1875 21.0625C13.1875 22.6158 14.4467 23.875 16 23.875Z" fill="url(#paint2_linear_4045_11040)" />
<path d="M18.8109 24.8125C18.0272 25.4017 17.0538 25.7513 16 25.7513C14.9462 25.7513 13.9728 25.4017 13.1891 24.8125C12.0497 25.6676 11.3125 27.0296 11.3125 28.5638V32.0013H20.6875V28.5638C20.6875 27.0296 19.9503 25.6676 18.8109 24.8125Z" fill="url(#paint3_linear_4045_11040)" />
<path d="M4.75 23.875C6.3033 23.875 7.5625 22.6158 7.5625 21.0625C7.5625 19.5092 6.3033 18.25 4.75 18.25C3.1967 18.25 1.9375 19.5092 1.9375 21.0625C1.9375 22.6158 3.1967 23.875 4.75 23.875Z" fill="url(#paint4_linear_4045_11040)" />
<path d="M7.56094 24.8112C6.77719 25.4004 5.80375 25.75 4.75 25.75C3.69625 25.75 2.72281 25.4004 1.93906 24.8112C0.799688 25.6663 0.0625 27.0282 0.0625 28.5625V31.0625C0.0625 31.5802 0.48225 32 1 32H9.4375V28.5625C9.4375 27.0282 8.70031 25.6663 7.56094 24.8112ZM19.75 10H21C21.1723 10 21.3125 9.85981 21.3125 9.6875V5.9375C21.3125 5.76519 21.1723 5.625 21 5.625H19.75C19.5777 5.625 19.4375 5.76519 19.4375 5.9375V9.6875C19.4375 9.85981 19.5777 10 19.75 10Z" fill="url(#paint5_linear_4045_11040)" />
<path d="M7.875 15.625H24.125C25.6758 15.625 26.9375 14.3633 26.9375 12.8125V2.8125C26.9375 1.26169 25.6758 0 24.125 0H7.875C6.32419 0 5.0625 1.26169 5.0625 2.8125V12.8125C5.0625 14.3633 6.32419 15.625 7.875 15.625ZM8.8125 5.9375C8.8125 4.73131 9.79381 3.75 11 3.75H12.25C13.4562 3.75 14.4375 4.73131 14.4375 5.9375V6.875H17.5625V5.9375C17.5625 4.73131 18.5438 3.75 19.75 3.75H21C22.2062 3.75 23.1875 4.73131 23.1875 5.9375V9.6875C23.1875 10.8937 22.2062 11.875 21 11.875H19.75C18.5438 11.875 17.5625 10.8937 17.5625 9.6875V8.75H14.4375V9.6875C14.4375 10.8937 13.4562 11.875 12.25 11.875H11C9.79381 11.875 8.8125 10.8937 8.8125 9.6875V5.9375Z" fill="url(#paint6_linear_4045_11040)" />
<path d="M11 10H12.25C12.4223 10 12.5625 9.85981 12.5625 9.6875V5.9375C12.5625 5.76519 12.4223 5.625 12.25 5.625H11C10.8277 5.625 10.6875 5.76519 10.6875 5.9375V9.6875C10.6875 9.85981 10.8277 10 11 10Z" fill="url(#paint7_linear_4045_11040)" />
</g>
<defs>
<linearGradient id="paint0_linear_4045_11040" x1="24.4375" y1="21.0625" x2="30.0625" y2="21.0625" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_11040" x1="22.5625" y1="28.4069" x2="31.9375" y2="28.4069" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_4045_11040" x1="13.1875" y1="21.0625" x2="18.8125" y2="21.0625" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint3_linear_4045_11040" x1="11.3125" y1="28.4069" x2="20.6875" y2="28.4069" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint4_linear_4045_11040" x1="1.9375" y1="21.0625" x2="7.5625" y2="21.0625" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint5_linear_4045_11040" x1="0.0625" y1="18.8125" x2="21.3125" y2="18.8125" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint6_linear_4045_11040" x1="5.0625" y1="7.8125" x2="26.9375" y2="7.8125" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint7_linear_4045_11040" x1="10.6875" y1="7.8125" x2="12.5625" y2="7.8125" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_4045_11040">
<rect width="32" height="32" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Групповые программы по расписанию'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M29.4606 25.3449H28.6555V11.7294C28.6555 11.6342 28.6293 11.5409 28.5796 11.4598C28.53 11.3786 28.4589 11.3128 28.3742 11.2695L26.593 10.3606L27.9035 7.84085C27.9641 7.7197 27.9747 7.57957 27.9329 7.45069C27.8911 7.32182 27.8003 7.21455 27.6801 7.15202C27.56 7.08949 27.42 7.07672 27.2905 7.11646C27.161 7.15621 27.0523 7.24528 26.9879 7.36447L23.887 13.3252C23.8544 13.3855 23.8342 13.4516 23.8274 13.5197C23.8206 13.5878 23.8275 13.6566 23.8476 13.7221C23.8677 13.7875 23.9006 13.8483 23.9444 13.9009C23.9882 13.9536 24.0421 13.9969 24.1028 14.0285C24.1635 14.0601 24.2299 14.0793 24.2982 14.085C24.3664 14.0907 24.4351 14.0827 24.5002 14.0616C24.5653 14.0405 24.6256 14.0066 24.6775 13.962C24.7294 13.9174 24.7719 13.8629 24.8026 13.8016L26.1161 11.2752L27.6227 12.0442V25.3449H6.83974L9.77032 20.7203C9.88819 20.5335 9.97206 20.3273 10.0181 20.1113L10.2142 19.1668L8.65032 18.5939C7.9318 18.287 7.32091 17.7731 6.89548 17.1178L6.49806 19.0378L3.62839 23.5642C3.46282 23.8287 3.36762 24.1311 3.35181 24.4428C3.336 24.7544 3.40011 25.065 3.53806 25.3449H2.53935C1.86588 25.3449 1.21998 25.6124 0.74376 26.0886C0.267538 26.5648 0 27.2107 0 27.8842C0 28.5577 0.267538 29.2036 0.74376 29.6798C1.21998 30.156 1.86588 30.4236 2.53935 30.4236H29.4606C30.1341 30.4236 30.78 30.156 31.2562 29.6798C31.7325 29.2036 32 28.5577 32 27.8842C32 27.2107 31.7325 26.5648 31.2562 26.0886C30.78 25.6124 30.1341 25.3449 29.4606 25.3449Z" fill="url(#paint0_linear_4045_4481)" />
<path d="M17.3363 9.97687L17.1867 9.82203C17.1859 10.5312 16.9797 11.2249 16.5931 11.8195L15.8086 13.0427C15.9634 13.2294 16.1574 13.3799 16.3768 13.4833C16.5962 13.5868 16.8357 13.6408 17.0783 13.6414C17.3753 13.6415 17.6665 13.5594 17.9196 13.404L22.2809 10.7304C22.4626 10.6205 22.6209 10.4757 22.7466 10.3045C22.8722 10.1332 22.9628 9.93877 23.0131 9.73238C23.0634 9.52599 23.0724 9.31169 23.0396 9.10181C23.0068 8.89192 22.9329 8.69059 22.822 8.50937C22.7112 8.32815 22.5656 8.17062 22.3937 8.04582C22.2218 7.92103 22.0269 7.83144 21.8203 7.7822C21.6137 7.73296 21.3993 7.72503 21.1896 7.75888C20.9799 7.79274 20.7789 7.86769 20.5983 7.97945L17.3363 9.97687Z" fill="url(#paint1_linear_4045_4481)" />
<path d="M4.14944 11.1013C4.36483 11.4702 4.71657 11.7397 5.12883 11.8517C5.5411 11.9637 5.98086 11.9092 6.35332 11.7L9.13009 10.1103L9.99719 10.1516L7.76235 13.6458C7.55235 13.9815 7.41746 14.3587 7.36692 14.7515C7.31637 15.1443 7.35138 15.5434 7.46953 15.9214C7.58768 16.2994 7.78619 16.6473 8.05143 16.9414C8.31667 17.2355 8.64238 17.4687 9.00622 17.6251L12.2475 18.8174L10.5701 21.5322C10.3232 21.9468 10.2497 22.4419 10.3654 22.9103C10.4811 23.3787 10.7767 23.7826 11.1882 24.0345C11.5997 24.2864 12.0938 24.366 12.5636 24.2561C13.0334 24.1461 13.4409 23.8554 13.6978 23.4471L16.5365 18.8225C16.6798 18.5921 16.7695 18.3324 16.799 18.0626C16.8285 17.7928 16.797 17.5198 16.7069 17.2638C16.6171 17.0085 16.472 16.7761 16.2819 16.5834C16.0919 16.3907 15.8616 16.2424 15.6075 16.149L13.1714 15.2509L15.7262 11.2613C16.1121 10.6558 16.2425 9.92213 16.0887 9.22081C15.9349 8.5195 15.5095 7.90769 14.9056 7.51932C14.8926 7.50957 14.8787 7.50094 14.8643 7.49351C13.8062 6.78126 9.95074 6.82771 8.82557 6.86384C8.51514 6.84381 8.20585 6.91754 7.93783 7.07545L4.74815 8.89739C4.56404 9.00269 4.4025 9.14326 4.27275 9.31104C4.143 9.47883 4.0476 9.67054 3.992 9.87522C3.93639 10.0799 3.92168 10.2935 3.94869 10.5039C3.97571 10.7143 4.04393 10.9173 4.14944 11.1013ZM18.7559 4.35029C18.7559 3.78578 18.5885 3.23395 18.2749 2.76458C17.9613 2.29521 17.5155 1.92938 16.994 1.71336C16.4724 1.49733 15.8985 1.44081 15.3449 1.55094C14.7912 1.66107 14.2826 1.9329 13.8835 2.33207C13.4843 2.73124 13.2125 3.2398 13.1024 3.79346C12.9922 4.34712 13.0487 4.92101 13.2648 5.44254C13.4808 5.96408 13.8466 6.40984 14.316 6.72346C14.7854 7.03709 15.3372 7.20448 15.9017 7.20448C16.6586 7.20407 17.3843 6.90323 17.9195 6.36806C18.4546 5.83288 18.7555 5.10714 18.7559 4.35029Z" fill="url(#paint2_linear_4045_4481)" />
<defs>
<linearGradient id="paint0_linear_4045_4481" x1="0" y1="18.7587" x2="32" y2="18.7587" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_4481" x1="15.8086" y1="10.6898" x2="23.0589" y2="10.6898" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_4045_4481" x1="3.93555" y1="12.9002" x2="18.7559" y2="12.9002" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'heading' => 'Кардио зона'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4045_16041)">
<path d="M2.9082 10.1836H21.8173V21.82H2.9082V10.1836Z" fill="url(#paint0_linear_4045_16041)" />
<path d="M30.5445 13.0916V10.1825C30.5445 8.57588 29.2421 7.27344 27.6355 7.27344H2.90809C1.30146 7.27338 -0.000976562 8.57582 -0.000976562 10.1824V21.8188C-0.000976562 23.4255 1.30146 24.7279 2.90809 24.7279H27.6354C29.242 24.7279 30.5445 23.4255 30.5445 21.8188V18.9098C31.3478 18.9098 31.999 18.2585 31.999 17.4552V14.5461C31.9991 13.7428 31.3478 13.0916 30.5445 13.0916ZM29.09 14.5461V21.8188C29.09 22.6222 28.4388 23.2734 27.6355 23.2734H2.90809C2.10478 23.2734 1.45353 22.6222 1.45353 21.8188V10.1824C1.45353 9.37913 2.10478 8.72788 2.90809 8.72788H27.6354C28.4387 8.72788 29.09 9.37913 29.09 10.1824L29.09 14.5461Z" fill="url(#paint1_linear_4045_16041)" />
</g>
<defs>
<linearGradient id="paint0_linear_4045_16041" x1="2.9082" y1="16.0018" x2="21.8173" y2="16.0018" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_16041" x1="-0.000976562" y1="16.0007" x2="31.999" y2="16.0007" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_4045_16041">
<rect width="32" height="32" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Зарядка телефона'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4045_16581)">
<path d="M16.9414 24.4688H32.0002V28.2335H16.9414V24.4688ZM16.9414 30.1158H18.8238V31.9982H16.9414V30.1158ZM30.1179 30.1158H32.0002V31.9982H30.1179V30.1158Z" fill="url(#paint0_linear_4045_16581)" />
<path d="M24.4706 0H13.1765V28.2353H15.0588V22.5882H24.4706V0ZM20.7059 16.9412H18.8235V15.0588H20.7059V16.9412ZM21.6471 13.1765H16V11.2941H21.6471V13.1765ZM21.6471 9.41177H16V7.52941H21.6471V9.41177ZM21.6471 5.64706H16V3.76471H21.6471V5.64706ZM0 28.2353H11.2941V0H0V28.2353ZM7.52941 16.9412H5.64706V15.0588H7.52941V16.9412ZM2.82353 3.76471H8.47059V5.64706H2.82353V3.76471ZM2.82353 7.52941H8.47059V9.41177H2.82353V7.52941ZM2.82353 11.2941H8.47059V13.1765H2.82353V11.2941Z" fill="url(#paint1_linear_4045_16581)" />
</g>
<defs>
<linearGradient id="paint0_linear_4045_16581" x1="16.9414" y1="28.2335" x2="32.0002" y2="28.2335" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_16581" x1="0" y1="14.1176" x2="24.4706" y2="14.1176" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_4045_16581">
<rect width="32" height="32" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Раздевалки с душевыми'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M32 10.3125H30.125V5.625H24.5V10.3125H22.625V1.875H20.75V10.3125H11.25V1.875H9.375V10.3125H7.5V5.625H1.875V10.3125H0V12.1875H1.875V16.875H7.5V12.1875H9.375V17.8125H11.25V12.1875H20.75V17.8125H22.625V12.1875H24.5V16.875H30.125V12.1875H32V10.3125ZM20.75 28.25H18.8125V25.3125H13.1875V28.25H11.25V25.3125H9.375V28.25H5.625V30.125H26.375V28.25H22.625V25.3125H20.75V28.25ZM9.375 19.6875C8.33944 19.6875 7.5 20.5269 7.5 21.5625V23.4375H24.5V21.5625C24.5 20.5269 23.6606 19.6875 22.625 19.6875H9.375Z" fill="url(#paint0_linear_4045_11035)" />
<defs>
<linearGradient id="paint0_linear_4045_11035" x1="0" y1="16" x2="32" y2="16" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'heading' => 'Функциональная зона'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4045_16813)">
<path d="M7.55419 4.07594C5.51006 4.07594 3.84713 5.73894 3.84713 7.783C3.84713 9.82706 5.51012 11.4901 7.55419 11.4901C9.59825 11.4901 11.2612 9.82713 11.2612 7.783C11.2612 5.73887 9.59831 4.07594 7.55419 4.07594ZM23.1314 28.9351L19.8125 19.5746H13.3811L10.4361 12.5847H5.63L1.96512 22.5525C1.81917 22.95 1.78489 23.3799 1.866 23.7955H0V25.6705H15.8704L18.996 30.8839C19.4223 31.5949 20.1832 31.9995 20.9696 31.9995C21.2884 31.9995 21.6038 31.9328 21.8953 31.8037C22.9876 31.3207 23.5304 30.0607 23.1314 28.9351ZM6.59656 23.7955L7.713 22.0056L8.66025 23.7955H6.59656ZM22.4816 7.04119C22.4816 5.85294 22.0011 5.20088 21.6501 4.72475C21.3597 4.33063 21.1843 4.09269 21.1843 3.52069C21.1843 2.94862 21.3597 2.71075 21.6502 2.3165C22.001 1.84037 22.4816 1.18831 22.4816 0H20.6066C20.6066 0.572 20.4312 0.809938 20.1408 1.20413C19.7899 1.68025 19.3093 2.33231 19.3093 3.52062C19.3093 4.70887 19.7899 5.36094 20.1408 5.83706C20.4312 6.23119 20.6066 6.46913 20.6066 7.04113C20.6066 7.61331 20.4313 7.85125 20.1408 8.2455C19.7899 8.72181 19.3093 9.37394 19.3093 10.5623C19.3093 11.7507 19.7898 12.4028 20.1408 12.8789C20.4313 13.2732 20.6066 13.5112 20.6066 14.0833H22.4816C22.4816 12.8949 22.0011 12.2428 21.6502 11.7666C21.3597 11.3724 21.1843 11.1344 21.1843 10.5623C21.1843 9.99006 21.3597 9.75219 21.6502 9.35787C22.0011 8.88169 22.4816 8.22956 22.4816 7.04119ZM27.2408 7.04113C27.2408 5.85288 26.7603 5.20081 26.4093 4.72469C26.1189 4.33056 25.9435 4.09262 25.9435 3.52062C25.9435 2.94856 26.1189 2.71069 26.4094 2.31644C26.7602 1.8405 27.2408 1.18844 27.2408 0.000125H25.3658C25.3658 0.572125 25.1904 0.810062 24.9 1.20425C24.5491 1.68037 24.0685 2.33244 24.0685 3.52075C24.0685 4.709 24.5491 5.36106 24.9 5.83719C25.1904 6.23131 25.3658 6.46925 25.3658 7.04125C25.3658 7.61344 25.1904 7.85138 24.8999 8.24563C24.5491 8.72181 24.0685 9.37394 24.0685 10.5623C24.0685 11.7506 24.549 12.4028 24.8999 12.8789C25.1904 13.2731 25.3658 13.5111 25.3658 14.0833H27.2408C27.2408 12.8949 26.7603 12.2428 26.4094 11.7666C26.1189 11.3723 25.9435 11.1344 25.9435 10.5622C25.9435 9.99 26.1189 9.75213 26.4094 9.35781C26.7603 8.88163 27.2408 8.2295 27.2408 7.04113ZM32 7.04131C32 5.85306 31.5194 5.201 31.1685 4.72487C30.8781 4.33075 30.7027 4.09281 30.7027 3.52081C30.7027 2.94875 30.8781 2.71087 31.1685 2.31662C31.5194 1.8405 32 1.18844 32 0.000125H30.125C30.125 0.572125 29.9496 0.810062 29.6592 1.20425C29.3083 1.68037 28.8277 2.33244 28.8277 3.52075C28.8277 4.709 29.3083 5.36106 29.6592 5.83719C29.9496 6.23131 30.125 6.46925 30.125 7.04125C30.125 7.61344 29.9496 7.85138 29.6591 8.24563C29.3082 8.72181 28.8277 9.37394 28.8277 10.5623C28.8277 11.7506 29.3082 12.4028 29.6591 12.8789C29.9496 13.2731 30.125 13.5111 30.125 14.0833H32C32 12.8949 31.5195 12.2428 31.1686 11.7666C30.8781 11.3723 30.7027 11.1344 30.7027 10.5622C30.7027 9.99 30.8781 9.75213 31.1686 9.35781C31.5195 8.88181 32 8.22969 32 7.04131Z" fill="url(#paint0_linear_4045_16813)" />
</g>
<defs>
<linearGradient id="paint0_linear_4045_16813" x1="0" y1="15.9998" x2="32" y2="15.9998" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_4045_16813">
<rect width="32" height="32" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Сауна'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4045_16672)">
<path d="M28.6292 19.3701L21.3464 22.1011C22.1479 22.5956 22.7401 23.367 23.0106 24.269C23.2811 25.1711 23.2112 26.141 22.814 26.9949L29.4126 24.5177C29.6625 24.3875 29.8897 24.2179 30.0857 24.0156C30.344 23.7615 30.5488 23.4583 30.6881 23.1238C30.8274 22.7893 30.8984 22.4303 30.8968 22.068C30.8945 21.424 30.6663 20.8012 30.2519 20.3081C29.8375 19.8151 29.2632 19.4831 28.6292 19.3701ZM22.0637 25.2846V25.2791C22.0393 24.5653 21.7386 23.8889 21.2249 23.3927C20.7112 22.8965 20.0248 22.6193 19.3106 22.6197H2.75885C2.02722 22.6197 1.32555 22.9104 0.808208 23.4277C0.290867 23.9451 0.000227165 24.6467 0.000227165 25.3784C-0.000687015 25.4097 0.00115918 25.4411 0.00574441 25.4722V25.4777C0.0300759 26.1915 0.330841 26.8679 0.844534 27.3641C1.35823 27.8603 2.04464 28.1374 2.75885 28.137H19.3106C20.0422 28.137 20.7439 27.8463 21.2612 27.329C21.7786 26.8117 22.0692 26.11 22.0692 25.3784C22.0701 25.347 22.0683 25.3156 22.0637 25.2846ZM19.8623 25.9301H2.20712C2.0608 25.9301 1.92046 25.872 1.817 25.7685C1.71353 25.665 1.6554 25.5247 1.6554 25.3784C1.6554 25.232 1.71353 25.0917 1.817 24.9882C1.92046 24.8848 2.0608 24.8266 2.20712 24.8266H19.8623C20.0086 24.8266 20.149 24.8848 20.2524 24.9882C20.3559 25.0917 20.414 25.232 20.414 25.3784C20.414 25.5247 20.3559 25.665 20.2524 25.7685C20.149 25.872 20.0086 25.9301 19.8623 25.9301ZM22.0637 18.6639V18.6584C22.0393 17.9446 21.7386 17.2682 21.2249 16.772C20.7112 16.2758 20.0248 15.9986 19.3106 15.9991H2.75885C2.02722 15.9991 1.32555 16.2897 0.808208 16.807C0.290867 17.3244 0.000227165 18.026 0.000227165 18.7577C-0.000687015 18.789 0.00115918 18.8204 0.00574441 18.8515V18.857C0.0300759 19.5708 0.330841 20.2472 0.844534 20.7434C1.35823 21.2396 2.04464 21.5167 2.75885 21.5163H19.3106C19.7316 21.5189 20.1474 21.4225 20.5244 21.2349C20.5398 21.2253 20.5565 21.2179 20.574 21.2129C20.8278 21.0821 21.0595 20.9105 21.2582 20.7053C21.5164 20.4512 21.7212 20.1479 21.8605 19.8134C21.9998 19.479 22.0708 19.12 22.0692 18.7577C22.0701 18.7263 22.0683 18.6949 22.0637 18.6639ZM19.8623 19.3094H2.20712C2.0608 19.3094 1.92046 19.2513 1.817 19.1478C1.71353 19.0443 1.6554 18.904 1.6554 18.7577C1.6554 18.6114 1.71353 18.471 1.817 18.3675C1.92046 18.2641 2.0608 18.206 2.20712 18.206H19.8623C20.0086 18.206 20.149 18.2641 20.2524 18.3675C20.3559 18.471 20.414 18.6114 20.414 18.7577C20.414 18.904 20.3559 19.0443 20.2524 19.1478C20.149 19.2513 20.0086 19.3094 19.8623 19.3094ZM22.0637 12.0432V12.0377C22.0393 11.3239 21.7386 10.6475 21.2249 10.1513C20.7112 9.6551 20.0248 9.37795 19.3106 9.37837H2.75885C2.52605 9.37676 2.29408 9.40645 2.06919 9.46664C2.05415 9.47124 2.03941 9.47677 2.02505 9.4832C1.56578 9.60571 1.14704 9.84743 0.811262 10.1839C0.553319 10.4394 0.348776 10.7437 0.209538 11.079C0.0703002 11.4143 -0.00085058 11.7739 0.000227165 12.137C-0.000687015 12.1684 0.00115918 12.1997 0.00574441 12.2308V12.2363C0.0300759 12.9501 0.330841 13.6265 0.844534 14.1227C1.35823 14.6189 2.04464 14.896 2.75885 14.8956H19.3106C19.7316 14.8982 20.1474 14.8018 20.5244 14.6142C20.5398 14.6046 20.5565 14.5972 20.574 14.5922C20.8278 14.4614 21.0595 14.2898 21.2582 14.0846C21.5164 13.8305 21.7212 13.5272 21.8605 13.1928C21.9998 12.8583 22.0708 12.4993 22.0692 12.137C22.0701 12.1056 22.0683 12.0742 22.0637 12.0432ZM19.8623 12.6887H2.20712C2.0608 12.6887 1.92046 12.6306 1.817 12.5271C1.71353 12.4236 1.6554 12.2833 1.6554 12.137C1.6554 11.9907 1.71353 11.8503 1.817 11.7469C1.92046 11.6434 2.0608 11.5853 2.20712 11.5853H19.8623C20.0086 11.5853 20.149 11.6434 20.2524 11.7469C20.3559 11.8503 20.414 11.9907 20.414 12.137C20.414 12.2833 20.3559 12.4236 20.2524 12.5271C20.149 12.6306 20.0086 12.6887 19.8623 12.6887ZM28.1382 6.06802H11.5864C11.3497 6.06802 11.1142 6.09947 10.8857 6.16182C10.6651 6.23354 7.97264 7.2432 5.22506 8.27492H19.3106C19.9579 8.27509 20.5948 8.43797 21.1627 8.74859C21.7306 9.0592 22.2114 9.50758 22.5608 10.0525C22.9102 10.5975 23.117 11.2215 23.1622 11.8672C23.2074 12.513 23.0896 13.1597 22.8195 13.748L25.2692 12.8322C27.2995 12.0653 28.6126 11.5742 29.3575 11.2984C29.3795 11.2873 29.4071 11.2708 29.4402 11.2542C29.6821 11.1336 29.9006 10.9711 30.0857 10.7742C30.344 10.5201 30.5488 10.2169 30.6881 9.88242C30.8274 9.54794 30.8984 9.18896 30.8968 8.82664C30.8968 8.09501 30.6061 7.39335 30.0888 6.876C29.5715 6.35866 28.8698 6.06802 28.1382 6.06802ZM28.6347 12.7439C27.8954 13.0197 26.9188 13.3894 25.6554 13.8639L21.3464 15.4804C21.9043 15.8265 22.3647 16.309 22.6842 16.8824C23.0037 17.4558 23.1719 18.1012 23.1726 18.7577C23.1711 19.3155 23.0508 19.8666 22.8195 20.3742L29.352 17.9191C29.3795 17.908 29.4071 17.8915 29.4402 17.8749C29.6821 17.7543 29.9006 17.5918 30.0857 17.3949C30.344 17.1408 30.5488 16.8376 30.6881 16.5031C30.8274 16.1686 30.8984 15.8097 30.8968 15.4473C30.8944 14.8036 30.667 14.1809 30.2539 13.6872C29.8407 13.1935 29.268 12.8598 28.6347 12.7439ZM4.41402 2.75768C4.56035 2.75768 4.70068 2.69955 4.80415 2.59608C4.90762 2.49261 4.96574 2.35228 4.96574 2.20595V1.10251C4.96574 0.956179 4.90762 0.81 Line truncated
</g>
<defs>
<linearGradient id="paint0_linear_4045_16672" x1="0" y1="16.0024" x2="31.9934" y2="16.0024" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_4045_16672">
<rect width="32" height="32" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Полотенце'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.4107 19.8692C16.4107 16.9322 18.2742 14.4293 20.8782 13.4613C18.2967 8.79375 14.2837 3.79275 13.0377 2.28125C11.1502 4.57325 2.90723 14.8688 2.90723 19.8703C2.90723 25.4557 7.45123 30.0002 13.0372 30.0002C16.0792 30.0002 18.9602 28.6187 20.8762 26.2762C18.2732 25.3077 16.4107 22.8047 16.4107 19.8692ZM13.0372 27.3137C8.93273 27.3137 5.59273 23.9742 5.59273 19.8692C5.59273 19.7366 5.6454 19.6095 5.73917 19.5157C5.83294 19.4219 5.96012 19.3692 6.09273 19.3692C6.22533 19.3692 6.35251 19.4219 6.44628 19.5157C6.54005 19.6095 6.59273 19.7366 6.59273 19.8692C6.59273 23.4222 9.48373 26.3137 13.0372 26.3137C13.1698 26.3137 13.297 26.3664 13.3908 26.4602C13.4845 26.554 13.5372 26.6811 13.5372 26.8137C13.5372 26.9464 13.4845 27.0735 13.3908 27.1673C13.297 27.2611 13.1698 27.3137 13.0372 27.3137Z" fill="url(#paint0_linear_4045_16129)" />
<path d="M23.2517 14.0273C20.0307 14.0273 17.4102 16.6478 17.4102 19.8688C17.4102 23.0898 20.0307 25.7098 23.2517 25.7098C26.4727 25.7098 29.0927 23.0898 29.0927 19.8688C29.0927 16.6478 26.4722 14.0273 23.2517 14.0273ZM26.3352 18.5308L22.9527 21.9133C22.9063 21.9599 22.8512 21.9969 22.7906 22.0221C22.7299 22.0474 22.6649 22.0604 22.5992 22.0604C22.5335 22.0604 22.4684 22.0474 22.4077 22.0221C22.3471 21.9969 22.292 21.9599 22.2457 21.9133L20.1682 19.8358C20.1217 19.7894 20.0849 19.7343 20.0598 19.6737C20.0347 19.613 20.0217 19.548 20.0217 19.4823C20.0217 19.4167 20.0347 19.3517 20.0598 19.291C20.0849 19.2304 20.1217 19.1753 20.1682 19.1288C20.2146 19.0824 20.2697 19.0456 20.3303 19.0205C20.391 18.9953 20.456 18.9824 20.5217 18.9824C20.5873 18.9824 20.6523 18.9953 20.713 19.0205C20.7736 19.0456 20.8287 19.0824 20.8752 19.1288L22.5992 20.8528L25.6282 17.8238C25.6746 17.7774 25.7297 17.7406 25.7903 17.7155C25.851 17.6903 25.916 17.6774 25.9817 17.6774C26.0473 17.6774 26.1123 17.6903 26.173 17.7155C26.2336 17.7406 26.2887 17.7774 26.3352 17.8238C26.3816 17.8703 26.4184 17.9254 26.4435 17.986C26.4687 18.0467 26.4816 18.1117 26.4816 18.1773C26.4816 18.243 26.4687 18.308 26.4435 18.3687C26.4184 18.4293 26.3816 18.4844 26.3352 18.5308Z" fill="url(#paint1_linear_4045_16129)" />
<defs>
<linearGradient id="paint0_linear_4045_16129" x1="2.90723" y1="16.1407" x2="20.8782" y2="16.1407" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_16129" x1="17.4102" y1="19.8686" x2="29.0927" y2="19.8686" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'heading' => 'Питьевая вода'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.61233 9.35569C9.93212 9.16782 10.2959 9.06774 10.6667 9.06555C10.7126 9.06555 15.2673 9.04209 16.9899 7.29915C17.1318 7.15411 17.3068 7.04568 17.4999 6.98316C17.6929 6.92065 17.8982 6.90591 18.0982 6.94022C18.3125 6.976 18.5152 7.06241 18.6894 7.19228C18.8636 7.32214 19.0043 7.49171 19.0998 7.68688C19.2842 8.11314 19.5938 8.47327 19.9875 8.71949C20.3813 8.96572 20.8407 9.08641 21.3046 9.06555C21.6859 9.06977 22.0595 9.17366 22.3883 9.36689C22.3312 7.71174 21.6339 6.14337 20.4434 4.99216C19.2528 3.84095 17.6619 3.19677 16.0057 3.19531C14.3496 3.19386 12.7576 3.83525 11.565 4.98438C10.3724 6.1335 9.67235 7.70064 9.61233 9.35569ZM4.0982 30.9322H7.335C6.87519 30.5352 6.50611 30.0441 6.25278 29.4919C5.99945 28.9398 5.86779 28.3397 5.86673 27.7322C5.86594 26.7553 6.191 25.806 6.79047 25.0346C7.31092 24.2894 7.75207 23.4918 8.10673 22.6549L6.831 23.0997C6.17259 23.3243 5.58896 23.7262 5.14441 24.2613C4.69986 24.7964 4.41165 25.4438 4.31153 26.1322L3.73607 30.5376C3.72999 30.5858 3.73432 30.6348 3.74876 30.6813C3.76321 30.7277 3.78743 30.7706 3.8198 30.8069C3.85462 30.8464 3.89747 30.878 3.94547 30.8996C3.99348 30.9212 4.04555 30.9323 4.0982 30.9322Z" fill="url(#paint0_linear_4045_10906)" />
<path d="M6.93359 27.7342C6.93952 28.5875 7.28361 29.4035 7.8904 30.0034C8.49719 30.6033 9.31714 30.938 10.1704 30.9342H21.8285C22.6821 30.9385 23.5024 30.6039 24.1096 30.004C24.7167 29.404 25.061 28.5877 25.0669 27.7342C25.0647 26.9965 24.8198 26.28 24.3699 25.6953C23.6204 24.602 23.0047 23.423 22.5357 22.1833L19.5821 21.1523C19.6219 21.6381 19.5642 22.1268 19.4123 22.5899C19.2605 23.053 19.0176 23.481 18.6979 23.8489C18.3722 24.2233 17.9717 24.5252 17.5221 24.7351C17.0725 24.9451 16.5838 25.0583 16.0877 25.0675H15.9107C15.4152 25.0579 14.9273 24.9445 14.4784 24.7347C14.0295 24.5249 13.6295 24.2233 13.3043 23.8494C12.9846 23.4816 12.7416 23.0535 12.5898 22.5905C12.4379 22.1274 12.3802 21.6386 12.42 21.1529L9.46639 22.1838C8.99728 23.4237 8.38134 24.603 7.63173 25.6963C7.18167 26.2806 6.93635 26.9967 6.93359 27.7342Z" fill="url(#paint1_linear_4045_10906)" />
<path d="M16.9217 19.5733C16.3254 19.7859 15.6739 19.7859 15.0775 19.5733C14.6191 19.4097 14.1745 19.21 13.7479 18.976L13.4881 21.1381C13.4452 21.4976 13.4781 21.862 13.5847 22.208C13.6914 22.554 13.8694 22.8737 14.1073 23.1466C14.333 23.4099 14.6121 23.6222 14.9262 23.7693C15.2402 23.9164 15.5819 23.9951 15.9287 24H16.0684C16.4155 23.9953 16.7576 23.9168 17.072 23.7696C17.3864 23.6225 17.6659 23.4101 17.8919 23.1466C18.1297 22.8739 18.3076 22.5543 18.4143 22.2085C18.5209 21.8627 18.5539 21.4985 18.5111 21.1392L18.2513 18.977C17.8246 19.2107 17.38 19.4101 16.9217 19.5733ZM18.3692 2.52528C18.148 2.0866 17.8093 1.71794 17.391 1.46037C16.9726 1.20279 16.4909 1.06641 15.9996 1.06641C15.5083 1.06641 15.0266 1.20279 14.6083 1.46037C14.1899 1.71794 13.8512 2.0866 13.63 2.52528C15.1665 2.00277 16.8327 2.00277 18.3692 2.52528ZM28.1799 30.808C28.2127 30.7719 28.2374 30.7291 28.2523 30.6827C28.2672 30.6362 28.272 30.5871 28.2663 30.5386L27.6903 26.128C27.5893 25.4402 27.3005 24.7937 26.8557 24.2596C26.4109 23.7255 25.8273 23.3245 25.1692 23.1007L23.8929 22.656C24.2476 23.4927 24.6888 24.2901 25.2092 25.0352C25.8088 25.8067 26.1339 26.7562 26.1329 27.7333C26.1321 28.3406 26.0007 28.9407 25.7476 29.4928C25.4946 30.0449 25.1258 30.5362 24.6663 30.9333H27.9031C27.9555 30.9332 28.0072 30.9219 28.0549 30.9003C28.1026 30.8787 28.1452 30.8472 28.1799 30.808ZM20.8028 12.8559C20.795 12.7816 20.8028 12.7065 20.8259 12.6354C20.849 12.5643 20.8867 12.4988 20.9367 12.4433C20.9867 12.3877 21.0478 12.3433 21.116 12.3128C21.1843 12.2824 21.2582 12.2667 21.3329 12.2666C21.4801 12.2666 21.6257 12.2362 21.7606 12.1772C21.8954 12.1182 22.0166 12.0319 22.1165 11.9238C22.2164 11.8157 22.2928 11.6881 22.341 11.549C22.3892 11.41 22.408 11.2624 22.3964 11.1157C22.3651 10.8456 22.2358 10.5965 22.033 10.4154C21.8302 10.2343 21.568 10.134 21.2961 10.1333C20.6344 10.1526 19.9817 9.97544 19.4205 9.62425C18.8592 9.27306 18.4146 8.76354 18.1425 8.15995C18.1222 8.11697 18.092 8.07943 18.0544 8.05041C18.0167 8.02139 17.9727 8.00172 17.926 7.99302C17.8939 7.98695 17.8608 7.989 17.8297 7.99896C17.7986 8.00893 17.7705 8.0265 17.7479 8.05008C15.7127 10.1098 10.8716 10.1333 10.6663 10.1333C10.3834 10.1333 10.1121 10.2457 9.91203 10.4457C9.71199 10.6457 9.59961 10.9171 9.59961 11.1999C9.59961 11.4828 9.71199 11.7542 9.91203 11.9542C10.1121 12.1542 10.3834 12.2666 10.6663 12.2666C10.741 12.2667 10.8149 12.2824 10.8832 12.3128C10.9514 12.3433 11.0126 12.3877 11.0625 12.4433C11.1125 12.4988 11.1503 12.5643 11.1733 12.6354C11.1964 12.7065 11.2043 12.7816 11.1964 12.8559C11.1793 13.0266 10.8391 16.9258 15.4364 18.5695C15.8007 18.6992 16.1985 18.6992 16.5628 18.5695C21.1633 16.9248 20.8193 13.0213 20.8028 12.8559Z" fill="url(#paint2_linear_4045_10906)" />
<defs>
<linearGradient id="paint0_linear_4045_10906" x1="3.7334" y1="17.0638" x2="22.3883" y2="17.0638" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_10906" x1="6.93359" y1="26.0433" x2="25.0669" y2="26.0433" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_4045_10906" x1="9.59961" y1="15.9998" x2="28.2686" y2="15.9998" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'heading' => 'Вводный инструктаж'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4045_16587)">
<path d="M8.24577 10.0705L8.26369 10.0769C9.49057 10.4801 10.5952 10.7354 11.5783 10.8429C11.6602 10.6356 11.744 10.4333 11.8285 10.2388C12.7699 8.06662 14.5671 5.07206 16.6823 3.87718C16.9429 3.72924 17.2239 3.62055 17.5162 3.55462C17.3578 3.41585 17.1913 3.28656 17.0176 3.16742C13.7248 0.921021 8.33281 -0.56506 6.28481 0.2055C5.69857 0.4263 5.24929 0.96198 5.09889 1.76774C4.76801 4.00006 4.84289 5.8023 5.32289 7.17318C5.82657 8.60934 6.80129 9.5751 8.24577 10.0705Z" fill="url(#paint0_linear_4045_16587)" />
<path d="M9.85504 18.9095L10.3126 18.2733C10.4342 18.1043 10.5776 17.9603 10.737 17.8426C10.2358 16.0903 10.5411 14.0199 11.1075 12.1843C10.257 12.0704 9.3392 11.8637 8.35424 11.5648C8.43616 11.9731 8.46304 12.3834 8.43488 12.7936C8.3728 13.7043 8.03872 14.6016 7.43264 15.4842C7.21632 15.801 6.78368 15.8823 6.46688 15.6659C6.15008 15.4496 6.0688 15.017 6.28512 14.7002C6.74784 14.0269 7.00128 13.3581 7.04608 12.6957C7.2048 10.361 4.98016 10.3968 4.00992 7.6301C3.52288 6.24066 3.38912 4.51458 3.608 2.45314C3.12416 2.45122 2.65376 2.61826 2.29984 3.0477C0.159041 5.65378 -0.621759 14.0608 2.17504 16.873L9.85504 18.9095ZM0.482241 23.3651L5.8768 24.7719C5.92672 24.489 6.03872 24.2138 6.21664 23.9661L7.92864 21.5859L1.3904 19.8816L0.482241 23.3651ZM9.35136 19.609L2.51168 17.8253C2.21024 17.7466 1.89984 17.929 1.82112 18.2304L1.7424 18.5319L8.80224 20.3731L9.35136 19.609ZM6.23584 26.3079L0.130241 24.7155L0.0515212 25.017C-0.0271988 25.3184 0.155201 25.6288 0.456641 25.7075L7.96064 27.664L6.66848 26.7347C6.50306 26.6157 6.35712 26.4717 6.23584 26.3079ZM31.0666 10.5248C28.3402 6.5773 22.3728 2.57666 21.1082 4.3245C19.8762 5.39842 20.3709 8.24962 18.4022 11.9559C18.2659 12.3155 17.8634 12.4967 17.5037 12.3603C17.144 12.224 16.9629 11.8215 17.0992 11.4618C17.7546 9.71586 18.8803 6.9101 18.9059 5.06562C18.4317 4.85378 17.8973 4.81858 17.3795 5.11042C14.4432 6.7693 10.6858 14.3303 12.2819 17.9616L21.9421 24.9722C26.6403 23.6327 34.6634 15.7319 31.0666 10.5248ZM15.0986 27.6768C15.576 27.5987 16.024 27.3402 16.3267 26.9197C16.6301 26.4986 16.7331 25.9911 16.6563 25.5143C16.5782 25.0375 16.319 24.5901 15.8973 24.2867L10.5168 20.416L8.31328 23.4784L13.6931 27.3491C14.1142 27.6519 14.6211 27.7549 15.0986 27.6768Z" fill="url(#paint1_linear_4045_16587)" />
<path d="M21.0225 25.283L12.2526 18.9733C11.9998 18.7915 11.6446 18.8491 11.4622 19.1019L11.331 19.2843L16.7108 23.155C17.4423 23.6811 17.8923 24.46 18.0279 25.2894L18.0286 25.2933C18.1636 26.1227 17.9844 27.004 17.4583 27.7355C16.931 28.4683 16.1521 28.9195 15.3227 29.0545C14.4926 29.1902 13.6113 29.0097 12.8779 28.483L7.49801 24.6123L7.36681 24.7953C7.18505 25.0481 7.24265 25.404 7.49545 25.5857L16.2654 31.8955C16.5182 32.0773 16.8734 32.019 17.0558 31.7662L21.1511 26.0734C21.3335 25.8206 21.2753 25.4648 21.0225 25.283Z" fill="url(#paint2_linear_4045_16587)" />
</g>
<defs>
<linearGradient id="paint0_linear_4045_16587" x1="4.89648" y1="5.42147" x2="17.5162" y2="5.42147" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_16587" x1="0.0332031" y1="15.0775" x2="31.9674" y2="15.0775" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_4045_16587" x1="7.26074" y1="25.4343" x2="21.2575" y2="25.4343" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_4045_16587">
<rect width="32" height="32" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Посещение зоны бокса'
]
];
} else {
$card_include = [
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2252_3443)">
<path d="M30.1357 13.7878C27.1811 11.2443 22.4588 12.0522 20.7407 15.6171C21.6969 15.8076 22.6197 16.1378 23.4796 16.5973C23.5448 16.632 23.6025 16.6792 23.6494 16.7363C23.6963 16.7933 23.7316 16.859 23.7531 16.9296C23.7746 17.0003 23.782 17.0745 23.7748 17.148C23.7677 17.2215 23.7461 17.2929 23.7114 17.358C23.6767 17.4232 23.6294 17.4809 23.5724 17.5278C23.5154 17.5748 23.4496 17.61 23.379 17.6315C23.3083 17.653 23.2341 17.6604 23.1606 17.6533C23.0871 17.6461 23.0158 17.6246 22.9506 17.5898C20.5335 16.2653 17.1725 16.0236 15.5747 18.9144L14.8915 17.8868L13.1186 15.2049C12.2108 13.8911 11.8325 11.4656 13.4518 10.5244C14.4427 9.95104 15.2182 9.06842 15.6593 8.01194H18.3017C18.4033 9.98804 19.0357 11.919 20.2891 11.919C20.494 11.8924 22.7806 11.9743 22.9483 11.8738C25.2801 11.2494 25.2858 3.05871 22.6491 2.95312H20.2891C19.03 2.95312 18.3977 4.901 18.296 6.88274H15.7271L15.2302 4.68645C15.1627 4.44481 15.0382 4.22287 14.8673 4.03918C14.6964 3.8555 14.484 3.71541 14.2478 3.63064C13.0571 3.18856 12.1842 4.47642 11.0014 4.48884L10.1037 4.6074C8.9423 4.60627 8.41891 6.01495 8.07112 6.88274H6.51282C6.41684 4.90664 5.78449 2.96442 4.52543 2.96442H2.1654C-0.550326 3.08524 -0.505158 11.8552 2.1654 11.9303C2.2196 11.9263 4.48195 11.9331 4.59883 11.9303C5.63205 11.823 6.13906 10.6227 6.39426 9.14114H5.24812C5.05051 10.18 4.7061 10.7615 4.53108 10.8011C4.26571 10.7446 3.6503 9.53636 3.6503 7.44734C3.6503 5.36397 4.26571 4.15008 4.52543 4.09362C4.76256 4.14443 5.28764 5.14377 5.38362 6.88274H4.60447C4.45473 6.88274 4.31112 6.94223 4.20524 7.04811C4.09936 7.15399 4.03987 7.2976 4.03987 7.44734C4.03987 7.59708 4.09936 7.74069 4.20524 7.84657C4.31112 7.95246 4.45473 8.01194 4.60447 8.01194C5.52816 8.01025 6.86231 8.01307 7.79446 8.01194C7.69968 8.56498 7.57147 9.11176 7.41054 9.64928C6.67656 12.2295 6.45072 15.9107 6.38861 18.5417C6.3403 20.5807 6.73721 22.6058 7.55169 24.4757L8.98013 27.7842C9.13735 28.1325 9.3857 28.4318 9.69895 28.6506C10.0122 28.8694 10.3787 28.9996 10.7598 29.0273C11.1409 29.0551 11.5224 28.9794 11.8641 28.8083C12.2057 28.6372 12.4948 28.377 12.7008 28.0552C12.7167 28.0298 12.7394 28.0094 12.7664 27.9964C12.7934 27.9834 12.8235 27.9784 12.8533 27.9818C20.6899 28.7497 27.2845 23.578 28.1257 22.8892C28.7524 22.6577 31.8069 21.376 32.1287 18.2538C32.1981 17.4019 32.0518 16.5463 31.7035 15.7658C31.3552 14.9854 30.816 14.3051 30.1357 13.7878ZM22.6491 4.08233C22.9088 4.13879 23.5242 5.34703 23.5242 7.43605C23.5242 9.51942 22.9088 10.7333 22.6547 10.7898C22.395 10.7333 21.7796 9.51942 21.7796 7.43605C21.7796 5.34703 22.395 4.13879 22.6491 4.08233Z" fill="url(#paint0_linear_2252_3443)" />
<path d="M23.2132 7.58476V7.29116C23.2132 7.14142 23.1537 6.99781 23.0478 6.89193C22.9419 6.78605 22.7983 6.72656 22.6486 6.72656C22.4988 6.72656 22.3552 6.78605 22.2494 6.89193C22.1435 6.99781 22.084 7.14142 22.084 7.29116V7.58476C22.084 7.7345 22.1435 7.87811 22.2494 7.98399C22.3552 8.08987 22.4988 8.14936 22.6486 8.14936C22.7983 8.14936 22.9419 8.08987 23.0478 7.98399C23.1537 7.87811 23.2132 7.7345 23.2132 7.58476Z" fill="url(#paint1_linear_2252_3443)" />
</g>
<defs>
<linearGradient id="paint0_linear_2252_3443" x1="0.145508" y1="15.993" x2="32.1455" y2="15.993" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_2252_3443" x1="22.084" y1="7.43796" x2="23.2132" y2="7.43796" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_2252_3443">
<rect width="32" height="32" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Тренажерный зал'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M29.4606 25.3449H28.6555V11.7294C28.6555 11.6342 28.6293 11.5409 28.5796 11.4598C28.53 11.3786 28.4589 11.3128 28.3742 11.2695L26.593 10.3606L27.9035 7.84085C27.9641 7.7197 27.9747 7.57957 27.9329 7.45069C27.8911 7.32182 27.8003 7.21455 27.6801 7.15202C27.56 7.08949 27.42 7.07672 27.2905 7.11646C27.161 7.15621 27.0523 7.24528 26.9879 7.36447L23.887 13.3252C23.8544 13.3855 23.8342 13.4516 23.8274 13.5197C23.8206 13.5878 23.8275 13.6566 23.8476 13.7221C23.8677 13.7875 23.9006 13.8483 23.9444 13.9009C23.9882 13.9536 24.0421 13.9969 24.1028 14.0285C24.1635 14.0601 24.2299 14.0793 24.2982 14.085C24.3664 14.0907 24.4351 14.0827 24.5002 14.0616C24.5653 14.0405 24.6256 14.0066 24.6775 13.962C24.7294 13.9174 24.7719 13.8629 24.8026 13.8016L26.1161 11.2752L27.6227 12.0442V25.3449H6.83974L9.77032 20.7203C9.88819 20.5335 9.97206 20.3273 10.0181 20.1113L10.2142 19.1668L8.65032 18.5939C7.9318 18.287 7.32091 17.7731 6.89548 17.1178L6.49806 19.0378L3.62839 23.5642C3.46282 23.8287 3.36762 24.1311 3.35181 24.4428C3.336 24.7544 3.40011 25.065 3.53806 25.3449H2.53935C1.86588 25.3449 1.21998 25.6124 0.74376 26.0886C0.267538 26.5648 0 27.2107 0 27.8842C0 28.5577 0.267538 29.2036 0.74376 29.6798C1.21998 30.156 1.86588 30.4236 2.53935 30.4236H29.4606C30.1341 30.4236 30.78 30.156 31.2562 29.6798C31.7325 29.2036 32 28.5577 32 27.8842C32 27.2107 31.7325 26.5648 31.2562 26.0886C30.78 25.6124 30.1341 25.3449 29.4606 25.3449Z" fill="url(#paint0_linear_4045_4481)" />
<path d="M17.3363 9.97687L17.1867 9.82203C17.1859 10.5312 16.9797 11.2249 16.5931 11.8195L15.8086 13.0427C15.9634 13.2294 16.1574 13.3799 16.3768 13.4833C16.5962 13.5868 16.8357 13.6408 17.0783 13.6414C17.3753 13.6415 17.6665 13.5594 17.9196 13.404L22.2809 10.7304C22.4626 10.6205 22.6209 10.4757 22.7466 10.3045C22.8722 10.1332 22.9628 9.93877 23.0131 9.73238C23.0634 9.52599 23.0724 9.31169 23.0396 9.10181C23.0068 8.89192 22.9329 8.69059 22.822 8.50937C22.7112 8.32815 22.5656 8.17062 22.3937 8.04582C22.2218 7.92103 22.0269 7.83144 21.8203 7.7822C21.6137 7.73296 21.3993 7.72503 21.1896 7.75888C20.9799 7.79274 20.7789 7.86769 20.5983 7.97945L17.3363 9.97687Z" fill="url(#paint1_linear_4045_4481)" />
<path d="M4.14944 11.1013C4.36483 11.4702 4.71657 11.7397 5.12883 11.8517C5.5411 11.9637 5.98086 11.9092 6.35332 11.7L9.13009 10.1103L9.99719 10.1516L7.76235 13.6458C7.55235 13.9815 7.41746 14.3587 7.36692 14.7515C7.31637 15.1443 7.35138 15.5434 7.46953 15.9214C7.58768 16.2994 7.78619 16.6473 8.05143 16.9414C8.31667 17.2355 8.64238 17.4687 9.00622 17.6251L12.2475 18.8174L10.5701 21.5322C10.3232 21.9468 10.2497 22.4419 10.3654 22.9103C10.4811 23.3787 10.7767 23.7826 11.1882 24.0345C11.5997 24.2864 12.0938 24.366 12.5636 24.2561C13.0334 24.1461 13.4409 23.8554 13.6978 23.4471L16.5365 18.8225C16.6798 18.5921 16.7695 18.3324 16.799 18.0626C16.8285 17.7928 16.797 17.5198 16.7069 17.2638C16.6171 17.0085 16.472 16.7761 16.2819 16.5834C16.0919 16.3907 15.8616 16.2424 15.6075 16.149L13.1714 15.2509L15.7262 11.2613C16.1121 10.6558 16.2425 9.92213 16.0887 9.22081C15.9349 8.5195 15.5095 7.90769 14.9056 7.51932C14.8926 7.50957 14.8787 7.50094 14.8643 7.49351C13.8062 6.78126 9.95074 6.82771 8.82557 6.86384C8.51514 6.84381 8.20585 6.91754 7.93783 7.07545L4.74815 8.89739C4.56404 9.00269 4.4025 9.14326 4.27275 9.31104C4.143 9.47883 4.0476 9.67054 3.992 9.87522C3.93639 10.0799 3.92168 10.2935 3.94869 10.5039C3.97571 10.7143 4.04393 10.9173 4.14944 11.1013ZM18.7559 4.35029C18.7559 3.78578 18.5885 3.23395 18.2749 2.76458C17.9613 2.29521 17.5155 1.92938 16.994 1.71336C16.4724 1.49733 15.8985 1.44081 15.3449 1.55094C14.7912 1.66107 14.2826 1.9329 13.8835 2.33207C13.4843 2.73124 13.2125 3.2398 13.1024 3.79346C12.9922 4.34712 13.0487 4.92101 13.2648 5.44254C13.4808 5.96408 13.8466 6.40984 14.316 6.72346C14.7854 7.03709 15.3372 7.20448 15.9017 7.20448C16.6586 7.20407 17.3843 6.90323 17.9195 6.36806C18.4546 5.83288 18.7555 5.10714 18.7559 4.35029Z" fill="url(#paint2_linear_4045_4481)" />
<defs>
<linearGradient id="paint0_linear_4045_4481" x1="0" y1="18.7587" x2="32" y2="18.7587" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_4481" x1="15.8086" y1="10.6898" x2="23.0589" y2="10.6898" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_4045_4481" x1="3.93555" y1="12.9002" x2="18.7559" y2="12.9002" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'heading' => 'Кардио зона'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4045_16041)">
<path d="M2.9082 10.1836H21.8173V21.82H2.9082V10.1836Z" fill="url(#paint0_linear_4045_16041)" />
<path d="M30.5445 13.0916V10.1825C30.5445 8.57588 29.2421 7.27344 27.6355 7.27344H2.90809C1.30146 7.27338 -0.000976562 8.57582 -0.000976562 10.1824V21.8188C-0.000976562 23.4255 1.30146 24.7279 2.90809 24.7279H27.6354C29.242 24.7279 30.5445 23.4255 30.5445 21.8188V18.9098C31.3478 18.9098 31.999 18.2585 31.999 17.4552V14.5461C31.9991 13.7428 31.3478 13.0916 30.5445 13.0916ZM29.09 14.5461V21.8188C29.09 22.6222 28.4388 23.2734 27.6355 23.2734H2.90809C2.10478 23.2734 1.45353 22.6222 1.45353 21.8188V10.1824C1.45353 9.37913 2.10478 8.72788 2.90809 8.72788H27.6354C28.4387 8.72788 29.09 9.37913 29.09 10.1824L29.09 14.5461Z" fill="url(#paint1_linear_4045_16041)" />
</g>
<defs>
<linearGradient id="paint0_linear_4045_16041" x1="2.9082" y1="16.0018" x2="21.8173" y2="16.0018" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_16041" x1="-0.000976562" y1="16.0007" x2="31.999" y2="16.0007" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_4045_16041">
<rect width="32" height="32" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Зарядка телефона'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4045_16581)">
<path d="M16.9414 24.4688H32.0002V28.2335H16.9414V24.4688ZM16.9414 30.1158H18.8238V31.9982H16.9414V30.1158ZM30.1179 30.1158H32.0002V31.9982H30.1179V30.1158Z" fill="url(#paint0_linear_4045_16581)" />
<path d="M24.4706 0H13.1765V28.2353H15.0588V22.5882H24.4706V0ZM20.7059 16.9412H18.8235V15.0588H20.7059V16.9412ZM21.6471 13.1765H16V11.2941H21.6471V13.1765ZM21.6471 9.41177H16V7.52941H21.6471V9.41177ZM21.6471 5.64706H16V3.76471H21.6471V5.64706ZM0 28.2353H11.2941V0H0V28.2353ZM7.52941 16.9412H5.64706V15.0588H7.52941V16.9412ZM2.82353 3.76471H8.47059V5.64706H2.82353V3.76471ZM2.82353 7.52941H8.47059V9.41177H2.82353V7.52941ZM2.82353 11.2941H8.47059V13.1765H2.82353V11.2941Z" fill="url(#paint1_linear_4045_16581)" />
</g>
<defs>
<linearGradient id="paint0_linear_4045_16581" x1="16.9414" y1="28.2335" x2="32.0002" y2="28.2335" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_16581" x1="0" y1="14.1176" x2="24.4706" y2="14.1176" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_4045_16581">
<rect width="32" height="32" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Раздевалки с душевыми'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M32 10.3125H30.125V5.625H24.5V10.3125H22.625V1.875H20.75V10.3125H11.25V1.875H9.375V10.3125H7.5V5.625H1.875V10.3125H0V12.1875H1.875V16.875H7.5V12.1875H9.375V17.8125H11.25V12.1875H20.75V17.8125H22.625V12.1875H24.5V16.875H30.125V12.1875H32V10.3125ZM20.75 28.25H18.8125V25.3125H13.1875V28.25H11.25V25.3125H9.375V28.25H5.625V30.125H26.375V28.25H22.625V25.3125H20.75V28.25ZM9.375 19.6875C8.33944 19.6875 7.5 20.5269 7.5 21.5625V23.4375H24.5V21.5625C24.5 20.5269 23.6606 19.6875 22.625 19.6875H9.375Z" fill="url(#paint0_linear_4045_11035)" />
<defs>
<linearGradient id="paint0_linear_4045_11035" x1="0" y1="16" x2="32" y2="16" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'heading' => 'Функциональная зона'
],
[
'svg' => '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.61233 9.35569C9.93212 9.16782 10.2959 9.06774 10.6667 9.06555C10.7126 9.06555 15.2673 9.04209 16.9899 7.29915C17.1318 7.15411 17.3068 7.04568 17.4999 6.98316C17.6929 6.92065 17.8982 6.90591 18.0982 6.94022C18.3125 6.976 18.5152 7.06241 18.6894 7.19228C18.8636 7.32214 19.0043 7.49171 19.0998 7.68688C19.2842 8.11314 19.5938 8.47327 19.9875 8.71949C20.3813 8.96572 20.8407 9.08641 21.3046 9.06555C21.6859 9.06977 22.0595 9.17366 22.3883 9.36689C22.3312 7.71174 21.6339 6.14337 20.4434 4.99216C19.2528 3.84095 17.6619 3.19677 16.0057 3.19531C14.3496 3.19386 12.7576 3.83525 11.565 4.98438C10.3724 6.1335 9.67235 7.70064 9.61233 9.35569ZM4.0982 30.9322H7.335C6.87519 30.5352 6.50611 30.0441 6.25278 29.4919C5.99945 28.9398 5.86779 28.3397 5.86673 27.7322C5.86594 26.7553 6.191 25.806 6.79047 25.0346C7.31092 24.2894 7.75207 23.4918 8.10673 22.6549L6.831 23.0997C6.17259 23.3243 5.58896 23.7262 5.14441 24.2613C4.69986 24.7964 4.41165 25.4438 4.31153 26.1322L3.73607 30.5376C3.72999 30.5858 3.73432 30.6348 3.74876 30.6813C3.76321 30.7277 3.78743 30.7706 3.8198 30.8069C3.85462 30.8464 3.89747 30.878 3.94547 30.8996C3.99348 30.9212 4.04555 30.9323 4.0982 30.9322Z" fill="url(#paint0_linear_4045_10906)" />
<path d="M6.93359 27.7342C6.93952 28.5875 7.28361 29.4035 7.8904 30.0034C8.49719 30.6033 9.31714 30.938 10.1704 30.9342H21.8285C22.6821 30.9385 23.5024 30.6039 24.1096 30.004C24.7167 29.404 25.061 28.5877 25.0669 27.7342C25.0647 26.9965 24.8198 26.28 24.3699 25.6953C23.6204 24.602 23.0047 23.423 22.5357 22.1833L19.5821 21.1523C19.6219 21.6381 19.5642 22.1268 19.4123 22.5899C19.2605 23.053 19.0176 23.481 18.6979 23.8489C18.3722 24.2233 17.9717 24.5252 17.5221 24.7351C17.0725 24.9451 16.5838 25.0583 16.0877 25.0675H15.9107C15.4152 25.0579 14.9273 24.9445 14.4784 24.7347C14.0295 24.5249 13.6295 24.2233 13.3043 23.8494C12.9846 23.4816 12.7416 23.0535 12.5898 22.5905C12.4379 22.1274 12.3802 21.6386 12.42 21.1529L9.46639 22.1838C8.99728 23.4237 8.38134 24.603 7.63173 25.6963C7.18167 26.2806 6.93635 26.9967 6.93359 27.7342Z" fill="url(#paint1_linear_4045_10906)" />
<path d="M16.9217 19.5733C16.3254 19.7859 15.6739 19.7859 15.0775 19.5733C14.6191 19.4097 14.1745 19.21 13.7479 18.976L13.4881 21.1381C13.4452 21.4976 13.4781 21.862 13.5847 22.208C13.6914 22.554 13.8694 22.8737 14.1073 23.1466C14.333 23.4099 14.6121 23.6222 14.9262 23.7693C15.2402 23.9164 15.5819 23.9951 15.9287 24H16.0684C16.4155 23.9953 16.7576 23.9168 17.072 23.7696C17.3864 23.6225 17.6659 23.4101 17.8919 23.1466C18.1297 22.8739 18.3076 22.5543 18.4143 22.2085C18.5209 21.8627 18.5539 21.4985 18.5111 21.1392L18.2513 18.977C17.8246 19.2107 17.38 19.4101 16.9217 19.5733ZM18.3692 2.52528C18.148 2.0866 17.8093 1.71794 17.391 1.46037C16.9726 1.20279 16.4909 1.06641 15.9996 1.06641C15.5083 1.06641 15.0266 1.20279 14.6083 1.46037C14.1899 1.71794 13.8512 2.0866 13.63 2.52528C15.1665 2.00277 16.8327 2.00277 18.3692 2.52528ZM28.1799 30.808C28.2127 30.7719 28.2374 30.7291 28.2523 30.6827C28.2672 30.6362 28.272 30.5871 28.2663 30.5386L27.6903 26.128C27.5893 25.4402 27.3005 24.7937 26.8557 24.2596C26.4109 23.7255 25.8273 23.3245 25.1692 23.1007L23.8929 22.656C24.2476 23.4927 24.6888 24.2901 25.2092 25.0352C25.8088 25.8067 26.1339 26.7562 26.1329 27.7333C26.1321 28.3406 26.0007 28.9407 25.7476 29.4928C25.4946 30.0449 25.1258 30.5362 24.6663 30.9333H27.9031C27.9555 30.9332 28.0072 30.9219 28.0549 30.9003C28.1026 30.8787 28.1452 30.8472 28.1799 30.808ZM20.8028 12.8559C20.795 12.7816 20.8028 12.7065 20.8259 12.6354C20.849 12.5643 20.8867 12.4988 20.9367 12.4433C20.9867 12.3877 21.0478 12.3433 21.116 12.3128C21.1843 12.2824 21.2582 12.2667 21.3329 12.2666C21.4801 12.2666 21.6257 12.2362 21.7606 12.1772C21.8954 12.1182 22.0166 12.0319 22.1165 11.9238C22.2164 11.8157 22.2928 11.6881 22.341 11.549C22.3892 11.41 22.408 11.2624 22.3964 11.1157C22.3651 10.8456 22.2358 10.5965 22.033 10.4154C21.8302 10.2343 21.568 10.134 21.2961 10.1333C20.6344 10.1526 19.9817 9.97544 19.4205 9.62425C18.8592 9.27306 18.4146 8.76354 18.1425 8.15995C18.1222 8.11697 18.092 8.07943 18.0544 8.05041C18.0167 8.02139 17.9727 8.00172 17.926 7.99302C17.8939 7.98695 17.8608 7.989 17.8297 7.99896C17.7986 8.00893 17.7705 8.0265 17.7479 8.05008C15.7127 10.1098 10.8716 10.1333 10.6663 10.1333C10.3834 10.1333 10.1121 10.2457 9.91203 10.4457C9.71199 10.6457 9.59961 10.9171 9.59961 11.1999C9.59961 11.4828 9.71199 11.7542 9.91203 11.9542C10.1121 12.1542 10.3834 12.2666 10.6663 12.2666C10.741 12.2667 10.8149 12.2824 10.8832 12.3128C10.9514 12.3433 11.0126 12.3877 11.0625 12.4433C11.1125 12.4988 11.1503 12.5643 11.1733 12.6354C11.1964 12.7065 11.2043 12.7816 11.1964 12.8559C11.1793 13.0266 10.8391 16.9258 15.4364 18.5695C15.8007 18.6992 16.1985 18.6992 16.5628 18.5695C21.1633 16.9248 20.8193 13.0213 20.8028 12.8559Z" fill="url(#paint2_linear_4045_10906)" />
<defs>
<linearGradient id="paint0_linear_4045_10906" x1="3.7334" y1="17.0638" x2="22.3883" y2="17.0638" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_10906" x1="6.93359" y1="26.0433" x2="25.0669" y2="26.0433" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_4045_10906" x1="9.59961" y1="15.9998" x2="28.2686" y2="15.9998" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'heading' => 'Вводный инструктаж'
],
];
}
foreach ($card_include as $card) {
$card_svg = $card['svg'];
$card_heading = $card['heading'];
?>
<div class="small-shadow w-full bg-[#f8f8f8] rounded-[12px] border border-[#fff] h-[78px] max-w-[301px] px-[24px] flex items-center gap-[12px]">
<div class="[&>svg]:min-w-fit"> <?php echo $card_svg; ?></div>
<div class="flex items-center gap-[8px] text-[16px] font-[600] leading-[145%] text-[#222]">
<?php echo $card_heading; ?>
</div>
</div>
<?php
}
?>
</div>
</div>
</div>
</section>
<?php
$additional_services = [
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M33.6458 2.375H4.35417C3.19963 2.37584 2.09262 2.83485 1.27623 3.65123C0.459849 4.46762 0.00083875 5.57463 0 6.72917L0 26.5208C0.00083875 27.6754 0.459849 28.7824 1.27623 29.5988C2.09262 30.4152 3.19963 30.8742 4.35417 30.875H33.6458C34.8004 30.8742 35.9074 30.4152 36.7238 29.5988C37.5401 28.7824 37.9992 27.6754 38 26.5208V6.72917C37.9992 5.57463 37.5401 4.46762 36.7238 3.65123C35.9074 2.83485 34.8004 2.37584 33.6458 2.375ZM11.875 8.70833C14.0568 8.70833 15.8333 10.4848 15.8333 12.6667C15.8333 14.8485 14.0568 16.625 11.875 16.625C9.69317 16.625 7.91667 14.8485 7.91667 12.6667C7.91667 10.4848 9.69317 8.70833 11.875 8.70833ZM19 23.3542C19 23.6691 18.8749 23.9712 18.6522 24.1939C18.4295 24.4166 18.1274 24.5417 17.8125 24.5417H5.9375C5.62256 24.5417 5.32051 24.4166 5.09781 24.1939C4.87511 23.9712 4.75 23.6691 4.75 23.3542V22.5625C4.75084 21.408 5.20985 20.3009 6.02623 19.4846C6.84262 18.6682 7.94963 18.2092 9.10417 18.2083H14.6458C15.8004 18.2092 16.9074 18.6682 17.7238 19.4846C18.5402 20.3009 18.9992 21.408 19 22.5625V23.3542ZM32.0625 24.5417H23.3542C23.0392 24.5417 22.7372 24.4166 22.5145 24.1939C22.2918 23.9712 22.1667 23.6691 22.1667 23.3542C22.1667 23.0392 22.2918 22.7372 22.5145 22.5145C22.7372 22.2918 23.0392 22.1667 23.3542 22.1667H32.0625C32.3774 22.1667 32.6795 22.2918 32.9022 22.5145C33.1249 22.7372 33.25 23.0392 33.25 23.3542C33.25 23.6691 33.1249 23.9712 32.9022 24.1939C32.6795 24.4166 32.3774 24.5417 32.0625 24.5417ZM32.0625 18.2083H23.3542C23.0392 18.2083 22.7372 18.0832 22.5145 17.8605C22.2918 17.6378 22.1667 17.3358 22.1667 17.0208C22.1667 16.7059 22.2918 16.4038 22.5145 16.1811C22.7372 15.9584 23.0392 15.8333 23.3542 15.8333H32.0625C32.3774 15.8333 32.6795 15.9584 32.9022 16.1811C33.1249 16.4038 33.25 16.7059 33.25 17.0208C33.25 17.3358 33.1249 17.6378 32.9022 17.8605C32.6795 18.0832 32.3774 18.2083 32.0625 18.2083ZM32.0625 11.875H23.3542C23.0392 11.875 22.7372 11.7499 22.5145 11.5272C22.2918 11.3045 22.1667 11.0024 22.1667 10.6875C22.1667 10.3726 22.2918 10.0705 22.5145 9.84781C22.7372 9.62511 23.0392 9.5 23.3542 9.5H32.0625C32.3774 9.5 32.6795 9.62511 32.9022 9.84781C33.1249 10.0705 33.25 10.3726 33.25 10.6875C33.25 11.0024 33.1249 11.3045 32.9022 11.5272C32.6795 11.7499 32.3774 11.875 32.0625 11.875Z" fill="url(#paint0_linear_4045_16137)" />
<mask id="mask0_4045_16137" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="19" y="17" width="19" height="20">
<path d="M19 17.8125H38V36.8125H19V17.8125Z" fill="white" />
</mask>
<g mask="url(#mask0_4045_16137)">
<path d="M36.4163 26.5195H33.1151L35.6801 23.9545L34.5638 22.8304L30.8747 26.5195H29.2913V24.9362L32.9805 21.247L31.8563 20.1308L29.2913 22.6958V19.3945H27.708V22.6958L25.143 20.1308L24.0188 21.247L27.708 24.9362V26.5195H26.1247L22.4355 22.8304L21.3193 23.9545L23.8843 26.5195H20.583V28.1029H23.8843L21.3193 30.6679L22.4355 31.792L26.1247 28.1029H27.708V29.6862L24.0188 33.3754L25.143 34.4916L27.708 31.9266V35.2279H29.2913V31.9266L31.8563 34.4916L32.9805 33.3754L29.2913 29.6862V28.1029H30.8747L34.5638 31.792L35.6801 30.6679L33.1151 28.1029H36.4163V26.5195Z" fill="#E21E24" />
</g>
<defs>
<linearGradient id="paint0_linear_4045_16137" x1="0" y1="16.625" x2="38" y2="16.625" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'heading' => 'Заморозка карты',
'description' => 'Услуга временно приостановить членство в фитнес-центре, и таким образом перенести действие карты на более удобный период. От 10 до 30 дней для клубных карт на 6 месяцев и от 10 до 60 дней для карт на 12 месяцев.'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2252_3481)">
<path d="M19 6.67969C20.8445 6.67969 22.3398 5.18439 22.3398 3.33984C22.3398 1.4953 20.8445 0 19 0C17.1555 0 15.6602 1.4953 15.6602 3.33984C15.6602 5.18439 17.1555 6.67969 19 6.67969Z" fill="url(#paint0_linear_2252_3481)" />
<path d="M19 27.4609C20.8445 27.4609 22.3398 25.9656 22.3398 24.1211C22.3398 22.2765 20.8445 20.7812 19 20.7812C17.1555 20.7812 15.6602 22.2765 15.6602 24.1211C15.6602 25.9656 17.1555 27.4609 19 27.4609Z" fill="url(#paint1_linear_2252_3481)" />
<path d="M36.8867 14.1016C36.2719 14.1016 35.7734 14.6 35.7734 15.2148V18.5547H32.5025C32.8955 19.2309 33.1022 19.9992 33.1016 20.7812H35.7734V24.1211C35.7734 24.7359 36.2719 25.2344 36.8867 25.2344C37.5015 25.2344 38 24.7359 38 24.1211V15.2148C38 14.6 37.5015 14.1016 36.8867 14.1016ZM2.22656 15.2148C2.22656 14.6 1.72811 14.1016 1.11328 14.1016C0.498453 14.1016 0 14.6 0 15.2148V24.1211C0 24.7359 0.498453 25.2344 1.11328 25.2344C1.72811 25.2344 2.22656 24.7359 2.22656 24.1211V20.7812H4.89844C4.89782 19.9992 5.10453 19.2309 5.49753 18.5547H2.22656V15.2148ZM24.7944 18.5547H13.2056C13.5986 19.2309 13.8053 19.9992 13.8047 20.7812H24.1953C24.1947 19.9992 24.4014 19.2309 24.7944 18.5547Z" fill="#E21E24" />
<path d="M28.6488 18.5557C27.419 18.5557 26.4222 19.5525 26.4222 20.7822V27.4619H23.4504C22.4338 28.813 20.8175 29.6885 19.0003 29.6885C17.1832 29.6885 15.5668 28.813 14.5503 27.4619H11.5785V20.7822C11.5785 19.5526 10.5816 18.5557 9.3519 18.5557C8.12217 18.5557 7.12534 19.5525 7.12534 20.7822V27.4619C7.12534 29.9213 9.11907 31.9151 11.5785 31.9151H13.805V36.8877C13.805 37.5025 14.3035 38.001 14.9183 38.001H23.0824C23.6972 38.001 24.1956 37.5025 24.1956 36.8877V31.9151H26.4222C28.8816 31.9151 30.8753 29.9213 30.8753 27.4619V20.7822C30.8753 19.5525 29.8785 18.5557 28.6488 18.5557ZM10.2711 16.4251C10.4132 16.3361 10.5447 16.2314 10.6633 16.1129L13.7979 12.9784V16.3291H24.2028V12.9783L27.3373 16.1129C27.4559 16.2313 27.5875 16.336 27.7296 16.425C28.0318 16.3613 28.3399 16.3291 28.6488 16.3291C29.0945 16.3291 29.5249 16.3958 29.9313 16.5182C30.1361 16.4127 30.3234 16.276 30.4862 16.1129C31.3558 15.2434 31.3558 13.8336 30.4862 12.964L25.9419 8.41971C25.2066 7.68521 24.2915 7.15659 23.2879 6.88672C22.266 8.12016 20.7234 8.90725 19.0003 8.90725C17.2773 8.90725 15.7346 8.12016 14.7128 6.88672C13.7092 7.15659 12.794 7.68521 12.0588 8.41971L7.51446 12.964C6.64492 13.8336 6.64492 15.2434 7.51446 16.1129C7.67733 16.276 7.86455 16.4127 8.0694 16.5182C8.48534 16.3928 8.91745 16.329 9.3519 16.3291C9.66696 16.3291 9.97437 16.3625 10.2711 16.4251Z" fill="url(#paint2_linear_2252_3481)" />
</g>
<defs>
<linearGradient id="paint0_linear_2252_3481" x1="15.6602" y1="3.33984" x2="22.3398" y2="3.33984" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_2252_3481" x1="15.6602" y1="24.1211" x2="22.3398" y2="24.1211" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_2252_3481" x1="6.8623" y1="22.4439" x2="31.1384" y2="22.4439" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_2252_3481">
<rect width="38" height="38" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Персональные тренировки',
'description' => 'Высококвалифицированные специалисты в области фитнеса готовы предоставить свою помощь новичкам, а так же тем, кто хочет получить максимальный результат от тренировок.'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4045_15053)">
<path d="M34.6602 22.4141H24.6406V32.4336C24.6406 34.2782 26.1359 35.7734 27.9805 35.7734H31.3203V36.8867C31.3203 37.5021 31.8182 38 32.4336 38C33.0489 38 33.5469 37.5021 33.5469 36.8867V35.7734H34.6602C36.5047 35.7734 38 34.2782 38 32.4336V25.7539C38 23.9093 36.5047 22.4141 34.6602 22.4141ZM2.22656 29.0938C0.996832 29.0938 0 30.0906 0 31.3203C0 32.5499 0.996832 33.5469 2.22656 33.5469H4.45312V36.8867C4.45312 37.5021 4.95106 38 5.56641 38C6.18175 38 6.67969 37.5021 6.67969 36.8867V33.5469H22.4141V29.0938H2.22656Z" fill="#E21E24" />
<path d="M5.56641 26.8672C7.41095 26.8672 8.90625 25.3719 8.90625 23.5273C8.90625 21.6828 7.41095 20.1875 5.56641 20.1875C3.72186 20.1875 2.22656 21.6828 2.22656 23.5273C2.22656 25.3719 3.72186 26.8672 5.56641 26.8672Z" fill="url(#paint0_linear_4045_15053)" />
<path d="M11.1325 22.4149C11.0934 22.4149 11.0608 22.4352 11.0222 22.4372C11.0927 22.7904 11.1325 23.1546 11.1325 23.5282C11.1338 24.6361 10.8026 25.7188 10.1816 26.6364C10.5095 26.7934 10.6889 26.8496 11.3552 26.8681L22.4138 26.8634V22.4149H11.1325ZM27.3279 7.48132C26.8996 7.053 26.3299 6.84096 25.534 6.83984C25.206 6.87141 24.8891 6.97583 24.6066 7.14549C24.3241 7.31515 24.0831 7.54577 23.9011 7.8205L19.7763 14.0077L15.8537 15.969C14.7503 16.5195 14.3041 17.8603 14.8567 18.9587C15.3937 20.0285 16.7668 20.4939 17.8432 19.9535L22.2984 17.7258C22.6437 17.5519 22.9381 17.2916 23.1531 16.9703L25.9319 12.8009C27.2724 14.8818 27.9802 17.3051 27.9802 19.8068V20.1884H32.4333V19.8068C32.4333 15.1503 30.6199 10.7733 27.3279 7.48132Z" fill="url(#paint1_linear_4045_15053)" />
<path d="M17.9609 3.41406C17.9609 1.5724 19.4591 0 21.3008 0C23.1424 0 24.6406 1.5724 24.6406 3.41406C24.6406 5.25573 23.1424 6.82812 21.3008 6.82812C19.4591 6.82812 17.9609 5.25573 17.9609 3.41406Z" fill="#2B2C35" />
</g>
<defs>
<linearGradient id="paint0_linear_4045_15053" x1="2.22656" y1="23.5273" x2="8.90625" y2="23.5273" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_15053" x1="10.1816" y1="16.854" x2="32.4333" y2="16.854" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_4045_15053">
<rect width="38" height="38" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Массаж и SPA',
'description' => 'Прекрасная возможность расслабиться и поправить свое здоровье.'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M33.8044 37.0329H19.6624C21.1159 37.0217 22.4779 36.5631 23.2888 35.7521C23.3126 35.728 23.3394 35.7071 23.3687 35.69C23.3687 35.69 23.3734 35.69 23.3734 35.6856L23.3778 35.6813C23.5155 35.5526 24.0307 34.8423 24.2569 34.5314L30.0679 26.2116C31.5637 24.1294 31.1069 22.491 30.707 21.044C30.4803 20.2184 30.2583 19.4325 30.4138 18.6734C29.6084 18.6648 28.8248 18.4108 28.1675 17.9453C27.9498 18.4337 27.6083 18.7355 27.2352 18.9489L27.2261 18.9536C27.2966 18.9869 27.3579 19.0371 27.4044 19.0997C27.451 19.1622 27.4814 19.2353 27.493 19.3124C27.5104 19.4395 27.4767 19.5683 27.3992 19.6705C27.3217 19.7727 27.2068 19.8399 27.0797 19.8574C27.0478 19.8617 24.8351 20.1627 22.2322 20.3492V23.0196C23.9875 23.0373 26.103 23.0917 27.5841 23.239C27.711 23.2526 27.8273 23.3157 27.9078 23.4148C27.9883 23.5138 28.0264 23.6406 28.0138 23.7676C28.0012 23.8945 27.939 24.0114 27.8406 24.0927C27.7422 24.1739 27.6157 24.2131 27.4887 24.2015C26.1189 24.0655 24.1473 24.011 22.455 23.9907L22.4541 23.9925C21.8902 25.4132 21.3931 26.1723 21.0909 26.5454L21.8573 27.8024C21.8931 27.8566 21.9175 27.9175 21.9292 27.9813C21.941 28.0452 21.9397 28.1108 21.9255 28.1741C21.9113 28.2375 21.8845 28.2974 21.8467 28.3502C21.8089 28.403 21.7609 28.4476 21.7054 28.4814C21.65 28.5152 21.5883 28.5376 21.5241 28.547C21.4599 28.5565 21.3944 28.5529 21.3315 28.5366C21.2687 28.5202 21.2098 28.4913 21.1584 28.4517C21.1069 28.4121 21.064 28.3625 21.0321 28.3059L20.08 26.7462L20.0744 26.7406C20.07 26.7315 20.0653 26.7272 20.061 26.7185L18.2629 23.9173L17.8112 23.8755L12.518 23.3845C12.9174 25.1558 13.5215 26.9759 13.8674 28.0015L13.9693 28.3167C14.0804 28.6474 14.1388 28.9934 14.1425 29.3423L14.1913 32.1124C14.231 34.3544 15.7588 36.2945 17.9071 36.8274C18.443 36.9634 18.9953 37.0286 19.5363 37.0338H7.68684C7.56222 37.039 7.44445 37.0923 7.35814 37.1823C7.27182 37.2723 7.22363 37.3922 7.22363 37.517C7.22363 37.6417 7.27182 37.7616 7.35814 37.8517C7.44445 37.9417 7.56222 37.9949 7.68684 38.0002H33.804C33.9322 38.0002 34.0553 37.9493 34.146 37.8587C34.2368 37.768 34.2878 37.645 34.2878 37.5168C34.2879 37.3885 34.237 37.2655 34.1463 37.1747C34.0557 37.084 33.9327 37.033 33.8044 37.0329Z" fill="url(#paint0_linear_4045_16661)" />
<path d="M18.6239 22.9783L19.0756 23.0193L19.2591 23.0184C19.6037 23.015 20.3374 23.0094 21.2645 23.0124V20.4133C21.1341 20.4206 21.0054 20.4271 20.8776 20.4318C20.1297 20.4714 19.381 20.4921 18.6321 20.494H18.6235L17.7918 20.4789L6.17421 20.2764H6.16514L5.89612 20.2634L5.70439 20.2557C5.664 20.2548 5.62359 20.2569 5.58348 20.2617C5.56923 20.263 5.55498 20.2634 5.54116 20.2656C5.50535 20.2714 5.47 20.2798 5.43537 20.2906C5.42285 20.2945 5.40989 20.2967 5.3978 20.301C5.36456 20.3131 5.33211 20.3272 5.30064 20.3433C5.28898 20.3494 5.27646 20.3537 5.26523 20.3602C5.23501 20.377 5.20737 20.3969 5.17973 20.4172C5.16851 20.4254 5.15642 20.4323 5.14605 20.4409C5.12026 20.463 5.09589 20.4866 5.07308 20.5117C5.06358 20.5217 5.05321 20.5303 5.04414 20.5411C5.02144 20.5687 5.00066 20.5979 4.98196 20.6283C4.97548 20.6383 4.96771 20.6473 4.96167 20.6577C4.93995 20.6959 4.92146 20.736 4.90639 20.7773C4.90467 20.7812 4.90251 20.7846 4.90121 20.7885C4.88101 20.8461 4.86768 20.9058 4.86149 20.9664C4.85933 20.9975 4.86278 21.0269 4.86451 21.0571C4.8658 21.086 4.86796 21.115 4.87228 21.143C4.87573 21.1638 4.88135 21.1841 4.88653 21.2044C4.89258 21.229 4.89862 21.2532 4.90726 21.2765C4.91589 21.2994 4.92669 21.3214 4.93705 21.3434C4.94655 21.3628 4.95519 21.3827 4.96598 21.4013C4.97764 21.4211 4.99189 21.4388 5.00528 21.4574C5.01996 21.4773 5.03378 21.498 5.05062 21.5161C5.06444 21.5317 5.07998 21.5451 5.09467 21.5589C5.11194 21.5753 5.12878 21.5926 5.14735 21.6073C5.21817 21.6625 5.29935 21.7057 5.38916 21.7329L5.39478 21.7351C5.44185 21.7489 5.49064 21.7584 5.5416 21.7631L18.6239 22.9783ZM35.3996 13.021H35.3819C35.2896 13.0212 35.2008 13.0568 35.1339 13.1204C35.067 13.184 35.027 13.2708 35.0222 13.363L34.9557 14.4905C34.9525 14.5378 34.9588 14.5852 34.9741 14.6301C34.9894 14.6749 35.0134 14.7163 35.0448 14.7518C35.0762 14.7873 35.1144 14.8162 35.157 14.8369C35.1997 14.8576 35.246 14.8696 35.2933 14.8722C35.3891 14.8766 35.4827 14.8432 35.5541 14.7792C35.6255 14.7153 35.6689 14.6259 35.6751 14.5302L35.7416 13.4027C35.7442 13.355 35.7373 13.3073 35.7213 13.2623C35.7053 13.2173 35.6805 13.1759 35.6483 13.1406C35.5838 13.0703 35.4948 13.0275 35.3996 13.021ZM4.9798 10.2155C5.03767 10.3355 5.09078 10.4599 5.14864 10.5929L7.65275 9.34538C7.47527 9.07463 7.31075 8.81252 7.16005 8.57286C7.11125 8.49297 7.05814 8.41309 7.00934 8.33752C6.97825 8.27966 6.94241 8.22654 6.907 8.17343C6.78544 7.98211 6.66568 7.78966 6.54773 7.59609C6.4143 7.37414 6.29468 7.18759 6.20141 7.03214C6.17024 6.97665 6.1377 6.92193 6.10382 6.86805C6.04613 6.77795 5.99126 6.68607 5.9393 6.59255C5.89646 6.52119 5.87199 6.44034 5.86805 6.35721L5.7791 1.76268C5.77104 1.37845 5.6484 1.00539 5.4269 0.691328C5.2054 0.37727 4.89513 0.136537 4.53589 0L2.32974 6.19743C2.2291 6.47342 2.23573 6.77713 2.34832 7.04845C2.46092 7.31978 2.67127 7.53895 2.93774 7.66259L3.1286 7.75154C3.1774 7.77357 3.24865 7.80941 3.34624 7.87591C3.38165 7.90268 3.42181 7.93377 3.46585 7.96918C3.47924 7.97825 3.49263 7.98688 3.50126 8.00027C3.53667 8.02704 3.57251 8.05813 3.60792 8.09354C3.60792 8.09786 3.61224 8.09786 3.61224 8.09786C3.68349 8.16868 3.76337 8.24856 3.84758 8.34659C3.8519 8.35091 3.85665 8.35997 3.86097 8.36429C3.90544 8.41741 3.94992 8.47095 3.99871 8.53313C4.02074 8.56422 4.04319 8.59531 4.06996 8.6264L4.14553 8.72831C4.19433 8.79956 4.24312 8.8747 4.29624 8.95459C4.32301 8.99431 4.34935 9.03879 4.37612 9.07895L4.45601 9.21195C4.48235 9.25642 4.50912 9.30522 4.54021 9.35402C4.59808 9.45161 4.65119 9.55395 4.70905 9.66017C4.76217 9.76683 4.82003 9.88213 4.88221 10.0022C4.9133 10.0691 4.94871 10.1399 4.9798 10.2155ZM31.5905 14.5172C31.5149 14.6684 31.4929 14.8459 31.5283 15.0143L32.0923 17.2606C32.4075 17.0709 32.6858 16.8257 32.9136 16.5369C32.9404 16.5014 32.9667 16.4704 32.9892 16.4345C33.0738 16.3235 33.1446 16.2035 33.2111 16.0839L33.611 15.3114C33.611 15.307 33.611 15.307 33.6153 15.3023L33.6952 15.1335C33.744 15.0225 33.7885 14.9072 33.8239 14.7915C33.9526 14.1342 33.9616 14.0103 33.9616 13.8859C33.9616 13.7395 33.9526 13.5975 33.9305 13.4597C33.9257 13.4164 33.9183 13.3735 33.9085 13.331C33.9027 13.2798 33.8923 13.2293 33.8774 13.1799C33.8635 13.1012 33.8427 13.0239 33.8152 12.9489C33.7844 12.8511 33.7488 12.7548 33.7086 12.6604C33.7086 12.6561 33.7086 12.6518 33.7043 12.647C33.6645 12.5581 33.6201 12.4739 33.5756 12.3897C33.5267 12.3013 33.4734 12.2154 33.4158 12.1323C33.4111 12.1237 33.4067 12.1146 33.3981 12.1056C33.3484 12.0308 33.2934 11.9597 33.2336 11.8927C33.1775 11.8219 33.1166 11.7551 33.0514 11.6927C33.0423 11.6841 33.0336 11.675 33.0203 11.666C32.8805 11.5265 32.7257 11.4029 32.5586 11.2976C32.4746 11.2406 32.3872 11.1887 32.297 11.1422C32.2922 11.1422 32.2922 11.1422 32.2879 11.1379C31.7557 10.8646 31.156 10.7505 30.5606 10.8092C30.5075 10.8136 30.454 10.8183 30.4052 10.8269C30.3296 10.836 30.2545 10.8537 30.1789 10.8714C30.1742 10.8714 30.1698 10.8714 30.1655 10.8757C30.0918 10.8902 30.0191 10.9096 29.9479 10.9336C29.8997 10.9473 29.8522 10.9635 29.8058 10 Line truncated
<path d="M31.0706 17.6519C31.1108 17.6476 31.1462 17.6385 31.1864 17.6299L30.5913 15.2458C30.5913 15.2415 30.587 15.2415 30.587 15.2372C30.4974 14.8447 30.5477 14.4333 30.7291 14.0739C30.8147 13.9083 30.8314 13.7156 30.7757 13.5377C30.72 13.3598 30.5963 13.2111 30.4315 13.1239L28.3713 12.0586C28.2808 12.1885 28.1978 12.3234 28.1226 12.4628L27.7189 13.2439C27.4339 13.8094 27.3309 14.4492 27.4239 15.0756C27.5169 15.7019 27.8014 16.2842 28.2383 16.7425L31.0706 17.6519Z" fill="url(#paint2_linear_4045_16661)" />
<path d="M5.14864 10.5929C5.09078 10.4599 5.03767 10.3355 4.9798 10.2155C4.94871 10.1399 4.9133 10.0691 4.88221 10.0022C4.82003 9.88213 4.76217 9.76683 4.70905 9.66017C4.65119 9.55395 4.59808 9.45161 4.54021 9.35402C4.50912 9.30522 4.48235 9.25642 4.45601 9.21195L4.37612 9.07895C4.34935 9.03879 4.32301 8.99431 4.29624 8.95459C4.24312 8.8747 4.19433 8.79956 4.14553 8.72831L4.06996 8.6264C4.04319 8.59531 4.02074 8.56422 3.99871 8.53313C3.94992 8.47095 3.90544 8.41741 3.86097 8.36429C3.85665 8.35997 3.8519 8.35091 3.84758 8.34659C3.76337 8.24856 3.68349 8.16868 3.61224 8.09786C3.61224 8.09786 3.60792 8.09786 3.60792 8.09354C3.57251 8.05813 3.53667 8.02704 3.50126 8.00027C3.49307 7.98757 3.4806 7.97915 3.46792 7.97058L3.46585 7.96918C3.42181 7.93377 3.38165 7.90268 3.34624 7.87591C3.24865 7.80941 3.1774 7.77357 3.1286 7.75154L2.93774 7.66259C2.67127 7.53895 2.46092 7.31978 2.34832 7.04845C2.23573 6.77713 2.2291 6.47342 2.32974 6.19743L4.53589 0C4.89513 0.136537 5.2054 0.37727 5.4269 0.691328C5.6484 1.00539 5.77104 1.37845 5.7791 1.76268L5.86805 6.35721C5.87199 6.44034 5.89646 6.52119 5.9393 6.59255C5.99126 6.68607 6.04613 6.77795 6.10382 6.86805C6.1377 6.92193 6.17024 6.97665 6.20141 7.03214C6.29468 7.18759 6.4143 7.37414 6.54773 7.59609C6.66568 7.78966 6.78544 7.98211 6.907 8.17343L6.91248 8.18165C6.94609 8.23203 6.97985 8.28264 7.00934 8.33752C7.05814 8.41309 7.11125 8.49297 7.16005 8.57286L7.17746 8.60055C7.3234 8.83265 7.48208 9.08502 7.65275 9.34538L5.14864 10.5929Z" fill="url(#paint3_linear_4045_16661)" />
<path d="M19.6624 37.0312H33.8044C33.9327 37.0313 34.0557 37.0823 34.1463 37.1731C34.237 37.2638 34.2879 37.3868 34.2878 37.5151C34.2878 37.6434 34.2368 37.7664 34.146 37.857C34.0553 37.9477 33.9322 37.9986 33.804 37.9985H7.68684C7.56222 37.9932 7.44445 37.94 7.35814 37.85C7.27182 37.76 7.22363 37.64 7.22363 37.5153C7.22363 37.3906 7.27182 37.2707 7.35814 37.1806C7.44445 37.0906 7.56222 37.0374 7.68684 37.0321H19.5363L19.6624 37.0312Z" fill="url(#paint4_linear_4045_16661)" />
<defs>
<linearGradient id="paint0_linear_4045_16661" x1="7.22363" y1="27.9727" x2="34.2878" y2="27.9727" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_16661" x1="2.25879" y1="11.5096" x2="35.7421" y2="11.5096" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_4045_16661" x1="27.3906" y1="14.8553" x2="31.1864" y2="14.8553" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint3_linear_4045_16661" x1="2.25879" y1="5.29645" x2="7.65275" y2="5.29645" gradientUnits="userSpaceOnUse">
<stop offset="0.394231" stop-color="#E21E24" />
<stop offset="0.929023" stop-color="#FF2F35" />
</linearGradient>
<linearGradient id="paint4_linear_4045_16661" x1="7.22363" y1="37.5149" x2="34.2878" y2="37.5149" gradientUnits="userSpaceOnUse">
<stop offset="0.394231" stop-color="#E21E24" />
<stop offset="0.929023" stop-color="#FF2F35" />
</linearGradient>
</defs>
</svg>',
'heading' => 'Мастер-классы',
'description' => 'Мы регулярно приглашаем знаменитостей в нашей фитнес-центр. Мастер-классы проходят как бесплатно, так и за символическую стоимость.'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M33.1016 0H13.0625C11.2209 0 9.72266 1.49825 9.72266 3.33984H31.9883C32.6031 3.33984 33.1016 3.8383 33.1016 4.45312V33.5469C33.1016 34.1617 32.6031 34.6602 31.9883 34.6602H9.72266C9.72266 36.5017 11.2209 38 13.0625 38H33.1016C34.9432 38 36.4414 36.5017 36.4414 34.6602V3.33984C36.4414 1.49825 34.9432 0 33.1016 0Z" fill="#E21E24" />
<path d="M23.4531 5.56641H26.0508V32.4336H23.4531V5.56641ZM28.2773 5.56641H30.875V32.4336H28.2773V5.56641ZM18.0298 32.4336H21.2266V5.56641H18.0298C18.4228 6.24259 18.6295 7.01087 18.6289 7.79297V30.207C18.6295 30.9891 18.4228 31.7574 18.0298 32.4336ZM16.4023 30.207V7.79297C16.4023 6.56324 15.4055 5.56641 14.1758 5.56641H3.78516C2.55543 5.56641 1.55859 6.56324 1.55859 7.79297V30.207C1.55859 31.4368 2.55543 32.4336 3.78516 32.4336H14.1758C15.4055 32.4336 16.4023 31.4368 16.4023 30.207ZM7.125 21.2266C7.125 21.8414 6.62655 22.3398 6.01172 22.3398C5.39689 22.3398 4.89844 21.8414 4.89844 21.2266V16.7734C4.89844 16.1586 5.39689 15.6602 6.01172 15.6602C6.62655 15.6602 7.125 16.1586 7.125 16.7734V21.2266Z" fill="url(#paint0_linear_4045_15619)" />
<defs>
<linearGradient id="paint0_linear_4045_15619" x1="1.55859" y1="19" x2="30.875" y2="19" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'heading' => 'Солярии',
'description' => 'Вместе с красивым цветом кожи вы получите хорошую порцию эндорфинов и витамина D. Так же, у нас большой выбор косметики для загара.'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24.9935 21.6691C25.1016 21.5731 25.1881 21.4553 25.2472 21.3234C25.3064 21.1915 25.3369 21.0486 25.3366 20.9041V20.1925H13.001V20.9041C13.001 21.0488 13.0318 21.192 13.0915 21.3239C13.1511 21.4558 13.2382 21.5735 13.347 21.6691L13.721 22.0009C13.7552 22.0286 13.7794 22.0666 13.79 22.1092C13.8007 22.1518 13.7972 22.1967 13.7801 22.2372C13.7657 22.2806 13.7376 22.3183 13.7002 22.3446C13.6627 22.371 13.6178 22.3846 13.572 22.3834C13.5098 22.3836 13.4495 22.4044 13.4004 22.4425C13.2757 22.5374 13.1747 22.66 13.1054 22.8005C13.0361 22.9411 13.0004 23.0958 13.001 23.2525V26.6556C13.0012 26.8047 13.034 26.952 13.0972 27.0871C13.1603 27.2222 13.2523 27.3418 13.3667 27.4375L13.4848 27.5387C13.5367 27.5802 13.5786 27.6329 13.6073 27.6928C13.636 27.7526 13.6509 27.8183 13.6507 27.8847C13.651 27.9522 13.6359 28.0189 13.6067 28.0798C13.5775 28.1407 13.5348 28.1942 13.482 28.2362L13.3695 28.3319C13.2531 28.4285 13.1598 28.5498 13.096 28.687C13.0323 28.8242 12.9999 28.9738 13.001 29.125V34.2494C12.9998 34.7761 13.1512 35.2919 13.437 35.7344C13.6876 36.1233 14.032 36.443 14.4384 36.6641C14.8448 36.8852 15.3002 37.0007 15.7629 37H22.5776C22.9402 37.0011 23.2995 36.9305 23.6348 36.7922C23.97 36.654 24.2746 36.4508 24.531 36.1944C24.7874 35.9379 24.9906 35.6333 25.1289 35.2981C25.2672 34.9628 25.3378 34.6036 25.3366 34.2409V29.125C25.338 28.9759 25.3062 28.8284 25.2434 28.6931C25.1807 28.5579 25.0886 28.4383 24.9738 28.3431L24.8557 28.2419C24.8044 28.1994 24.7631 28.1461 24.7348 28.0858C24.7064 28.0255 24.6917 27.9597 24.6917 27.8931C24.6917 27.8265 24.7064 27.7607 24.7348 27.7004C24.7631 27.6401 24.8044 27.5869 24.8557 27.5444L24.9682 27.4487C25.0834 27.3531 25.1759 27.2331 25.2391 27.0975C25.3023 26.9618 25.3347 26.8137 25.3338 26.6641V23.2525C25.3351 23.0953 25.2997 22.9399 25.2304 22.7988C25.1611 22.6577 25.0597 22.5347 24.9345 22.4397C24.885 22.4026 24.8247 22.3828 24.7629 22.3834C24.7335 22.3834 24.7044 22.3776 24.6772 22.3663C24.6501 22.3549 24.6255 22.3383 24.6048 22.3174C24.5841 22.2964 24.5678 22.2716 24.5568 22.2443C24.5458 22.2171 24.5403 22.1879 24.5407 22.1584C24.5417 22.1277 24.5492 22.0974 24.5628 22.0698C24.5764 22.0421 24.5957 22.0177 24.6195 21.9981L24.9935 21.6691ZM25.3366 10.4613V12.0869H13.001V10.495C12.9997 10.4838 12.9997 10.4725 13.001 10.4613C13.406 7.24658 16.0948 5.90502 16.8373 5.58721V5.07533H21.5004V5.58721C22.2626 5.90502 24.9288 7.24658 25.3366 10.4613ZM22.2626 1.63284V3.88283C22.263 3.96557 22.247 4.04756 22.2157 4.12414C22.1844 4.20072 22.1383 4.27038 22.0801 4.32914C22.0218 4.3879 21.9526 4.43461 21.8763 4.46662C21.8 4.49862 21.7181 4.51528 21.6354 4.51565H16.7107C16.627 4.5164 16.544 4.50047 16.4666 4.46879C16.3891 4.43711 16.3188 4.39032 16.2596 4.33115C16.2004 4.27198 16.1536 4.20161 16.122 4.12415C16.0903 4.04669 16.0743 3.9637 16.0751 3.88002V1.63002C16.0751 1.54682 16.0916 1.46443 16.1236 1.38763C16.1556 1.31082 16.2025 1.24112 16.2616 1.18255C16.3207 1.12397 16.3908 1.07768 16.4679 1.04636C16.545 1.01503 16.6275 0.999282 16.7107 1.00003H21.6298C21.713 0.999653 21.7954 1.01577 21.8724 1.04744C21.9493 1.07911 22.0192 1.12571 22.0781 1.18454C22.1369 1.24338 22.1835 1.31329 22.2152 1.39023C22.2468 1.46717 22.263 1.54963 22.2626 1.63284ZM18.1676 16.7753C18.1604 16.9115 18.181 17.0476 18.2281 17.1756C18.2752 17.3035 18.3479 17.4205 18.4417 17.5194C18.5355 17.6183 18.6485 17.6971 18.7738 17.7509C18.899 17.8047 19.0339 17.8325 19.1702 17.8325C19.3066 17.8325 19.4415 17.8047 19.5667 17.7509C19.692 17.6971 19.805 17.6183 19.8988 17.5194C19.9926 17.4205 20.0653 17.3035 20.1124 17.1756C20.1595 17.0476 20.1801 16.9115 20.1729 16.7753C20.1729 16.3928 19.6273 15.4675 19.1717 14.8066C18.716 15.4675 18.1676 16.3928 18.1676 16.7753Z" fill="url(#paint0_linear_4045_16267)" />
<path d="M13.043 12.6476V19.631H25.2942V12.6476C22.0345 12.6279 16.3027 12.6279 13.043 12.6476ZM19.1686 18.3429C18.7533 18.3421 18.3553 18.1769 18.0617 17.8832C17.7681 17.5896 17.6028 17.1916 17.602 16.7763C17.602 16.0141 18.727 14.4504 18.9408 14.1466C18.967 14.1108 19.0012 14.0817 19.0408 14.0616C19.0804 14.0416 19.1242 14.0312 19.1686 14.0313C19.2125 14.0317 19.2557 14.0423 19.2948 14.0623C19.3338 14.0823 19.3677 14.1112 19.3936 14.1466C19.6186 14.4504 20.7323 16.0141 20.7323 16.7763C20.7316 17.1911 20.5667 17.5887 20.2737 17.8822C19.9807 18.1758 19.5833 18.3414 19.1686 18.3429Z" fill="url(#paint1_linear_4045_16267)" />
<path d="M18.2215 27.2177L17.8273 27.6123C17.6331 27.8032 17.4249 27.9795 17.2046 28.1396L17.2932 28.2286C17.3168 28.2506 17.3357 28.277 17.3488 28.3065C17.362 28.3359 17.369 28.3677 17.3696 28.3999C17.3701 28.4322 17.3642 28.4642 17.3521 28.4941C17.3401 28.5239 17.3221 28.5511 17.2993 28.5739C17.2765 28.5967 17.2494 28.6146 17.2195 28.6267C17.1896 28.6388 17.1576 28.6447 17.1254 28.6441C17.0932 28.6436 17.0614 28.6365 17.0319 28.6234C17.0025 28.6103 16.976 28.5914 16.954 28.5678L16.8408 28.4548C16.8267 28.4407 16.819 28.4238 16.8094 28.4075C16.5438 28.5707 16.268 28.7163 15.9774 28.8324L15.2728 29.1147C15.1774 29.1529 15.0986 29.2237 15.0505 29.3145C15.0024 29.4053 14.9881 29.5103 15.0101 29.6106L15.1781 30.377C15.2142 30.5425 15.3435 30.6718 15.5092 30.7082L16.363 30.8954C16.5288 30.9319 16.658 31.0612 16.6942 31.227L16.8808 32.0794C16.9169 32.2452 17.0462 32.3745 17.212 32.4109L18.0657 32.5981C18.2315 32.6343 18.3607 32.7639 18.3969 32.9293L18.5844 33.7834C18.6206 33.9488 18.7499 34.0781 18.9156 34.1146L19.77 34.3021C19.9354 34.3386 20.0647 34.4676 20.1012 34.633L20.29 35.4896C20.3262 35.6547 20.4554 35.784 20.6206 35.8202L21.3886 35.9898C21.4891 36.0119 21.5942 35.9976 21.6852 35.9494C21.7761 35.9013 21.847 35.8223 21.8852 35.7267L22.1674 35.0224C22.2839 34.7319 22.4295 34.456 22.5924 34.1904C22.5764 34.1808 22.5591 34.1728 22.545 34.1591L22.4317 34.0458C22.4088 34.0237 22.3906 33.9972 22.378 33.9679C22.3654 33.9386 22.3588 33.9071 22.3586 33.8752C22.3583 33.8434 22.3644 33.8118 22.3765 33.7823C22.3886 33.7528 22.4064 33.726 22.4289 33.7035C22.4515 33.6809 22.4783 33.6631 22.5078 33.6511C22.5373 33.639 22.5689 33.633 22.6007 33.6333C22.6326 33.6336 22.6641 33.6402 22.6934 33.6528C22.7227 33.6654 22.7491 33.6837 22.7713 33.7066L22.8602 33.7952C23.0204 33.5749 23.1966 33.3668 23.3876 33.1725L26.9568 29.603L18.2215 27.2177ZM18.2459 29.5207C18.2009 29.5657 18.1399 29.5909 18.0763 29.5909C18.0127 29.5909 17.9517 29.5657 17.9067 29.5207L17.6683 29.2823C17.6447 29.2604 17.6258 29.2339 17.6127 29.2044C17.5995 29.175 17.5925 29.1432 17.5919 29.111C17.5914 29.0788 17.5973 29.0467 17.6093 29.0169C17.6214 28.987 17.6394 28.9598 17.6622 28.937C17.685 28.9143 17.7121 28.8963 17.742 28.8842C17.7719 28.8721 17.8039 28.8662 17.8361 28.8668C17.8683 28.8674 17.9001 28.8744 17.9296 28.8875C17.959 28.9006 17.9855 28.9196 18.0075 28.9431L18.2459 29.1812C18.2908 29.2262 18.316 29.2872 18.316 29.3508C18.316 29.4144 18.2908 29.4757 18.2459 29.5207ZM19.1985 30.4734C19.1535 30.5183 19.0925 30.5435 19.0289 30.5435C18.9653 30.5435 18.9043 30.5183 18.8593 30.4734L18.6212 30.2353C18.5976 30.2133 18.5787 30.1868 18.5656 30.1574C18.5525 30.1279 18.5454 30.0962 18.5449 30.0639C18.5443 30.0317 18.5502 29.9997 18.5623 29.9698C18.5744 29.9399 18.5923 29.9128 18.6151 29.89C18.6379 29.8672 18.6651 29.8492 18.6949 29.8372C18.7248 29.8251 18.7568 29.8192 18.7891 29.8197C18.8213 29.8203 18.8531 29.8274 18.8825 29.8405C18.9119 29.8536 18.9384 29.8725 18.9604 29.8961L19.1985 30.1342C19.2434 30.1792 19.2687 30.2402 19.2687 30.3038C19.2687 30.3674 19.2434 30.4284 19.1985 30.4734ZM20.1514 31.4263C20.1064 31.4713 20.0454 31.4965 19.9818 31.4965C19.9182 31.4965 19.8572 31.4713 19.8122 31.4263L19.5738 31.1879C19.5509 31.1658 19.5326 31.1393 19.52 31.11C19.5074 31.0808 19.5008 31.0493 19.5005 31.0174C19.5002 30.9855 19.5063 30.9539 19.5183 30.9244C19.5304 30.8949 19.5482 30.8681 19.5707 30.8456C19.5932 30.823 19.62 30.8052 19.6495 30.7931C19.679 30.781 19.7106 30.775 19.7425 30.7752C19.7743 30.7755 19.8058 30.7821 19.8351 30.7946C19.8644 30.8072 19.8909 30.8255 19.913 30.8484L20.1514 31.0868C20.1964 31.1318 20.2216 31.1928 20.2216 31.2564C20.2216 31.32 20.1964 31.3813 20.1514 31.4263ZM21.1041 32.3786C21.0591 32.4236 20.9981 32.4488 20.9345 32.4488C20.8709 32.4488 20.8099 32.4236 20.7649 32.3786L20.5265 32.1405C20.5029 32.1186 20.484 32.0921 20.4709 32.0626C20.4578 32.0332 20.4507 32.0014 20.4501 31.9692C20.4496 31.937 20.4555 31.905 20.4676 31.8751C20.4796 31.8452 20.4976 31.818 20.5204 31.7953C20.5432 31.7725 20.5703 31.7545 20.6002 31.7424C20.6301 31.7304 20.6621 31.7244 20.6943 31.725C20.7265 31.7256 20.7583 31.7326 20.7878 31.7457C20.8172 31.7589 20.8437 31.7778 20.8657 31.8013L21.1041 32.0394C21.149 32.0844 21.1743 32.1454 21.1743 32.209C21.1743 32.2726 21.149 32.3336 21.1041 32.3786ZM22.057 33.3316C22.0347 33.3539 22.0083 33.3716 21.9791 33.3836C21.95 33.3957 21.9188 33.4019 21.8873 33.4019C21.8557 33.4019 21.8245 33.3957 21.7954 33.3836C21.7663 33.3716 21.7398 33.3539 21.7175 33.3316L21.4791 33.0935C21.4555 33.0715 21.4366 33.045 21.4235 33.0156C21.4104 32.9861 21.4033 32.9544 21.4028 32.9221C21.4022 32.8899 21.4081 32.8579 21.4202 32.828C21.4323 32.7981 21.4502 32.771 21.473 32.7482C21.4958 32.7254 21.523 32.7074 21.5528 32.6954C21.5827 32.6833 21.6147 32.6774 21.647 32.6779C21.6792 32.6785 21.711 32.6856 21.7404 32.6987C21.7698 32.7118 21.7963 32.7307 21.8183 32.7543L22.057 32.9921C22.102 33.0371 22.1272 33.0981 22.1272 33.1617C22.1272 33.22 Line truncated
<defs>
<linearGradient id="paint0_linear_4045_16267" x1="13" y1="19" x2="25.3367" y2="19" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_16267" x1="13.043" y1="16.1319" x2="25.2942" y2="16.1319" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_4045_16267" x1="15" y1="26" x2="34.9996" y2="26" gradientUnits="userSpaceOnUse">
<stop offset="0.394231" stop-color="#E21E24" />
<stop offset="0.929023" stop-color="#FF2F35" />
</linearGradient>
</defs>
</svg>',
'heading' => 'Фитнес-бар',
'description' => 'В нашем баре Вы всегда получите всё необходимое для подъёма тонуса, более эффективных тренировок и хорошего настроения.'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4045_16805)">
<path d="M30.8973 23.356V17.4476C30.8972 16.8293 30.396 16.3281 29.7777 16.3281H1.20545C0.587211 16.3281 0.0859375 16.8293 0.0859375 17.4476V23.356C0.0859375 28.5768 2.97564 33.1675 7.31403 35.7608H1.20612C0.587879 35.7608 0.0866055 36.262 0.0866055 36.8803C0.0866055 37.4986 0.58773 37.9998 1.20612 37.9998H29.7778C30.3961 37.9998 30.8973 37.4987 30.8973 36.8803C30.8973 36.2621 30.3961 35.7608 29.7778 35.7608H23.6692C28.0075 33.1675 30.8973 28.5768 30.8973 23.356ZM33.1361 18.343V20.6314C34.5972 21.0331 35.6741 22.3726 35.6741 23.9597C35.6741 25.7262 34.34 27.1862 32.6266 27.3872C32.428 28.1594 32.1729 28.9159 31.8632 29.6506H32.2221C35.3601 29.6506 37.9131 27.0976 37.9131 23.9597C37.9131 21.1327 35.841 18.7817 33.1361 18.343Z" fill="url(#paint0_linear_4045_16805)" />
<path d="M25.1105 4.03177C25.0904 4.88224 24.7597 6.14367 23.2989 7.32367C22.6557 7.8432 22.3351 8.36496 22.3189 8.91856C22.2931 9.80005 23.05 10.6864 23.3438 10.9536C23.8058 11.3645 23.845 12.0701 23.4341 12.5321C23.2134 12.7804 22.9064 12.9066 22.5979 12.9066C22.3227 12.9069 22.0569 12.8059 21.8514 12.6227C21.665 12.4569 20.0311 10.9429 20.0803 8.87388C20.1005 8.02341 20.4312 6.76198 21.8919 5.58198C22.5383 5.05985 22.8589 4.53542 22.8722 3.97871C22.8969 2.93378 21.8619 1.96537 21.8514 1.95602C21.3894 1.54507 21.348 0.837545 21.7589 0.375534C22.1698 -0.0864781 22.8774 -0.127892 23.3394 0.282983C23.5259 0.448713 25.1596 1.96278 25.1105 4.03177Z" fill="#E21E24" />
<path d="M18.0075 4.03177C17.9874 4.88224 17.6567 6.14367 16.1959 7.32367C15.5526 7.8432 15.2321 8.36496 15.2158 8.91856C15.1901 9.80005 15.9469 10.6864 16.2408 10.9536C16.7028 11.3645 16.742 12.0701 16.3311 12.5321C16.1104 12.7804 15.8033 12.9066 15.4949 12.9066C15.2196 12.9069 14.9539 12.8059 14.7484 12.6227C14.562 12.4569 12.9282 10.9429 12.9773 8.87388C12.9974 8.02341 13.3281 6.76198 14.7889 5.58198C15.4353 5.05985 15.7559 4.53542 15.7691 3.97871C15.7939 2.93378 14.7589 1.96537 14.7484 1.95602C14.2864 1.54507 14.245 0.837545 14.6558 0.375534C15.0668 -0.0864781 15.7745 -0.127892 16.2363 0.282983C16.4228 0.448713 18.0566 1.96278 18.0075 4.03177Z" fill="#E21E24" />
<path d="M10.9043 4.03185C10.8842 4.88232 10.5535 6.14374 9.0927 7.32374C8.44633 7.8458 8.1257 8.3703 8.11257 8.92702C8.08778 9.97194 9.12283 10.9403 9.1333 10.9497C9.59531 11.3607 9.63672 12.0682 9.22585 12.5302C9.12087 12.6485 8.99198 12.7431 8.8477 12.8078C8.70341 12.8726 8.54703 12.906 8.38888 12.9057C8.11465 12.906 7.84993 12.8053 7.64529 12.6227C7.45885 12.4569 5.82507 10.9429 5.87413 8.87395C5.89424 8.02348 6.22496 6.76206 7.68573 5.58205C8.33211 5.05992 8.65273 4.53549 8.66594 3.97878C8.69073 2.93385 7.65568 1.96545 7.64521 1.9561C7.1832 1.54515 7.14179 0.837545 7.55266 0.375608C7.96361 -0.0864039 8.67121 -0.127818 9.13315 0.283057C9.31966 0.448788 10.9534 1.96285 10.9043 4.03185Z" fill="#E21E24" />
</g>
<defs>
<linearGradient id="paint0_linear_4045_16805" x1="0.0859375" y1="27.164" x2="37.9131" y2="27.164" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_4045_16805">
<rect width="38" height="38" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Фитнес-кафе',
'description' => 'Низкокалорийные и полезные блюда. Горячее и закуски, чай и кофе, свежевыжатый сок и десерты - всё это можно попробовать у нас и заказать на вынос.'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4045_16510)">
<path d="M18.6267 24.6644C18.5681 25.4296 18.3415 26.1724 17.9631 26.8399C17.7542 27.1458 17.3387 27.2277 17.0293 27.024C16.72 26.8203 16.6312 26.4062 16.8298 26.0935C16.8549 26.0521 17.9644 24.2016 16.7545 20.5712C16.4821 19.744 16.3927 18.8674 16.4926 18.0022C16.4282 17.91 16.3704 17.8134 16.3195 17.7131C16.1468 17.3606 16.0519 16.975 16.0413 16.5826C16.0396 16.2078 16.342 15.9026 16.7168 15.901C17.0916 15.8993 17.3968 16.2017 17.3985 16.5765C17.388 16.7074 17.406 16.8391 17.4512 16.9624C17.4964 17.0857 17.5677 17.1978 17.6603 17.291C17.7528 17.3842 17.8644 17.4563 17.9874 17.5023C18.1104 17.5483 18.242 17.5672 18.373 17.5577C19.1937 17.5723 20.0072 17.7149 20.7839 17.9804C20.9154 18.0173 21.056 18.0022 21.1767 17.9384C21.2974 17.8746 21.389 17.7668 21.4325 17.6374C21.4761 17.508 21.4683 17.3668 21.4107 17.243C21.3532 17.1192 21.2502 17.0222 21.1232 16.9721C20.2163 16.6343 19.3953 16.1002 18.719 15.4079C18.656 15.3449 18.606 15.2701 18.5718 15.1878C18.5377 15.1055 18.5201 15.0172 18.5201 14.9281C18.52 14.8389 18.5376 14.7507 18.5717 14.6683C18.6057 14.586 18.6557 14.5111 18.7187 14.4481C18.7817 14.385 18.8565 14.335 18.9388 14.3009C19.0212 14.2667 19.1094 14.2491 19.1986 14.2491C19.2877 14.2491 19.3759 14.2666 19.4583 14.3007C19.5407 14.3348 19.6155 14.3847 19.6785 14.4477C20.0115 14.7809 20.3852 15.0707 20.7907 15.3102L21.8635 14.2374L19.9167 12.3008L15.8724 13.4428C15.2237 15.1155 13.0061 20.7992 11.683 23.6981C11.2474 24.6185 11.0639 25.638 11.151 26.6526C11.2108 27.3951 11.452 28.1116 11.8533 28.7392C11.9281 28.8508 11.968 28.9822 11.968 29.1165V29.8833C11.9672 30.0996 12.0184 30.3129 12.1171 30.5053C12.2158 30.6978 12.3592 30.8637 12.5353 30.9893C12.7107 31.1185 12.9143 31.2039 13.1294 31.2385C13.3444 31.2731 13.5646 31.2558 13.7716 31.1882C13.8692 31.1543 13.9731 31.1423 14.0758 31.1531C14.1786 31.1639 14.2777 31.1972 14.3661 31.2506C17.1686 32.8491 20.4113 33.5027 23.6143 33.1147C26.0228 32.7531 27.8086 30.6902 27.8215 28.2548C27.8215 28.0668 27.8092 27.8849 27.7909 27.6963C27.72 26.9704 27.4832 26.2704 27.0986 25.6506C26.7141 25.0308 26.1923 24.5076 25.5734 24.1216C22.8739 22.493 19.7402 23.3432 18.6267 24.6644ZM13.6304 27.7492C13.5506 27.7891 13.4638 27.8128 13.3749 27.8191C13.2859 27.8254 13.1966 27.8141 13.1121 27.7859C13.0275 27.7576 12.9493 27.713 12.882 27.6546C12.8147 27.5961 12.7595 27.525 12.7197 27.4452C12.4794 26.9246 12.3549 26.3581 12.3549 25.7847C12.3549 25.2113 12.4794 24.6448 12.7197 24.1242C12.8911 23.7976 13.292 23.6677 13.6223 23.8316C13.9527 23.9956 14.0916 24.3935 13.935 24.7274C13.7888 25.0601 13.7133 25.4196 13.7133 25.783C13.7133 26.1464 13.7888 26.5058 13.935 26.8385C13.9749 26.9183 13.9986 27.0052 14.0049 27.0941C14.0111 27.1831 13.9998 27.2724 13.9715 27.357C13.9432 27.4416 13.8985 27.5198 13.84 27.5871C13.7814 27.6544 13.7102 27.7095 13.6304 27.7492ZM25.5142 29.6695C25.5386 29.7553 25.5459 29.845 25.5357 29.9335C25.5254 30.0221 25.4979 30.1077 25.4545 30.1856C25.4112 30.2635 25.3529 30.3321 25.283 30.3875C25.2131 30.4428 25.133 30.4839 25.0473 30.5083C23.735 30.9036 22.3741 31.1142 21.0037 31.1339C19.8575 31.2046 18.7141 30.9579 17.6991 30.4207C17.386 30.2146 17.2992 29.7937 17.5054 29.4805C17.7115 29.1674 18.1324 29.0807 18.4455 29.2868C18.4944 29.3167 20.3904 30.4281 24.6755 29.204C25.0356 29.1012 25.411 29.3095 25.5142 29.6695Z" fill="#E21E24" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.1783 4.74998H27.8212V6.10711H10.1783V4.74998ZM8.82117 3.39286H10.1783V2.03573C10.1783 1.66097 10.4821 1.35713 10.8569 1.35713C11.2317 1.35713 11.5355 1.66091 11.5355 2.03573V3.39286H12.8926V2.03573C12.8926 1.66097 13.1964 1.35713 13.5712 1.35713C13.946 1.35713 14.2498 1.66091 14.2498 2.03573V3.39286H15.6069V2.03573C15.6069 1.66097 15.9107 1.35713 16.2855 1.35713C16.6604 1.35713 16.9641 1.66091 16.9641 2.03573V3.39286H18.3213V2.03573C18.3213 1.66097 18.625 1.35713 18.9999 1.35713C19.3747 1.35713 19.6785 1.66091 19.6785 2.03573V3.39286H21.0356V2.03573C21.0356 1.66097 21.3394 1.35713 21.7142 1.35713C22.089 1.35713 22.3928 1.66091 22.3928 2.03573V3.39286H23.7499V2.03573C23.7499 1.66097 24.0537 1.35713 24.4285 1.35713C24.8033 1.35713 25.1071 1.66091 25.1071 2.03573V3.39286H26.4642V2.03573C26.4642 1.66097 26.768 1.35713 27.1428 1.35713C27.5176 1.35713 27.8214 1.66091 27.8214 2.03573V3.39286H29.1786C29.5533 3.39286 29.8571 3.08908 29.8571 2.71426V0.678596C29.8571 0.303842 29.5534 0 29.1786 0H8.82117C8.44642 0 8.14258 0.303779 8.14258 0.678596V2.71432C8.14258 3.08908 8.44642 3.39286 8.82117 3.39286Z" fill="url(#paint0_linear_4045_16510)" />
<path d="M25.1885 14.9291H33.9284V12.8934C33.9251 9.8967 31.4966 7.46821 28.4999 7.46484H9.49987C6.50314 7.46821 4.07465 9.8967 4.07129 12.8934V14.9291H10.857C11.2318 14.9291 11.5356 15.2329 11.5356 15.6077C11.5356 15.9825 11.2318 16.2863 10.857 16.2863H4.07135V31.2149H9.02491C9.39967 31.2149 9.70351 31.5187 9.70351 31.8935C9.70351 32.2683 9.39973 32.5721 9.02491 32.5721H4.07135V33.9292C4.07359 36.1769 5.89515 37.9984 8.1428 38.0007H29.8571C32.1047 37.9984 33.9263 36.1769 33.9285 33.9292V32.5721H30.366C29.9913 32.5721 29.6874 32.2683 29.6874 31.8935C29.6874 31.5187 29.9912 31.2149 30.366 31.2149H33.9285V16.2863H25.1885C24.8137 16.2863 24.5099 15.9826 24.5099 15.6077C24.5099 15.233 24.8137 14.9291 25.1885 14.9291ZM9.49987 10.1792C8.00079 10.1792 6.78561 11.3944 6.78561 12.8934C6.78561 13.2682 6.48183 13.572 6.10701 13.572C5.73226 13.572 5.42842 13.2682 5.42842 12.8934C5.43066 10.6458 7.25221 8.82422 9.49987 8.82197C9.87462 8.82197 10.1785 9.12575 10.1785 9.50057C10.1785 9.87539 9.87469 10.1792 9.49987 10.1792ZM26.2722 22.958C27.071 23.4531 27.7452 24.1254 28.2426 24.9229C28.74 25.7203 29.0472 26.6215 29.1405 27.5567C29.1642 27.7976 29.1785 28.0222 29.1785 28.2549C29.1626 31.3602 26.8881 33.9915 23.8177 34.4564C23.1258 34.5583 22.4272 34.6089 21.7277 34.6077C18.9924 34.5809 16.3064 33.8759 13.9106 32.5557C13.513 32.6379 13.1022 32.6308 12.7077 32.5348C12.3132 32.4388 11.945 32.2564 11.6297 32.0006C11.3143 31.7449 11.0598 31.4223 10.8844 31.0562C10.709 30.69 10.6171 30.2895 10.6155 29.8835V29.3149C10.1606 28.5448 9.88379 27.6828 9.80527 26.7919C9.69336 25.539 9.9158 24.2788 10.4499 23.1398C11.7609 20.2695 13.9656 14.617 14.6102 12.9524C14.6859 12.7587 14.8047 12.5848 14.9575 12.4437C15.1103 12.3026 15.2932 12.1981 15.4923 12.1381L19.5332 10.9934C19.7684 10.9277 20.0167 10.9255 20.2529 10.987C20.4892 11.0485 20.7049 11.1715 20.8782 11.3435L22.8243 13.2828C22.9517 13.4095 23.0526 13.5603 23.121 13.7265C23.1894 13.8927 23.2239 14.0708 23.2226 14.2505C23.2219 14.4286 23.1856 14.6047 23.1156 14.7685C23.0457 14.9322 22.9436 15.0803 22.8154 15.2039L22.0602 15.9591C22.3807 16.1941 22.618 16.5251 22.7377 16.9041C22.8574 17.2831 22.8533 17.6903 22.7259 18.0668C22.6004 18.443 22.36 18.7703 22.0386 19.0026C21.7172 19.2348 21.331 19.3604 20.9344 19.3615C20.7404 19.3615 20.5475 19.3307 20.3631 19.2705C19.721 19.0508 19.0492 18.9307 18.3708 18.9143C18.1828 18.9136 17.9955 18.8936 17.8116 18.8546C17.8264 19.293 17.9034 19.7271 18.0403 20.1439C18.346 21.0394 18.5457 21.9677 18.6354 22.9097C20.9941 21.5124 23.9314 21.5309 26.2722 22.958Z" fill="url(#paint1_linear_4045_16510)" />
</g>
<defs>
<linearGradient id="paint0_linear_4045_16510" x1="8.14258" y1="3.05356" x2="29.8571" y2="3.05356" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4045_16510" x1="4.07129" y1="22.7328" x2="33.9285" y2="22.7328" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_4045_16510">
<rect width="38" height="38" fill="white" />
</clipPath>
</defs>
</svg>',
'heading' => 'Магазин спортивного питания',
'description' => 'Для спортсменов на территории клуба так же находится магазин спортивного питания. Широкий ассортимент порадует даже профессионалов и не даст уйти с пустыми руками!'
]
];
?>
<section class="py-[96px]">
<div class="container mx-auto">
<div class="mt-[24px] grid grid-cols-3 gap-[24px]">
<div class="flex flex-col gap-[32px] [&>img]:w-[294px] mt-[28px]">
<?php display_icon(get_current_room() === 'gym' ? 'dark_logo_name_gym' : 'light_logo_name'); ?>
<h2 class="text-[40px] leading-[120%] font-[500]"><strong>Дополнительные</strong>
услуги</h2>
</div>
<?php foreach ($additional_services as $service): ?>
<div class="bg-[#ffffff] rounded-[12px] p-[28px] pb-[16px] h-[305px] shadow-[0_2px_32px_0_rgba(16,_15,_15,_0.03)]">
<div class="flex flex-col h-full gap-[12px]">
<div class="flex flex-col gap-[24px]">
<div class="overflow-hidden mx-auto [&>svg]:min-w-fit w-[76px] h-[76px] grid place-items-center rounded-[12px] radial-gradient small-shadow">
<?php echo $service['svg']; ?>
</div>
<h3 class="text-[24px] font-[600] leading-[125%]">
<?php echo esc_html($service['heading']); ?>
</h3>
</div>
<div class="text-[16px] leading-[145%] font-[500] text-[#6c6b6b]">
<?php echo esc_html($service['description']); ?>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</section>
<?php get_footer(); ?>
+14
View File
@@ -0,0 +1,14 @@
<?php
/**
* Template Name: Шаблон страницы галерии
*
* Шаблон страницы с галереей с главной страницы
*/
get_header(); ?>
<?php
get_footer();
?>
@@ -3,7 +3,7 @@
* Блок с клубными картами * Блок с клубными картами
*/ */
// Получение полей ACF
$block_id = 'club-cards-' . $block['id']; $block_id = 'club-cards-' . $block['id'];
$class_name = 'club-cards-block'; $class_name = 'club-cards-block';
if (!empty($block['className'])) { if (!empty($block['className'])) {
@@ -14,14 +14,17 @@ if (!empty($block['align'])) {
} }
if (!function_exists('get_club_cards_for_current_language')) { if (!function_exists('get_club_cards_for_current_language')) {
function get_club_cards_for_current_language() { function get_club_cards_for_current_language()
{
$current_lang = pll_current_language(); $current_lang = pll_current_language();
$args = array( $args = array(
'post_type' => 'club-card', 'post_type' => 'club-card',
'posts_per_page' => -1, 'posts_per_page' => -1,
'lang' => $current_lang, 'lang' => $current_lang,
'post_status' => 'publish' 'post_status' => 'publish',
'sort' => 'menu_order',
'order' => 'ASC',
); );
return get_posts($args); return get_posts($args);
@@ -30,57 +33,118 @@ if (!function_exists('get_club_cards_for_current_language')) {
$cards = get_club_cards_for_current_language(); $cards = get_club_cards_for_current_language();
$heading = get_field('heading', $block['id']); $heading = get_field('heading', $block['id']);
$room = get_current_room();
if ($room === 'fitness') {
} else {
$section_classes = 'bg-cover bg-center bg-no-repeat';
$bg_image = get_template_directory_uri() . '/assets/images/hero-bg.png';
$style_attr = 'style="background-image: url(' . esc_url($bg_image) . ')"';
}
?> ?>
<section id="<?php echo esc_attr($block_id); ?>" class="<?php echo esc_attr($class_name); ?>"> <section id="<?php echo esc_attr($block_id); ?>" class="py-[96px] <?php echo esc_attr($section_classes); ?>" <?php echo $style_attr; ?>>
<div class="container mx-auto mt-[24px]"> <div class="container mx-auto">
<?php if ($heading) : ?>
<h2 class="text-[32px] font-bold mt-[24px]"><?php echo esc_html($heading); ?></h2>
<?php endif; ?>
<?php if ($cards): ?> <?php if ($cards): ?>
<div class="mt-[24px] grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-[30px] max-[768px]:gap-[20px]"> <div class="mt-[24px] grid grid-cols-3 gap-[24px]">
<?php foreach ($cards as $card): ?> <?php if (is_front_page()): ?>
<div class="bg-[#ffffff] border-[1px] border-[#e5e7eb] rounded-[16px] overflow-hidden shadow-lg hover:shadow-xl transition-shadow "> <?php if ($heading) : ?>
<?php <div class="flex flex-col gap-[16px] [&>img]:w-[294px] mt-[28px]">
$card_image = get_field('image', $card->ID);
if ($card_image): ?>
<div class="overflow-hidden max-w-[60px] max-h-[60px] mx-auto mt-[22px] rounded-full">
<img src="<?php echo esc_url($card_image['url']); ?>"
alt="<?php echo esc_attr($card_image['alt']); ?>"
class="w-full h-full object-cover" />
</div>
<?php endif; ?>
<div class="p-[30px] max-[768px]:p-[20px]"> <h2 class="dark:text-[#fff] text-[40px] leading-[120%] font-[500]"><?php echo esc_html($heading); ?></h2>
<?php $card_heading = get_field('heading', $card->ID); ?> <?php display_icon(get_current_room() === 'gym' ? 'dark_logo_name' : 'light_logo_name'); ?>
<?php if ($card_heading): ?>
<h3 class="text-[24px] max-[768px]:text-[20px] font-semibold text-[#1f2937] mb-[16px] text-center"> </div>
<?php echo esc_html($card_heading); ?> <?php endif; ?>
</h3> <?php endif; ?>
<?php endif; ?> <?php foreach ($cards as $card): ?>
<div class="bg-[#ffffff] rounded-[12px] p-[28px] pb-[16px] h-[258px] shadow-[0_2px_32px_0_rgba(16,_15,_15,_0.03)]">
<div class="flex flex-col h-full">
<div class="flex gap-[16px] items-center"> <?php
$card_image = get_field('image', $card->ID);
if ($card_image): ?>
<div class="overflow-hidden w-[32px] h-[32px]">
<img src="<?php echo esc_url($card_image['url']); ?>"
alt="<?php echo esc_attr($card_image['alt']); ?>"
class="w-full h-full object-cover"/>
</div>
<?php endif; ?>
<?php $card_heading = get_field('heading', $card->ID); ?>
<?php if ($card_heading): ?>
<h3 class="text-[24px] font-[600] leading-[125%]">
<?php echo esc_html($card_heading); ?>
</h3>
<?php endif; ?></div>
<?php $card_description = get_field('description', $card->ID); ?> <?php $card_description = get_field('description', $card->ID); ?>
<?php if ($card_description): ?> <?php if ($card_description): ?>
<div class="text-[16px] max-[768px]:text-[14px] text-[#6b7280] leading-[150%] text-center mb-[16px]"> <div class="text-[16px] leading-[145%] font-[500] mt-[16px]">
<?php echo wp_kses_post($card_description); ?> <?php echo wp_kses_post($card_description); ?>
</div> </div>
<?php endif; ?> <?php endif; ?>
<div class="flex mt-auto pt-[16px] border-t border-t-[#f1f1f1] justify-between items-center gap-[12px] flex-wrap">
<?php $card_price = get_field('price', $card->ID); ?>
<?php if ($card_price): ?>
<div class="text-[20px] max-[768px]:text-[18px] font-bold text-[#1f2937] text-center mb-[24px]">
<span>От</span> <?php echo esc_html($card_price); ?> Р.
</div>
<?php endif; ?>
<div class="text-center mt-auto">
<?php $popup_button = get_field('popup_button', $card->ID); ?> <?php $popup_button = get_field('popup_button', $card->ID); ?>
<button data-modal="club-card" <?php $card_price = get_field('price', $card->ID) ?: ($card_prices['1_month']['day'] ?? ''); ?>
data-card-id="<?php echo $card->ID; ?>" <?php
class="inline-block cursor-pointer px-[24px] py-[12px] bg-[#3b82f6] text-white rounded-[8px] hover:bg-[#2563eb] transition-colors "> $card_prices = [];
<?php echo $popup_button ? esc_html($popup_button) : 'Подробнее'; ?> if (have_rows('card_prices', $card->ID)) {
</button> while (have_rows('card_prices', $card->ID)) {
the_row();
$periods = ['1_month', '3_month', '6_month', '12_month'];
foreach ($periods as $period) {
if (have_rows($period)) {
while (have_rows($period)) {
the_row();
$card_prices[$period] = [
'full' => get_sub_field('full'),
'day' => get_sub_field('day')
];
}
}
}
}
}
?>
<?php
$card_time = [];
if (have_rows('time', $card->ID)) {
while (have_rows('time', $card->ID)) {
the_row();
$card_time[] = [
'normal_days' => get_sub_field('normal_days'),
'vacation_days' => get_sub_field('vacation_days')
];
}
}
?>
<div>
<button
data-modal="club-card"
data-card-id="<?php echo $card->ID; ?>"
data-card-title="<?php echo esc_attr($card_heading); ?>"
data-card-prices='<?php echo esc_attr(json_encode($card_prices)); ?>'
data-card-time='<?php echo esc_attr(json_encode($card_time));
?>'
class="red-gradient-hover cursor-pointer flex text-[#f8f8f8] text-[18px] text-[#fff] font-[600] justify-center h-[59px] w-[160px] rounded-[90px] flex items-center">
<?php echo 'Оформить' ?>
</button>
</div>
<?php if ($card_price): ?>
<div class="flex items-center text-[20px] font-[600] leading-[125%]">
от 
<div class="rounded-[32px] px-[12px] h-[36px] flex items-center bg-[linear-gradient(90deg,_rgba(43,_44,_53,_0.06)_39.42%,_rgba(110,_121,_150,_0.06)_92.9%)]">
<span class="bg-[linear-gradient(90deg,_#2b2c35_67.31%,_#4f5870_92.9%)] text-[24px] flex items-center justify-center font-[600] bg-clip-text text-transparent"> <?php echo esc_html($card_price); ?> ₽ </span>
</div>
 в день
</div>
<?php endif; ?>
</div> </div>
</div> </div>
</div> </div>
@@ -1,110 +1,74 @@
ymaps.ready(function () { ymaps.ready(function () {
var buildingCoordinates = [55.832659, 37.576118]; var buildingCoordinates = [56.462317, 84.969289];
//Смещение карты, чтобы иконка была визуально по центру // Смещение карты, чтобы иконка была визуально по центру
var offsetCoefficient = 0.001; var offsetCoefficient = 0.001;
var mapCenter = [ var mapCenter = [
buildingCoordinates[0], buildingCoordinates[0],
buildingCoordinates[1] - offsetCoefficient buildingCoordinates[1] - offsetCoefficient
]; ];
var myMap = new ymaps.Map('map', { var myMap = new ymaps.Map('map', {
center: mapCenter, center: mapCenter,
zoom: 17, zoom: 17,
controls: [] controls: []
}); });
// Отключаем все взаимодействия с картой // Отключаем все взаимодействия с картой
myMap.behaviors.disable(['scrollZoom', 'drag', 'multiTouch', 'dblClickZoom']); myMap.behaviors.disable(['scrollZoom', 'drag', 'multiTouch', 'dblClickZoom']);
var svgIcon = '<svg width="146" height="175" viewBox="0 0 146 175" fill="none" xmlns="http://www.w3.org/2000/svg">' + // Создаем метку с серой дефолтной иконкой
'<path d="M73 174.328L48.4669 131.836H97.5331L73 174.328Z" fill="#FA4241" />' +
'<circle cx="71.9104" cy="73" r="73" fill="url(#paint0_linear_150_2453)" />' +
'<path d="M58.0581 42.549C50.1523 47.1076 43.6824 50.8665 43.6985 50.9305C43.7469 51.0424 52.3304 56.0169 52.4756 56.0169C52.524 56.0169 57.0094 53.4577 62.4628 50.3386C67.9162 47.2196 72.4339 44.6444 72.5145 44.6284C72.5952 44.5964 77.1612 47.1556 82.6631 50.3067L92.6825 56.0429L96.942 53.6117C99.2656 52.2841 101.266 51.1004 101.379 51.0044C101.525 50.8765 98.0553 48.8131 87.2614 42.639C79.3878 38.1444 72.8372 34.4175 72.7081 34.3855C72.5791 34.3375 65.9801 38.0164 58.0581 42.549Z" fill="white" />' +
'<path d="M38.5032 73.2768V92.7908L42.0043 90.7755C43.9405 89.6718 45.9734 88.5201 46.5381 88.2002L47.5384 87.6244V78.2993C47.5384 73.1648 47.5707 68.9741 47.603 68.9741C47.6352 68.9741 53.2661 72.1891 60.1232 76.1079C66.9642 80.0267 72.6597 83.1938 72.7565 83.1458C72.8694 83.0978 78.5003 79.8828 85.2929 75.98L97.6357 68.8941L97.7164 78.3153L97.7971 87.7204L102.234 90.2636L106.67 92.8068L106.719 73.2408C106.735 62.54 106.719 53.7587 106.687 53.7267C106.655 53.6947 98.9746 58.0614 89.6008 63.4358L72.5629 73.2088L55.896 63.6757C46.7317 58.4133 39.0679 54.0306 38.8743 53.9027L38.5032 53.6787V73.2768Z" fill="white" />' +
'<path d="M47.9893 93.0937C45.6014 94.4692 43.6653 95.6209 43.6653 95.6849C43.6653 95.8288 72.449 112.24 72.6588 112.224C72.9008 112.192 101.587 95.7968 101.587 95.6849C101.587 95.6369 99.5867 94.4692 97.1508 93.0777L92.6977 90.5344L82.6782 96.2767C77.1603 99.4277 72.5781 101.987 72.5136 101.955C72.4329 101.939 67.8991 99.3637 62.4618 96.2447C57.0084 93.1256 52.4908 90.5664 52.4262 90.5824C52.3456 90.5984 50.361 91.7181 47.9893 93.0937Z" fill="white" />' +
'<defs>' +
'<linearGradient id="paint0_linear_150_2453" x1="2.4683" y1="6.137" x2="115.196" y2="71.48" gradientUnits="userSpaceOnUse">' +
'<stop stop-color="#F41C1B" />' +
'<stop offset="0.435" stop-color="#F72D2C" />' +
'<stop offset="1" stop-color="#FA4242" />' +
'</linearGradient>' +
'</defs>' +
'</svg>';
var iconSize;
var iconOffset;
if (window.innerWidth <= 768) {
iconSize = [73, 88];
iconOffset = [-36, -87];
} else {
iconSize = [146, 175];
iconOffset = [-73, -174];
}
var myPlacemark = new ymaps.Placemark( var myPlacemark = new ymaps.Placemark(
buildingCoordinates, buildingCoordinates,
{hintContent: '', balloonContent: ''}, {hintContent: '', balloonContent: ''},
{ {
preset: 'islands#greyIcon'
iconLayout: 'default#imageWithContent', }
iconImageHref: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svgIcon),
iconImageSize: iconSize,
iconImageOffset: iconOffset,
hideIconOnBalloonOpen: false
}
); );
// Делаем карту черно-белой
myMap.panes.get('ground').getElement().style.filter = 'grayscale(100%)'; myMap.panes.get('ground').getElement().style.filter = 'grayscale(100%)';
// Добавляем метку на карту
myMap.geoObjects.add(myPlacemark); myMap.geoObjects.add(myPlacemark);
// Логика интерактивности карты остается без изменений
var isMapInteractive = false; var isMapInteractive = false;
var mapElement = document.getElementById('map'); var mapElement = document.getElementById('map');
function activateMap(e) { function activateMap(e) {
if (!isMapInteractive) { if (!isMapInteractive) {
myMap.behaviors.enable(['scrollZoom', 'drag', 'multiTouch', 'dblClickZoom']); myMap.behaviors.enable(['scrollZoom', 'drag', 'multiTouch', 'dblClickZoom']);
isMapInteractive = true; isMapInteractive = true;
setTimeout(function () { setTimeout(function () {
document.addEventListener('click', deactivateMap); document.addEventListener('click', deactivateMap);
document.addEventListener('touchend', deactivateMap); document.addEventListener('touchend', deactivateMap);
}, 100); }, 100);
e.stopPropagation(); e.stopPropagation();
} }
} }
function deactivateMap(e) { function deactivateMap(e) {
var target = e.target; var target = e.target;
if (e.type === 'touchend' || e.changedTouches || e.changedTouches[0]) { if (e.type === 'touchend' || e.changedTouches || e.changedTouches[0]) {
var touch = e.changedTouches[0]; var touch = e.changedTouches[0];
target = document.elementFromPoint(touch.clientX, touch.clientY); target = document.elementFromPoint(touch.clientX, touch.clientY);
} }
if (!mapElement.contains(target)) { if (!mapElement.contains(target)) {
myMap.behaviors.disable(['scrollZoom', 'drag', 'multiTouch', 'dblClickZoom']);
isMapInteractive = false;
myMap.behaviors.disable(['scrollZoom', 'drag', 'multiTouch', 'dblClickZoom']); document.removeEventListener('click', deactivateMap);
isMapInteractive = false; document.removeEventListener('touchend', deactivateMap);
}
}
document.removeEventListener('click', deactivateMap);
document.removeEventListener('touchend', deactivateMap);
}
}
mapElement.addEventListener('click', activateMap); mapElement.addEventListener('click', activateMap);
mapElement.addEventListener('touchstart', activateMap); mapElement.addEventListener('touchstart', activateMap);
}); });
@@ -25,7 +25,7 @@ if (!empty($blocks) && isset($blocks[0]['blockName']) && $blocks[0]['blockName']
$is_first_block = true; $is_first_block = true;
} }
$section_padding = $is_first_block ? "pt-[64px] max-[768px]:pt-[40px]" : "pt-[80px] max-[768px]:pt-[64px]"; $section_padding = $is_first_block ? "!pt-[0]" : "!pt-[0px]";
?> ?>
@@ -49,35 +49,54 @@ $section_padding = $is_first_block ? "pt-[64px] max-[768px]:pt-[40px]" : "pt-[80
<section id="<?php echo esc_attr( $id ); ?>" class="<?php echo esc_attr( $classes ); ?> <?php echo $section_padding ?>"> <section id="<?php echo esc_attr( $id ); ?>" class="<?php echo esc_attr( $classes ); ?> <?php echo $section_padding ?>">
<div class="w-full relative"> <div class="w-full relative">
<div id="map" class="w-full h-[500px] min-[1024px]:h-[700px] bg-[#f3f4f6]"></div> <div id="map" class="w-full h-[608px] <?php if ($is_first_block): ?>h-[828px]<?php endif; ?>"></div>
<div class="absolute inset-0 pointer-events-none"> <div class="absolute inset-0 pointer-events-none">
<div class="container mx-auto px-[16px] h-full flex items-start pt-[40px]"> <div class="container mx-auto h-full flex items-center">
<div class="bg-[#ffffff] border-[1px] border-[#e5e7eb] rounded-[12px] p-[30px] w-full max-w-[380px] shadow-lg pointer-events-auto"> <div class="bg-[#ffffff] rounded-[24px] px-[32px] py-[30px] w-full max-w-[424px] pointer-events-auto">
<?php if ($heading) : ?> <?php if ($heading) : ?>
<h2 class="text-[36px] max-[768px]:text-[28px] font-bold mb-[30px] text-[#1f2937]"> <h2 class="text-[32px] font-bold leading-[115%]">
<?php echo esc_html($heading); ?> <?php echo esc_html($heading); ?>
</h2> </h2>
<?php else : ?> <?php
<h2 class="text-[36px] max-[768px]:text-[28px] font-bold mb-[30px] text-[#1f2937]">Контакты</h2> endif; ?>
<?php endif; ?>
<div class="flex flex-col gap-[20px]"> <div class=" mt-[24px]">
<?php if ($work_time) : ?>
<div>
<?php if (!empty($work_time['heading'])) : ?> <?php if ($address) : ?>
<p class="text-[14px] text-[#6b7280] mb-[8px]"><?php echo esc_html($work_time['heading']); ?></p> <div class="flex flex-col gap-[12px]">
<?php if (!empty($address['heading'])) : ?>
<div class="flex gap-[12px] items-center">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none"
xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2190_3176)">
<path d="M10.001 0.445312C5.68804 0.445312 2.17879 3.95456 2.17879 8.26265C2.15044 14.5644 9.70377 19.7897 10.001 20.0009C10.001 20.0009 17.8516 14.5644 17.8232 8.26754C17.8232 3.95456 14.314 0.445312 10.001 0.445312ZM10.001 12.1786C7.84012 12.1786 6.0899 10.4284 6.0899 8.26754C6.0899 6.10665 7.84012 4.35642 10.001 4.35642C12.1619 4.35642 13.9121 6.10665 13.9121 8.26754C13.9121 10.4284 12.1619 12.1786 10.001 12.1786Z"
fill="#E21E24"/>
</g>
<defs>
<clipPath id="clip0_2190_3176">
<rect width="19.5556" height="19.5556" fill="white"
transform="translate(0 0.222656)"/>
</clipPath>
</defs>
</svg>
<p class="text-[24px] font-[600] leading-[125%]"><?php echo esc_html($address['heading']); ?></p>
</div>
<?php endif; ?> <?php endif; ?>
<?php if (!empty($work_time['work_time_repeater'])) : ?> <?php if (!empty($address['address_repeater'])) : ?>
<div class="flex flex-col gap-[4px] mb-[12px]"> <div class="flex flex-col gap-[4px]">
<?php foreach ($work_time['work_time_repeater'] as $time_item) : ?> <?php foreach ($address['address_repeater'] as $addr_item) : ?>
<div class="flex text-[16px] text-[#1f2937]"> <div class="text-[16px] leading-[145%]">
<span><?php echo esc_html($time_item['title']); ?></span> <?php if (!empty($addr_item['address_title'])) : ?>
  <div class="font-[600]"><?php echo esc_html($addr_item['address_title']); ?></div>
<span><?php echo esc_html($time_item['time']); ?></span> <?php endif; ?>
<?php if (!empty($addr_item['address_extra'])) : ?>
<div class="text-[16px] leading-[145%] text-[#6c6b6b]"><?php echo esc_html($addr_item['address_extra']); ?></div>
<?php endif; ?>
</div> </div>
<?php endforeach; ?> <?php endforeach; ?>
</div> </div>
@@ -85,22 +104,32 @@ $section_padding = $is_first_block ? "pt-[64px] max-[768px]:pt-[40px]" : "pt-[80
</div> </div>
<?php endif; ?> <?php endif; ?>
<?php if ($address) : ?> <?php if ($work_time) : ?>
<div> <div class="flex mt-[28px] flex-col gap-[12px]">
<?php if (!empty($address['heading'])) : ?> <?php if (!empty($work_time['heading'])) : ?>
<p class="text-[14px] text-[#6b7280] mb-[8px]"><?php echo esc_html($address['heading']); ?></p> <div class="flex gap-[12px] items-center">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2190_3183)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.4796 19.63C10.9266 19.7273 10.3581 19.7782 9.77778 19.7782C4.38135 19.7782 0 15.3969 0 10.0004C0 4.60401 4.38135 0.222656 9.77778 0.222656C15.1742 0.222656 19.5556 4.60401 19.5556 10.0004C19.5556 10.5807 19.5046 11.1492 19.4073 11.7022C18.882 10.9647 18.1879 10.3636 17.3831 9.94888C16.5782 9.53418 15.6858 9.31796 14.7804 9.31826C13.273 9.31923 11.8276 9.91847 10.7617 10.9844C9.69581 12.0502 9.09657 13.4956 9.09561 15.003C9.0953 15.9085 9.31152 16.8008 9.72622 17.6057C10.1409 18.4106 10.7421 19.1046 11.4796 19.63ZM10.9147 4.99785V9.54565C10.9147 9.72666 10.8429 9.90038 10.7146 10.0277L7.07638 13.666C7.01308 13.7293 6.93792 13.7795 6.85521 13.8137C6.7725 13.848 6.68384 13.8656 6.59432 13.8656C6.50479 13.8656 6.41614 13.848 6.33342 13.8137C6.25071 13.7795 6.17555 13.7293 6.11225 13.666C6.04894 13.6027 5.99873 13.5275 5.96446 13.4448C5.9302 13.3621 5.91257 13.2734 5.91257 13.1839C5.91257 13.0944 5.9302 13.0057 5.96446 12.923C5.99873 12.8403 6.04894 12.7651 6.11225 12.7018L9.55039 9.26278V4.99785C9.55039 4.81693 9.62226 4.64341 9.75019 4.51548C9.87812 4.38755 10.0516 4.31568 10.2326 4.31568C10.4135 4.31568 10.587 4.38755 10.7149 4.51548C10.8429 4.64341 10.9147 4.81693 10.9147 4.99785Z" fill="#E21E24" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.7801 10.2266C12.1442 10.2266 10.0049 12.3658 10.0049 15.0018C10.0049 17.6377 12.1442 19.777 14.7801 19.777C17.416 19.777 19.5553 17.6377 19.5553 15.0018C19.5553 12.3658 17.416 10.2266 14.7801 10.2266ZM12.4789 15.2564L13.8432 16.6208C13.9065 16.6841 13.9816 16.7344 14.0644 16.7687C14.1471 16.803 14.2358 16.8207 14.3253 16.8207C14.4148 16.8207 14.5035 16.803 14.5862 16.7687C14.6689 16.7344 14.7441 16.6841 14.8074 16.6208L17.0813 14.3469C17.1446 14.2836 17.1948 14.2084 17.2291 14.1257C17.2633 14.043 17.2809 13.9543 17.2809 13.8648C17.2809 13.7753 17.2633 13.6866 17.2291 13.6039C17.1948 13.5212 17.1446 13.446 17.0813 13.3827C17.018 13.3194 16.9428 13.2692 16.8601 13.235C16.7774 13.2007 16.6887 13.1831 16.5992 13.1831C16.5097 13.1831 16.421 13.2007 16.3383 13.235C16.2556 13.2692 16.1804 13.3194 16.1171 13.3827L14.3253 15.1737L13.443 14.2923C13.3797 14.229 13.3046 14.1788 13.2218 14.1445C13.1391 14.1103 13.0505 14.0926 12.961 14.0926C12.8714 14.0926 12.7828 14.1103 12.7001 14.1445C12.6173 14.1788 12.5422 14.229 12.4789 14.2923C12.4156 14.3556 12.3654 14.4308 12.3311 14.5135C12.2968 14.5962 12.2792 14.6848 12.2792 14.7744C12.2792 14.8639 12.2968 14.9525 12.3311 15.0353C12.3654 15.118 12.4156 15.1931 12.4789 15.2564Z" fill="#E21E24" />
</g>
<defs>
<clipPath id="clip0_2190_3183">
<rect width="19.5556" height="19.5556" fill="white" transform="translate(0 0.222656)" />
</clipPath>
</defs>
</svg>
<p class="text-[24px] font-[600] leading-[125%]"><?php echo esc_html($work_time['heading']); ?></p>
</div>
<?php endif; ?> <?php endif; ?>
<?php if (!empty($address['address_repeater'])) : ?> <?php if (!empty($work_time['work_time_repeater'])) : ?>
<div class="flex flex-col gap-[8px] mb-[12px]"> <div class="flex flex-col gap-[4px]">
<?php foreach ($address['address_repeater'] as $addr_item) : ?> <?php foreach ($work_time['work_time_repeater'] as $time_item) : ?>
<div class="text-[16px] text-[#1f2937] leading-[140%]"> <div class="flex text-[16px] leading-[145%] font-[600]">
<?php if (!empty($addr_item['address_title'])) : ?> <span><?php echo esc_html($time_item['title']); ?></span>
<div class="font-semibold"><?php echo esc_html($addr_item['address_title']); ?></div>  
<?php endif; ?> <span class="font-[500]"><?php echo esc_html($time_item['time']); ?></span>
<?php if (!empty($addr_item['address_extra'])) : ?>
<div><?php echo esc_html($addr_item['address_extra']); ?></div>
<?php endif; ?>
</div> </div>
<?php endforeach; ?> <?php endforeach; ?>
</div> </div>
@@ -109,18 +138,18 @@ $section_padding = $is_first_block ? "pt-[64px] max-[768px]:pt-[40px]" : "pt-[80
<?php endif; ?> <?php endif; ?>
<?php if ($contacts) : ?> <?php if ($contacts) : ?>
<div> <div class="mt-[16px]">
<?php if (!empty($contacts['phone'])) : ?> <?php if (!empty($contacts['phone'])) : ?>
<div class="mb-[16px]"> <div>
<a href="tel:<?php echo esc_attr($contacts['phone']); ?>" <a href="tel:<?php echo esc_attr($contacts['phone']); ?>"
class="!decoration-transparent hover:!decoration-inherit text-[20px] max-[768px]:text-[18px] font-semibold transition-colors"> class="!decoration-transparent hover:!decoration-inherit text-[32px] font-[700]">
<?php echo esc_html($contacts['phone']); ?> <?php echo esc_html($contacts['phone']); ?>
</a> </a>
</div> </div>
<?php endif; ?> <?php endif; ?>
<?php if (!empty($contacts['social_repeater'])) : ?> <?php if (!empty($contacts['social_repeater'])) : ?>
<div> <div class="mt-[14px]">
<div class="flex gap-[12px]"> <div class="flex gap-[12px]">
<?php foreach ($contacts['social_repeater'] as $social_item) : ?> <?php foreach ($contacts['social_repeater'] as $social_item) : ?>
<?php if (!empty($social_item['url'])) : ?> <?php if (!empty($social_item['url'])) : ?>
@@ -130,7 +159,7 @@ $section_padding = $is_first_block ? "pt-[64px] max-[768px]:pt-[40px]" : "pt-[80
<?php if (!empty($social_item['icon'])) : ?> <?php if (!empty($social_item['icon'])) : ?>
<img src="<?php echo esc_url($social_item['icon']['url']); ?>" <img src="<?php echo esc_url($social_item['icon']['url']); ?>"
alt="<?php echo esc_attr($social_item['icon']['alt']); ?>" alt="<?php echo esc_attr($social_item['icon']['alt']); ?>"
class="object-contain" /> class="object-contain w-[42px]" />
<?php endif; ?> <?php endif; ?>
</a> </a>
<?php endif; ?> <?php endif; ?>
@@ -1,91 +1,89 @@
.form-block-wrapper .ff-el-group { #fluentform_3 {
margin-bottom: 24px;
} }
.form-block-wrapper .ff-el-input--label label { #fluentform_3 .ff-el-form-control {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: #374151;
font-size: 14px;
}
.form-block-wrapper .ff-el-form-control {
width: 100%;
padding: 12px 16px;
border: 2px solid #e5e7eb;
border-radius: 8px;
font-size: 16px;
transition: all 0.2s ease;
background: #ffffff;
box-sizing: border-box;
}
.form-block-wrapper .ff-el-form-control:focus {
outline: none;
border-color: #3b82f6;
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}
.form-block-wrapper .ff-btn-submit {
width: 100%;
padding: 14px 24px;
background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
color: white;
border: none; border: none;
border-radius: 8px; box-shadow: 0 2px 32px 0 rgba(16, 15, 15, 0.03);
background: #fff;
border-radius: 90px;
height: 77px;
padding-left: 32px;
padding-right: 32px;
outline: 1px solid transparent;
font-weight: 500;
font-size: 16px; font-size: 16px;
line-height: 130%;
color: #6c6b6b;
}
#fluentform_3 .ff-btn-submit {
height: 75px;
background: linear-gradient(90deg, #e21e24 39.42%, #ff2f35 92.9%);
border-radius: 90px;
font-weight: 600; font-weight: 600;
font-size: 18px;
line-height: 195%;
color: #f8f8f8;
display: grid;
place-content: center;
width: 100%;
cursor: pointer; cursor: pointer;
transition: all 0.3s ease; transition: 180ms ease-in;
text-transform: none;
} }
.form-block-wrapper .ff-btn-submit:hover { #fluentform_3 .ff-btn-submit:hover {
transform: translateY(-1px); font-weight: 700;
box-shadow: 0 8px 25px rgba(59, 130, 246, 0.3); transition: 180ms ease-in;
} }
.form-block-wrapper .ff-btn-submit:active { #fluentform_3 .ff_submit_btn_wrapper {
transform: translateY(0); margin-bottom: 0!important;
} }
.form-block-wrapper .asterisk-right label::after { #fluentform_3 .error.text-danger {
content: ' *'; position: absolute;
color: #ef4444; margin-top: 0;
font-weight: bold; bottom: -18px;
left: 0;
width: 100%;
text-align: center;
} }
.form-block-wrapper .ff-message-success, #fluentform_3 .ff-el-group {
.form-block-wrapper .ff-message-container { position: relative;
display: none !important; margin-bottom: 18px;
} }
.form-block-wrapper.form-loading .ff-btn-submit { #fluentform_3_success {
opacity: 0.7; display: none!important;
}
#fluentform_3 .ff-el-input--label {
position: absolute;
top: 50%;
left: 32px;
transform: translateY(-50%);
pointer-events: none; pointer-events: none;
z-index: 2;
margin: 0;
transition: 180ms ease-in-out;
font-weight: 500;
font-size: 16px;
line-height: 130%;
color: #6c6b6b;
} }
@media (max-width: 768px) {
.form-block-wrapper {
margin: 20px;
padding: 20px;
}
.form-block-wrapper .ff-el-form-control { #fluentform_3 .ff-el-group.focused .ff-el-input--label,
font-size: 16px; #fluentform_3 .ff-el-group.has-value .ff-el-input--label {
padding: 10px 14px; top: 6px;
} transform: translateY(0);
transition: 180ms ease-in-out;
.form-block-wrapper .ff-btn-submit { font-size: 14px;
font-size: 16px;
padding: 12px 20px;
}
}
@media (max-width: 1024px) and (min-width: 769px) {
.form-block-wrapper {
padding: 25px;
}
} }
@@ -0,0 +1,82 @@
document.addEventListener('DOMContentLoaded', function() {
const inputs = document.querySelectorAll('#fluentform_3 .ff-el-form-control');
const phoneInput = document.querySelector('#fluentform_3 .ff-el-phone');
inputs.forEach(input => {
// Добавляем класс при фокусе
input.addEventListener('focus', function() {
this.closest('.ff-el-group').classList.add('focused');
});
// Убираем класс при потере фокуса
input.addEventListener('blur', function() {
this.closest('.ff-el-group').classList.remove('focused');
});
// Добавляем/убираем класс при вводе
input.addEventListener('input', function() {
const group = this.closest('.ff-el-group');
if (this.value.trim() !== '') {
group.classList.add('has-value');
} else {
group.classList.remove('has-value');
}
});
});
// Маска для телефона +7 (___) ___-__-__
if (phoneInput) {
phoneInput.addEventListener('input', function(e) {
let value = e.target.value.replace(/\D/g, ''); // Убираем все кроме цифр
// Если начинается с 8, заменяем на 7
if (value.startsWith('8')) {
value = '7' + value.slice(1);
}
// Если не начинается с 7, добавляем 7
if (!value.startsWith('7') && value.length > 0) {
value = '7' + value;
}
let formattedValue = '';
if (value.length > 0) {
formattedValue = '+7';
if (value.length > 1) {
formattedValue += ' (' + value.slice(1, 4);
if (value.length > 4) {
formattedValue += ') ' + value.slice(4, 7);
if (value.length > 7) {
formattedValue += '-' + value.slice(7, 9);
if (value.length > 9) {
formattedValue += '-' + value.slice(9, 11);
}
}
}
}
}
e.target.value = formattedValue;
});
// Обработка клавиш для корректного удаления
phoneInput.addEventListener('keydown', function(e) {
if (e.key === 'Backspace' || e.key === 'Delete') {
const cursorPos = e.target.selectionStart;
const value = e.target.value;
// Если курсор на служебном символе, сдвигаем его
if (cursorPos > 0 && [' ', '(', ')', '-'].includes(value[cursorPos - 1])) {
setTimeout(() => {
e.target.setSelectionRange(cursorPos - 1, cursorPos - 1);
}, 0);
}
}
});
}
});
@@ -10,24 +10,44 @@ $current_url = home_url($_SERVER['REQUEST_URI']);
$page_title = get_the_title() ?: 'Главная страница'; $page_title = get_the_title() ?: 'Главная страница';
$form_name = $form_title; $form_name = $form_title;
$room = get_current_room();
if ($room === 'gym') {
$section_classes = 'bg-cover bg-center bg-no-repeat';
$bg_image = get_template_directory_uri() . '/assets/images/form-bg-dark.png';
$style_attr = 'style="background-image: url(' . esc_url($bg_image) . ')"';
} else {
$section_classes = 'bg-cover bg-center bg-no-repeat';
$bg_image = get_template_directory_uri() . '/assets/images/form-bg-light.png';
$style_attr = 'style="background-image: url(' . esc_url($bg_image) . ')"';
}
$hidden_value = "Форма: {$form_name} | Страница: {$page_title} | URL: {$current_url}"; $hidden_value = "Форма: {$form_name} | Страница: {$page_title} | URL: {$current_url}";
?> ?>
<section class="container mx-auto mt-[22px]" id="<?php echo esc_attr($unique_id); ?>"> <section class="mt-[22px] bg-[linear-gradient(180deg,_#f2f2f2_69.59%,_#ededed_100%)] bg-cover" id="<?php echo esc_attr($unique_id); ?> "
<div class="text-[24px] font-[700] mb-[20px] text-[#374151]"> <?php echo $style_attr; ?>
<?php echo esc_html($form_title); ?> >
</div>
<div class="form-block-wrapper bg-white p-[30px] rounded-[12px] max-w-[300px]" <div class="container mx-auto py-[48px] flex relative">
data-form-id="<?php echo esc_attr($form_id); ?>" <img class="absolute right-0 bottom-0 pointer-events-none z-0" src="<?php echo esc_url(get_template_directory_uri() . '/assets/images/form-image-trainer.png'); ?>" alt="Изображение тренера">
data-submit-text="<?php echo esc_attr($submit_button_text); ?>" <div class="form-block-wrapper relative z-[1] border border-[2px] border-[#fff] p-[48px] bg-[#f8f8f8] rounded-[32px] w-full max-w-[590px]"
data-hidden-value="<?php echo esc_attr($hidden_value); ?>"> data-form-id="<?php echo esc_attr($form_id); ?>"
<?php echo do_shortcode('[fluentform id="' . esc_attr($form_id) . '"]'); ?> data-submit-text="<?php echo esc_attr($submit_button_text); ?>"
data-hidden-value="<?php echo esc_attr($hidden_value); ?>">
<h3 class="font-[500] text-[40px] leading-[120%] text-[#222]">Пробная <strong class="font-[700]">персональная
тренировка</strong>
<span class="bg-[linear-gradient(90deg,_#9d9994_39.42%,_#ccc9c4_92.9%)] rounded-[32px] h-[43px] inline-flex items-center pr-[16px] pl-[16px] font-[600] text-[32px] leading-[115%] text-[#fff]">за 1200 ₽</span>
</h3>
<p class="mt-[16px] mb-[24px] font-[500] text-[20px] leading-[140%] text-[#222]">Познакомимся, покажем зал и
<strong class="font-[600]">подберём
оптимальные для вас тренировки!</strong></p>
<?php echo do_shortcode('[fluentform id="' . esc_attr($form_id) . '"]'); ?>
</div>
</div> </div>
</section> </section>
<script> <script>
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function () {
const section = document.getElementById('<?php echo esc_js($unique_id); ?>'); const section = document.getElementById('<?php echo esc_js($unique_id); ?>');
if (!section) return; if (!section) return;
@@ -68,6 +88,6 @@ $hidden_value = "Форма: {$form_name} | Страница: {$page_title} | UR
}, 150); }, 150);
} }
block.addEventListener('focusin', updateForm, { once: true }); block.addEventListener('focusin', updateForm, {once: true});
}); });
</script> </script>
@@ -0,0 +1,55 @@
.gallery-block .thumbnail {
opacity: 0.5;
transition: 180ms ease-in-out;
}
.gallery-block .thumbnail.active {
opacity: 1;
transition: 180ms ease-in-out;
}
.gallery-block .tab-button {
box-shadow: 0 2px 32px 0 rgba(16, 15, 15, 0.03);
background: #fff;
font-weight: 500;
font-size: 18px;
line-height: 195%;
color: #222;
}
.gallery-block .tab-button.active {
font-size: 18px;
line-height: 195%;
color: #f8f8f8;
box-shadow: none;
background: linear-gradient(90deg, #9d9994 39.42%, #ccc9c4 92.9%);
}
.dark .gallery-block .tab-button.active {
background: linear-gradient(90deg, #2b2c35 39.42%, #6e7996 92.9%);
color: #f8f8f8;
}
.gallery-block .swiper-slide img {
transition: opacity 180ms ease-in-out;
}
.gallery-block .swiper-slide img[loading="lazy"] {
opacity: 0;
}
.gallery-block .swiper-slide img[loading="lazy"].loaded,
.gallery-block .swiper-slide img:not([loading="lazy"]) {
opacity: 1;
}
.gallery-block .thumbnail:not(.active) {
opacity: 0.6;
transition: opacity 180ms ease-in-out;
}
.gallery-block .thumbnail.active {
opacity: 1;
}
@@ -1,5 +1,5 @@
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('.gallery-block').forEach(function(block) { document.querySelectorAll('.gallery-block').forEach(function (block) {
const blockId = block.getAttribute('data-gallery-id'); const blockId = block.getAttribute('data-gallery-id');
initGalleryBlock(blockId); initGalleryBlock(blockId);
}); });
@@ -10,99 +10,126 @@ function initGalleryBlock(blockId) {
if (!container) return; if (!container) return;
const swipers = {}; const swipers = {};
const thumbnailSwipers = {};
const initializedTabs = new Set();
let lightbox; let lightbox;
function initAllSwipers() { function initTabSwiper(tabId) {
const tabs = container.querySelectorAll('.tab-button'); if (initializedTabs.has(tabId)) return;
tabs.forEach(button => { const tabContent = container.querySelector(`#tab-${tabId}`);
const tabId = button.getAttribute('data-tab'); if (!tabContent?.querySelector('.gallery-swiper')) return;
const tabContent = container.querySelector(`#tab-${tabId}`);
if (tabContent && tabContent.querySelector('.swiper')) { thumbnailSwipers[tabId] = new Swiper(`#${blockId} #thumbnail-swiper-${tabId}`, {
const wasHidden = tabContent.classList.contains('hidden'); slidesPerView: 'auto',
if (wasHidden) { spaceBetween: 24,
tabContent.style.visibility = 'hidden'; freeMode: true,
tabContent.style.position = 'absolute'; grabCursor: true,
tabContent.classList.remove('hidden'); watchSlidesProgress: true,
tabContent.classList.add('block'); });
}
if (swipers[tabId]) { swipers[tabId] = new Swiper(`#${blockId} #swiper-${tabId}`, {
swipers[tabId].destroy(true, true); slidesPerView: 'auto',
} spaceBetween: 24,
centeredSlides: true,
swipers[tabId] = new Swiper(`#${blockId} #swiper-${tabId}`, { initialSlide: 1,
slidesPerView: 1.5, scrollbar: {
spaceBetween: 20, el: `#swiper-scrollbar-${tabId}`,
loop: true, draggable: true,
centeredSlides: true, },
grabCursor: true, grabCursor: true,
observer: true, watchSlidesProgress: true,
observeParents: true, lazy: {
watchSlidesProgress: true, loadPrevNext: true,
navigation: { loadOnTransitionStart: true,
nextEl: `#${blockId} #swiper-${tabId} .swiper-button-next`, },
prevEl: `#${blockId} #swiper-${tabId} .swiper-button-prev`, on: {
}, slideChange: function () {
on: { updateThumbnails(tabId, this.realIndex);
slideChange: function() { centerThumbnail(tabId, this.realIndex);
updateThumbnails(tabId, this.realIndex);
}
}
});
if (wasHidden) {
tabContent.style.visibility = '';
tabContent.style.position = '';
tabContent.classList.add('hidden');
tabContent.classList.remove('block');
} }
} }
}); });
initializedTabs.add(tabId);
} }
function initLightbox(tabId) { function initLightbox(tabId) {
if (lightbox) { const currentSelector = `#${blockId} #tab-${tabId} .glightbox`;
lightbox.destroy();
}
lightbox = GLightbox({ if (lightbox?.settings?.selector !== currentSelector) {
selector: `#${blockId} #tab-${tabId} .glightbox` if (lightbox) {
}); lightbox.destroy();
}
lightbox = GLightbox({
selector: currentSelector,
preload: false,
touchNavigation: true,
loop: true
});
}
} }
function updateThumbnails(tabId, activeIndex) { function updateThumbnails(tabId, activeIndex) {
const thumbnails = container.querySelectorAll(`#tab-${tabId} .thumbnail`); const thumbnails = container.querySelectorAll(`#tab-${tabId} .thumbnail`);
thumbnails.forEach((thumb, index) => { thumbnails.forEach((thumb, index) => {
if (index === activeIndex) { if (index === activeIndex) {
thumb.classList.add('active', '!border-blue-500'); thumb.classList.remove('opacity-50', 'hover:opacity-80');
thumb.classList.remove('border-transparent'); thumb.classList.add('opacity-100', 'active');
} else { } else {
thumb.classList.remove('active', '!border-blue-500'); thumb.classList.remove('opacity-100', 'active');
thumb.classList.add('border-transparent'); thumb.classList.add('opacity-50', 'hover:opacity-80');
} }
}); });
} }
initAllSwipers(); function centerThumbnail(tabId, activeIndex) {
if (thumbnailSwipers[tabId]) {
thumbnailSwipers[tabId].slideTo(activeIndex);
}
}
function preloadHeroImage() {
const activeTab = container.querySelector('.tab-button.active');
if (!activeTab) return;
const tabId = activeTab.getAttribute('data-tab');
const firstImage = container.querySelector(`#tab-${tabId} .swiper-slide:first-child img`);
if (firstImage && firstImage.src) {
const link = document.createElement('link');
link.rel = 'preload';
link.as = 'image';
link.href = firstImage.src;
document.head.appendChild(link);
}
}
function debounce(func, wait) {
let timeout;
return (...args) => {
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, args), wait);
};
}
preloadHeroImage();
const activeTab = container.querySelector('.tab-button.active'); const activeTab = container.querySelector('.tab-button.active');
if (activeTab) { if (activeTab) {
const tabId = activeTab.getAttribute('data-tab'); const tabId = activeTab.getAttribute('data-tab');
initTabSwiper(tabId);
initLightbox(tabId); initLightbox(tabId);
} }
container.querySelectorAll('.tab-button').forEach(button => { container.querySelectorAll('.tab-button').forEach(button => {
button.addEventListener('click', () => { button.addEventListener('click', debounce(() => {
const tabId = button.getAttribute('data-tab'); const tabId = button.getAttribute('data-tab');
container.querySelectorAll('.tab-button').forEach(btn => { container.querySelectorAll('.tab-button').forEach(btn =>
btn.classList.remove('active', 'underline'); btn.classList.remove('active'));
btn.classList.add('bg-gray-100'); button.classList.add('active');
});
button.classList.add('active', 'underline');
button.classList.remove('bg-gray-100');
container.querySelectorAll('.tab-content').forEach(content => { container.querySelectorAll('.tab-content').forEach(content => {
content.classList.remove('block'); content.classList.remove('block');
@@ -113,28 +140,41 @@ function initGalleryBlock(blockId) {
targetTab.classList.remove('hidden'); targetTab.classList.remove('hidden');
targetTab.classList.add('block'); targetTab.classList.add('block');
if (swipers[tabId]) { initTabSwiper(tabId);
requestAnimationFrame(() => {
requestAnimationFrame(() => {
if (swipers[tabId]) {
swipers[tabId].update(); swipers[tabId].update();
}); }
} if (thumbnailSwipers[tabId]) {
thumbnailSwipers[tabId].update();
}
});
initLightbox(tabId); initLightbox(tabId);
});
}, 100));
}); });
container.addEventListener('click', (e) => { container.addEventListener('click', (e) => {
if (e.target.closest('.thumbnail')) { const thumbnail = e.target.closest('.thumbnail');
const thumbnail = e.target.closest('.thumbnail'); if (!thumbnail) return;
const index = parseInt(thumbnail.getAttribute('data-index'));
const activeTab = container.querySelector('.tab-content.block');
const tabId = activeTab.id.replace('tab-', '');
if (swipers[tabId]) { const index = parseInt(thumbnail.getAttribute('data-index'));
swipers[tabId].slideToLoop(index); const activeTabContent = container.querySelector('.tab-content.block');
} const tabId = activeTabContent.id.replace('tab-', '');
updateThumbnails(tabId, index); if (swipers[tabId]) {
swipers[tabId].slideTo(index);
} }
updateThumbnails(tabId, index);
centerThumbnail(tabId, index);
});
window.addEventListener('beforeunload', () => {
Object.values(swipers).forEach(swiper => swiper?.destroy());
Object.values(thumbnailSwipers).forEach(swiper => swiper?.destroy());
if (lightbox) lightbox.destroy();
}); });
} }
@@ -1,85 +1,124 @@
<?php <?php
$id = 'gallery-tabs-' . $block['id']; $id = 'gallery-tabs-' . $block['id'];
if ( ! empty($block['anchor'] ) ) { if (!empty($block['anchor'])) {
$id = $block['anchor']; $id = $block['anchor'];
} }
$classes = 'block-gallery-tabs'; $classes = 'block-gallery-tabs';
if ( ! empty( $block['className'] ) ) { if (!empty($block['className'])) {
$classes .= ' ' . $block['className']; $classes .= ' ' . $block['className'];
} }
if ( ! empty( $block['align'] ) ) { if (!empty($block['align'])) {
$classes .= ' align' . $block['align']; $classes .= ' align' . $block['align'];
} }
$use_homepage_content = get_field('use_homepage_content');
if ($use_homepage_content) {
$homepage_id = get_option('page_on_front');
if ($homepage_id) {
$page_content = get_post_field('post_content', $homepage_id);
$blocks = parse_blocks($page_content);
foreach ($blocks as $homepage_block) {
if ($homepage_block['blockName'] === 'acf/gallery-tabs') {
echo render_block($homepage_block);
return;
}
}
}
}
// Если переключатель выключен или блок на главной не найден - рендерим локальные данные
$heading = get_field('heading'); $heading = get_field('heading');
$slider_tabs = get_field('slider_tabs'); $slider_tabs = get_field('slider_tabs');
?> ?>
<div class="gallery-block mt-[24px]" <div class="gallery-block py-[45px] pb-[90px] <?php if (!is_front_page()): echo 'pb-0 py-[90px] mt-0'; endif ?>"
id="<?php echo esc_attr( $id ); ?>" id="<?php echo esc_attr($id); ?>"
data-gallery-id="<?php echo esc_attr( $id ); ?>"> data-gallery-id="<?php echo esc_attr($id); ?>">
<div class="container mx-auto"> <div class="container mx-auto">
<div class="flex justify-between flex-wrap">
<?php if ($heading) : ?>
<h2 class="text-[48px] font-[700] leading-[110%]"><?php echo esc_html($heading); ?></h2>
<?php endif; ?>
<?php if ($heading) : ?> <?php if ($slider_tabs && !empty($slider_tabs['slider_tab'])) : ?>
<h2 class="text-[32px] font-bold"><?php echo esc_html($heading); ?></h2> <div class="flex max-w-[872px] flex-wrap gap-[8px]">
<?php endif; ?> <?php foreach ($slider_tabs['slider_tab'] as $tab_index => $tab) : ?>
<?php if (!empty($tab['tab_name'])) : ?>
<?php if ($slider_tabs && !empty($slider_tabs['slider_tab'])) : ?> <button class="tab-button grey-gradient-button rounded-[90px] py-[8px] px-[28px] cursor-pointer transition-all <?php echo $tab_index === 0 ? 'active' : ''; ?>"
<div class="flex gap-[10px] mt-[24px]"> data-tab="<?php echo $tab_index; ?>">
<?php foreach ($slider_tabs['slider_tab'] as $tab_index => $tab) : ?> <?php echo esc_html($tab['tab_name']); ?>
<?php if (!empty($tab['tab_name'])) : ?> </button>
<button class="tab-button px-[24px] py-[12px] border rounded-[25px] cursor-pointer transition-all <?php echo $tab_index === 0 ? 'active underline' : ''; ?>" <?php endif; ?>
data-tab="<?php echo $tab_index; ?>"> <?php endforeach; ?>
<?php echo esc_html($tab['tab_name']); ?> </div>
</button> <?php endif; ?>
<?php endif; ?> </div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div> </div>
<?php if ($slider_tabs && !empty($slider_tabs['slider_tab'])) : ?> <?php if ($slider_tabs && !empty($slider_tabs['slider_tab'])) : ?>
<?php foreach ($slider_tabs['slider_tab'] as $tab_index => $tab) : ?> <?php foreach ($slider_tabs['slider_tab'] as $tab_index => $tab) : ?>
<div class="tab-content <?php echo $tab_index === 0 ? 'block' : 'hidden'; ?>" <div class="tab-content relative <?php echo $tab_index === 0 ? 'block' : 'hidden'; ?>"
id="tab-<?php echo $tab_index; ?>"> id="tab-<?php echo $tab_index; ?>">
<?php if (!empty($tab['slider_images'])) : ?> <?php if (!empty($tab['slider_images'])) : ?>
<div class="swiper mt-[24px] gallery-swiper h-[440px]" id="swiper-<?php echo $tab_index; ?>">
<div class="swiper max-w-[2000px] mt-[45px] gallery-swiper h-[440px]"
id="swiper-<?php echo $tab_index; ?>">
<div class="swiper-wrapper"> <div class="swiper-wrapper">
<?php foreach ($tab['slider_images'] as $image) : ?> <?php foreach ($tab['slider_images'] as $img_index => $image) : ?>
<div class="swiper-slide cursor-pointer min-h-[440px]"> <div class="swiper-slide max-w-[648px] cursor-pointer min-h-[440px]">
<a href="<?php echo esc_url($image['url']); ?>" <a href="<?php echo esc_url($image['url']); ?>"
class="glightbox block w-full h-full" class="glightbox block w-full h-full"
data-gallery="gallery-<?php echo $tab_index; ?>"> data-gallery="gallery-<?php echo $tab_index; ?>">
<img src="<?php echo esc_url($image['url']); ?>" <?php if ($img_index === 0) : ?>
alt="<?php echo esc_attr($image['alt']); ?>" <img src="<?php echo esc_url($image['url']); ?>"
class="w-full h-full object-cover"> alt="<?php echo esc_attr($image['alt']); ?>"
class="w-full h-full object-cover rounded-[24px]"
width="<?php echo esc_attr($image['width']); ?>"
height="<?php echo esc_attr($image['height']); ?>"
fetchpriority="high">
<?php else : ?>
<img data-src="<?php echo esc_url($image['url']); ?>"
alt="<?php echo esc_attr($image['alt']); ?>"
class="w-full h-full object-cover rounded-[24px] swiper-lazy"
width="<?php echo esc_attr($image['width']); ?>"
height="<?php echo esc_attr($image['height']); ?>">
<div class="swiper-lazy-preloader"></div>
<?php endif; ?>
</a> </a>
</div> </div>
<?php endforeach; ?> <?php endforeach; ?>
</div> </div>
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div> </div>
<div class="flex mt-[24px] gap-[8px] overflow-x-auto"> <div class="relative mt-[24px]">
<?php foreach ($tab['slider_images'] as $thumb_index => $image) : ?> <div class="swiper thumbnail-swiper"
<div class="thumbnail flex-shrink-0 w-[80px] h-[60px] rounded-[5px] overflow-hidden cursor-pointer border-2 border-transparent <?php echo $thumb_index === 0 ? 'active !border-blue-500' : ''; ?>" id="thumbnail-swiper-<?php echo $tab_index; ?>">
data-index="<?php echo $thumb_index; ?>"> <div class="swiper-wrapper">
<img src="<?php echo esc_url($image['sizes']['thumbnail']); ?>" <?php foreach ($tab['slider_images'] as $thumb_index => $image) : ?>
alt="<?php echo esc_attr($image['alt']); ?>" <div class="swiper-slide max-w-[160px] !h-[100px]">
class="w-full h-full object-cover"> <div class="thumbnail w-full h-full overflow-hidden cursor-pointer transition-opacity duration-[180ms] ease-in-out <?php echo $thumb_index === 0 ? 'active opacity-100' : 'opacity-50 hover:opacity-80'; ?>"
data-index="<?php echo $thumb_index; ?>">
<img src="<?php echo esc_url($image['sizes']['thumbnail']); ?>"
alt="<?php echo esc_attr($image['alt']); ?>"
class="w-full rounded-[12px] h-full object-cover"
width="160"
height="100">
</div>
</div>
<?php endforeach; ?>
</div> </div>
<?php endforeach; ?> </div>
</div> </div>
<?php if (!empty($image['caption'])) : ?>
<p><?php echo esc_html($image['caption']); ?></p>
<?php endif; ?>
<?php endif; ?> <?php endif; ?>
<div class="swiper-scrollbar !static !mx-auto !cursor-grab container mt-[44px] !w-full !p-0" id="swiper-scrollbar-<?php echo $tab_index; ?>"></div>
</div> </div>
<?php endforeach; ?> <?php endforeach; ?>
<?php endif; ?> <?php endif; ?>
@@ -8,7 +8,6 @@ document.addEventListener('DOMContentLoaded', function() {
const swiper = new Swiper(swiperContainer, { const swiper = new Swiper(swiperContainer, {
slidesPerView: 1, slidesPerView: 1,
loop: true,
grabCursor: true, grabCursor: true,
on: { on: {
slideChange: function () { slideChange: function () {
@@ -42,19 +42,20 @@ if (!empty($slider_data) && is_array($slider_data)) {
} }
$room = get_current_room(); $room = get_current_room();
$base_classes = 'hero-block pb-[30px] pt-[14px]';
if ($room === 'fitness') { if ($room === 'fitness') {
$section_classes = $base_classes . 'radient-bg'; $section_classes = 'radient-bg';
$style_attr = ''; $style_attr = '';
} else { } else {
$section_classes = $base_classes . ' bg-cover bg-center bg-no-repeat'; $section_classes = 'bg-cover bg-center bg-no-repeat';
$bg_image = get_template_directory_uri() . '/assets/images/hero-bg.png'; $bg_image = 'data:image/webp;base64,UklGRgoWAABXRUJQVlA4IP4VAADwZQGdASqgBWYDPpFInE0lpCMioDHIOLASCWlu/HyWI38b/t311v/u9l/qEfbguB5tB89Av/+7hX+1Qx7mfHAD4XHf7v9OD6BSfgAJ95l7jT3l5/4ecy9xp7yf6dOnTp06dOnTp06dOnTp06dOnT5Zyf6dOnT5aCBIOwXrrqOMf1HllAPeT/Tp06dOnTp06dOj7lAJqf4W6saMGmfik4FHJ/o+oommUdK9b2PU9ZQD3k/06dOnTp06dOnTp06dOnm5Axu8rb/TqGeediH8+1U1opmi3X87DKGmF5P9OnTp06dOnTp06dOnTgOgIL+eCYijzlhT+tHCms6eeRVfl8YRsA93ulAI/077akmdOnTp06dOwdxp7yf6dOnTp6kE7oyf6dPlxjxlD2wgRwT5KiV1vT/Tp060dsqvl7jT3k/06eepRooBH+nTp54aWuUEzAJCH3wAyTosKzyTN7pQCP9QPeMKgHvJ/p06dOnVZ/D0GWUA0kDpk+CIszV1GwqgJoeI6KF7EUx/j+HmPao16MTxie8n+nUp8fm2APhb1AiUT/VQ+96k5FLXPgPhaJhLwNJmcIvzJkUcn+jvqGVApVXy9xp6FlYIJJdvXEErJ/xpsyyNPrnZOnYO4zdCk2by7YlR6qR86vm41o1nzuMXPl8syshXXqprVrYPeTWod2ZZGnvJ/rMv9Wl84L7lDVsnNPH5n55rPSXGbqzCWRp7z5qK69UeXo3ReT8IS3oKty/POZe41HMenQCP9OnnseIhBhB3aze6wO+MfYoBH+nTqBmn4lQYf9OrHBXuT/Tp06dPWelU/aiq+XwoVyVVNyaONGfb7F04EB7h3Zli2adAUbqEg1L0wC0W1byygHvJ/gQNTWO9/L3G0cr9bQbYS6VYak095P77fN9vnTfsNVU/2SCaBeXVI3g9eczSYCRzP+ju1rOq0B6d7u0ijkAnL6kCVfL3GnvJ/p0dlqsKGo149FaG2DbKHuFvV5zPM9ern+nTp06dOq0KJ4u6XCV89Kvl7jT4ECTGfywQ8z+Y5mc6IhKsvTBbq+KoeF4KW/Sq+XmIDi8n+nTqtCkLJxfdFcpo+3k/0+rOkG3L9Cn77Ad0aTDI9x5b6UrnXAwTD2z+OuT/4qxqKr5fPMaArTK2yYTUG9Zyf6O+YrOWpSWxVQr3JsdBsnnoE3bATjhHXEiF+H3QKW1nTp06lvqbKeh72P2+Tqn6vr7Nr2HFtXAxwjYXkPVSNsy15sAMdGR4CfY42GDm9dJFyBHusTk/06eeobiArGa4Sq7djZ5oyq+BCtBlccc3A/LLKPAiA74sBHhULGl+KIeJiq8026mihsbrWdPPBKsLg5gsrmCKIfs3KjjIX4CGee6HLrobWod6P1bYhOgBTqhD1g8Rb9fHyyRW3Vq+7dzBaOTDbuZhKlgSQrC8IDMywxXVKD9L4/E6tZwxdXe89n3BPLLP5iaC03b7N+0vK2qmsfcvVNPfE8Be1D/ahqc5nvJ99yp3XjIwQa/YcEP/dvs7qzY04x6vkJYqIucRI4FvEOvYevUFzccxB7xrGq4eqWKbnoHvvJ/sNVlgYLKM9CnAMTYhw8QfRfx1K/T87pFLgWgOUgk/YugQGN41iYkVa27V/ckl75qKrtkc0Hv1x4yYl30/Oq83fnXbwdD/AX8KyZt4Xdl3ens4gTLYqTXm/2Ze5n1z7cvW7VSdOs7A3znpa6RmtP9LIqDhgs2wJLsyCsheSSugyBdVlDz1rBBVg2tEkq7kq8IUYR6D4eKV6mg59LIhLrTH8PblWT0hhHaKEUxR9F1CMYGFZd9b6dXqv3mumwtwFYvwh8QAlEPkAkezBAvhSKaBcXQbH3af2h7p0O5PkruVq3idJGTjpU9+jDiFZw+s+xSzkhWRinxHtvopWK5jwO7CLF1IkH5b0gLdFR/Pc0XQHYyocsgT1e3HFRxO9xrORPsHgo5n/8u/keWgcGd0NOUpfaAr4MPcqNJwlgb9KqfoVotC8livn37pxDPKYVzzBANY4pcFD5Z0EPczCh3yOmHQaAXf7mIhTk6zMHUEna8P5RKEg68gJ5PpuSS4DG/8B3Xp6sFKrlwL6BSVxYpPp9EscJXvArKy5BHrerf8XYWcvfZ2CUg8Jb9LiJTNzLHVSIjiHuNm/CeMXU+W/wI2wgkcAqyQ1nup2DmHRhLWJ8VEjKYqs2sWxina7d86LFU3Nn93Tb69guBFKP+Apw35AYFvLKFR7prqrn34CFJrxdNPS9p7Q6SO7fBOU4yf6dOnAc4IAkl7MjTzLP/ISlefZ6P2p6Ncyrv5pr76tzSWnCKJcOw3BLSM2j75W8FGUbhz10k0UtDaIueAJCHlQ0IMttNcoXvajSGATfku9UCA9DUETWOnJoHvJ2VZrAwPiAKY2T5XpOYJ1mypNVSJ+izL3GoLVS6iKkaJPxhrXVFV8vdYOr7dPPiEc6rTkk2ory5VaEIgR+AL24i/lWrG7vD4qU1icxp9wo/M+ce+oMC5nSr6EWN+Jq0V3F1QMV35ovJ/p06fOG2VTxkDRhNvtkniHBCP4IlCySzZs9vFppoXEF7q6VHMellYDZHBdeiutnPKEeJFLGlV8vcae6T0dJ8BzEgrs+5OnbmRJuX0JyKZp71kdnroXNSLALCxuJnrjkhoQi9qyRTPUEhq/ZwD47azA93RRglKh06dOnTp07JxCKZdZaGQQznMRXLwtgc6CGG4DR8wA9R7OSmpd8hzCXPV99HzmXuNPesMmyq+oD/cQIgjLKAfdI0xnoQkcCAeBvrhQBQVjVaByRrR57CV5Zva2sRTUEoIfI0oBLN7jTUvXPgZzV8vgV6fRYWAgHlTVg88uk6cy8qs4zKJL95l7jT5UOrBUdqKr5fjiTqHqCQD3lCHcafEN2gtnp+OhftfPlwWslZeOMg2uyXEUDcgr3igIcEzZFjDLJ2VXy8wHnVlQ7J07B3GnvKBcLhZxOibMo7+joflr540ajZj+lx4j/Tp06dOnTsoIDcmrIeYDzmXuNNS9rOnVbmjgV8bRVJlUDQhyi1sHoZZU/NzRQzy9xp7z3xipU22/CgLokaRxIPeUAHe5iU6elW/rom0ymmzWna78k2/segcwRsqhQMP+nR9ygEntOb9CAKxdZ5Jp7ygmYBIJ6STgd7jX9aFt0MU0HTwwQkv9WcVS8VjEFro5zeT/Tp06dOnUDvtZ//0703H7Km/aiq+WcVC3tZ07JyfmtbNeLvB672fd9lU0MnZwFeqOAecy9xp7ya1A+Wr/fZBxC50Fwms6dH3fWEFl7vdKAeIBdKbqx1xUbvcdxduUWG9J7GnvJ/p06ij9OazqC+B7vJ/gOgmW6irdXvTlwt8vMtYkxHHRkO91DsnUUf4ecy9rv5e40+udgLcPU4yk4EJMQvtZCUXSzQKnr0TGdxd0qfz6IM+udk6dOqz+HnMsnZVfL3fNjyD53LlBH+BwhUW9xtHKAD8kc+rt7R/idIRv3oEkfJVAcvJ/p06dOA6AR/p54RrlGZUWGl4exXdW2W/mcAbBxxstchxSxoyYGxaLjj0fn+qz/kz1NdLL3GnpVeHnMyZPd5ScFs59kjF1EA95P9WbEduauxh/TAsZ/VUhCb74n6Kfcb3camVSoelXy9xp7ygWf1P6vKAIPePMCqVfMCJPPVlfWoGnUlEnV9ZpmC6kG8KhNyC44SqcD8U5mVP7WDG5koDEm/WBVm2mIKqsKs20YkqGDG5lNTL+lmoJ3tjEs2nsYzp06dOnTpvhVm2mW5A5lSswgqzbTSSAATf2YK1YKGojstECrNtMur5C9A8reYxJv3LTmIqzbTMXGKCrNtAAP757wc1kp+odzAsMOysj/Qv70LwAAABFoSJX8F/0rvydXbRvdng5N0gHpGxnEcsv5JXSV5C/hoGtgAAAAFT+hr66gfrS4y1oGMyhVm47a+TQAAAABpTbxsh5AwGnR6AMHhFQvPqgkqG6AAAABBVUk5elOLzXAG8xZZnUv4ZohbkY+GobAiPQ5CRa64WTLxklDwAA7mIDRfRjC9Cg5Z8Kd7+ENXp27MNJiNBvXoCgtQCtp+So50FIAidpzVFbLFTp1I9H2QarYooPvhAIKs+9umpcybA43SAFxXJpVWrneTNbrb+pBkoNjiDRe96X0sMvLledgdEU69EHRcnaKzoKCm5iV8CA25RptZGm4/g5YKRVw4mNnmjIJyHVjr1PZSCeAFuFOHwdc1O2VGXr6BqxTZxGVkVZFw9ilLHgJDyGX8ILDMgCvU5PGmLCu+qjd8JZiCVSIidnQL9ghLZ5VyHZTxOZo/ImGXVcHNNqMIEa/pjZ7PGS5/DtrLutWyTm3hGq+0dP9JxPsyvtaCLiATzp2EuMFpYw3avFDCKPTZQAN0/o8y9UWa5XEBP7o/AoP9dwAB4ph02urdtq7xJ6bJjSzOICRiFlEgQFLG5zGl5uXf7dj7epuasu10VK6m8jRODlAIQHhytBCieWSHiN9zkM4gAGe8YiRO6aMwMAgUQYLQ5K4+/8fHtLOECdBtiAP0SARV04c6TP0vM/NEqy9OZkiIVGpCDPOFsG/RCI5xqxJo5wO3XGAcvEHCCYiqPP72iLojdpw0YAvamBsKoQia/wM4QB4t/iP+6zrjgQlYKGzr30mwoyEHN3nIMsAN/unWZVqgNItYJfPP5ap337IhDL29i1HLurN3sMsV1qGSgomdquDvEwMGW73DSVIRoX8m6xQhVtIfngjGcEzmNnYCRlDO+Vjfa1AlKUvsEtCq/7FcZ21Nqc/1eiF2WmSD72eNCNtOU6dCkNZtFt3svhIGO9caS7YUabLwcdFj0ukizs4QA0PotueKhYBuPeYIjTwWpPLew5m26agxUI7JS/PW3jEF1Ox34tjD4Hj8cO+c+fSfP+804oqqdjIhcZLSY2BovXvCMbp87SP61Tjq Line truncated
$style_attr = 'style="background-image: url(' . esc_url($bg_image) . ')"';
$style_attr = 'style="background-image: url(' . esc_attr($bg_image) . ')"';
} }
?> ?>
<section class="pt-[161px] dark:text-[#f8f8f8] <?php echo esc_attr($section_classes); ?>" <?php echo $style_attr; ?>> <section class="pt-[161px] dark:text-[#f8f8f8] hero-block pb-[30px] <?php echo esc_attr($section_classes); ?>" <?php echo $style_attr; ?>>
<div class="container mx-auto"> <div class="container mx-auto">
<div class="flex justify-between gap-[24px] "> <div class="flex justify-between gap-[24px] ">
@@ -100,7 +101,7 @@ if ($room === 'fitness') {
<?php foreach ($slides as $index => $slide): ?> <?php foreach ($slides as $index => $slide): ?>
<div class="swiper-slide [&>_img]:max-w-none"> <div class="swiper-slide [&>_img]:max-w-none">
<?php if (!empty($slide['img'])): ?> <?php if (!empty($slide['img'])): ?>
<img src="<?php echo esc_url($slide['img']); ?>" alt="<?php echo esc_attr($slide['title']); ?>"> <img loading="lazy" src="<?php echo esc_url($slide['img']); ?>" alt="<?php echo esc_attr($slide['title']); ?>">
<?php endif; ?> <?php endif; ?>
</div> </div>
<?php endforeach; ?> <?php endforeach; ?>
@@ -153,7 +154,6 @@ if ($room === 'fitness') {
for (let selector of selectors) { for (let selector of selectors) {
swiperContainer = document.querySelector(selector); swiperContainer = document.querySelector(selector);
console.log(`🔍 Checking selector "${selector}":`, swiperContainer);
if (swiperContainer) break; if (swiperContainer) break;
} }
@@ -0,0 +1,108 @@
<?php
$id = 'line-block' . $block['id'];
if (!empty($block['anchor'])) {
$id = $block['anchor'];
}
$classes = 'line-block';
if (!empty($block['className'])) {
$classes .= ' ' . $block['className'];
}
if (!empty($block['align'])) {
$classes .= ' align' . $block['align'];
}
?>
<section id="<?php echo esc_attr($id); ?>" class="<?php echo esc_attr($classes); ?>">
<div class="container mx-auto pt-[90px]">
<div class="dark:text-[#f8f8f8] w-full flex justify-between bg-[linear-gradient(180deg,_#f2f2f2_69.59%,_#ededed_100%)] dark:bg-[linear-gradient(90deg,_#2b2c35_53.4%,_#4f5870_100%)] rounded-[24px] p-[40px]">
<div class="flex gap-[24px] w-full max-w-[320px]">
<div class="small-shadow w-[55px] h-[55px] grid place-items-center rounded-[9px] bg-white">
<svg width="27" height="27" viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.66538 13.5016C4.66538 9.97447 6.84866 6.9481 9.9345 5.70178L11.5091 2.53906C6.14141 3.30161 2 7.92663 2 13.5016C2 18.5737 5.42809 22.86 10.0888 24.166L10.3917 21.4712C7.06638 20.3492 4.66538 17.2006 4.66538 13.5016ZM24.147 13.5016C24.147 8.43047 20.7205 4.14504 16.0613 2.838L15.7516 5.53087C19.0788 6.65174 21.4817 9.8013 21.4817 13.5016C21.4817 17.0082 19.3238 20.0197 16.2664 21.2794L14.6482 24.4626C20.0109 23.6958 24.147 19.073 24.147 13.5016Z"
fill="url(#paint0_linear_2281_6981)"/>
<path d="M19.412 12.1625C19.517 11.956 19.5071 11.7292 19.3859 11.5318C19.2648 11.3343 19.0497 11.2556 18.818 11.2556H13.752L14.8426 1.77463C14.8797 1.4532 14.6805 1.12019 14.3701 1.02807C14.3075 1.00946 14.2425 1.00001 14.1771 1C13.9311 1 13.6985 1.14002 13.584 1.36999L6.73289 15.1363C6.63011 15.3428 6.64144 15.6178 6.76288 15.814C6.8844 16.0102 7.09863 16.1699 7.32944 16.1699H12.3286L11.3038 25.2941C11.2679 25.6143 11.4663 25.8836 11.775 25.9758C11.8383 25.9948 11.9026 26 11.9659 26C12.089 26 12.2096 25.9659 12.3145 25.9015C12.4193 25.8372 12.5043 25.745 12.5601 25.6353L19.412 12.1625Z"
fill="#E21E24"/>
<defs>
<linearGradient id="paint0_linear_2281_6981" x1="2" y1="13.5008" x2="24.147" y2="13.5008"
gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35"/>
<stop offset="0.929023" stop-color="#4F5870"/>
</linearGradient>
</defs>
</svg>
</div>
<div class="flex flex-col gap-[4px]">
<p class="text-[62px] leading-[115%] font-[600]">2500 м²</p>
<div class="font-[500] text-[20px] leading-[140%] w-full max-w-[135px]">светлого пространства</div>
</div>
</div>
<div class="flex gap-[24px] w-full max-w-[240px]">
<div class="small-shadow w-[55px] h-[55px] grid place-items-center rounded-[9px] bg-white">
<svg width="27" height="27" viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24.0182 26.3122H13.9699C15.0027 26.3043 15.9704 25.9784 16.5466 25.4022C16.5634 25.385 16.5825 25.3702 16.6033 25.358C16.6033 25.358 16.6067 25.358 16.6067 25.355L16.6098 25.3519C16.7076 25.2605 17.0737 24.7558 17.2345 24.5349L21.3633 18.6234C22.4261 17.1439 22.1015 15.9799 21.8174 14.9517C21.6563 14.3651 21.4986 13.8067 21.6091 13.2673C21.0368 13.2612 20.48 13.0808 20.013 12.75C19.8584 13.097 19.6157 13.3115 19.3506 13.463L19.3441 13.4664C19.3942 13.4901 19.4377 13.5257 19.4708 13.5702C19.5039 13.6147 19.5255 13.6666 19.5337 13.7214C19.5461 13.8117 19.5222 13.9032 19.4671 13.9758C19.412 14.0484 19.3304 14.0962 19.2401 14.1086C19.2174 14.1117 17.6453 14.3255 15.7958 14.4581V16.3554C17.043 16.368 18.5461 16.4066 19.5985 16.5113C19.6886 16.5209 19.7713 16.5658 19.8285 16.6362C19.8857 16.7065 19.9128 16.7966 19.9038 16.8869C19.8949 16.9771 19.8506 17.0601 19.7807 17.1179C19.7108 17.1756 19.621 17.2034 19.5307 17.1952C18.5574 17.0985 17.1565 17.0599 15.9541 17.0454L15.9535 17.0467C15.5528 18.0561 15.1996 18.5955 14.9849 18.8606L15.5295 19.7537C15.5549 19.7922 15.5722 19.8355 15.5806 19.8809C15.5889 19.9262 15.588 19.9728 15.5779 20.0179C15.5678 20.0629 15.5488 20.1054 15.5219 20.1429C15.4951 20.1804 15.4609 20.2122 15.4215 20.2362C15.3822 20.2602 15.3383 20.2761 15.2927 20.2828C15.247 20.2895 15.2005 20.287 15.1559 20.2754C15.1112 20.2637 15.0694 20.2432 15.0328 20.2151C14.9963 20.1869 14.9658 20.1517 14.9431 20.1115L14.2666 19.0032L14.2626 18.9993C14.2596 18.9928 14.2562 18.9897 14.2531 18.9836L12.9755 16.9933L12.6546 16.9635L8.89362 16.6147C9.17743 17.8732 9.60667 19.1665 9.85243 19.8952L9.92484 20.1191C10.0037 20.3541 10.0452 20.6 10.0479 20.8478L10.0825 22.8161C10.1108 24.4091 11.1963 25.7876 12.7227 26.1662C13.1035 26.2628 13.4959 26.3092 13.8803 26.3129H5.46095C5.37241 26.3166 5.28873 26.3544 5.22741 26.4184C5.16608 26.4824 5.13184 26.5676 5.13184 26.6562C5.13184 26.7448 5.16608 26.83 5.22741 26.894C5.28873 26.958 5.37241 26.9958 5.46095 26.9995H24.0179C24.109 26.9996 24.1964 26.9634 24.2609 26.899C24.3254 26.8346 24.3616 26.7472 24.3617 26.656C24.3617 26.5649 24.3255 26.4775 24.2611 26.413C24.1967 26.3485 24.1093 26.3123 24.0182 26.3122Z" fill="url(#paint0_linear_4086_13821)" />
<path d="M13.2323 16.3267L13.5533 16.3558L13.6837 16.3552C13.9285 16.3527 14.4498 16.3488 15.1085 16.3509V14.5042C15.0159 14.5094 14.9244 14.514 14.8336 14.5174C14.3023 14.5455 13.7703 14.5602 13.2382 14.5615H13.232L12.6411 14.5508L4.3865 14.4069H4.38006L4.18891 14.3977L4.05268 14.3922C4.02398 14.3916 3.99527 14.393 3.96677 14.3965C3.95665 14.3974 3.94652 14.3977 3.93671 14.3992C3.91126 14.4034 3.88614 14.4093 3.86154 14.417C3.85264 14.4198 3.84343 14.4213 3.83484 14.4244C3.81123 14.433 3.78817 14.443 3.76581 14.4545C3.75752 14.4588 3.74863 14.4618 3.74065 14.4664C3.71917 14.4784 3.69954 14.4925 3.6799 14.5069C3.67192 14.5128 3.66333 14.5177 3.65597 14.5238C3.63764 14.5395 3.62033 14.5563 3.60412 14.5741C3.59737 14.5812 3.59 14.5873 3.58356 14.595C3.56743 14.6146 3.55266 14.6353 3.53938 14.657C3.53478 14.664 3.52925 14.6705 3.52496 14.6778C3.50953 14.705 3.49639 14.7334 3.48569 14.7628C3.48446 14.7656 3.48292 14.768 3.482 14.7708C3.46765 14.8117 3.45818 14.8541 3.45378 14.8972C3.45224 14.9193 3.4547 14.9402 3.45592 14.9616C3.45684 14.9822 3.45838 15.0027 3.46145 15.0227C3.4639 15.0374 3.46789 15.0518 3.47157 15.0663C3.47587 15.0837 3.48016 15.1009 3.4863 15.1175C3.49244 15.1338 3.50011 15.1494 3.50747 15.1651C3.51422 15.1789 3.52036 15.193 3.52803 15.2062C3.53631 15.2203 3.54643 15.2329 3.55595 15.2461C3.56638 15.2602 3.5762 15.2749 3.58816 15.2878C3.59798 15.2988 3.60903 15.3083 3.61946 15.3182C3.63173 15.3298 3.6437 15.3421 3.65689 15.3525C3.70721 15.3918 3.76489 15.4225 3.82871 15.4418L3.8327 15.4433C3.86614 15.4532 3.90081 15.4599 3.93701 15.4633L13.2323 16.3267ZM25.1519 9.25177H25.1393C25.0737 9.25191 25.0107 9.27718 24.9631 9.32238C24.9156 9.36757 24.8872 9.42926 24.8837 9.49476L24.8365 10.2959C24.8342 10.3295 24.8387 10.3632 24.8496 10.3951C24.8604 10.4269 24.8775 10.4563 24.8998 10.4816C24.9222 10.5068 24.9492 10.5273 24.9796 10.542C25.0099 10.5567 25.0428 10.5652 25.0764 10.5671C25.1444 10.5702 25.211 10.5465 25.2617 10.501C25.3124 10.4556 25.3433 10.3921 25.3476 10.3241L25.3949 9.52299C25.3967 9.4891 25.3918 9.45519 25.3805 9.42322C25.3691 9.39124 25.3515 9.36185 25.3286 9.33675C25.2828 9.2868 25.2195 9.25637 25.1519 9.25177ZM3.53784 7.25837C3.57896 7.34367 3.6167 7.43203 3.65781 7.52653L5.43704 6.64014C5.31094 6.44776 5.19404 6.26153 5.08696 6.09124C5.05229 6.03448 5.01456 5.97772 4.97988 5.92403C4.95779 5.88291 4.93233 5.84517 4.90717 5.80744C4.8208 5.6715 4.7357 5.53476 4.6519 5.39722C4.55709 5.23952 4.4721 5.10697 4.40583 4.99652C4.38368 4.95709 4.36056 4.91822 4.33649 4.87993C4.2955 4.81591 4.25651 4.75063 4.21959 4.68418C4.18916 4.63348 4.17176 4.57603 4.16897 4.51696L4.10576 1.25243C4.10004 0.979424 4.0129 0.714353 3.85552 0.491207C3.69814 0.26806 3.47768 0.097013 3.22244 0L1.65491 4.40344C1.5834 4.59953 1.58811 4.81533 1.66811 5.00811C1.74811 5.2009 1.89757 5.35662 2.08691 5.44447L2.22252 5.50768C2.25719 5.52332 2.30781 5.54879 2.37715 5.59604C2.40231 5.61506 2.43085 5.63715 2.46214 5.66231C2.47165 5.66875 2.48117 5.67489 2.4873 5.6844C2.51246 5.70342 2.53793 5.72552 2.56309 5.75067C2.56309 5.75374 2.56615 5.75374 2.56615 5.75374C2.61678 5.80406 2.67354 5.86082 2.73337 5.93047C2.73644 5.93354 2.73981 5.93998 2.74288 5.94305C2.77448 5.98079 2.80609 6.01883 2.84076 6.06301C2.8564 6.08511 2.87236 6.1072 2.89138 6.12929L2.94507 6.2017C2.97974 6.25232 3.01441 6.30571 3.05215 6.36247C3.07118 6.39069 3.08989 6.4223 3.10891 6.45083L3.16567 6.54533C3.18439 6.57693 3.20341 6.6116 3.2255 6.64627C3.26662 6.71561 3.30436 6.78833 3.34547 6.86381C3.38321 6.93959 3.42432 7.02151 3.4685 7.10681C3.49059 7.15436 3.51575 7.20468 3.53784 7.25837ZM22.4455 10.3149C22.3918 10.4223 22.3761 10.5484 22.4013 10.668L22.802 12.2641C23.0259 12.1293 23.2237 11.9551 23.3855 11.7499C23.4046 11.7247 23.4233 11.7026 23.4392 11.6772C23.4994 11.5983 23.5497 11.513 23.5969 11.428L23.8811 10.8791C23.8811 10.8761 23.8811 10.8761 23.8841 10.8727L23.9409 10.7527C23.9756 10.6739 24.0072 10.5919 24.0323 10.5097C24.1237 10.0427 24.1302 9.95468 24.1302 9.86632C24.1302 9.76231 24.1237 9.66137 24.1081 9.56349C24.1047 9.53274 24.0994 9.50221 24.0925 9.47206C24.0883 9.43568 24.0809 9.39974 24.0704 9.36467C24.0605 9.30877 24.0457 9.25384 24.0262 9.20053C24.0043 9.13102 23.979 9.06262 23.9504 8.99557C23.9504 8.99251 23.9504 8.98944 23.9473 8.98606C23.9191 8.92286 23.8875 8.86303 23.8559 8.8032C23.8212 8.74037 23.7833 8.67934 23.7424 8.62034C23.739 8.6142 23.7359 8.60776 23.7298 8.60131C23.6945 8.54819 23.6554 8.49765 23.6129 8.45005C23.5731 8.39977 23.5298 8.3523 23.4834 8.308C23.477 8.30186 23.4708 8.29542 23.4613 8.28897C23.362 8.18985 23.252 8.10207 23.1333 8.02726C23.0736 7.98674 23.0115 7.94986 22.9474 7.9168C22.944 7.9168 22.944 7.9168 22.941 7.91374C22.5628 7.71958 22.1367 7.63851 21.7137 7.68025C21.676 7.68332 21.6379 7.68669 21.6032 7.69283C21.5496 7.69927 21.4962 7.71185 21.4425 7.72443C21.4391 7.72443 21.436 7.72443 21.433 7.7275C21.3806 7.7378 21.3289 7.75153 21.2783 7.76861C21.2441 7.77832 21.2104 7.7898 Line truncated
<path d="M22.0767 12.5445C22.1052 12.5414 22.1303 12.535 22.1589 12.5289L21.7361 10.8349C21.7361 10.8319 21.733 10.8319 21.733 10.8288C21.6694 10.5499 21.7051 10.2576 21.834 10.0022C21.8948 9.88456 21.9067 9.74765 21.8671 9.62124C21.8275 9.49484 21.7396 9.38918 21.6226 9.32723L20.1587 8.57031C20.0944 8.6626 20.0354 8.75848 19.982 8.85749L19.6951 9.41253C19.4927 9.81433 19.4195 10.2689 19.4856 10.714C19.5516 11.159 19.7538 11.5727 20.0642 11.8984L22.0767 12.5445Z" fill="url(#paint2_linear_4086_13821)" />
<path d="M3.65781 7.52653C3.6167 7.43203 3.57896 7.34367 3.53784 7.25837C3.51575 7.20468 3.49059 7.15436 3.4685 7.10681C3.42432 7.02151 3.38321 6.93959 3.34547 6.86381C3.30436 6.78833 3.26662 6.71562 3.2255 6.64627C3.20341 6.6116 3.18439 6.57693 3.16567 6.54533L3.10891 6.45083C3.08989 6.4223 3.07118 6.3907 3.05215 6.36247C3.01441 6.30571 2.97974 6.25232 2.94507 6.2017L2.89138 6.12929C2.87236 6.1072 2.8564 6.08511 2.84076 6.06301C2.80608 6.01883 2.77448 5.98079 2.74288 5.94305C2.73981 5.93998 2.73644 5.93354 2.73337 5.93047C2.67354 5.86082 2.61678 5.80406 2.56615 5.75374C2.56615 5.75374 2.56309 5.75374 2.56309 5.75068C2.53793 5.72552 2.51246 5.70343 2.4873 5.6844C2.48148 5.67538 2.47262 5.6694 2.46361 5.66331L2.46214 5.66231C2.43085 5.63715 2.40231 5.61506 2.37715 5.59604C2.30781 5.54879 2.25719 5.52332 2.22252 5.50768L2.08691 5.44447C1.89757 5.35662 1.74811 5.2009 1.66811 5.00811C1.58811 4.81533 1.5834 4.59953 1.65491 4.40344L3.22244 0C3.47768 0.097013 3.69814 0.26806 3.85552 0.491207C4.0129 0.714353 4.10004 0.979424 4.10576 1.25243L4.16897 4.51696C4.17176 4.57603 4.18916 4.63348 4.21959 4.68418C4.25651 4.75063 4.2955 4.81591 4.33649 4.87993C4.36056 4.91822 4.38368 4.95709 4.40583 4.99652C4.4721 5.10697 4.55709 5.23952 4.6519 5.39722C4.7357 5.53476 4.8208 5.6715 4.90717 5.80744L4.91107 5.81328C4.93495 5.84908 4.95893 5.88504 4.97988 5.92403C5.01455 5.97772 5.05229 6.03448 5.08696 6.09124L5.09932 6.11089C5.20302 6.27581 5.31577 6.45514 5.43704 6.64014L3.65781 7.52653Z" fill="url(#paint3_linear_4086_13821)" />
<path d="M13.9699 26.3125H24.0182C24.1093 26.3125 24.1967 26.3488 24.2611 26.4133C24.3255 26.4777 24.3617 26.5652 24.3617 26.6563C24.3616 26.7474 24.3254 26.8348 24.2609 26.8992C24.1964 26.9636 24.109 26.9998 24.0179 26.9998H5.46095C5.37241 26.996 5.28873 26.9582 5.22741 26.8942C5.16608 26.8303 5.13184 26.7451 5.13184 26.6564C5.13184 26.5678 5.16608 26.4826 5.22741 26.4186C5.28873 26.3547 5.37241 26.3169 5.46095 26.3131H13.8803L13.9699 26.3125Z" fill="url(#paint4_linear_4086_13821)" />
<defs>
<linearGradient id="paint0_linear_4086_13821" x1="5.13184" y1="19.8748" x2="24.3617" y2="19.8748" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4086_13821" x1="1.60449" y1="8.17791" x2="25.3953" y2="8.17791" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_4086_13821" x1="19.4619" y1="10.5574" x2="22.1589" y2="10.5574" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint3_linear_4086_13821" x1="1.60449" y1="3.76327" x2="5.43704" y2="3.76327" gradientUnits="userSpaceOnUse">
<stop offset="0.394231" stop-color="#E21E24" />
<stop offset="0.929023" stop-color="#FF2F35" />
</linearGradient>
<linearGradient id="paint4_linear_4086_13821" x1="5.13184" y1="26.6561" x2="24.3617" y2="26.6561" gradientUnits="userSpaceOnUse">
<stop offset="0.394231" stop-color="#E21E24" />
<stop offset="0.929023" stop-color="#FF2F35" />
</linearGradient>
</defs>
</svg>
</div>
<div class="flex flex-col gap-[4px]">
<p class="text-[62px] leading-[115%] font-[600]">45+</p>
<div class="font-[500] text-[20px] leading-[140%] w-full max-w-[135px]">направлений тренировок</div>
</div>
</div>
<div class="flex gap-[24px] w-full max-w-[300px]">
<div class="small-shadow w-[55px] h-[55px] grid place-items-center rounded-[9px] bg-white">
<svg width="27" height="27" viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M27 8.69727H25.418V4.74219H20.6719V8.69727H19.0898V1.57812H17.5078V8.69727H9.49219V1.57812H7.91016V8.69727H6.32812V4.74219H1.58203V8.69727H0V10.2793H1.58203V14.2344H6.32812V10.2793H7.91016V15.0254H9.49219V10.2793H17.5078V15.0254H19.0898V10.2793H20.6719V14.2344H25.418V10.2793H27V8.69727ZM17.5078 23.832H15.873V21.3535H11.127V23.832H9.49219V21.3535H7.91016V23.832H4.74609V25.4141H22.2539V23.832H19.0898V21.3535H17.5078V23.832ZM7.91016 16.6074C7.0364 16.6074 6.32812 17.3157 6.32812 18.1895V19.7715H20.6719V18.1895C20.6719 17.3157 19.9636 16.6074 19.0898 16.6074H7.91016Z" fill="url(#paint0_linear_4086_16419)" />
<path d="M25.418 4.74219V8.69727V10.2793V14.2344H20.6719V10.2793V8.69727V4.74219H25.418Z" fill="url(#paint1_linear_4086_16419)" />
<path d="M6.32812 4.74219V8.69727V10.2793V14.2344H1.58203V10.2793V8.69727V4.74219H6.32812Z" fill="url(#paint2_linear_4086_16419)" />
<defs>
<linearGradient id="paint0_linear_4086_16419" x1="0" y1="13.4961" x2="27" y2="13.4961" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_4086_16419" x1="1.58203" y1="9.48828" x2="25.418" y2="9.48828" gradientUnits="userSpaceOnUse">
<stop offset="0.394231" stop-color="#E21E24" />
<stop offset="0.929023" stop-color="#FF2F35" />
</linearGradient>
<linearGradient id="paint2_linear_4086_16419" x1="1.58203" y1="9.48828" x2="25.418" y2="9.48828" gradientUnits="userSpaceOnUse">
<stop offset="0.394231" stop-color="#E21E24" />
<stop offset="0.929023" stop-color="#FF2F35" />
</linearGradient>
</defs>
</svg>
</div>
<div class="flex flex-col gap-[4px]">
<p class="text-[62px] leading-[115%] font-[600]">ТОП</p>
<div class="font-[500] text-[20px] leading-[140%] w-full max-w-[135px]">оборудование из США</div>
</div>
</div>
</div>
</div>
</section>
@@ -0,0 +1,192 @@
<?php
$id = 'masonry-tiles-block-' . $block['id'];
if (!empty($block['anchor'])) {
$id = $block['anchor'];
}
$classes = 'block-masonry-tiles-block';
if (!empty($block['className'])) {
$classes .= ' ' . $block['className'];
}
if (!empty($block['align'])) {
$classes .= ' align' . $block['align'];
}
?>
<section id="<?php echo esc_attr($id); ?>" class="<?php echo esc_attr($classes); ?>">
<div class="container mx-auto py-[90px]">
<?php if (get_field('heading')) : ?>
<h2 class="text-[48px] font-[500] text-[#1f2937] mb-[40px]">
<?php echo get_field('heading'); ?>
</h2>
<?php endif; ?>
<?php if (have_rows('tiles_group')) : ?>
<?php while (have_rows('tiles_group')) :
the_row(); ?>
<div class="grid grid-cols-3 gap-[24px]">
<!-- Первая колонка: First Tile -->
<div>
<?php if (have_rows('first_tile')) : ?>
<?php while (have_rows('first_tile')) :
the_row(); ?>
<div class="relative h-[512px] rounded-[12px] p-[24px] overflow-hidden"
<?php
$image = get_sub_field('image');
if ($image) : ?>
style="background-image: url('<?php echo esc_url($image['url']); ?>'); background-size: cover; background-position: center;"
<?php endif; ?>>
<!-- Градиент оверлей -->
<div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div>
<div class="relative flex flex-col gap-[12px] h-full justify-end z-10">
<?php if (get_sub_field('heading')) : ?>
<h3 class="text-[32px] font-[600] leading-[115%] text-[#f8f8f8]"><?php echo esc_html(get_sub_field('heading')); ?></h3>
<?php endif; ?>
<?php if (get_sub_field('text')) : ?>
<div class="text-[16px] font-[500] leading-[145%] text-[#e0e0e0]"><?php echo wp_kses_post(get_sub_field('text')); ?></div>
<?php endif; ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
<!-- Вторая колонка: Second и Third Tiles -->
<div class="flex flex-col gap-[24px]">
<!-- Second Tile -->
<?php if (have_rows('second_tile')) : ?>
<?php while (have_rows('second_tile')) :
the_row(); ?>
<div class="h-[244px] relative border border-[#e0e0e0] dark:border-transparent bg-transparent dark:bg-white rounded-[12px] p-[24px] overflow-hidden">
<?php
if (get_current_room() === 'fitness') {
?>
<div class="absolute right-[24px] top-[24px]">
<img alt="decoration"
src="<?php echo get_template_directory_uri() . '/assets/images/masonry-decor.png'; ?>">
</div>
<?php
}
?>
<div class="flex flex-col h-full justify-end">
<?php if (get_sub_field('heading')) : ?>
<h3 class="font-[600] text-[62px] dark:text-[42px] leading-[115%]">
<span class="bg-[linear-gradient(90deg,#2b2c35_67.31%,#4f5870_92.9%)] bg-clip-text text-transparent">
<?php echo esc_html(get_sub_field('heading')); ?>
</span>
</h3>
<?php endif; ?>
<?php if (get_sub_field('underheading')) : ?>
<p class="text-[20px] leading-[140%] text-[#222]"><?php echo esc_html(get_sub_field('underheading')); ?></p>
<?php endif; ?>
<?php if (get_sub_field('text')) : ?>
<div class="mt-[12px] text-[16px] leading-[145%] text-[#6c6b6b]"
><?php echo wp_kses_post(get_sub_field('text')); ?></div>
<?php endif; ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
<!-- Third Tile -->
<?php if (have_rows('third_tile')) : ?>
<?php while (have_rows('third_tile')) : the_row(); ?>
<div class="h-[244px] rounded-[12px] p-[24px] overflow-hidden"
<?php
$bg = get_sub_field('bg');
if ($bg) : ?>
style="background-image: url('<?php echo esc_url($bg['url']); ?>'); background-size: cover; background-position: center;"
<?php endif; ?>>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
<!-- Третья колонка: Fourth и Fifth Tiles -->
<div class="flex flex-col gap-[24px]">
<!-- Fourth Tile -->
<?php if (have_rows('fourth_tile')) : ?>
<?php while (have_rows('fourth_tile')) :
the_row(); ?>
<div class="h-[244px] relative rounded-[12px] p-[24px] overflow-hidden dark:bg-[linear-gradient(90deg,_#2b2c35_53.4%,_#4f5870_100%)] bg-[linear-gradient(90deg,_#9d9994_39.42%,_#bbb7b1_92.9%)]">
<div class="absolute right-[24px] top-[24px]">
<svg width="87" height="50" viewBox="0 0 87 50" fill="none"
xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4015_3641)">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M87.0003 0C70.954 39.9255 36.1536 18.6568 8.89355 28.3583C16.8203 5.97016 31.127 1.86568 47.1737 1.67911C59.1603 1.49254 75.9806 2.79851 87.0003 0Z"
fill="#F8F8F8"/>
<path fill-rule="evenodd" clip-rule="evenodd"
d="M59.7404 28.918C47.367 59.5149 20.8802 42.5372 0 50.0001C10.8269 19.403 35.5736 35.0747 59.7404 28.918Z"
fill="#F8F8F8"/>
</g>
<defs>
<clipPath id="clip0_4015_3641">
<rect width="87" height="50" fill="white"/>
</clipPath>
</defs>
</svg>
</div>
<div class="flex h-full justify-end flex-col text-[#f8f8f8]">
<?php if (get_sub_field('heading')) : ?>
<h3 class="text-[42px] leading-[115%]"><?php echo esc_html(get_sub_field('heading')); ?></h3>
<?php endif; ?>
<?php if (get_sub_field('underheading')) : ?>
<p class=" text-[20px] leading-[140%]"><?php echo esc_html(get_sub_field('underheading')); ?></p>
<?php endif; ?>
<?php if (get_sub_field('text')) : ?>
<div class="mt-[12px] text-[16px] leading-[145%] text-[#e0e0e0]">
<?php echo wp_kses_post(get_sub_field('text')); ?>
</div>
<?php endif; ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
<!-- Fifth Tile -->
<?php if (have_rows('fifth_tile')) : ?>
<?php while (have_rows('fifth_tile')) : the_row(); ?>
<div class="h-[244px] border border-[#e0e0e0] dark:border-transparent bg-transparent dark:bg-white rounded-[12px] p-[24px] overflow-hidden">
<div class="flex flex-col h-full justify-end">
<?php if (get_sub_field('heading')) : ?>
<h3 class="font-[600] text-[42px] leading-[115%]">
<span class="bg-[linear-gradient(90deg,#2b2c35_67.31%,#4f5870_92.9%)] bg-clip-text text-transparent">
<?php echo esc_html(get_sub_field('heading')); ?>
</span>
</h3>
<?php endif; ?>
<?php if (get_sub_field('underheading')) : ?>
<p class="text-[20px] leading-[140%] text-[#222]"><?php echo esc_html(get_sub_field('underheading')); ?></p>
<?php endif; ?>
<?php if (get_sub_field('text')) : ?>
<div class="mt-[12px] text-[16px] leading-[145%] text-[#6c6b6b]"
"><?php echo wp_kses_post(get_sub_field('text')); ?></div>
<?php endif; ?>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
</section>
@@ -0,0 +1,210 @@
<?php
$id = 'masonry-tiles-block-' . $block['id'];
if (!empty($block['anchor'])) {
$id = $block['anchor'];
}
$classes = 'block-masonry-tiles-block';
if (!empty($block['className'])) {
$classes .= ' ' . $block['className'];
}
if (!empty($block['align'])) {
$classes .= ' align' . $block['align'];
}
?>
<section id="<?php echo esc_attr($id); ?>" class="<?php echo esc_attr($classes); ?>">
<div class="container mx-auto py-[90px]">
<?php if (get_field('heading')) : ?>
<h2 class="text-[48px] font-[500] text-[#1f2937] mb-[40px]">
<?php echo get_field('heading'); ?>
</h2>
<?php endif; ?>
<?php if (have_rows('tiles_group')) : ?>
<?php while (have_rows('tiles_group')) :
the_row(); ?>
<div class="flex gap-[24px]">
<!-- Первая колонка -->
<div class="flex flex-col gap-[24px] w-full max-w-[424px]">
<!-- First Tile - Текстовый блок -->
<?php if (have_rows('first_tile')) : ?>
<?php while (have_rows('first_tile')) : the_row(); ?>
<div class="<?php echo is_front_page() ? 'h-[298px]' : 'h-[383px]'; ?> pt-[24px] overflow-hidden">
<div class="flex <?php echo is_front_page() ? 'flex-col justify-start' : 'flex-col-reverse justify-end'; ?> gap-[16px] h-full [&_img]:w-[294px]">
<?php if (get_sub_field('heading')) : ?>
<?php display_icon(get_current_room() === 'gym' ? 'dark_logo_name_gym' : 'light_logo_name'); ?>
<h3 class="text-[32px] font-[500] text-[#222] leading-[115%]">
<span>
<?php echo esc_html(get_sub_field('heading')); ?>
</span>
</h3>
<?php endif; ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
<!-- Second Tile - Блок с картинкой -->
<?php if (have_rows('second_tile')) : ?>
<?php while (have_rows('second_tile')) : the_row(); ?>
<div class="relative <?php echo is_front_page() ? 'h-[298px]' : 'h-[383px]'; ?> rounded-[12px] p-[24px] overflow-hidden bg-[linear-gradient(90deg,_#9d9994_39.42%,_#ccc9c4_92.9%)] dark:bg-[linear-gradient(90deg,_#2b2c35_53.4%,_#4f5870_100%)]
">
<?php $background = get_sub_field('background'); ?>
<?php if ($background) : ?>
<img class="absolute right-0 top-0 w-full h-full" alt="Фон блока"
src="<?php echo esc_url($background['url']); ?>">
<?php else :{
?>
<div class="absolute flex justify-end dark:bg-[linear-gradient(90deg,_#2b2c35_53.4%,_#4f5870_100%)] bg-[linear-gradient(90deg,_#9d9994_39.42%,_#ccc9c4_92.9%)] right-0 top-0 w-full h-full">
<svg width="169" height="136" viewBox="0 0 169 136" fill="none"
xmlns="http://www.w3.org/2000/svg">
<g opacity="0.2" clip-path="url(#clip0_2281_7020)">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M293 -31C238.959 102.351 121.758 31.3136 29.9512 63.7166C56.6471 -11.0597 104.829 -24.7686 158.872 -25.3918C199.24 -26.0149 255.888 -21.653 293 -31Z"
fill="#F9F9F9"/>
<path fill-rule="evenodd" clip-rule="evenodd"
d="M201.195 65.5859C159.523 167.78 70.3205 111.074 0 136C36.463 33.806 119.805 86.1494 201.195 65.5859Z"
fill="#F9F9F9"/>
</g>
<defs>
<clipPath id="clip0_2281_7020">
<rect width="293" height="167" fill="white"
transform="translate(0 -31)"/>
</clipPath>
</defs>
</svg>
</div>
<?php
} ?>
<?php endif; ?>
<div class="relative flex flex-col <?php echo is_front_page() ? 'justify-start' : 'justify-end'; ?> h-full z-10">
<?php if (get_sub_field('text')) : ?>
<?php if (get_sub_field('heading')) : ?>
<h3 class="font-[600] text-[42px] text-[#fff] leading-[115%]">
<?php echo esc_html(get_sub_field('heading')); ?>
</h3>
<?php endif; ?>
<?php if (get_sub_field('underheading')) : ?>
<p class="text-[24px] font-[700] leading-[140%] text-[#fff]"><?php echo esc_html(get_sub_field('underheading')); ?></p>
<?php endif; ?>
<div class="<?php echo is_front_page() ? 'max-w-[245px]' : 'max-w-full'; ?> w-full text-[20px] font-[600] leading-[115%] text-[#fff] mt-[24px]">
<?php echo wp_kses_post(get_sub_field('text')); ?>
</div>
<?php endif; ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
<!-- Вторая колонка -->
<div class="flex flex-col gap-[24px] w-full max-w-[872px]">
<!-- Два обычных блока сверху -->
<div class="grid grid-cols-2 gap-[24px]">
<!-- Third Tile -->
<?php if (have_rows('third_tile')) : ?>
<?php while (have_rows('third_tile')) : the_row(); ?>
<div class="relative <?php echo is_front_page() ? 'h-[298px]' : 'h-[383px]'; ?> rounded-[12px] p-[24px] overflow-hidden"
<?php
$background = get_sub_field('background');
if ($background) : ?>
style="background-image: url('<?php echo esc_url($background['url']); ?>'); background-size: cover; background-position: center;"
<?php endif; ?>>
<div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div>
<div class="relative flex flex-col h-full justify-end z-10">
<?php if (get_sub_field('heading')) : ?>
<h3 class="font-[700] text-[24px] text-[#fff] leading-[125%]">
<?php echo esc_html(get_sub_field('heading')); ?>
</h3>
<?php endif; ?>
<?php if (get_sub_field('text')) : ?>
<div class="text-[20px] font-[600] leading-[115%] text-[#fff] mt-[24px] w-full <?php echo is_front_page() ? 'max-w-[330px]' : 'max-w-full' ?>"><?php echo wp_kses_post(get_sub_field('text')); ?></div>
<?php endif; ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
<!-- Fourth Tile -->
<?php if (have_rows('fourth_tile')) : ?>
<?php while (have_rows('fourth_tile')) : the_row(); ?>
<div class="relative <?php echo is_front_page() ? 'h-[298px]' : 'h-[383px]'; ?> rounded-[12px] p-[24px] overflow-hidden"
<?php
$background = get_sub_field('background');
if ($background) : ?>
style="background-image: url('<?php echo esc_url($background['url']); ?>'); background-size: cover; background-position: center;"
<?php endif; ?>>
<div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div>
<div class="relative flex flex-col h-full justify-end z-10">
<?php if (get_sub_field('heading')) : ?>
<h3 class="font-[700] text-[24px] text-[#fff] leading-[125%]">
<?php echo esc_html(get_sub_field('heading')); ?>
</h3>
<?php endif; ?>
<?php if (get_sub_field('underheading')) : ?>
<p class="text-[24px] font-[700] leading-[140%] text-[#fff]"><?php echo esc_html(get_sub_field('underheading')); ?></p>
<?php endif; ?>
<?php if (get_sub_field('text')) : ?>
<div class="text-[20px] font-[600] leading-[115%] text-[#fff] mt-[24px] w-full <?php echo is_front_page() ? 'max-w-[330px]' : 'max-w-full' ?>"><?php echo wp_kses_post(get_sub_field('text')); ?></div>
<?php endif; ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
<!-- Fifth Tile - Широкий блок снизу -->
<?php if (have_rows('fifth_tile')) : ?>
<?php while (have_rows('fifth_tile')) : the_row(); ?>
<div class="relative <?php echo is_front_page() ? 'h-[298px]' : 'h-[383px]'; ?> rounded-[12px] p-[24px] overflow-hidden"
<?php
$background = get_sub_field('background');
if ($background) : ?>
style="background-image: url('<?php echo esc_url($background['url']); ?>'); background-size: cover; background-position: center;"
<?php endif; ?>>
<div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div>
<div class="relative flex flex-col h-full justify-end z-10">
<?php if (get_sub_field('heading')) : ?>
<h3 class="font-[600] text-[42px] text-[#fff] leading-[115%]">
<?php echo esc_html(get_sub_field('heading')); ?>
</h3>
<?php endif; ?>
<?php if (get_sub_field('underheading')) : ?>
<p class="text-[24px] font-[700] leading-[140%] text-[#fff]"><?php echo esc_html(get_sub_field('underheading')); ?></p>
<?php endif; ?>
<?php if (get_sub_field('text')) : ?>
<div class="text-[20px] font-[600] leading-[115%] text-[#fff] mt-[24px] w-full <?php echo is_front_page() ? 'max-w-[330px]' : 'max-w-[400px]' ?>"><?php echo wp_kses_post(get_sub_field('text')); ?></div>
<?php endif; ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
</section>
@@ -0,0 +1,23 @@
.reviews-block .tab-button {
box-shadow: 0 2px 32px 0 rgba(16, 15, 15, 0.03);
background: #fff;
font-weight: 500;
font-size: 18px;
line-height: 195%;
color: #222;
}
.reviews-block .tab-button.active {
font-size: 18px;
line-height: 195%;
color: #f8f8f8;
box-shadow: none;
background: linear-gradient(90deg, #9d9994 39.42%, #ccc9c4 92.9%);
}
.dark .reviews-block .tab-button.active {
background: linear-gradient(90deg, #2b2c35 39.42%, #6e7996 92.9%);
color: #f8f8f8;
}
@@ -13,102 +13,139 @@ function initReviewsBlock(blockId) {
let lightbox; let lightbox;
function initAllSwipers() { function initAllSwipers() {
const tabs = container.querySelectorAll('.tab-button'); container.querySelectorAll('.reviews-swiper').forEach(swiperEl => {
const tabId = swiperEl.id.replace('swiper-', '');
tabs.forEach(button => { swipers[tabId] = new Swiper(`#${blockId} #swiper-${tabId}`, {
const tabId = button.getAttribute('data-tab'); slidesPerView: 'auto',
const tabContent = container.querySelector(`#tab-${tabId}`); spaceBetween: 24,
grabCursor: true,
if (tabContent && tabContent.querySelector('.swiper')) { watchSlidesProgress: true,
const wasHidden = tabContent.classList.contains('hidden'); scrollbar: {
if (wasHidden) { el: `#${blockId} #swiper-${tabId} .swiper-scrollbar`,
tabContent.style.visibility = 'hidden'; draggable: true,
tabContent.style.position = 'absolute'; },
tabContent.classList.remove('hidden'); });
tabContent.classList.add('block');
}
if (swipers[tabId]) {
swipers[tabId].destroy(true, true);
}
swipers[tabId] = new Swiper(`#${blockId} #swiper-${tabId}`, {
slidesPerView: 'auto',
spaceBetween: 20,
loop: true,
centeredSlides: true,
observer: true,
observeParents: true,
watchSlidesProgress: true,
});
if (wasHidden) {
tabContent.style.visibility = '';
tabContent.style.position = '';
tabContent.classList.add('hidden');
tabContent.classList.remove('block');
}
}
}); });
} }
function initLightbox(tabId) { function initLightbox(tabId) {
if (lightbox) { const currentSelector = `#${blockId} #tab-${tabId} .glightbox`;
lightbox.destroy();
}
lightbox = GLightbox({ if (lightbox?.settings?.selector !== currentSelector) {
selector: `#${blockId} #tab-${tabId} .glightbox`, if (lightbox) {
touchNavigation: true, lightbox.destroy();
loop: true,
autoplayVideos: false,
videosWidth: '90vw',
videosHeight: '80vh',
plyr: {
css: 'https://cdn.plyr.io/3.7.8/plyr.css',
js: 'https://cdn.plyr.io/3.7.8/plyr.js',
config: {
ratio: '16:9',
fullscreen: { enabled: true, fallback: true, iosNative: true },
controls: [
'play-large',
'play',
'progress',
'current-time',
'duration',
'mute',
'volume',
'fullscreen'
]
}
},
onOpen: () => {
console.log('видео открыли');
},
onClose: () => {
console.log('видео закрыли');
} }
});
const isVideo = tabId === 'video';
lightbox = GLightbox({
selector: currentSelector,
touchNavigation: true,
loop: true,
autoplayVideos: false,
videosWidth: isVideo ? '90vw' : 'auto',
videosHeight: isVideo ? '80vh' : 'auto',
plyr: isVideo ? {
css: 'https://cdn.plyr.io/3.7.8/plyr.css',
js: 'https://cdn.plyr.io/3.7.8/plyr.js',
config: {
ratio: '16:9',
fullscreen: { enabled: true, fallback: true, iosNative: true },
controls: [
'play-large',
'play',
'progress',
'current-time',
'duration',
'mute',
'volume',
'fullscreen'
]
}
} : undefined,
});
}
} }
function toggleRatingSection(show) {
const ratingSection = container.querySelector('.rating-section');
if (ratingSection) {
if (show) {
ratingSection.classList.remove('hidden');
ratingSection.classList.add('flex');
} else {
ratingSection.classList.remove('flex');
ratingSection.classList.add('hidden');
}
}
}
function updateRatingAndStars(rating, stars) {
if (stars) {
const starsElement = container.querySelector('[data-reviews="stars"]');
if (starsElement) {
const starCount = parseInt(stars);
const lastDigit = starCount % 10;
const lastTwoDigits = starCount % 100;
let ending;
if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {
ending = ' оценок';
} else if (lastDigit == 1) {
ending = ' оценка';
} else if (lastDigit >= 2 && lastDigit <= 4) {
ending = ' оценки';
} else {
ending = ' оценок';
}
starsElement.textContent = starCount + ending;
}
}
}
function debounce(func, wait) {
let timeout;
return (...args) => {
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, args), wait);
};
}
initAllSwipers(); initAllSwipers();
const activeTab = container.querySelector('.tab-button.active'); const activeTab = container.querySelector('.tab-button.active');
if (activeTab) { if (activeTab) {
const tabId = activeTab.getAttribute('data-tab'); const tabId = activeTab.getAttribute('data-tab');
initLightbox(tabId); initLightbox(tabId);
} }
container.querySelectorAll('.tab-button').forEach(button => { container.querySelectorAll('.tab-button').forEach(button => {
button.addEventListener('click', () => { button.addEventListener('click', debounce(() => {
const tabId = button.getAttribute('data-tab'); const tabId = button.getAttribute('data-tab');
const rating = button.getAttribute('data-rating');
const stars = button.getAttribute('data-stars');
const isVideoTab = tabId === 'video';
container.querySelectorAll('.tab-button').forEach(btn => { container.querySelectorAll('.tab-button').forEach(btn => {
btn.classList.remove('active', 'underline'); btn.classList.remove('active');
btn.classList.add('bg-gray-100');
}); });
button.classList.add('active', 'underline'); button.classList.add('active');
button.classList.remove('bg-gray-100');
toggleRatingSection(!isVideoTab);
if (!isVideoTab) {
updateRatingAndStars(rating, stars);
}
container.querySelectorAll('.tab-content').forEach(content => { container.querySelectorAll('.tab-content').forEach(content => {
content.classList.remove('block'); content.classList.remove('block');
@@ -119,13 +156,22 @@ function initReviewsBlock(blockId) {
targetTab.classList.remove('hidden'); targetTab.classList.remove('hidden');
targetTab.classList.add('block'); targetTab.classList.add('block');
if (swipers[tabId]) {
initLightbox(tabId);
if (!isVideoTab && swipers[tabId]) {
requestAnimationFrame(() => { requestAnimationFrame(() => {
swipers[tabId].update(); swipers[tabId].update();
}); });
} }
initLightbox(tabId); }, 100));
}); });
window.addEventListener('beforeunload', () => {
Object.values(swipers).forEach(swiper => swiper?.destroy());
if (lightbox) lightbox.destroy();
}); });
} }
@@ -1,28 +1,29 @@
<?php <?php
$id = 'reviews-block-' . $block['id']; $id = 'reviews-block-' . $block['id'];
if ( ! empty($block['anchor'] ) ) { if (!empty($block['anchor'])) {
$id = $block['anchor']; $id = $block['anchor'];
} }
$classes = 'block-reviews-block'; $classes = 'block-reviews-block';
if ( ! empty( $block['className'] ) ) { if (!empty($block['className'])) {
$classes .= ' ' . $block['className']; $classes .= ' ' . $block['className'];
} }
if ( ! empty( $block['align'] ) ) { if (!empty($block['align'])) {
$classes .= ' align' . $block['align']; $classes .= ' align' . $block['align'];
} }
$heading = get_field('heading'); $heading = get_field('heading');
$slider_tabs = get_field('slider_tabs'); $slider_tabs = get_field('slider_tabs');
$slider_video_reviews = get_field('slider_video_reviews'); $slider_video_reviews = get_field('slider_video_reviews');
$rating = get_field('rating') ?: '5.0';
$stars = get_field('stars'); $stars = get_field('stars');
?> ?>
<div class="reviews-block container mx-auto mt-[24px]" <div class="reviews-block container mx-auto py-[90px]"
id="<?php echo esc_attr( $id ); ?>" id="<?php echo esc_attr($id); ?>"
data-reviews-id="<?php echo esc_attr( $id ); ?>"> data-reviews-id="<?php echo esc_attr($id); ?>">
<div> <div class="flex justify-between flex-wrap gap-[12px]">
<?php if ($heading) : ?> <?php if ($heading) : ?>
<h2 class="text-[32px] font-bold mt-[24px]"><?php echo esc_html($heading); ?></h2> <h2 class="text-[32px] font-bold mt-[24px]"><?php echo esc_html($heading); ?></h2>
<?php endif; ?> <?php endif; ?>
@@ -31,8 +32,10 @@ $stars = get_field('stars');
<?php if ($slider_tabs && !empty($slider_tabs['slider_tab'])) : ?> <?php if ($slider_tabs && !empty($slider_tabs['slider_tab'])) : ?>
<?php foreach ($slider_tabs['slider_tab'] as $tab_index => $tab) : ?> <?php foreach ($slider_tabs['slider_tab'] as $tab_index => $tab) : ?>
<?php if (!empty($tab['tab_name'])) : ?> <?php if (!empty($tab['tab_name'])) : ?>
<button class="tab-button px-[24px] py-[12px] border rounded-[25px] cursor-pointer transition-all <?php echo $tab_index === 0 ? 'active underline' : ''; ?>" <button class="tab-button grey-gradient-button rounded-[90px] py-[8px] px-[28px] cursor-pointer transition-all <?php echo $tab_index === 0 ? 'active' : ''; ?>"
data-tab="<?php echo $tab_index; ?>"> data-tab="<?php echo $tab_index; ?>"
data-rating="<?php echo esc_attr($tab['rating'] ?? $rating); ?>"
data-stars="<?php echo esc_attr($tab['stars'] ?? $stars); ?>">
<?php echo esc_html($tab['tab_name']); ?> <?php echo esc_html($tab['tab_name']); ?>
</button> </button>
<?php endif; ?> <?php endif; ?>
@@ -40,62 +43,95 @@ $stars = get_field('stars');
<?php endif; ?> <?php endif; ?>
<?php if ($slider_video_reviews) : ?> <?php if ($slider_video_reviews) : ?>
<button class="tab-button px-[24px] py-[12px] border rounded-[25px] cursor-pointer transition-all" <button class="tab-button grey-gradient-button rounded-[90px] py-[8px] px-[28px] cursor-pointer transition-all"
data-tab="video"> data-tab="video">
Видеоотзывы Видеоотзывы
</button> </button>
<?php endif; ?> <?php endif; ?>
</div> </div>
<div class="mt-[24px] flex gap-[20px]">
<div class="flex gap-[5px] w-full items-center justify-center">
<svg width="39" height="38" viewBox="0 0 39 38" fill="none" xmlns="http://www.w3.org/2000/svg"> <div class="rating-section mt-[24px] flex gap-[20px]">
<path d="M19.5 0L25.7658 11.8759L38.9967 14.1652L29.6383 23.7941L31.5496 37.0848L19.5 31.16L7.4504 37.0848L9.36174 23.7941L0.00334167 14.1652L13.2342 11.8759L19.5 0Z" fill="#565656"/> <div class="flex flex-col gap-[6px]">
</svg> <div data-reviews="rating" class="flex gap-[4px] items-center">
<svg width="39" height="38" viewBox="0 0 39 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.5 0L25.7658 11.8759L38.9967 14.1652L29.6383 23.7941L31.5496 37.0848L19.5 31.16L7.4504 37.0848L9.36174 23.7941L0.00334167 14.1652L13.2342 11.8759L19.5 0Z" fill="#565656"/>
</svg>
<svg width="39" height="38" viewBox="0 0 39 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.5 0L25.7658 11.8759L38.9967 14.1652L29.6383 23.7941L31.5496 37.0848L19.5 31.16L7.4504 37.0848L9.36174 23.7941L0.00334167 14.1652L13.2342 11.8759L19.5 0Z" fill="#565656"/>
</svg>
<svg width="39" height="38" viewBox="0 0 39 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.5 0L25.7658 11.8759L38.9967 14.1652L29.6383 23.7941L31.5496 37.0848L19.5 31.16L7.4504 37.0848L9.36174 23.7941L0.00334167 14.1652L13.2342 11.8759L19.5 0Z" fill="#565656"/>
</svg>
<svg width="39" height="38" viewBox="0 0 39 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.5 0L25.7658 11.8759L38.9967 14.1652L29.6383 23.7941L31.5496 37.0848L19.5 31.16L7.4504 37.0848L9.36174 23.7941L0.00334167 14.1652L13.2342 11.8759L19.5 0Z" fill="#565656"/>
</svg>
<div>
Оценок:  
<?php <?php
echo $stars; for ($i = 0; $i < 5; $i++) {
?>
<svg width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2307_14938)">
<path d="M19.5654 9.6016C19.7579 9.41536 19.894 9.17868 19.9582 8.91867C20.0224 8.65866 20.012 8.38583 19.9283 8.13144C19.8465 7.87631 19.6944 7.64939 19.4896 7.4767C19.2847 7.30402 19.0354 7.19254 18.7701 7.15506L13.9275 6.45142C13.8259 6.43666 13.7294 6.39742 13.6464 6.33706C13.5634 6.27671 13.4963 6.19707 13.4509 6.105L11.2859 1.71734C11.1682 1.47672 10.9852 1.27411 10.7577 1.13273C10.5302 0.991358 10.2674 0.916931 9.99957 0.91798C9.73178 0.917006 9.46914 0.991469 9.24171 1.13284C9.01429 1.27421 8.83127 1.47678 8.71363 1.71734L6.54823 6.1054C6.45612 6.29243 6.2775 6.42178 6.07126 6.45182L1.22864 7.15547C0.963355 7.19294 0.713995 7.30442 0.509148 7.47711C0.304302 7.64979 0.152261 7.87671 0.0704546 8.13184C-0.0132531 8.38623 -0.0236151 8.65906 0.0405555 8.91907C0.104726 9.17908 0.240834 9.41576 0.43329 9.602L3.93709 13.0173C4.08647 13.1631 4.15496 13.3729 4.11971 13.578L3.29312 18.4006C3.25573 18.6055 3.26439 18.8161 3.31849 19.0173C3.37259 19.2184 3.47076 19.405 3.6059 19.5636C4.03281 20.071 4.7781 20.2255 5.37402 19.9124L9.70482 17.6352C9.79609 17.5887 9.8971 17.5644 9.99957 17.5644C10.102 17.5644 10.2031 17.5887 10.2943 17.6352L14.6255 19.9124C14.8309 20.0219 15.06 20.0793 15.2927 20.0794C15.716 20.0794 16.1173 19.8911 16.3932 19.5636C16.5284 19.4051 16.6266 19.2185 16.6807 19.0173C16.7348 18.8161 16.7434 18.6055 16.706 18.4006L15.879 13.578C15.8617 13.4767 15.8693 13.3728 15.9011 13.2751C15.9329 13.1774 15.988 13.0889 16.0616 13.0173L19.5654 9.6016Z"
fill="url(#paint0_linear_2307_14938)"/>
</g>
<defs>
<linearGradient id="paint0_linear_2307_14938" x1="-0.000976562" y1="10.4987"
x2="19.9997" y2="10.4987"
gradientUnits="userSpaceOnUse">
<stop offset="0.394231" stop-color="#FFD65A"/>
<stop offset="0.929023" stop-color="#FFE595"/>
</linearGradient>
<clipPath id="clip0_2307_14938">
<rect width="20" height="20" fill="white" transform="translate(0 0.5)"/>
</clipPath>
</defs>
</svg>
<?php
}
?> ?>
<span class="ml-[8px] font-[600] text-[20px] leading-[115%]">5.0</span>
</div>
<div class="font-[500] ml-auto text-[16px] leading-[145%] text-[#6c6b6b]">
(
<span data-reviews="stars">
<?php
$star_count = $slider_tabs && !empty($slider_tabs['slider_tab'])
? ($slider_tabs['slider_tab'][0]['stars'] ?? $stars)
: $stars;
echo esc_html($star_count);
// Функция для правильных окончаний
$last_digit = $star_count % 10;
$last_two_digits = $star_count % 100;
if ($last_two_digits >= 11 && $last_two_digits <= 19) {
echo ' оценок';
} elseif ($last_digit == 1) {
echo ' оценка';
} elseif ($last_digit >= 2 && $last_digit <= 4) {
echo ' оценки';
} else {
echo ' оценок';
}
?>
</span>
)
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<?php if ($slider_tabs && !empty($slider_tabs['slider_tab'])) : ?> <?php if ($slider_tabs && !empty($slider_tabs['slider_tab'])) : ?>
<?php foreach ($slider_tabs['slider_tab'] as $tab_index => $tab) : ?> <?php foreach ($slider_tabs['slider_tab'] as $tab_index => $tab) : ?>
<div class="tab-content mt-[24px] <?php echo $tab_index === 0 ? 'block' : 'hidden'; ?>" <div class="tab-content mt-[45px] <?php echo $tab_index === 0 ? 'block' : 'hidden'; ?>"
id="tab-<?php echo $tab_index; ?>"> id="tab-<?php echo $tab_index; ?>">
<?php if (!empty($tab['slider_images'])) : ?> <?php if (!empty($tab['slider_images'])) : ?>
<div class="swiper reviews-swiper" id="swiper-<?php echo $tab_index; ?>"> <div class="swiper reviews-swiper" id="swiper-<?php echo $tab_index; ?>">
<div class="swiper-wrapper"> <div class="swiper-wrapper">
<?php foreach ($tab['slider_images'] as $image) : ?> <?php foreach ($tab['slider_images'] as $img_index => $image) : ?>
<div class="swiper-slide max-w-[449px] cursor-pointer"> <div class="swiper-slide max-w-[424px] cursor-pointer">
<a href="<?php echo esc_url($image['url']); ?>" <a href="<?php echo esc_url($image['url']); ?>"
class="glightbox block w-full h-full relative" class="glightbox block w-full h-full relative"
data-gallery="reviews-<?php echo $tab_index; ?>"> data-gallery="reviews-<?php echo $tab_index; ?>">
<img src="<?php echo esc_url($image['url']); ?>" <img src="<?php echo esc_url($image['url']); ?>"
alt="<?php echo esc_attr($image['alt']); ?>" alt="<?php echo esc_attr($image['alt']); ?>"
class="w-full h-full object-contain"> class="w-full h-full object-contain rounded-[12px]">
</a> </a>
</div> </div>
<?php endforeach; ?> <?php endforeach; ?>
</div> </div>
<div class="swiper-scrollbar !static !mx-auto !cursor-grab mt-[45px] !w-full !p-0"></div>
</div> </div>
<?php endif; ?> <?php endif; ?>
</div> </div>
@@ -103,50 +139,49 @@ $stars = get_field('stars');
<?php endif; ?> <?php endif; ?>
<?php if ($slider_video_reviews) : ?> <?php if ($slider_video_reviews) : ?>
<div class="tab-content mt-[24px] hidden" id="tab-video"> <div class="tab-content mt-[45px] hidden" id="tab-video">
<div class="swiper reviews-swiper" id="swiper-video"> <div class="video-reviews-grid flex flex-wrap gap-[24px]">
<div class="swiper-wrapper"> <?php foreach ($slider_video_reviews as $video_index => $video) : ?>
<?php foreach ($slider_video_reviews as $video) : ?> <?php if (!empty($video['slider_video_review'])) : ?>
<?php if (!empty($video['slider_video_review'])) : ?> <div class="video-review-item max-w-[424px] h-[358px] w-full bg-white rounded-[12px]">
<div class="swiper-slide max-w-[449px] cursor-pointer"> <a href="<?php echo esc_url($video['slider_video_review']['url']); ?>"
<a href="<?php echo esc_url($video['slider_video_review']['url']); ?>" class="glightbox hover:[&_svg]:fill-[#e21e24] p-[24px] !no-underline block w-full h-full relative"
class="glightbox block w-full h-full relative" data-gallery="reviews-video"
data-gallery="reviews-video" data-type="video">
data-type="video"> <?php if (!empty($video['author']) || !empty($video['data_otzyva'])) : ?>
<div class="w-full h-[200px] relative overflow-hidden rounded-lg"> <div class="flex justify-between h-[46px] w-full items-center">
<?php if (!empty($video['slider_video_prereview'])) : ?> <?php if (!empty($video['author'])) : ?>
<div class="w-full h-full bg-[#f3f4f6] flex items-center justify-center"> <div class="font-[600] text-[20px] leading-[115%]"><?php echo esc_html($video['author']); ?></div>
<div class="text-center"> <?php endif; ?>
<div class="absolute left-1/2 top-1/2 translate-x-[-50%] translate-y-[-50%] w-[60px] h-[60px] bg-white bg-opacity-90 rounded-full flex items-center justify-center mx-auto mb-[8px]"> <?php if (!empty($video['data_otzyva'])) : ?>
<svg class="w-[24px] h-[24px]" fill="currentColor" viewBox="0 0 20 20"> <div class="font-[500] text-[14px] leading-[125%] text-[#6c6b6b]"><?php echo esc_html($video['data_otzyva']); ?></div>
<path d="M8 5v10l8-5-8-5z"/>
</svg>
</div>
<img src="<?php echo esc_url($video['slider_video_prereview']['url']); ?>"
alt="<?php echo esc_attr($video['slider_video_prereview']['alt'] ?: 'Превью видеоотзыва'); ?>"
class="w-full h-full object-cover">
</div>
</div>
<?php else : ?>
<div class="w-full h-full bg-[#f3f4f6] flex justify-center">
<div class="text-center">
<div class="absolute left-1/2 top-1/2 translate-x-[-50%] translate-y-[-50%] w-[60px] h-[60px] bg-white bg-opacity-90 rounded-full flex items-center justify-center mx-auto mb-[8px]">
<svg class="w-[24px] h-[24px]" fill="currentColor" viewBox="0 0 20 20">
<path d="M8 5v10l8-5-8-5z"/>
</svg>
</div>
<p class="text-[14px] text-[#6b7280]">Видеоотзыв</p>
</div>
</div>
<?php endif; ?> <?php endif; ?>
</div> </div>
</a> <?php endif; ?>
</div> <div class="w-full h-[240px] mt-[24px] rounded-[12px] relative overflow-hidden">
<?php endif; ?> <img src="<?php echo esc_url($video['slider_video_prereview']['url']); ?>"
<?php endforeach; ?> alt="<?php echo esc_attr($video['slider_video_prereview']['alt'] ?: 'Превью видеоотзыва'); ?>"
</div> class="w-full h-full object-cover">
<div class="absolute inset-0 flex items-center justify-center">
<svg class="transition-all" width="76" height="76" viewBox="0 0 76 76" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 38C0 17.0132 17.0132 0 38 0C58.9868 0 76 17.0132 76 38C76 58.9868 58.9868 76 38 76C17.0132 76 0 58.9868 0 38Z" fill="url(#paint0_linear_4086_3690)" fill-opacity="0.32" />
<path d="M38 0.379883C58.777 0.379883 75.6201 17.223 75.6201 38C75.6201 58.777 58.777 75.6201 38 75.6201C17.223 75.6201 0.379883 58.777 0.379883 38C0.379883 17.223 17.223 0.379883 38 0.379883Z" stroke="white" stroke-opacity="0.14" stroke-width="0.76" />
<path d="M49.5 35.4019C51.5 36.5566 51.5 39.4434 49.5 40.5981L34.5 49.2583C32.5 50.413 30 48.9697 30 46.6603L30 29.3397C30 27.0303 32.5 25.587 34.5 26.7417L49.5 35.4019Z" fill="white" />
<defs>
<linearGradient id="paint0_linear_4086_3690" x1="0" y1="38" x2="76" y2="38" gradientUnits="userSpaceOnUse">
<stop offset="0.394231" stop-color="#9D9994" />
<stop offset="0.929023" stop-color="#C5C5B9" />
</linearGradient>
</defs>
</svg>
</div>
</div>
</a>
</div>
<?php endif; ?>
<?php endforeach; ?>
</div> </div>
</div> </div>
<?php endif; ?> <?php endif; ?>
@@ -0,0 +1,126 @@
document.addEventListener('DOMContentLoaded', function () {
// Небольшая задержка для корректной инициализации GLightbox
setTimeout(() => {
document.querySelectorAll('.simple-gallery-block').forEach(function (block) {
const blockId = block.getAttribute('data-gallery-id');
initSimpleGallery(blockId);
});
}, 100);
});
function initSimpleGallery(blockId) {
const container = document.getElementById(blockId);
if (!container) return;
let mainSwiper;
let thumbnailSwiper;
let lightbox;
// Проверяем, одно изображение или несколько
const isSingleImage = container.querySelector('.single-image');
const hasMultipleImages = container.querySelector('.gallery-swiper');
function initLightbox() {
if (typeof GLightbox === 'undefined') {
console.warn('GLightbox is not loaded');
return;
}
const selector = `#${blockId} .glightbox`;
if (lightbox) {
lightbox.destroy();
}
lightbox = GLightbox({
selector: selector,
preload: false,
touchNavigation: true,
loop: true
});
}
function updateThumbnails(activeIndex) {
const thumbnails = container.querySelectorAll('.thumbnail');
thumbnails.forEach((thumb, index) => {
if (index === activeIndex) {
thumb.classList.remove('opacity-50', 'hover:opacity-80');
thumb.classList.add('opacity-100', 'active');
} else {
thumb.classList.remove('opacity-100', 'active');
thumb.classList.add('opacity-50', 'hover:opacity-80');
}
});
}
function centerThumbnail(activeIndex) {
if (thumbnailSwiper) {
thumbnailSwiper.slideTo(activeIndex);
}
}
// Инициализация для одного изображения
if (isSingleImage) {
initLightbox();
window.addEventListener('beforeunload', () => {
if (lightbox) lightbox.destroy();
});
return;
}
// Инициализация для множественных изображений
if (hasMultipleImages) {
// Thumbnail swiper
thumbnailSwiper = new Swiper(`#${blockId} .thumbnail-swiper`, {
slidesPerView: 'auto',
spaceBetween: 6,
freeMode: true,
grabCursor: true,
watchSlidesProgress: true,
});
// Main swiper
mainSwiper = new Swiper(`#${blockId} .gallery-swiper`, {
slidesPerView: 'auto',
spaceBetween: 0,
grabCursor: true,
watchSlidesProgress: true,
lazy: {
loadPrevNext: true,
loadOnTransitionStart: true,
},
on: {
slideChange: function () {
updateThumbnails(this.realIndex);
centerThumbnail(this.realIndex);
}
}
});
// Lightbox для множественных изображений
initLightbox();
// Обработчик клика по thumbnail
container.addEventListener('click', (e) => {
const thumbnail = e.target.closest('.thumbnail');
if (!thumbnail) return;
const index = parseInt(thumbnail.getAttribute('data-index'));
if (mainSwiper) {
mainSwiper.slideTo(index);
}
updateThumbnails(index);
centerThumbnail(index);
});
// Cleanup
window.addEventListener('beforeunload', () => {
if (mainSwiper) mainSwiper.destroy();
if (thumbnailSwiper) thumbnailSwiper.destroy();
if (lightbox) lightbox.destroy();
});
}
}
@@ -0,0 +1,117 @@
<?php
$id = 'simple-gallery-' . $block['id'];
if (!empty($block['anchor'])) {
$id = $block['anchor'];
}
$classes = 'block-simple-gallery';
if (!empty($block['className'])) {
$classes .= ' ' . $block['className'];
}
if (!empty($block['align'])) {
$classes .= ' align' . $block['align'];
}
$heading = get_field('heading');
$description = get_field('description');
$gallery_images = get_field('gallery_images');
?>
<div class="simple-gallery-block pt-[90px]"
id="<?php echo esc_attr($id); ?>"
data-gallery-id="<?php echo esc_attr($id); ?>">
<div class="container mx-auto">
<div class="flex gap-[48px] justify-between flex-wrap items-start">
<div class="gallery-section w-full max-w-[535px]">
<?php if ($gallery_images && !empty($gallery_images)) : ?>
<?php if (count($gallery_images) === 1) : ?>
<div class="single-image max-w-[535px] h-[500px]">
<a href="<?php echo esc_url($gallery_images[0]['url']); ?>"
class="glightbox block w-full h-full"
data-gallery="simple-gallery-<?php echo esc_attr($id); ?>">
<img src="<?php echo esc_url($gallery_images[0]['url']); ?>"
alt="<?php echo esc_attr($gallery_images[0]['alt']); ?>"
class="w-full h-full object-cover rounded-[24px]"
width="<?php echo esc_attr($gallery_images[0]['width']); ?>"
height="<?php echo esc_attr($gallery_images[0]['height']); ?>"
fetchpriority="high">
</a>
</div>
<?php else : ?>
<div class="swiper !m-0 max-w-[535px] gallery-swiper h-[500px] rounded-[24px]">
<div class="swiper-wrapper">
<?php foreach ($gallery_images as $img_index => $image) : ?>
<div class="swiper-slide max-w-[648px] cursor-pointer min-h-[500px]">
<a href="<?php echo esc_url($image['url']); ?>"
class="glightbox block w-full h-full"
data-gallery="simple-gallery-<?php echo esc_attr($id); ?>">
<?php if ($img_index === 0) : ?>
<img src="<?php echo esc_url($image['url']); ?>"
alt="<?php echo esc_attr($image['alt']); ?>"
class="w-full h-full object-cover"
width="<?php echo esc_attr($image['width']); ?>"
height="<?php echo esc_attr($image['height']); ?>"
fetchpriority="high">
<?php else : ?>
<img data-src="<?php echo esc_url($image['url']); ?>"
alt="<?php echo esc_attr($image['alt']); ?>"
class="w-full h-full object-cover swiper-lazy"
width="<?php echo esc_attr($image['width']); ?>"
height="<?php echo esc_attr($image['height']); ?>">
<div class="swiper-lazy-preloader"></div>
<?php endif; ?>
</a>
</div>
<?php endforeach; ?>
</div>
</div>
<!-- Thumbnails -->
<div class="relative mt-[8px]">
<div class="swiper thumbnail-swiper">
<div class="swiper-wrapper">
<?php foreach ($gallery_images as $thumb_index => $image) : ?>
<div class="swiper-slide max-w-[102px] !h-[62px]">
<div class="thumbnail w-full h-full overflow-hidden cursor-pointer transition-opacity duration-[180ms] ease-in-out <?php echo $thumb_index === 0 ? 'active opacity-100' : 'opacity-50 hover:opacity-80'; ?>"
data-index="<?php echo $thumb_index; ?>">
<img src="<?php echo esc_url($image['sizes']['thumbnail'] ?? $image['url']); ?>"
alt="<?php echo esc_attr($image['alt']); ?>"
class="w-full rounded-[6px] h-full object-cover"
width="102"
height="62">
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
<?php endif; ?>
<?php endif; ?>
</div>
<div class="content-section w-full max-w-[725px]">
<div class="py-[48px] pr-[12px]">
<?php if ($heading) : ?>
<h2 class="text-[48px] font-[700] leading-[110%] mb-[24px]"><?php echo esc_html($heading); ?></h2>
<?php endif; ?>
<?php if ($description) : ?>
<div class="text-[18px] leading-[150%] text-gray-600">
<?php echo $description ?>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,277 @@
<?php
/**
* Блок с тренерами
*/
// Получение полей ACF
$block_id = 'trainer-block-' . $block['id'];
$class_name = 'trainer-block';
if (!empty($block['className'])) {
$class_name .= ' ' . $block['className'];
}
if (!empty($block['align'])) {
$class_name .= ' align' . $block['align'];
}
if (!function_exists('get_trainers_for_current_language')) {
function get_trainers_for_current_language()
{
$current_lang = pll_current_language();
$args = array(
'post_type' => 'trainer',
'posts_per_page' => -1,
'lang' => $current_lang,
'post_status' => 'publish',
'sort' => 'menu_order',
'order' => 'ASC',
);
return get_posts($args);
}
}
$trainers = get_trainers_for_current_language();
// Получаем все поля short_info для каждого тренера
$trainers_data = array();
if ($trainers) {
foreach ($trainers as $trainer) {
$trainer_info = array(
'post' => $trainer,
'name' => '',
'exp' => '',
'short_desc' => ''
);
if (have_rows('short_info', $trainer->ID)) {
while (have_rows('short_info', $trainer->ID)) {
the_row();
$trainer_info['name'] = get_sub_field('name');
$trainer_info['exp'] = get_sub_field('exp');
$trainer_info['short_desc'] = get_sub_field('short_desc');
}
}
$trainers_data[] = $trainer_info;
}
}
$heading = get_field('heading', $block['id']);
$room = get_current_room();
if ($room === 'fitness') {
$section_classes = 'radial-gradient';
$style_attr = '';
} else {
$section_classes = '';
}
?>
<section id="<?php echo esc_attr($block_id); ?>"
class="py-[96px] <?php echo esc_attr($section_classes); ?>" <?php echo $style_attr; ?>>
<div class="container mx-auto">
<?php if ($trainers_data): ?>
<?php if (is_front_page()): ?>
<div class="flex flex-col gap-[16px] ">
<h2 class="text-[40px] leading-[120%] font-[500]">
<?php
echo $heading;
?>
</h2>
</div>
<?php endif; ?>
<div class="mt-[40px] flex gap-[24px]">
<div class="swiper rounded-[20px] rounded-b-[0]" id="<?php echo esc_attr($block_id); ?>-swiper">
<div class="swiper-wrapper">
<?php foreach ($trainers_data as $trainer_data): ?>
<?php $trainer = $trainer_data['post']; ?>
<div class="max-w-[312px] swiper-slide">
<div class="flex flex-col gap-[12px]">
<div class="flex relative rounded-[20px] overflow-hidden shadow-[0_2px_32px_0_rgba(16,_15,_15,_0.03)]">
<?php $photo_images = get_field('photo', $trainer->ID); ?>
<?php if ($photo_images && !empty($photo_images[0])): ?>
<div class="overflow-hidden h-[460px]">
<img src="<?php echo esc_url($photo_images[0]['url']); ?>"
alt="<?php echo esc_attr($photo_images[0]['alt']); ?>"
loading="lazy"
class="w-full h-full object-cover"/>
</div>
<?php endif; ?>
<div class="flex gap-[4px] absolute left-[12px] bottom-[16px]">
<div class="text-[15px] leading-[110%] font-[600] text-[#fff] px-[12px] h-[29px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php
echo
pll_current_language( 'name' );
?>
</div>
<?php $exp = $trainer_data['exp']; ?>
<?php if ($exp): ?>
<div class="text-[15px] leading-[110%] font-[600] text-[#fff] px-[12px] h-[29px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo esc_html($exp); ?>
</div>
<?php endif; ?>
</div>
</div>
<div>
<?php $name = $trainer_data['name']; ?>
<?php if ($name): ?>
<div class="text-[24px] leading-[125%] font-[600]">
<?php echo esc_html($name); ?>
</div>
<?php endif; ?>
<?php $short_desc = $trainer_data['short_desc']; ?>
<?php if ($short_desc): ?>
<div class="text-[16px] leading-[145%] font-[500] mt-[4px] text-[#6c6b6b]">
<?php echo wp_kses_post($short_desc); ?>
</div>
<?php endif; ?>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<div class="flex flex-col justify-between w-full max-w-[312px]">
<div
class="p-[24px] flex flex-col bg-cover bg-center bg-no-repeat rounded-[20px] h-[460px]"
<?php
if (get_current_room() === 'fitness') : ?>
style="background-image: url('<?php echo get_template_directory_uri() . '/assets/images/trainer-bg-dark.png'; ?>')"
<?php else : ?>
style="background-image: url('<?php echo get_template_directory_uri() . '/assets/images/trainer-bg-light.png'; ?>')"
<?php endif;
?>
>
<?php
if (get_current_room() === 'fitness') :
?>
<svg width="138" height="14" viewBox="0 0 138 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2190_3090)">
<mask id="mask0_2190_3090" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="84" height="14">
<path d="M83.731 0.046875H0V13.9305H83.731V0.046875Z" fill="white" />
</mask>
<g mask="url(#mask0_2190_3090)">
<path d="M48.2909 13.931C48.2909 13.931 48.349 13.7557 48.4943 13.4341C48.6397 13.0834 48.8142 12.645 49.0177 12.0896C49.2503 11.5343 49.4829 10.9205 49.7736 10.219C50.0643 9.51752 50.3551 8.78682 50.6458 8.05605C50.9365 7.32535 51.2273 6.59464 51.518 5.89315C51.8087 5.19166 52.0413 4.57786 52.2739 4.02251C52.5065 3.46718 52.6809 3.02874 52.8263 2.678C52.9717 2.32726 53.0298 2.18111 53.0298 2.18111C53.2914 1.59654 53.6985 1.15811 54.2218 0.807368C54.7451 0.456622 55.3266 0.310479 55.9371 0.310479H68.3514L67.5664 2.21034C67.3048 2.82414 66.9268 3.32103 66.3745 3.67177C65.822 4.05174 65.2115 4.22712 64.5719 4.22712H56.8384C56.4895 4.22712 56.2278 4.40249 56.0825 4.72401L55.7627 5.51318H62.3624L61.432 7.79303C61.3157 8.08533 61.1413 8.31913 60.8796 8.49453C60.618 8.66985 60.3563 8.75754 60.0365 8.75754H54.9777C54.6288 8.75754 54.3672 8.93293 54.2218 9.25443L53.902 10.0436H64.3393L63.5834 11.9142C63.3218 12.528 62.9438 13.0249 62.3914 13.4049C61.839 13.7849 61.2285 13.9603 60.5888 13.9603H48.2909V13.931ZM38.1443 1.21657C38.2606 0.924278 38.435 0.71968 38.6676 0.544308C38.9002 0.368935 39.1909 0.28125 39.4817 0.28125H42.6506L40.5573 5.51318L40.5865 5.54241L45.7615 0.631993C46.0231 0.398164 46.2848 0.28125 46.6046 0.28125H51.7215L43.4356 8.17295C43.4647 8.23144 43.6392 8.46525 43.9589 8.90372C44.0753 9.07904 44.2497 9.31292 44.4532 9.60522C44.6567 9.86823 44.8893 10.219 45.18 10.6282C45.4708 11.0374 45.7905 11.505 46.1976 12.0604C46.5755 12.6157 47.0407 13.2295 47.5349 13.9603H42.8542L39.22 8.81603L37.5628 12.9665C37.4465 13.2588 37.2721 13.4926 37.0104 13.668C36.7488 13.8433 36.4871 13.931 36.1673 13.931H32.9983L38.1443 1.21657ZM29.9165 5.51318C30.091 5.51318 30.2364 5.42549 30.2945 5.25012L30.7015 4.22712H24.7415C24.5671 4.22712 24.4217 4.3148 24.3636 4.49018L23.9565 5.51318H29.9165ZM16.3975 13.931L21.1073 2.29803C21.369 1.68422 21.747 1.18734 22.2703 0.836597C22.7936 0.48585 23.4042 0.28125 24.0728 0.28125H36.458L31.7773 11.8558C31.5156 12.4696 31.1376 12.9665 30.5852 13.3465C30.0329 13.7264 29.4223 13.9018 28.7827 13.9018H26.8057L28.899 8.69912H22.6482L20.9038 12.9665C20.7876 13.2588 20.6131 13.4634 20.3515 13.6387C20.0898 13.8141 19.8282 13.9018 19.5083 13.9018H16.3975V13.931Z" fill="white" />
<path d="M3.60508 5.01441L4.6808 2.32537C4.94246 1.71157 5.32041 1.21468 5.8728 0.86394C6.42519 0.483965 7.03575 0.308594 7.67534 0.308594H9.65234L8.14049 4.04986L6.22168 8.84336C6.16353 8.96026 6.10538 9.07717 6.04724 9.19407L4.97153 11.8831C4.70987 12.4969 4.33192 12.9938 3.77952 13.3738C3.22713 13.7538 2.61659 13.9291 1.97698 13.9291H0L1.51181 10.1879L3.43064 5.39438C3.48879 5.24824 3.54694 5.13132 3.60508 5.01441Z" fill="white" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.0601 0.046875C17.647 6.3018 12.4138 2.96974 8.31445 4.48963C9.50648 0.982194 11.6579 0.339161 14.071 0.309933C15.8735 0.280704 18.4029 0.485305 20.0601 0.046875Z" fill="white" />
<path d="M83.7313 0.337822L79.0798 11.8831C78.8181 12.4969 78.4399 12.9938 77.8877 13.3738C77.3354 13.7537 76.725 13.9291 76.085 13.9291H74.1084L78.0041 4.25446H77.4224C77.1607 4.25446 76.899 4.31292 76.6379 4.42984C76.3762 4.54675 76.1727 4.72212 75.998 4.92672L68.6422 13.9291H63.6709L73.6719 1.5362C73.9631 1.15622 74.3406 0.863936 74.7771 0.630109C75.2128 0.425508 75.678 0.308594 76.1727 0.308594H83.7313V0.337822Z" fill="white" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.9612 4.57812C14.1005 9.37161 10.1175 6.71181 6.97754 7.88093C8.60566 3.08746 12.3271 5.54267 15.9612 4.57812Z" fill="white" />
</g>
<mask id="mask1_2190_3090" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="84" height="14">
<path d="M83.731 0.046875H0V13.9305H83.731V0.046875Z" fill="white" />
</mask>
<g mask="url(#mask1_2190_3090)">
<path d="M48.2909 13.931C48.2909 13.931 48.349 13.7557 48.4943 13.4341C48.6397 13.0834 48.8142 12.645 49.0177 12.0896C49.2503 11.5343 49.4829 10.9205 49.7736 10.219C50.0643 9.51752 50.3551 8.78682 50.6458 8.05605C50.9365 7.32535 51.2273 6.59464 51.518 5.89315C51.8087 5.19166 52.0413 4.57786 52.2739 4.02251C52.5065 3.46718 52.6809 3.02874 52.8263 2.678C52.9717 2.32726 53.0298 2.18111 53.0298 2.18111C53.2914 1.59654 53.6985 1.15811 54.2218 0.807368C54.7451 0.456622 55.3266 0.310479 55.9371 0.310479H68.3514L67.5664 2.21034C67.3048 2.82414 66.9268 3.32103 66.3745 3.67177C65.822 4.05174 65.2115 4.22712 64.5719 4.22712H56.8384C56.4895 4.22712 56.2278 4.40249 56.0825 4.72401L55.7627 5.51318H62.3624L61.432 7.79303C61.3157 8.08533 61.1413 8.31913 60.8796 8.49453C60.618 8.66985 60.3563 8.75754 60.0365 8.75754H54.9777C54.6288 8.75754 54.3672 8.93293 54.2218 9.25443L53.902 10.0436H64.3393L63.5834 11.9142C63.3218 12.528 62.9438 13.0249 62.3914 13.4049C61.839 13.7849 61.2285 13.9603 60.5888 13.9603H48.2909V13.931ZM38.1443 1.21657C38.2606 0.924278 38.435 0.71968 38.6676 0.544308C38.9002 0.368935 39.1909 0.28125 39.4817 0.28125H42.6506L40.5573 5.51318L40.5865 5.54241L45.7615 0.631993C46.0231 0.398164 46.2848 0.28125 46.6046 0.28125H51.7215L43.4356 8.17295C43.4647 8.23144 43.6392 8.46525 43.9589 8.90372C44.0753 9.07904 44.2497 9.31292 44.4532 9.60522C44.6567 9.86823 44.8893 10.219 45.18 10.6282C45.4708 11.0374 45.7905 11.505 46.1976 12.0604C46.5755 12.6157 47.0407 13.2295 47.5349 13.9603H42.8542L39.22 8.81603L37.5628 12.9665C37.4465 13.2588 37.2721 13.4926 37.0104 13.668C36.7488 13.8433 36.4871 13.931 36.1673 13.931H32.9983L38.1443 1.21657ZM29.9165 5.51318C30.091 5.51318 30.2364 5.42549 30.2945 5.25012L30.7015 4.22712H24.7415C24.5671 4.22712 24.4217 4.3148 24.3636 4.49018L23.9565 5.51318H29.9165ZM16.3975 13.931L21.1073 2.29803C21.369 1.68422 21.747 1.18734 22.2703 0.836597C22.7936 0.48585 23.4042 0.28125 24.0728 0.28125H36.458L31.7773 11.8558C31.5156 12.4696 31.1376 12.9665 30.5852 13.3465C30.0329 13.7264 29.4223 13.9018 28.7827 13.9018H26.8057L28.899 8.69912H22.6482L20.9038 12.9665C20.7876 13.2588 20.6131 13.4634 20.3515 13.6387C20.0898 13.8141 19.8282 13.9018 19.5083 13.9018H16.3975V13.931Z" fill="white" />
<path d="M3.60508 5.01441L4.6808 2.32537C4.94246 1.71157 5.32041 1.21468 5.8728 0.86394C6.42519 0.483965 7.03575 0.308594 7.67534 0.308594H9.65234L8.14049 4.04986L6.22168 8.84336C6.16353 8.96026 6.10538 9.07717 6.04724 9.19407L4.97153 11.8831C4.70987 12.4969 4.33192 12.9938 3.77952 13.3738C3.22713 13.7538 2.61659 13.9291 1.97698 13.9291H0L1.51181 10.1879L3.43064 5.39438C3.48879 5.24824 3.54694 5.13132 3.60508 5.01441Z" fill="white" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.0601 0.046875C17.647 6.3018 12.4138 2.96974 8.31445 4.48963C9.50648 0.982194 11.6579 0.339161 14.071 0.309933C15.8735 0.280704 18.4029 0.485305 20.0601 0.046875Z" fill="white" />
<path d="M83.7313 0.337822L79.0798 11.8831C78.8181 12.4969 78.4399 12.9938 77.8877 13.3738C77.3354 13.7537 76.725 13.9291 76.085 13.9291H74.1084L78.0041 4.25446H77.4224C77.1607 4.25446 76.899 4.31292 76.6379 4.42984C76.3762 4.54675 76.1727 4.72212 75.998 4.92672L68.6422 13.9291H63.6709L73.6719 1.5362C73.9631 1.15622 74.3406 0.863936 74.7771 0.630109C75.2128 0.425508 75.678 0.308594 76.1727 0.308594H83.7313V0.337822Z" fill="white" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.9612 4.57812C14.1005 9.37161 10.1175 6.71181 6.97754 7.88093C8.60566 3.08746 12.3271 5.54267 15.9612 4.57812Z" fill="white" />
</g>
<path d="M87.531 2.59082C88.0887 1.22398 89.3809 0.335938 90.8122 0.335938H137.01L132.516 11.6376C131.966 13.0212 130.665 13.924 129.222 13.924H82.9062L87.531 2.59082Z" fill="white" />
<path d="M96.3045 4.77025H93.4138L93.113 6.55436H95.9317L95.683 7.97304H92.8643L92.3772 10.8749H90.9473L92.2216 3.35156H96.5532L96.3045 4.77025Z" fill="#ADAAA4" />
<path d="M97.5957 3.35156H99.0256L97.7512 10.8749H96.3213L97.5957 3.35156Z" fill="#ADAAA4" />
<path d="M105.166 3.35156L104.927 4.77025H102.969L101.933 10.8749H100.503L101.539 4.77025H99.5908L99.8293 3.35156H105.166Z" fill="#ADAAA4" />
<path d="M104.689 10.8749L105.964 3.35156H107.042L109.372 8.0483L110.16 3.35156H111.59L110.316 10.8749H109.238L106.917 6.17819L106.119 10.8749H104.689Z" fill="#ADAAA4" />
<path d="M117.133 4.77025H114.128L113.847 6.38239H116.604L116.355 7.76887H113.62L113.329 9.45619H116.387L116.148 10.8749H111.661L112.936 3.35156H117.371L117.133 4.77025Z" fill="#ADAAA4" />
<path d="M119.726 11.0235C118.994 11.0235 118.393 10.8587 117.923 10.5291C117.46 10.1923 117.163 9.73737 117.032 9.16415L118.327 8.4763C118.507 9.2215 119.011 9.59403 119.84 9.59403C120.22 9.59403 120.517 9.52239 120.731 9.37912C120.952 9.23578 121.084 9.0459 121.125 8.80946C121.18 8.53721 121.104 8.32586 120.897 8.17534C120.696 8.02489 120.344 7.86371 119.84 7.69173C119.163 7.4553 118.652 7.15796 118.307 6.79968C117.968 6.43426 117.854 5.92195 117.965 5.26276C118.082 4.58208 118.39 4.06978 118.887 3.72585C119.391 3.37476 119.964 3.19922 120.607 3.19922C121.201 3.19922 121.708 3.34611 122.13 3.63987C122.551 3.93364 122.855 4.34563 123.042 4.87585L121.788 5.5637C121.532 4.94034 121.101 4.62865 120.493 4.62865C120.202 4.62865 119.961 4.69314 119.767 4.82211C119.581 4.95108 119.463 5.12663 119.415 5.34874C119.36 5.61385 119.432 5.82522 119.633 5.98285C119.833 6.13332 120.172 6.29812 120.648 6.47724C120.772 6.5274 120.876 6.56681 120.959 6.59547C121.042 6.62413 121.146 6.66712 121.27 6.72444C121.395 6.7746 121.495 6.82475 121.571 6.87491C121.654 6.9179 121.747 6.97522 121.85 7.04687C121.954 7.11134 122.04 7.17942 122.109 7.25105C122.178 7.31558 122.248 7.39439 122.316 7.48749C122.392 7.57348 122.448 7.66665 122.482 7.76699C122.524 7.86727 122.558 7.97834 122.586 8.10015C122.613 8.21478 122.627 8.34376 122.627 8.48703C122.627 8.63037 122.613 8.78082 122.586 8.93844C122.468 9.61194 122.151 10.1279 121.632 10.4861C121.121 10.8444 120.486 11.0235 119.726 11.0235Z" fill="#ADAAA4" />
<path d="M125.797 11.0235C125.064 11.0235 124.463 10.8587 123.994 10.5291C123.531 10.1923 123.233 9.73737 123.103 9.16415L124.397 8.4763C124.577 9.2215 125.082 9.59403 125.91 9.59403C126.291 9.59403 126.587 9.52239 126.802 9.37912C127.023 9.23578 127.154 9.0459 127.196 8.80946C127.25 8.53721 127.174 8.32586 126.967 8.17534C126.767 8.02489 126.415 7.86371 125.91 7.69173C125.233 7.4553 124.722 7.15796 124.377 6.79968C124.038 6.43426 123.925 5.92195 124.035 5.26276C124.152 4.58208 124.46 4.06978 124.957 3.72585C125.462 3.37476 126.035 3.19922 126.678 3.19922C127.272 3.19922 127.779 3.34611 128.201 3.63987C128.622 3.93364 128.926 4.34563 129.113 4.87585L127.859 5.5637C127.603 4.94034 127.171 4.62865 126.563 4.62865C126.273 4.62865 126.032 4.69314 125.838 4.82211C125.651 4.95108 125.534 5.12663 125.485 5.34874C125.431 5.61385 125.503 5.82522 125.703 5.98285C125.903 6.13332 126.242 6.29812 126.719 6.47724C126.843 6.5274 126.947 6.56681 127.03 6.59547C127.113 6.62413 127.216 6.66712 127.34 6.72444C127.465 6.7746 127.565 6.82475 127.641 6.87491C127.724 6.9179 127.817 6.97522 127.921 7.04687C128.025 7.11134 128.111 7.17942 128.18 7.25105C128.249 7.31558 128.318 7.39439 128.387 7.48749C128.463 7.57348 128.518 7.66665 128.553 7.76699C128.594 7.86727 128.629 7.97834 128.656 8.10015C128.684 8.21478 128.698 8.34376 128.698 8.48703C128.698 8.63037 128.684 8.78082 128.656 8.93844C128.539 9.61194 128.221 10.1279 127.703 10.4861C127.192 10.8444 126.556 11.0235 125.797 11.0235Z" fill="#ADAAA4" />
</g>
<defs>
<clipPath id="clip0_2190_3090">
<rect width="137.03" height="14" fill="white" />
</clipPath>
</defs>
</svg>
<?php
else :
?>
<svg width="127" height="14" viewBox="0 0 127 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4006_20975)">
<mask id="mask0_4006_20975" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="88" height="14">
<path d="M87.4168 0H0V13.9745H87.4168V0Z" fill="white" />
</mask>
<g mask="url(#mask0_4006_20975)">
<path d="M50.4164 13.9735C50.4164 13.9735 50.4771 13.797 50.6289 13.4733C50.7806 13.1203 50.9627 12.679 51.1752 12.12C51.4181 11.5611 51.6609 10.9432 51.9644 10.2372C52.268 9.53106 52.5715 8.79555 52.875 8.06005C53.1785 7.32461 53.4821 6.5891 53.7856 5.883C54.0891 5.17692 54.332 4.5591 54.5747 4.00012C54.8176 3.44115 54.9997 2.99985 55.1515 2.64681C55.3033 2.29377 55.3639 2.14667 55.3639 2.14667C55.6371 1.55827 56.0621 1.11698 56.6084 0.763936C57.1548 0.410894 57.7618 0.263795 58.3993 0.263795H71.3603L70.5405 2.17609C70.2674 2.79391 69.8726 3.29404 69.2963 3.64708C68.7192 4.02954 68.0817 4.20606 67.4138 4.20606H59.3402C58.976 4.20606 58.7028 4.38258 58.551 4.7062L58.2171 5.50055H65.107L64.1358 7.79531C64.0147 8.0895 63.8325 8.32485 63.5594 8.50136C63.2863 8.67788 63.0129 8.76617 62.679 8.76617H57.3976C57.0334 8.76617 56.7602 8.94268 56.6084 9.26632L56.2746 10.0607H67.171L66.3821 11.9435C66.109 12.5613 65.7143 13.0615 65.1379 13.4439C64.5609 13.8264 63.9233 14.0029 63.2554 14.0029H50.4164V13.9735ZM39.8232 1.17581C39.9446 0.881611 40.1268 0.675673 40.3695 0.499154C40.6124 0.322635 40.9159 0.234375 41.2194 0.234375H44.5279L42.3425 5.50055L42.3729 5.52996L47.7757 0.587414C48.0489 0.352054 48.322 0.234375 48.6559 0.234375H53.998L45.3474 8.17779C45.3778 8.23663 45.5599 8.47198 45.8938 8.91323C46.0152 9.08974 46.1973 9.32516 46.4098 9.61935C46.6223 9.88408 46.8651 10.2372 47.1686 10.649C47.4721 11.0609 47.8061 11.5316 48.231 12.0906C48.6256 12.6496 49.1112 13.2674 49.6272 14.0029H44.7404L40.9463 8.825L39.2161 13.0026C39.0947 13.2968 38.9126 13.5322 38.6394 13.7087C38.3663 13.8852 38.0931 13.9735 37.7592 13.9735H34.4507L39.8232 1.17581ZM31.2333 5.50055C31.4154 5.50055 31.5672 5.41228 31.6279 5.23576L32.0529 4.20606H25.8305C25.6484 4.20606 25.4966 4.29433 25.4359 4.47085L25.0109 5.50055H31.2333ZM17.1191 13.9735L22.0364 2.26435C22.3095 1.64653 22.7041 1.14639 23.2504 0.793355C23.7968 0.440314 24.4342 0.234375 25.1323 0.234375H38.0627L33.1759 11.8847C32.9027 12.5025 32.5081 13.0026 31.9314 13.3851C31.3547 13.7676 30.7173 13.9441 30.0495 13.9441H27.9855L30.1709 8.70733H23.645L21.8238 13.0026C21.7024 13.2968 21.5203 13.5028 21.2471 13.6793C20.974 13.8558 20.7008 13.9441 20.3669 13.9441H17.1191V13.9735Z" fill="#202020" />
<path d="M3.76377 5.00224L4.88684 2.2956C5.16002 1.67778 5.5546 1.17764 6.13131 0.824605C6.70802 0.442144 7.34546 0.265625 8.01317 0.265625H10.0772L8.49882 4.03137L6.49556 8.85627C6.43483 8.97395 6.37416 9.09162 6.31343 9.2093L5.19037 11.9159C4.91719 12.5337 4.5226 13.0339 3.94589 13.4164C3.36919 13.7988 2.73177 13.9753 2.064 13.9753H0L1.57835 10.2095L3.58165 5.3847C3.64236 5.23759 3.70307 5.11991 3.76377 5.00224Z" fill="#202020" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.9433 0C18.424 6.29586 12.9604 2.94199 8.68066 4.47183C9.92515 0.941437 12.1713 0.294199 14.6906 0.264779C16.5724 0.23536 19.2132 0.441299 20.9433 0Z" fill="#202020" />
<path d="M87.4169 0.295045L82.5604 11.9159C82.2873 12.5338 81.8926 13.0339 81.3162 13.4163C80.7391 13.7988 80.1022 13.9753 79.4344 13.9753H77.3703L81.4372 4.23732H80.8306C80.5575 4.23732 80.2838 4.29615 80.0108 4.41384C79.7377 4.53152 79.5252 4.70804 79.3429 4.91398L71.6637 13.9753H66.4736L76.915 1.50126C77.2183 1.1188 77.6131 0.824601 78.0684 0.589244C78.5237 0.383304 79.0093 0.265625 79.5252 0.265625H87.4169V0.295045Z" fill="#202020" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.6633 4.55859C14.7207 9.38344 10.5623 6.70622 7.28418 7.88304C8.98398 3.05818 12.8692 5.52945 16.6633 4.55859Z" fill="#202020" />
</g>
<mask id="mask1_4006_20975" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="88" height="14">
<path d="M87.4168 0H0V13.9745H87.4168V0Z" fill="white" />
</mask>
<g mask="url(#mask1_4006_20975)">
<path d="M50.4164 13.9735C50.4164 13.9735 50.4771 13.797 50.6289 13.4733C50.7806 13.1203 50.9627 12.679 51.1752 12.12C51.4181 11.5611 51.6609 10.9432 51.9644 10.2372C52.268 9.53106 52.5715 8.79555 52.875 8.06005C53.1785 7.32461 53.4821 6.5891 53.7856 5.883C54.0891 5.17692 54.332 4.5591 54.5747 4.00012C54.8176 3.44115 54.9997 2.99985 55.1515 2.64681C55.3033 2.29377 55.3639 2.14667 55.3639 2.14667C55.6371 1.55827 56.0621 1.11698 56.6084 0.763936C57.1548 0.410894 57.7618 0.263795 58.3993 0.263795H71.3603L70.5405 2.17609C70.2674 2.79391 69.8726 3.29404 69.2963 3.64708C68.7192 4.02954 68.0817 4.20606 67.4138 4.20606H59.3402C58.976 4.20606 58.7028 4.38258 58.551 4.7062L58.2171 5.50055H65.107L64.1358 7.79531C64.0147 8.0895 63.8325 8.32485 63.5594 8.50136C63.2863 8.67788 63.0129 8.76617 62.679 8.76617H57.3976C57.0334 8.76617 56.7602 8.94268 56.6084 9.26632L56.2746 10.0607H67.171L66.3821 11.9435C66.109 12.5613 65.7143 13.0615 65.1379 13.4439C64.5609 13.8264 63.9233 14.0029 63.2554 14.0029H50.4164V13.9735ZM39.8232 1.17581C39.9446 0.881611 40.1268 0.675673 40.3695 0.499154C40.6124 0.322635 40.9159 0.234375 41.2194 0.234375H44.5279L42.3425 5.50055L42.3729 5.52996L47.7757 0.587414C48.0489 0.352054 48.322 0.234375 48.6559 0.234375H53.998L45.3474 8.17779C45.3778 8.23663 45.5599 8.47198 45.8938 8.91323C46.0152 9.08974 46.1973 9.32516 46.4098 9.61935C46.6223 9.88408 46.8651 10.2372 47.1686 10.649C47.4721 11.0609 47.8061 11.5316 48.231 12.0906C48.6256 12.6496 49.1112 13.2674 49.6272 14.0029H44.7404L40.9463 8.825L39.2161 13.0026C39.0947 13.2968 38.9126 13.5322 38.6394 13.7087C38.3663 13.8852 38.0931 13.9735 37.7592 13.9735H34.4507L39.8232 1.17581ZM31.2333 5.50055C31.4154 5.50055 31.5672 5.41228 31.6279 5.23576L32.0529 4.20606H25.8305C25.6484 4.20606 25.4966 4.29433 25.4359 4.47085L25.0109 5.50055H31.2333ZM17.1191 13.9735L22.0364 2.26435C22.3095 1.64653 22.7041 1.14639 23.2504 0.793355C23.7968 0.440314 24.4342 0.234375 25.1323 0.234375H38.0627L33.1759 11.8847C32.9027 12.5025 32.5081 13.0026 31.9314 13.3851C31.3547 13.7676 30.7173 13.9441 30.0495 13.9441H27.9855L30.1709 8.70733H23.645L21.8238 13.0026C21.7024 13.2968 21.5203 13.5028 21.2471 13.6793C20.974 13.8558 20.7008 13.9441 20.3669 13.9441H17.1191V13.9735Z" fill="white" />
<path d="M3.76377 5.00224L4.88684 2.2956C5.16002 1.67778 5.5546 1.17764 6.13131 0.824605C6.70802 0.442144 7.34546 0.265625 8.01317 0.265625H10.0772L8.49882 4.03137L6.49556 8.85627C6.43483 8.97395 6.37416 9.09162 6.31343 9.2093L5.19037 11.9159C4.91719 12.5337 4.5226 13.0339 3.94589 13.4164C3.36919 13.7988 2.73177 13.9753 2.064 13.9753H0L1.57835 10.2095L3.58165 5.3847C3.64236 5.23759 3.70307 5.11991 3.76377 5.00224Z" fill="white" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.9433 0C18.424 6.29586 12.9604 2.94199 8.68066 4.47183C9.92515 0.941437 12.1713 0.294199 14.6906 0.264779C16.5724 0.23536 19.2132 0.441299 20.9433 0Z" fill="white" />
<path d="M87.4169 0.295045L82.5604 11.9159C82.2873 12.5338 81.8926 13.0339 81.3162 13.4163C80.7391 13.7988 80.1022 13.9753 79.4344 13.9753H77.3703L81.4372 4.23732H80.8306C80.5575 4.23732 80.2838 4.29615 80.0108 4.41384C79.7377 4.53152 79.5252 4.70804 79.3429 4.91398L71.6637 13.9753H66.4736L76.915 1.50126C77.2183 1.1188 77.6131 0.824601 78.0684 0.589244C78.5237 0.383304 79.0093 0.265625 79.5252 0.265625H87.4169V0.295045Z" fill="white" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.6633 4.55859C14.7207 9.38344 10.5623 6.70622 7.28418 7.88304C8.98398 3.05818 12.8692 5.52945 16.6633 4.55859Z" fill="white" />
</g>
<path d="M91.6425 2.55319C92.2265 1.17364 93.5792 0.277344 95.0776 0.277344H126.127L121.454 11.6066C120.878 13.0031 119.517 13.9143 118.006 13.9143H86.834L91.6425 2.55319Z" fill="white" />
<path d="M102.747 6.79809L102.65 7.3806C102.463 8.4808 101.974 9.36167 101.183 10.0232C100.392 10.6776 99.4394 11.0048 98.325 11.0048C97.1596 11.0048 96.2572 10.6129 95.6177 9.82909C94.9777 9.03809 94.7544 8.08167 94.9486 6.95991C95.1359 5.85971 95.6499 4.95006 96.4912 4.23097C97.3324 3.51189 98.3105 3.15234 99.4249 3.15234C100.173 3.15234 100.813 3.31414 101.345 3.63773C101.884 3.95413 102.294 4.40356 102.575 4.98602L101.216 5.69792C100.834 4.96445 100.191 4.59771 99.2849 4.59771C98.5584 4.59771 97.9296 4.82782 97.3974 5.28804C96.8721 5.74106 96.5486 6.33432 96.4262 7.06775C96.2969 7.80123 96.4155 8.39806 96.7825 8.8583C97.1565 9.31853 97.7171 9.54865 98.465 9.54865C99.7017 9.54865 100.529 9.07044 100.946 8.11403H98.735L98.9613 6.79809H102.747Z" fill="#2B2C35" />
<path d="M110.181 3.30078L106.966 7.50743L106.373 10.8512H104.895L105.489 7.48587L103.752 3.30078H105.338L106.395 6.08365L108.412 3.30078H110.181Z" fill="#2B2C35" />
<path d="M118.288 3.30078L116.961 10.8512H115.483L116.347 5.94343L113.564 9.45974H113.391L111.935 5.90028L111.061 10.8512H109.572L110.899 3.30078H112.42L113.844 6.9142L116.649 3.30078H118.288Z" fill="#2B2C35" />
</g>
<defs>
<clipPath id="clip0_4006_20975">
<rect width="126.126" height="14" fill="white" />
</clipPath>
</defs>
</svg>
<?php
endif;
?>
<div class="mt-auto text-[24px] font-[600] leading-[125%] text-[#f8f8f8]">
Другие профессионалы нашего клуба
</div>
<a class="!no-underline hover:[&>svg]:translate-x-[6px] mt-[40px] bg-[#f8f8f8] max-w-[179px] rounded-[90px] px-[24px] h-[59px] flex items-center justify-center gap-[8px] font-[600] text-[18px] leading-[195%] text-[#222] " href="<?php echo get_post_type_archive_link('trainer'); ?>">
Все тренеры
<svg class="transition" width="12" height="13" viewBox="0 0 12 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.4876 2.17896C6.73011 1.94034 7.12396 1.94035 7.36649 2.17896L11.3181 6.06809C11.5606 6.30671 11.5606 6.69329 11.3181 6.93191L7.36649 10.821C7.12396 11.0596 6.73011 11.0597 6.4876 10.821C6.24512 10.5824 6.24511 10.1949 6.4876 9.95626L9.38032 7.11093H1.1209C0.777923 7.11093 0.5 6.83747 0.5 6.5C0.5 6.16253 0.777923 5.88907 1.1209 5.88907H9.38032L6.4876 3.04374C6.24511 2.80512 6.24512 2.41758 6.4876 2.17896Z" fill="#222222" />
</svg>
</a>
</div>
<div>
<button class="group custom-prev-<?php echo esc_attr($block_id); ?> cursor-pointer">
<?php display_icon('slider-prev') ?>
</button>
<button class="group custom-next-<?php echo esc_attr($block_id); ?> cursor-pointer">
<?php display_icon('slider-next') ?>
</button>
</div>
</div>
</div>
<?php endif; ?>
</div>
</section>
<script>
document.addEventListener('DOMContentLoaded', function () {
const swiperContainer = document.querySelector('#<?php echo esc_attr($block_id); ?>-swiper');
if (swiperContainer && typeof Swiper !== 'undefined') {
new Swiper('#<?php echo esc_attr($block_id); ?>-swiper', {
slidesPerView: 'auto',
spaceBetween: 24,
grabCursor: true,
freeMode: true,
navigation: {
nextEl: '.custom-next-<?php echo esc_attr($block_id); ?>',
prevEl: '.custom-prev-<?php echo esc_attr($block_id); ?>',
}
});
}
});
</script>
@@ -0,0 +1,168 @@
<?php
/**
* Блок с тренерами
*/
// Получение полей ACF
$block_id = 'training-block-' . $block['id'];
$class_name = 'training-block';
if (!empty($block['className'])) {
$class_name .= ' ' . $block['className'];
}
if (!empty($block['align'])) {
$class_name .= ' align' . $block['align'];
}
if (!function_exists('get_trainings_for_current_language')) {
function get_trainings_for_current_language()
{
$current_lang = pll_current_language();
$args = array(
'post_type' => 'training',
'posts_per_page' => -1,
'lang' => $current_lang,
'post_status' => 'publish',
'sort' => 'menu_order',
'order' => 'ASC',
);
return get_posts($args);
}
}
$trainings = get_trainings_for_current_language();
// Получаем все поля short_info для каждого тренера
$trainings_data = array();
if ($trainings) {
foreach ($trainings as $training) {
$training_info = array(
'post' => $training,
'name' => '',
'exp' => '',
'short_desc' => ''
);
if (have_rows('short_info', $training->ID)) {
while (have_rows('short_info', $training->ID)) {
the_row();
$training_info['name'] = get_sub_field('name');
$training_info['exp'] = get_sub_field('exp');
$training_info['short_desc'] = get_sub_field('short_desc');
}
}
$trainings_data[] = $training_info;
}
}
$heading = get_field('heading', $block['id']);
$room = get_current_room();
if ($room === 'fitness') {
$section_classes = 'radial-gradient';
$style_attr = '';
} else {
$section_classes = 'bg-cover bg-center bg-no-repeat';
$bg_image = get_template_directory_uri() . '/assets/images/hero-bg.png';
$style_attr = 'style="background-image: url(' . esc_url($bg_image) . ')"';
}
?>
<section id="<?php echo esc_attr($block_id); ?>"
class="py-[96px] <?php echo esc_attr($section_classes); ?>" <?php echo $style_attr; ?>>
<div class="container mx-auto">
<?php if ($trainings_data): ?>
<?php if (is_front_page()): ?>
<div class="flex gap-[16px] justify-between">
<h2 class="dark:text-[#F8F8F8] text-[40px] leading-[120%] font-[500] max-w-[760px] w-full">
<?php
echo $heading;
?>
</h2>
<a class="!no-underline dark:text-[#F8F8F8] dark:max-w-[860px] dark:border-[#574348] flex mt-auto gap-[8px] border border-[#E0E0E0] hover:[&>svg]:translate-x-[6px] rounded-[90px] px-[32px] h-[59px] flex items-center justify-center text-[18px] font-[600] leading-[195%] text-[#222]"
href="<?php echo get_post_type_archive_link('training'); ?>">
Все тренировки
<svg class="transition fill-[#222222] dark:fill-[#F8F8F8]" width="12" height="13" viewBox="0 0 12 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.4876 2.17896C6.73011 1.94034 7.12396 1.94035 7.36649 2.17896L11.3181 6.06809C11.5606 6.30671 11.5606 6.69329 11.3181 6.93191L7.36649 10.821C7.12396 11.0596 6.73011 11.0597 6.4876 10.821C6.24512 10.5824 6.24511 10.1949 6.4876 9.95626L9.38032 7.11093H1.1209C0.777923 7.11093 0.5 6.83747 0.5 6.5C0.5 6.16253 0.777923 5.88907 1.1209 5.88907H9.38032L6.4876 3.04374C6.24511 2.80512 6.24512 2.41758 6.4876 2.17896Z"
/>
</svg>
</a>
</div>
<?php endif; ?>
<div class="mt-[40px] flex flex-col">
<div class="swiper rounded-[20px] rounded-b-[0]" id="<?php echo esc_attr($block_id); ?>-swiper">
<div class="swiper-wrapper">
<?php foreach ($trainings_data as $training_data): ?>
<?php $training = $training_data['post']; ?>
<div class="h-[540px] max-w-[312px] swiper-slide">
<div class="flex flex-col bg-[#f8f8f8] relative h-[540px] rounded-[20px] overflow-hidden shadow-[0_2px_32px_0_rgba(16,_15,_15,_0.03)]">
<?php $photo_images = get_field('photo', $training->ID); ?>
<?php if ($photo_images && !empty($photo_images[0])): ?>
<div class="overflow-hidden min-h-[260px]">
<img src="<?php echo esc_url($photo_images[0]['url']); ?>"
alt="<?php echo esc_attr($photo_images[0]['alt']); ?>"
loading="lazy"
class="w-full h-full object-cover"/>
</div>
<?php endif; ?>
<div class="flex flex-col gap-[24px] h-full p-[24px]">
<?php $name = $training_data['name']; ?>
<?php if ($name): ?>
<div class="text-[24px] leading-[125%] font-[600]">
<?php echo esc_html($name); ?>
</div>
<?php endif; ?>
<?php $short_desc = $training_data['short_desc']; ?>
<?php if ($short_desc): ?>
<div class="text-[16px] leading-[145%] font-[500] text-[#222]">
<?php echo wp_kses_post($short_desc); ?>
</div>
<?php endif; ?>
<a href="<?php echo get_permalink($training->ID); ?>" class="!no-underline mt-auto h-[59px] flex grey-gradient-hover w-full rounded-[90px] px-[12px] text-[18px] font-[600] leading-[195%] text-[#f8f8f8] bg-[0_2px_32px_0_rgba(16,_15,_15,_0.03)] items-center justify-center">
Перейти
</a>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<div class="swiper-scrollbar [&_.swiper-scrollbar-drag]:dark:!bg-[#989597] !static !mx-auto !cursor-grab container mt-[44px] !w-full !p-0" id="swiper-scrollbar-<?php echo esc_attr($block_id); ?>"></div>
</div>
<?php endif; ?>
</div>
</section>
<script>
document.addEventListener('DOMContentLoaded', function () {
const swiperContainer = document.querySelector('#<?php echo esc_attr($block_id); ?>-swiper');
if (swiperContainer && typeof Swiper !== 'undefined') {
new Swiper('#<?php echo esc_attr($block_id); ?>-swiper', {
slidesPerView: 'auto',
spaceBetween: 24,
grabCursor: true,
freeMode: true,
navigation: {
nextEl: '.custom-next-<?php echo esc_attr($block_id); ?>',
prevEl: '.custom-prev-<?php echo esc_attr($block_id); ?>',
},
scrollbar: {
el: `#swiper-scrollbar-<?php echo esc_attr($block_id); ?>`,
draggable: true,
},
});
}
});
</script>
+197 -20
View File
@@ -1,27 +1,204 @@
<?php <?php
//test
?> ?>
<div class="bg-black text-white mt-[24px]"> <div class="text-white relative min-h-[330px] bg-[linear-gradient(180deg,_#f9f9f9_69.59%,_#ededed_100%)] dark:bg-none dark:bg-[#141419]">
<div class="mx-auto container"> <?php if (get_current_room() === 'gym'): ?>
<div>
Время работы:
<?php
$work_time = get_field('work_time', 'option'); <svg class="absolute right-0 top-0 z-[0] pointer-events-none" width="621" height="330" viewBox="0 0 621 330"
echo $work_time[get_current_room()]; fill="none" xmlns="http://www.w3.org/2000/svg">
?> <g opacity="0.04" clip-path="url(#clip0_4018_16537)">
</div> <path fill-rule="evenodd" clip-rule="evenodd" d="M621 -0.00390625C506.463 285.064 258.06 133.205 63.4795 202.474C120.06 42.623 222.18 13.317 336.721 11.9849C422.28 10.6528 542.342 19.9775 621 -0.00390625Z" fill="#F8F8F8" />
<div class="flex w-full justify-between"> <path fill-rule="evenodd" clip-rule="evenodd" d="M426.423 206.469C338.102 424.931 149.041 303.71 0 356.995C77.2817 138.532 253.922 250.428 426.423 206.469Z" fill="#F8F8F8" />
<div>© 2025 fakelgym.ru. Все права защищены.</div> </g>
<div><a href="#">Политика Конфиденциальности</a></div> <defs>
<div> <clipPath id="clip0_4018_16537">
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="13" viewBox="0 0 22 13" fill="none"> <rect width="621" height="357" fill="white" />
<path </clipPath>
d="M20.504 12.3814H18.222C17.359 12.3814 17.099 11.6824 15.552 10.1344C14.2 8.83144 13.629 8.66943 13.287 8.66943C12.814 8.66943 12.685 8.79943 12.685 9.45043V11.5024C12.685 12.0574 12.505 12.3824 11.055 12.3824C9.64829 12.2879 8.28416 11.8606 7.07497 11.1356C5.86578 10.4106 4.84612 9.4087 4.1 8.21243C2.32901 6.00706 1.09641 3.41928 0.5 0.654435C0.5 0.312435 0.63 0.00243485 1.282 0.00243485H3.562C4.148 0.00243485 4.359 0.263435 4.589 0.866435C5.696 4.12443 7.585 6.95844 8.352 6.95844C8.646 6.95844 8.774 6.82843 8.774 6.09544V2.73944C8.677 1.20844 7.864 1.07944 7.864 0.525435C7.87428 0.379276 7.94114 0.242883 8.05037 0.145228C8.15961 0.0475726 8.30261 -0.00365196 8.449 0.00243485H12.033C12.523 0.00243485 12.685 0.246435 12.685 0.832435V5.36244C12.685 5.85144 12.895 6.01343 13.043 6.01343C13.337 6.01343 13.563 5.85143 14.102 5.31343C15.2569 3.90409 16.2008 2.33435 16.904 0.653435C16.9756 0.451399 17.1116 0.278427 17.2909 0.161024C17.4703 0.0436209 17.6832 -0.0117363 17.897 0.00343477H20.178C20.862 0.00343477 21.007 0.345435 20.862 0.833435C20.0321 2.69173 19.0056 4.45579 17.8 6.09544C17.554 6.47044 17.456 6.66543 17.8 7.10543C18.026 7.44743 18.826 8.11543 19.363 8.75043C20.145 9.53043 20.794 10.4324 21.285 11.4204C21.481 12.0564 21.155 12.3814 20.504 12.3814Z" </defs>
fill="white"/> </svg>
</svg> <?php else: ?>
<svg class="absolute right-0 top-0 z-[0] pointer-events-none" width="621" height="330" viewBox="0 0 621 330"
fill="none" xmlns="http://www.w3.org/2000/svg">
<g opacity="0.02" clip-path="url(#clip0_2190_3228)">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M621 -13.0039C506.463 272.064 258.06 120.205 63.4795 189.474C120.06 29.623 222.18 0.317019 336.721 -1.01508C422.28 -2.34716 542.342 6.97748 621 -13.0039Z"
fill="#222222"/>
<path fill-rule="evenodd" clip-rule="evenodd"
d="M426.423 193.469C338.102 411.931 149.041 290.71 0 343.995C77.2817 125.532 253.922 237.428 426.423 193.469Z"
fill="#222222"/>
</g>
<defs>
<clipPath id="clip0_2190_3228">
<rect width="621" height="357" fill="white" transform="translate(0 -13)"/>
</clipPath>
</defs>
</svg>
<?php endif; ?>
<div class="mx-auto container">
<div class="flex pt-[48px] pb-[24px] justify-between">
<div>
<a href="<?php echo esc_url(home_url('/')); ?>">
<?php display_icon(get_current_room() === 'gym' ? 'dark_logo' : 'light_logo'); ?>
</a>
<div class="mt-[12px]"> <?php get_template_part('template-parts/la-components/language-switcher'); ?></div>
<button data-modal="time"
class="mt-[24px] text-[#222] dark:text-[#f8f8f8] dark:border-[rgba(248,_248,_248,_0.2)] font-[600] flex gap-[8px] h-[44px] px-[20px] items-center cursor-pointer border border-[#e0e0e0] rounded-[90px]"
>
<span class="dark:bg-[#f8f8f8] w-[8px] h-[8px] rounded-full bg-[#e21e24]"></span>
Расписание
</button>
<div class="mt-[24px] text-[#222] dark:text-[#f8f8f8] text-[14px] leading-[125%] font-[600]">
<?php
$work_time = get_field('work_time', 'option');
echo $work_time[get_current_room()];
?>
</div>
</div>
<div>
<div class="flex w-full max-w-[424px] flex-wrap gap-y-[16px] gap-x-[40px]"> <?php
$menu_items = get_simple_menu_items();
foreach ($menu_items as $item):
?>
<a class="!no-underline text-[#222] dark:text-[#f8f8f8] dark:hover:text-[#c7c7c7] hover:text-[#555] hover:text-[#555] font-[600] leading-[125%] text-[16px]"
href="<?php echo esc_url($item['url']); ?>">
<?php echo esc_html($item['title']); ?>
</a>
<?php endforeach; ?></div>
</div>
<div class="flex flex-col items-end">
<button
class="font-[600] dark:text-[#222] text-[#f8f8f8] dark-gradient-hover dark:!bg-none dark:!bg-[#f8f8f8] flex gap-[8px] h-[44px] px-[20px] items-center cursor-pointer rounded-[90px]"
>
<svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path class="dark:fill-[#222222] fill-[#f8f8f8]" d="M8 0.5C9.06087 0.5 10.0783 0.921427 10.8284 1.67157C11.5786 2.42172 12 3.43913 12 4.5C12 5.56087 11.5786 6.57828 10.8284 7.32843C10.0783 8.07857 9.06087 8.5 8 8.5C6.93913 8.5 5.92172 8.07857 5.17157 7.32843C4.42143 6.57828 4 5.56087 4 4.5C4 3.43913 4.42143 2.42172 5.17157 1.67157C5.92172 0.921427 6.93913 0.5 8 0.5ZM8 10.5C12.42 10.5 16 12.29 16 14.5V16.5H0V14.5C0 12.29 3.58 10.5 8 10.5Z"
/>
</svg>
Личный кабинет
</button>
<div class="mt-[24px] flex items-center gap-[12px] text-[#222] dark:text-[#f8f8f8]">
<div class="leading-[145%] inline-flex text-[16px] font-[600]">
<p>г. Томск, </p>
<p>ул. Красноармейская, 120</p>
</div>
</div>
<div class="mt-[12px]">
<a class="font-[700] dark:hover:text-[#c7c7c7] hover:text-[#555] text-[24px] leading-[125%] !decoration-transparent text-[#222] dark:text-[#f8f8f8] transition-colors"
href="tel:+783822990019">
+7 (3822) 99-00-19
</a>
</div>
<div class="mt-[12px] flex gap-[4px]">
<a class="dark:hover:[&>img]:brightness-90 hover:[&>img]:brightness-150 transition" href="#">
<?php display_icon(get_current_room() === 'gym' ? 'tg_dark' : 'tg'); ?>
</a>
<a class="dark:hover:[&>img]:brightness-90 hover:[&>img]:brightness-150 transition" href="#">
<?php display_icon(get_current_room() === 'gym' ? 'whatsapp_dark' : 'whatsapp'); ?>
</a>
</div>
</div>
</div>
<div class="text-[#222] dark:text-[#f8f8f8] font-[500] text-[14px] leading-[125%] grid grid-cols-3 pt-[16px] pb-[16px] border-t border-[#e0e0e0]">
<div class="flex items-center">© 2025 fakelgym.ru. Все права защищены.</div>
<div class="flex items-center justify-center">
<a class="hover:!no-underline skip-ink" href="/policy" target="_blank">
Политика Конфиденциальности
</a>
</div>
<div class="flex items-center justify-end">
<a href="https://vk.ru/fakelgym" target="_blank">
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 18C0 8.05888 8.05888 0 18 0C27.9411 0 36 8.05888 36 18C36 27.9411 27.9411 36 18 36C8.05888 36 0 27.9411 0 18Z"
fill="white"/>
<g clip-path="url(#clip0_2190_3227)">
<path d="M27.1299 24.0993H24.9401C24.1119 24.0993 23.8624 23.4286 22.3779 21.9431C21.0805 20.6927 20.5325 20.5372 20.2043 20.5372C19.7504 20.5372 19.6266 20.662 19.6266 21.2867V23.2558C19.6266 23.7884 19.4539 24.1003 18.0624 24.1003C16.7125 24.0096 15.4035 23.5995 14.2431 22.9038C13.0827 22.2081 12.1042 21.2466 11.3882 20.0987C9.68876 17.9823 8.50592 15.499 7.93359 12.8458C7.93359 12.5176 8.05835 12.2201 8.68402 12.2201H10.872C11.4343 12.2201 11.6368 12.4706 11.8575 13.0493C12.9198 16.1757 14.7325 18.8953 15.4686 18.8953C15.7507 18.8953 15.8735 18.7705 15.8735 18.0671V14.8466C15.7804 13.3775 15.0003 13.2537 15.0003 12.722C15.0101 12.5818 15.0743 12.4509 15.1791 12.3572C15.2839 12.2635 15.4212 12.2143 15.5617 12.2201H19.0009C19.4712 12.2201 19.6266 12.4543 19.6266 13.0166V17.3637C19.6266 17.833 19.8281 17.9885 19.9702 17.9885C20.2523 17.9885 20.4692 17.833 20.9864 17.3167C22.0947 15.9643 23.0004 14.4579 23.6753 12.8449C23.744 12.651 23.8745 12.485 24.0466 12.3723C24.2187 12.2597 24.423 12.2066 24.6282 12.2211H26.8171C27.4735 12.2211 27.6126 12.5493 27.4735 13.0176C26.6771 14.8009 25.692 16.4937 24.5351 18.0671C24.299 18.427 24.205 18.6141 24.5351 19.0364C24.752 19.3646 25.5197 20.0056 26.035 20.6149C26.7854 21.3635 27.4082 22.229 27.8794 23.1771C28.0675 23.7875 27.7546 24.0993 27.1299 24.0993Z"
fill="#222222"/>
</g>
<defs>
<clipPath id="clip0_2190_3227">
<rect width="20" height="20" fill="white" transform="translate(8 8)"/>
</clipPath>
</defs>
</svg>
</a>
</div>
</div> </div>
</div> </div>
</div> </div>
<div class="container mx-auto">
<div class="min-h-[48px] flex items-center justify-center">
<a class="!no-underline flex items-center gap-[12px]" href="https://ledoffsky.agency/"
target="_blank">
<span class="text-[14px] leading-[125%] text-[#6c6b6b]">Разработка и продвижение</span>
<svg width="145" height="24" viewBox="0 0 145 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2190_3233)">
<mask id="mask0_2190_3233" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0"
width="145" height="24">
<path d="M144.603 0H0.5V23.8984H144.603V0Z" fill="white"/>
</mask>
<g mask="url(#mask0_2190_3233)">
<path d="M3.95039 5.97656H10.8478L7.39741 11.9504L10.8478 17.9241H3.95039L0.5 11.9504L3.95039 5.97656Z"
fill="black"/>
<path d="M7.39648 0H14.2972L21.1947 11.9509L14.2972 23.8984H7.39648L14.2972 11.9509L7.39648 0Z"
fill="black"/>
<path d="M17.7483 5.97266L21.1954 11.9498H14.2979L17.7483 5.97266Z" fill="black"/>
<path d="M14.2976 11.9498L10.8477 5.97266H17.748L14.2976 11.9498Z" fill="black"/>
<path d="M3.95039 5.97266L7.39741 11.9499H0.5L3.95039 5.97266Z" fill="black"/>
<path d="M14.2976 11.9492L17.7485 17.9229L10.8477 17.923L14.2976 11.9492Z" fill="black"/>
<path d="M7.39722 11.9492L10.8476 17.9229H3.9502L7.39722 11.9492Z" fill="black"/>
<path d="M14.2976 0L10.8477 5.97371H17.748L14.2976 0Z" fill="black"/>
<path d="M10.8473 5.97371L7.39648 0H14.2972L10.8473 5.97371Z" fill="black"/>
<path d="M17.7488 17.9229L21.1954 11.9492H14.2979L17.7488 17.9229Z" fill="black"/>
<path d="M7.39722 11.9504L10.8476 5.97656H3.9502L7.39722 11.9504Z" fill="black"/>
<path d="M3.95039 17.9229L7.39741 11.9492H0.5L3.95039 17.9229Z" fill="black"/>
<path d="M14.2976 23.8996L10.8477 17.9259L17.7485 17.9258L14.2976 23.8996Z" fill="black"/>
<path d="M10.8473 17.9258L7.39648 23.8995H14.2972L10.8473 17.9258Z" fill="black"/>
<path d="M138.663 17.9567H137.853V16.5917H138.528C139.308 16.5917 139.638 16.5317 139.998 15.4817L140.088 15.2867L137.163 7.26172H139.113L140.943 13.0517L142.773 7.26172H144.603L141.768 15.3167C141.003 17.4017 140.478 17.9567 138.663 17.9567Z"
fill="black"/>
<path d="M133.253 7.08203C135.023 7.08203 136.553 8.23703 136.868 10.0221H135.128C134.963 9.16703 134.228 8.56703 133.253 8.56703C132.128 8.56703 131.138 9.39203 131.138 11.2971C131.138 13.2171 132.158 14.0421 133.208 14.0421C134.093 14.0421 134.948 13.6521 135.188 12.5721H136.928C136.568 14.4621 134.903 15.5271 133.178 15.5271C130.838 15.5271 129.293 13.7121 129.293 11.3121C129.293 8.91203 130.838 7.08203 133.253 7.08203Z"
fill="black"/>
<path d="M122.8 7.26203V8.38703C123.265 7.54703 124.105 7.08203 125.245 7.08203C127.195 7.08203 127.99 8.34203 127.99 10.2621V15.3321H126.205V10.6971C126.205 9.60203 126.055 8.53703 124.675 8.53703C123.295 8.53703 122.8 9.58703 122.8 11.0421V15.3321H121.015V7.26203H122.8Z"
fill="black"/>
<path d="M119.545 11.8071H113.53C113.65 13.3071 114.7 14.0421 115.72 14.0421C116.665 14.0421 117.385 13.6821 117.7 12.9171H119.455C119.095 14.2071 117.865 15.5271 115.795 15.5271C113.2 15.5271 111.715 13.5621 111.715 11.2371C111.715 8.80703 113.38 7.08203 115.675 7.08203C118.15 7.08203 119.71 9.10703 119.545 11.8071ZM115.675 8.47703C114.835 8.47703 113.695 8.98703 113.53 10.5021H117.73C117.685 9.24203 116.725 8.47703 115.675 8.47703Z"
fill="black"/>
<path d="M108.47 8.34203V7.26203H110.255V14.5221C110.255 15.8271 109.925 16.7721 109.28 17.3721C108.635 17.9721 107.675 18.2421 106.415 18.2421C104.645 18.2421 103.25 17.5371 102.965 15.7671H104.735C104.9 16.5321 105.38 16.8321 106.46 16.8321C107.255 16.8321 107.765 16.6071 108.065 16.2471C108.365 15.9021 108.47 15.4071 108.47 14.8821V13.9371C107.99 14.7321 107.15 15.1971 106.07 15.1971C104.15 15.1971 102.56 13.6521 102.56 11.1321C102.56 8.61203 104.15 7.08203 106.07 7.08203C107.15 7.08203 107.99 7.54703 108.47 8.34203ZM108.545 11.1321C108.545 9.33203 107.615 8.50703 106.46 8.50703C105.26 8.50703 104.42 9.51203 104.42 11.1321C104.42 12.7971 105.26 13.7871 106.46 13.7871C107.615 13.7871 108.545 12.9471 108.545 11.1321Z"
fill="black"/>
<path d="M99.5697 12.1535V11.5385C97.0197 11.7785 95.9847 12.1535 95.9847 13.0685C95.9847 13.7735 96.5697 14.1935 97.4697 14.1935C98.7897 14.1935 99.5697 13.5335 99.5697 12.1535ZM97.0797 15.5285C95.3247 15.5285 94.0947 14.5835 94.0947 13.1135C94.0947 11.0885 96.5847 10.6085 99.5247 10.2935V10.1435C99.5247 8.76344 98.7447 8.34344 97.8447 8.34344C96.9447 8.34344 96.2697 8.82344 96.2247 9.79844H94.4697C94.5897 8.16344 95.9547 7.02344 97.9047 7.02344C99.8397 7.02344 101.355 7.90844 101.31 10.4885C101.31 10.8785 101.28 11.8385 101.28 12.5735C101.28 13.5935 101.355 14.6585 101.52 15.3335H99.8847C99.8247 14.9885 99.7797 14.7935 99.7347 14.2385C99.2097 15.1235 98.2797 15.5285 97.0797 15.5285Z"
fill="black"/>
<path d="M92.7861 15.333H90.7461V13.293H92.7861V15.333Z" fill="black"/>
<path d="M85.3721 17.9567H84.5621V16.5917H85.2371C86.0171 16.5917 86.3471 16.5317 86.7071 15.4817L86.7971 15.2867L83.8721 7.26172H85.8221L87.6521 13.0517L89.4821 7.26172H91.3121L88.4771 15.3167C87.7121 17.4017 87.1871 17.9567 85.3721 17.9567Z"
fill="black"/>
<path d="M76.7764 4.45703H78.5614V10.5021L81.5464 7.26203H83.6914L80.6014 10.5771L84.0364 15.3321H81.9514L79.4164 11.8371L78.5614 12.7521V15.3321H76.7764V4.45703Z"
fill="black"/>
<path d="M75.1664 9.46703H73.4864C73.2914 8.73203 72.6164 8.44703 71.7164 8.44703C70.9364 8.44703 70.2164 8.79203 70.2164 9.33203C70.2164 9.87203 70.5914 10.1571 71.2964 10.2921L72.4364 10.5171C74.0714 10.8321 75.3164 11.3421 75.3164 12.9171C75.3164 14.5971 73.7264 15.5271 71.8964 15.5271C69.9164 15.5271 68.5964 14.3871 68.4014 12.8721H70.1414C70.3064 13.7121 70.8914 14.1771 71.9564 14.1771C72.9014 14.1771 73.5764 13.7871 73.5764 13.1271C73.5764 12.4671 72.9764 12.1821 72.1814 12.0171L70.9664 11.7771C69.6014 11.4921 68.5364 10.9071 68.5364 9.42203C68.5364 7.99703 70.0814 7.08203 71.8214 7.08203C73.3964 7.08203 74.8364 7.84703 75.1664 9.46703Z"
fill="black"/>
<path d="M64.3896 7.26203V6.76703C64.3896 4.89203 65.0946 4.45703 67.0596 4.45703H67.7646V5.82203H67.2546C66.3696 5.82203 66.1746 5.98703 66.1746 6.82703V7.26203H67.7646V8.55203H66.1746V15.3321H64.3896V8.55203H63.2646V7.26203H64.3896Z"
fill="black"/>
<path d="M59.541 7.26203V6.76703C59.541 4.89203 60.246 4.45703 62.211 4.45703H62.916V5.82203H62.406C61.521 5.82203 61.326 5.98703 61.326 6.82703V7.26203H62.916V8.55203H61.326V15.3321H59.541V8.55203H58.416V7.26203H59.541Z"
fill="black"/>
<path d="M51.6555 11.3121C51.6555 13.1721 52.6455 14.0721 53.7855 14.0721C54.9255 14.0721 55.9155 13.1721 55.9155 11.3121C55.9155 9.45203 54.9255 8.53703 53.7855 8.53703C52.6455 8.53703 51.6555 9.45203 51.6555 11.3121ZM53.7855 7.08203C55.7505 7.08203 57.7605 8.40203 57.7605 11.3121C57.7605 14.2371 55.7505 15.5271 53.7855 15.5271C51.8205 15.5271 49.8105 14.2371 49.8105 11.3121C49.8105 8.40203 51.8205 7.08203 53.7855 7.08203Z"
fill="black"/>
<path d="M46.5506 8.34203V4.45703H48.3356V15.3321H46.5506V14.2671C46.0706 15.0621 45.2306 15.5271 44.1506 15.5271C42.2306 15.5271 40.6406 13.8921 40.6406 11.2971C40.6406 8.71703 42.2306 7.08203 44.1506 7.08203C45.2306 7.08203 46.0706 7.54703 46.5506 8.34203ZM46.6256 11.2971C46.6256 9.43703 45.6956 8.53703 44.5406 8.53703C43.3406 8.53703 42.5006 9.61703 42.5006 11.2971C42.5006 13.0221 43.3406 14.0721 44.5406 14.0721C45.6956 14.0721 46.6256 13.1571 46.6256 11.2971Z"
fill="black"/>
<path d="M39.6376 11.8071H33.6226C33.7426 13.3071 34.7926 14.0421 35.8126 14.0421C36.7576 14.0421 37.4776 13.6821 37.7926 12.9171H39.5476C39.1876 14.2071 37.9576 15.5271 35.8876 15.5271C33.2926 15.5271 31.8076 13.5621 31.8076 11.2371C31.8076 8.80703 33.4726 7.08203 35.7676 7.08203C38.2426 7.08203 39.8026 9.10703 39.6376 11.8071ZM35.7676 8.47703C34.9276 8.47703 33.7876 8.98703 33.6226 10.5021H37.8226C37.7776 9.24203 36.8176 8.47703 35.7676 8.47703Z"
fill="black"/>
<path d="M30.3387 4.45703V15.3321H28.5537V4.45703H30.3387Z" fill="black"/>
</g>
</g>
<defs>
<clipPath id="clip0_2190_3233">
<rect width="145" height="24" fill="white"/>
</clipPath>
</defs>
</svg>
</a></div>
</div> </div>
@@ -61,7 +61,7 @@ function register_acf_blocks() {
acf_register_block_type(array( acf_register_block_type(array(
'name' => 'club-cards-block', 'name' => 'club-cards-block',
'title' => __('Блок с клубными картами'), 'title' => __('Блок с клубными картами'),
'description' => __('Блок с клубными картами для текущего языка'), 'description' => __('Блок с клубными картами для текущего зала'),
'render_template' => 'template-parts/la-components/blocks/club-cards-block/club-cards-block.php', 'render_template' => 'template-parts/la-components/blocks/club-cards-block/club-cards-block.php',
'category' => 'theme-blocks', 'category' => 'theme-blocks',
'icon' => 'id-alt', 'icon' => 'id-alt',
@@ -73,6 +73,36 @@ function register_acf_blocks() {
), ),
)); ));
acf_register_block_type(array(
'name' => 'trainer-block',
'title' => __('Блок с тренерами'),
'description' => __('Блок с тренерами для текущего зала'),
'render_template' => 'template-parts/la-components/blocks/trainers-block/trainer-block.php',
'category' => 'theme-blocks',
'icon' => 'id-alt',
'keywords' => array('тренеры', 'тренер', 'trainers'),
'supports' => array(
'align' => array('wide', 'full'),
'anchor' => true,
'customClassName' => true,
),
));
acf_register_block_type(array(
'name' => 'training-block',
'title' => __('Блок с тренировками'),
'description' => __('Блок с тренировками для текущего зала'),
'render_template' => 'template-parts/la-components/blocks/training-block/training-block.php',
'category' => 'theme-blocks',
'icon' => 'id-alt',
'keywords' => array('тренировки', 'тренеровка', 'trainings'),
'supports' => array(
'align' => array('wide', 'full'),
'anchor' => true,
'customClassName' => true,
),
));
acf_register_block_type(array( acf_register_block_type(array(
'name' => 'form-block', 'name' => 'form-block',
'title' => __('Блок формы'), 'title' => __('Блок формы'),
@@ -93,6 +123,13 @@ function register_acf_blocks() {
[], [],
'1.0.0' '1.0.0'
); );
wp_enqueue_script(
'form-block-js',
get_template_directory_uri() . '/template-parts/la-components/blocks/form-block/form-block.js',
['jquery'],
'1.0.0',
true
);
} }
)); ));
@@ -111,6 +148,51 @@ function register_acf_blocks() {
), ),
)); ));
acf_register_block_type(array(
'name' => 'line-block',
'title' => __('Блок преимуществ в линию'),
'description' => __('Блок преимуществ в линию'),
'render_template' => 'template-parts/la-components/blocks/line-block/line-block.php',
'category' => 'theme-blocks',
'icon' => 'grid-view',
'keywords' => array('плитки', 'преимущества', 'line', 'линия'),
'supports' => array(
'align' => array('wide', 'full'),
'anchor' => true,
'customClassName' => true,
),
));
acf_register_block_type(array(
'name' => 'masonry-tiles-block',
'title' => __('Блок с высокой первой плиткой'),
'description' => __('Блок с высокой первой плиткой'),
'render_template' => 'template-parts/la-components/blocks/masonry-tiles-1/masonry-tiles-1.php',
'category' => 'theme-blocks',
'icon' => 'grid-view',
'keywords' => array('плитки', 'карточки', 'tiles', 'cards'),
'supports' => array(
'align' => array('wide', 'full'),
'anchor' => true,
'customClassName' => true,
),
));
acf_register_block_type(array(
'name' => 'masonry-wide-tiles-block',
'title' => __('Блок с широкой последней плиткой'),
'description' => __('Блок с широкой последней плиткой'),
'render_template' => 'template-parts/la-components/blocks/masonry-tiles-2/masonry-tiles-2.php',
'category' => 'theme-blocks',
'icon' => 'grid-view',
'keywords' => array('плитки', 'карточки', 'tiles', 'cards'),
'supports' => array(
'align' => array('wide', 'full'),
'anchor' => true,
'customClassName' => true,
),
));
acf_register_block_type(array( acf_register_block_type(array(
'name' => 'advantages-block', 'name' => 'advantages-block',
@@ -148,6 +230,28 @@ function register_acf_blocks() {
'1.0.0', '1.0.0',
true true
); );
wp_enqueue_style(
'glightbox-css',
'https://cdnjs.cloudflare.com/ajax/libs/glightbox/3.2.0/css/glightbox.min.css',
[],
'3.2.0'
);
wp_enqueue_script(
'glightbox-js',
'https://cdnjs.cloudflare.com/ajax/libs/glightbox/3.2.0/js/glightbox.min.js',
[],
'3.2.0',
true
);
wp_enqueue_style(
'reviews-block-css',
get_template_directory_uri() . '/template-parts/la-components/blocks/reviews-block/reviews-block.css',
[],
'1.0.0'
);
} }
)); ));
@@ -182,6 +286,12 @@ function register_acf_blocks() {
true true
); );
wp_enqueue_style(
'gallery-block-css',
get_template_directory_uri() . '/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.css',
[],
'1.0.0'
);
wp_enqueue_script( wp_enqueue_script(
'gallery-tabs-js', 'gallery-tabs-js',
@@ -192,6 +302,46 @@ function register_acf_blocks() {
); );
} }
)); ));
acf_register_block_type(array(
'name' => 'simple-gallery',
'title' => __('Галерея с текстом'),
'description' => __('Галерея с текстом'),
'render_template' => 'template-parts/la-components/blocks/simple-gallery/simple-gallery.php',
'category' => 'theme-blocks',
'icon' => 'images-alt2',
'keywords' => array('gallery', 'tabs', 'slider', 'галерея', 'слайдер'),
'supports' => array(
'align' => array('wide', 'full'),
'anchor' => true,
'customClassName' => true,
),
'enqueue_assets' => function() {
wp_enqueue_style(
'glightbox-css',
'https://cdnjs.cloudflare.com/ajax/libs/glightbox/3.2.0/css/glightbox.min.css',
[],
'3.2.0'
);
wp_enqueue_script(
'glightbox-js',
'https://cdnjs.cloudflare.com/ajax/libs/glightbox/3.2.0/js/glightbox.min.js',
[],
'3.2.0',
true
);
wp_enqueue_script(
'simple-gallery-js',
get_template_directory_uri() . '/template-parts/la-components/blocks/simple-gallery/simple-gallery.js',
['swiper-js', 'glightbox-js'],
'1.0.0',
true
);
}
));
} }
} }
add_action('acf/init', 'register_acf_blocks'); add_action('acf/init', 'register_acf_blocks');
@@ -0,0 +1,435 @@
<?php
/**
* хлебные крошки
*/
// Проверяем, не объявлена ли уже функция
if (!function_exists('generate_yandex_breadcrumbs')) {
function generate_yandex_breadcrumbs()
{
$current_region = 'RU';
$home_title = 'Главная';
$home_url = home_url('/');
$texts = array(
'you_are_here' => 'Вы находитесь здесь:',
'search_prefix' => 'Поиск:',
'not_found' => 'Страница не найдена',
'author_prefix' => 'Публикации автора',
'breadcrumb_nav' => 'Навигация по разделам'
);
$clean_title = function ($title) {
return trim(preg_replace('/\s*\([^)]*\)/', '', $title));
};
$separator_svg = '<svg width="7" height="14" viewBox="0 0 7 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 13.9365L4.976 0.0644531H6.352L1.36 13.9365H0Z" fill="#6C6B6B" />
</svg>';
if (get_current_room() === 'gym') {
$home_icon_svg = '<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2307_15997)">
<path d="M0.584984 10.087C0.584984 11.1419 1.4431 12 2.498 12H5.0487C5.40085 12 5.68637 11.7148 5.68637 11.3623V8.81164H6.96172V11.3623C6.96172 11.7148 7.24723 12 7.59938 12H10.1501C11.205 12 12.0631 11.1419 12.0631 10.087V4.06395C12.0631 3.62119 11.8389 3.21704 11.4637 2.98226L7.00004 0.192428C6.58934 -0.0641426 6.05879 -0.0641426 5.64809 0.192428L1.18435 2.98226C0.809164 3.21704 0.584961 3.62119 0.584961 4.06395V10.087H0.584984ZM1.86034 4.06395L6.32405 1.27412L10.7878 4.06395V10.087C10.7878 10.4388 10.502 10.7247 10.1501 10.7247H8.23709V8.17395C8.23709 7.82211 7.95158 7.53629 7.59943 7.53629H5.04873C4.69658 7.53629 4.41106 7.82211 4.41106 8.17395V10.7247H2.498C2.14616 10.7247 1.86034 10.4388 1.86034 10.087V4.06395Z" fill="#F8F8F8" />
</g>
<defs>
<clipPath id="clip0_2307_15997">
<rect width="12" height="12" fill="white" transform="translate(0.324219)" />
</clipPath>
</defs>
</svg>';
} else {
$home_icon_svg = '<svg class="fill-[#222]" width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.584984 10.087C0.584984 11.1419 1.4431 12 2.498 12H5.0487C5.40085 12 5.68637 11.7148 5.68637 11.3623V8.81164H6.96172V11.3623C6.96172 11.7148 7.24723 12 7.59938 12H10.1501C11.205 12 12.0631 11.1419 12.0631 10.087V4.06395C12.0631 3.62119 11.8389 3.21704 11.4637 2.98226L7.00004 0.192428C6.58934 -0.0641426 6.05879 -0.0641426 5.64809 0.192428L1.18435 2.98226C0.809164 3.21704 0.584961 3.62119 0.584961 4.06395V10.087H0.584984ZM1.86034 4.06395L6.32405 1.27412L10.7878 4.06395V10.087C10.7878 10.4388 10.502 10.7247 10.1501 10.7247H8.23709V8.17395C8.23709 7.82211 7.95158 7.53629 7.59943 7.53629H5.04873C4.69658 7.53629 4.41106 7.82211 4.41106 8.17395V10.7247H2.498C2.14616 10.7247 1.86034 10.4388 1.86034 10.087V4.06395Z"
/>
</svg>';
}
// Создаем элемент главной страницы отдельно
$home_breadcrumb = array(
"@type" => "ListItem",
"position" => 1,
"name" => $home_title,
"item" => $home_url
);
// Массив для остальных крошек (без главной)
$breadcrumbs = array();
$position = 2; // Начинаем с позиции 2, так как главная уже позиция 1
if (is_post_type_archive()) {
$post_type = get_queried_object();
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($post_type->labels->name),
"item" => get_post_type_archive_link($post_type->name)
);
// Категории (включая иерархические)
} elseif (is_category()) {
$category = get_queried_object();
// Родительские категории
$parent_cats = array();
$parent_id = $category->parent;
while ($parent_id) {
$parent_cat = get_category($parent_id);
array_unshift($parent_cats, $parent_cat);
$parent_id = $parent_cat->parent;
}
foreach ($parent_cats as $parent_cat) {
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($parent_cat->name),
"item" => get_category_link($parent_cat->term_id)
);
}
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($category->name),
"item" => get_category_link($category->term_id)
);
// Теги
} elseif (is_tag()) {
$tag = get_queried_object();
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($tag->name),
"item" => get_tag_link($tag->term_id)
);
// Кастомные таксономии
} elseif (is_tax()) {
$term = get_queried_object();
$taxonomy = $term->taxonomy;
// Архив типа поста для этой таксономии
$taxonomy_obj = get_taxonomy($taxonomy);
if (!empty($taxonomy_obj->object_type)) {
$post_type = $taxonomy_obj->object_type[0];
$post_type_obj = get_post_type_object($post_type);
if ($post_type_obj && $post_type_obj->has_archive) {
$archive_link = get_post_type_archive_link($post_type);
if ($archive_link) {
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($post_type_obj->labels->name),
"item" => $archive_link
);
}
}
}
// Родительские термины для иерархических таксономий
if (is_taxonomy_hierarchical($taxonomy)) {
$parent_terms = array();
$parent_id = $term->parent;
while ($parent_id) {
$parent_term = get_term($parent_id, $taxonomy);
array_unshift($parent_terms, $parent_term);
$parent_id = $parent_term->parent;
}
foreach ($parent_terms as $parent_term) {
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($parent_term->name),
"item" => get_term_link($parent_term)
);
}
}
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($term->name),
"item" => get_term_link($term)
);
// Отдельные посты
} elseif (is_single()) {
global $post;
$post_type = get_post_type($post);
if ($post_type === 'post') {
// Обычные посты - категории
$categories = get_the_category();
if (!empty($categories)) {
$main_category = $categories[0];
// Родительские категории
$parent_cats = array();
$parent_id = $main_category->parent;
while ($parent_id) {
$parent_cat = get_category($parent_id);
array_unshift($parent_cats, $parent_cat);
$parent_id = $parent_cat->parent;
}
foreach ($parent_cats as $parent_cat) {
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($parent_cat->name),
"item" => get_category_link($parent_cat->term_id)
);
}
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($main_category->name),
"item" => get_category_link($main_category->term_id)
);
}
} else {
// Кастомные типы постов
$post_type_obj = get_post_type_object($post_type);
// Архив типа поста
if ($post_type_obj && $post_type_obj->has_archive) {
$archive_link = get_post_type_archive_link($post_type);
if ($archive_link) {
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($post_type_obj->labels->name),
"item" => $archive_link
);
}
}
// Основная таксономия для кастомного типа
$taxonomies = get_object_taxonomies($post_type, 'objects');
$main_taxonomy = null;
// Ищем основную таксономию (hierarchical в приоритете)
foreach ($taxonomies as $taxonomy) {
if ($taxonomy->public && !in_array($taxonomy->name, array('post_tag', 'post_format'))) {
if ($taxonomy->hierarchical) {
$main_taxonomy = $taxonomy->name;
break;
} elseif (!$main_taxonomy) {
$main_taxonomy = $taxonomy->name;
}
}
}
if ($main_taxonomy) {
$terms = get_the_terms($post, $main_taxonomy);
if (!empty($terms) && !is_wp_error($terms)) {
$main_term = $terms[0];
// Родительские термины для иерархических таксономий
if (is_taxonomy_hierarchical($main_taxonomy)) {
$parent_terms = array();
$parent_id = $main_term->parent;
while ($parent_id) {
$parent_term = get_term($parent_id, $main_taxonomy);
array_unshift($parent_terms, $parent_term);
$parent_id = $parent_term->parent;
}
foreach ($parent_terms as $parent_term) {
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($parent_term->name),
"item" => get_term_link($parent_term)
);
}
}
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title($main_term->name),
"item" => get_term_link($main_term)
);
}
}
}
// Текущий пост
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title(get_the_title()),
"item" => get_permalink()
);
// Страницы
} elseif (is_page()) {
global $post;
$ancestors = get_post_ancestors($post);
$ancestors = array_reverse($ancestors);
foreach ($ancestors as $ancestor_id) {
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title(get_the_title($ancestor_id)),
"item" => get_permalink($ancestor_id)
);
}
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $clean_title(get_the_title()),
"item" => get_permalink()
);
// Авторы
} elseif (is_author()) {
$author = get_queried_object();
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $texts['author_prefix'] . ' ' . $author->display_name,
"item" => get_author_posts_url($author->ID)
);
// Поиск
} elseif (is_search()) {
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $texts['search_prefix'] . ' ' . get_search_query(),
"item" => home_url('?s=' . urlencode(get_search_query()))
);
// 404
} elseif (is_404()) {
$breadcrumbs[] = array(
"@type" => "ListItem",
"position" => $position++,
"name" => $texts['not_found'],
"item" => home_url($_SERVER['REQUEST_URI'])
);
}
// Объединяем главную страницу с остальными крошками для JSON-LD
$all_breadcrumbs = array_merge(array($home_breadcrumb), $breadcrumbs);
if (empty($all_breadcrumbs)) {
return false;
}
$yandex_schema = array(
"@context" => "https://schema.org",
"@type" => "BreadcrumbList",
"name" => "Навигация по разделам сайта",
"description" => "Путь навигации к текущей странице",
"areaServed" => array(
"@type" => "Country",
"name" => $current_region
),
"itemListElement" => $all_breadcrumbs
);
?>
<nav class="h-[30px] rounded-[24px] max-w-fit flex items-center bg-[linear-gradient(180deg,_#f2f2f2_69.59%,_#ededed_100%)] dark:bg-none dark:bg-[transparent] px-[12px]"
role="navigation"
aria-label="<?php echo esc_attr($texts['breadcrumb_nav']); ?>"
itemscope
itemtype="https://schema.org/BreadcrumbList"
data-region="<?php echo esc_attr($current_region); ?>">
<span class="absolute !w-[1px] !h-[1px] !p-0 !m-[-1px] overflow-hidden !clip-[rect(0,0,0,0)] !border-0">
<?php echo esc_html($texts['you_are_here']); ?>
</span>
<ol class="[&>li>a]:!no-underline flex items-center gap-[8px] text-[14px] leading-[20px] flex-wrap" role="list">
<!-- Главная -->
<li class="flex items-center"
itemscope
itemprop="itemListElement"
itemtype="https://schema.org/ListItem">
<a href="<?php echo esc_url($home_breadcrumb['item']); ?>"
class="font-[600] text-[14px] leading-[125%] text-[#222] hover:text-[#9d9994] dark:hover:text-[#9d9994] dark:text-[#f8f8f8] flex gap-[6px] items-center"
itemprop="item"
title="<?php echo esc_attr('Перейти на главную страницу'); ?>">
<?php echo $home_icon_svg; ?>
<span itemprop="name"><?php echo esc_html($home_breadcrumb['name']); ?></span>
</a>
<meta itemprop="position" content="<?php echo esc_attr($home_breadcrumb['position']); ?>">
<?php if (!empty($breadcrumbs)): ?>
<span class="select-none ml-[8px] flex items-center" aria-hidden="true">
<?php echo $separator_svg; ?>
</span>
<?php endif; ?>
</li>
<?php foreach ($breadcrumbs as $index => $crumb):
$is_last = ($index === count($breadcrumbs) - 1);
?>
<li class="flex items-center"
itemscope
itemprop="itemListElement"
itemtype="https://schema.org/ListItem">
<?php if (!$is_last): ?>
<a href="<?php echo esc_url($crumb['item']); ?>"
class="hover:text-[#222] text-[#6c6b6b] dark:text-[#6c6b6b] dark:hover:text-[#f8f8f8] transition font-[500] leading-[125%] text-[14px]"
itemprop="item"
title="<?php echo esc_attr('Перейти в раздел: ' . $crumb['name']); ?>">
<span itemprop="name"><?php echo esc_html($crumb['name']); ?></span>
</a>
<?php else: ?>
<span class="text-[#6c6b6b] dark:text-[#6c6b6b] font-[500] leading-[125%] text-[14px]"
itemprop="name"
aria-current="page">
<?php echo esc_html($crumb['name']); ?>
</span>
<?php endif; ?>
<meta itemprop="position" content="<?php echo esc_attr($crumb['position']); ?>">
<?php if (!$is_last): ?>
<span class="select-none ml-[8px] flex items-center"
aria-hidden="true">
<?php echo $separator_svg; ?>
</span>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ol>
</nav>
<script type="application/ld+json">
<?php echo json_encode($yandex_schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT); ?>
</script>
<?php
return true;
}
}
if (!function_exists('display_yandex_breadcrumbs')) {
function display_yandex_breadcrumbs()
{
if (is_front_page() || is_home() || is_admin()) {
return;
}
generate_yandex_breadcrumbs();
}
}
@@ -25,9 +25,9 @@ function modal_system_container() {
} }
?> ?>
<div id="modal-overlay" class="fixed inset-0 bg-[rgba(0,0,0,0.5)] backdrop-blur-sm z-50 flex items-center justify-center p-4 opacity-0 invisible transition-all duration-300"> <div id="modal-overlay" class="fixed inset-0 bg-[rgba(0,0,0,0.5)] backdrop-blur-sm z-50 flex items-center justify-center p-4 opacity-0 invisible transition-all ">
<div class="bg-white rounded-lg shadow-2xl max-w-2xl w-full max-h-[90vh] relative transform scale-90 transition-transform duration-300 overflow-hidden"> <div class="bg-[#f9f9f9] rounded-[20px] max-w-[970px] w-full max-h-[90vh] relative transform scale-90 transition-transform overflow-hidden">
<button id="modal-close" class="absolute top-4 right-4 z-10 w-8 h-8 flex items-center justify-center rounded-full hover:bg-gray-100 transition-colors text-gray-500 hover:text-gray-700"> <button id="modal-close" class="absolute top-4 right-4 z-10 w-8 h-8 flex items-center cursor-pointer justify-center rounded-full hover:bg-gray-100 transition-colors text-gray-500 hover:text-gray-700">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
</svg> </svg>
+146 -29
View File
@@ -12,9 +12,13 @@ document.addEventListener('DOMContentLoaded', function() {
if (!this.overlay) return; if (!this.overlay) return;
this.content = document.getElementById('modal-content'); this.content = document.getElementById('modal-content');
this.container = this.overlay.querySelector('.bg-white'); this.container = this.content ? this.content.parentElement : null;
this.closeBtn = document.getElementById('modal-close'); this.closeBtn = document.getElementById('modal-close');
if (!this.content || !this.container) {
return;
}
this.bindEvents(); this.bindEvents();
this.initFormHandling(); this.initFormHandling();
}, },
@@ -37,8 +41,16 @@ document.addEventListener('DOMContentLoaded', function() {
if (modalTrigger) { if (modalTrigger) {
e.preventDefault(); e.preventDefault();
const modalName = modalTrigger.getAttribute('data-modal'); const modalName = modalTrigger.getAttribute('data-modal');
const cardId = modalTrigger.getAttribute('data-card-id');
this.open(modalName, { cardId }); const params = {};
Array.from(modalTrigger.attributes).forEach(attr => {
if (attr.name.startsWith('data-') && attr.name !== 'data-modal') {
const key = attr.name.replace('data-', '').replace(/-([a-z])/g, (g) => g[1].toUpperCase());
params[key] = attr.value;
}
});
this.open(modalName, params);
} }
}); });
@@ -51,45 +63,52 @@ document.addEventListener('DOMContentLoaded', function() {
}, },
initFormHandling() { initFormHandling() {
console.log('Form handling initialized');
document.addEventListener('fluentform_submission_success', (e) => { document.addEventListener('fluentform_submission_success', (e) => {
const form = e.target.closest('.ff-el-form-wrapper form'); const form = e.target.closest('.ff-el-form-wrapper form');
if (form) { if (form) {
setTimeout(() => { setTimeout(() => {
if (this.isOpen()) { const thankYouUrl = this.getLocalizedUrl('/thank-you');
this.replace('form-success'); window.location.href = thankYouUrl;
} else {
this.open('form-success');
}
}, 300); }, 300);
} }
}, true); }, true);
if (typeof jQuery !== 'undefined') { if (typeof jQuery !== 'undefined') {
jQuery(document).ajaxSuccess((event, xhr, settings) => { jQuery(document).ajaxSuccess((event, xhr, settings) => {
if (settings.url && settings.url.includes('admin-ajax.php') && if (settings.url && settings.url.includes('admin-ajax.php') &&
settings.data && settings.data.includes('fluentform_submit')) { settings.data && settings.data.includes('fluentform_submit')) {
try { try {
const response = JSON.parse(xhr.responseText); const response = JSON.parse(xhr.responseText);
console.log('Response:', response);
if (response.success && response.data && response.data.insert_id) { if (response.success && response.data && response.data.insert_id) {
setTimeout(() => { setTimeout(() => {
if (this.isOpen()) { const thankYouUrl = this.getLocalizedUrl('/thank-you');
this.replace('form-success'); window.location.href = thankYouUrl;
} else {
this.open('form-success');
}
}, 300); }, 300);
} }
} catch (e) { } catch (e) {
} }
} }
}); });
} else {
} }
}, },
getLocalizedUrl(path) {
const htmlLang = document.documentElement.lang;
const currentLang = window.pll_current_language || this.getCurrentLangFromUrl();
if (currentLang) {
return `/${currentLang}${path}`;
}
return path;
},
getCurrentLangFromUrl() {
const currentPath = window.location.pathname;
const languageCodes = ['gym'];
const pathParts = currentPath.split('/').filter(part => part.length > 0);
return pathParts.length > 0 && languageCodes.includes(pathParts[0]) ? pathParts[0] : null;
},
open(modalName, params = {}) { open(modalName, params = {}) {
const template = document.getElementById(`modal-template-${modalName}`); const template = document.getElementById(`modal-template-${modalName}`);
@@ -130,25 +149,121 @@ document.addEventListener('DOMContentLoaded', function() {
}, },
injectParams(params) { injectParams(params) {
if (params.cardId) { if (params.cardTitle) {
setTimeout(() => { const titleElements = this.content.querySelectorAll('[data-inject="card-title"]');
const hiddenInput = this.content.querySelector('input[name="hidden"]'); titleElements.forEach(el => {
if (hiddenInput && !hiddenInput.dataset.cardInjected) { el.textContent = params.cardTitle;
const currentValue = hiddenInput.value || ''; });
hiddenInput.value = currentValue + ` | Карта ID: ${params.cardId}`; }
hiddenInput.dataset.cardInjected = 'true';
} if (params.cardTime) {
}, 100); this.fillTimeInfo(JSON.parse(params.cardTime));
}
if (params.cardPrices) {
this.fillPrices(JSON.parse(params.cardPrices), params.cardTitle, params.cardId);
} }
}, },
fillTimeInfo(timeSlots) {
if (!timeSlots.length) return;
const firstSlot = timeSlots[0];
if (firstSlot.normal_days) {
const normalDaysEl = this.content.querySelector('[data-inject="normal-days"]');
if (normalDaysEl) normalDaysEl.textContent = firstSlot.normal_days;
}
if (firstSlot.vacation_days) {
const vacationDaysEl = this.content.querySelector('[data-inject="vacation-days"]');
if (vacationDaysEl) vacationDaysEl.textContent = firstSlot.vacation_days;
}
},
fillPrices(prices, cardTitle, cardId) {
Object.keys(prices).forEach(period => {
const price = prices[period];
if (!price.full || !price.day) return;
const fullElements = this.content.querySelectorAll(`[data-inject="price-${period.replace('_', '-')}-full"]`);
const dayElements = this.content.querySelectorAll(`[data-inject="price-${period.replace('_', '-')}-day"]`);
fullElements.forEach(el => el.textContent = price.full);
dayElements.forEach(el => el.textContent = price.day);
});
this.content.querySelectorAll('.price-option').forEach(option => {
option.addEventListener('click', () => {
const period = option.dataset.period;
const price = prices[period];
if (price) {
this.selectPrice(option, period, price, cardTitle, cardId);
}
});
});
const firstOption = this.content.querySelector('.price-option');
if (firstOption && prices['1_month']) {
this.selectPrice(firstOption, '1_month', prices['1_month'], cardTitle, cardId);
}
},
selectPrice(selectedOption, period, price, cardTitle, cardId) {
this.content.querySelectorAll('.price-option').forEach(option => {
option.classList.remove('bg-[linear-gradient(90deg,_#2b2c35_39.42%,_#6e7996_92.9%)]', '[&_div]:text-[#f8f8f8]', '[&_p]:text-[#bcbcc0]');
option.classList.add('bg-[linear-gradient(180deg,_#f2f2f2_69.59%,_#ededed_100%)]', '[&_div]:text-[#222]', '[&_p]:text-[#6c6b6b]');
});
selectedOption.classList.remove('bg-[linear-gradient(180deg,_#f2f2f2_69.59%,_#ededed_100%)]', '[&_div]:text-[#222]', '[&_p]:text-[#6c6b6b]');
selectedOption.classList.add('bg-[linear-gradient(90deg,_#2b2c35_39.42%,_#6e7996_92.9%)]', '[&_div]:text-[#f8f8f8]', '[&_p]:text-[#bcbcc0]');
const periodNames = {
'1_month': '1 месяц',
'3_month': '3 месяца',
'6_month': '6 месяцев',
'12_month': '12 месяцев'
};
const selectedPeriodEl = this.content.querySelector('#selected-period');
const selectedFullPriceEl = this.content.querySelector('#selected-full-price');
const selectedDayPriceEl = this.content.querySelector('#selected-day-price');
if (selectedPeriodEl) selectedPeriodEl.textContent = periodNames[period];
if (selectedFullPriceEl) selectedFullPriceEl.textContent = price.full;
if (selectedDayPriceEl) selectedDayPriceEl.textContent = price.day;
setTimeout(() => {
const hiddenInput = this.content.querySelector('input[name="hidden"]');
if (hiddenInput) {
const formWrapper = this.content.querySelector('.form-block-wrapper');
const baseValue = formWrapper ? formWrapper.dataset.hiddenValue : '';
const normalDays = this.content.querySelector('[data-inject="normal-days"]')?.textContent || '';
const vacationDays = this.content.querySelector('[data-inject="vacation-days"]')?.textContent || '';
const daysInfo = normalDays || vacationDays ? ` | Дни: обычные ${normalDays}, выходные ${vacationDays}` : '';
const tariffInfo = `Карта: ${cardTitle} | Тариф: ${periodNames[period]} | Цена: ${price.full} ₽ (${price.day} ₽/день)${daysInfo} | ID карты: ${cardId}`;
hiddenInput.value = `${baseValue} | ${tariffInfo}`;
}
}, 100);
},
camelToKebab(str) {
return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
},
show() { show() {
if (!this.overlay || !this.container) return;
this.overlay.classList.remove('opacity-0', 'invisible'); this.overlay.classList.remove('opacity-0', 'invisible');
this.overlay.classList.add('opacity-100', 'visible'); this.overlay.classList.add('opacity-100', 'visible');
setTimeout(() => { setTimeout(() => {
this.container.classList.remove('scale-90'); if (this.container) {
this.container.classList.add('scale-100'); this.container.classList.remove('scale-90');
this.container.classList.add('scale-100');
}
}, 10); }, 10);
setTimeout(() => { setTimeout(() => {
@@ -171,6 +286,8 @@ document.addEventListener('DOMContentLoaded', function() {
}, },
hide() { hide() {
if (!this.container || !this.overlay) return;
this.container.classList.remove('scale-100'); this.container.classList.remove('scale-100');
this.container.classList.add('scale-90'); this.container.classList.add('scale-90');
@@ -2,14 +2,18 @@
/** /**
* Переключает язык (регионы) необходим плагин Polylang * Переключает язык (регионы) необходим плагин Polylang
* * Поддерживает множественные вызовы на одной странице
*/ */
// Проверяем существование функций Polylang
if (!function_exists('pll_languages_list') || !function_exists('pll_current_language')) { if (!function_exists('pll_languages_list') || !function_exists('pll_current_language')) {
return; return;
} }
static $instance_counter = 0;
$instance_counter++;
$unique_id = 'plLangSwitcher' . $instance_counter;
?> ?>
<style> <style>
@@ -19,8 +23,6 @@ if (!function_exists('pll_languages_list') || !function_exists('pll_current_lang
border: 1px solid #e0e0e0; border: 1px solid #e0e0e0;
border-radius: 90px; border-radius: 90px;
padding: 6px; padding: 6px;
--pl-slider-width: 0px;
--pl-slider-x: 0px;
gap: 4px; gap: 4px;
} }
@@ -61,11 +63,6 @@ if (!function_exists('pll_languages_list') || !function_exists('pll_current_lang
color: #b9b7b9; color: #b9b7b9;
} }
.pl-lang-switcher-button:hover,
.pl-lang-switcher-container a(not:.pl-lang-switcher-current):hover {
color: #222;
}
.pl-lang-switcher-button.pl-lang-switcher-active, .pl-lang-switcher-button.pl-lang-switcher-active,
.pl-lang-switcher-container a.pl-lang-switcher-active, .pl-lang-switcher-container a.pl-lang-switcher-active,
@@ -83,8 +80,6 @@ if (!function_exists('pll_languages_list') || !function_exists('pll_current_lang
background: linear-gradient(90deg, #2b2c35 67.31%, #4f5870 92.9%); background: linear-gradient(90deg, #2b2c35 67.31%, #4f5870 92.9%);
border-radius: 90px; border-radius: 90px;
z-index: 1; z-index: 1;
width: var(--pl-slider-width);
transform: translateX(var(--pl-slider-x));
transition: all 180ms cubic-bezier(0.4, 0.0, 0.2, 1); transition: all 180ms cubic-bezier(0.4, 0.0, 0.2, 1);
} }
@@ -93,8 +88,8 @@ if (!function_exists('pll_languages_list') || !function_exists('pll_current_lang
} }
</style> </style>
<div class="pl-lang-switcher-container" id="plLangSwitcherContainer"> <div class="pl-lang-switcher-container" data-switcher-id="<?php echo $unique_id; ?>">
<div class="pl-lang-switcher-slider" id="plLangSwitcherSlider"></div> <div class="pl-lang-switcher-slider"></div>
<?php <?php
$languages = pll_languages_list(); $languages = pll_languages_list();
$current_lang = pll_current_language('slug'); $current_lang = pll_current_language('slug');
@@ -146,9 +141,15 @@ if (!function_exists('pll_languages_list') || !function_exists('pll_current_lang
<script> <script>
document.addEventListener('DOMContentLoaded', function () { document.addEventListener('DOMContentLoaded', function () {
const container = document.getElementById('plLangSwitcherContainer'); // Инициализируем все переключатели языков на странице
if (!container) return; const containers = document.querySelectorAll('.pl-lang-switcher-container[data-switcher-id="<?php echo $unique_id; ?>"]');
containers.forEach(function(container) {
initLanguageSwitcher(container);
});
});
function initLanguageSwitcher(container) {
let isInitialized = false; let isInitialized = false;
function updateSliderPosition(target = null, animate = false) { function updateSliderPosition(target = null, animate = false) {
@@ -157,7 +158,7 @@ if (!function_exists('pll_languages_list') || !function_exists('pll_current_lang
} }
if (!target) return; if (!target) return;
const slider = container.querySelector('#plLangSwitcherSlider'); const slider = container.querySelector('.pl-lang-switcher-slider');
const width = target.offsetWidth; const width = target.offsetWidth;
const x = target.offsetLeft - 6; const x = target.offsetLeft - 6;
@@ -167,8 +168,8 @@ if (!function_exists('pll_languages_list') || !function_exists('pll_current_lang
slider.style.transition = 'none'; slider.style.transition = 'none';
} }
container.style.setProperty('--pl-slider-width', width + 'px'); slider.style.width = width + 'px';
container.style.setProperty('--pl-slider-x', x + 'px'); slider.style.transform = 'translateX(' + x + 'px)';
} }
function initialize() { function initialize() {
@@ -208,8 +209,8 @@ if (!function_exists('pll_languages_list') || !function_exists('pll_current_lang
e.preventDefault(); e.preventDefault();
// Обновляем только в текущем контейнере
container.querySelectorAll('a').forEach(a => a.classList.remove('pl-lang-switcher-current')); container.querySelectorAll('a').forEach(a => a.classList.remove('pl-lang-switcher-current'));
link.classList.add('pl-lang-switcher-current'); link.classList.add('pl-lang-switcher-current');
updateSliderPosition(link, true); updateSliderPosition(link, true);
@@ -219,5 +220,5 @@ if (!function_exists('pll_languages_list') || !function_exists('pll_current_lang
} }
initialize(); initialize();
}); }
</script> </script>
@@ -1,22 +1,90 @@
<?php <?php
$form_id = '4';
$form_title = 'Заявка на клубную карту';
$current_url = home_url($_SERVER['REQUEST_URI']); $current_url = home_url($_SERVER['REQUEST_URI']);
$page_title = get_the_title() ?: 'Главная страница'; $page_title = get_the_title() ?: 'Главная страница';
$hidden_value = "Страница: {$page_title} | URL: {$current_url}";
$hidden_value = "Форма: {$form_title} | Страница: {$page_title} | URL: {$current_url}";
?> ?>
<div class="p-[30px] max-[768px]:p-[20px]"> <div class="p-[40px] max-[768px]:p-[20px]">
<h3 class="text-[24px] max-[768px]:text-[20px] font-bold text-[#1f2937] mb-[24px] text-center"> <h3 class="font-[500] text-[40px] leading-[120%] text-[#222]">
<?php echo esc_html($form_title); ?> Оформить карту “<span class="font-[700]" data-inject="card-title">не выбрана</span>”
</h3> </h3>
<div class="form-block-wrapper" <div class="bg-[#fff] max-w-fit px-[20px] rounded-[8px] h-[74px] flex items-center mt-[32px] gap-[24px]"
data-form-id="<?php echo esc_attr($form_id); ?>" id="card-time-info">
data-hidden-value="<?php echo esc_attr($hidden_value); ?>"> <h4 class="font-[600] text-[24px] leading-[125%] text-[#222] ">Время посещений</h4>
<?php echo do_shortcode('[fluentform id="' . esc_attr($form_id) . '"]'); ?> <svg width="2" height="50" viewBox="0 0 2 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.5" width="1" height="50" fill="#E0E0E0"/>
</svg>
<div class="flex flex-col gap-[4px] font-[500] text-[16px] leading-[145%] text-[#222]">
<span>Будние дни: <strong data-inject="normal-days">-</strong></span>
<span>Выходные: <strong data-inject="vacation-days">-</strong></span>
</div>
</div>
<div class="mt-[32px]">
<div id="price-options" class="flex flex-wrap gap-[4px] justify-between">
<div class="price-option [&_div]:text-[#f8f8f8] [&_p]:text-[#bcbcc0] w-full max-w-[213px] h-[147px] rounded-[12px] flex items-center justify-center flex-col cursor-pointer bg-[linear-gradient(180deg,_#f2f2f2_69.59%,_#ededed_100%)]"
data-period="1_month">
<div class="text-center flex flex-col gap-[6px]">
<div class="font-[600] text-[24px] leading-[125%]">1 месяц</div>
<div class="font-[700] text-[32px] leading-[115%]">
<span data-inject="price-1-month-full">-</span> ₽
</div>
<p class="font-[500] text-[20px] leading-[140%]">
<span data-inject="price-1-month-day">-</span> ₽ в день
</p>
</div>
</div>
<div class="price-option [&_div]:text-[#f8f8f8] [&_p]:text-[#bcbcc0] w-full max-w-[213px] h-[147px] rounded-[12px] flex items-center justify-center flex-col cursor-pointer bg-[linear-gradient(180deg,_#f2f2f2_69.59%,_#ededed_100%)]"
data-period="3_month">
<div class="text-center flex flex-col gap-[6px]">
<div class="font-[600] text-[24px] leading-[125%]">3 месяца</div>
<div class="font-[700] text-[32px] leading-[115%]">
<span data-inject="price-1-month-full">-</span> ₽
</div>
<p class="font-[500] text-[20px] leading-[140%]">
<span data-inject="price-1-month-day">-</span> ₽ в день
</p>
</div>
</div>
<div class="price-option [&_div]:text-[#f8f8f8] [&_p]:text-[#bcbcc0] w-full max-w-[213px] h-[147px] rounded-[12px] flex items-center justify-center flex-col cursor-pointer bg-[linear-gradient(180deg,_#f2f2f2_69.59%,_#ededed_100%)]"
data-period="6_month">
<div class="text-center flex flex-col gap-[6px]">
<div class="font-[600] text-[24px] leading-[125%]">6 месяцев</div>
<div class="font-[700] text-[32px] leading-[115%]">
<span data-inject="price-1-month-full">-</span> ₽
</div>
<p class="font-[500] text-[20px] leading-[140%]">
<span data-inject="price-1-month-day">-</span> ₽ в день
</p>
</div>
</div>
<div class="price-option [&_div]:text-[#f8f8f8] [&_p]:text-[#bcbcc0] w-full max-w-[213px] h-[147px] rounded-[12px] flex items-center justify-center flex-col cursor-pointer bg-[linear-gradient(180deg,_#f2f2f2_69.59%,_#ededed_100%)]"
data-period="12_month">
<div class="text-center flex flex-col gap-[6px]">
<div class="font-[600] text-[24px] leading-[125%]">12 месяцев</div>
<div class="font-[700] text-[32px] leading-[115%]">
<span data-inject="price-1-month-full">-</span> ₽
</div>
<p class="font-[500] text-[20px] leading-[140%]">
<span data-inject="price-1-month-day">-</span> ₽ в день
</p>
</div>
</div>
</div>
<!-- Выбранный тариф -->
<div class="mt-[32px] font-[500] text-[20px] leading-[140%]">
Выбрано <span data-inject="card-title">-</span> на <span id="selected-period">-</span>
</div>
<div class="form-block-wrapper mt-[32px]"
data-form-id="4"
data-hidden-value="<?php echo esc_attr($hidden_value); ?>">
<?php echo do_shortcode('[fluentform id="4"]'); ?>
</div>
</div> </div>
</div> </div>
@@ -1,7 +1,6 @@
<?php <?php
/** /**
* Навигационное меню с сео * Навигационное меню с SEO
* По умолчанию названию меню Шапка сайта
*/ */
$menu = wp_get_nav_menu_object('Шапка сайта'); $menu = wp_get_nav_menu_object('Шапка сайта');
@@ -11,14 +10,13 @@ if ($menu) {
$current_lang = function_exists('pll_current_language') ? pll_current_language() : null; $current_lang = function_exists('pll_current_language') ? pll_current_language() : null;
if ($menu_items) { if ($menu_items) {
// Чистим заголовок от (переводов)
$clean_title = function($title) { $clean_title = function($title) {
return trim(preg_replace('/\s*\([^)]*\)/', '', $title)); return trim(preg_replace('/\s*\([^)]*\)/', '', $title));
}; };
$current_region = 'RU'; $current_region = 'RU';
// Навигационная схема для Яндекса
$navigation_schema = array( $navigation_schema = array(
"@context" => "https://schema.org", "@context" => "https://schema.org",
"@type" => "SiteNavigationElement", "@type" => "SiteNavigationElement",
@@ -28,13 +26,6 @@ if ($menu) {
"areaServed" => $current_region, "areaServed" => $current_region,
"url" => array() "url" => array()
); );
// Хлебные крошки для Яндекса
$breadcrumb_schema = array(
"@context" => "https://schema.org",
"@type" => "BreadcrumbList",
"itemListElement" => array()
);
?> ?>
<nav class="main-navigation primary-navigation h-full" <nav class="main-navigation primary-navigation h-full"
@@ -55,7 +46,7 @@ if ($menu) {
$url = $item->url; $url = $item->url;
$title = $clean_title($item->title); $title = $clean_title($item->title);
// Polylang // Polylang обработка
if ($current_lang && $item->object == 'page' && function_exists('pll_get_post')) { if ($current_lang && $item->object == 'page' && function_exists('pll_get_post')) {
$translated_page_id = pll_get_post($item->object_id, $current_lang); $translated_page_id = pll_get_post($item->object_id, $current_lang);
if ($translated_page_id) { if ($translated_page_id) {
@@ -67,15 +58,14 @@ if ($menu) {
} }
} }
// Дата изменения для Яндекса // Дата изменения
$last_modified = ''; $last_modified = '';
if ($item->object == 'page') { if ($item->object == 'page') {
$last_modified = get_the_modified_time('c', $item->object_id); $last_modified = get_the_modified_time('c', $item->object_id);
} }
// Активный пункт меню // Определение активного пункта
$is_current = false; $is_current = false;
$current_classes = '';
$aria_current = ''; $aria_current = '';
if (is_page()) { if (is_page()) {
@@ -84,7 +74,6 @@ if ($menu) {
if (($current_lang && function_exists('pll_get_post') && pll_get_post($item->object_id, $current_lang) == $post->ID) || if (($current_lang && function_exists('pll_get_post') && pll_get_post($item->object_id, $current_lang) == $post->ID) ||
$item->object_id == $post->ID) { $item->object_id == $post->ID) {
$is_current = true; $is_current = true;
$current_classes = ' current-menu-item active current_page_item';
$aria_current = ' aria-current="page"'; $aria_current = ' aria-current="page"';
} }
} }
@@ -102,14 +91,14 @@ if ($menu) {
if ($is_current) { if ($is_current) {
$css_classes[] = 'current-menu-item'; $css_classes[] = 'current-menu-item';
$css_classes[] = 'current_page_item'; $css_classes[] = 'current_page_item';
$css_classes[] = 'active'; $css_classes[] = 'border-b border-b-[2px] !border-b-[#e21e24] dark:!border-b-[#fff]';
} }
if (!empty($item->classes)) { if (!empty($item->classes)) {
$css_classes = array_merge($css_classes, array_filter($item->classes)); $css_classes = array_merge($css_classes, array_filter($item->classes));
} }
// Схема для Яндекса // Схема навигации
$page_data = array( $page_data = array(
"@type" => "WebPage", "@type" => "WebPage",
"name" => $title, "name" => $title,
@@ -122,18 +111,11 @@ if ($menu) {
} }
$navigation_schema['url'][] = $page_data; $navigation_schema['url'][] = $page_data;
$breadcrumb_schema['itemListElement'][] = array(
"@type" => "ListItem",
"position" => $position,
"name" => $title,
"item" => $url
);
?> ?>
<li class="hover:translate-y-[-1px] transition h-full <?php echo esc_attr(implode(' ', $css_classes)); ?>" role="none"> <li class="h-full transition border-b border-b-[2px] border-b-[transparent] hover:border-b-[#e21e24] dark:hover:border-b-[#fff] <?php echo esc_attr(implode(' ', $css_classes)); ?>" role="none">
<a href="<?php echo esc_url($url); ?>" <a href="<?php echo esc_url($url); ?>"
class="menu-link !no-underline h-full flex items-center" class="menu-link !no-underline h-full flex items-center"
role="menuitem" role="menuitem"
itemprop="url" itemprop="url"
tabindex="0"<?php echo $aria_current; ?> tabindex="0"<?php echo $aria_current; ?>
@@ -143,7 +125,7 @@ if ($menu) {
onclick="if(typeof yaCounter !== 'undefined') { yaCounter.reachGoal('menu_click', {item: '<?php echo esc_js($title); ?>'}); }" onclick="if(typeof yaCounter !== 'undefined') { yaCounter.reachGoal('menu_click', {item: '<?php echo esc_js($title); ?>'}); }"
<?php if ($item->target): ?>target="<?php echo esc_attr($item->target); ?>"<?php endif; ?> <?php if ($item->target): ?>target="<?php echo esc_attr($item->target); ?>"<?php endif; ?>
<?php if ($item->attr_title): ?>title="<?php echo esc_attr($item->attr_title); ?>"<?php endif; ?>> <?php if ($item->attr_title): ?>title="<?php echo esc_attr($item->attr_title); ?>"<?php endif; ?>>
<span itemprop="name"><?php echo esc_html($title); ?></span> <span class="translate-y-[2px]" itemprop="name"><?php echo esc_html($title); ?></span>
</a> </a>
</li> </li>
@@ -151,11 +133,12 @@ if ($menu) {
// Сепаратор // Сепаратор
if ($index < count($menu_items) - 1): ?> if ($index < count($menu_items) - 1): ?>
<li class="menu-separator" role="none" aria-hidden="true"> <li class="menu-separator" role="none" aria-hidden="true">
<span class="separator"><svg width="7" height="15" viewBox="0 0 7 15" fill="none" xmlns="http://www.w3.org/2000/svg"> <span class="separator">
<path d="M0.574219 14.4345L5.55022 0.5625H6.92622L1.93422 14.4345H0.574219Z" <svg width="7" height="15" viewBox="0 0 7 15" fill="none" xmlns="http://www.w3.org/2000/svg">
class="fill-[#E0E0E0] dark:fill-[#F8F8F8] dark:opacity-20" /> <path d="M0.574219 14.4345L5.55022 0.5625H6.92622L1.93422 14.4345H0.574219Z"
</svg> class="fill-[#E0E0E0] dark:fill-[#F8F8F8] dark:opacity-20" />
</span> </svg>
</span>
</li> </li>
<?php endif; <?php endif;
@@ -165,16 +148,12 @@ if ($menu) {
</nav> </nav>
<?php <?php
// Cео // Только схема навигации
?> ?>
<script type="application/ld+json"> <script type="application/ld+json">
<?php echo json_encode($navigation_schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); ?> <?php echo json_encode($navigation_schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); ?>
</script> </script>
<script type="application/ld+json">
<?php echo json_encode($breadcrumb_schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); ?>
</script>
<?php <?php
} }
} }
+13
View File
@@ -0,0 +1,13 @@
<?php
/*
Template Name: Страница личного кабинета
*/
?>
<?php
get_header(); ?>
123321
<div id="mf_personal_widget_cont_ksm"></div>
<?php
get_footer();
+61
View File
@@ -0,0 +1,61 @@
<?php
/**
* Template Name: Шаблон страницы спасибо за заявку
*/
get_header();
?>
<section class="py-[90px]">
<div class="container mx-auto">
<h2 class="font-[500] text-[32px] leading-[115%] text-center">
<strong>Подписывайтесь</strong> на нас:
</h2>
<div class="flex gap-[24px] flex-wrap justify-center mt-[40px]">
<?php $vk = get_field('vk'); ?>
<div class="relative h-[580px] w-[424px] pb-[24px] flex flex-col px-[24px]">
<?php if ($vk) : ?>
<img class="w-full h-full rounded-[12px] object-cover absolute inset-0"
src="<?php echo esc_url($vk['url']); ?>" alt="<?php echo esc_attr($vk['alt']); ?>"/>
<?php endif; ?>
<div class="relative z-[1] mt-auto flex flex-col gap-[24px]">
<a class="!no-underline transition red-gradient-hover gap-[12px] w-full rounded-[90px] flex items-center justify-center h-[75px]" href="https://vk.com/fakelgym" target="_blank">
<span class="font-[600] text-[18px] leading-[195%] text-[#f8f8f8]">Подписаться</span>
<svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 17.5C0 7.83502 7.83502 0 17.5 0C27.165 0 35 7.83502 35 17.5C35 27.165 27.165 35 17.5 35C7.83502 35 0 27.165 0 17.5Z" fill="url(#paint0_linear_4064_4274)" />
<path d="M22.3612 11.7656C22.8445 11.7656 23.2366 12.1578 23.2366 12.641V20.5156C23.2366 20.9989 22.8445 21.391 22.3612 21.391C21.878 21.391 21.4858 20.9989 21.4858 20.5156V14.7544L13.258 22.9823C12.9163 23.324 12.3617 23.324 12.02 22.9823C11.6782 22.6406 11.6782 22.0859 12.02 21.7442L20.2478 13.5164H14.4866C14.0033 13.5164 13.6112 13.1243 13.6112 12.641C13.6112 12.1578 14.0033 11.7656 14.4866 11.7656H22.3612Z" fill="#F8F8F8" />
<defs>
<linearGradient id="paint0_linear_4064_4274" x1="0" y1="17.5" x2="35" y2="17.5" gradientUnits="userSpaceOnUse">
<stop offset="0.443137" stop-color="#F8F8F8" stop-opacity="0.34" />
<stop offset="0.929023" stop-color="white" stop-opacity="0.72" />
</linearGradient>
</defs>
</svg>
</a>
</div>
</div>
<?php $dzen = get_field('dzen'); ?>
<div class="relative h-[580px] w-[424px] pb-[24px] flex flex-col px-[24px]">
<?php if ($dzen) : ?>
<img class="w-full h-full rounded-[12px] object-cover absolute inset-0"
src="<?php echo esc_url($dzen['url']); ?>" alt="<?php echo esc_attr($dzen['alt']); ?>"/>
<?php endif; ?>
<div class="relative z-[1] mt-auto flex flex-col gap-[24px]">
<a class="!no-underline red-gradient-hover gap-[12px] w-full rounded-[90px] flex items-center justify-center h-[75px]" href="https://dzen.ru/id/63d29eb15cb285585078a426" target="_blank">
<span class="font-[600] text-[18px] leading-[195%] text-[#f8f8f8]">Подписаться</span>
<svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 17.5C0 7.83502 7.83502 0 17.5 0C27.165 0 35 7.83502 35 17.5C35 27.165 27.165 35 17.5 35C7.83502 35 0 27.165 0 17.5Z" fill="url(#paint0_linear_4064_4274)" />
<path d="M22.3612 11.7656C22.8445 11.7656 23.2366 12.1578 23.2366 12.641V20.5156C23.2366 20.9989 22.8445 21.391 22.3612 21.391C21.878 21.391 21.4858 20.9989 21.4858 20.5156V14.7544L13.258 22.9823C12.9163 23.324 12.3617 23.324 12.02 22.9823C11.6782 22.6406 11.6782 22.0859 12.02 21.7442L20.2478 13.5164H14.4866C14.0033 13.5164 13.6112 13.1243 13.6112 12.641C13.6112 12.1578 14.0033 11.7656 14.4866 11.7656H22.3612Z" fill="#F8F8F8" />
<defs>
<linearGradient id="paint0_linear_4064_4274" x1="0" y1="17.5" x2="35" y2="17.5" gradientUnits="userSpaceOnUse">
<stop offset="0.443137" stop-color="#F8F8F8" stop-opacity="0.34" />
<stop offset="0.929023" stop-color="white" stop-opacity="0.72" />
</linearGradient>
</defs>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<?php get_footer(); ?>
+233
View File
@@ -0,0 +1,233 @@
<?php
/*
Template Name: Страница тренеров
*/
get_header();
if (!function_exists('get_trainers_for_current_language')) {
function get_trainers_for_current_language()
{
$current_lang = pll_current_language();
$args = array(
'post_type' => 'trainer',
'posts_per_page' => -1,
'lang' => $current_lang,
'post_status' => 'publish',
'sort' => 'menu_order',
'order' => 'ASC',
);
return get_posts($args);
}
}
$trainers = get_trainers_for_current_language();
$trainers_data = array();
if ($trainers) {
foreach ($trainers as $trainer) {
$trainer_info = array(
'post' => $trainer,
'name' => '',
'exp' => '',
'short_desc' => ''
);
if (have_rows('short_info', $trainer->ID)) {
while (have_rows('short_info', $trainer->ID)) {
the_row();
$trainer_info['name'] = get_sub_field('name');
$trainer_info['exp'] = get_sub_field('exp');
$trainer_info['short_desc'] = get_sub_field('short_desc');
}
}
$trainers_data[] = $trainer_info;
}
}
?>
<section class="py-[90px] pb-[45px]">
<div class="container mx-auto">
<?php if ($trainers_data): ?>
<div class="grid grid-cols-4 gap-[24px]">
<?php foreach ($trainers_data as $trainer_data): ?>
<?php $trainer = $trainer_data['post']; ?>
<a href="<?php echo get_permalink($trainer->ID); ?>" class="!no-underline group block">
<div class="flex flex-col gap-[12px]">
<div class="flex relative rounded-[20px] overflow-hidden shadow-[0_2px_32px_0_rgba(16,_15,_15,_0.03)]">
<?php $photo_images = get_field('photo', $trainer->ID); ?>
<?php if ($photo_images && !empty($photo_images[0])): ?>
<div class="overflow-hidden h-[460px]">
<img src="<?php echo esc_url($photo_images[0]['url']); ?>"
alt="<?php echo esc_attr($photo_images[0]['alt']); ?>"
loading="lazy"
class="w-full h-full object-cover transition-transform"/>
</div>
<?php endif; ?>
<div class="flex gap-[4px] absolute left-[12px] bottom-[16px] group-hover:text-[#e21e24]">
<div class="text-[15px] leading-[110%] font-[600] text-[#fff] px-[12px] h-[29px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo pll_current_language('name'); ?>
</div>
<?php $exp = $trainer_data['exp']; ?>
<?php if ($exp): ?>
<div class="text-[15px] leading-[110%] font-[600] text-[#fff] px-[12px] h-[29px] flex items-center justify-center rounded-[32px] backdrop-blur-[8px] bg-[linear-gradient(90deg,rgba(157,153,148,0.7)_39.42%,rgba(197,197,185,0.7)_92.9%)]">
<?php echo esc_html($exp); ?>
</div>
<?php endif; ?>
</div>
</div>
<div>
<?php $name = $trainer_data['name']; ?>
<?php if ($name): ?>
<div class="text-[24px] leading-[125%] font-[600]">
<?php echo esc_html($name); ?>
</div>
<?php endif; ?>
<?php $short_desc = $trainer_data['short_desc']; ?>
<?php if ($short_desc): ?>
<div class="text-[16px] leading-[145%] font-[500] mt-[4px] text-[#6c6b6b]">
<?php echo wp_kses_post($short_desc); ?>
</div>
<?php endif; ?>
</div>
</div>
</a>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</section>
<section class="py-[90px] pt-[45px] radial-gradient">
<div class="container mx-auto">
<?php $team_photo = get_field('team_photo'); ?>
<?php if ($team_photo) : ?>
<img
class="rounded-[20px] w-full h-[620px] object-cover"
src="<?php echo esc_url($team_photo['url']); ?>"
alt="<?php echo esc_attr($team_photo['alt']); ?>"/>
<?php endif; ?>
<?php
$blocks = [
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.7084 34.6648C19.4886 34.7747 19.2463 34.8318 19.0007 34.8318C18.755 34.8318 18.5127 34.7747 18.2929 34.6648L18.2866 34.6633L18.2739 34.6569L18.2343 34.6363C18.0057 34.5182 17.7787 34.3968 17.5535 34.2722C14.8741 32.7783 12.3564 31.0114 10.0406 28.9997C8.83735 27.9524 7.70983 26.8212 6.66648 25.6145C6.59119 25.5264 6.49773 25.4556 6.39251 25.4069C6.2873 25.3583 6.17282 25.333 6.0569 25.3327H3.16732C2.74739 25.3327 2.34466 25.1659 2.04773 24.8689C1.7508 24.572 1.58398 24.1693 1.58398 23.7493C1.58398 23.3294 1.7508 22.9267 2.04773 22.6298C2.34466 22.3328 2.74739 22.166 3.16732 22.166H9.50065C9.81704 22.1658 10.1261 22.0708 10.388 21.8933C10.6499 21.7158 10.8526 21.4639 10.97 21.1701L12.3728 17.6646C12.3962 17.6055 12.4367 17.5549 12.4892 17.5191C12.5418 17.4834 12.6038 17.4643 12.6673 17.4643C12.7308 17.4643 12.7929 17.4834 12.8454 17.5191C12.8979 17.5549 12.9385 17.6055 12.9618 17.6646L15.948 25.1284C16.0655 25.4223 16.2684 25.6741 16.5304 25.8516C16.7925 26.029 17.1017 26.1238 17.4181 26.1238C17.7346 26.1238 18.0438 26.029 18.3058 25.8516C18.5679 25.6741 18.7707 25.4223 18.8882 25.1284L20.6062 20.8313C20.6295 20.7722 20.6701 20.7215 20.7226 20.6858C20.7751 20.6501 20.8371 20.631 20.9007 20.631C20.9642 20.631 21.0262 20.6501 21.0787 20.6858C21.1312 20.7215 21.1718 20.7722 21.1952 20.8313L21.3313 21.1701C21.4487 21.4639 21.6514 21.7158 21.9133 21.8933C22.1752 22.0708 22.4843 22.1658 22.8007 22.166H25.334C25.7539 22.166 26.1566 21.9992 26.4536 21.7023C26.7505 21.4053 26.9173 21.0026 26.9173 20.5827C26.9173 20.1628 26.7505 19.76 26.4536 19.4631C26.1566 19.1662 25.7539 18.9993 25.334 18.9993H24.0863C24.0232 18.9991 23.9615 18.98 23.9093 18.9444C23.8571 18.9089 23.8168 18.8585 23.7934 18.7998L22.3716 15.2453C22.2541 14.9514 22.0512 14.6996 21.7891 14.5221C21.5271 14.3447 21.2179 14.2499 20.9014 14.2499C20.585 14.2499 20.2758 14.3447 20.0137 14.5221C19.7517 14.6996 19.5488 14.9514 19.4313 15.2453L17.7118 19.5424C17.6885 19.6015 17.6479 19.6522 17.5954 19.6879C17.5429 19.7236 17.4808 19.7427 17.4173 19.7427C17.3538 19.7427 17.2918 19.7236 17.2392 19.6879C17.1867 19.6522 17.1462 19.6015 17.1228 19.5424L14.1367 12.0802C14.0189 11.7868 13.816 11.5355 13.5541 11.3584C13.2923 11.1814 12.9834 11.0868 12.6673 11.0868C12.3512 11.0868 12.0424 11.1814 11.7805 11.3584C11.5186 11.5355 11.3158 11.7868 11.198 12.0802L8.42873 18.9993H3.16573C3.00493 19.0007 2.84774 18.9516 2.71625 18.8591C2.58477 18.7665 2.48559 18.635 2.43265 18.4832C1.87549 16.866 1.58875 15.1681 1.58398 13.4577C1.58398 11.1935 2.2569 8.66177 3.78957 6.65727C5.36182 4.6021 7.79699 3.16602 11.084 3.16602C14.3504 3.16602 16.6953 4.57677 18.1932 5.9606C18.4956 6.23927 18.7632 6.51635 19.0007 6.78393C19.2382 6.51635 19.5057 6.23927 19.8082 5.9606C21.3044 4.57677 23.6493 3.16602 26.9173 3.16602C30.2043 3.16602 32.6395 4.6021 34.2117 6.65727C35.7444 8.66177 36.4173 11.1935 36.4173 13.4577C36.4173 20.1013 32.0125 25.4514 27.9607 28.9981C25.491 31.1416 22.7925 33.0064 19.9142 34.5588L19.7686 34.6348L19.7274 34.6569L19.7147 34.6633L19.7084 34.6648Z" fill="url(#paint0_linear_2307_11127)" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.75 23C25.7554 23 24.8016 23.3951 24.0983 24.0983C23.3951 24.8016 23 25.7554 23 26.75V34.25C23 35.2446 23.3951 36.1984 24.0983 36.9017C24.8016 37.6049 25.7554 38 26.75 38H34.25C35.2446 38 36.1984 37.6049 36.9017 36.9017C37.6049 36.1984 38 35.2446 38 34.25V26.75C38 25.7554 37.6049 24.8016 36.9017 24.0983C36.1984 23.3951 35.2446 23 34.25 23H26.75ZM33.98 27.674C34.1327 27.8013 34.2286 27.9841 34.2466 28.1821C34.2646 28.3801 34.2032 28.5772 34.076 28.73L30.326 33.23C30.2612 33.3077 30.1814 33.3714 30.0914 33.4174C30.0013 33.4635 29.9029 33.4908 29.802 33.4978C29.7011 33.5048 29.5998 33.4914 29.5043 33.4582C29.4087 33.4251 29.3209 33.373 29.246 33.305L26.996 31.2597C26.8515 31.1253 26.7659 30.9393 26.7577 30.7421C26.7494 30.5449 26.8193 30.3524 26.952 30.2064C27.0847 30.0603 27.2697 29.9725 27.4667 29.9619C27.6638 29.9513 27.8571 30.0188 28.0048 30.1497L29.675 31.6685L32.924 27.77C33.0513 27.6173 33.2341 27.5214 33.4321 27.5034C33.6301 27.4854 33.8272 27.5468 33.98 27.674Z" fill="#E21E24" />
<defs>
<linearGradient id="paint0_linear_2307_11127" x1="1.58398" y1="18.9989" x2="36.4173" y2="18.9989" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'title' => 'Разные форматы — один подход',
'description' => 'Йога, пилатес, танцы, силовые, реабилитация — тренеры помогут найти тот формат, в котором телу и голове хорошо.'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.69186 23.2314L15.0099 14.9134L16.9968 16.9025C17.9336 17.8441 19.1805 18.3628 20.5075 18.3628C21.8344 18.3628 23.0813 17.8441 24.0185 16.9021C25.9458 14.9651 25.9458 11.8135 24.0185 9.87645L20.9032 6.75288L22.4507 5.39193C26.3435 1.98061 32.2647 2.37093 35.676 6.2637C39.0873 10.1565 38.697 16.0776 34.8042 19.489L32.5808 21.5439L30.1124 19.0756C28.6763 17.6394 26.3395 17.6394 24.9034 19.0756C24.2185 19.7604 23.8374 20.6676 23.8257 21.6343C22.8983 21.6461 21.9747 22.0042 21.2687 22.7102C20.5624 23.4166 20.2042 24.3409 20.1928 25.2687C19.2649 25.2802 18.3406 25.6384 17.6342 26.3448C16.1981 27.7809 16.198 30.1177 17.6341 31.5538L19.611 33.5307L17.9391 35.0759C16.7985 36.0755 15.0635 35.9611 14.0639 34.8205C13.0644 33.6799 13.1787 31.9449 14.3194 30.9454C13.1788 31.9449 11.4438 31.8306 10.4443 30.6899C9.44471 29.5493 9.55908 27.8143 10.6997 26.8148L10.6996 26.8146C9.559 27.8142 7.82399 27.6999 6.82441 26.5592C5.96785 25.5817 6.01743 24.3477 6.69186 23.2314Z" fill="url(#paint0_linear_2307_11133)" />
<path d="M2.74495 4.98813C6.40498 1.32818 12.3389 1.32818 15.9989 4.98813L22.4407 11.4469C23.21 12.2201 23.4463 13.4103 23.0405 14.421C22.5991 15.5206 21.4621 16.2246 20.2806 16.1265C19.6291 16.0724 19.0153 15.7797 18.5577 15.314L15.0114 11.7636L5.63889 21.136L2.74503 18.242C-0.914996 14.5821 -0.914996 8.64808 2.74495 4.98813ZM29.6539 25.8855L26.4783 22.7099C26.3426 22.575 26.235 22.4144 26.1617 22.2376C26.0885 22.0608 26.0511 21.8712 26.0516 21.6798C26.0511 21.4885 26.0885 21.2989 26.1617 21.1221C26.235 20.9453 26.3426 20.7847 26.4783 20.6498C26.7622 20.3658 27.1354 20.2238 27.5083 20.2238C27.8814 20.2238 28.2544 20.3658 28.5384 20.6498L31.7139 23.8254C32.2797 24.3911 32.2815 25.3102 31.72 25.8788C31.7107 25.8879 31.7012 25.8966 31.6918 25.9056C31.4193 26.1674 31.063 26.3122 30.6839 26.3122C30.4925 26.3127 30.3029 26.2753 30.1261 26.202C29.9493 26.1288 29.7888 26.0212 29.6539 25.8855ZM26.0191 29.5202L22.8435 26.3446C22.7079 26.2097 22.6003 26.0491 22.5271 25.8723C22.4538 25.6955 22.4164 25.5059 22.4169 25.3146C22.4164 25.1232 22.4539 24.9336 22.5271 24.7568C22.6003 24.58 22.7079 24.4195 22.8435 24.2845C23.1187 24.0094 23.4845 23.8578 23.8736 23.8578C24.2627 23.8578 24.6286 24.0094 24.9037 24.2845L28.0793 27.4601C28.215 27.595 28.3226 27.7556 28.3958 27.9324C28.4691 28.1092 28.5065 28.2988 28.506 28.4902C28.5065 28.6804 28.4694 28.8689 28.3969 29.0449C28.3245 29.2208 28.218 29.3807 28.0837 29.5155C28.0777 29.5214 28.0714 29.527 28.0654 29.5329C27.4963 30.0874 26.5827 30.0837 26.0191 29.5202ZM22.3846 33.1548L19.209 29.9793C18.6411 29.4113 18.641 28.487 19.209 27.9191C19.4842 27.644 19.8499 27.4924 20.2391 27.4924C20.6282 27.4924 20.994 27.6439 21.2691 27.919L24.4447 31.0946C24.5804 31.2296 24.688 31.3901 24.7612 31.567C24.8345 31.7438 24.8719 31.9333 24.8714 32.1247C24.8719 32.3156 24.8347 32.5046 24.7618 32.681C24.6889 32.8574 24.5819 33.0176 24.4469 33.1524C24.4439 33.1554 24.4409 33.1581 24.4379 33.161C23.8693 33.7224 22.9504 33.7206 22.3846 33.1548Z" fill="url(#paint1_linear_2307_11133)" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.75 23C25.7554 23 24.8016 23.3951 24.0983 24.0983C23.3951 24.8016 23 25.7554 23 26.75V34.25C23 35.2446 23.3951 36.1984 24.0983 36.9017C24.8016 37.6049 25.7554 38 26.75 38H34.25C35.2446 38 36.1984 37.6049 36.9017 36.9017C37.6049 36.1984 38 35.2446 38 34.25V26.75C38 25.7554 37.6049 24.8016 36.9017 24.0983C36.1984 23.3951 35.2446 23 34.25 23H26.75ZM33.98 27.674C34.1327 27.8013 34.2286 27.9841 34.2466 28.1821C34.2646 28.3801 34.2032 28.5772 34.076 28.73L30.326 33.23C30.2612 33.3077 30.1814 33.3714 30.0914 33.4174C30.0013 33.4635 29.9029 33.4908 29.802 33.4978C29.7011 33.5048 29.5998 33.4914 29.5043 33.4582C29.4087 33.4251 29.3209 33.373 29.246 33.305L26.996 31.2597C26.8515 31.1253 26.7659 30.9393 26.7577 30.7421C26.7494 30.5449 26.8193 30.3524 26.952 30.2064C27.0847 30.0603 27.2697 29.9725 27.4667 29.9619C27.6638 29.9513 27.8571 30.0188 28.0048 30.1497L29.675 31.6685L32.924 27.77C33.0513 27.6173 33.2341 27.5214 33.4321 27.5034C33.6301 27.4854 33.8272 27.5468 33.98 27.674Z" fill="#E21E24" />
<defs>
<linearGradient id="paint0_linear_2307_11133" x1="6.18359" y1="19.4126" x2="37.9996" y2="19.4126" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_2307_11133" x1="0" y1="17.9119" x2="32.1397" y2="17.9119" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
</defs>
</svg>',
'title' => 'Вовлечение и забота',
'description' => 'Мы подстраиваемся под клиента. Здесь нет "неправильных тел" или "слишком поздно начинать".'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2307_11139)">
<path d="M21.7141 21.7139H16.2856C14.7865 21.7139 13.5713 22.9291 13.5713 24.4282V35.2853C13.5713 36.7844 14.7865 37.9996 16.2856 37.9996H21.7141C23.2132 37.9996 24.4284 36.7844 24.4284 35.2853V24.4282C24.4284 22.9291 23.2132 21.7139 21.7141 21.7139Z" fill="url(#paint0_linear_2307_11139)" />
<path d="M8.14286 25.7861H2.71429C1.21523 25.7861 0 27.0014 0 28.5004V35.2861C0 36.7852 1.21523 38.0004 2.71429 38.0004H8.14286C9.64192 38.0004 10.8571 36.7852 10.8571 35.2861V28.5004C10.8571 27.0014 9.64192 25.7861 8.14286 25.7861Z" fill="url(#paint1_linear_2307_11139)" />
<path d="M35.2854 14.9287H29.8569C28.3578 14.9287 27.1426 16.1439 27.1426 17.643V35.2859C27.1426 36.7849 28.3578 38.0001 29.8569 38.0001H35.2854C36.7845 38.0001 37.9997 36.7849 37.9997 35.2859V17.643C37.9997 16.1439 36.7845 14.9287 35.2854 14.9287Z" fill="url(#paint2_linear_2307_11139)" />
<path d="M5.42857 20.3571C5.54162 20.357 5.65422 20.3429 5.76379 20.3151C10.6214 19.0776 15.2952 17.2068 19.665 14.7508C24.4222 12.0625 28.7687 8.70509 32.5714 4.78121V8.14286C32.5714 8.50279 32.7144 8.84799 32.9689 9.1025C33.2234 9.35702 33.5686 9.5 33.9286 9.5C34.2885 9.5 34.6337 9.35702 34.8882 9.1025C35.1427 8.84799 35.2857 8.50279 35.2857 8.14286V1.35714C35.2857 0.997206 35.1427 0.652012 34.8882 0.397498C34.6337 0.142984 34.2885 0 33.9286 0H27.1429C26.7829 0 26.4377 0.142984 26.1832 0.397498C25.9287 0.652012 25.7857 0.997206 25.7857 1.35714C25.7857 1.71708 25.9287 2.06227 26.1832 2.31679C26.4377 2.5713 26.7829 2.71429 27.1429 2.71429H30.7746C27.1203 6.52636 22.9297 9.78521 18.335 12.388C14.1723 14.7252 9.72021 16.5048 5.09336 17.6809C4.76906 17.7591 4.48497 17.9541 4.29532 18.2286C4.10567 18.5031 4.02375 18.8378 4.06521 19.1688C4.10667 19.4998 4.26861 19.804 4.52009 20.0232C4.77158 20.2424 5.09499 20.3613 5.42857 20.3571Z" fill="url(#paint3_linear_2307_11139)" />
<path d="M33 25.5L26 30V32.5L31 35.5L36 27.5L33 25.5Z" fill="white" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.75 23C25.7554 23 24.8016 23.3951 24.0983 24.0983C23.3951 24.8016 23 25.7554 23 26.75V34.25C23 35.2446 23.3951 36.1984 24.0983 36.9017C24.8016 37.6049 25.7554 38 26.75 38H34.25C35.2446 38 36.1984 37.6049 36.9017 36.9017C37.6049 36.1984 38 35.2446 38 34.25V26.75C38 25.7554 37.6049 24.8016 36.9017 24.0983C36.1984 23.3951 35.2446 23 34.25 23H26.75ZM33.98 27.674C34.1327 27.8013 34.2286 27.9841 34.2466 28.1821C34.2646 28.3801 34.2032 28.5772 34.076 28.73L30.326 33.23C30.2612 33.3077 30.1814 33.3714 30.0914 33.4174C30.0013 33.4635 29.9029 33.4908 29.802 33.4978C29.7011 33.5048 29.5998 33.4914 29.5043 33.4582C29.4087 33.4251 29.3209 33.373 29.246 33.305L26.996 31.2597C26.8515 31.1253 26.7659 30.9393 26.7577 30.7421C26.7494 30.5449 26.8193 30.3524 26.952 30.2064C27.0847 30.0603 27.2697 29.9725 27.4667 29.9619C27.6638 29.9513 27.8571 30.0188 28.0048 30.1497L29.675 31.6685L32.924 27.77C33.0513 27.6173 33.2341 27.5214 33.4321 27.5034C33.6301 27.4854 33.8272 27.5468 33.98 27.674Z" fill="#E21E24" />
</g>
<defs>
<linearGradient id="paint0_linear_2307_11139" x1="13.5713" y1="29.8567" x2="24.4284" y2="29.8567" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_2307_11139" x1="0" y1="31.8933" x2="10.8571" y2="31.8933" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_2307_11139" x1="27.1426" y1="26.4644" x2="37.9997" y2="26.4644" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint3_linear_2307_11139" x1="4.05469" y1="10.1786" x2="35.2857" y2="10.1786" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_2307_11139">
<rect width="38" height="38" fill="white" />
</clipPath>
</defs>
</svg>',
'title' => 'Постоянное развитие',
'description' => 'Наши специалисты обучаются каждый год: новые методики, индивидуальный подход, работа с возрастными клиентами.'
],
[
'svg' => '<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2307_11145)">
<path d="M29.2866 25.327C27.148 21.7037 23.2066 19.4414 19.0001 19.4414C14.7936 19.4414 10.8699 21.6861 8.71361 25.327C7.81221 26.8647 7.79454 28.7205 8.67826 30.2582C9.54431 31.7958 11.135 32.6972 12.8848 32.6972H25.0978C26.8652 32.6972 28.4383 31.7782 29.3043 30.2582C30.188 28.7028 30.1703 26.8647 29.269 25.327H29.2866Z" fill="url(#paint0_linear_2307_11145)" />
<path d="M19 18.5576C22.6605 18.5576 25.6279 15.5902 25.6279 11.9297C25.6279 8.26917 22.6605 5.30176 19 5.30176C15.3395 5.30176 12.3721 8.26917 12.3721 11.9297C12.3721 15.5902 15.3395 18.5576 19 18.5576Z" fill="url(#paint1_linear_2307_11145)" />
<path d="M36.6744 15.0233C35.9498 15.0233 35.3488 14.4223 35.3488 13.6977V6.62791C35.3488 4.43628 33.5637 2.65116 31.3721 2.65116H24.3023C23.5777 2.65116 22.9767 2.05023 22.9767 1.32558C22.9767 0.60093 23.5777 0 24.3023 0H31.3721C35.0307 0 38 2.9693 38 6.62791V13.6977C38 14.4223 37.3991 15.0233 36.6744 15.0233ZM31.3721 38H24.3023C23.5777 38 22.9767 37.3991 22.9767 36.6744C22.9767 35.9498 23.5777 35.3488 24.3023 35.3488H31.3721C33.5637 35.3488 35.3488 33.5637 35.3488 31.3721V24.3023C35.3488 23.5777 35.9498 22.9767 36.6744 22.9767C37.3991 22.9767 38 23.5777 38 24.3023V31.3721C38 35.0307 35.0307 38 31.3721 38ZM1.32558 15.0233C0.60093 15.0233 0 14.4223 0 13.6977V6.62791C0 2.9693 2.9693 0 6.62791 0H13.6977C14.4223 0 15.0233 0.60093 15.0233 1.32558C15.0233 2.05023 14.4223 2.65116 13.6977 2.65116H6.62791C4.43628 2.65116 2.65116 4.43628 2.65116 6.62791V13.6977C2.65116 14.4223 2.05023 15.0233 1.32558 15.0233ZM13.6977 38H6.62791C2.9693 38 0 35.0307 0 31.3721V24.3023C0 23.5777 0.60093 22.9767 1.32558 22.9767C2.05023 22.9767 2.65116 23.5777 2.65116 24.3023V31.3721C2.65116 33.5637 4.43628 35.3488 6.62791 35.3488H13.6977C14.4223 35.3488 15.0233 35.9498 15.0233 36.6744C15.0233 37.3991 14.4223 38 13.6977 38Z" fill="url(#paint2_linear_2307_11145)" />
<path d="M33 25.5L26 30V32.5L31 35.5L36 27.5L33 25.5Z" fill="white" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.75 23C25.7554 23 24.8016 23.3951 24.0983 24.0983C23.3951 24.8016 23 25.7554 23 26.75V34.25C23 35.2446 23.3951 36.1984 24.0983 36.9017C24.8016 37.6049 25.7554 38 26.75 38H34.25C35.2446 38 36.1984 37.6049 36.9017 36.9017C37.6049 36.1984 38 35.2446 38 34.25V26.75C38 25.7554 37.6049 24.8016 36.9017 24.0983C36.1984 23.3951 35.2446 23 34.25 23H26.75ZM33.98 27.674C34.1327 27.8013 34.2286 27.9841 34.2466 28.1821C34.2646 28.3801 34.2032 28.5772 34.076 28.73L30.326 33.23C30.2612 33.3077 30.1814 33.3714 30.0914 33.4174C30.0013 33.4635 29.9029 33.4908 29.802 33.4978C29.7011 33.5048 29.5998 33.4914 29.5043 33.4582C29.4087 33.4251 29.3209 33.373 29.246 33.305L26.996 31.2597C26.8515 31.1253 26.7659 30.9393 26.7577 30.7421C26.7494 30.5449 26.8193 30.3524 26.952 30.2064C27.0847 30.0603 27.2697 29.9725 27.4667 29.9619C27.6638 29.9513 27.8571 30.0188 28.0048 30.1497L29.675 31.6685L32.924 27.77C33.0513 27.6173 33.2341 27.5214 33.4321 27.5034C33.6301 27.4854 33.8272 27.5468 33.98 27.674Z" fill="#E21E24" />
</g>
<defs>
<linearGradient id="paint0_linear_2307_11145" x1="8.02637" y1="26.0693" x2="29.9562" y2="26.0693" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint1_linear_2307_11145" x1="12.3721" y1="11.9297" x2="25.6279" y2="11.9297" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<linearGradient id="paint2_linear_2307_11145" x1="0" y1="19" x2="38" y2="19" gradientUnits="userSpaceOnUse">
<stop offset="0.673077" stop-color="#2B2C35" />
<stop offset="0.929023" stop-color="#4F5870" />
</linearGradient>
<clipPath id="clip0_2307_11145">
<rect width="38" height="38" fill="white" />
</clipPath>
</defs>
</svg>',
'title' => 'Про атмосферу, а не про давление',
'description' => 'Вы — в центре внимания. Тренировки без стресса, с ощущением заботы и прогресса.'
]
];
?>
<div class="mt-[40px] grid grid-cols-4 divide-x divide-[#e0e0e0]">
<?php foreach ($blocks as $index => $block): ?>
<div class="flex flex-col px-[24px] <?php echo $index === 0 ? 'pl-0' : ''; ?> <?php echo $index === 3 ? 'pr-0' : ''; ?>">
<div class="grid place-items-center w-[76px] h-[76px] rounded-[12px] small-shadow bg-[#f8f8f8]"> <?php echo $block['svg']; ?></div>
<p class="mt-[24px] w-full max-w-[220px] font-[600] text-[24px] leading-[125%]">
<?php echo htmlspecialchars($block['title']); ?>
</p>
<p class="mt-[12px] w-full max-w-[270px] font-[500] text-[16px] leading-[145%] text-[#6c6b6b]">
<?php echo htmlspecialchars($block['description']); ?>
</p>
</div>
<?php endforeach; ?>
</div>
</div>
</section>
<?php get_footer(); ?>
+97
View File
@@ -0,0 +1,97 @@
<?php
/*
Template Name: Страница тренировок
*/
get_header();
if (!function_exists('get_trainings_for_current_language')) {
function get_trainings_for_current_language()
{
$current_lang = pll_current_language();
$args = array(
'post_type' => 'training',
'posts_per_page' => -1,
'lang' => $current_lang,
'post_status' => 'publish',
'sort' => 'menu_order',
'order' => 'ASC',
);
return get_posts($args);
}
}
$trainings = get_trainings_for_current_language();
// Получаем все поля short_info для каждой тренировки
$trainings_data = array();
if ($trainings) {
foreach ($trainings as $training) {
$training_info = array(
'post' => $training,
'name' => '',
'exp' => '',
'short_desc' => ''
);
if (have_rows('short_info', $training->ID)) {
while (have_rows('short_info', $training->ID)) {
the_row();
$training_info['name'] = get_sub_field('name');
$training_info['exp'] = get_sub_field('exp');
$training_info['short_desc'] = get_sub_field('short_desc');
}
}
$trainings_data[] = $training_info;
}
}
?>
<section class="py-[96px]">
<div class="container mx-auto">
<?php if ($trainings_data): ?>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-[24px]">
<?php foreach ($trainings_data as $training_data): ?>
<?php $training = $training_data['post']; ?>
<div class="h-[540px] max-w-[312px] group">
<div class="flex flex-col bg-[#f8f8f8] relative h-[540px] rounded-[20px] overflow-hidden shadow-[0_2px_32px_0_rgba(16,_15,_15,_0.03)] group-hover:shadow-[0_8px_32px_0_rgba(16,_15,_15,_0.12)] transition-shadow duration-300">
<?php $photo_images = get_field('photo', $training->ID); ?>
<?php if ($photo_images && !empty($photo_images[0])): ?>
<div class="overflow-hidden min-h-[260px]">
<img src="<?php echo esc_url($photo_images[0]['url']); ?>"
alt="<?php echo esc_attr($photo_images[0]['alt']); ?>"
loading="lazy"
class="w-full h-full object-cover group-hover:scale-[1.05] transition-transform duration-300"/>
</div>
<?php endif; ?>
<div class="flex flex-col gap-[24px] h-full p-[24px]">
<?php $name = $training_data['name']; ?>
<?php if ($name): ?>
<div class="text-[24px] leading-[125%] font-[600]">
<?php echo esc_html($name); ?>
</div>
<?php endif; ?>
<?php $short_desc = $training_data['short_desc']; ?>
<?php if ($short_desc): ?>
<div class="text-[16px] leading-[145%] font-[500] text-[#222]">
<?php echo wp_kses_post($short_desc); ?>
</div>
<?php endif; ?>
<a href="<?php echo get_permalink($training->ID); ?>" class="!no-underline mt-auto h-[59px] flex grey-gradient-hover w-full rounded-[90px] px-[12px] text-[18px] font-[600] leading-[195%] text-[#f8f8f8] bg-[0_2px_32px_0_rgba(16,_15,_15,_0.03)] items-center justify-center hover:opacity-90 transition-opacity duration-300">
Перейти
</a>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</section>
<?php get_footer(); ?>