/*
Theme Name: ClassCloud Kids
Theme URI: https://theclasscloud.example/classcloud-kids
Author: The Class Cloud
Author URI: https://theclasscloud.example
Description: A premium, playful, child-first educational WordPress theme. Built on the ClassCloud foundation, redesigned into an interactive learning world with gamification UI, a mascot system, sound feedback, and full RTL/Arabic support. Requires WordPress 6.0+, PHP 8.3+. Optional WooCommerce 8.0+.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.3
Tested up to: 6.6
WC requires at least: 8.0
WC tested up to: 8.9
Text Domain: classcloud
Domain Path: /languages
Tags: education, kids, e-learning, custom-colors, custom-logo, custom-menu, translation-ready, rtl-language-support, woocommerce, accessibility-ready
*/

/* =====================================================================
   TABLE OF CONTENTS
   1. Design Tokens (CSS Variables)
   2. Reset & Base
   3. Typography
   4. Layout & Containers
   5. Header
   6. Navigation (desktop + mobile bottom nav)
   7. Hero
   8. Buttons (Cinematic Button System)
   9. Cards
   10. Lesson Cards
   11. Gamification UI (XP, Stars, Level, Streak, Badges, Progress)
   12. Learning Journey
   13. Achievement Modal
   14. Mascot
   15. Empty / Error States
   16. Forms
   17. Dashboard (Parent / Teacher)
   18. Footer
   19. WooCommerce
   20. Animations
   21. Responsive
   22. RTL
   23. Accessibility & Reduced Motion
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. DESIGN TOKENS
   --------------------------------------------------------------------- */
:root {
    /* Brand foundation (preserved from original ClassCloud) */
    --cc-primary: #c8f500;
    --cc-dark: #1a1a1a;

    /* Expanded child-friendly palette */
    --cc-blue: #3aa9ff;
    --cc-blue-dark: #1e7fd6;
    --cc-purple: #9b6bff;
    --cc-orange: #ff9640;
    --cc-yellow: #ffd23f;
    --cc-coral: #ff6b81;
    --cc-green: #3ddc97;

    /* Surfaces */
    --cc-bg: #f4f7f5;
    --cc-bg-alt: #eef3ff;
    --cc-surface: #ffffff;
    --cc-surface-muted: #f0f2f5;
    --cc-border: #e4e8ec;

    /* Text */
    --cc-text: #1a1a1a;
    --cc-text-muted: #5b6470;
    --cc-text-on-dark: #ffffff;

    /* Feedback colors */
    --cc-success: #2ecc71;
    --cc-error: #ff5a5f;
    --cc-warning: #ffb020;

    /* Radii */
    --cc-radius-sm: 10px;
    --cc-radius-md: 18px;
    --cc-radius-lg: 28px;
    --cc-radius-xl: 40px;
    --cc-radius-pill: 999px;

    /* Shadows */
    --cc-shadow-soft: 0 4px 14px rgba(26, 26, 26, 0.06);
    --cc-shadow-card: 0 10px 30px rgba(26, 26, 26, 0.10);
    --cc-shadow-button: 0 6px 0 rgba(0, 0, 0, 0.15);
    --cc-shadow-lift: 0 16px 40px rgba(26, 26, 26, 0.16);

    /* Spacing scale */
    --cc-space-1: 4px;
    --cc-space-2: 8px;
    --cc-space-3: 16px;
    --cc-space-4: 24px;
    --cc-space-5: 32px;
    --cc-space-6: 48px;
    --cc-space-7: 64px;

    /* Typography */
    --cc-font-body: 'Baloo 2', 'Cairo', 'Segoe UI', Tahoma, sans-serif;
    --cc-font-display: 'Baloo 2', 'Cairo', 'Segoe UI', Tahoma, sans-serif;

    --cc-fs-hero: clamp(2.2rem, 5vw, 3.4rem);
    --cc-fs-h2: clamp(1.6rem, 3.2vw, 2.4rem);
    --cc-fs-h3: clamp(1.2rem, 2.2vw, 1.5rem);
    --cc-fs-body: 1.05rem;
    --cc-fs-small: 0.875rem;
    --cc-fs-button: 1.05rem;

    /* Motion */
    --cc-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
    --cc-duration-fast: 150ms;
    --cc-duration-base: 250ms;
    --cc-duration-slow: 450ms;

    /* Layout */
    --cc-container: 1200px;
    --cc-header-height: 76px;
    --cc-bottom-nav-height: 72px;
}

