diff --git a/archive-trainer.php b/archive-trainer.php new file mode 100644 index 0000000..38f2f07 --- /dev/null +++ b/archive-trainer.php @@ -0,0 +1,230 @@ + '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; + } +} + +?> + +
+
+ + + +
+
+
+
+ + + <?php echo esc_attr($team_photo['alt']); ?> + + ' + + + + + + + + +', + 'title' => 'Разные форматы — один подход', + 'description' => 'Йога, пилатес, танцы, силовые, реабилитация — тренеры помогут найти тот формат, в котором телу и голове хорошо.' + ], + [ + 'svg' => ' + + + + + + + + + + + + + +', + 'title' => 'Вовлечение и забота', + 'description' => 'Мы подстраиваемся под клиента. Здесь нет "неправильных тел" или "слишком поздно начинать".' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +', + 'title' => 'Постоянное развитие', + 'description' => 'Наши специалисты обучаются каждый год: новые методики, индивидуальный подход, работа с возрастными клиентами.' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + + + + + + + + +', + 'title' => 'Про атмосферу, а не про давление', + 'description' => 'Вы — в центре внимания. Тренировки без стресса, с ощущением заботы и прогресса.' + ] + ]; + ?> + +
+ $block): ?> +
+
+

+ +

+

+ +

