diff --git a/wp-content/themes/dekart/assets/css/main.css b/wp-content/themes/dekart/assets/css/main.css index f518718..70fc6d9 100644 --- a/wp-content/themes/dekart/assets/css/main.css +++ b/wp-content/themes/dekart/assets/css/main.css @@ -86,6 +86,13 @@ --card-radius: 20px; --card-shadow: 0 2px 16px rgba(0,0,0,0.06); --card-shadow-hover: 0 8px 32px rgba(0,0,0,0.1); + /* PKSH — shared with teachers-cards component (used on front-page too) */ + --pksh-radius-card: var(--radius-lg, 24px); + --pksh-text-warm: #475569; + --pksh-gradient-btn-bright: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%); + --pksh-gradient-btn-bright-hover: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary-hover) 100%); + --pksh-btn-shadow-bright: 0 4px 20px color-mix(in oklab, var(--color-primary), transparent 60%); + --pksh-btn-shadow-bright-hover: 0 8px 32px color-mix(in oklab, var(--color-primary), transparent 50%); /* ════════════════════════════════════════════ */ /* PAGE-SPECIFIC COLOR TOKENS */ @@ -11225,3 +11232,425 @@ main > .pksh-section:first-child { border-top: 1px solid var(--slate-200, #E2E8F0); } } + +/* ── 19. Contacts ── */ +.contacts { + padding: var(--space-6) 0; + background: transparent; +} +/* Override legacy .contacts .container !important */ +.contacts > .container { + max-width: 1240px !important; + padding: 0 1.5rem !important; +} +.contacts__header { + margin-bottom: var(--space-5); +} +.contacts__title { + font-family: var(--font-display); + font-weight: 700; + font-size: clamp(1.5rem, 4vw, 2.5rem); + line-height: 1.15; + letter-spacing: -0.02em; + color: var(--color-text); + margin: 0 0 var(--space-3); +} +.contacts__description { + font-size: var(--text-body); + line-height: 1.6; + color: var(--color-text-muted); + margin: 0; +} +.contacts__wrapper { + display: flex; + gap: var(--space-5); + align-items: stretch; +} +.contacts__info { + width: 35%; + display: flex; + flex-direction: column; + gap: var(--space-2); + padding: var(--space-3) 0; +} +.contacts__item { + display: flex; + flex-direction: column; + gap: var(--space-1); +} +.contacts__item + .contacts__item { + margin-top: var(--space-2); +} +.contacts__subtitle { + font-size: var(--text-body-sm); + font-weight: 700; + color: var(--color-text-muted); + text-transform: uppercase; + letter-spacing: 0.05em; +} +.contacts__value { + font-size: clamp(1rem, 2vw, var(--text-h4)); + font-weight: 600; + color: var(--color-primary); + text-decoration: none; + transition: color var(--transition-fast); +} +.contacts__value:hover { + color: var(--color-primary-dark); + text-decoration: underline; +} +.contacts__logistics { + display: flex; + flex-wrap: wrap; + gap: var(--space-2); + margin-top: var(--space-3); + padding: var(--space-3); + background: var(--color-bg-alt); + border: 1px solid var(--color-border); + border-radius: var(--radius-sm); +} +.contacts__logistics-item { + display: inline-flex; + align-items: center; + gap: var(--space-2); + font-size: var(--text-body-sm); + color: var(--color-text-muted); + width: 100%; +} +.contacts__logistics-icon { + flex-shrink: 0; + width: 18px; + height: 18px; + color: var(--color-primary); +} +.contacts__logistics-text { + flex: 1; +} +.contacts__social { + display: flex; + flex-wrap: wrap; + gap: var(--space-3); +} +.contacts__social-link { + display: inline-flex; + align-items: center; + font-size: clamp(0.875rem, 1.8vw, 1rem); + font-weight: 600; + color: var(--color-primary); + text-decoration: none; + transition: color var(--transition-fast); +} +.contacts__social-link:hover { + color: var(--color-primary-hover); +} +.contacts__social-link + .contacts__social-link::before { + content: '\00B7'; + margin-right: var(--space-3); + color: var(--color-text-muted); + font-weight: 400; +} +.contacts__map { + flex: 1; + border-radius: var(--radius-sm); + overflow: hidden; + min-height: 400px; + box-shadow: var(--shadow-md); +} + +@media (max-width: 768px) { + .contacts__wrapper { + flex-direction: column-reverse; + } + .contacts__info { + width: 100%; + } + .contacts__map { + min-height: 280px; + margin: 0 calc(-1 * var(--container-padding, 1.5rem)); + border-radius: 0; + box-shadow: none; + } +} + +/* ── 20. Teachers Cards (shared) ── */ +.teachers-cards__wrapper { + display: flex; + flex-wrap: wrap; + gap: clamp(16px, 2vw, 24px); + justify-content: center; +} +.teachers-cards__item { + width: calc(33.33% - 18px); + min-width: 280px; +} +.teachers-cards__card { + background: var(--color-bg); + border-radius: var(--pksh-radius-card, 24px); + overflow: hidden; + box-shadow: var(--shadow-sm); + transition: transform 0.25s ease, box-shadow 0.25s ease; + display: flex; + flex-direction: column; + height: 100%; +} +.teachers-cards__card:hover { + transform: translateY(-4px); + box-shadow: var(--shadow-md); +} +.teachers-cards__card-top { + background: linear-gradient(135deg, color-mix(in oklab, var(--color-primary), transparent 95%), color-mix(in oklab, var(--color-secondary), transparent 92%)); + display: flex; + justify-content: center; + padding: clamp(24px, 3vw, 32px) clamp(16px, 2vw, 24px) clamp(16px, 2vw, 20px); +} +.teachers-cards__photo { + width: clamp(120px, 12vw, 140px); + height: clamp(120px, 12vw, 140px); + border-radius: 50%; + object-fit: cover; + border: 4px solid var(--color-bg); + box-shadow: 0 4px 16px color-mix(in oklab, var(--color-text), transparent 90%); +} +.teachers-cards__card-body { + padding: clamp(14px, 1.8vw, 18px) clamp(18px, 2.5vw, 24px) clamp(20px, 2.5vw, 24px); + display: flex; + flex-direction: column; + gap: 6px; + flex: 1; +} +.teachers-cards__name { + font-size: clamp(1rem, 1.2vw, 1.125rem); + font-weight: 700; + line-height: 1.3; + color: var(--color-text); + text-align: center; + margin: 0; +} +.teachers-cards__subj { + font-size: clamp(0.8125rem, 0.9vw, 0.875rem); + line-height: 1.4; + color: var(--color-primary); + text-align: center; + font-weight: 600; + margin: 0 0 2px; +} +.teachers-cards__desc { + font-size: 0.825rem; + line-height: 1.5; + color: var(--color-text-muted); + text-align: center; + margin: 0 0 4px; +} +.teachers-cards__meta { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 6px; + margin: 4px 0 12px; +} +.teachers-cards__meta-badge { + display: inline-flex; + padding: 3px 10px; + font-size: 0.72rem; + font-weight: 600; + color: var(--color-primary-dark); + background: var(--color-primary-light, #EFF6FF); + border-radius: var(--radius-pill, 100px); + white-space: nowrap; +} +.teachers-cards__meta-exp { + display: inline-flex; + padding: 3px 10px; + font-size: 0.72rem; + font-weight: 600; + color: var(--pksh-text-warm); + background: color-mix(in oklab, var(--color-bg-alt), var(--color-warning) 12%); + border-radius: var(--radius-pill, 100px); + white-space: nowrap; +} +.teachers-cards__btn { + display: block; + width: 100%; + padding: 12px; + border: none; + border-radius: var(--radius-sm, 12px); + font-family: inherit; + font-size: 0.9rem; + font-weight: 700; + color: var(--color-text-on-dark); + cursor: pointer; + background: var(--pksh-gradient-btn-bright); + text-align: center; + text-decoration: none; + transition: transform var(--transition-fast), box-shadow var(--transition-fast); + box-shadow: var(--pksh-btn-shadow-bright); + margin-top: auto; +} +.teachers-cards__btn:hover { + transform: translateY(-2px); + box-shadow: var(--pksh-btn-shadow-bright-hover); +} +.teachers-cards__btn:focus-visible { + outline: 3px solid var(--color-primary); + outline-offset: 3px; +} + +@media (max-width: 768px) { + .teachers-cards__item { + width: calc(50% - 12px); + min-width: 0; + } + .teachers-cards__wrapper { gap: 16px; } +} + +@media (max-width: 639px) { + .teachers-cards__scroll-x { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + scroll-snap-type: x mandatory; + padding-bottom: 20px; + } + .teachers-cards__wrapper { + flex-wrap: nowrap; + gap: 16px; + justify-content: flex-start; + padding-bottom: 4px; + } + .teachers-cards__item { + flex-shrink: 0; + width: calc(100vw - 64px); + max-width: 340px; + scroll-snap-align: start; + min-width: 0; + } +} + +/* ── 21. PKSH Swipe Hint (shared via teachers-cards) ── */ +.pksh-swipe-hint { + display: none; + align-items: center; + justify-content: center; + flex-wrap: wrap; + gap: 6px 8px; + margin: 16px 0 4px; + font-size: 0.875rem; + color: var(--color-primary); + font-weight: 600; +} +.pksh-swipe-hint__arrow { + display: inline-block; + font-size: 1.125rem; +} +.pksh-swipe-hint__text { + text-align: center; +} +@media (max-width: 639px) { + .pksh-swipe-hint { + display: flex; + } +} + +/* ── 22. Base bento typography (global, from pksh design system) ── */ +.bento-h2 { + font-family: var(--font-display); + font-size: clamp(1.5rem, 2.5vw, 2.25rem); + font-weight: 700; + line-height: 1.2; + color: var(--color-text); + margin: 0 0 12px; + text-wrap: balance; +} +.bento-p { + font-size: clamp(1rem, 1.2vw, 1.0625rem); + line-height: 1.7; + color: var(--color-text-muted); + margin: 0 0 20px; + max-width: 70ch; + text-wrap: pretty; +} +.section-header--left { + text-align: left; +} +.section-header--left .bento-h2, +.section-header--left .bento-p { + max-width: none; + margin-left: 0; + margin-right: auto; +} +.section-header--left .bento-p { + max-width: 65ch; +} +.bento-label { + display: inline-block; + font-size: 0.8125rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; + color: var(--color-primary); + margin-bottom: var(--space-2, 8px); +} + +/* ── 23. Section Header Centered (global) ── */ +.section-header--centered { + text-align: center; +} +.section-header--centered .bento-h2, +.section-header--centered .bento-p { + max-width: none; + margin-left: auto; + margin-right: auto; +} +.section-header--centered .bento-p { + max-width: 70ch; +} + +/* ── 24. Reviews Link CTA (front-page) ── */ +.reviews-link { + background: var(--color-bg-alt); + border-radius: var(--radius-lg); + margin: 40px auto; + padding: 48px 24px; +} +.reviews-link .bento__full { + width: 100%; + max-width: 700px; + margin: 0 auto; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; +} +.reviews-link .bento-p { + max-width: 65ch; + margin-left: auto; + margin-right: auto; +} +.reviews-link .reviews-link__btn { + margin-top: 8px; +} +.reviews-link__btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 14px 32px; + border: none; + border-radius: var(--radius-sm, 12px); + font-family: inherit; + font-size: 0.95rem; + font-weight: 700; + color: var(--color-text-on-dark); + cursor: pointer; + background: var(--pksh-gradient-btn-bright); + text-decoration: none; + transition: transform var(--transition-fast), box-shadow var(--transition-fast); + box-shadow: var(--pksh-btn-shadow-bright); + white-space: nowrap; +} +.reviews-link__btn:hover { + transform: translateY(-2px); + box-shadow: var(--pksh-btn-shadow-bright-hover); +} +.reviews-link__btn:focus-visible { + outline: 3px solid var(--color-primary); + outline-offset: 3px; +} diff --git a/wp-content/themes/dekart/front-page.php b/wp-content/themes/dekart/front-page.php index 85675de..6ecf28e 100644 --- a/wp-content/themes/dekart/front-page.php +++ b/wp-content/themes/dekart/front-page.php @@ -110,17 +110,34 @@ $branch_addr = get_option( 'branch_address' ) ?: carbon_get_theme_option( ' - -