/* Reduced-motion / kids-experience overrides toggled via body classes,
   see section 23 and inc/customizer.php */
body.cc-reduced-motion,
body.cc-animations-off {
    --cc-duration-fast: 0ms;
    --cc-duration-base: 0ms;
    --cc-duration-slow: 0ms;
}

/* ---------------------------------------------------------------------
   2. RESET & BASE
   --------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}

body {
    margin: 0;
    background: var(--cc-bg);
    color: var(--cc-text);
    font-family: var(--cc-font-body);
    font-size: var(--cc-fs-body);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
button { font-family: inherit; }

/* ---------------------------------------------------------------------
   3. TYPOGRAPHY
   --------------------------------------------------------------------- */
h1, h2, h3, h4 { font-family: var(--cc-font-display); font-weight: 800; margin: 0 0 var(--cc-space-3); }

.cc-hero-title { font-size: var(--cc-fs-hero); line-height: 1.15; }
.cc-section-heading { font-size: var(--cc-fs-h2); }
.cc-card-title { font-size: var(--cc-fs-h3); font-weight: 700; }
.cc-text-muted { color: var(--cc-text-muted); }
.cc-text-small { font-size: var(--cc-fs-small); }

/* ---------------------------------------------------------------------
   4. LAYOUT & CONTAINERS
   --------------------------------------------------------------------- */
.cc-container { max-width: var(--cc-container); margin-inline: auto; padding-inline: var(--cc-space-4); }
.cc-section { padding-block: var(--cc-space-6); }
.cc-grid { display: grid; gap: var(--cc-space-4); }
.cc-grid-2 { grid-template-columns: repeat(2, 1fr); }
.cc-grid-3 { grid-template-columns: repeat(3, 1fr); }
.cc-grid-4 { grid-template-columns: repeat(4, 1fr); }
.cc-flex { display: flex; align-items: center; gap: var(--cc-space-3); }
.cc-flex-between { display: flex; align-items: center; justify-content: space-between; }

/* ---------------------------------------------------------------------
   5. HEADER
   --------------------------------------------------------------------- */
.cc-site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    height: var(--cc-header-height);
    display: flex;
    align-items: center;
    background: var(--cc-surface);
    border-bottom: 2px solid var(--cc-border);
}

.cc-site-header .cc-container { display: flex; align-items: center; justify-content: space-between; width: 100%; }

.cc-logo img { max-height: 44px; width: auto; }
.cc-logo-text { font-size: 1.4rem; font-weight: 800; color: var(--cc-dark); }

/* ---------------------------------------------------------------------
   6. NAVIGATION
   --------------------------------------------------------------------- */
.cc-primary-nav ul { display: flex; align-items: center; gap: var(--cc-space-2); }

.cc-primary-nav a {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border-radius: var(--cc-radius-pill);
    font-weight: 700;
    color: var(--cc-text);
    transition: background var(--cc-duration-base) ease, transform var(--cc-duration-fast) ease;
}

.cc-primary-nav a:hover,
.cc-primary-nav a:focus-visible {
    background: var(--cc-bg-alt);
    transform: translateY(-1px);
}

.cc-primary-nav .current-menu-item > a,
.cc-primary-nav a[aria-current="page"] {
    background: var(--cc-primary);
    color: var(--cc-dark);
}

.cc-nav-icon { font-size: 1.15rem; line-height: 1; }

/* Mobile bottom navigation */
.cc-bottom-nav {
    display: none;
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 60;
    height: var(--cc-bottom-nav-height);
    background: var(--cc-surface);
    border-top: 2px solid var(--cc-border);
    box-shadow: 0 -6px 20px rgba(0,0,0,0.06);
}

.cc-bottom-nav ul { display: flex; height: 100%; }
.cc-bottom-nav li { flex: 1; }

.cc-bottom-nav a {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--cc-text-muted);
}