+
+ +
+
+
+ \ No newline at end of file diff --git a/assets/images/form-bg-dark.png b/assets/images/form-bg-dark.png new file mode 100644 index 0000000..efa6aa7 Binary files /dev/null and b/assets/images/form-bg-dark.png differ diff --git a/assets/images/form-bg-dark.png.webp b/assets/images/form-bg-dark.png.webp new file mode 100644 index 0000000..daf8369 Binary files /dev/null and b/assets/images/form-bg-dark.png.webp differ diff --git a/assets/images/form-bg-light.png b/assets/images/form-bg-light.png new file mode 100644 index 0000000..34d98e5 Binary files /dev/null and b/assets/images/form-bg-light.png differ diff --git a/assets/images/form-bg-light.png.webp b/assets/images/form-bg-light.png.webp new file mode 100644 index 0000000..21a3fbb Binary files /dev/null and b/assets/images/form-bg-light.png.webp differ diff --git a/assets/images/form-image-trainer.png b/assets/images/form-image-trainer.png new file mode 100644 index 0000000..8c8053c Binary files /dev/null and b/assets/images/form-image-trainer.png differ diff --git a/assets/images/form-image-trainer.png.webp b/assets/images/form-image-trainer.png.webp new file mode 100644 index 0000000..cb6f845 Binary files /dev/null and b/assets/images/form-image-trainer.png.webp differ diff --git a/assets/images/header-bg.png b/assets/images/header-bg.png new file mode 100644 index 0000000..b6a536a Binary files /dev/null and b/assets/images/header-bg.png differ diff --git a/assets/images/header-bg.png.webp b/assets/images/header-bg.png.webp new file mode 100644 index 0000000..abd7888 Binary files /dev/null and b/assets/images/header-bg.png.webp differ diff --git a/assets/images/hero-bg.png b/assets/images/hero-bg.png index 027e64f..a624b41 100644 Binary files a/assets/images/hero-bg.png and b/assets/images/hero-bg.png differ diff --git a/assets/images/hero-bg.png.webp b/assets/images/hero-bg.png.webp new file mode 100644 index 0000000..960cce4 Binary files /dev/null and b/assets/images/hero-bg.png.webp differ diff --git a/assets/images/masonry-decor.png b/assets/images/masonry-decor.png new file mode 100644 index 0000000..c6ed732 Binary files /dev/null and b/assets/images/masonry-decor.png differ diff --git a/assets/images/masonry-decor.png.webp b/assets/images/masonry-decor.png.webp new file mode 100644 index 0000000..8d5fb65 Binary files /dev/null and b/assets/images/masonry-decor.png.webp differ diff --git a/assets/images/trainer-bg-dark.png b/assets/images/trainer-bg-dark.png new file mode 100644 index 0000000..7f64303 Binary files /dev/null and b/assets/images/trainer-bg-dark.png differ diff --git a/assets/images/trainer-bg-dark.png.webp b/assets/images/trainer-bg-dark.png.webp new file mode 100644 index 0000000..3bce2e7 Binary files /dev/null and b/assets/images/trainer-bg-dark.png.webp differ diff --git a/assets/images/trainer-bg-light.png b/assets/images/trainer-bg-light.png new file mode 100644 index 0000000..302997f Binary files /dev/null and b/assets/images/trainer-bg-light.png differ diff --git a/assets/images/trainer-bg-light.png.webp b/assets/images/trainer-bg-light.png.webp new file mode 100644 index 0000000..6ba5243 Binary files /dev/null and b/assets/images/trainer-bg-light.png.webp differ diff --git a/css/app.css b/css/app.css index 79128c6..625e26c 100644 --- a/css/app.css +++ b/css/app.css @@ -7,7 +7,6 @@ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-blue-50: oklch(0.97 0.014 254.604); - --color-blue-500: oklch(0.623 0.214 259.815); --color-blue-800: oklch(0.424 0.199 265.638); --color-blue-900: oklch(0.379 0.146 265.522); --color-gray-100: oklch(0.967 0.003 264.542); @@ -22,7 +21,6 @@ --spacing: 0.25rem; --container-sm: 24rem; --container-lg: 32rem; - --container-2xl: 42rem; --text-sm: var(--wp--preset--font-size--sm, 0.875rem); --text-sm--line-height: calc(1.25 / 0.875); --text-xl: var(--wp--preset--font-size--xl, 1.25rem); @@ -41,6 +39,7 @@ --radius-xs: 0.125rem; --radius-md: 0.375rem; --radius-lg: 0.5rem; + --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); --blur-sm: 8px; --default-transition-duration: 150ms; --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); @@ -222,6 +221,9 @@ .visible { visibility: visible; } + .\!static { + position: static !important; + } .absolute { position: absolute; } @@ -231,18 +233,21 @@ .relative { position: relative; } + .static { + position: static; + } .inset-0 { inset: calc(var(--spacing) * 0); } .top-0 { top: calc(var(--spacing) * 0); } - .top-1\/2 { - top: calc(1/2 * 100%); - } .top-4 { top: calc(var(--spacing) * 4); } + .top-\[24px\] { + top: 24px; + } .top-\[32px\] { top: 32px; } @@ -252,14 +257,23 @@ .right-4 { right: calc(var(--spacing) * 4); } + .right-\[24px\] { + right: 24px; + } .bottom-0 { bottom: calc(var(--spacing) * 0); } + .bottom-\[16px\] { + bottom: 16px; + } .left-0 { left: calc(var(--spacing) * 0); } - .left-1\/2 { - left: calc(1/2 * 100%); + .left-\[12px\] { + left: 12px; + } + .z-0 { + z-index: 0; } .z-10 { z-index: 10; @@ -267,11 +281,14 @@ .z-50 { z-index: 50; } + .z-\[0\] { + z-index: 0; + } .z-\[1\] { z-index: 1; } - .z-\[1000\] { - z-index: 1000; + .z-\[49\] { + z-index: 49; } .container { width: 100%; @@ -306,9 +323,18 @@ max-width: 1440px; } } + .\!m-0 { + margin: calc(var(--spacing) * 0) !important; + } + .\!m-\[-1px\] { + margin: -1px !important; + } .m-8 { margin: calc(var(--spacing) * 8); } + .\!mx-auto { + margin-inline: auto !important; + } .mx-auto { margin-inline: auto; } @@ -318,15 +344,33 @@ .my-8 { margin-block: calc(var(--spacing) * 8); } + .mt-0 { + margin-top: calc(var(--spacing) * 0); + } .mt-4 { margin-top: calc(var(--spacing) * 4); } .mt-6 { margin-top: calc(var(--spacing) * 6); } + .mt-\[4px\] { + margin-top: 4px; + } + .mt-\[8px\] { + margin-top: 8px; + } .mt-\[10px\] { margin-top: 10px; } + .mt-\[12px\] { + margin-top: 12px; + } + .mt-\[14px\] { + margin-top: 14px; + } + .mt-\[16px\] { + margin-top: 16px; + } .mt-\[20px\] { margin-top: 20px; } @@ -339,12 +383,21 @@ .mt-\[26px\] { margin-top: 26px; } + .mt-\[28px\] { + margin-top: 28px; + } + .mt-\[32px\] { + margin-top: 32px; + } .mt-\[40px\] { margin-top: 40px; } .mt-\[44px\] { margin-top: 44px; } + .mt-\[45px\] { + margin-top: 45px; + } .mt-\[50px\] { margin-top: 50px; } @@ -384,6 +437,15 @@ .mb-\[40px\] { margin-bottom: 40px; } + .mb-\[90px\] { + margin-bottom: 90px; + } + .ml-\[8px\] { + margin-left: 8px; + } + .ml-auto { + margin-left: auto; + } .block { display: block; } @@ -396,8 +458,17 @@ .hidden { display: none; } - .inline-block { - display: inline-block; + .inline-flex { + display: inline-flex; + } + .\!h-\[1px\] { + height: 1px !important; + } + .\!h-\[62px\] { + height: 62px !important; + } + .\!h-\[100px\] { + height: 100px !important; } .h-1 { height: calc(var(--spacing) * 1); @@ -411,60 +482,156 @@ .h-\[2px\] { height: 2px; } + .h-\[6px\] { + height: 6px; + } .h-\[8px\] { height: 8px; } .h-\[24px\] { height: 24px; } + .h-\[29px\] { + height: 29px; + } + .h-\[30px\] { + height: 30px; + } .h-\[32px\] { height: 32px; } + .h-\[36px\] { + height: 36px; + } + .h-\[43px\] { + height: 43px; + } .h-\[44px\] { height: 44px; } .h-\[45px\] { height: 45px; } - .h-\[60px\] { - height: 60px; + .h-\[46px\] { + height: 46px; + } + .h-\[55px\] { + height: 55px; + } + .h-\[59px\] { + height: 59px; } .h-\[64px\] { height: 64px; } + .h-\[74px\] { + height: 74px; + } .h-\[75px\] { height: 75px; } + .h-\[76px\] { + height: 76px; + } + .h-\[78px\] { + height: 78px; + } .h-\[80px\] { height: 80px; } - .h-\[200px\] { - height: 200px; + .h-\[120px\] { + height: 120px; + } + .h-\[147px\] { + height: 147px; + } + .h-\[240px\] { + height: 240px; + } + .h-\[244px\] { + height: 244px; + } + .h-\[258px\] { + height: 258px; + } + .h-\[280px\] { + height: 280px; + } + .h-\[298px\] { + height: 298px; + } + .h-\[305px\] { + height: 305px; + } + .h-\[358px\] { + height: 358px; + } + .h-\[383px\] { + height: 383px; } .h-\[440px\] { height: 440px; } + .h-\[460px\] { + height: 460px; + } .h-\[500px\] { height: 500px; } + .h-\[512px\] { + height: 512px; + } + .h-\[540px\] { + height: 540px; + } .h-\[575px\] { height: 575px; } + .h-\[580px\] { + height: 580px; + } + .h-\[600px\] { + height: 600px; + } + .h-\[608px\] { + height: 608px; + } + .h-\[620px\] { + height: 620px; + } + .h-\[828px\] { + height: 828px; + } .h-full { height: 100%; } - .max-h-\[60px\] { - max-height: 60px; - } .max-h-\[90vh\] { max-height: 90vh; } + .min-h-\[48px\] { + min-height: 48px; + } + .min-h-\[260px\] { + min-height: 260px; + } + .min-h-\[330px\] { + min-height: 330px; + } .min-h-\[440px\] { min-height: 440px; } + .min-h-\[500px\] { + min-height: 500px; + } .min-h-screen { min-height: 100vh; } + .\!w-\[1px\] { + width: 1px !important; + } + .\!w-full { + width: 100% !important; + } .w-5 { width: calc(var(--spacing) * 5); } @@ -474,27 +641,39 @@ .w-16 { width: calc(var(--spacing) * 16); } + .w-\[6px\] { + width: 6px; + } .w-\[8px\] { width: 8px; } - .w-\[24px\] { - width: 24px; - } .w-\[32px\] { width: 32px; } - .w-\[60px\] { - width: 60px; + .w-\[42px\] { + width: 42px; + } + .w-\[55px\] { + width: 55px; } .w-\[64px\] { width: 64px; } + .w-\[76px\] { + width: 76px; + } .w-\[80px\] { width: 80px; } .w-\[136px\] { width: 136px; } + .w-\[160px\] { + width: 160px; + } + .w-\[424px\] { + width: 424px; + } .w-fit { width: -moz-fit-content; width: fit-content; @@ -507,30 +686,97 @@ padding-left: 5px; padding-right: 5px; } - .max-w-2xl { - max-width: var(--container-2xl); + .max-w-\[102px\] { + max-width: 102px; } - .max-w-\[60px\] { - max-width: 60px; + .max-w-\[135px\] { + max-width: 135px; + } + .max-w-\[160px\] { + max-width: 160px; + } + .max-w-\[179px\] { + max-width: 179px; } .max-w-\[210px\] { max-width: 210px; } + .max-w-\[213px\] { + max-width: 213px; + } + .max-w-\[220px\] { + max-width: 220px; + } + .max-w-\[240px\] { + max-width: 240px; + } + .max-w-\[245px\] { + max-width: 245px; + } + .max-w-\[270px\] { + max-width: 270px; + } .max-w-\[281px\] { max-width: 281px; } .max-w-\[300px\] { max-width: 300px; } - .max-w-\[380px\] { - max-width: 380px; + .max-w-\[301px\] { + max-width: 301px; } - .max-w-\[449px\] { - max-width: 449px; + .max-w-\[312px\] { + max-width: 312px; + } + .max-w-\[320px\] { + max-width: 320px; + } + .max-w-\[330px\] { + max-width: 330px; + } + .max-w-\[400px\] { + max-width: 400px; + } + .max-w-\[424px\] { + max-width: 424px; + } + .max-w-\[535px\] { + max-width: 535px; + } + .max-w-\[590px\] { + max-width: 590px; } .max-w-\[648px\] { max-width: 648px; } + .max-w-\[687px\] { + max-width: 687px; + } + .max-w-\[725px\] { + max-width: 725px; + } + .max-w-\[760px\] { + max-width: 760px; + } + .max-w-\[872px\] { + max-width: 872px; + } + .max-w-\[900px\] { + max-width: 900px; + } + .max-w-\[970px\] { + max-width: 970px; + } + .max-w-\[2000px\] { + max-width: 2000px; + } + .max-w-fit { + max-width: -moz-fit-content; + max-width: fit-content; + } + .max-w-full { + max-width: 100%; + } .max-w-lg { max-width: var(--container-lg); } @@ -549,12 +795,8 @@ .grow { flex-grow: 1; } - .translate-x-\[-50\%\] { - --tw-translate-x: -50%; - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .translate-y-\[-50\%\] { - --tw-translate-y: -50%; + .translate-y-\[2px\] { + --tw-translate-y: 2px; translate: var(--tw-translate-x) var(--tw-translate-y); } .scale-90 { @@ -572,6 +814,9 @@ .transform { transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y); } + .\!cursor-grab { + cursor: grab !important; + } .cursor-pointer { cursor: pointer; } @@ -581,12 +826,33 @@ .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); } + .grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + .grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } .flex-col { flex-direction: column; } + .flex-col-reverse { + flex-direction: column-reverse; + } + .flex-wrap { + flex-wrap: wrap; + } + .place-items-center { + place-items: center; + } .items-center { align-items: center; } + .items-end { + align-items: flex-end; + } .items-start { align-items: flex-start; } @@ -599,11 +865,14 @@ .justify-end { justify-content: flex-end; } + .justify-start { + justify-content: flex-start; + } .gap-\[4px\] { gap: 4px; } - .gap-\[5px\] { - gap: 5px; + .gap-\[6px\] { + gap: 6px; } .gap-\[8px\] { gap: 8px; @@ -614,6 +883,9 @@ .gap-\[12px\] { gap: 12px; } + .gap-\[16px\] { + gap: 16px; + } .gap-\[20px\] { gap: 20px; } @@ -626,6 +898,12 @@ .gap-\[32px\] { gap: 32px; } + .gap-\[48px\] { + gap: 48px; + } + .gap-\[60px\] { + gap: 60px; + } :where(.space-y-1 > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse)); @@ -636,36 +914,71 @@ margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))); } + :where(.space-y-\[8px\] > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(8px * var(--tw-space-y-reverse)); + margin-block-end: calc(8px * calc(1 - var(--tw-space-y-reverse))); + } + :where(.space-y-\[12px\] > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(12px * var(--tw-space-y-reverse)); + margin-block-end: calc(12px * calc(1 - var(--tw-space-y-reverse))); + } + .gap-x-\[40px\] { + -moz-column-gap: 40px; + column-gap: 40px; + } + .gap-y-\[16px\] { + row-gap: 16px; + } + :where(.divide-x > :not(:last-child)) { + --tw-divide-x-reverse: 0; + border-inline-style: var(--tw-border-style); + border-inline-start-width: calc(1px * var(--tw-divide-x-reverse)); + border-inline-end-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); + } + :where(.divide-\[\#e0e0e0\] > :not(:last-child)) { + border-color: #e0e0e0; + } .overflow-hidden { overflow: hidden; } - .overflow-x-auto { - overflow-x: auto; - } .overflow-y-auto { overflow-y: auto; } .rounded { border-radius: 0.25rem; } - .rounded-\[5px\] { - border-radius: 5px; + .rounded-\[6px\] { + border-radius: 6px; } .rounded-\[8px\] { border-radius: 8px; } + .rounded-\[9px\] { + border-radius: 9px; + } .rounded-\[12px\] { border-radius: 12px; } .rounded-\[16px\] { border-radius: 16px; } + .rounded-\[20px\] { + border-radius: 20px; + } + .rounded-\[24px\] { + border-radius: 24px; + } .rounded-\[25px\] { border-radius: 25px; } .rounded-\[30px\] { border-radius: 30px; } + .rounded-\[32px\] { + border-radius: 32px; + } .rounded-\[90px\] { border-radius: 90px; } @@ -684,30 +997,54 @@ .rounded-tl-none { border-top-left-radius: 0; } + .rounded-b-\[0\] { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + } .rounded-br-none { border-bottom-right-radius: 0; } .rounded-bl-none { border-bottom-left-radius: 0; } + .\!border-0 { + border-style: var(--tw-border-style) !important; + border-width: 0px !important; + } .border { border-style: var(--tw-border-style); border-width: 1px; } - .border-2 { - border-style: var(--tw-border-style); - border-width: 2px; - } .border-\[1px\] { border-style: var(--tw-border-style); border-width: 1px; } + .border-\[2px\] { + border-style: var(--tw-border-style); + border-width: 2px; + } + .border-t { + border-top-style: var(--tw-border-style); + border-top-width: 1px; + } + .border-r-\[0px\] { + border-right-style: var(--tw-border-style); + border-right-width: 0px; + } .border-b { border-bottom-style: var(--tw-border-style); border-bottom-width: 1px; } - .\!border-blue-500 { - border-color: var(--color-blue-500) !important; + .border-b-\[2px\] { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 2px; + } + .border-b-\[4px\] { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 4px; + } + .border-\[\#E0E0E0\] { + border-color: #E0E0E0; } .border-\[\#e0e0e0\] { border-color: #e0e0e0; @@ -715,11 +1052,23 @@ .border-\[\#e5e7eb\] { border-color: #e5e7eb; } + .border-\[\#e21e24\] { + border-color: #e21e24; + } + .border-\[\#fff\] { + border-color: #fff; + } .border-primary { border-color: var(--color-primary); } - .border-transparent { - border-color: transparent; + .border-t-\[\#f1f1f1\] { + border-top-color: #f1f1f1; + } + .\!border-b-\[\#e21e24\] { + border-bottom-color: #e21e24 !important; + } + .border-b-\[transparent\] { + border-bottom-color: transparent; } .bg-\[\#3b82f6\] { background-color: #3b82f6; @@ -727,24 +1076,33 @@ .bg-\[\#10b981\] { background-color: #10b981; } + .bg-\[\#E21E24\] { + background-color: #E21E24; + } .bg-\[\#e21e24\] { background-color: #e21e24; } .bg-\[\#f3f4f6\] { background-color: #f3f4f6; } + .bg-\[\#f8f8f8\] { + background-color: #f8f8f8; + } .bg-\[\#f9f9f9\] { background-color: #f9f9f9; } + .bg-\[\#fff\] { + background-color: #fff; + } .bg-\[\#ffffff\] { background-color: #ffffff; } + .bg-\[0_2px_32px_0_rgba\(16\,_15\,_15\,_0\.03\)\] { + background-color: 0 2px 32px 0 rgba(16, 15, 15, 0.03); + } .bg-\[rgba\(0\,0\,0\,0\.5\)\] { background-color: rgba(0,0,0,0.5); } - .bg-black { - background-color: var(--color-black); - } .bg-blue-50 { background-color: var(--color-blue-50); } @@ -757,21 +1115,76 @@ .bg-primary { background-color: var(--color-primary); } + .bg-transparent { + background-color: transparent; + } .bg-white { background-color: var(--color-white); } + .bg-gradient-to-t { + --tw-gradient-position: to top in oklab; + background-image: linear-gradient(var(--tw-gradient-stops)); + } + .bg-\[linear-gradient\(90deg\,\#2b2c35_67\.31\%\,\#4f5870_92\.9\%\)\] { + background-image: linear-gradient(90deg,#2b2c35 67.31%,#4f5870 92.9%); + } + .bg-\[linear-gradient\(90deg\,_\#2b2c35_39\.42\%\,_\#6e7996_92\.9\%\)\] { + background-image: linear-gradient(90deg, #2b2c35 39.42%, #6e7996 92.9%); + } + .bg-\[linear-gradient\(90deg\,_\#2b2c35_67\.31\%\,_\#4f5870_92\.9\%\)\] { + background-image: linear-gradient(90deg, #2b2c35 67.31%, #4f5870 92.9%); + } + .bg-\[linear-gradient\(90deg\,_\#9d9994_39\.42\%\,_\#bbb7b1_92\.9\%\)\] { + background-image: linear-gradient(90deg, #9d9994 39.42%, #bbb7b1 92.9%); + } + .bg-\[linear-gradient\(90deg\,_\#9d9994_39\.42\%\,_\#ccc9c4_92\.9\%\)\] { + background-image: linear-gradient(90deg, #9d9994 39.42%, #ccc9c4 92.9%); + } + .bg-\[linear-gradient\(90deg\,_rgba\(43\,_44\,_53\,_0\.06\)_39\.42\%\,_rgba\(110\,_121\,_150\,_0\.06\)_92\.9\%\)\] { + background-image: linear-gradient(90deg, rgba(43, 44, 53, 0.06) 39.42%, rgba(110, 121, 150, 0.06) 92.9%); + } + .bg-\[linear-gradient\(90deg\,rgba\(157\,153\,148\,0\.7\)_39\.42\%\,rgba\(197\,197\,185\,0\.7\)_92\.9\%\)\] { + background-image: linear-gradient(90deg,rgba(157,153,148,0.7) 39.42%,rgba(197,197,185,0.7) 92.9%); + } + .bg-\[linear-gradient\(180deg\,_\#f2f2f2_69\.59\%\,_\#ededed_100\%\)\] { + background-image: linear-gradient(180deg, #f2f2f2 69.59%, #ededed 100%); + } + .bg-\[linear-gradient\(180deg\,_\#f9f9f9_69\.59\%\,_\#ededed_100\%\)\] { + background-image: linear-gradient(180deg, #f9f9f9 69.59%, #ededed 100%); + } + .from-black\/50 { + --tw-gradient-from: color-mix(in oklab, var(--color-black) 50%, transparent); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-transparent { + --tw-gradient-to: transparent; + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .bg-cover { background-size: cover; } + .bg-clip-text { + -webkit-background-clip: text; + background-clip: text; + } .bg-center { background-position: center; } .bg-no-repeat { background-repeat: no-repeat; } + .fill-\[\#222\] { + fill: #222; + } + .fill-\[\#222222\] { + fill: #222222; + } .fill-\[\#E0E0E0\] { fill: #E0E0E0; } + .fill-\[\#f8f8f8\] { + fill: #f8f8f8; + } .object-contain { -o-object-fit: contain; object-fit: contain; @@ -780,6 +1193,9 @@ -o-object-fit: cover; object-fit: cover; } + .\!p-0 { + padding: calc(var(--spacing) * 0) !important; + } .p-4 { padding: calc(var(--spacing) * 4); } @@ -789,9 +1205,24 @@ .p-\[10px\] { padding: 10px; } + .p-\[20px\] { + padding: 20px; + } + .p-\[24px\] { + padding: 24px; + } + .p-\[28px\] { + padding: 28px; + } .p-\[30px\] { padding: 30px; } + .p-\[40px\] { + padding: 40px; + } + .p-\[48px\] { + padding: 48px; + } .px-3 { padding-inline: calc(var(--spacing) * 3); } @@ -801,8 +1232,11 @@ .px-6 { padding-inline: calc(var(--spacing) * 6); } - .px-\[16px\] { - padding-inline: 16px; + .px-\[10px\] { + padding-inline: 10px; + } + .px-\[12px\] { + padding-inline: 12px; } .px-\[20px\] { padding-inline: 20px; @@ -813,36 +1247,108 @@ .px-\[28px\] { padding-inline: 28px; } + .px-\[32px\] { + padding-inline: 32px; + } + .px-\[40px\] { + padding-inline: 40px; + } .py-2 { padding-block: calc(var(--spacing) * 2); } + .py-\[8px\] { + padding-block: 8px; + } .py-\[12px\] { padding-block: 12px; } .py-\[24px\] { padding-block: 24px; } - .pt-\[14px\] { - padding-top: 14px; + .py-\[30px\] { + padding-block: 30px; + } + .py-\[45px\] { + padding-block: 45px; + } + .py-\[48px\] { + padding-block: 48px; + } + .py-\[60px\] { + padding-block: 60px; + } + .py-\[90px\] { + padding-block: 90px; + } + .py-\[96px\] { + padding-block: 96px; + } + .\!pt-\[0\] { + padding-top: 0 !important; + } + .\!pt-\[0px\] { + padding-top: 0px !important; + } + .pt-\[16px\] { + padding-top: 16px; } .pt-\[24px\] { padding-top: 24px; } - .pt-\[40px\] { - padding-top: 40px; + .pt-\[32px\] { + padding-top: 32px; } - .pt-\[64px\] { - padding-top: 64px; + .pt-\[45px\] { + padding-top: 45px; } - .pt-\[80px\] { - padding-top: 80px; + .pt-\[48px\] { + padding-top: 48px; + } + .pt-\[90px\] { + padding-top: 90px; + } + .pt-\[96px\] { + padding-top: 96px; } .pt-\[161px\] { padding-top: 161px; } + .pr-0 { + padding-right: calc(var(--spacing) * 0); + } + .pr-\[12px\] { + padding-right: 12px; + } + .pr-\[16px\] { + padding-right: 16px; + } + .pb-0 { + padding-bottom: calc(var(--spacing) * 0); + } + .pb-\[16px\] { + padding-bottom: 16px; + } + .pb-\[24px\] { + padding-bottom: 24px; + } .pb-\[30px\] { padding-bottom: 30px; } + .pb-\[45px\] { + padding-bottom: 45px; + } + .pb-\[60px\] { + padding-bottom: 60px; + } + .pb-\[90px\] { + padding-bottom: 90px; + } + .pl-0 { + padding-left: calc(var(--spacing) * 0); + } + .pl-\[16px\] { + padding-left: 16px; + } .text-center { text-align: center; } @@ -862,9 +1368,15 @@ font-size: var(--text-xl); line-height: var(--tw-leading, var(--text-xl--line-height)); } + .text-\[13px\] { + font-size: 13px; + } .text-\[14px\] { font-size: 14px; } + .text-\[15px\] { + font-size: 15px; + } .text-\[16px\] { font-size: 16px; } @@ -883,13 +1395,30 @@ .text-\[36px\] { font-size: 36px; } + .text-\[40px\] { + font-size: 40px; + } + .text-\[42px\] { + font-size: 42px; + } .text-\[48px\] { font-size: 48px; } + .text-\[62px\] { + font-size: 62px; + } + .leading-\[20px\] { + --tw-leading: 20px; + line-height: 20px; + } .leading-\[110\%\] { --tw-leading: 110%; line-height: 110%; } + .leading-\[115\%\] { + --tw-leading: 115%; + line-height: 115%; + } .leading-\[120\%\] { --tw-leading: 120%; line-height: 120%; @@ -898,18 +1427,38 @@ --tw-leading: 125%; line-height: 125%; } + .leading-\[130\%\] { + --tw-leading: 130%; + line-height: 130%; + } .leading-\[140\%\] { --tw-leading: 140%; line-height: 140%; } + .leading-\[145\%\] { + --tw-leading: 145%; + line-height: 145%; + } .leading-\[150\%\] { --tw-leading: 150%; line-height: 150%; } + .leading-\[160\%\] { + --tw-leading: 160%; + line-height: 160%; + } + .leading-\[195\%\] { + --tw-leading: 195%; + line-height: 195%; + } .leading-tight { --tw-leading: var(--leading-tight); line-height: var(--leading-tight); } + .font-\[400\] { + --tw-font-weight: 400; + font-weight: 400; + } .font-\[500\] { --tw-font-weight: 500; font-weight: 500; @@ -941,21 +1490,36 @@ .text-\[\#1f2937\] { color: #1f2937; } + .text-\[\#2B2C35\] { + color: #2B2C35; + } .text-\[\#6b7280\] { color: #6b7280; } + .text-\[\#6c6b6b\] { + color: #6c6b6b; + } .text-\[\#222\] { color: #222; } - .text-\[\#374151\] { - color: #374151; + .text-\[\#E21E24\] { + color: #E21E24; + } + .text-\[\#e0e0e0\] { + color: #e0e0e0; } .text-\[\#f8f8f8\] { color: #f8f8f8; } + .text-\[\#fff\] { + color: #fff; + } .text-\[\#ffffff\] { color: #ffffff; } + .text-\[222\] { + color: 222; + } .text-blue-800 { color: var(--color-blue-800); } @@ -977,15 +1541,15 @@ .text-gray-900 { color: var(--color-gray-900); } + .text-transparent { + color: transparent; + } .text-white { color: var(--color-white); } .\!no-underline { text-decoration-line: none !important; } - .underline { - text-decoration-line: underline; - } .\!decoration-transparent { text-decoration-color: transparent !important; } @@ -996,20 +1560,36 @@ .opacity-0 { opacity: 0%; } + .opacity-50 { + opacity: 50%; + } .opacity-100 { opacity: 100%; } - .shadow-2xl { - --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25)); + .shadow-\[0_2px_16px_0_rgba\(16\,_15\,_15\,_0\.08\)\] { + --tw-shadow: 0 2px 16px 0 var(--tw-shadow-color, rgba(16, 15, 15, 0.08)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0_2px_32px_0_rgba\(16\,_15\,_15\,_0\.03\)\] { + --tw-shadow: 0 2px 32px 0 var(--tw-shadow-color, rgba(16, 15, 15, 0.03)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } .shadow-lg { --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } + .blur { + --tw-blur: blur(8px); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } .filter { filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); } + .backdrop-blur-\[8px\] { + --tw-backdrop-blur: blur(8px); + -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + } .backdrop-blur-sm { --tw-backdrop-blur: blur(var(--blur-sm)); -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); @@ -1053,10 +1633,38 @@ --tw-duration: 300ms; transition-duration: 300ms; } + .duration-\[180ms\] { + --tw-duration: 180ms; + transition-duration: 180ms; + } + .ease-in-out { + --tw-ease: var(--ease-in-out); + transition-timing-function: var(--ease-in-out); + } + .select-none { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + } @media (hover: hover) { - .hover\:translate-y-\[-1px\]:hover { - --tw-translate-y: -1px; - translate: var(--tw-translate-x) var(--tw-translate-y); + .group-hover\:scale-\[1\.05\]:is(:where(.group):hover *) { + scale: 1.05; + } + } + @media (hover: hover) { + .group-hover\:text-\[\#e21e24\]:is(:where(.group):hover *) { + color: #e21e24; + } + } + @media (hover: hover) { + .group-hover\:shadow-\[0_8px_32px_0_rgba\(16\,_15\,_15\,_0\.12\)\]:is(:where(.group):hover *) { + --tw-shadow: 0 8px 32px 0 var(--tw-shadow-color, rgba(16, 15, 15, 0.12)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } + @media (hover: hover) { + .hover\:border-b-\[\#e21e24\]:hover { + border-bottom-color: #e21e24; } } @media (hover: hover) { @@ -1064,53 +1672,73 @@ background-color: #2563eb; } } + @media (hover: hover) { + .hover\:bg-\[\#e0e0e0\]:hover { + background-color: #e0e0e0; + } + } @media (hover: hover) { .hover\:bg-gray-100:hover { background-color: var(--color-gray-100); } } + @media (hover: hover) { + .hover\:text-\[\#2B2C35\]:hover { + color: #2B2C35; + } + } + @media (hover: hover) { + .hover\:text-\[\#9d9994\]:hover { + color: #9d9994; + } + } @media (hover: hover) { .hover\:text-\[\#222\]:hover { color: #222; } } - @media (hover: hover) { - .hover\:text-\[\#444\]:hover { - color: #444; - } - } @media (hover: hover) { .hover\:text-\[\#555\]:hover { color: #555; } } - @media (hover: hover) { - .hover\:text-\[\#888\]:hover { - color: #888; - } - } @media (hover: hover) { .hover\:text-gray-700:hover { color: var(--color-gray-700); } } + @media (hover: hover) { + .hover\:\!no-underline:hover { + text-decoration-line: none !important; + } + } @media (hover: hover) { .hover\:\!decoration-inherit:hover { text-decoration-color: inherit !important; } } + @media (hover: hover) { + .hover\:opacity-80:hover { + opacity: 80%; + } + } + @media (hover: hover) { + .hover\:opacity-90:hover { + opacity: 90%; + } + } + @media (hover: hover) { + .hover\:shadow-\[0_8px_32px_0_rgba\(16\,_15\,_15\,_0\.12\)\]:hover { + --tw-shadow: 0 8px 32px 0 var(--tw-shadow-color, rgba(16, 15, 15, 0.12)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } @media (hover: hover) { .hover\:shadow-xl:hover { --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } } - @media (hover: hover) { - .hover\:brightness-150:hover { - --tw-brightness: brightness(150%); - filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); - } - } .focus\:ring-2:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); @@ -1136,36 +1764,16 @@ padding: 20px; } } - @media (width < 768px) { - .max-\[768px\]\:pt-\[40px\] { - padding-top: 40px; - } - } - @media (width < 768px) { - .max-\[768px\]\:pt-\[64px\] { - padding-top: 64px; - } - } @media (width < 768px) { .max-\[768px\]\:text-\[14px\] { font-size: 14px; } } - @media (width < 768px) { - .max-\[768px\]\:text-\[18px\] { - font-size: 18px; - } - } @media (width < 768px) { .max-\[768px\]\:text-\[20px\] { font-size: 20px; } } - @media (width < 768px) { - .max-\[768px\]\:text-\[28px\] { - font-size: 28px; - } - } @media (width < 768px) { .max-\[768px\]\:text-\[34px\] { font-size: 34px; @@ -1227,6 +1835,11 @@ display: flex; } } + @media (width >= 960px) { + .lg\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + } @media (width >= 960px) { .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); @@ -1248,17 +1861,24 @@ line-height: var(--tw-leading, var(--text-5xl--line-height)); } } - @media (width >= 1024px) { - .min-\[1024px\]\:h-\[700px\] { - height: 700px; + @media (width >= 1280px) { + .xl\:grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); } } + .dark\:max-w-\[860px\]:where(.dark, .dark *) { + max-width: 860px; + } .dark\:border:where(.dark, .dark *) { border-style: var(--tw-border-style); border-width: 1px; } - .dark\:border-\[rgba\(248\,248\,248\,0\.05\)\]:where(.dark, .dark *) { - border-color: rgba(248,248,248,0.05); + .dark\:\!border-none:where(.dark, .dark *) { + --tw-border-style: none !important; + border-style: none !important; + } + .dark\:border-\[\#574348\]:where(.dark, .dark *) { + border-color: #574348; } .dark\:border-\[rgba\(248\,_248\,_248\,_0\.2\)\]:where(.dark, .dark *) { border-color: rgba(248, 248, 248, 0.2); @@ -1266,25 +1886,52 @@ .dark\:border-\[rgba\(248\,_248\,_248\,_0\.5\)\]:where(.dark, .dark *) { border-color: rgba(248, 248, 248, 0.5); } + .dark\:border-transparent:where(.dark, .dark *) { + border-color: transparent; + } .dark\:border-white\/\[0\.05\]:where(.dark, .dark *) { border-color: color-mix(in oklab, var(--color-white) 5%, transparent); } - .dark\:border-white\/\[0\.12\]:where(.dark, .dark *) { - border-color: color-mix(in oklab, var(--color-white) 12%, transparent); + .dark\:\!border-b-\[\#fff\]:where(.dark, .dark *) { + border-bottom-color: #fff !important; + } + .dark\:\!bg-\[\#f8f8f8\]:where(.dark, .dark *) { + background-color: #f8f8f8 !important; + } + .dark\:bg-\[\#141419\]:where(.dark, .dark *) { + background-color: #141419; + } + .dark\:bg-\[\#f4f4f4\]:where(.dark, .dark *) { + background-color: #f4f4f4; } .dark\:bg-\[\#f8f8f8\]:where(.dark, .dark *) { background-color: #f8f8f8; } + .dark\:bg-\[transparent\]:where(.dark, .dark *) { + background-color: transparent; + } .dark\:bg-inherit:where(.dark, .dark *) { background-color: inherit; } + .dark\:bg-white:where(.dark, .dark *) { + background-color: var(--color-white); + } .dark\:bg-gradient-to-r:where(.dark, .dark *) { --tw-gradient-position: to right in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); } + .dark\:\!bg-none:where(.dark, .dark *) { + background-image: none !important; + } + .dark\:bg-\[linear-gradient\(90deg\,_\#2b2c35_53\.4\%\,_\#4f5870_100\%\)\]:where(.dark, .dark *) { + background-image: linear-gradient(90deg, #2b2c35 53.4%, #4f5870 100%); + } .dark\:bg-\[linear-gradient\(90deg\,rgba\(248\,248\,248\,0\.04\)_65\.8\%\,rgba\(255\,255\,255\,0\.12\)_100\%\)\]:where(.dark, .dark *) { background-image: linear-gradient(90deg,rgba(248,248,248,0.04) 65.8%,rgba(255,255,255,0.12) 100%); } + .dark\:bg-none:where(.dark, .dark *) { + background-image: none; + } .dark\:from-\[rgba\(248\,248\,248\,0\.55\)\]:where(.dark, .dark *) { --tw-gradient-from: rgba(248,248,248,0.55); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); @@ -1297,15 +1944,30 @@ -webkit-background-clip: text; background-clip: text; } + .dark\:fill-\[\#222222\]:where(.dark, .dark *) { + fill: #222222; + } .dark\:fill-\[\#F8F8F8\]:where(.dark, .dark *) { fill: #F8F8F8; } + .dark\:text-\[42px\]:where(.dark, .dark *) { + font-size: 42px; + } .dark\:text-\[\#6c6b6b\]:where(.dark, .dark *) { color: #6c6b6b; } + .dark\:text-\[\#222\]:where(.dark, .dark *) { + color: #222; + } + .dark\:text-\[\#F8F8F8\]:where(.dark, .dark *) { + color: #F8F8F8; + } .dark\:text-\[\#f8f8f8\]:where(.dark, .dark *) { color: #f8f8f8; } + .dark\:text-\[\#fff\]:where(.dark, .dark *) { + color: #fff; + } .dark\:text-transparent:where(.dark, .dark *) { color: transparent; } @@ -1317,20 +1979,55 @@ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); } + @media (hover: hover) { + .dark\:hover\:border-b-\[\#fff\]:where(.dark, .dark *):hover { + border-bottom-color: #fff; + } + } + @media (hover: hover) { + .dark\:hover\:text-\[\#9d9994\]:where(.dark, .dark *):hover { + color: #9d9994; + } + } @media (hover: hover) { .dark\:hover\:text-\[\#c7c7c7\]:where(.dark, .dark *):hover { color: #c7c7c7; } } @media (hover: hover) { - .dark\:hover\:brightness-90:where(.dark, .dark *):hover { - --tw-brightness: brightness(90%); - filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + .dark\:hover\:text-\[\#f8f8f8\]:where(.dark, .dark *):hover { + color: #f8f8f8; + } + } + .\[\&_\.swiper-scrollbar-drag\]\:dark\:\!bg-\[\#989597\] .swiper-scrollbar-drag:where(.dark, .dark *) { + background-color: #989597 !important; + } + .\[\&_div\]\:text-\[\#222\] div { + color: #222; + } + .\[\&_div\]\:text-\[\#f8f8f8\] div { + color: #f8f8f8; + } + .\[\&_img\]\:w-\[294px\] img { + width: 294px; + } + .\[\&_p\]\:text-\[\#6c6b6b\] p { + color: #6c6b6b; + } + .\[\&_p\]\:text-\[\#bcbcc0\] p { + color: #bcbcc0; + } + @media (hover: hover) { + .hover\:\[\&_svg\]\:fill-\[\#e21e24\]:hover svg { + fill: #e21e24; } } .\[\&\>_img\]\:max-w-none> img { max-width: none; } + .\[\&\>img\]\:w-\[294px\]>img { + width: 294px; + } @media (hover: hover) { .hover\:\[\&\>img\]\:brightness-150:hover>img { --tw-brightness: brightness(150%); @@ -1343,6 +2040,19 @@ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); } } + .\[\&\>li\>a\]\:\!no-underline>li>a { + text-decoration-line: none !important; + } + .\[\&\>svg\]\:min-w-fit>svg { + min-width: -moz-fit-content; + min-width: fit-content; + } + @media (hover: hover) { + .hover\:\[\&\>svg\]\:translate-x-\[6px\]:hover>svg { + --tw-translate-x: 6px; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } } html, body { font-family: var(--font-family-sans); @@ -1400,6 +2110,96 @@ html, body { background-position: 39.42% 0; 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 .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; +} @font-face { font-family: 'Gilroy'; src: local('Gilroy Light'), url(../fonts/Gilroy-Light.eot?8862796bffbd019727b3b4516ada8089?#iefix) format('embedded-opentype'), url(../fonts/Gilroy-Light.woff?9df2f5dbbb9c90a6ede7c1348521d216) format('woff'), url(../fonts/Gilroy-Light.ttf?1b7fff53076b212839677d44fe93ad1c) format('truetype'); @@ -1524,11 +2324,58 @@ html, body { inherits: false; initial-value: 0; } +@property --tw-divide-x-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} @property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; } +@property --tw-gradient-position { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-from { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-via { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-to { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-stops { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-via-stops { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-from-position { + syntax: ""; + inherits: false; + initial-value: 0%; +} +@property --tw-gradient-via-position { + syntax: ""; + inherits: false; + initial-value: 50%; +} +@property --tw-gradient-to-position { + syntax: ""; + inherits: false; + initial-value: 100%; +} @property --tw-leading { syntax: "*"; inherits: false; @@ -1672,48 +2519,10 @@ html, body { syntax: "*"; inherits: false; } -@property --tw-gradient-position { +@property --tw-ease { syntax: "*"; inherits: false; } -@property --tw-gradient-from { - syntax: ""; - inherits: false; - initial-value: #0000; -} -@property --tw-gradient-via { - syntax: ""; - inherits: false; - initial-value: #0000; -} -@property --tw-gradient-to { - syntax: ""; - inherits: false; - initial-value: #0000; -} -@property --tw-gradient-stops { - syntax: "*"; - inherits: false; -} -@property --tw-gradient-via-stops { - syntax: "*"; - inherits: false; -} -@property --tw-gradient-from-position { - syntax: ""; - inherits: false; - initial-value: 0%; -} -@property --tw-gradient-via-position { - syntax: ""; - inherits: false; - initial-value: 50%; -} -@property --tw-gradient-to-position { - syntax: ""; - inherits: false; - initial-value: 100%; -} diff --git a/css/editor-style.css b/css/editor-style.css index 4b77279..67dfb05 100644 --- a/css/editor-style.css +++ b/css/editor-style.css @@ -7,7 +7,6 @@ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-blue-50: oklch(0.97 0.014 254.604); - --color-blue-500: oklch(0.623 0.214 259.815); --color-blue-800: oklch(0.424 0.199 265.638); --color-blue-900: oklch(0.379 0.146 265.522); --color-gray-100: oklch(0.967 0.003 264.542); @@ -22,7 +21,6 @@ --spacing: 0.25rem; --container-sm: 24rem; --container-lg: 32rem; - --container-2xl: 42rem; --text-sm: var(--wp--preset--font-size--sm, 0.875rem); --text-sm--line-height: calc(1.25 / 0.875); --text-xl: var(--wp--preset--font-size--xl, 1.25rem); @@ -41,6 +39,7 @@ --radius-xs: 0.125rem; --radius-md: 0.375rem; --radius-lg: 0.5rem; + --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); --blur-sm: 8px; --default-transition-duration: 150ms; --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); @@ -222,6 +221,9 @@ .visible { visibility: visible; } + .\!static { + position: static !important; + } .absolute { position: absolute; } @@ -231,18 +233,21 @@ .relative { position: relative; } + .static { + position: static; + } .inset-0 { inset: calc(var(--spacing) * 0); } .top-0 { top: calc(var(--spacing) * 0); } - .top-1\/2 { - top: calc(1/2 * 100%); - } .top-4 { top: calc(var(--spacing) * 4); } + .top-\[24px\] { + top: 24px; + } .top-\[32px\] { top: 32px; } @@ -252,14 +257,23 @@ .right-4 { right: calc(var(--spacing) * 4); } + .right-\[24px\] { + right: 24px; + } .bottom-0 { bottom: calc(var(--spacing) * 0); } + .bottom-\[16px\] { + bottom: 16px; + } .left-0 { left: calc(var(--spacing) * 0); } - .left-1\/2 { - left: calc(1/2 * 100%); + .left-\[12px\] { + left: 12px; + } + .z-0 { + z-index: 0; } .z-10 { z-index: 10; @@ -267,11 +281,14 @@ .z-50 { z-index: 50; } + .z-\[0\] { + z-index: 0; + } .z-\[1\] { z-index: 1; } - .z-\[1000\] { - z-index: 1000; + .z-\[49\] { + z-index: 49; } .container { width: 100%; @@ -306,9 +323,18 @@ max-width: 1440px; } } + .\!m-0 { + margin: calc(var(--spacing) * 0) !important; + } + .\!m-\[-1px\] { + margin: -1px !important; + } .m-8 { margin: calc(var(--spacing) * 8); } + .\!mx-auto { + margin-inline: auto !important; + } .mx-auto { margin-inline: auto; } @@ -318,15 +344,33 @@ .my-8 { margin-block: calc(var(--spacing) * 8); } + .mt-0 { + margin-top: calc(var(--spacing) * 0); + } .mt-4 { margin-top: calc(var(--spacing) * 4); } .mt-6 { margin-top: calc(var(--spacing) * 6); } + .mt-\[4px\] { + margin-top: 4px; + } + .mt-\[8px\] { + margin-top: 8px; + } .mt-\[10px\] { margin-top: 10px; } + .mt-\[12px\] { + margin-top: 12px; + } + .mt-\[14px\] { + margin-top: 14px; + } + .mt-\[16px\] { + margin-top: 16px; + } .mt-\[20px\] { margin-top: 20px; } @@ -339,12 +383,21 @@ .mt-\[26px\] { margin-top: 26px; } + .mt-\[28px\] { + margin-top: 28px; + } + .mt-\[32px\] { + margin-top: 32px; + } .mt-\[40px\] { margin-top: 40px; } .mt-\[44px\] { margin-top: 44px; } + .mt-\[45px\] { + margin-top: 45px; + } .mt-\[50px\] { margin-top: 50px; } @@ -384,6 +437,15 @@ .mb-\[40px\] { margin-bottom: 40px; } + .mb-\[90px\] { + margin-bottom: 90px; + } + .ml-\[8px\] { + margin-left: 8px; + } + .ml-auto { + margin-left: auto; + } .block { display: block; } @@ -396,8 +458,17 @@ .hidden { display: none; } - .inline-block { - display: inline-block; + .inline-flex { + display: inline-flex; + } + .\!h-\[1px\] { + height: 1px !important; + } + .\!h-\[62px\] { + height: 62px !important; + } + .\!h-\[100px\] { + height: 100px !important; } .h-1 { height: calc(var(--spacing) * 1); @@ -411,60 +482,156 @@ .h-\[2px\] { height: 2px; } + .h-\[6px\] { + height: 6px; + } .h-\[8px\] { height: 8px; } .h-\[24px\] { height: 24px; } + .h-\[29px\] { + height: 29px; + } + .h-\[30px\] { + height: 30px; + } .h-\[32px\] { height: 32px; } + .h-\[36px\] { + height: 36px; + } + .h-\[43px\] { + height: 43px; + } .h-\[44px\] { height: 44px; } .h-\[45px\] { height: 45px; } - .h-\[60px\] { - height: 60px; + .h-\[46px\] { + height: 46px; + } + .h-\[55px\] { + height: 55px; + } + .h-\[59px\] { + height: 59px; } .h-\[64px\] { height: 64px; } + .h-\[74px\] { + height: 74px; + } .h-\[75px\] { height: 75px; } + .h-\[76px\] { + height: 76px; + } + .h-\[78px\] { + height: 78px; + } .h-\[80px\] { height: 80px; } - .h-\[200px\] { - height: 200px; + .h-\[120px\] { + height: 120px; + } + .h-\[147px\] { + height: 147px; + } + .h-\[240px\] { + height: 240px; + } + .h-\[244px\] { + height: 244px; + } + .h-\[258px\] { + height: 258px; + } + .h-\[280px\] { + height: 280px; + } + .h-\[298px\] { + height: 298px; + } + .h-\[305px\] { + height: 305px; + } + .h-\[358px\] { + height: 358px; + } + .h-\[383px\] { + height: 383px; } .h-\[440px\] { height: 440px; } + .h-\[460px\] { + height: 460px; + } .h-\[500px\] { height: 500px; } + .h-\[512px\] { + height: 512px; + } + .h-\[540px\] { + height: 540px; + } .h-\[575px\] { height: 575px; } + .h-\[580px\] { + height: 580px; + } + .h-\[600px\] { + height: 600px; + } + .h-\[608px\] { + height: 608px; + } + .h-\[620px\] { + height: 620px; + } + .h-\[828px\] { + height: 828px; + } .h-full { height: 100%; } - .max-h-\[60px\] { - max-height: 60px; - } .max-h-\[90vh\] { max-height: 90vh; } + .min-h-\[48px\] { + min-height: 48px; + } + .min-h-\[260px\] { + min-height: 260px; + } + .min-h-\[330px\] { + min-height: 330px; + } .min-h-\[440px\] { min-height: 440px; } + .min-h-\[500px\] { + min-height: 500px; + } .min-h-screen { min-height: 100vh; } + .\!w-\[1px\] { + width: 1px !important; + } + .\!w-full { + width: 100% !important; + } .w-5 { width: calc(var(--spacing) * 5); } @@ -474,27 +641,39 @@ .w-16 { width: calc(var(--spacing) * 16); } + .w-\[6px\] { + width: 6px; + } .w-\[8px\] { width: 8px; } - .w-\[24px\] { - width: 24px; - } .w-\[32px\] { width: 32px; } - .w-\[60px\] { - width: 60px; + .w-\[42px\] { + width: 42px; + } + .w-\[55px\] { + width: 55px; } .w-\[64px\] { width: 64px; } + .w-\[76px\] { + width: 76px; + } .w-\[80px\] { width: 80px; } .w-\[136px\] { width: 136px; } + .w-\[160px\] { + width: 160px; + } + .w-\[424px\] { + width: 424px; + } .w-fit { width: -moz-fit-content; width: fit-content; @@ -502,30 +681,97 @@ .w-full { width: 100%; } - .max-w-2xl { - max-width: var(--container-2xl); + .max-w-\[102px\] { + max-width: 102px; } - .max-w-\[60px\] { - max-width: 60px; + .max-w-\[135px\] { + max-width: 135px; + } + .max-w-\[160px\] { + max-width: 160px; + } + .max-w-\[179px\] { + max-width: 179px; } .max-w-\[210px\] { max-width: 210px; } + .max-w-\[213px\] { + max-width: 213px; + } + .max-w-\[220px\] { + max-width: 220px; + } + .max-w-\[240px\] { + max-width: 240px; + } + .max-w-\[245px\] { + max-width: 245px; + } + .max-w-\[270px\] { + max-width: 270px; + } .max-w-\[281px\] { max-width: 281px; } .max-w-\[300px\] { max-width: 300px; } - .max-w-\[380px\] { - max-width: 380px; + .max-w-\[301px\] { + max-width: 301px; } - .max-w-\[449px\] { - max-width: 449px; + .max-w-\[312px\] { + max-width: 312px; + } + .max-w-\[320px\] { + max-width: 320px; + } + .max-w-\[330px\] { + max-width: 330px; + } + .max-w-\[400px\] { + max-width: 400px; + } + .max-w-\[424px\] { + max-width: 424px; + } + .max-w-\[535px\] { + max-width: 535px; + } + .max-w-\[590px\] { + max-width: 590px; } .max-w-\[648px\] { max-width: 648px; } + .max-w-\[687px\] { + max-width: 687px; + } + .max-w-\[725px\] { + max-width: 725px; + } + .max-w-\[760px\] { + max-width: 760px; + } + .max-w-\[872px\] { + max-width: 872px; + } + .max-w-\[900px\] { + max-width: 900px; + } + .max-w-\[970px\] { + max-width: 970px; + } + .max-w-\[2000px\] { + max-width: 2000px; + } + .max-w-fit { + max-width: -moz-fit-content; + max-width: fit-content; + } + .max-w-full { + max-width: 100%; + } .max-w-lg { max-width: var(--container-lg); } @@ -544,12 +790,8 @@ .grow { flex-grow: 1; } - .translate-x-\[-50\%\] { - --tw-translate-x: -50%; - translate: var(--tw-translate-x) var(--tw-translate-y); - } - .translate-y-\[-50\%\] { - --tw-translate-y: -50%; + .translate-y-\[2px\] { + --tw-translate-y: 2px; translate: var(--tw-translate-x) var(--tw-translate-y); } .scale-90 { @@ -567,6 +809,9 @@ .transform { transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y); } + .\!cursor-grab { + cursor: grab !important; + } .cursor-pointer { cursor: pointer; } @@ -576,12 +821,33 @@ .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); } + .grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + .grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } .flex-col { flex-direction: column; } + .flex-col-reverse { + flex-direction: column-reverse; + } + .flex-wrap { + flex-wrap: wrap; + } + .place-items-center { + place-items: center; + } .items-center { align-items: center; } + .items-end { + align-items: flex-end; + } .items-start { align-items: flex-start; } @@ -594,11 +860,14 @@ .justify-end { justify-content: flex-end; } + .justify-start { + justify-content: flex-start; + } .gap-\[4px\] { gap: 4px; } - .gap-\[5px\] { - gap: 5px; + .gap-\[6px\] { + gap: 6px; } .gap-\[8px\] { gap: 8px; @@ -609,6 +878,9 @@ .gap-\[12px\] { gap: 12px; } + .gap-\[16px\] { + gap: 16px; + } .gap-\[20px\] { gap: 20px; } @@ -621,6 +893,12 @@ .gap-\[32px\] { gap: 32px; } + .gap-\[48px\] { + gap: 48px; + } + .gap-\[60px\] { + gap: 60px; + } :where(.space-y-1 > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse)); @@ -631,36 +909,71 @@ margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))); } + :where(.space-y-\[8px\] > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(8px * var(--tw-space-y-reverse)); + margin-block-end: calc(8px * calc(1 - var(--tw-space-y-reverse))); + } + :where(.space-y-\[12px\] > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(12px * var(--tw-space-y-reverse)); + margin-block-end: calc(12px * calc(1 - var(--tw-space-y-reverse))); + } + .gap-x-\[40px\] { + -moz-column-gap: 40px; + column-gap: 40px; + } + .gap-y-\[16px\] { + row-gap: 16px; + } + :where(.divide-x > :not(:last-child)) { + --tw-divide-x-reverse: 0; + border-inline-style: var(--tw-border-style); + border-inline-start-width: calc(1px * var(--tw-divide-x-reverse)); + border-inline-end-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); + } + :where(.divide-\[\#e0e0e0\] > :not(:last-child)) { + border-color: #e0e0e0; + } .overflow-hidden { overflow: hidden; } - .overflow-x-auto { - overflow-x: auto; - } .overflow-y-auto { overflow-y: auto; } .rounded { border-radius: 0.25rem; } - .rounded-\[5px\] { - border-radius: 5px; + .rounded-\[6px\] { + border-radius: 6px; } .rounded-\[8px\] { border-radius: 8px; } + .rounded-\[9px\] { + border-radius: 9px; + } .rounded-\[12px\] { border-radius: 12px; } .rounded-\[16px\] { border-radius: 16px; } + .rounded-\[20px\] { + border-radius: 20px; + } + .rounded-\[24px\] { + border-radius: 24px; + } .rounded-\[25px\] { border-radius: 25px; } .rounded-\[30px\] { border-radius: 30px; } + .rounded-\[32px\] { + border-radius: 32px; + } .rounded-\[90px\] { border-radius: 90px; } @@ -679,30 +992,54 @@ .rounded-tl-none { border-top-left-radius: 0; } + .rounded-b-\[0\] { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + } .rounded-br-none { border-bottom-right-radius: 0; } .rounded-bl-none { border-bottom-left-radius: 0; } + .\!border-0 { + border-style: var(--tw-border-style) !important; + border-width: 0px !important; + } .border { border-style: var(--tw-border-style); border-width: 1px; } - .border-2 { - border-style: var(--tw-border-style); - border-width: 2px; - } .border-\[1px\] { border-style: var(--tw-border-style); border-width: 1px; } + .border-\[2px\] { + border-style: var(--tw-border-style); + border-width: 2px; + } + .border-t { + border-top-style: var(--tw-border-style); + border-top-width: 1px; + } + .border-r-\[0px\] { + border-right-style: var(--tw-border-style); + border-right-width: 0px; + } .border-b { border-bottom-style: var(--tw-border-style); border-bottom-width: 1px; } - .\!border-blue-500 { - border-color: var(--color-blue-500) !important; + .border-b-\[2px\] { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 2px; + } + .border-b-\[4px\] { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 4px; + } + .border-\[\#E0E0E0\] { + border-color: #E0E0E0; } .border-\[\#e0e0e0\] { border-color: #e0e0e0; @@ -710,11 +1047,23 @@ .border-\[\#e5e7eb\] { border-color: #e5e7eb; } + .border-\[\#e21e24\] { + border-color: #e21e24; + } + .border-\[\#fff\] { + border-color: #fff; + } .border-primary { border-color: var(--color-primary); } - .border-transparent { - border-color: transparent; + .border-t-\[\#f1f1f1\] { + border-top-color: #f1f1f1; + } + .\!border-b-\[\#e21e24\] { + border-bottom-color: #e21e24 !important; + } + .border-b-\[transparent\] { + border-bottom-color: transparent; } .bg-\[\#3b82f6\] { background-color: #3b82f6; @@ -722,24 +1071,33 @@ .bg-\[\#10b981\] { background-color: #10b981; } + .bg-\[\#E21E24\] { + background-color: #E21E24; + } .bg-\[\#e21e24\] { background-color: #e21e24; } .bg-\[\#f3f4f6\] { background-color: #f3f4f6; } + .bg-\[\#f8f8f8\] { + background-color: #f8f8f8; + } .bg-\[\#f9f9f9\] { background-color: #f9f9f9; } + .bg-\[\#fff\] { + background-color: #fff; + } .bg-\[\#ffffff\] { background-color: #ffffff; } + .bg-\[0_2px_32px_0_rgba\(16\,_15\,_15\,_0\.03\)\] { + background-color: 0 2px 32px 0 rgba(16, 15, 15, 0.03); + } .bg-\[rgba\(0\,0\,0\,0\.5\)\] { background-color: rgba(0,0,0,0.5); } - .bg-black { - background-color: var(--color-black); - } .bg-blue-50 { background-color: var(--color-blue-50); } @@ -752,21 +1110,76 @@ .bg-primary { background-color: var(--color-primary); } + .bg-transparent { + background-color: transparent; + } .bg-white { background-color: var(--color-white); } + .bg-gradient-to-t { + --tw-gradient-position: to top in oklab; + background-image: linear-gradient(var(--tw-gradient-stops)); + } + .bg-\[linear-gradient\(90deg\,\#2b2c35_67\.31\%\,\#4f5870_92\.9\%\)\] { + background-image: linear-gradient(90deg,#2b2c35 67.31%,#4f5870 92.9%); + } + .bg-\[linear-gradient\(90deg\,_\#2b2c35_39\.42\%\,_\#6e7996_92\.9\%\)\] { + background-image: linear-gradient(90deg, #2b2c35 39.42%, #6e7996 92.9%); + } + .bg-\[linear-gradient\(90deg\,_\#2b2c35_67\.31\%\,_\#4f5870_92\.9\%\)\] { + background-image: linear-gradient(90deg, #2b2c35 67.31%, #4f5870 92.9%); + } + .bg-\[linear-gradient\(90deg\,_\#9d9994_39\.42\%\,_\#bbb7b1_92\.9\%\)\] { + background-image: linear-gradient(90deg, #9d9994 39.42%, #bbb7b1 92.9%); + } + .bg-\[linear-gradient\(90deg\,_\#9d9994_39\.42\%\,_\#ccc9c4_92\.9\%\)\] { + background-image: linear-gradient(90deg, #9d9994 39.42%, #ccc9c4 92.9%); + } + .bg-\[linear-gradient\(90deg\,_rgba\(43\,_44\,_53\,_0\.06\)_39\.42\%\,_rgba\(110\,_121\,_150\,_0\.06\)_92\.9\%\)\] { + background-image: linear-gradient(90deg, rgba(43, 44, 53, 0.06) 39.42%, rgba(110, 121, 150, 0.06) 92.9%); + } + .bg-\[linear-gradient\(90deg\,rgba\(157\,153\,148\,0\.7\)_39\.42\%\,rgba\(197\,197\,185\,0\.7\)_92\.9\%\)\] { + background-image: linear-gradient(90deg,rgba(157,153,148,0.7) 39.42%,rgba(197,197,185,0.7) 92.9%); + } + .bg-\[linear-gradient\(180deg\,_\#f2f2f2_69\.59\%\,_\#ededed_100\%\)\] { + background-image: linear-gradient(180deg, #f2f2f2 69.59%, #ededed 100%); + } + .bg-\[linear-gradient\(180deg\,_\#f9f9f9_69\.59\%\,_\#ededed_100\%\)\] { + background-image: linear-gradient(180deg, #f9f9f9 69.59%, #ededed 100%); + } + .from-black\/50 { + --tw-gradient-from: color-mix(in oklab, var(--color-black) 50%, transparent); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-transparent { + --tw-gradient-to: transparent; + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } .bg-cover { background-size: cover; } + .bg-clip-text { + -webkit-background-clip: text; + background-clip: text; + } .bg-center { background-position: center; } .bg-no-repeat { background-repeat: no-repeat; } + .fill-\[\#222\] { + fill: #222; + } + .fill-\[\#222222\] { + fill: #222222; + } .fill-\[\#E0E0E0\] { fill: #E0E0E0; } + .fill-\[\#f8f8f8\] { + fill: #f8f8f8; + } .object-contain { -o-object-fit: contain; object-fit: contain; @@ -775,6 +1188,9 @@ -o-object-fit: cover; object-fit: cover; } + .\!p-0 { + padding: calc(var(--spacing) * 0) !important; + } .p-4 { padding: calc(var(--spacing) * 4); } @@ -784,9 +1200,24 @@ .p-\[10px\] { padding: 10px; } + .p-\[20px\] { + padding: 20px; + } + .p-\[24px\] { + padding: 24px; + } + .p-\[28px\] { + padding: 28px; + } .p-\[30px\] { padding: 30px; } + .p-\[40px\] { + padding: 40px; + } + .p-\[48px\] { + padding: 48px; + } .px-3 { padding-inline: calc(var(--spacing) * 3); } @@ -796,8 +1227,11 @@ .px-6 { padding-inline: calc(var(--spacing) * 6); } - .px-\[16px\] { - padding-inline: 16px; + .px-\[10px\] { + padding-inline: 10px; + } + .px-\[12px\] { + padding-inline: 12px; } .px-\[20px\] { padding-inline: 20px; @@ -808,36 +1242,108 @@ .px-\[28px\] { padding-inline: 28px; } + .px-\[32px\] { + padding-inline: 32px; + } + .px-\[40px\] { + padding-inline: 40px; + } .py-2 { padding-block: calc(var(--spacing) * 2); } + .py-\[8px\] { + padding-block: 8px; + } .py-\[12px\] { padding-block: 12px; } .py-\[24px\] { padding-block: 24px; } - .pt-\[14px\] { - padding-top: 14px; + .py-\[30px\] { + padding-block: 30px; + } + .py-\[45px\] { + padding-block: 45px; + } + .py-\[48px\] { + padding-block: 48px; + } + .py-\[60px\] { + padding-block: 60px; + } + .py-\[90px\] { + padding-block: 90px; + } + .py-\[96px\] { + padding-block: 96px; + } + .\!pt-\[0\] { + padding-top: 0 !important; + } + .\!pt-\[0px\] { + padding-top: 0px !important; + } + .pt-\[16px\] { + padding-top: 16px; } .pt-\[24px\] { padding-top: 24px; } - .pt-\[40px\] { - padding-top: 40px; + .pt-\[32px\] { + padding-top: 32px; } - .pt-\[64px\] { - padding-top: 64px; + .pt-\[45px\] { + padding-top: 45px; } - .pt-\[80px\] { - padding-top: 80px; + .pt-\[48px\] { + padding-top: 48px; + } + .pt-\[90px\] { + padding-top: 90px; + } + .pt-\[96px\] { + padding-top: 96px; } .pt-\[161px\] { padding-top: 161px; } + .pr-0 { + padding-right: calc(var(--spacing) * 0); + } + .pr-\[12px\] { + padding-right: 12px; + } + .pr-\[16px\] { + padding-right: 16px; + } + .pb-0 { + padding-bottom: calc(var(--spacing) * 0); + } + .pb-\[16px\] { + padding-bottom: 16px; + } + .pb-\[24px\] { + padding-bottom: 24px; + } .pb-\[30px\] { padding-bottom: 30px; } + .pb-\[45px\] { + padding-bottom: 45px; + } + .pb-\[60px\] { + padding-bottom: 60px; + } + .pb-\[90px\] { + padding-bottom: 90px; + } + .pl-0 { + padding-left: calc(var(--spacing) * 0); + } + .pl-\[16px\] { + padding-left: 16px; + } .text-center { text-align: center; } @@ -857,9 +1363,15 @@ font-size: var(--text-xl); line-height: var(--tw-leading, var(--text-xl--line-height)); } + .text-\[13px\] { + font-size: 13px; + } .text-\[14px\] { font-size: 14px; } + .text-\[15px\] { + font-size: 15px; + } .text-\[16px\] { font-size: 16px; } @@ -878,13 +1390,30 @@ .text-\[36px\] { font-size: 36px; } + .text-\[40px\] { + font-size: 40px; + } + .text-\[42px\] { + font-size: 42px; + } .text-\[48px\] { font-size: 48px; } + .text-\[62px\] { + font-size: 62px; + } + .leading-\[20px\] { + --tw-leading: 20px; + line-height: 20px; + } .leading-\[110\%\] { --tw-leading: 110%; line-height: 110%; } + .leading-\[115\%\] { + --tw-leading: 115%; + line-height: 115%; + } .leading-\[120\%\] { --tw-leading: 120%; line-height: 120%; @@ -893,18 +1422,38 @@ --tw-leading: 125%; line-height: 125%; } + .leading-\[130\%\] { + --tw-leading: 130%; + line-height: 130%; + } .leading-\[140\%\] { --tw-leading: 140%; line-height: 140%; } + .leading-\[145\%\] { + --tw-leading: 145%; + line-height: 145%; + } .leading-\[150\%\] { --tw-leading: 150%; line-height: 150%; } + .leading-\[160\%\] { + --tw-leading: 160%; + line-height: 160%; + } + .leading-\[195\%\] { + --tw-leading: 195%; + line-height: 195%; + } .leading-tight { --tw-leading: var(--leading-tight); line-height: var(--leading-tight); } + .font-\[400\] { + --tw-font-weight: 400; + font-weight: 400; + } .font-\[500\] { --tw-font-weight: 500; font-weight: 500; @@ -936,21 +1485,36 @@ .text-\[\#1f2937\] { color: #1f2937; } + .text-\[\#2B2C35\] { + color: #2B2C35; + } .text-\[\#6b7280\] { color: #6b7280; } + .text-\[\#6c6b6b\] { + color: #6c6b6b; + } .text-\[\#222\] { color: #222; } - .text-\[\#374151\] { - color: #374151; + .text-\[\#E21E24\] { + color: #E21E24; + } + .text-\[\#e0e0e0\] { + color: #e0e0e0; } .text-\[\#f8f8f8\] { color: #f8f8f8; } + .text-\[\#fff\] { + color: #fff; + } .text-\[\#ffffff\] { color: #ffffff; } + .text-\[222\] { + color: 222; + } .text-blue-800 { color: var(--color-blue-800); } @@ -972,15 +1536,15 @@ .text-gray-900 { color: var(--color-gray-900); } + .text-transparent { + color: transparent; + } .text-white { color: var(--color-white); } .\!no-underline { text-decoration-line: none !important; } - .underline { - text-decoration-line: underline; - } .\!decoration-transparent { text-decoration-color: transparent !important; } @@ -991,20 +1555,36 @@ .opacity-0 { opacity: 0%; } + .opacity-50 { + opacity: 50%; + } .opacity-100 { opacity: 100%; } - .shadow-2xl { - --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25)); + .shadow-\[0_2px_16px_0_rgba\(16\,_15\,_15\,_0\.08\)\] { + --tw-shadow: 0 2px 16px 0 var(--tw-shadow-color, rgba(16, 15, 15, 0.08)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-\[0_2px_32px_0_rgba\(16\,_15\,_15\,_0\.03\)\] { + --tw-shadow: 0 2px 32px 0 var(--tw-shadow-color, rgba(16, 15, 15, 0.03)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } .shadow-lg { --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } + .blur { + --tw-blur: blur(8px); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } .filter { filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); } + .backdrop-blur-\[8px\] { + --tw-backdrop-blur: blur(8px); + -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + } .backdrop-blur-sm { --tw-backdrop-blur: blur(var(--blur-sm)); -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); @@ -1048,10 +1628,38 @@ --tw-duration: 300ms; transition-duration: 300ms; } + .duration-\[180ms\] { + --tw-duration: 180ms; + transition-duration: 180ms; + } + .ease-in-out { + --tw-ease: var(--ease-in-out); + transition-timing-function: var(--ease-in-out); + } + .select-none { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + } @media (hover: hover) { - .hover\:translate-y-\[-1px\]:hover { - --tw-translate-y: -1px; - translate: var(--tw-translate-x) var(--tw-translate-y); + .group-hover\:scale-\[1\.05\]:is(:where(.group):hover *) { + scale: 1.05; + } + } + @media (hover: hover) { + .group-hover\:text-\[\#e21e24\]:is(:where(.group):hover *) { + color: #e21e24; + } + } + @media (hover: hover) { + .group-hover\:shadow-\[0_8px_32px_0_rgba\(16\,_15\,_15\,_0\.12\)\]:is(:where(.group):hover *) { + --tw-shadow: 0 8px 32px 0 var(--tw-shadow-color, rgba(16, 15, 15, 0.12)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } + @media (hover: hover) { + .hover\:border-b-\[\#e21e24\]:hover { + border-bottom-color: #e21e24; } } @media (hover: hover) { @@ -1059,53 +1667,73 @@ background-color: #2563eb; } } + @media (hover: hover) { + .hover\:bg-\[\#e0e0e0\]:hover { + background-color: #e0e0e0; + } + } @media (hover: hover) { .hover\:bg-gray-100:hover { background-color: var(--color-gray-100); } } + @media (hover: hover) { + .hover\:text-\[\#2B2C35\]:hover { + color: #2B2C35; + } + } + @media (hover: hover) { + .hover\:text-\[\#9d9994\]:hover { + color: #9d9994; + } + } @media (hover: hover) { .hover\:text-\[\#222\]:hover { color: #222; } } - @media (hover: hover) { - .hover\:text-\[\#444\]:hover { - color: #444; - } - } @media (hover: hover) { .hover\:text-\[\#555\]:hover { color: #555; } } - @media (hover: hover) { - .hover\:text-\[\#888\]:hover { - color: #888; - } - } @media (hover: hover) { .hover\:text-gray-700:hover { color: var(--color-gray-700); } } + @media (hover: hover) { + .hover\:\!no-underline:hover { + text-decoration-line: none !important; + } + } @media (hover: hover) { .hover\:\!decoration-inherit:hover { text-decoration-color: inherit !important; } } + @media (hover: hover) { + .hover\:opacity-80:hover { + opacity: 80%; + } + } + @media (hover: hover) { + .hover\:opacity-90:hover { + opacity: 90%; + } + } + @media (hover: hover) { + .hover\:shadow-\[0_8px_32px_0_rgba\(16\,_15\,_15\,_0\.12\)\]:hover { + --tw-shadow: 0 8px 32px 0 var(--tw-shadow-color, rgba(16, 15, 15, 0.12)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } @media (hover: hover) { .hover\:shadow-xl:hover { --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } } - @media (hover: hover) { - .hover\:brightness-150:hover { - --tw-brightness: brightness(150%); - filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); - } - } .focus\:ring-2:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); @@ -1131,36 +1759,16 @@ padding: 20px; } } - @media (width < 768px) { - .max-\[768px\]\:pt-\[40px\] { - padding-top: 40px; - } - } - @media (width < 768px) { - .max-\[768px\]\:pt-\[64px\] { - padding-top: 64px; - } - } @media (width < 768px) { .max-\[768px\]\:text-\[14px\] { font-size: 14px; } } - @media (width < 768px) { - .max-\[768px\]\:text-\[18px\] { - font-size: 18px; - } - } @media (width < 768px) { .max-\[768px\]\:text-\[20px\] { font-size: 20px; } } - @media (width < 768px) { - .max-\[768px\]\:text-\[28px\] { - font-size: 28px; - } - } @media (width < 768px) { .max-\[768px\]\:text-\[34px\] { font-size: 34px; @@ -1222,6 +1830,11 @@ display: flex; } } + @media (width >= 960px) { + .lg\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + } @media (width >= 960px) { .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); @@ -1243,143 +1856,196 @@ line-height: var(--tw-leading, var(--text-5xl--line-height)); } } - @media (width >= 1024px) { - .min-\[1024px\]\:h-\[700px\] { - height: 700px; + @media (width >= 1280px) { + .xl\:grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); } } - @media (prefers-color-scheme: dark) { - .dark\:border { - border-style: var(--tw-border-style); - border-width: 1px; + .dark\:max-w-\[860px\]:where(.dark, .dark *) { + max-width: 860px; + } + .dark\:border:where(.dark, .dark *) { + border-style: var(--tw-border-style); + border-width: 1px; + } + .dark\:\!border-none:where(.dark, .dark *) { + --tw-border-style: none !important; + border-style: none !important; + } + .dark\:border-\[\#574348\]:where(.dark, .dark *) { + border-color: #574348; + } + .dark\:border-\[rgba\(248\,_248\,_248\,_0\.2\)\]:where(.dark, .dark *) { + border-color: rgba(248, 248, 248, 0.2); + } + .dark\:border-\[rgba\(248\,_248\,_248\,_0\.5\)\]:where(.dark, .dark *) { + border-color: rgba(248, 248, 248, 0.5); + } + .dark\:border-transparent:where(.dark, .dark *) { + border-color: transparent; + } + .dark\:border-white\/\[0\.05\]:where(.dark, .dark *) { + border-color: color-mix(in oklab, var(--color-white) 5%, transparent); + } + .dark\:\!border-b-\[\#fff\]:where(.dark, .dark *) { + border-bottom-color: #fff !important; + } + .dark\:\!bg-\[\#f8f8f8\]:where(.dark, .dark *) { + background-color: #f8f8f8 !important; + } + .dark\:bg-\[\#141419\]:where(.dark, .dark *) { + background-color: #141419; + } + .dark\:bg-\[\#f4f4f4\]:where(.dark, .dark *) { + background-color: #f4f4f4; + } + .dark\:bg-\[\#f8f8f8\]:where(.dark, .dark *) { + background-color: #f8f8f8; + } + .dark\:bg-\[transparent\]:where(.dark, .dark *) { + background-color: transparent; + } + .dark\:bg-inherit:where(.dark, .dark *) { + background-color: inherit; + } + .dark\:bg-white:where(.dark, .dark *) { + background-color: var(--color-white); + } + .dark\:bg-gradient-to-r:where(.dark, .dark *) { + --tw-gradient-position: to right in oklab; + background-image: linear-gradient(var(--tw-gradient-stops)); + } + .dark\:\!bg-none:where(.dark, .dark *) { + background-image: none !important; + } + .dark\:bg-\[linear-gradient\(90deg\,_\#2b2c35_53\.4\%\,_\#4f5870_100\%\)\]:where(.dark, .dark *) { + background-image: linear-gradient(90deg, #2b2c35 53.4%, #4f5870 100%); + } + .dark\:bg-\[linear-gradient\(90deg\,rgba\(248\,248\,248\,0\.04\)_65\.8\%\,rgba\(255\,255\,255\,0\.12\)_100\%\)\]:where(.dark, .dark *) { + background-image: linear-gradient(90deg,rgba(248,248,248,0.04) 65.8%,rgba(255,255,255,0.12) 100%); + } + .dark\:bg-none:where(.dark, .dark *) { + background-image: none; + } + .dark\:from-\[rgba\(248\,248\,248\,0\.55\)\]:where(.dark, .dark *) { + --tw-gradient-from: rgba(248,248,248,0.55); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .dark\:to-white:where(.dark, .dark *) { + --tw-gradient-to: var(--color-white); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .dark\:bg-clip-text:where(.dark, .dark *) { + -webkit-background-clip: text; + background-clip: text; + } + .dark\:fill-\[\#222222\]:where(.dark, .dark *) { + fill: #222222; + } + .dark\:fill-\[\#F8F8F8\]:where(.dark, .dark *) { + fill: #F8F8F8; + } + .dark\:text-\[42px\]:where(.dark, .dark *) { + font-size: 42px; + } + .dark\:text-\[\#6c6b6b\]:where(.dark, .dark *) { + color: #6c6b6b; + } + .dark\:text-\[\#222\]:where(.dark, .dark *) { + color: #222; + } + .dark\:text-\[\#F8F8F8\]:where(.dark, .dark *) { + color: #F8F8F8; + } + .dark\:text-\[\#f8f8f8\]:where(.dark, .dark *) { + color: #f8f8f8; + } + .dark\:text-\[\#fff\]:where(.dark, .dark *) { + color: #fff; + } + .dark\:text-transparent:where(.dark, .dark *) { + color: transparent; + } + .dark\:opacity-20:where(.dark, .dark *) { + opacity: 20%; + } + .dark\:backdrop-blur-\[20px\]:where(.dark, .dark *) { + --tw-backdrop-blur: blur(20px); + -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + } + @media (hover: hover) { + .dark\:hover\:border-b-\[\#fff\]:where(.dark, .dark *):hover { + border-bottom-color: #fff; } } - @media (prefers-color-scheme: dark) { - .dark\:border-\[rgba\(248\,248\,248\,0\.05\)\] { - border-color: rgba(248,248,248,0.05); + @media (hover: hover) { + .dark\:hover\:text-\[\#9d9994\]:where(.dark, .dark *):hover { + color: #9d9994; } } - @media (prefers-color-scheme: dark) { - .dark\:border-\[rgba\(248\,_248\,_248\,_0\.2\)\] { - border-color: rgba(248, 248, 248, 0.2); + @media (hover: hover) { + .dark\:hover\:text-\[\#c7c7c7\]:where(.dark, .dark *):hover { + color: #c7c7c7; } } - @media (prefers-color-scheme: dark) { - .dark\:border-\[rgba\(248\,_248\,_248\,_0\.5\)\] { - border-color: rgba(248, 248, 248, 0.5); - } - } - @media (prefers-color-scheme: dark) { - .dark\:border-white\/\[0\.05\] { - border-color: color-mix(in oklab, var(--color-white) 5%, transparent); - } - } - @media (prefers-color-scheme: dark) { - .dark\:border-white\/\[0\.12\] { - border-color: color-mix(in oklab, var(--color-white) 12%, transparent); - } - } - @media (prefers-color-scheme: dark) { - .dark\:bg-\[\#f8f8f8\] { - background-color: #f8f8f8; - } - } - @media (prefers-color-scheme: dark) { - .dark\:bg-inherit { - background-color: inherit; - } - } - @media (prefers-color-scheme: dark) { - .dark\:bg-gradient-to-r { - --tw-gradient-position: to right in oklab; - background-image: linear-gradient(var(--tw-gradient-stops)); - } - } - @media (prefers-color-scheme: dark) { - .dark\:bg-\[linear-gradient\(90deg\,rgba\(248\,248\,248\,0\.04\)_65\.8\%\,rgba\(255\,255\,255\,0\.12\)_100\%\)\] { - background-image: linear-gradient(90deg,rgba(248,248,248,0.04) 65.8%,rgba(255,255,255,0.12) 100%); - } - } - @media (prefers-color-scheme: dark) { - .dark\:from-\[rgba\(248\,248\,248\,0\.55\)\] { - --tw-gradient-from: rgba(248,248,248,0.55); - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - } - @media (prefers-color-scheme: dark) { - .dark\:to-white { - --tw-gradient-to: var(--color-white); - --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); - } - } - @media (prefers-color-scheme: dark) { - .dark\:bg-clip-text { - -webkit-background-clip: text; - background-clip: text; - } - } - @media (prefers-color-scheme: dark) { - .dark\:fill-\[\#F8F8F8\] { - fill: #F8F8F8; - } - } - @media (prefers-color-scheme: dark) { - .dark\:text-\[\#6c6b6b\] { - color: #6c6b6b; - } - } - @media (prefers-color-scheme: dark) { - .dark\:text-\[\#f8f8f8\] { + @media (hover: hover) { + .dark\:hover\:text-\[\#f8f8f8\]:where(.dark, .dark *):hover { color: #f8f8f8; } } - @media (prefers-color-scheme: dark) { - .dark\:text-transparent { - color: transparent; - } + .\[\&_\.swiper-scrollbar-drag\]\:dark\:\!bg-\[\#989597\] .swiper-scrollbar-drag:where(.dark, .dark *) { + background-color: #989597 !important; } - @media (prefers-color-scheme: dark) { - .dark\:opacity-20 { - opacity: 20%; - } + .\[\&_div\]\:text-\[\#222\] div { + color: #222; } - @media (prefers-color-scheme: dark) { - .dark\:backdrop-blur-\[20px\] { - --tw-backdrop-blur: blur(20px); - -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); - backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); - } + .\[\&_div\]\:text-\[\#f8f8f8\] div { + color: #f8f8f8; } - @media (prefers-color-scheme: dark) { - @media (hover: hover) { - .dark\:hover\:text-\[\#c7c7c7\]:hover { - color: #c7c7c7; - } - } + .\[\&_img\]\:w-\[294px\] img { + width: 294px; } - @media (prefers-color-scheme: dark) { - @media (hover: hover) { - .dark\:hover\:brightness-90:hover { - --tw-brightness: brightness(90%); - filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); - } + .\[\&_p\]\:text-\[\#6c6b6b\] p { + color: #6c6b6b; + } + .\[\&_p\]\:text-\[\#bcbcc0\] p { + color: #bcbcc0; + } + @media (hover: hover) { + .hover\:\[\&_svg\]\:fill-\[\#e21e24\]:hover svg { + fill: #e21e24; } } .\[\&\>_img\]\:max-w-none> img { max-width: none; } + .\[\&\>img\]\:w-\[294px\]>img { + width: 294px; + } @media (hover: hover) { .hover\:\[\&\>img\]\:brightness-150:hover>img { --tw-brightness: brightness(150%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); } } - @media (prefers-color-scheme: dark) { - @media (hover: hover) { - .dark\:hover\:\[\&\>img\]\:brightness-90:hover>img { - --tw-brightness: brightness(90%); - filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); - } + @media (hover: hover) { + .dark\:hover\:\[\&\>img\]\:brightness-90:where(.dark, .dark *):hover>img { + --tw-brightness: brightness(90%); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + } + .\[\&\>li\>a\]\:\!no-underline>li>a { + text-decoration-line: none !important; + } + .\[\&\>svg\]\:min-w-fit>svg { + min-width: -moz-fit-content; + min-width: fit-content; + } + @media (hover: hover) { + .hover\:\[\&\>svg\]\:translate-x-\[6px\]:hover>svg { + --tw-translate-x: 6px; + translate: var(--tw-translate-x) var(--tw-translate-y); } } } @@ -1439,6 +2105,96 @@ html, body { background-position: 39.42% 0; 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 .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; +} @layer base { *, ::after, @@ -1508,11 +2264,58 @@ html, body { inherits: false; initial-value: 0; } +@property --tw-divide-x-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} @property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; } +@property --tw-gradient-position { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-from { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-via { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-to { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-stops { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-via-stops { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-from-position { + syntax: ""; + inherits: false; + initial-value: 0%; +} +@property --tw-gradient-via-position { + syntax: ""; + inherits: false; + initial-value: 50%; +} +@property --tw-gradient-to-position { + syntax: ""; + inherits: false; + initial-value: 100%; +} @property --tw-leading { syntax: "*"; inherits: false; @@ -1656,47 +2459,9 @@ html, body { syntax: "*"; inherits: false; } -@property --tw-gradient-position { +@property --tw-ease { syntax: "*"; inherits: false; } -@property --tw-gradient-from { - syntax: ""; - inherits: false; - initial-value: #0000; -} -@property --tw-gradient-via { - syntax: ""; - inherits: false; - initial-value: #0000; -} -@property --tw-gradient-to { - syntax: ""; - inherits: false; - initial-value: #0000; -} -@property --tw-gradient-stops { - syntax: "*"; - inherits: false; -} -@property --tw-gradient-via-stops { - syntax: "*"; - inherits: false; -} -@property --tw-gradient-from-position { - syntax: ""; - inherits: false; - initial-value: 0%; -} -@property --tw-gradient-via-position { - syntax: ""; - inherits: false; - initial-value: 50%; -} -@property --tw-gradient-to-position { - syntax: ""; - inherits: false; - initial-value: 100%; -} diff --git a/footer.php b/footer.php index 93da513..d3f52e1 100644 --- a/footer.php +++ b/footer.php @@ -11,6 +11,23 @@ + + + + + diff --git a/functions.php b/functions.php index 460dfa1..e4039bc 100644 --- a/functions.php +++ b/functions.php @@ -118,6 +118,11 @@ function get_current_room() { $modal_file = get_template_directory() . '/template-parts/la-components/functions/modals.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'; +$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)) { require_once $block_file; } @@ -168,4 +173,79 @@ function wider_language_cols() { } '; } -add_action('admin_head', 'wider_language_cols'); \ No newline at end of file +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') { + ?> + + - + + + +
+ > + +
+ + +
+ +
+
+

+ +

+ +

+ Очень скоро с вами свяжется наш отдел заботы, чтобы ответить на все + интересующие + вопросы.

+
+ +
+ + +

+ +

+ + + +
+ +
+ + +
+
diff --git a/js/app.js b/js/app.js index 933a999..a5f8a86 100644 --- a/js/app.js +++ b/js/app.js @@ -50,6 +50,97 @@ document.addEventListener('DOMContentLoaded', function() { 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); + } + } + } +}); + /***/ }) /******/ }); diff --git a/resources/css/editor-style.css b/resources/css/editor-style.css index 6a0f65c..9bab82d 100644 --- a/resources/css/editor-style.css +++ b/resources/css/editor-style.css @@ -1,4 +1,5 @@ @import 'tailwindcss'; +@custom-variant dark (&:where(.dark, .dark *)); @import './theme.css'; /* diff --git a/resources/css/theme.css b/resources/css/theme.css index 8928845..041e094 100644 --- a/resources/css/theme.css +++ b/resources/css/theme.css @@ -96,4 +96,116 @@ html, body { 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; +} \ No newline at end of file diff --git a/resources/js/app.js b/resources/js/app.js index f9a3b3a..043774f 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -14,3 +14,103 @@ document.addEventListener('DOMContentLoaded', function() { 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); + } + } + } +}); \ No newline at end of file diff --git a/screenshot.png b/screenshot.png index a4203bf..2d9db3d 100644 Binary files a/screenshot.png and b/screenshot.png differ diff --git a/screenshot.png.webp b/screenshot.png.webp new file mode 100644 index 0000000..e2130d5 Binary files /dev/null and b/screenshot.png.webp differ diff --git a/single-trainer.php b/single-trainer.php new file mode 100644 index 0000000..615141b --- /dev/null +++ b/single-trainer.php @@ -0,0 +1,181 @@ + + +
+
+ +
+ +
+ +
+ <?php echo esc_attr($trainer_photos[0]['alt']); ?> +
+ + + + 1): ?> +
+ +
+ <?php echo esc_attr($trainer_photos[$i]['alt']); ?> +
+ +
+ +
+ + +
+
+
+ +
+ +
+ +
+ +
+ + +

+ +

+ + + +
+ +
+ + + +
+ +
+ + + + +
+

Квалификация и достижения

+
    + + +
  • +
    + +
  • + + +
+
+ + + + +
+

Документы

+ +
+ +
+
+ + + +
+

Тренировки с

+ +
+ +
+
+ + \ No newline at end of file diff --git a/single-training.php b/single-training.php new file mode 100644 index 0000000..339ec35 --- /dev/null +++ b/single-training.php @@ -0,0 +1,235 @@ + + +
+
+ + + + +
+ +
+ +
+ <?php echo esc_attr($training_photos[0]['alt']); ?> +
+ + + + 1): ?> +
+ +
+ <?php echo esc_attr($training_photos[$i]['alt']); ?> +
+ +
+ +
+ + +
+
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + +

+ +

+ + + +
+ +
+ + + +
+ +
+ + + + +
+

Что происходит на тренировке

+
    + + +
  • +
    + +
  • + + +
+
+ + + + +
+

Для кого подходит

+
    + + +
  • +
    + +
  • + + +
+
+ +
+
+ + + +
+

Тренеры

+
+ + + 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); + ?> + + +
+ <?php echo esc_attr($trainer_photos[0]['alt']); ?> +
+ +
+
+
+ +
+ +
+ +
+ +
+ + +

+ +

+ + + +

+ +

+ + +
+ Подробнее + + + +
+
+
+ + +
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/template-parts/club-cards-template.php b/template-parts/club-cards-template.php new file mode 100644 index 0000000..3a8c5f9 --- /dev/null +++ b/template-parts/club-cards-template.php @@ -0,0 +1,775 @@ + '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(); + +?> + +
+
+ +
+ +
+
+
+ ID); + if ($card_image): ?> +
+ <?php echo esc_attr($card_image['alt']); ?> +
+ + ID); ?> + +

+ +

+ +
+ + ID); ?> + +
+ +
+ + +
+ ID); ?> + ID) ?: ($card_prices['1_month']['day'] ?? ''); ?> + 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') + ]; + } + } + } + } + } + ?> + 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') + ]; + } + } + ?> +
+ +
+ +
+ от  +
+  ₽ +
+  в день +
+ + + + +
+
+
+ +
+ +
+
+
+
+
+ > +

+ В клубные карты входит +

+
+ ' + + + + + + + + + + + + + + + + + +', + 'heading' => 'Тренажерный зал' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +', + 'heading' => 'Групповые программы по расписанию' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + +', + 'heading' => 'Кардио зона' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + +', + 'heading' => 'Зарядка телефона' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + +', + 'heading' => 'Раздевалки с душевыми' + ], + [ + 'svg' => ' + + + + + + + +', + 'heading' => 'Функциональная зона' + ], + [ + 'svg' => ' + + + + + + + + + + + + +', + 'heading' => 'Сауна' + ], + [ + 'svg' => ' + + + + + + + + + + + + +', + 'heading' => 'Полотенце' + ], + [ + 'svg' => ' + + + + + + + + + + + + +', + 'heading' => 'Питьевая вода' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + +', + 'heading' => 'Вводный инструктаж' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + + + + + + +', + 'heading' => 'Посещение зоны бокса' + ] + ]; + } else { + $card_include = [ + [ + 'svg' => ' + + + + + + + + + + + + + + + + + +', + 'heading' => 'Тренажерный зал' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + +', + 'heading' => 'Кардио зона' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + +', + 'heading' => 'Зарядка телефона' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + +', + 'heading' => 'Раздевалки с душевыми' + ], + [ + 'svg' => ' + + + + + + + +', + 'heading' => 'Функциональная зона' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + +', + 'heading' => 'Вводный инструктаж' + ], + + ]; + } + + + foreach ($card_include as $card) { + $card_svg = $card['svg']; + $card_heading = $card['heading']; + ?> +
+
+
+ +
+
+ + +
+
+
+
+ + ' + + + + + + + + + + + + + +', + 'heading' => 'Заморозка карты', + 'description' => 'Услуга временно приостановить членство в фитнес-центре, и таким образом перенести действие карты на более удобный период. От 10 до 30 дней для клубных карт на 6 месяцев и от 10 до 60 дней для карт на 12 месяцев.' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + + + + + + + +', + 'heading' => 'Персональные тренировки', + 'description' => 'Высококвалифицированные специалисты в области фитнеса готовы предоставить свою помощь новичкам, а так же тем, кто хочет получить максимальный результат от тренировок.' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + + + +', + 'heading' => 'Массаж и SPA', + 'description' => 'Прекрасная возможность расслабиться и поправить свое здоровье.' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + + + + + + + + + + + +', + 'heading' => 'Мастер-классы', + 'description' => 'Мы регулярно приглашаем знаменитостей в нашей фитнес-центр. Мастер-классы проходят как бесплатно, так и за символическую стоимость.' + ], + [ + 'svg' => ' + + + + + + + + +', + 'heading' => 'Солярии', + 'description' => 'Вместе с красивым цветом кожи вы получите хорошую порцию эндорфинов и витамина D. Так же, у нас большой выбор косметики для загара.' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + +', + 'heading' => 'Фитнес-бар', + 'description' => 'В нашем баре Вы всегда получите всё необходимое для подъёма тонуса, более эффективных тренировок и хорошего настроения.' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + +', + 'heading' => 'Фитнес-кафе', + 'description' => 'Низкокалорийные и полезные блюда. Горячее и закуски, чай и кофе, свежевыжатый сок и десерты - всё это можно попробовать у нас и заказать на вынос.' + ], + [ + 'svg' => ' + + + + + + + + + + + + + + + + + + +', + 'heading' => 'Магазин спортивного питания', + 'description' => 'Для спортсменов на территории клуба так же находится магазин спортивного питания. Широкий ассортимент порадует даже профессионалов и не даст уйти с пустыми руками!' + ] +]; +?> + +
+
+
+
+ +

Дополнительные + услуги

+ + +
+ + +
+
+
+
+ +
+

+ +

+
+ +
+ +
+
+
+ +
+
+
+ + \ No newline at end of file diff --git a/template-parts/gallery-template.php b/template-parts/gallery-template.php new file mode 100644 index 0000000..0055805 --- /dev/null +++ b/template-parts/gallery-template.php @@ -0,0 +1,14 @@ + + + + \ No newline at end of file diff --git a/template-parts/la-components/blocks/club-cards-block/club-cards-block.php b/template-parts/la-components/blocks/club-cards-block/club-cards-block.php index b1775c8..33dd086 100644 --- a/template-parts/la-components/blocks/club-cards-block/club-cards-block.php +++ b/template-parts/la-components/blocks/club-cards-block/club-cards-block.php @@ -3,7 +3,7 @@ * Блок с клубными картами */ -// Получение полей ACF + $block_id = 'club-cards-' . $block['id']; $class_name = 'club-cards-block'; if (!empty($block['className'])) { @@ -14,14 +14,17 @@ if (!empty($block['align'])) { } 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(); $args = array( 'post_type' => 'club-card', 'posts_per_page' => -1, 'lang' => $current_lang, - 'post_status' => 'publish' + 'post_status' => 'publish', + 'sort' => 'menu_order', + 'order' => 'ASC', ); return get_posts($args); @@ -30,57 +33,118 @@ if (!function_exists('get_club_cards_for_current_language')) { $cards = get_club_cards_for_current_language(); $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) . ')"'; +} + ?> -
-
- -

