shkola/wp-content/themes/dekart/assets/css/reviews-page.css
Dekart Deploy Bot c7bd6cef74 fix: SEO audit fixes for /otzyvy/ — Schema.org, PHP, JS, CSS, A11Y
Critical:
- Move GeoCoordinates from PostalAddress to Organization level
- Fix AggregateRating @id to point at #organization, not page URL

High:
- Replace Review.itemReviewed inline LocalBusiness with @id reference
- Change @type from array to just 'School'
- Remove foundingDate from reviews page (add comment for CF)
- Make telephone property conditional (only when non-empty)
- Add postalCode from branch_postal_code option
- Fix branch_city fallback from 'городе' to 'Щёлково'
- Replace inline onclick yaCounter with JS global handler
- Remove inline critical CSS (styles in file)
- Move price text to CF field reviews_intro_price_text

Medium:
- Add --color-bg and --accent CSS variables
- Fix .page-rewiews typo → .page-reviews
- Fix .contact-map display:flex→block
- Add prefers-reduced-motion support
- JS: var→let/const, scroll throttle via requestAnimationFrame
- JS: catch(e)→console.warn
- JS: data-target→data-target-value (avoid conflict)
- A11Y: FAQ aria-expanded/aria-controls, phone aria-label
- A11Y: modal role=dialog aria-modal=true
- A11Y: breadcrumb role=navigation aria-label
- Remove desktop-only class from breadcrumbs (mobile support)

Low:
- Add preconnect for unpkg.com (Phosphor Icons CDN)
- Add decoding=async to gallery images
2026-06-27 12:31:12 +00:00