.cc-bottom-nav .cc-nav-icon { font-size: 1.3rem; }

.cc-bottom-nav a[aria-current="page"],
.cc-bottom-nav .current-menu-item > a {
    color: var(--cc-blue-dark);
}

/* ---------------------------------------------------------------------
   7. HERO
   --------------------------------------------------------------------- */
.cc-hero {
    position: relative;
    overflow: hidden;
    border-radius: var(--cc-radius-xl);
    margin: var(--cc-space-4);
    padding: var(--cc-space-7) var(--cc-space-4);
    background: linear-gradient(135deg, var(--cc-blue) 0%, var(--cc-purple) 100%);
    color: var(--cc-text-on-dark);
    text-align: center;
}

.cc-hero-eyebrow { font-size: 1.1rem; font-weight: 700; opacity: 0.9; }
.cc-hero-title { margin: var(--cc-space-2) 0; }
.cc-hero-subtitle { font-size: 1.15rem; opacity: 0.95; max-width: 620px; margin-inline: auto; }

.cc-hero-cta { margin-top: var(--cc-space-4); }

.cc-hero-decor {
    position: absolute;
    font-size: 2.4rem;
    opacity: 0.9;
    pointer-events: none;
    animation: cc-float 5s ease-in-out infinite;
}
.cc-hero-decor--1 { top: 12%; inset-inline-start: 8%; animation-delay: 0s; }
.cc-hero-decor--2 { top: 20%; inset-inline-end: 10%; animation-delay: 1.2s; }
.cc-hero-decor--3 { bottom: 14%; inset-inline-start: 18%; animation-delay: 2.1s; }

.cc-hero-illustration { margin-top: var(--cc-space-5); font-size: 3rem; }

/* ---------------------------------------------------------------------
   8. BUTTONS (CINEMATIC BUTTON SYSTEM)
   --------------------------------------------------------------------- */
.cc-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: none;
    cursor: pointer;
    font-family: var(--cc-font-display);
    font-weight: 800;
    font-size: var(--cc-fs-button);
    padding: 14px 28px;
    border-radius: var(--cc-radius-pill);
    color: var(--cc-dark);
    background: var(--cc-primary);
    box-shadow: var(--cc-shadow-button);
    transform: translateY(0);
    transition: transform var(--cc-duration-fast) var(--cc-ease-bounce),
                box-shadow var(--cc-duration-fast) ease;
    overflow: hidden;
    isolation: isolate;
}

.cc-btn:hover { transform: translateY(-3px); }
.cc-btn:active,
.cc-btn.is-pressed {
    transform: translateY(2px);
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.15);
}

.cc-btn:focus-visible {
    outline: 3px solid var(--cc-blue-dark);
    outline-offset: 3px;
}

.cc-btn-primary { background: var(--cc-primary); color: var(--cc-dark); }
.cc-btn-secondary { background: var(--cc-surface); color: var(--cc-text); box-shadow: 0 6px 0 var(--cc-border); }
.cc-btn-game { background: var(--cc-coral); color: #fff; box-shadow: 0 6px 0 #c94b5c; }
.cc-btn-large { padding: 18px 36px; font-size: 1.2rem; }
.cc-btn-icon { padding: 14px; border-radius: 50%; }

.cc-btn .cc-btn-icon-inner { transition: transform var(--cc-duration-base) ease; }
.cc-btn:hover .cc-btn-icon-inner { transform: translateX(3px) rotate(-8deg); }

/* Ripple */
.cc-btn .cc-ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,0.55);
    transform: scale(0);
    animation: cc-ripple 600ms ease-out forwards;
    pointer-events: none;
    z-index: -1;
}

/* ---------------------------------------------------------------------
   9. CARDS
   --------------------------------------------------------------------- */
.cc-card {
    background: var(--cc-surface);
    border-radius: var(--cc-radius-lg);
    box-shadow: var(--cc-shadow-card);
    padding: var(--cc-space-4);
    transition: transform var(--cc-duration-base) var(--cc-ease-bounce), box-shadow var(--cc-duration-base) ease;
}

.cc-card:hover { transform: translateY(-6px); box-shadow: var(--cc-shadow-lift); }