- +
> +
-
- -
- ID); - if ($card_image): ?> -
- <?php echo esc_attr($card_image['alt']); ?> -
- +
+ + +
-
- ID); ?> - -

- -

- +

+ + +
+ + + +
+
+
ID); + if ($card_image): ?> +
+ <?php echo esc_attr($card_image['alt']); ?> +
+ + ID); ?> + +

+ +

+
ID); ?> -
+
- - ID); ?> - -
- От Р. -
- - - -
+
ID); ?> - + ID) ?: ($card_prices['1_month']['day'] ?? ''); ?> + 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') + ]; + } + } + } + } + } + ?> + 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') + ]; + } + } + ?> +
+ +
+ +
+ от  +
+  ₽ +
+  в день +
+ + + +
diff --git a/template-parts/la-components/blocks/contacts-block/contacts-block.js b/template-parts/la-components/blocks/contacts-block/contacts-block.js index a5018da..b6ba9c4 100644 --- a/template-parts/la-components/blocks/contacts-block/contacts-block.js +++ b/template-parts/la-components/blocks/contacts-block/contacts-block.js @@ -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 mapCenter = [ - buildingCoordinates[0], - buildingCoordinates[1] - offsetCoefficient + buildingCoordinates[0], + buildingCoordinates[1] - offsetCoefficient ]; var myMap = new ymaps.Map('map', { - center: mapCenter, - zoom: 17, - controls: [] -}); + center: mapCenter, + zoom: 17, + controls: [] + }); // Отключаем все взаимодействия с картой myMap.behaviors.disable(['scrollZoom', 'drag', 'multiTouch', 'dblClickZoom']); - var svgIcon = '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - ''; - - - 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( - buildingCoordinates, -{hintContent: '', balloonContent: ''}, -{ - - iconLayout: 'default#imageWithContent', - iconImageHref: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svgIcon), - iconImageSize: iconSize, - iconImageOffset: iconOffset, - hideIconOnBalloonOpen: false -} + buildingCoordinates, + {hintContent: '', balloonContent: ''}, + { + preset: 'islands#greyIcon' + } ); - + // Делаем карту черно-белой myMap.panes.get('ground').getElement().style.filter = 'grayscale(100%)'; - + // Добавляем метку на карту myMap.geoObjects.add(myPlacemark); - + // Логика интерактивности карты остается без изменений var isMapInteractive = false; var mapElement = document.getElementById('map'); function activateMap(e) { - if (!isMapInteractive) { - myMap.behaviors.enable(['scrollZoom', 'drag', 'multiTouch', 'dblClickZoom']); - isMapInteractive = true; + if (!isMapInteractive) { + myMap.behaviors.enable(['scrollZoom', 'drag', 'multiTouch', 'dblClickZoom']); + isMapInteractive = true; - setTimeout(function () { - document.addEventListener('click', deactivateMap); - document.addEventListener('touchend', deactivateMap); -}, 100); + setTimeout(function () { + document.addEventListener('click', deactivateMap); + document.addEventListener('touchend', deactivateMap); + }, 100); - e.stopPropagation(); -} -} + e.stopPropagation(); + } + } function deactivateMap(e) { - var target = e.target; + var target = e.target; - if (e.type === 'touchend' || e.changedTouches || e.changedTouches[0]) { - var touch = e.changedTouches[0]; - target = document.elementFromPoint(touch.clientX, touch.clientY); -} + if (e.type === 'touchend' || e.changedTouches || e.changedTouches[0]) { + var touch = e.changedTouches[0]; + 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']); - isMapInteractive = false; - - - document.removeEventListener('click', deactivateMap); - document.removeEventListener('touchend', deactivateMap); -} -} + document.removeEventListener('click', deactivateMap); + document.removeEventListener('touchend', deactivateMap); + } + } mapElement.addEventListener('click', activateMap); mapElement.addEventListener('touchstart', activateMap); -}); +}); \ No newline at end of file diff --git a/template-parts/la-components/blocks/contacts-block/contacts-block.php b/template-parts/la-components/blocks/contacts-block/contacts-block.php index bfd7b50..66303b6 100644 --- a/template-parts/la-components/blocks/contacts-block/contacts-block.php +++ b/template-parts/la-components/blocks/contacts-block/contacts-block.php @@ -25,7 +25,7 @@ if (!empty($blocks) && isset($blocks[0]['blockName']) && $blocks[0]['blockName'] $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
-
+
-
-
+
+
-

