CSS
This commit is contained in:
parent
fe2028819a
commit
6ed9de7c2c
@ -1855,104 +1855,7 @@ html {
|
||||
/* swiper END */
|
||||
|
||||
/* faq */
|
||||
.faq-wrapper {
|
||||
display: flex;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
.camp-faq .box__accordion_label::after {
|
||||
background-image: none !important;
|
||||
}
|
||||
|
||||
.accordion {
|
||||
width: 50%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.camp-faq .accordion .box__accordion {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid #ccc;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.camp-faq .box__accordion_label {
|
||||
position: relative;
|
||||
padding: 20px 0;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.camp-faq .box__accordion_label span {
|
||||
font-size: clamp(18px, 2.2vw, 22px);
|
||||
line-height: 1.25;
|
||||
font-family: var(--font-display);
|
||||
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;
|
||||
}
|
||||
|
||||
.camp-faq .accordion .box__accordion .box__accordion_label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.box__accordion_label svg g {
|
||||
stroke: #fff;
|
||||
}
|
||||
|
||||
.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:hover g {
|
||||
stroke: #fff;
|
||||
}
|
||||
|
||||
.camp-faq .box__accordion_content {
|
||||
display: flex;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
max-height: 0;
|
||||
transition: .3s;
|
||||
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);
|
||||
}
|
||||
|
||||
/* faq — используется общий стиль .faq-section из main.css */
|
||||
/* faq END */
|
||||
/* contact */
|
||||
.contact-wrapper {
|
||||
@ -2654,44 +2557,7 @@ html {
|
||||
font-size: clamp(12px, 1.5vw, 18px);
|
||||
}
|
||||
|
||||
.faq-wrapper {
|
||||
gap: clamp(20px, 2.5vw, 30px);
|
||||
}
|
||||
|
||||
.accordion {
|
||||
gap: clamp(6px, .83vw, 10px);
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.camp-faq .accordion .box__accordion {
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.camp-faq .box__accordion_label {
|
||||
padding: clamp(13px, 1.67vw, 20px) 0;
|
||||
gap: clamp(13px, 1.67vw, 20px);
|
||||
}
|
||||
|
||||
.camp-faq .box__accordion_label span {
|
||||
font-size: clamp(17px, 2.17vw, 26px);
|
||||
}
|
||||
|
||||
.box__accordion_label svg {
|
||||
width: clamp(26px, 3.33vw, 40px);
|
||||
height: clamp(26px, 3.33vw, 40px);
|
||||
padding: clamp(5px, .67vw, 8px);
|
||||
}
|
||||
|
||||
.camp-faq .box__accordion_content {
|
||||
gap: clamp(13px, 1.67vw, 20px);
|
||||
}
|
||||
|
||||
.box__accordion_content-text {
|
||||
gap: clamp(6px, .83vw, 10px);
|
||||
font-size: clamp(12px, 1.5vw, 18px);
|
||||
padding-bottom: clamp(13px, 1.67vw, 20px);
|
||||
}
|
||||
|
||||
/* faq — используется общий стиль .faq-section из main.css */
|
||||
.contact-wrapper {
|
||||
gap: clamp(20px, 2.5vw, 30px);
|
||||
}
|
||||
@ -2943,32 +2809,7 @@ html {
|
||||
left: 10px;
|
||||
}
|
||||
|
||||
.faq-wrapper {
|
||||
gap: 0;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.accordion {
|
||||
width: 100%;
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
.accordion-last {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.accordion .box__accordion .box__accordion_label {
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.camp-faq .box__accordion_label span {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.box__accordion_label svg {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* faq — используется общий стиль .faq-section из main.css */
|
||||
.contact-wrapper {
|
||||
gap: 20px;
|
||||
flex-direction: column-reverse;
|
||||
|
||||
@ -100,7 +100,7 @@ html {
|
||||
/* ════════════════════════════════════════════ */
|
||||
.ds-hero {
|
||||
position: relative;
|
||||
padding: 60px 0;
|
||||
padding: 48px 0;
|
||||
overflow: hidden;
|
||||
background: var(--color-bg-dark);
|
||||
background-image:
|
||||
@ -11074,3 +11074,145 @@ main {
|
||||
main > .pksh-section:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
FAQ SECTION — общий стиль для всех страниц
|
||||
Использовать: class="section-bg faq-section" на section
|
||||
============================================================ */
|
||||
.section-bg {
|
||||
position: relative;
|
||||
}
|
||||
.section-bg::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: calc(-50vw + 50%);
|
||||
width: 100vw;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
/* .bento внутри section-bg — растягивается на всю ширину */
|
||||
.section-bg > .bento {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.faq-section {
|
||||
padding: 48px 0;
|
||||
}
|
||||
|
||||
.section-bg.faq-section::before {
|
||||
background: var(--accent-light, #F5F3FF);
|
||||
}
|
||||
|
||||
/* Все не-белые секции на ПКШ — единый фон accent-light на всю ширину */
|
||||
.page-pksh .section-bg:not(.ds-hero):not(.faq-section)::before {
|
||||
background: var(--accent-light, #F5F3FF);
|
||||
}
|
||||
|
||||
.faq-section .container {
|
||||
/* центрирование через стандартный .container */
|
||||
}
|
||||
|
||||
.faq-section__title {
|
||||
text-align: center;
|
||||
margin-bottom: 40px;
|
||||
font-size: clamp(24px, 2.8vw, 32px);
|
||||
font-weight: 700;
|
||||
line-height: 1.25;
|
||||
color: var(--navy, #0F172A);
|
||||
}
|
||||
|
||||
.faq-section__wrapper {
|
||||
display: flex;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
.faq-section__col {
|
||||
width: 50%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-top: 1px solid var(--slate-200, #E2E8F0);
|
||||
}
|
||||
|
||||
.faq-section .box__accordion {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid var(--slate-200, #E2E8F0);
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.faq-section .box__accordion_label {
|
||||
position: relative;
|
||||
padding: 20px 0;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.faq-section .box__accordion_label span {
|
||||
font-size: clamp(17px, 2vw, 21px);
|
||||
line-height: 1.3;
|
||||
font-weight: 600;
|
||||
color: var(--navy, #0F172A);
|
||||
}
|
||||
|
||||
.faq-section .box__accordion_label svg {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
padding: 8px;
|
||||
border-radius: 50%;
|
||||
background: var(--accent, #7C3AED);
|
||||
stroke: #fff;
|
||||
transition: background 0.2s, rotate 0.25s ease;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.faq-section .box__accordion_label svg g {
|
||||
stroke: #fff !important;
|
||||
}
|
||||
|
||||
.faq-section .active .box__accordion_label svg {
|
||||
rotate: 45deg;
|
||||
background: var(--accent-hover, #6D28D9);
|
||||
}
|
||||
|
||||
.faq-section .box__accordion_content {
|
||||
display: flex;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
max-height: 0;
|
||||
transition: max-height 0.3s ease;
|
||||
gap: 20px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.faq-section .box__accordion_content-text {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
font-size: 16px;
|
||||
line-height: 1.6;
|
||||
color: var(--slate-600, #475569);
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.faq-section .box__accordion_content-text p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.faq-section__wrapper {
|
||||
flex-direction: column;
|
||||
gap: 0;
|
||||
}
|
||||
.faq-section__col {
|
||||
width: 100%;
|
||||
border-top: none;
|
||||
}
|
||||
.faq-section__col:first-child {
|
||||
border-top: 1px solid var(--slate-200, #E2E8F0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@
|
||||
.page-pksh {
|
||||
overflow-x: clip;
|
||||
gap: 0; /* override main's flex gap: 70px — we control spacing via section padding */
|
||||
background: var(--accent-light, #F5F3FF);
|
||||
}
|
||||
|
||||
/* ─── DS Hero heading override — long text smaller on desktop ─── */
|
||||
@ -98,7 +99,7 @@ background: rgba(124, 58, 237, 0.2);
|
||||
}
|
||||
|
||||
.bento-label--light {
|
||||
color: rgba(255,255,255,0.8);
|
||||
color: #F59E0B;
|
||||
}
|
||||
|
||||
.bento-h2 {
|
||||
@ -113,7 +114,9 @@ background: rgba(124, 58, 237, 0.2);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.bento-p {
|
||||
.bento-p--light {
|
||||
color: rgba(255,255,255,0.65);
|
||||
}
|
||||
font-size: 1rem;
|
||||
line-height: 1.6;
|
||||
color: var(--slate-600);
|
||||
@ -238,19 +241,36 @@ background: rgba(124, 58, 237, 0.2);
|
||||
.results-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 20px;
|
||||
gap: 0;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
.results-grid {
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 24px;
|
||||
gap: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.result-item {
|
||||
text-align: center;
|
||||
padding: 16px 12px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
.result-item {
|
||||
padding: 20px 16px;
|
||||
}
|
||||
.result-item + .result-item::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 20%;
|
||||
left: 0;
|
||||
width: 1px;
|
||||
height: 60%;
|
||||
background: rgba(255,255,255,0.12);
|
||||
}
|
||||
}
|
||||
|
||||
.result-item__value {
|
||||
@ -259,7 +279,7 @@ background: rgba(124, 58, 237, 0.2);
|
||||
font-weight: 800;
|
||||
color: var(--accent, #7C3AED);
|
||||
line-height: 1;
|
||||
margin-bottom: 6px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
@ -271,8 +291,10 @@ background: rgba(124, 58, 237, 0.2);
|
||||
.result-item__desc {
|
||||
display: block;
|
||||
font-size: 0.8125rem;
|
||||
color: var(--slate-400);
|
||||
line-height: 1.35;
|
||||
color: rgba(255,255,255,0.65);
|
||||
line-height: 1.4;
|
||||
max-width: 180px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
@ -1139,7 +1161,6 @@ background: rgba(124, 58, 237, 0.2);
|
||||
align-items: stretch;
|
||||
flex-wrap: wrap;
|
||||
gap: 20px 32px;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
padding: 40px 36px;
|
||||
background: linear-gradient(135deg, #F8F4F0 0%, #F0EBE5 50%, #F8F4F0 100%);
|
||||
@ -1225,23 +1246,13 @@ background: rgba(124, 58, 237, 0.2);
|
||||
Padding reduced from 80px → 32/48 for 80px gap rhythm.
|
||||
============================================================ */
|
||||
.page-pksh .bento[aria-label="Гарантия"] {
|
||||
background: #FFFFFF;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
27. MICRO-COMMITMENT (checklist download)
|
||||
============================================================ */
|
||||
.micro-commit {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 40px;
|
||||
max-width: 900px;
|
||||
margin: 0 auto;
|
||||
padding: 32px 24px;
|
||||
background: #fff;
|
||||
border-radius: var(--radius-2026, 24px);
|
||||
box-shadow: 0 8px 32px rgba(0,0,0,0.06);
|
||||
}
|
||||
/* micro-commit styles now under .page-pksh .bento[aria-label="Скачать чек-лист"] */
|
||||
|
||||
.micro-commit__content {
|
||||
flex: 1;
|
||||
@ -1569,12 +1580,6 @@ background: rgba(124, 58, 237, 0.2);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@media (min-width: 861px) {
|
||||
.page-pksh .bento[aria-label="Социальное доказательство"] {
|
||||
padding-bottom: 60px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Subtle background pattern for depth */
|
||||
.page-pksh .bento[aria-label="Социальное доказательство"]::before {
|
||||
content: '';
|
||||
@ -1590,7 +1595,6 @@ background: rgba(124, 58, 237, 0.2);
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 20px;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
@ -1742,13 +1746,27 @@ background: rgba(124, 58, 237, 0.2);
|
||||
|
||||
/* NARROW section — no background (section bg transparent) */
|
||||
.page-pksh .bento[aria-label="Скачать чек-лист"] {
|
||||
/* transparent — card handles its own bg */
|
||||
/* transparent — bg on .bento-card--checklist */
|
||||
}
|
||||
|
||||
.page-pksh .bento-card--checklist {
|
||||
background: #0F172A;
|
||||
border-radius: 24px;
|
||||
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.30);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.page-pksh .bento-card--checklist .micro-commit {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 40px;
|
||||
padding: 40px 36px;
|
||||
}
|
||||
|
||||
/* ── Full-width sections: warm #F8F4F0 alternation ── */
|
||||
.page-pksh .bento[aria-label="Как проходят занятия"],
|
||||
.page-pksh .bento#teachers {
|
||||
background: #F8F4F0;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/* ── Section 6 cards: white on warm, with definition ── */
|
||||
@ -1762,15 +1780,14 @@ background: rgba(124, 58, 237, 0.2);
|
||||
}
|
||||
|
||||
/* ── Card — dark bg, white text, accent button ── */
|
||||
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit {
|
||||
.page-pksh .micro-commit {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 40px;
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
padding: 40px 36px;
|
||||
background: #0F172A;
|
||||
border: 1px solid #1E293B;
|
||||
border: none;
|
||||
border-radius: 24px;
|
||||
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.30);
|
||||
text-align: center;
|
||||
@ -1778,7 +1795,7 @@ background: rgba(124, 58, 237, 0.2);
|
||||
}
|
||||
|
||||
@media (max-width: 860px) {
|
||||
.page-pksh .bento[aria-label="Скачать чек-лист"] .micro-commit {
|
||||
.page-pksh .micro-commit {
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
padding: 32px 20px;
|
||||
@ -1985,99 +2002,8 @@ background: rgba(124, 58, 237, 0.2);
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
45. FAQ — как на странице лагеря (pksh-faq)
|
||||
============================================================ */
|
||||
.page-pksh .pksh-faq {
|
||||
padding: 0;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
.page-pksh .pksh-faq__wrapper {
|
||||
display: flex;
|
||||
gap: 30px;
|
||||
}
|
||||
.page-pksh .pksh-faq__col {
|
||||
width: 50%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0;
|
||||
border-top: 1px solid var(--slate-200, #E2E8F0);
|
||||
}
|
||||
.page-pksh .pksh-faq .box__accordion {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid var(--slate-200, #E2E8F0);
|
||||
border-radius: 0;
|
||||
}
|
||||
.page-pksh .pksh-faq .box__accordion_label {
|
||||
position: relative;
|
||||
padding: 20px 0;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
justify-content: space-between;
|
||||
padding-left: 0;
|
||||
}
|
||||
.page-pksh .pksh-faq .box__accordion_label span {
|
||||
font-size: clamp(17px, 2vw, 21px);
|
||||
line-height: 1.3;
|
||||
font-weight: 600;
|
||||
color: var(--navy, #1c2b2d);
|
||||
}
|
||||
.page-pksh .pksh-faq .box__accordion_label svg {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
padding: 8px;
|
||||
border-radius: 50%;
|
||||
background: var(--accent, #7C3AED);
|
||||
stroke: #fff;
|
||||
transition: background 0.2s;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.page-pksh .pksh-faq .box__accordion_label svg g {
|
||||
stroke: #fff;
|
||||
}
|
||||
.page-pksh .pksh-faq .active .box__accordion_label svg {
|
||||
rotate: 45deg;
|
||||
background: var(--accent-hover, #6D28D9);
|
||||
}
|
||||
.page-pksh .pksh-faq .box__accordion_content {
|
||||
display: flex;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
max-height: 0;
|
||||
transition: max-height 0.3s;
|
||||
gap: 20px;
|
||||
align-items: center;
|
||||
}
|
||||
.page-pksh .pksh-faq .box__accordion_content-text {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
font-size: 16px;
|
||||
line-height: 1.6;
|
||||
color: var(--slate-600, #475569);
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.page-pksh .pksh-faq__wrapper {
|
||||
flex-direction: column;
|
||||
gap: 0;
|
||||
}
|
||||
.page-pksh .pksh-faq__col {
|
||||
width: 100%;
|
||||
border-top: none;
|
||||
}
|
||||
.page-pksh .pksh-faq__col:first-child {
|
||||
border-top: 1px solid var(--slate-200, #E2E8F0);
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
46. TEACHERS — camp-style cards
|
||||
============================================================ */
|
||||
46. TEACHERS — camp-style cards
|
||||
============================================================ */
|
||||
.page-pksh .pksh-section--teachers {
|
||||
background: var(--bg-soft-2026, #F8FAFC);
|
||||
padding-top: 60px;
|
||||
@ -2120,23 +2046,23 @@ background: rgba(124, 58, 237, 0.2);
|
||||
background: linear-gradient(135deg, rgba(124, 58, 237, 0.05), rgba(139, 92, 246, 0.08));
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
padding: 28px 24px 18px;
|
||||
padding: 32px 24px 20px;
|
||||
}
|
||||
|
||||
.pksh-teachers__photo {
|
||||
width: 130px;
|
||||
height: 130px;
|
||||
width: 140px;
|
||||
height: 140px;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
border: 4px solid #fff;
|
||||
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
|
||||
box-shadow: 0 4px 16px rgba(0,0,0,0.10);
|
||||
}
|
||||
|
||||
.pksh-teachers__card-body {
|
||||
padding: 18px 24px 24px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
gap: 6px;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
@ -2155,15 +2081,70 @@ background: rgba(124, 58, 237, 0.2);
|
||||
color: var(--accent, #7C3AED);
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
margin: 0;
|
||||
margin: 0 0 2px;
|
||||
}
|
||||
|
||||
.pksh-teachers__about {
|
||||
font-size: 0.875rem;
|
||||
.pksh-teachers__desc {
|
||||
font-size: 0.825rem;
|
||||
line-height: 1.5;
|
||||
color: var(--slate-600, #475569);
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
margin: 0 0 4px;
|
||||
}
|
||||
|
||||
.pksh-teachers__meta {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
gap: 6px;
|
||||
margin: 4px 0 12px;
|
||||
}
|
||||
|
||||
.pksh-teachers__meta-badge {
|
||||
display: inline-flex;
|
||||
padding: 3px 10px;
|
||||
font-size: 0.72rem;
|
||||
font-weight: 600;
|
||||
color: #6D28D9;
|
||||
background: #F5F3FF;
|
||||
border-radius: 100px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.pksh-teachers__meta-exp {
|
||||
display: inline-flex;
|
||||
padding: 3px 10px;
|
||||
font-size: 0.72rem;
|
||||
font-weight: 600;
|
||||
color: #92400E;
|
||||
background: #FEF3C7;
|
||||
border-radius: 100px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.pksh-teachers__btn {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 12px;
|
||||
border: none;
|
||||
border-radius: 12px;
|
||||
font-family: inherit;
|
||||
font-size: 0.9rem;
|
||||
font-weight: 700;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
background: linear-gradient(135deg, #7C3AED, #A855F7);
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
transition: opacity 0.15s, transform 0.15s, box-shadow 0.15s;
|
||||
box-shadow: 0 3px 12px rgba(124, 58, 237, 0.2);
|
||||
margin-top: auto;
|
||||
}
|
||||
|
||||
.pksh-teachers__btn:hover {
|
||||
opacity: 0.92;
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 5px 18px rgba(124, 58, 237, 0.3);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@ -2179,11 +2160,11 @@ background: rgba(124, 58, 237, 0.2);
|
||||
gap: 16px;
|
||||
}
|
||||
.pksh-teachers__card-top {
|
||||
padding: 24px 16px 14px;
|
||||
padding: 24px 16px 16px;
|
||||
}
|
||||
.pksh-teachers__photo {
|
||||
width: 110px;
|
||||
height: 110px;
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
}
|
||||
.pksh-teachers__card-body {
|
||||
padding: 14px 18px 20px;
|
||||
@ -2193,9 +2174,13 @@ background: rgba(124, 58, 237, 0.2);
|
||||
font-size: 1rem;
|
||||
}
|
||||
.pksh-teachers__subj,
|
||||
.pksh-teachers__about {
|
||||
.pksh-teachers__desc {
|
||||
font-size: 0.8125rem;
|
||||
}
|
||||
.pksh-teachers__btn {
|
||||
padding: 10px;
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
@ -2220,103 +2205,12 @@ background: rgba(124, 58, 237, 0.2);
|
||||
}
|
||||
|
||||
/* ═══════════════════════════════════════════════════════════
|
||||
42. BACKGROUND SYSTEM v2.1 — Coherent warm palette
|
||||
Unified background rhythm across all sections.
|
||||
|
||||
PROBLEMS SOLVED:
|
||||
• White cluster — 3+ white sections in a row
|
||||
• Warm/cool undertone conflict — #F8F4F0 vs #F8FAFC
|
||||
• Missing backgrounds — Programs etc had no explicit bg
|
||||
• Inconsistent rhythm — no visual breathing between sections
|
||||
|
||||
DESIGN:
|
||||
• WARM (#F8F4F0) = rhythm sections — how-it-works,
|
||||
programs, teachers, final CTA
|
||||
• WARM-ALT (#F5F0E8) = variety — FAQ
|
||||
• WHITE = clean backdrop for content cards — checklist,
|
||||
guarantee hero, results, guarantee standalone
|
||||
• NAVY = emphasis — results inner card (unchanged)
|
||||
═══════════════════════════════════════════════════════ */
|
||||
|
||||
/* ── 42a. Global --alt override: warm instead of cool ── */
|
||||
/* Main.css gives .pksh-section--alt: var(--bg-soft) = #F8FAFC (cool gray).
|
||||
This overrides all --alt sections to warm palette.
|
||||
NOTE: uses background shorthand (not background-color) because
|
||||
these sections do NOT have decorative background-image patterns. */
|
||||
.page-pksh .pksh-section--alt {
|
||||
background: var(--bg-warm, #F8F4F0);
|
||||
}
|
||||
|
||||
/* ── 42b. Section-by-section background color assignments ── */
|
||||
/* Uses background-color (not shorthand) to avoid resetting
|
||||
background-image set in 42d. */
|
||||
|
||||
/* 🔵 WARM — Checklist card stands out against warm bg */
|
||||
/* .page-pksh .bento[aria-label="Скачать чек-лист"] bg set in section 27 override */
|
||||
|
||||
/* 🔵 WHITE — Guarantee hero (strong purple border card) */
|
||||
.page-pksh .bento[aria-label="Гарантия"] {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
/* 🔵 WHITE — Results (navy inner card needs clean backdrop) */
|
||||
.page-pksh #results.bento.pksh-section--alt {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
/* 🔵 WHITE — Guarantee standalone (clean) */
|
||||
.page-pksh #guarantee.bento.pksh-section--alt {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
/* 🟤 WARM — Programs (was transparent, now rhythm warm) */
|
||||
.page-pksh #programs.bento.pksh-section {
|
||||
background-color: var(--bg-warm, #F8F4F0);
|
||||
}
|
||||
|
||||
/* 🟤 WARM — Final CTA (was cool via --alt, now warm) */
|
||||
.page-pksh #final-cta.bento.pksh-section--alt {
|
||||
background-color: var(--bg-warm, #F8F4F0);
|
||||
}
|
||||
|
||||
/* 🟠 WARM-ALT — FAQ (warm stone for variety) */
|
||||
.page-pksh #faq.bento.pksh-section--alt {
|
||||
background-color: var(--bg-warm-alt, #F5F0E8);
|
||||
}
|
||||
|
||||
/* ── 42c. Contacts — transparent (let footer handle it) ── */
|
||||
.page-pksh #pksh-contact.bento.pksh-section {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/* ── 42d. Background decorative gradients ── */
|
||||
/* Adds subtle radial gradient overlays to warm sections
|
||||
for subtle depth without visual noise.
|
||||
Safely combines with background-color from 42b. */
|
||||
.page-pksh #programs.bento.pksh-section {
|
||||
background-image:
|
||||
radial-gradient(ellipse at 80% 20%, rgba(124, 58, 237, 0.018) 0%, transparent 55%),
|
||||
radial-gradient(ellipse at 10% 80%, rgba(0, 0, 0, 0.012) 0%, transparent 50%);
|
||||
}
|
||||
|
||||
.page-pksh #final-cta.bento.pksh-section--alt {
|
||||
background-image:
|
||||
radial-gradient(ellipse at 50% 0%, rgba(124, 58, 237, 0.025) 0%, transparent 60%);
|
||||
}
|
||||
|
||||
.page-pksh #faq.bento.pksh-section--alt {
|
||||
background-image:
|
||||
radial-gradient(ellipse at 30% 90%, rgba(124, 58, 237, 0.015) 0%, transparent 50%),
|
||||
radial-gradient(ellipse at 70% 10%, rgba(0, 0, 0, 0.01) 0%, transparent 50%);
|
||||
}
|
||||
|
||||
/* ── 42e. Section separators ── */
|
||||
/* Subtle light border-top on warm sections following white
|
||||
to create intentional visual stratification. */
|
||||
.page-pksh #programs.bento.pksh-section,
|
||||
.page-pksh #final-cta.bento.pksh-section--alt {
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.03);
|
||||
}
|
||||
42. BACKGROUND — единый фон на .page-pksh
|
||||
Фон страницы: var(--accent-light, #F5F3FF) — задан на .page-pksh
|
||||
Hero — свой тёмный фон (data-bg="hero")
|
||||
FAQ — свой фон через section-bg
|
||||
Все остальные секции наследуют фон страницы.
|
||||
═══════════════════════════════════════════════════ */
|
||||
|
||||
/* ── 42f. Mobile-responsive final CTA ── */
|
||||
@media (max-width: 860px) {
|
||||
@ -2623,7 +2517,7 @@ background: rgba(124, 58, 237, 0.2);
|
||||
57. CTA TEST — Бесплатное тестирование перед results
|
||||
============================================================ */
|
||||
.page-pksh .bento[aria-label="Запись на тестирование"] {
|
||||
background: var(--bg-warm, #F8F4F0);
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.cta-test {
|
||||
|
||||
@ -668,98 +668,14 @@
|
||||
}
|
||||
|
||||
/* ─── FAQ (две колонки, аккордеон как на camp) ─── */
|
||||
.reviews-faq {
|
||||
padding: 40px 0;
|
||||
background: var(--accent-light, #F5F3FF);
|
||||
}
|
||||
.reviews-faq__title {
|
||||
text-align: center;
|
||||
margin-bottom: 40px;
|
||||
/* ============================================================
|
||||
FAQ — используется общий стиль .faq-section из main.css
|
||||
Секция .reviews-faq сохраняет свой bg (accent-light) + отступы
|
||||
============================================================ */
|
||||
.reviews-faq .faq-section__title {
|
||||
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 .accordion .box__accordion .box__accordion_label::after {
|
||||
background-image: none;
|
||||
}
|
||||
.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;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
/* ─── ЗАКЛЮЧИТЕЛЬНЫЙ ТЕКСТ ─── */
|
||||
@ -1199,24 +1115,6 @@
|
||||
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;
|
||||
|
||||
@ -480,10 +480,14 @@ function add_carbon() {
|
||||
->where( 'post_type', '=', 'teacher' )
|
||||
->add_fields( array(
|
||||
Field::make( 'text', 'teacher_direction', 'Направление преподавателя (текст в под фото):' ),
|
||||
Field::make( 'image', 'teacher_avatar', 'Автар:' )
|
||||
Field::make( 'image', 'teacher_avatar', 'Аватар:' )
|
||||
->set_width( 15 ),
|
||||
Field::make( 'text', 'teacher_start_year', 'Год начала работы (только год, например: 1987)' )
|
||||
->set_width( 30 )
|
||||
->set_attribute( 'placeholder', '1987' )
|
||||
->set_help_text( 'Стаж рассчитается автоматически на странице подготовки к школе.' ),
|
||||
Field::make( 'textarea', 'teacher_description', 'Дескрипшн преподавателя' )
|
||||
->set_width( 75 ),
|
||||
->set_width( 55 ),
|
||||
Field::make( 'textarea', 'teacher_about', 'О себе:' ),
|
||||
Field::make( 'textarea', 'teacher_education', 'Образование:' ),
|
||||
Field::make( 'textarea', 'teacher_add_education', 'Дополнительное образование:' ),
|
||||
@ -617,20 +621,21 @@ function add_carbon() {
|
||||
))
|
||||
->add_tab('👨🏫 Преподаватели', array(
|
||||
Field::make( 'html', 'pksh_teachers_tab_desc', '' )
|
||||
->set_html( '<p style="color: #64748b; font-size: 13px; margin: 0 0 12px;">Секция: <strong>#teachers</strong>. Карточки преподавателей в стиле лагеря.</p>' ),
|
||||
Field::make( 'complex', 'pksh_teachers', 'Преподаватели' )
|
||||
->set_html( '<p style="color: #64748b; font-size: 13px; margin: 0 0 12px;">Секция: <strong>#teachers</strong>. Выберите преподавателей из добавленных в разделе <strong>Преподаватели</strong> главного меню админки. ФИО и фото берутся из карточки преподавателя.</p>' ),
|
||||
Field::make( 'complex', 'pksh_teachers', 'Преподаватели на странице' )
|
||||
->set_layout( 'tabbed-horizontal' )
|
||||
->set_help_text( 'Добавьте преподавателей. Выводятся на странице подготовки к школе в секции Преподаватели.' )
|
||||
->set_help_text( 'Добавьте преподавателей для этой страницы. Выберите из списка существующих.' )
|
||||
->add_fields( array(
|
||||
Field::make( 'text', 'teacher_name', 'ФИО' )
|
||||
->set_width( 40 ),
|
||||
Field::make( 'image', 'teacher_photo', 'Фото' )
|
||||
->set_help_text( 'Оптимально: 240×240 px, квадратное.' )
|
||||
->set_width( 30 ),
|
||||
Field::make( 'text', 'teacher_subject', 'Предмет / должность' )
|
||||
->set_width( 30 ),
|
||||
Field::make( 'textarea', 'teacher_about', 'О педагоге' )
|
||||
->set_width( 100 ),
|
||||
Field::make( 'select', 'teacher_id', 'Выберите преподавателя' )
|
||||
->set_options( array( 0 => '— Выберите преподавателя —' ) + dekart_get_teacher_options() )
|
||||
->set_width( 100 )
|
||||
->set_help_text( 'ФИО и фото подтянутся из карточки преподавателя. Если нужного нет — добавьте в разделе Преподаватели.' ),
|
||||
Field::make( 'text', 'teacher_subject', 'Предмет / должность (на этой странице)' )
|
||||
->set_width( 100 )
|
||||
->set_help_text( 'Если оставить пустым — используется значение из карточки преподавателя.' ),
|
||||
Field::make( 'textarea', 'teacher_about', 'О педагоге (на этой странице)' )
|
||||
->set_width( 100 )
|
||||
->set_help_text( 'Краткое описание для этой страницы. Если оставить пустым — используется значение из карточки преподавателя.' ),
|
||||
)),
|
||||
))
|
||||
// ====================================================
|
||||
@ -638,67 +643,47 @@ function add_carbon() {
|
||||
// ====================================================
|
||||
->add_tab('📚 Программы', array(
|
||||
Field::make( 'html', 'pksh_programs_tab_desc', '' )
|
||||
->set_html( '<p style="color: #64748b; font-size: 13px; margin: 0 0 12px;">Секция: <strong>#programs</strong>. Карточки программ подготовки к школе. Каждая карточка — отдельная запись.</p>' ),
|
||||
Field::make( 'complex', 'pksh_programs', 'Программы подготовки' )
|
||||
->set_layout( 'tabbed-horizontal' )
|
||||
->set_help_text( 'Добавьте программы подготовки к школе. Каждая — отдельная карточка.' )
|
||||
->add_fields( array(
|
||||
Field::make( 'text', 'program_icon', 'Иконка (emoji)' )
|
||||
->set_width( 20 )
|
||||
->set_default_value( '🎓' ),
|
||||
Field::make( 'text', 'program_title', 'Название программы' )
|
||||
->set_width( 80 ),
|
||||
Field::make( 'text', 'program_intensity', 'Интенсивность' )
|
||||
->set_width( 50 )
|
||||
->set_help_text( 'Например: 2 раза в неделю' ),
|
||||
Field::make( 'textarea', 'program_schedule', 'Расписание' )
|
||||
->set_width( 50 )
|
||||
->set_help_text( 'Каждая строка — один вариант расписания' ),
|
||||
Field::make( 'text', 'program_duration', 'Длительность занятия' )
|
||||
->set_width( 30 )
|
||||
->set_default_value( '90 мин' ),
|
||||
Field::make( 'textarea', 'program_lesson_structure', 'Структура занятия (timeline)' )
|
||||
->set_width( 70 )
|
||||
->set_help_text( 'Каждая строка: время 🔤 Название. Например: "15 мин 🧠 Нейрогимнастика"' ),
|
||||
Field::make( 'textarea', 'program_includes', 'Программа включает' )
|
||||
->set_width( 100 )
|
||||
->set_help_text( 'Каждая строка — пункт списка' ),
|
||||
Field::make( 'text', 'program_price_subscription', 'Цена абонемента' )
|
||||
->set_width( 40 )
|
||||
->set_default_value( '7 500 ₽' )
|
||||
->set_help_text( 'Например: 7 500 ₽' ),
|
||||
Field::make( 'text', 'program_price_single', 'Цена разового занятия' )
|
||||
->set_width( 40 )
|
||||
->set_default_value( '1 000 ₽' )
|
||||
->set_help_text( 'Например: 1 000 ₽' ),
|
||||
Field::make( 'text', 'program_time_required', 'Длительность курса (timeRequired)' )
|
||||
->set_width( 30 )
|
||||
->set_help_text( 'Общая длительность курса. Например: "4 месяца", "P4M"' ),
|
||||
Field::make( 'text', 'program_repeat_frequency', 'Частота занятий (ISO 8601)' )
|
||||
->set_width( 30 )
|
||||
->set_help_text(
|
||||
'Для Schema.org Schedule.repeatFrequency. '
|
||||
. 'Пример: P1W (раз в неделю), P4D (дважды в неделю). '
|
||||
. 'program_intensity остаётся для отображения на сайте.'
|
||||
)
|
||||
->set_attribute( 'placeholder', 'P1W' ),
|
||||
Field::make( 'text', 'program_workload', 'Нагрузка (courseWorkload)' )
|
||||
->set_width( 70 )
|
||||
->set_help_text( 'Например: "2 занятия в неделю по 90 минут"' ),
|
||||
Field::make( 'date', 'program_start_date', 'Дата старта программы' )
|
||||
->set_width( 33 ),
|
||||
Field::make( 'date', 'program_end_date', 'Дата окончания' )
|
||||
->set_width( 33 ),
|
||||
Field::make( 'date', 'program_price_valid', 'Цена действительна до' )
|
||||
->set_width( 34 )
|
||||
->set_help_text( 'Дата, до которой актуальна указанная цена.' ),
|
||||
Field::make( 'text', 'program_button_text', 'Текст кнопки' )
|
||||
->set_width( 40 )
|
||||
->set_default_value( 'Записаться' ),
|
||||
Field::make( 'text', 'program_button_url', 'Ссылка кнопки' )
|
||||
->set_width( 60 )
|
||||
->set_default_value( '/zapis/' ),
|
||||
)),
|
||||
->set_html( '<p style="color: #64748b; font-size: 13px; margin: 0 0 12px;">Секция: <strong>#programs</strong>. Две фиксированные карточки: базовая и расширенная программа.</p>' ),
|
||||
Field::make( 'html', 'pksh_prog_base_title', '' )
|
||||
->set_html( '<h3 style="margin:16px 0 8px;">🔵 Базовая — «Уверенный старт»</h3>' ),
|
||||
Field::make( 'text', 'pksh_prog_base_name', 'Название программы' )
|
||||
->set_width( 100 )
|
||||
->set_default_value( 'Уверенный старт' ),
|
||||
Field::make( 'text', 'pksh_prog_base_subname', 'Подзаголовок' )
|
||||
->set_width( 100 )
|
||||
->set_default_value( '2 раза в неделю — комфортный темп без перегрузки' ),
|
||||
Field::make( 'text', 'pksh_prog_base_schedule', 'Расписание' )
|
||||
->set_width( 100 )
|
||||
->set_default_value( 'вт, чт — 18:00–19:30' ),
|
||||
Field::make( 'text', 'pksh_prog_base_price_sub', 'Стоимость абонемента за 4 недели' )
|
||||
->set_width( 50 )
|
||||
->set_default_value( '7 500 ₽' ),
|
||||
Field::make( 'text', 'pksh_prog_base_price_single', 'Стоимость разового занятия' )
|
||||
->set_width( 50 )
|
||||
->set_default_value( '1 000 ₽' ),
|
||||
Field::make( 'text', 'pksh_prog_base_urgency', 'Срочность (мест в группе)' )
|
||||
->set_width( 100 )
|
||||
->set_default_value( 'Осталось 2 места в группе' ),
|
||||
Field::make( 'html', 'pksh_prog_prem_title', '' )
|
||||
->set_html( '<h3 style="margin:20px 0 8px;">🟣 Расширенная — «Результат за 3 месяца»</h3>' ),
|
||||
Field::make( 'text', 'pksh_prog_prem_name', 'Название программы' )
|
||||
->set_width( 100 )
|
||||
->set_default_value( 'Результат за 3 месяца' ),
|
||||
Field::make( 'text', 'pksh_prog_prem_subname', 'Подзаголовок' )
|
||||
->set_width( 100 )
|
||||
->set_default_value( '3 раза в неделю — быстрый прогресс' ),
|
||||
Field::make( 'text', 'pksh_prog_prem_schedule', 'Расписание' )
|
||||
->set_width( 100 )
|
||||
->set_default_value( 'пн, ср, пт — 16:30–18:00' ),
|
||||
Field::make( 'text', 'pksh_prog_prem_price_sub', 'Стоимость абонемента за 4 недели' )
|
||||
->set_width( 50 )
|
||||
->set_default_value( '10 500 ₽' ),
|
||||
Field::make( 'text', 'pksh_prog_prem_price_single', 'Стоимость разового занятия' )
|
||||
->set_width( 50 )
|
||||
->set_default_value( '1 500 ₽' ),
|
||||
Field::make( 'text', 'pksh_prog_prem_urgency', 'Срочность (мест в группе)' )
|
||||
->set_width( 100 )
|
||||
->set_default_value( 'Осталось 3 места в группе' ),
|
||||
))
|
||||
// ====================================================
|
||||
// Вкладка: JSON-LD Schema (данные для микроразметки)
|
||||
@ -2109,6 +2094,24 @@ require_once __DIR__ . '/inc/schema.php';
|
||||
|
||||
|
||||
|
||||
// ─────────────────────────────────────────────────────────────
|
||||
// Helper: список преподавателей для select поля
|
||||
// ─────────────────────────────────────────────────────────────
|
||||
function dekart_get_teacher_options() {
|
||||
$options = array();
|
||||
$teachers = get_posts( array(
|
||||
'post_type' => 'teacher',
|
||||
'posts_per_page' => -1,
|
||||
'post_status' => 'publish',
|
||||
'orderby' => 'title',
|
||||
'order' => 'ASC',
|
||||
) );
|
||||
foreach ( $teachers as $t ) {
|
||||
$options[ $t->ID ] = esc_html( $t->post_title );
|
||||
}
|
||||
return $options;
|
||||
}
|
||||
|
||||
// ─────────────────────────────────────────────────────────────
|
||||
// ACF: Отзывы (Лагерь) — группа полей
|
||||
// ─────────────────────────────────────────────────────────────
|
||||
|
||||
@ -650,9 +650,10 @@ $metrics = [
|
||||
|
||||
|
||||
|
||||
<section class="section-bg camp-faq" data-bg="mint" id="camp-faq">
|
||||
<h2 class="camp_title">Часто задаваемые вопросы</h2>
|
||||
<div class="faq-wrapper">
|
||||
<section class="section-bg faq-section" id="camp-faq">
|
||||
<div class="container">
|
||||
<h2 class="faq-section__title">Часто задаваемые вопросы</h2>
|
||||
<div class="faq-section__wrapper">
|
||||
|
||||
<?php
|
||||
$questions = carbon_get_post_meta($post_id, 'questions' );
|
||||
@ -667,9 +668,9 @@ $metrics = [
|
||||
$accordion_item = "<div class='box__accordion'>
|
||||
<div class='box__accordion_label' role='button' tabindex='0'>
|
||||
<span>" . esc_html($questions_question) . "</span>
|
||||
<svg role='presentation' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'>
|
||||
<svg role='presentation' focusable='false' width='36px' height='36px' viewBox='0 0 24 24'>
|
||||
<g stroke='none' stroke-width='2px' fill='none' fill-rule='evenodd' stroke-linecap='square'>
|
||||
<g transform='translate(1.000000, 1.000000)' stroke='#3bb273'>
|
||||
<g transform='translate(1.000000, 1.000000)' stroke='currentColor'>
|
||||
<path d='M0,11 L22,11'></path>
|
||||
<path d='M11,0 L11,22'></path>
|
||||
</g>
|
||||
@ -688,10 +689,11 @@ $metrics = [
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
echo "<div class='accordion'>$HTMcol1</div>";
|
||||
echo "<div class='accordion accordion-last'>$HTMcol2</div>";
|
||||
echo "<div class='faq-section__col'>$HTMcol1</div>";
|
||||
echo "<div class='faq-section__col'>$HTMcol2</div>";
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section-bg camp-contact" data-bg="white" id="camp-contacts">
|
||||
|
||||
@ -243,7 +243,7 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<!-- Micro-Commitment: Checklist download -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section" aria-label="Скачать чек-лист">
|
||||
<div class="bento__full">
|
||||
<div class="bento__full bento-card bento-card--checklist">
|
||||
<div class="micro-commit">
|
||||
<div class="micro-commit__content">
|
||||
<span class="bento-label">Бесплатно</span>
|
||||
@ -255,26 +255,18 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</div>
|
||||
<div class="micro-commit__visual">
|
||||
<svg class="micro-commit__svg" viewBox="0 0 130 170" fill="none" aria-hidden="true">
|
||||
<!-- Paper background -->
|
||||
<rect x="8" y="4" width="114" height="162" rx="8" fill="white" stroke="#DED3C0" stroke-width="1.2"/>
|
||||
<!-- Header line -->
|
||||
<rect x="24" y="20" width="82" height="4" rx="2" fill="#7C3AED" opacity="0.15"/>
|
||||
<!-- Checklist items -->
|
||||
<rect x="24" y="38" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
|
||||
<path d="M26 44l3 3 5-5" stroke="#7C3AED" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" opacity="0.4"/>
|
||||
<rect x="44" y="40" width="50" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
|
||||
|
||||
<rect x="24" y="62" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
|
||||
<path d="M26 68l3 3 5-5" stroke="#7C3AED" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" opacity="0.4"/>
|
||||
<rect x="44" y="64" width="62" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
|
||||
|
||||
<rect x="24" y="86" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
|
||||
<rect x="44" y="88" width="42" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
|
||||
|
||||
<rect x="24" y="110" width="12" height="12" rx="3" fill="#7C3AED" opacity="0.15"/>
|
||||
<rect x="44" y="112" width="56" height="3" rx="1.5" fill="#DED3C0" opacity="0.6"/>
|
||||
|
||||
<!-- Pencil illustration -->
|
||||
<g transform="translate(92, 130) rotate(-30)">
|
||||
<rect x="0" y="0" width="6" height="28" rx="1" fill="#7C3AED" opacity="0.12"/>
|
||||
<polygon points="0,0 6,0 3,-6" fill="#7C3AED" opacity="0.15"/>
|
||||
@ -288,7 +280,7 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Guarantee Hero + Navigation -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section pksh-section--alt" aria-label="Гарантия">
|
||||
<section class="bento pksh-section" aria-label="Гарантия">
|
||||
<div class="bento__full">
|
||||
<div class="guarantee-hero">
|
||||
<div class="guarantee-hero__badges">
|
||||
@ -313,10 +305,15 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<!-- Bento Row 1: How it works + Why us -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section" id="how-it-works" aria-label="Как проходят занятия">
|
||||
<div class="bento__full" style="text-align: center;">
|
||||
<span class="bento-label">Как проходят занятия</span>
|
||||
<h2 class="bento-h2">30 минут игры — 1 шаг к школе</h2>
|
||||
<p class="bento-p">Каждое занятие построено так, что ребёнок <strong>сам хочет</strong> вернуться. Без скучных прописей — только игровая методика и смена активностей каждые 7 минут.</p>
|
||||
</div>
|
||||
<div class="bento__half bento-card bento-card--soft">
|
||||
<span class="bento-label">Как проходит занятие</span>
|
||||
<h2 class="bento-h2">30 минут игры = 1 шаг к школе</h2>
|
||||
<p class="bento-p">Никаких скучных прописей. Каждое занятие построено так, что ребёнок <strong>сам хочет</strong> вернуться.</p>
|
||||
<span class="bento-label">Структура занятия</span>
|
||||
<h2 class="bento-h2">Каждый урок — мини-путешествие</h2>
|
||||
<p class="bento-p">Ребёнок не сидит за партой 30 минут. Мы меняем активность каждые 7 минут — мозг не устаёт, интерес не гаснет.</p>
|
||||
<div class="steps-3">
|
||||
<div class="step">
|
||||
<div class="step__icon">
|
||||
@ -387,7 +384,7 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- CTA: Бесплатное тестирование + занятие -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section pksh-section--alt" aria-label="Запись на тестирование">
|
||||
<section class="bento pksh-section" aria-label="Запись на тестирование">
|
||||
<div class="bento__full">
|
||||
<div class="cta-test">
|
||||
<div class="cta-test__badge">Бесплатно</div>
|
||||
@ -401,10 +398,11 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Bento Row 2: Results / Data -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section pksh-section--alt" id="results" aria-label="Результаты учеников">
|
||||
<div class="bento__full bento-card bento-card--highlight-results">
|
||||
<section class="bento pksh-section" id="results" aria-label="Результаты учеников">
|
||||
<div class="bento__full bento-card bento-card--highlight-results" style="text-align: center;">
|
||||
<span class="bento-label bento-label--light">Результаты наших учеников</span>
|
||||
<h2 class="bento-h2 bento-h2--light">К чему мы приводим детей</h2>
|
||||
<p class="bento-p bento-p--light">95% наших выпускников поступают в школы и лицеи Щёлкова без стресса. Первые результаты — через 3 недели.</p>
|
||||
<div class="results-grid">
|
||||
<div class="result-item">
|
||||
<span class="result-item__value">95%</span>
|
||||
@ -429,8 +427,24 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Bento Row 3: Programs / Курсы -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<?php
|
||||
// Данные из админки (CF)
|
||||
$base_name = carbon_get_post_meta( $post_id, 'pksh_prog_base_name' ) ?: 'Уверенный старт';
|
||||
$base_subname = carbon_get_post_meta( $post_id, 'pksh_prog_base_subname' ) ?: '2 раза в неделю — комфортный темп без перегрузки';
|
||||
$base_schedule = carbon_get_post_meta( $post_id, 'pksh_prog_base_schedule' ) ?: 'вт, чт — 18:00–19:30';
|
||||
$base_price_sub = carbon_get_post_meta( $post_id, 'pksh_prog_base_price_sub' ) ?: '7 500 ₽';
|
||||
$base_price_single = carbon_get_post_meta( $post_id, 'pksh_prog_base_price_single' ) ?: '1 000 ₽';
|
||||
$base_urgency = carbon_get_post_meta( $post_id, 'pksh_prog_base_urgency' ) ?: 'Осталось 2 места в группе';
|
||||
|
||||
$prem_name = carbon_get_post_meta( $post_id, 'pksh_prog_prem_name' ) ?: 'Результат за 3 месяца';
|
||||
$prem_subname = carbon_get_post_meta( $post_id, 'pksh_prog_prem_subname' ) ?: '3 раза в неделю — быстрый прогресс';
|
||||
$prem_schedule = carbon_get_post_meta( $post_id, 'pksh_prog_prem_schedule' ) ?: 'пн, ср, пт — 16:30–18:00';
|
||||
$prem_price_sub = carbon_get_post_meta( $post_id, 'pksh_prog_prem_price_sub' ) ?: '10 500 ₽';
|
||||
$prem_price_single = carbon_get_post_meta( $post_id, 'pksh_prog_prem_price_single' ) ?: '1 500 ₽';
|
||||
$prem_urgency = carbon_get_post_meta( $post_id, 'pksh_prog_prem_urgency' ) ?: 'Осталось 3 места в группе';
|
||||
?>
|
||||
<section class="bento pksh-section" id="programs" aria-label="Программы подготовки">
|
||||
<div class="bento__full">
|
||||
<div class="bento__full" style="text-align: center;">
|
||||
<span class="bento-label">Программы</span>
|
||||
<h2 class="bento-h2">Выберите формат подготовки</h2>
|
||||
<p class="bento-p">Все программы ведут действующие педагоги начальных классов.
|
||||
@ -444,8 +458,8 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<div class="prog-card__header-row">
|
||||
<div class="prog-card__icon">⭐</div>
|
||||
<div>
|
||||
<div class="prog-card__name">Уверенный старт</div>
|
||||
<div class="prog-card__subname">2 раза в неделю — комфортный темп без перегрузки</div>
|
||||
<div class="prog-card__name"><?php echo esc_html( $base_name ); ?></div>
|
||||
<div class="prog-card__subname"><?php echo esc_html( $base_subname ); ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -453,10 +467,10 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<div class="prog-card__body">
|
||||
<!-- Цена — сразу под шапкой -->
|
||||
<div class="prog-card__pricing">
|
||||
<div class="prog-card__price">7 500 ₽ <span class="prog-card__price-period">стоимость абонемента за 4 недели</span></div>
|
||||
<div class="prog-card__price-sub">375 ₽ за занятие — дешевле репетитора</div>
|
||||
<div class="prog-card__price-single">Разовое занятие вне абонемента: 1 000 ₽</div>
|
||||
<div class="prog-card__urgency">Осталось 2 места в группе</div>
|
||||
<div class="prog-card__price"><?php echo esc_html( $base_price_sub ); ?> <span class="prog-card__price-period">стоимость абонемента за 4 недели</span></div>
|
||||
<div class="prog-card__price-sub"><?php echo esc_html( $base_price_single ); ?> за занятие — дешевле репетитора</div>
|
||||
<div class="prog-card__price-single">Разовое занятие вне абонемента: <?php echo esc_html( $base_price_single ); ?></div>
|
||||
<div class="prog-card__urgency"><?php echo esc_html( $base_urgency ); ?></div>
|
||||
</div>
|
||||
|
||||
<!-- Результат с гарантией -->
|
||||
@ -479,7 +493,7 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<!-- Расписание + Структура одним блоком -->
|
||||
<div class="prog-card__block">
|
||||
<div class="prog-card__block-title">Расписание</div>
|
||||
<div class="prog-card__schedule">вт, чт — 18:00–19:30</div>
|
||||
<div class="prog-card__schedule"><?php echo esc_html( $base_schedule ); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__block">
|
||||
@ -509,7 +523,7 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
|
||||
<!-- Кнопка -->
|
||||
<button class="prog-card__btn open-bitrix-form">Попробовать бесплатно</button>
|
||||
<div class="prog-card__footnote">После записи: перезвоним за 30 минут, подберём удобное время.</div>
|
||||
<div class="prog-card__footnote">Тестирование и первое занятие — бесплатно. Результат увидите до оплаты.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -521,8 +535,8 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<div class="prog-card__header-row">
|
||||
<div class="prog-card__icon prog-card__icon--double">⭐⭐</div>
|
||||
<div>
|
||||
<div class="prog-card__name">Результат за 3 месяца</div>
|
||||
<div class="prog-card__subname">3 раза в неделю — быстрый прогресс</div>
|
||||
<div class="prog-card__name"><?php echo esc_html( $prem_name ); ?></div>
|
||||
<div class="prog-card__subname"><?php echo esc_html( $prem_subname ); ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -530,10 +544,10 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<div class="prog-card__body">
|
||||
<!-- Цена — сразу под шапкой -->
|
||||
<div class="prog-card__pricing">
|
||||
<div class="prog-card__price prog-card__price--premium">10 500 ₽ <span class="prog-card__price-period">стоимость абонемента за 4 недели</span></div>
|
||||
<div class="prog-card__price-sub">500 ₽ за занятие — дешевле репетитора</div>
|
||||
<div class="prog-card__price-single">Разовое занятие вне абонемента: 1 500 ₽</div>
|
||||
<div class="prog-card__urgency">Осталось 3 места в группе</div>
|
||||
<div class="prog-card__price prog-card__price--premium"><?php echo esc_html( $prem_price_sub ); ?> <span class="prog-card__price-period">стоимость абонемента за 4 недели</span></div>
|
||||
<div class="prog-card__price-sub"><?php echo esc_html( $prem_price_single ); ?> за занятие — дешевле репетитора</div>
|
||||
<div class="prog-card__price-single">Разовое занятие вне абонемента: <?php echo esc_html( $prem_price_single ); ?></div>
|
||||
<div class="prog-card__urgency"><?php echo esc_html( $prem_urgency ); ?></div>
|
||||
</div>
|
||||
|
||||
<!-- Результат с гарантией -->
|
||||
@ -564,7 +578,7 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<!-- Расписание + Структура -->
|
||||
<div class="prog-card__block">
|
||||
<div class="prog-card__block-title">Расписание</div>
|
||||
<div class="prog-card__schedule">пн, ср, пт — 16:30–18:00</div>
|
||||
<div class="prog-card__schedule"><?php echo esc_html( $prem_schedule ); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="prog-card__block">
|
||||
@ -594,7 +608,7 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
|
||||
<!-- Кнопка -->
|
||||
<button class="prog-card__btn open-bitrix-form">Попробовать бесплатно</button>
|
||||
<div class="prog-card__footnote">После записи: перезвоним за 30 минут, подберём удобное время.</div>
|
||||
<div class="prog-card__footnote">Тестирование и первое занятие — бесплатно. Результат увидите до оплаты.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -610,28 +624,55 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<!-- Bento Row 4: Teachers (camp-style cards) -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section pksh-section--teachers" id="teachers" aria-label="Преподаватели">
|
||||
<div class="bento__full" style="text-align: center;">
|
||||
<span class="bento-label">Преподаватели</span>
|
||||
<h2 class="bento-h2">Наши преподаватели — практикующие педагоги</h2>
|
||||
<p class="bento-p">Каждый педагог имеет опыт работы с дошкольниками от 5 лет. Все — действующие учителя начальных классов с высшим образованием.</p>
|
||||
</div>
|
||||
<div class="bento__full">
|
||||
<h2 class="bento-h2">Наши преподаватели</h2>
|
||||
<div class="pksh-teachers__scroll-x">
|
||||
<div class="pksh-teachers__wrapper">
|
||||
<?php
|
||||
$pksh_teachers = carbon_get_post_meta(get_the_ID(), 'pksh_teachers');
|
||||
if (is_array($pksh_teachers) && !empty($pksh_teachers)) :
|
||||
foreach ($pksh_teachers as $item) :
|
||||
$t_name = $item['teacher_name'] ?? '';
|
||||
$t_photo = $item['teacher_photo'] ?? 0;
|
||||
$t_id = $item['teacher_id'] ?? 0;
|
||||
$t_subj = $item['teacher_subject'] ?? '';
|
||||
$t_about = $item['teacher_about'] ?? '';
|
||||
|
||||
// Получаем данные из CPT teacher
|
||||
$t_post = $t_id ? get_post($t_id) : null;
|
||||
$t_name = $t_post ? $t_post->post_title : '—';
|
||||
|
||||
// Фото: _teacher_avatar или _thumbnail_id
|
||||
$t_photo = 0;
|
||||
if ($t_post) {
|
||||
$t_photo = get_post_meta($t_id, '_teacher_avatar', true);
|
||||
if (!$t_photo) {
|
||||
$t_photo = get_post_meta($t_id, '_thumbnail_id', true);
|
||||
}
|
||||
}
|
||||
|
||||
// Subject fallback: сначала из CF, потом из CPT _teacher_direction
|
||||
if (empty($t_subj) && $t_post) {
|
||||
$t_subj = get_post_meta($t_id, '_teacher_direction', true);
|
||||
}
|
||||
|
||||
// About fallback
|
||||
if (empty($t_about) && $t_post) {
|
||||
$t_about = get_post_meta($t_id, '_teacher_about', true);
|
||||
}
|
||||
?>
|
||||
<div class="pksh-teachers__item">
|
||||
<div class="pksh-teachers__card">
|
||||
<div class="pksh-teachers__card-top">
|
||||
<?php if ($t_photo) : ?>
|
||||
<img class="pksh-teachers__photo" loading="lazy" width="130" height="130"
|
||||
src="<?php echo esc_url(wp_get_attachment_url($t_photo)); ?>"
|
||||
<?php $photo_url = wp_get_attachment_image_url($t_photo, array(280, 280)); ?>
|
||||
<img class="pksh-teachers__photo" loading="lazy" width="140" height="140"
|
||||
src="<?php echo esc_url($photo_url ?: get_template_directory_uri() . '/assets/images/no-photo.png'); ?>"
|
||||
alt="<?php echo esc_attr($t_name); ?>">
|
||||
<?php else : ?>
|
||||
<img class="pksh-teachers__photo" loading="lazy" width="130" height="130"
|
||||
<img class="pksh-teachers__photo" loading="lazy" width="140" height="140"
|
||||
src="<?php echo get_template_directory_uri(); ?>/assets/images/no-photo.png"
|
||||
alt="<?php echo esc_attr($t_name); ?>">
|
||||
<?php endif; ?>
|
||||
@ -641,9 +682,29 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<?php if ($t_subj) : ?>
|
||||
<p class="pksh-teachers__subj"><?php echo esc_html($t_subj); ?></p>
|
||||
<?php endif; ?>
|
||||
<?php if ($t_about) : ?>
|
||||
<p class="pksh-teachers__about"><?php echo esc_html($t_about); ?></p>
|
||||
<?php if ($t_post) :
|
||||
$t_desc = get_post_meta($t_id, '_teacher_description', true);
|
||||
if (!empty($t_desc)) : ?>
|
||||
<p class="pksh-teachers__desc"><?php echo esc_html(wp_strip_all_tags($t_desc)); ?></p>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<div class="pksh-teachers__meta">
|
||||
<span class="pksh-teachers__meta-badge">👶 Работает с дошкольниками</span>
|
||||
<?php if ($t_post) :
|
||||
$exp_years = '';
|
||||
$start_year = get_post_meta($t_id, '_teacher_start_year', true);
|
||||
if ($start_year && is_numeric($start_year)) {
|
||||
$exp = (int)date('Y') - (int)$start_year;
|
||||
if ($exp > 0) {
|
||||
$exp_years = $exp . ' лет';
|
||||
}
|
||||
}
|
||||
if ($exp_years) : ?>
|
||||
<span class="pksh-teachers__meta-exp">📅 Стаж: <?php echo esc_html($exp_years); ?></span>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<button class="pksh-teachers__btn open-bitrix-form">Записаться к этому педагогу</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -674,11 +735,11 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
</section>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Bento Row 6: FAQ (как на странице лагеря) -->
|
||||
<!-- Bento Row 6: FAQ (на всю ширину, section-bg) -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section pksh-section--alt" id="faq" aria-label="Вопросы и ответы">
|
||||
<div class="bento__full pksh-faq">
|
||||
<h2 class="bento-h2">Часто задаваемые вопросы</h2>
|
||||
<section class="section-bg faq-section" id="faq" aria-label="Вопросы и ответы">
|
||||
<div class="container">
|
||||
<h2 class="faq-section__title">Часто задаваемые вопросы</h2>
|
||||
<?php
|
||||
$faq_items = carbon_get_post_meta($post_id, 'pksh_faq_items');
|
||||
if (!empty($faq_items) && is_array($faq_items)) :
|
||||
@ -710,14 +771,13 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
endforeach;
|
||||
if (!empty($col1) || !empty($col2)) :
|
||||
?>
|
||||
<div class="pksh-faq__wrapper">
|
||||
<div class="pksh-faq__col"><?php echo $col1; ?></div>
|
||||
<div class="pksh-faq__col"><?php echo $col2; ?></div>
|
||||
<div class="faq-section__wrapper">
|
||||
<div class="faq-section__col"><?php echo $col1; ?></div>
|
||||
<div class="faq-section__col"><?php echo $col2; ?></div>
|
||||
</div>
|
||||
<?php endif; endif; ?>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Reviews (lw-card inline, camp-style) -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
@ -829,7 +889,7 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- External Reviews — Social Proof -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section pksh-section--alt" aria-label="Отзывы на внешних площадках">
|
||||
<section class="bento pksh-section" aria-label="Отзывы на внешних площадках">
|
||||
<div class="bento__full">
|
||||
<div class="external-reviews">
|
||||
<h2 class="bento-h2">Нас рекомендуют на площадках</h2>
|
||||
@ -862,7 +922,7 @@ $opt_social_raw = get_option( 'branch_social' ) ?: carbon_get_post_meta( $post_
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<!-- Final CTA — Low Friction + Countdown Timer -->
|
||||
<!-- ════════════════════════════════════════════ -->
|
||||
<section class="bento pksh-section pksh-section--alt" id="final-cta" aria-label="Запись">
|
||||
<section class="bento pksh-section" id="final-cta" aria-label="Запись">
|
||||
<div class="bento__full">
|
||||
<div class="final-cta">
|
||||
<h2 class="bento-h2">Первое занятие — бесплатно</h2>
|
||||
|
||||
@ -658,11 +658,11 @@ $intro_price_txt = carbon_get_post_meta( $post_id, 'reviews_intro_price_text' );
|
||||
</div>
|
||||
|
||||
|
||||
<?php if ( ! empty( $faq_items ) ) : ?>
|
||||
<section class="section-bg reviews-faq" id="reviews-faq">
|
||||
<div class="container">
|
||||
<h2 class="reviews-faq__title">Частые вопросы о поступлении в школу Декарт</h2>
|
||||
<div class="reviews-faq-wrapper">
|
||||
<?php if ( ! empty( $faq_items ) ) : ?>
|
||||
<section class="section-bg reviews-faq faq-section" id="reviews-faq">
|
||||
<div class="container">
|
||||
<h2 class="faq-section__title">Частые вопросы о поступлении в школу Декарт</h2>
|
||||
<div class="faq-section__wrapper">
|
||||
<?php
|
||||
$col1 = '';
|
||||
$col2 = '';
|
||||
@ -679,14 +679,14 @@ $intro_price_txt = carbon_get_post_meta( $post_id, 'reviews_intro_price_text' );
|
||||
$accordion = '<div class="box__accordion reveal">'
|
||||
. '<div class="box__accordion_label" role="button" tabindex="0" id="' . $btn_id . '" aria-expanded="false" aria-controls="' . $panel_id . '">'
|
||||
. '<span>' . esc_html( $q ) . '</span>'
|
||||
. '<svg role="presentation" focusable="false" width="24px" height="24px" viewBox="0 0 24 24">'
|
||||
. '<g stroke="none" stroke-width="2px" fill="none" fill-rule="evenodd" stroke-linecap="square">'
|
||||
. '<g transform="translate(1.000000, 1.000000)" stroke="#E8753A">'
|
||||
. '<path d="M0,11 L22,11"></path>'
|
||||
. '<path d="M11,0 L11,22"></path>'
|
||||
. '</g>'
|
||||
. '</g>'
|
||||
. '</svg>'
|
||||
. '<svg role="presentation" focusable="false" width="36px" height="36px" viewBox="0 0 24 24">'
|
||||
. '<g stroke="none" stroke-width="2px" fill="none" fill-rule="evenodd" stroke-linecap="square">'
|
||||
. '<g transform="translate(1.000000, 1.000000)" stroke="currentColor">'
|
||||
. '<path d="M0,11 L22,11"></path>'
|
||||
. '<path d="M11,0 L11,22"></path>'
|
||||
. '</g>'
|
||||
. '</g>'
|
||||
. '</svg>'
|
||||
. '</div>'
|
||||
. '<div class="box__accordion_content" id="' . $panel_id . '" role="region" aria-labelledby="' . $btn_id . '">'
|
||||
. '<div class="box__accordion_content-text">' . wp_kses_post( wpautop( $a ) ) . '</div>'
|
||||
@ -701,9 +701,9 @@ $intro_price_txt = carbon_get_post_meta( $post_id, 'reviews_intro_price_text' );
|
||||
$count++;
|
||||
endforeach;
|
||||
?>
|
||||
<div class="accordion"><?php echo $col1; ?></div>
|
||||
<div class="accordion accordion-last"><?php echo $col2; ?></div>
|
||||
</div>
|
||||
<div class="faq-section__col"><?php echo $col1; ?></div>
|
||||
<div class="faq-section__col"><?php echo $col2; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php endif; ?>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user