1907 lines
40 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ════════════════════════════════════════════════════
reviews-page.css — стили для page-reviews.php
Декарт — частная школа
════════════════════════════════════════════════════
⚠️ SEO: Featured image файл назван "bezymyannyj.jpg"
(ID 1162). Для улучшения SEO переименовать в
"shkola-dekart-otzyvy.jpg" при повторной загрузке
или через media-rename плагин. */
/* ─── CSS-переменные дизайн-системы ─── */
:root {
--color-primary: #E8753A;
--color-primary-hover: #D6652E;
--color-secondary: #3BB2A0;
--color-accent: #FFD43E;
--color-text: #1C2B2D;
--color-text-muted: #5A6B6D;
--color-text-light: #8A9A9D;
--card-radius: 20px;
--card-padding: clamp(20px, 3vw, 32px);
--card-shadow: 0 2px 16px rgba(0,0,0,0.06);
--card-shadow-hover: 0 8px 32px rgba(0,0,0,0.1);
--transition-fast: 0.2s ease;
--transition-normal: 0.3s ease;
--color-bg: #fff;
--accent: #7C3AED;
--accent-hover: #6D28D9;
--accent-light: #F5F3FF;
--color-border: #e8e8e8;
}
/* ─── HERO ─── */
.reviews-hero {
position: relative;
padding: 60px 0;
overflow: hidden;
background: var(--color-text);
background-image:
radial-gradient(ellipse 80% 70% at 20% 40%, rgba(232, 117, 58, 0.08) 0%, transparent 70%),
radial-gradient(ellipse 60% 60% at 80% 60%, rgba(59, 178, 160, 0.06) 0%, transparent 70%);
}
/* Декоративный акцент — тонкая волнистая линия снизу */
.reviews-hero::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 6px;
background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 50%, var(--color-primary) 100%);
opacity: 0.5;
}
/* Акцентный уголок справа */
.reviews-hero::before {
content: '';
position: absolute;
top: -120px;
right: -120px;
width: 360px;
height: 360px;
border-radius: 50%;
background: radial-gradient(circle, rgba(232,117,58,0.06) 0%, transparent 70%);
pointer-events: none;
}
.reviews-hero__wrapper {
display: flex;
align-items: center;
gap: 40px;
position: relative;
z-index: 1;
}
.reviews-hero__content {
flex: 1;
max-width: 600px;
min-width: 0;
}
/* ─── Фото ─── */
.reviews-hero__image {
flex: 0 0 340px;
margin-left: auto;
margin-right: 20px;
border-radius: var(--card-radius);
overflow: hidden;
box-shadow: var(--card-shadow-hover);
transform: rotate(1deg);
transition: transform var(--transition-normal);
aspect-ratio: 4 / 3;
}
.reviews-hero__image:hover {
transform: rotate(0deg) scale(1.01);
}
.reviews-hero__image img {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
}
/* ─── H1 ─── */
.reviews-hero__h1 {
font-family: 'Oswald', sans-serif;
font-size: clamp(36px, 4.2vw, 52px);
font-weight: 500;
line-height: 1.12;
margin-bottom: 14px;
color: #fff;
}
.reviews-hero__subtitle {
font-size: 18px;
line-height: 1.55;
color: rgba(255,255,255,0.72);
margin-bottom: 28px;
max-width: 500px;
}
/* ─── Метрики ─── */
.reviews-hero__metrics {
display: flex;
gap: 16px;
margin-bottom: 32px;
flex-wrap: nowrap;
}
.reviews-hero__metric {
background: rgba(255,255,255,0.08);
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
border: 1px solid rgba(255,255,255,0.12);
border-radius: 14px;
padding: 14px 22px;
text-align: center;
min-width: 110px;
transition: background var(--transition-fast), transform var(--transition-fast);
}
.reviews-hero__metric:hover {
background: rgba(255,255,255,0.13);
transform: translateY(-2px);
}
.reviews-hero__metric-number {
font-family: 'Oswald', sans-serif;
font-size: clamp(28px, 3vw, 34px);
font-weight: 500;
color: var(--color-primary);
display: block;
line-height: 1.1;
margin-bottom: 2px;
}
.reviews-hero__metric-label {
font-size: 13px;
color: rgba(255,255,255,0.7);
text-transform: uppercase;
letter-spacing: 0.04em;
}
/* ─── CTA ─── */
.reviews-hero__cta-btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 16px 40px;
font-size: 17px;
font-weight: 600;
color: #fff;
background: var(--color-primary);
border: none;
border-radius: 12px;
cursor: pointer;
transition: background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
box-shadow: 0 4px 16px rgba(232, 117, 58, 0.35);
}
.reviews-hero__cta-btn:hover {
background: var(--color-primary-hover);
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(232, 117, 58, 0.45);
}
.reviews-hero__cta-btn:active {
transform: translateY(0);
}
/* ─── СЕТКА ОТЗЫВОВ ─── */
.reviews-grid {
padding: 20px 0 60px;
}
/* ─── H2 над отзывами (SEO) ─── */
.reviews-grid__h2 {
text-align: center;
margin-bottom: 16px;
font-family: 'Oswald', sans-serif;
font-size: clamp(24px, 2.8vw, 32px);
font-weight: 500;
color: var(--color-text);
}
/* ─── Пояснительный текст перед карточками ─── */
.reviews-grid__intro {
font-size: clamp(15px, 1.2vw, 17px);
line-height: 1.65;
color: var(--color-text-muted);
text-align: center;
max-width: 700px;
margin: 0 auto 40px;
}
/* ─── ВСТУПИТЕЛЬНЫЙ ТЕКСТ ─── */
.reviews-intro {
padding: 48px 0;
}
.reviews-intro__content {
max-width: 820px;
margin: 0 auto;
}
/* Лид-абзац — первый, акцентный */
.reviews-intro__lead {
font-size: clamp(17px, 1.5vw, 20px);
line-height: 1.55;
color: var(--color-text);
text-align: center;
margin-bottom: 28px;
padding-bottom: 28px;
border-bottom: 2px solid var(--color-border, #e8e8e8);
}
/* Сетка карточек (2-й и 3-й абзацы) */
.reviews-intro__grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-bottom: 24px;
}
.reviews-intro__card {
background: var(--accent-light, #f7f6f2);
border-radius: 12px;
padding: 20px;
display: flex;
flex-direction: column;
gap: 10px;
}
.reviews-intro__card-icon {
font-size: 22px;
line-height: 1;
flex-shrink: 0;
}
.reviews-intro__card-text {
font-size: 14.5px;
line-height: 1.55;
color: var(--color-text);
margin: 0;
}
/* ─── Инфоблок (режим работы, цены) ─── */
.reviews-intro__info {
display: flex;
flex-wrap: wrap;
gap: 10px 24px;
justify-content: center;
padding: 16px 24px;
background: #fff;
border: 1px solid var(--color-border, #e8e8e8);
border-radius: 10px;
font-size: 14px;
line-height: 1.5;
color: var(--color-text);
}
.reviews-intro__info p {
margin: 0;
}
.reviews-intro__info strong {
color: var(--color-text);
font-weight: 600;
}
.reviews-intro__info a {
color: var(--color-primary);
font-weight: 600;
text-decoration: underline;
text-underline-offset: 3px;
transition: color var(--transition-fast);
}
.reviews-intro__info a:hover {
color: var(--color-primary-hover);
}
/* ─── Breadcrumbs (визуальные) ─── */
.breadcrumbs-wrapper {
padding: 12px 0 0;
}
@media (max-width: 860px) {
.breadcrumbs-wrapper {
padding: 8px 0 0;
}
}
/* ─── LW-утилиты (как на странице лагеря) ─── */
.lw-grid {
display: grid;
}
.lw-grid--3 {
grid-template-columns: repeat(3, 1fr);
}
.lw-gap-20 {
gap: 20px;
}
.lw-flex {
display: flex;
}
.lw-flex--row {
flex-direction: row;
}
.lw-flex--col {
flex-direction: column;
}
.lw-gap-12 {
gap: 12px;
}
.lw-gap-8 {
gap: 8px;
}
.lw-items-center {
align-items: center;
}
.lw-justify-between {
justify-content: space-between;
}
.lw-card {
background: var(--color-bg);
border-radius: var(--card-radius);
padding: 20px;
box-shadow: var(--card-shadow);
display: flex;
flex-direction: column;
transition: box-shadow var(--transition-normal), transform var(--transition-normal);
}
.lw-card:hover {
box-shadow: var(--card-shadow-hover);
transform: translateY(-2px);
}
.lw-avatar {
border-radius: 50%;
overflow: hidden;
flex-shrink: 0;
background: rgba(59, 178, 160, 0.1);
display: flex;
align-items: center;
justify-content: center;
}
.lw-avatar--48 {
width: 48px;
height: 48px;
}
.lw-avatar__img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.lw-avatar--letter {
background: rgba(232, 117, 58, 0.08); /* --color-primary 8% */
}
.lw-avatar__letter {
display: block;
font-size: 18px;
font-weight: 700;
color: var(--color-primary);
line-height: 1;
user-select: none;
}
.lw-text-dark {
color: #1c2b2d;
}
.lw-text-gray {
color: var(--color-text-muted);
}
.lw-text-sm {
font-size: 14px;
line-height: 1.4;
}
.lw-text-xs {
font-size: 12px;
line-height: 1.3;
}
.lw-font-medium {
font-weight: 500;
}
.lw-font-semibold {
font-weight: 600;
}
.lw-font-bold {
font-weight: 700;
}
.lw-mt-8 {
margin-top: 8px;
}
.lw-mb-8 {
margin-bottom: 8px;
}
.lw-mb-12 {
margin-bottom: 12px;
}
.lw-badge {
display: inline-flex;
align-items: center;
padding: 4px 10px;
border-radius: 50px;
font-size: 11px;
font-weight: 600;
line-height: 1.2;
white-space: nowrap;
margin-left: auto;
flex-shrink: 0;
}
.lw-badge--verified {
background: #059669;
color: #fff;
border-radius: 50px;
padding: 3px 12px 3px 10px;
font-size: 11px;
font-weight: 600;
line-height: 1.4;
white-space: nowrap;
align-self: flex-start;
}
.lw-stars {
display: flex;
gap: 2px;
align-items: center;
}
.lw-star {
color: var(--color-text-light);
flex-shrink: 0;
}
.lw-star--filled {
color: #FFD43E;
}
.lw-card__text {
font-size: 14px;
line-height: 1.55;
color: var(--color-text-muted);
word-break: break-word;
}
/* ─── Сетка отзывов (как на странице лагеря) ─── */
.reviews-cards .lw-scroll-x {
overflow: visible;
padding: 0;
}
.reviews-cards .lw-grid--3 {
display: flex;
flex-wrap: wrap;
gap: 24px;
justify-content: center;
}
.reviews-cards .lw-grid--3 .lw-card {
width: calc(33.33% - 16px);
min-width: 280px;
padding: 24px;
border-radius: 20px;
box-shadow: 0 2px 16px rgba(0,0,0,0.06);
border: 1.5px solid rgba(0,0,0,0.12);
transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}
.reviews-cards .lw-grid--3 .lw-card:hover {
transform: translateY(-4px);
box-shadow: 0 8px 32px rgba(0,0,0,0.1);
border-color: rgba(124, 58, 237, 0.15);
background: var(--accent-light);
}
/* ─── Clamp текста для длинных отзывов ─── */
.review-card__text--clamped {
position: relative;
max-height: 120px;
overflow: hidden;
transition: max-height .4s ease;
}
.review-card__text--clamped.review-card__text--expanded {
max-height: 2000px;
}
.review-card__text--clamped:not(.review-card__text--expanded)::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 40px;
background: linear-gradient(transparent, var(--color-bg));
}
.review-card__btn-more {
display: inline-block;
padding: 0;
border: none;
background: none;
color: var(--accent);
font-weight: 600;
font-size: 14px;
cursor: pointer;
align-self: flex-start;
}
.review-card__btn-more:hover {
text-decoration: underline;
}
/* ─── ФУТЕР КАРТОЧКИ: дата + "Читать ещё" ─── */
.review-card__footer {
display: flex;
align-items: center;
gap: 12px;
margin-top: 8px;
}
.review-card__date {
margin-left: auto;
font-size: 13px;
color: var(--color-text-muted);
white-space: nowrap;
}
/* ─── Ссылка на преподавателя в карточке отзыва ─── */
.review-card__teacher-link {
color: var(--accent);
text-decoration: underline;
text-underline-offset: 3px;
text-decoration-color: currentColor;
transition: color .2s, font-weight .2s;
font-weight: 500;
}
.review-card__teacher-link:hover {
color: var(--accent-hover);
font-weight: 700;
}
/* ─── РЕЗУЛЬТАТЫ (блок с цифрами) ─── */
.results {
padding: 40px 0;
background: var(--accent-light, #F5F3FF);
}
.results__title {
text-align: center;
margin-bottom: 40px;
font-family: 'Oswald', sans-serif;
font-size: clamp(24px, 2.8vw, 32px);
font-weight: 500;
color: var(--color-text);
}
.results__grid {
display: flex;
justify-content: center;
flex-wrap: wrap;
}
.results__card {
flex: 1 1 0;
min-width: 160px;
max-width: 260px;
padding: 32px 24px;
text-align: center;
position: relative;
}
.results__card + .results__card::before {
content: '';
position: absolute;
left: 0;
top: 12%;
height: 76%;
width: 1px;
background: rgba(0,0,0,0.1);
}
.results__icon {
display: block;
font-size: 22px;
color: var(--accent);
margin-bottom: 10px;
line-height: 1;
}
.results__number {
font-family: 'Oswald', sans-serif;
font-size: clamp(48px, 6vw, 78px);
font-weight: 700;
color: var(--accent);
line-height: 1;
margin-bottom: 10px;
display: block;
}
.results__label {
font-size: 14px;
color: var(--color-text-muted);
max-width: 200px;
margin: 0 auto;
line-height: 1.4;
}
@media (max-width: 600px) {
.results__card {
flex: 0 0 33.33%;
max-width: 33.33%;
min-width: 0;
padding: 24px 12px;
}
.results__card + .results__card::before {
top: 10%;
height: 80%;
width: 1px;
left: 0;
}
.results__number {
font-size: 38px;
margin-bottom: 4px;
}
.results__label {
font-size: 12px;
max-width: none;
}
}
/* ─── ФОТО С ЗАНЯТИЙ ─── */
.reviews-photos {
padding: 80px 0;
background: #fff;
}
.reviews-photos__title {
text-align: center;
font-family: 'Oswald', sans-serif;
font-size: clamp(24px, 2.8vw, 32px);
font-weight: 500;
color: var(--color-text);
margin-bottom: 10px;
}
.reviews-photos__desc {
text-align: center;
font-size: 15px;
color: var(--color-text-muted);
margin-bottom: 40px;
}
.reviews-photos__grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 20px;
}
.reviews-photos__item {
border-radius: 16px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(0,0,0,0.06);
transition: transform var(--transition-normal), box-shadow var(--transition-normal);
/* Все фото одного размера 4:3 */
aspect-ratio: 4 / 3;
}
.reviews-photos__item:hover {
transform: translateY(-4px);
box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}
.reviews-photos__img {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
}
@media (max-width: 768px) {
.reviews-photos {
padding: 48px 0;
}
.reviews-photos__grid {
grid-template-columns: repeat(2, 1fr);
gap: 10px;
}
.reviews-photos__desc {
margin-bottom: 24px;
}
}
/* ─── ВИДЕООТЗЫВЫ ─── */
.video-reviews {
padding: 60px 0;
}
.video-reviews__title {
text-align: center;
margin-bottom: 40px;
font-family: 'Oswald', sans-serif;
font-size: clamp(24px, 2.8vw, 32px);
font-weight: 500;
color: var(--color-text);
}
.video-reviews__grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
gap: 24px;
}
.video-reviews__card {
background: #fff;
border-radius: var(--card-radius);
overflow: hidden;
box-shadow: var(--card-shadow);
transition: transform var(--transition-normal), box-shadow var(--transition-normal);
}
.video-reviews__card:hover {
transform: translateY(-4px);
box-shadow: var(--card-shadow-hover);
}
.video-reviews__embed {
position: relative;
width: 100%;
padding-bottom: 56.25%; /* 16:9 */
background: #000;
}
.video-reviews__embed iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
}
.video-reviews__link {
display: block;
padding: 16px 20px;
color: var(--color-primary);
font-weight: 500;
text-decoration: underline;
text-underline-offset: 3px;
}
.video-reviews__link:hover {
color: var(--color-primary-hover);
}
.video-reviews__name {
padding: 12px 20px 16px;
font-size: 15px;
color: var(--color-text-muted);
margin: 0;
}
/* ─── FAQ (две колонки, аккордеон как на camp) ─── */
.reviews-faq {
padding: 40px 0;
background: var(--accent-light, #F5F3FF);
}
.reviews-faq__title {
text-align: center;
margin-bottom: 40px;
font-family: 'Oswald', sans-serif;
font-size: clamp(24px, 2.8vw, 32px);
font-weight: 500;
color: var(--color-text);
}
.reviews-faq-wrapper {
display: flex;
gap: 30px;
}
.reviews-faq .accordion {
width: 50%;
display: flex;
flex-direction: column;
gap: 10px;
border-top: 1px solid #ccc;
}
.reviews-faq .accordion .box__accordion {
position: relative;
cursor: pointer;
border-bottom: 1px solid #ccc;
border-radius: 0;
}
.reviews-faq .box__accordion_label {
position: relative;
padding: 20px 0;
cursor: pointer;
display: flex;
align-items: center;
gap: 20px;
justify-content: space-between;
}
.reviews-faq .box__accordion_label::after {
background-image: none !important;
}
.reviews-faq .box__accordion_label span {
font-size: clamp(18px, 2.2vw, 22px);
line-height: 1.25;
font-family: var(--font-display, 'Oswald', sans-serif);
font-weight: 600;
color: var(--color-text);
}
.box__accordion_label svg {
width: 36px;
height: 36px;
padding: 8px;
border-radius: 50%;
background: var(--color-primary);
stroke: #fff;
transition: background var(--transition-fast);
flex-shrink: 0;
}
.box__accordion_label svg:hover {
background: var(--color-primary-hover);
}
.active .box__accordion_label svg {
rotate: 45deg;
background: var(--color-primary-hover);
}
.box__accordion_label svg g {
stroke: #fff;
}
.box__accordion_label svg:hover g {
stroke: #fff;
}
.reviews-faq .box__accordion_content {
display: flex;
position: relative;
overflow: hidden;
max-height: 0;
transition: max-height .3s ease;
gap: 20px;
align-items: center;
}
.box__accordion_content-text {
display: flex;
flex-direction: column;
gap: 10px;
font-size: 16px;
line-height: 1.6;
color: var(--color-text-muted);
padding-bottom: 20px;
font-family: var(--font-body, sans-serif);
}
.box__accordion_content-text p {
margin: 0;
}
/* ─── ЗАКЛЮЧИТЕЛЬНЫЙ ТЕКСТ ─── */
.reviews-cta-text {
padding: 20px 0 60px;
}
.reviews-cta-text__inner {
max-width: 780px;
margin: 0 auto;
}
.reviews-cta-text__lead {
font-size: clamp(17px, 1.3vw, 19px);
line-height: 1.7;
color: var(--color-text);
text-align: center;
}
/* ─── ФИНАЛЬНЫЙ CTA ─── */
.final-cta {
padding: 80px 0;
background: linear-gradient(135deg, #1a2f31 0%, #0f2022 100%);
color: #fff;
text-align: center;
position: relative;
overflow: hidden;
}
/* Тонкий акцентный бордер сверху */
.final-cta::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
}
.final-cta__inner {
position: relative;
z-index: 1;
}
.final-cta__title {
font-family: 'Oswald', sans-serif;
font-size: clamp(26px, 3.2vw, 38px);
font-weight: 500;
margin-bottom: 12px;
color: #fff;
letter-spacing: -0.3px;
}
.final-cta__subtitle {
font-size: 17px;
line-height: 1.55;
margin-bottom: 32px;
max-width: 560px;
margin-left: auto;
margin-right: auto;
color: rgba(255,255,255,0.7);
}
.final-cta__actions {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
.final-cta__buttons {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
.final-cta .btn-primary {
box-shadow: 0 4px 20px rgba(232,117,58,0.35);
}
.final-cta .btn-secondary {
border-color: rgba(255,255,255,0.3);
color: #fff;
background: rgba(255,255,255,0.06);
}
.final-cta .btn-secondary:hover {
border-color: rgba(255,255,255,0.6);
background: rgba(255,255,255,0.1);
}
/* ─── ПЕРЕЛИНКОВКА ─── */
.cross-links {
padding: 60px 0;
}
.cross-links__title {
text-align: center;
margin-bottom: 40px;
font-family: 'Oswald', sans-serif;
font-size: clamp(24px, 2.8vw, 32px);
font-weight: 500;
color: var(--color-text);
}
.cross-links__grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 20px;
}
.cross-links__card {
display: block;
padding: 24px;
background: #fff;
border-radius: 12px;
text-decoration: none;
box-shadow: var(--card-shadow);
border: 1px solid rgba(0,0,0,0.06);
transition: transform var(--transition-normal), box-shadow var(--transition-normal);
color: var(--color-text);
font-weight: 500;
}
.cross-links__card:hover {
transform: translateY(-3px);
box-shadow: var(--card-shadow-hover);
color: var(--color-primary);
}
/* ─── ОСТАВИТЬ ОТЗЫВ ─── */
.review-form-block {
padding: 60px 0;
background: #fff;
}
.review-form-block__desc {
text-align: center;
color: var(--color-text-muted);
margin-top: 20px;
margin-bottom: 0;
}
.review-form-block__btn {
display: block;
margin: 0 auto;
padding: 16px 36px;
font-size: 16px;
font-weight: 600;
color: #fff;
background: var(--color-primary);
border: none;
border-radius: 12px;
cursor: pointer;
transition: transform .2s, box-shadow .2s;
}
.review-form-block__btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(232, 117, 58, 0.35);
}
.review-form-block__actions {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
.review-form-block__btn--outline {
color: var(--color-primary);
background: transparent;
border: 2px solid var(--color-primary);
box-shadow: none;
}
.review-form-block__btn--outline:hover {
background: rgba(232, 117, 58, .08);
border-color: var(--color-primary-hover);
color: var(--color-primary-hover);
box-shadow: none;
transform: translateY(-2px);
}
/* ─── Попап MyReviews: фикс огромного крестика ─── */
.frame__popup .btn-close-frame__popup {
display: flex;
align-items: center;
justify-content: center;
}
.frame__popup .btn-close-frame__popup img {
width: 24px;
height: 24px;
object-fit: contain;
}
/* ─── Попапы кнопок записи: тот же фикс ─── */
.modal-request-form .btn-close-request-form {
display: flex;
align-items: center;
justify-content: center;
}
.modal-request-form .btn-close-request-form img {
width: 24px;
height: 24px;
object-fit: contain;
}
/* ─── СЧЁТЧИК ОТЗЫВОВ (анимация) ─── */
.counter-number {
display: inline-block;
}
/* ─── STICKY CTA MOBILE ─── */
.sticky-cta-mobile {
display: none;
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 1000;
padding: 12px 16px;
background: #fff;
box-shadow: 0 -2px 12px rgba(0,0,0,.1);
}
.sticky-cta-mobile--visible {
display: block;
}
.sticky-cta-mobile__btn {
display: block;
width: 100%;
padding: 14px;
text-align: center;
background: var(--color-primary);
color: #fff;
font-weight: 600;
font-size: 16px;
border: none;
border-radius: 12px;
cursor: pointer;
}
/* ─── КОНТАКТЫ С КАРТОЙ ─── */
.reviews-contact {
padding: 60px 0;
}
.reviews-contact__title {
font-family: var(--font-display, 'Oswald', sans-serif);
font-weight: 700;
color: var(--color-text);
font-size: var(--fs-h1, clamp(28px, 3.5vw, 40px));
line-height: 1.2;
text-align: center;
padding-bottom: clamp(24px, 3vw, 32px);
}
.reviews-contact .contact-wrapper {
display: flex;
gap: 30px;
}
.reviews-contact .contact-content {
width: 40%;
display: flex;
flex-direction: column;
gap: 10px;
}
.reviews-contact .contact_subtitle {
margin-top: 10px;
font-size: 16px;
line-height: 1.2;
font-weight: 600;
font-family: var(--font-display, 'Oswald', sans-serif);
color: var(--color-text);
}
.reviews-contact .contact_tel {
color: var(--color-primary);
font-size: clamp(18px, 2.2vw, 22px);
line-height: 1;
font-weight: 600;
font-family: var(--font-body, sans-serif);
}
.reviews-contact .contact-map {
display: block;
border-radius: 30px;
overflow: hidden;
flex: 1;
height: 450px;
}
.reviews-contact .contact_social {
display: flex;
flex-wrap: wrap;
gap: 12px;
}
.reviews-contact .social_item {
display: inline-flex;
align-items: center;
text-decoration: none;
color: var(--color-primary);
font-family: var(--font-body, sans-serif);
font-size: clamp(16px, 2vw, 20px);
font-weight: 600;
line-height: 1.2;
transition: color var(--transition-fast), opacity var(--transition-fast);
position: relative;
}
.reviews-contact .social_item:hover {
color: var(--color-primary-hover);
}
.reviews-contact .social_item::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
right: 0;
height: 2px;
background: var(--color-primary);
opacity: 0;
transition: opacity var(--transition-fast);
}
.reviews-contact .social_item:hover::after {
opacity: 0.4;
}
.reviews-contact .social_item + .social_item::before {
content: '·';
margin-right: 12px;
color: var(--color-text-light);
font-weight: 400;
}
/* ─── АНИМАЦИЯ ПОЯВЛЕНИЯ ─── */
.reveal {
opacity: 0;
transform: translateY(24px);
transition: opacity .6s ease, transform .6s ease;
}
.reveal--visible {
opacity: 1;
transform: translateY(0);
}
/* ─── АДАПТИВНОСТЬ ─── */
/* Сетка отзывов: 3 → 2 колонки */
@media (max-width: 1200px) {
.reviews-cards .lw-grid--3 .lw-card {
width: calc(50% - 12px);
min-width: 280px;
}
}
@media (max-width: 860px) {
.reviews-hero {
padding: 40px 0;
}
.reviews-grid {
padding: 20px 0 40px;
}
.reviews-intro,
.reviews-cta-text,
.video-reviews,
.review-form-block,
.cross-links,
.reviews-contact,
.final-cta {
padding: 40px 0;
}
.results,
.reviews-faq {
padding: 30px 0;
}
.reviews-hero__wrapper {
flex-direction: column;
}
.reviews-hero__image {
flex: none;
width: 100%;
max-width: 400px;
margin-left: auto;
margin-right: auto;
}
.reviews-hero__h1 {
font-size: 32px;
}
.final-cta__title {
font-size: 28px;
}
.cross-links__grid {
grid-template-columns: 1fr 1fr;
}
}
/* Сетка отзывов: мобильный скролл */
@media (max-width: 768px) {
/* ─── Hero: фото скрыто, текст на всю ширину с отступами ─── */
.reviews-hero {
padding-left: 20px;
padding-right: 20px;
}
.reviews-hero__image {
display: none;
}
.reviews-hero__content {
max-width: none;
}
.reviews-hero__metrics {
flex-wrap: nowrap;
gap: 10px;
}
.reviews-intro__grid {
grid-template-columns: 1fr;
}
.reviews-hero__metric {
flex: 1;
min-width: 0;
padding: 12px 8px;
}
.reviews-hero__metric-number {
font-size: clamp(22px, 6vw, 28px);
}
.reviews-hero__metric-label {
font-size: 11px;
}
.reviews-hero__cta-btn {
width: 100%;
justify-content: center;
}
/* ─── Карточка: position для absolute звёзд ─── */
.reviews-cards .lw-grid--3 .lw-card {
position: relative;
}
/* ─── Шапка: wrap чтобы бейдж уходил на новую строку ─── */
.reviews-cards .lw-card > .lw-flex.lw-flex--row {
flex-wrap: wrap;
gap: 8px 12px;
align-items: flex-start;
}
/* Аватар не сжимается */
.reviews-cards .lw-card .lw-avatar {
flex-shrink: 0;
}
/* Колонка имени: занимает остаток, не даём тексту залезть под звёзды */
.reviews-cards .lw-card > .lw-flex.lw-flex--row > .lw-flex.lw-flex--col {
flex: 1;
min-width: 0;
padding-right: 90px;
}
/* Преподаватель и ФИО — на разных строках */
.reviews-cards .lw-card .review-card__teacher-link {
display: block;
}
/* ─── Бейдж в колонке имени: убираем inline-переопределения с мобилки ─── */
.reviews-cards .lw-card .lw-badge--verified {
margin-top: 6px !important;
margin-left: 0 !important;
}
/* ─── Звёзды: абсолютно в правый верхний угол карточки ─── */
.reviews-cards .lw-card .lw-stars {
position: absolute;
top: 24px;
right: 24px;
margin-top: 0;
}
.reviews-cards .lw-scroll-x {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
padding-bottom: 8px;
}
.reviews-cards .lw-grid--3 {
display: flex;
gap: 16px;
overflow-x: auto;
scroll-snap-type: x mandatory;
flex-wrap: nowrap;
justify-content: flex-start;
padding-bottom: 4px;
}
.reviews-cards .lw-grid--3 .lw-card {
flex: 0 0 88vw;
scroll-snap-align: start;
}
}
@media (max-width: 480px) {
.reviews-hero__h1 {
font-size: 26px;
}
.reviews-intro__lead {
font-size: 16px;
}
.reviews-intro__grid {
grid-template-columns: 1fr;
}
.reviews-intro__card {
padding: 16px;
}
.reviews-intro__card-text {
font-size: 14px;
}
.reviews-cards .lw-grid--3 .lw-card {
padding: 16px;
}
/* Звёзды: подстраиваем под меньший padding карточки */
.reviews-cards .lw-card .lw-stars {
top: 16px;
right: 16px;
}
.cross-links__grid {
grid-template-columns: 1fr;
}
.final-cta__actions {
flex-direction: column;
}
.reviews-intro__info {
flex-direction: column;
align-items: center;
text-align: center;
padding: 16px 20px;
}
/* ─── FAQ: две колонки → одна колонка ─── */
.reviews-faq-wrapper {
gap: 0;
flex-direction: column;
}
.reviews-faq-wrapper .accordion {
width: 100%;
gap: 0;
}
.reviews-faq-wrapper .accordion-last {
border-top: none;
}
.reviews-faq .box__accordion_label span {
font-size: 20px;
}
.box__accordion_label svg {
flex-shrink: 0;
}
/* ─── Контакты: колонки → стопкой, карта меньше ─── */
.reviews-contact .contact-wrapper {
gap: 20px;
flex-direction: column-reverse;
}
.reviews-contact .contact-map {
width: 100%;
height: 250px;
}
#ya-map-reviews {
height: 250px !important;
}
.reviews-contact .contact-content {
width: 100%;
}
.reviews-contact .contact_tel {
font-size: 18px;
}
}
/* ─── ПАГИНАЦИЯ ─── */
.reviews-pagination {
text-align: center;
margin-top: 40px;
}
.reviews-pagination ul.page-numbers,
.reviews-pagination ol.page-numbers {
margin: 0;
padding: 0;
list-style: none;
display: inline-flex;
flex-wrap: wrap;
gap: 6px;
align-items: center;
border: none;
background: none;
}
.reviews-pagination li {
margin: 0;
padding: 0;
display: inline-block;
}
.reviews-pagination a.page-numbers,
.reviews-pagination span.page-numbers:not(.dots) {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 40px;
height: 40px;
padding: 0 10px;
border-radius: 8px;
font-size: 14px;
font-weight: 500;
text-decoration: none;
border: 1px solid rgba(0,0,0,0.1);
color: var(--color-text-muted);
background: #fff;
transition: all .2s;
box-sizing: border-box;
line-height: 1;
}
.reviews-pagination span.page-numbers.current {
background: var(--color-primary);
color: #fff;
border-color: var(--color-primary);
}
.reviews-pagination a.page-numbers:hover {
border-color: var(--color-primary);
color: var(--color-primary);
background: rgba(232, 117, 58, 0.06);
}
.reviews-pagination a.page-numbers.prev,
.reviews-pagination a.page-numbers.next {
width: auto;
padding: 0 14px;
font-size: 13px;
}
/* ─── СБРОС СТАНДАРТНЫХ СТИЛЕЙ ТЕМЫ ─── */
.page-reviews {
padding-bottom: 0;
}
/* ─── DESKTOP: скрываем карточки после первого батча ─── */
@media (min-width: 769px) {
.lw-card[data-batch]:not([data-batch="1"]) {
display: none;
}
}
/* ─── MOBILE: все карточки видны в скролле ─── */
@media (max-width: 768px) {
.lw-card[data-batch]:not([data-batch="1"]) {
display: flex;
}
}
/* ─── КНОПКА "ПОКАЗАТЬ ЕЩЁ" ─── */
.reviews-loadmore {
text-align: center;
margin-top: 32px;
}
.reviews-loadmore__btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 14px 36px;
font-size: 16px;
font-weight: 600;
color: var(--accent);
background: var(--accent-light);
border: 2px solid var(--accent);
border-radius: 12px;
cursor: pointer;
transition: background var(--transition-fast), transform var(--transition-fast);
}
.reviews-loadmore__btn:hover {
background: rgba(124, 58, 237, 0.15);
transform: translateY(-2px);
}
.reviews-loadmore__btn:active {
transform: translateY(0);
}
.reviews-loadmore__btn:disabled {
opacity: 0.5;
cursor: default;
transform: none;
}
@media (max-width: 768px) {
.reviews-loadmore {
display: none;
}
}
/* ─── ВНЕШНИЕ ПЛОЩАДКИ (E-E-A-T) ─── */
.reviews-ext-platforms {
padding: 40px 0;
background: #fff;
}
.reviews-ext-platforms__title {
text-align: center;
font-family: 'Oswald', sans-serif;
font-size: clamp(22px, 2.6vw, 30px);
font-weight: 500;
color: var(--color-text);
margin-bottom: 10px;
}
.reviews-ext-platforms__desc {
text-align: center;
font-size: 15px;
color: var(--color-text-muted);
margin-bottom: 28px;
}
.reviews-ext-platforms__grid {
display: flex;
flex-wrap: wrap;
gap: 16px;
justify-content: center;
}
.reviews-ext-platforms__card {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 14px 24px;
background: #f8fafc;
border: 1px solid #e2e8f0;
border-radius: 12px;
text-decoration: none;
color: var(--color-text);
font-weight: 500;
font-size: 15px;
transition: all var(--transition-fast);
}
.reviews-ext-platforms__card:hover {
border-color: var(--color-primary);
color: var(--color-primary);
background: rgba(232, 117, 58, 0.04);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.reviews-ext-platforms__icon {
color: var(--color-primary);
flex-shrink: 0;
display: flex;
}
.reviews-ext-platforms__arrow {
color: var(--color-text-light);
font-size: 14px;
transition: transform var(--transition-fast);
}
.reviews-ext-platforms__card:hover .reviews-ext-platforms__arrow {
transform: translateX(4px);
color: var(--color-primary);
}
@media (max-width: 480px) {
.reviews-ext-platforms__grid {
flex-direction: column;
align-items: center;
}
.reviews-ext-platforms__card {
width: 100%;
max-width: 340px;
justify-content: center;
}
}
/* ─── ДОВЕРИТЕЛЬНЫЙ БЛОК ─── */
.reviews-trust {
padding: 32px 0 8px;
background: #fff;
}
.reviews-trust__content {
max-width: 800px;
margin: 0 auto;
}
.reviews-trust__text {
font-size: 15px;
line-height: 1.65;
color: var(--color-text-muted);
text-align: center;
padding: 20px 24px;
border-radius: 12px;
background: #f8f9fa;
border-left: 4px solid var(--color-secondary);
}
/* ─── ЛОКАЛЬНЫЙ БЛОК «Почему родители Щёлково выбирают Декарт» ─── */
.reviews-local {
padding: 60px 0;
background: #f8f9fa;
}
.reviews-local__title {
text-align: center;
font-family: 'Oswald', sans-serif;
font-size: clamp(22px, 2.6vw, 30px);
font-weight: 500;
color: var(--color-text);
margin-bottom: 36px;
}
.reviews-local__list {
list-style: none;
counter-reset: local-counter;
max-width: 800px;
margin: 0 auto;
padding: 0;
display: grid;
gap: 16px;
}
.reviews-local__item {
counter-increment: local-counter;
position: relative;
padding: 18px 18px 18px 56px;
background: #fff;
border-radius: 14px;
box-shadow: 0 1px 8px rgba(0,0,0,0.04);
font-size: 14.5px;
line-height: 1.65;
color: var(--color-text);
}
.reviews-local__item::before {
content: counter(local-counter);
position: absolute;
left: 16px;
top: 18px;
width: 28px;
height: 28px;
border-radius: 50%;
background: var(--color-primary);
color: #fff;
font-size: 14px;
font-weight: 600;
display: flex;
align-items: center;
justify-content: center;
}
.reviews-local__item strong {
color: var(--color-text);
}
/* ─── РЕЙТИНГ-БЕЙДЖ В HERO ─── */
.reviews-hero__rating-badge {
display: flex;
align-items: center;
gap: 10px;
margin-top: 8px;
flex-wrap: wrap;
}
.reviews-hero__rating-stars {
color: #f59e0b;
font-size: 18px;
letter-spacing: 2px;
}
.reviews-hero__rating-text {
font-size: 13px;
color: rgba(255,255,255,0.65);
}
.reviews-hero__phone {
margin-top: 10px;
font-size: 13px;
color: rgba(255,255,255,0.55);
}
.reviews-hero__phone a {
color: var(--color-accent);
text-decoration: underline;
font-weight: 500;
}
/* ─── MID-CTA ─── */
.reviews-mid-cta {
margin-top: -20px;
margin-bottom: 20px;
}
.reviews-mid-cta__inner {
background: linear-gradient(135deg, var(--color-text) 0%, #2a4042 100%);
border-radius: 16px;
padding: 28px 32px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
}
.reviews-mid-cta__text {
color: #fff;
font-size: 16px;
font-weight: 500;
margin: 0;
line-height: 1.4;
}
.reviews-mid-cta__inner .btn-primary {
flex-shrink: 0;
}
/* ─── CTA ПЕРЕД FAQ ─── */
.reviews-faq-cta {
margin-top: -20px;
margin-bottom: 20px;
}
.reviews-faq-cta__inner {
background: #fff;
border: 1px solid #e2e8f0;
border-radius: 14px;
padding: 20px 24px;
text-align: center;
}
.reviews-faq-cta__text {
font-size: 15px;
color: var(--color-text);
margin: 0 0 4px;
}
.reviews-faq-cta__phone {
color: var(--color-primary);
font-weight: 600;
font-size: 16px;
text-decoration: none;
}
.reviews-faq-cta__phone:hover {
text-decoration: underline;
}
.reviews-faq-cta__subtext {
font-size: 13px;
color: var(--color-text-light);
margin: 0;
}
@media (max-width: 768px) {
.reviews-local {
padding: 40px 0;
}
.reviews-local__list {
gap: 12px;
}
.reviews-local__item {
padding: 14px 14px 14px 50px;
font-size: 14px;
}
.reviews-mid-cta__inner {
flex-direction: column;
text-align: center;
padding: 20px;
}
.reviews-trust__text {
font-size: 14px;
padding: 16px;
}
.reviews-hero__rating-badge {
flex-direction: column;
align-items: flex-start;
gap: 4px;
}
}
/* ─── ФОРМА ЗАПИСИ (Bitrix24 модалка) ─── */
.review-form-block__title {
font-family: 'Oswald', sans-serif;
font-size: clamp(22px, 2.6vw, 30px);
text-align: center;
margin-bottom: 12px;
color: var(--color-text);
}
.review-form-block__cols {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
max-width: 860px;
margin: 0 auto 24px;
align-items: start;
}
.review-form-block__form-col {
background: #fff;
border: 1px solid #e2e8f0;
border-radius: 16px;
padding: 32px 28px;
text-align: center;
}
.review-form__lead {
font-size: 15px;
line-height: 1.55;
color: var(--color-text-muted);
margin: 0 0 24px;
}
.review-form__submit {
width: 100%;
padding: 14px 24px;
font-size: 16px;
cursor: pointer;
}
.review-form__footnote {
font-size: 13px;
color: var(--color-text-light);
text-align: center;
margin: 16px 0 0;
}
/* ─── БЛОК ПРЕИМУЩЕСТВ У ФОРМЫ ─── */
.review-form-block__benefits-col {
padding-top: 12px;
}
.review-form-block__benefits-title {
font-size: 16px;
font-weight: 600;
color: var(--color-text);
margin-bottom: 16px;
}
.review-form-block__benefits {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 12px;
}
.review-form-block__benefit {
display: flex;
align-items: flex-start;
gap: 10px;
font-size: 14px;
color: var(--color-text);
line-height: 1.5;
}
.review-form-block__benefit-icon {
flex-shrink: 0;
width: 22px;
height: 22px;
border-radius: 50%;
background: var(--color-secondary);
color: #fff;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
font-weight: 700;
margin-top: 1px;
}
/* ─── ТРИГГЕРЫ СРОЧНОСТИ ─── */
.final-cta__triggers {
display: flex;
flex-direction: column;
gap: 12px;
max-width: 540px;
margin: 0 auto 28px;
}
.final-cta__trigger {
background: #fff;
border: none;
border-radius: 12px;
padding: 16px 20px;
display: flex;
align-items: center;
gap: 14px;
font-size: 15px;
line-height: 1.4;
color: #222;
box-shadow: 0 2px 12px rgba(0,0,0,0.08);
text-align: left;
transition: transform .2s, box-shadow .2s;
}
.final-cta__trigger:hover {
transform: translateY(-1px);
box-shadow: 0 4px 20px rgba(0,0,0,0.12);
}
.final-cta__trigger-icon {
font-size: 22px;
flex-shrink: 0;
width: 32px;
text-align: center;
}
.final-cta__trigger strong {
color: var(--color-primary);
font-weight: 600;
}
@media (max-width: 768px) {
.review-form-block__cols {
grid-template-columns: 1fr;
gap: 24px;
}
.review-form-block__form-col {
padding: 24px 20px;
}
.final-cta__triggers {
margin-bottom: 16px;
}
.final-cta__trigger {
font-size: 13px;
padding: 10px 14px;
}
}
/* ─── PREFERS-REDUCED-MOTION ─── */
@media (prefers-reduced-motion: reduce) {
.reveal,
.reveal--visible,
.lw-card,
.reviews-hero__metric,
.reviews-hero__cta-btn,
.results__card,
.reviews-photos__item,
.video-reviews__card,
.cross-links__card,
.review-form-block__btn,
.reviews-ext-platforms__card,
.reviews-loadmore__btn,
.social_item,
.reviews-hero__image {
transition: none !important;
transform: none !important;
animation: none !important;
}
.reveal {
opacity: 1 !important;
transform: none !important;
}
}