+

- -

Контакты

- + -
+
- -
- -

+ + + +
+ +
+ + + + + + + + + + +

+
- -
- -
- -   - + +
+ +
+ +
+ + +
+
@@ -85,22 +104,32 @@ $section_padding = $is_first_block ? "pt-[64px] max-[768px]:pt-[40px]" : "pt-[80
- -
- -

+ +
+ +
+ + + + + + + + + + + +

+
- -
- -
- -
- - -
- + +
+ +
+ +   +
@@ -109,18 +138,18 @@ $section_padding = $is_first_block ? "pt-[64px] max-[768px]:pt-[40px]" : "pt-[80 -
+
-
+ -
+
@@ -130,7 +159,7 @@ $section_padding = $is_first_block ? "pt-[64px] max-[768px]:pt-[40px]" : "pt-[80 <?php echo esc_attr($social_item['icon']['alt']); ?> + class="object-contain w-[42px]" /> diff --git a/template-parts/la-components/blocks/form-block/form-block.css b/template-parts/la-components/blocks/form-block/form-block.css index 66cee77..fc5b231 100644 --- a/template-parts/la-components/blocks/form-block/form-block.css +++ b/template-parts/la-components/blocks/form-block/form-block.css @@ -1,91 +1,89 @@ -.form-block-wrapper .ff-el-group { - margin-bottom: 24px; +#fluentform_3 { + } -.form-block-wrapper .ff-el-input--label label { - 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; +#fluentform_3 .ff-el-form-control { 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; + 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-size: 18px; + line-height: 195%; + color: #f8f8f8; + display: grid; + place-content: center; + width: 100%; cursor: pointer; - transition: all 0.3s ease; - text-transform: none; + transition: 180ms ease-in; } -.form-block-wrapper .ff-btn-submit:hover { - transform: translateY(-1px); - box-shadow: 0 8px 25px rgba(59, 130, 246, 0.3); +#fluentform_3 .ff-btn-submit:hover { + font-weight: 700; + transition: 180ms ease-in; } -.form-block-wrapper .ff-btn-submit:active { - transform: translateY(0); +#fluentform_3 .ff_submit_btn_wrapper { + margin-bottom: 0!important; } -.form-block-wrapper .asterisk-right label::after { - content: ' *'; - color: #ef4444; - font-weight: bold; +#fluentform_3 .error.text-danger { + position: absolute; + margin-top: 0; + bottom: -18px; + left: 0; + width: 100%; + text-align: center; } -.form-block-wrapper .ff-message-success, -.form-block-wrapper .ff-message-container { - display: none !important; +#fluentform_3 .ff-el-group { + position: relative; + margin-bottom: 18px; } -.form-block-wrapper.form-loading .ff-btn-submit { - opacity: 0.7; +#fluentform_3_success { + display: none!important; +} + + + +#fluentform_3 .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; } -@media (max-width: 768px) { - .form-block-wrapper { - margin: 20px; - padding: 20px; - } - .form-block-wrapper .ff-el-form-control { - font-size: 16px; - padding: 10px 14px; - } - - .form-block-wrapper .ff-btn-submit { - font-size: 16px; - padding: 12px 20px; - } -} - -@media (max-width: 1024px) and (min-width: 769px) { - .form-block-wrapper { - padding: 25px; - } +#fluentform_3 .ff-el-group.focused .ff-el-input--label, +#fluentform_3 .ff-el-group.has-value .ff-el-input--label { + top: 6px; + transform: translateY(0); + transition: 180ms ease-in-out; + font-size: 14px; } \ No newline at end of file diff --git a/template-parts/la-components/blocks/form-block/form-block.js b/template-parts/la-components/blocks/form-block/form-block.js new file mode 100644 index 0000000..3a21b83 --- /dev/null +++ b/template-parts/la-components/blocks/form-block/form-block.js @@ -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); + } + } + }); + } +}); \ No newline at end of file diff --git a/template-parts/la-components/blocks/form-block/form-block.php b/template-parts/la-components/blocks/form-block/form-block.php index fdc99b6..1acc361 100644 --- a/template-parts/la-components/blocks/form-block/form-block.php +++ b/template-parts/la-components/blocks/form-block/form-block.php @@ -10,24 +10,44 @@ $current_url = home_url($_SERVER['REQUEST_URI']); $page_title = get_the_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}"; ?> -
-
- -
+
+> -
- +
+ Изображение тренера +
+