/* ---------------------------------------------------------------------
   10. LESSON CARDS
   --------------------------------------------------------------------- */
.cc-lesson-card {
    background: var(--cc-surface);
    border-radius: var(--cc-radius-lg);
    box-shadow: var(--cc-shadow-card);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform var(--cc-duration-base) var(--cc-ease-bounce), box-shadow var(--cc-duration-base) ease;
}

.cc-lesson-card:hover { transform: translateY(-6px); box-shadow: var(--cc-shadow-lift); }

.cc-lesson-card__media { position: relative; aspect-ratio: 16/10; overflow: hidden; background: var(--cc-bg-alt); }
.cc-lesson-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--cc-duration-slow) ease; }
.cc-lesson-card:hover .cc-lesson-card__media img { transform: scale(1.08); }

.cc-lesson-card__badge {
    position: absolute;
    top: 12px; inset-inline-start: 12px;
    background: var(--cc-yellow);
    color: var(--cc-dark);
    font-weight: 800;
    font-size: 0.75rem;
    padding: 4px 12px;
    border-radius: var(--cc-radius-pill);
}

.cc-lesson-card__body { padding: var(--cc-space-4); display: flex; flex-direction: column; gap: var(--cc-space-2); flex: 1; }
.cc-lesson-card__subject { color: var(--cc-blue-dark); font-weight: 700; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.04em; }
.cc-lesson-card__footer { margin-top: auto; display: flex; align-items: center; justify-content: space-between; padding-top: var(--cc-space-2); }

.cc-lesson-card--locked { opacity: 0.65; filter: grayscale(0.3); }
.cc-lesson-card--locked .cc-lesson-card__media::after {
    content: "🔒";
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 2rem;
    background: rgba(255,255,255,0.35);
}

/* ---------------------------------------------------------------------
   11. GAMIFICATION UI
   --------------------------------------------------------------------- */
.cc-xp-badge, .cc-streak-badge, .cc-level-badge {
    display: inline-flex; align-items: center; gap: 6px;
    font-weight: 800; font-size: 0.9rem;
    padding: 6px 14px; border-radius: var(--cc-radius-pill);
    background: var(--cc-surface-muted);
}

.cc-xp-badge { color: #b58a00; background: #fff6da; }
.cc-streak-badge { color: #c44b0f; background: #fff0e6; }
.cc-level-badge { color: #fff; background: var(--cc-purple); }

.cc-stars { display: inline-flex; gap: 2px; font-size: 1.1rem; color: var(--cc-yellow); }
.cc-stars .cc-star--empty { color: var(--cc-border); }

.cc-badge-chip {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--cc-surface);
    border: 2px solid var(--cc-border);
    border-radius: var(--cc-radius-md);
    padding: 10px 16px;
    font-weight: 700;
    font-size: 0.9rem;
}

.cc-progress {
    width: 100%;
    height: 14px;
    border-radius: var(--cc-radius-pill);
    background: var(--cc-surface-muted);
    overflow: hidden;
}

.cc-progress__bar {
    height: 100%;
    border-radius: var(--cc-radius-pill);
    background: linear-gradient(90deg, var(--cc-green), var(--cc-blue));
    transition: width var(--cc-duration-slow) var(--cc-ease-bounce);
}

/* ---------------------------------------------------------------------
   12. LEARNING JOURNEY
   --------------------------------------------------------------------- */
.cc-journey {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--cc-space-4);
    position: relative;
}

.cc-journey__node {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--cc-space-2);
    text-align: center;
}

.cc-journey__icon {
    width: 72px; height: 72px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 2rem;
    background: var(--cc-surface);
    box-shadow: var(--cc-shadow-card);
    border: 4px solid var(--cc-border);
}