Пробная персональная + тренировка + за 1200 ₽ +

+

Познакомимся, покажем зал и + подберём + оптимальные для вас тренировки!

+ +
\ No newline at end of file diff --git a/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.css b/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.css new file mode 100644 index 0000000..55aaecd --- /dev/null +++ b/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.css @@ -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; +} + diff --git a/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.js b/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.js index afe3a9e..4e1b6ff 100644 --- a/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.js +++ b/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.js @@ -1,5 +1,5 @@ -document.addEventListener('DOMContentLoaded', function() { - document.querySelectorAll('.gallery-block').forEach(function(block) { +document.addEventListener('DOMContentLoaded', function () { + document.querySelectorAll('.gallery-block').forEach(function (block) { const blockId = block.getAttribute('data-gallery-id'); initGalleryBlock(blockId); }); @@ -10,99 +10,126 @@ function initGalleryBlock(blockId) { if (!container) return; const swipers = {}; + const thumbnailSwipers = {}; + const initializedTabs = new Set(); let lightbox; - function initAllSwipers() { - const tabs = container.querySelectorAll('.tab-button'); + function initTabSwiper(tabId) { + if (initializedTabs.has(tabId)) return; - tabs.forEach(button => { - const tabId = button.getAttribute('data-tab'); - const tabContent = container.querySelector(`#tab-${tabId}`); + const tabContent = container.querySelector(`#tab-${tabId}`); + if (!tabContent?.querySelector('.gallery-swiper')) return; - if (tabContent && tabContent.querySelector('.swiper')) { - const wasHidden = tabContent.classList.contains('hidden'); - if (wasHidden) { - tabContent.style.visibility = 'hidden'; - tabContent.style.position = 'absolute'; - tabContent.classList.remove('hidden'); - tabContent.classList.add('block'); - } + thumbnailSwipers[tabId] = new Swiper(`#${blockId} #thumbnail-swiper-${tabId}`, { + slidesPerView: 'auto', + spaceBetween: 24, + freeMode: true, + grabCursor: true, + watchSlidesProgress: true, + }); - if (swipers[tabId]) { - swipers[tabId].destroy(true, true); - } - - swipers[tabId] = new Swiper(`#${blockId} #swiper-${tabId}`, { - slidesPerView: 1.5, - spaceBetween: 20, - loop: true, - centeredSlides: true, - grabCursor: true, - observer: true, - observeParents: true, - watchSlidesProgress: true, - navigation: { - nextEl: `#${blockId} #swiper-${tabId} .swiper-button-next`, - prevEl: `#${blockId} #swiper-${tabId} .swiper-button-prev`, - }, - on: { - slideChange: function() { - updateThumbnails(tabId, this.realIndex); - } - } - }); - - if (wasHidden) { - tabContent.style.visibility = ''; - tabContent.style.position = ''; - tabContent.classList.add('hidden'); - tabContent.classList.remove('block'); + swipers[tabId] = new Swiper(`#${blockId} #swiper-${tabId}`, { + slidesPerView: 'auto', + spaceBetween: 24, + centeredSlides: true, + initialSlide: 1, + scrollbar: { + el: `#swiper-scrollbar-${tabId}`, + draggable: true, + }, + grabCursor: true, + watchSlidesProgress: true, + lazy: { + loadPrevNext: true, + loadOnTransitionStart: true, + }, + on: { + slideChange: function () { + updateThumbnails(tabId, this.realIndex); + centerThumbnail(tabId, this.realIndex); } } }); + + initializedTabs.add(tabId); } function initLightbox(tabId) { - if (lightbox) { - lightbox.destroy(); - } + const currentSelector = `#${blockId} #tab-${tabId} .glightbox`; - lightbox = GLightbox({ - selector: `#${blockId} #tab-${tabId} .glightbox` - }); + if (lightbox?.settings?.selector !== currentSelector) { + if (lightbox) { + lightbox.destroy(); + } + + lightbox = GLightbox({ + selector: currentSelector, + preload: false, + touchNavigation: true, + loop: true + }); + } } function updateThumbnails(tabId, activeIndex) { const thumbnails = container.querySelectorAll(`#tab-${tabId} .thumbnail`); thumbnails.forEach((thumb, index) => { if (index === activeIndex) { - thumb.classList.add('active', '!border-blue-500'); - thumb.classList.remove('border-transparent'); + thumb.classList.remove('opacity-50', 'hover:opacity-80'); + thumb.classList.add('opacity-100', 'active'); } else { - thumb.classList.remove('active', '!border-blue-500'); - thumb.classList.add('border-transparent'); + thumb.classList.remove('opacity-100', 'active'); + 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'); if (activeTab) { const tabId = activeTab.getAttribute('data-tab'); + initTabSwiper(tabId); initLightbox(tabId); } container.querySelectorAll('.tab-button').forEach(button => { - button.addEventListener('click', () => { + button.addEventListener('click', debounce(() => { const tabId = button.getAttribute('data-tab'); - container.querySelectorAll('.tab-button').forEach(btn => { - btn.classList.remove('active', 'underline'); - btn.classList.add('bg-gray-100'); - }); - button.classList.add('active', 'underline'); - button.classList.remove('bg-gray-100'); + container.querySelectorAll('.tab-button').forEach(btn => + btn.classList.remove('active')); + button.classList.add('active'); container.querySelectorAll('.tab-content').forEach(content => { content.classList.remove('block'); @@ -113,28 +140,41 @@ function initGalleryBlock(blockId) { targetTab.classList.remove('hidden'); targetTab.classList.add('block'); - if (swipers[tabId]) { - requestAnimationFrame(() => { + initTabSwiper(tabId); + + requestAnimationFrame(() => { + if (swipers[tabId]) { swipers[tabId].update(); - }); - } + } + if (thumbnailSwipers[tabId]) { + thumbnailSwipers[tabId].update(); + } + }); initLightbox(tabId); - }); + + }, 100)); }); container.addEventListener('click', (e) => { - if (e.target.closest('.thumbnail')) { - const thumbnail = e.target.closest('.thumbnail'); - const index = parseInt(thumbnail.getAttribute('data-index')); - const activeTab = container.querySelector('.tab-content.block'); - const tabId = activeTab.id.replace('tab-', ''); + const thumbnail = e.target.closest('.thumbnail'); + if (!thumbnail) return; - if (swipers[tabId]) { - swipers[tabId].slideToLoop(index); - } + const index = parseInt(thumbnail.getAttribute('data-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(); }); } \ No newline at end of file diff --git a/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.php b/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.php index 1a49d96..d70c25f 100644 --- a/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.php +++ b/template-parts/la-components/blocks/gallery-tabs/gallery-tabs.php @@ -1,85 +1,124 @@ -