.cc-journey__node--completed .cc-journey__icon { border-color: var(--cc-success); background: #eafff3; }
.cc-journey__node--current .cc-journey__icon { border-color: var(--cc-primary); animation: cc-pulse 2s ease-in-out infinite; }
.cc-journey__node--locked .cc-journey__icon { opacity: 0.5; }

.cc-journey__connector {
    width: 4px; height: 40px;
    background: var(--cc-border);
    border-radius: var(--cc-radius-pill);
}
.cc-journey__node--completed + .cc-journey__connector { background: var(--cc-success); }

@media (min-width: 768px) {
    .cc-journey { flex-direction: row; align-items: center; }
    .cc-journey__connector { width: 60px; height: 4px; }
}

/* ---------------------------------------------------------------------
   13. ACHIEVEMENT MODAL
   --------------------------------------------------------------------- */
.cc-modal-overlay {
    position: fixed; inset: 0;
    background: rgba(26,26,26,0.55);
    display: flex; align-items: center; justify-content: center;
    z-index: 200;
    padding: var(--cc-space-3);
}

.cc-achievement-modal {
    background: var(--cc-surface);
    border-radius: var(--cc-radius-xl);
    padding: var(--cc-space-6) var(--cc-space-5);
    max-width: 380px;
    width: 100%;
    text-align: center;
    box-shadow: var(--cc-shadow-lift);
    animation: cc-pop var(--cc-duration-slow) var(--cc-ease-bounce);
}

.cc-achievement-modal__emoji { font-size: 3.2rem; }
.cc-achievement-modal__badge { font-size: 3rem; margin: var(--cc-space-3) 0; }

/* ---------------------------------------------------------------------
   14. MASCOT
   --------------------------------------------------------------------- */
.cc-mascot { display: flex; flex-direction: column; align-items: center; gap: var(--cc-space-2); }
.cc-mascot img { width: 140px; height: auto; animation: cc-float 4s ease-in-out infinite; }
.cc-mascot__name { font-weight: 800; color: var(--cc-text-muted); font-size: 0.9rem; }

/* ---------------------------------------------------------------------
   15. EMPTY / ERROR STATES
   --------------------------------------------------------------------- */
.cc-empty-state, .cc-error-state {
    text-align: center;
    padding: var(--cc-space-6) var(--cc-space-3);
    max-width: 420px;
    margin-inline: auto;
}

.cc-empty-state__icon, .cc-error-state__icon { font-size: 3rem; margin-bottom: var(--cc-space-2); }
.cc-empty-state__title, .cc-error-state__title { font-size: 1.3rem; font-weight: 800; margin-bottom: var(--cc-space-1); }

/* ---------------------------------------------------------------------
   16. FORMS
   --------------------------------------------------------------------- */
.cc-field {
    width: 100%;
    padding: 14px 18px;
    border-radius: var(--cc-radius-md);
    border: 2px solid var(--cc-border);
    background: var(--cc-surface);
    font-size: 1rem;
    transition: border-color var(--cc-duration-base) ease;
}
.cc-field:focus { outline: none; border-color: var(--cc-blue); }
label.cc-label { font-weight: 700; display: block; margin-bottom: 6px; }

/* ---------------------------------------------------------------------
   17. DASHBOARD (Parent / Teacher)
   --------------------------------------------------------------------- */
body.cc-mode-parent, body.cc-mode-teacher {
    --cc-fs-hero: clamp(1.8rem, 3.6vw, 2.6rem);
}

.cc-stat-card {
    background: var(--cc-surface);
    border-radius: var(--cc-radius-md);
    border: 1px solid var(--cc-border);
    padding: var(--cc-space-4);
}
.cc-stat-card__value { font-size: 1.8rem; font-weight: 800; }
.cc-stat-card__label { color: var(--cc-text-muted); font-size: 0.85rem; }

.cc-dashboard-grid { display: grid; gap: var(--cc-space-4); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

/* ---------------------------------------------------------------------
   18. FOOTER
   --------------------------------------------------------------------- */
.cc-site-footer {
    background: var(--cc-dark);
    color: #f4f7f5;
    padding-block: var(--cc-space-6);
    margin-top: var(--cc-space-6);
}

.cc-site-footer a { opacity: 0.85; }
.cc-site-footer a:hover { opacity: 1; }
.cc-footer-widgets { display: grid; gap: var(--cc-space-5); grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin-bottom: var(--cc-space-4); }
.cc-footer-bottom { border-top: 1px solid rgba(255,255,255,0.15); padding-top: var(--cc-space-3); font-size: 0.85rem; opacity: 0.7; text-align: center; }

/* ---------------------------------------------------------------------
   19. WOOCOMMERCE — see inc/woo-style.css for full ruleset
   --------------------------------------------------------------------- */
@import url('inc/woo-style.css');

/* ---------------------------------------------------------------------
   20. ANIMATIONS
   --------------------------------------------------------------------- */
@keyframes cc-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}
@keyframes cc-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-14px); }
}
@keyframes cc-pop {
    0% { transform: scale(0.85); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}
@keyframes cc-wiggle {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(-4deg); }
    75% { transform: rotate(4deg); }
}
@keyframes cc-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(200,245,0,0.5); }
    50% { box-shadow: 0 0 0 10px rgba(200,245,0,0); }
}
@keyframes cc-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-6px); }
    75% { transform: translateX(6px); }
}
@keyframes cc-slide-up {
    0% { transform: translateY(20px); opacity: 0; }
    100% { transform: translateY(0); opacity: 1; }
}
@keyframes cc-fade-in {
    0% { opacity: 0; }
    100% { opacity: 1; }
}
@keyframes cc-celebrate {
    0% { transform: scale(1) rotate(0); }
    30% { transform: scale(1.15) rotate(-6deg); }
    60% { transform: scale(1.1) rotate(6deg); }
    100% { transform: scale(1) rotate(0); }
}
@keyframes cc-ripple {
    to { transform: scale(3); opacity: 0; }
}

.cc-anim-float { animation: cc-float 4s ease-in-out infinite; }
.cc-anim-bounce { animation: cc-bounce 1.4s ease-in-out infinite; }
.cc-anim-wiggle:hover { animation: cc-wiggle 0.4s ease-in-out; }
.cc-anim-celebrate { animation: cc-celebrate 0.6s ease-in-out; }
.cc-anim-slide-up { animation: cc-slide-up var(--cc-duration-slow) ease both; }
.cc-anim-fade-in { animation: cc-fade-in var(--cc-duration-slow) ease both; }

/* ---------------------------------------------------------------------
   21. RESPONSIVE
   --------------------------------------------------------------------- */
@media (max-width: 1024px) {
    .cc-grid-4 { grid-template-columns: repeat(2, 1fr); }
    .cc-grid-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .cc-primary-nav { display: none; }
    .cc-bottom-nav { display: block; }
    body { padding-bottom: calc(var(--cc-bottom-nav-height) + var(--cc-space-3)); }
    .cc-grid-2, .cc-grid-3, .cc-grid-4 { grid-template-columns: 1fr; }
    .cc-hero { margin: var(--cc-space-2); padding: var(--cc-space-5) var(--cc-space-3); }
}

@media (max-width: 480px) {
    .cc-btn { padding: 14px 22px; font-size: 1rem; }
    .cc-btn-large { padding: 16px 28px; }
}

/* ---------------------------------------------------------------------
   22. RTL
   --------------------------------------------------------------------- */
html[dir="rtl"] body {
    font-family: 'Cairo', 'Baloo 2', Tahoma, sans-serif;
}

html[dir="rtl"] .cc-lesson-card__badge,
html[dir="rtl"] .cc-hero-decor {
    /* logical properties above (inset-inline-*) already flip correctly;
       this block is reserved for any RTL-specific fine-tuning per component */
}

html[dir="rtl"] .cc-btn .cc-btn-icon-inner {
    transform: none;
}
html[dir="rtl"] .cc-btn:hover .cc-btn-icon-inner {
    transform: translateX(-3px) rotate(8deg);
}

/* ---------------------------------------------------------------------
   23. ACCESSIBILITY & REDUCED MOTION
   --------------------------------------------------------------------- */
:focus-visible {
    outline: 3px solid var(--cc-blue-dark);
    outline-offset: 2px;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    white-space: nowrap;
}

.cc-skip-link {
    position: absolute;
    top: -60px;
    left: 8px;
    background: var(--cc-dark);
    color: #fff;
    padding: 10px 18px;
    border-radius: var(--cc-radius-sm);
    z-index: 999;
    transition: top var(--cc-duration-base) ease;
}
.cc-skip-link:focus { top: 8px; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
}

body.cc-reduced-motion *,
body.cc-animations-off * {
    animation: none !important;
    transition: none !important;
}
