/* ===================================================================
   CADETPRO — /classes (courses listing) redesign
   Aviation · nude (aubergine #2c2749 + clay) · light + dark
   Consistent with the course detail redesign. Scoped under .cp-classes
   =================================================================== */

/* ---------- tokens (light) ---------- */
.cp-classes{
  --primary:#2c2749; --primary-hover:#3a3460; --primary-border:#2c2749; --primary-saturated:#4a4270;
  --accent:#bf6a50; --accent-hover:#a4563d; --accent-border:#bf6a50;
  --cp-bg:#faf7f2; --cp-soft:#f4efe6; --cp-tint:#efe8dd; --cp-panel:#ffffff; --cp-panel2:#faf6f0;
  --cp-line:#ece4d7; --cp-line2:#ddd3c3;
  --cp-head:#2a2442; --cp-text:#5d564c; --cp-muted:#8c8474; --cp-muted2:#b4ab9c;
  --cp-prim:#2c2749; --cp-prim-soft:#f1ebe0; --cp-prim-line:#e2dac9;
  --cp-accent:#bf6a50; --cp-accent-soft:#f4e6df;
  --cp-green:#6e9479; --cp-green-soft:#e8efe6; --cp-gold:#c79a4d; --cp-cta-fg:#ffffff;
  --cp-sh-sm:0 4px 14px -6px rgba(74,58,42,.16);
  --cp-sh:0 18px 44px -22px rgba(60,46,34,.26);
  --cp-sh-lg:0 30px 64px -30px rgba(60,46,34,.32);
  --cp-r:16px; --cp-r-lg:22px;
  font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--cp-text);
}
.cp-classes.cp-dark{
  --primary:#a99ad6; --primary-hover:#bcafe2; --primary-border:#a99ad6; --primary-saturated:#a99ad6;
  --accent:#cf8268; --accent-hover:#dd9077; --accent-border:#cf8268;
  --cp-bg:#19152a; --cp-soft:#1f1a33; --cp-tint:#241e3a; --cp-panel:#221c3a; --cp-panel2:#292243;
  --cp-line:rgba(204,189,214,.12); --cp-line2:rgba(204,189,214,.22);
  --cp-head:#f1ece2; --cp-text:#c9bfb1; --cp-muted:#988f80; --cp-muted2:#6d6557;
  --cp-prim:#a99ad6; --cp-prim-soft:rgba(169,154,214,.13); --cp-prim-line:rgba(169,154,214,.26);
  --cp-accent:#cf8268; --cp-accent-soft:rgba(207,130,104,.16);
  --cp-green:#6fae87; --cp-green-soft:rgba(111,174,135,.14); --cp-gold:#d3aa5e; --cp-cta-fg:#1d1830;
  --cp-sh-sm:0 4px 16px -8px rgba(0,0,0,.5);
  --cp-sh:0 22px 50px -24px rgba(0,0,0,.6);
  --cp-sh-lg:0 30px 64px -28px rgba(0,0,0,.72);
}
body.cp-dark{ background:#19152a !important; }
.cp-classes h1,.cp-classes h2,.cp-classes h3,.cp-classes h4,.cp-classes h5{ color:var(--cp-head); letter-spacing:-.02em; }
.cp-classes .text-dark,.cp-classes .text-dark-blue{ color:var(--cp-head) !important; }
.cp-classes .text-primary{ color:var(--cp-prim) !important; }
.cp-classes .text-gray-500,.cp-classes .text-gray-400,.cp-classes .text-gray{ color:var(--cp-muted) !important; }

/* dark: beat theme forced-white */
.cp-classes.cp-dark .bg-white,
.cp-classes.cp-dark .bg-gray-100,
.cp-classes.cp-dark .bg-gray-200,
.cp-classes.cp-dark .bg-section-bg{ background-color:var(--cp-panel) !important; }
.cp-classes.cp-dark .bg-gray-100{ background-color:var(--cp-soft) !important; }
.cp-classes.cp-dark .border-gray-100,
.cp-classes.cp-dark .border-bottom-gray-100,
.cp-classes.cp-dark .border-gray-200{ border-color:var(--cp-line) !important; }

/* =================== HERO + HEADER =================== */
.cp-classes .courses-lists-hero{ height:260px; border-radius:0 0 36px 36px; overflow:hidden;
  background:linear-gradient(135deg,#2c2749 0%,#3c2f55 45%,#7a4a52 110%); }
.cp-classes.cp-dark .courses-lists-hero{ background:linear-gradient(135deg,#1c1730 0%,#2a2348 50%,#5e3f50 120%); }
.cp-classes .courses-lists-hero img{ display:none; }
.cp-classes .courses-lists-hero__mask{ position:absolute; inset:0;
  background:radial-gradient(700px 280px at 80% -10%, rgba(191,106,80,.30), transparent 70%),
             radial-gradient(520px 320px at 8% 120%, rgba(169,154,214,.22), transparent 70%); }
/* subtle horizon line */
.cp-classes .courses-lists-hero::after{ content:""; position:absolute; left:0; right:0; top:55%; height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent); }

.cp-classes .courses-lists-header__mask{ display:none; }
.cp-classes .courses-lists-header > .bg-white{ background:var(--cp-panel) !important; border:1px solid var(--cp-line);
  border-radius:var(--cp-r-lg) !important; box-shadow:var(--cp-sh); overflow:hidden; }
.cp-classes .courses-lists-header .bg-primary-30{ background:var(--cp-prim-soft) !important; border:1px solid var(--cp-prim-line); }
.cp-classes .courses-lists-header .bg-primary-30 .icons{ color:var(--cp-prim) !important; }
.cp-classes.cp-dark .courses-lists-header .bg-primary-30 .icons{ color:#cabbf0 !important; }
.cp-classes .courses-lists-header h1{ font-size:34px !important; font-weight:800; color:var(--cp-head); }
.cp-classes .courses-lists-header > .bg-white{ align-items:center !important; }
/* aviation illustration (replaces generic 3D image) */
.cp-classes .cp-hero-illustration{ position:relative !important; top:auto !important; right:auto !important; bottom:auto !important;
  left:auto !important; width:auto !important; height:auto !important; transform:none !important;
  align-self:center; margin:0 36px 0 auto; display:flex; align-items:center; justify-content:center;
  min-width:300px; color:var(--cp-prim); }
.cp-classes.cp-dark .cp-hero-illustration{ color:#a99ad6; }
.cp-classes .cp-illu-bg{ width:300px; height:206px; display:block; }
.cp-classes .cp-illu-accent{ fill:var(--cp-accent); }
.cp-classes .cp-illu-plane{ position:absolute; right:30px; top:40px; transform:rotate(-32deg); color:var(--cp-prim) !important; opacity:.94; }
.cp-classes.cp-dark .cp-illu-plane{ color:#bcafe2 !important; }
@media(max-width:991px){ .cp-classes .cp-hero-illustration{ display:none !important; } }

/* =================== TOP FILTER BAR =================== */
.cp-classes .courses-lists-filters__mask{ display:none; }
.cp-classes .courses-lists-filters > .bg-white{ background:var(--cp-panel) !important; border:1px solid var(--cp-line);
  border-radius:18px !important; box-shadow:var(--cp-sh-sm); }
/* toggle switches -> aubergine when on */
.cp-classes .custom-control-input:checked ~ .custom-control-label::before,
.cp-classes .custom-switch .custom-control-input:checked ~ .custom-control-label::before{
  background-color:var(--cp-prim) !important; border-color:var(--cp-prim) !important; }
.cp-classes .custom-switch label{ color:var(--cp-text); font-weight:600; }
/* sort select */
.cp-classes .courses-lists-sort-input .form-control,
.cp-classes .select2-container--default .select2-selection--single{ border:1px solid var(--cp-line2) !important;
  border-radius:11px !important; background:var(--cp-panel) !important; color:var(--cp-head) !important; }
/* grid/list view toggle */
.cp-classes .courses-lists-card-view label{ border:1px solid var(--cp-line2); border-radius:11px; color:var(--cp-muted); transition:.2s; }
.cp-classes .courses-lists-card-view input:checked ~ label{ background:var(--cp-prim-soft); color:var(--cp-prim); border-color:var(--cp-prim-line); }
.cp-classes.cp-dark .courses-lists-card-view input:checked ~ label{ color:#cabbf0; }

/* =================== LEFT FILTERS =================== */
.cp-classes #leftFiltersAccordion{ background:var(--cp-panel) !important; border:1px solid var(--cp-line);
  border-radius:var(--cp-r-lg) !important; box-shadow:var(--cp-sh-sm); }
.cp-classes #leftFiltersAccordion .accordion__title .font-weight-bold{ color:var(--cp-head) !important; font-weight:700; }
.cp-classes .card-before-line::before,.cp-classes .card-before-line__4-12::before{ background:var(--cp-accent) !important; }
.cp-classes #leftFiltersAccordion .custom-control__label{ color:var(--cp-text); }
/* checkboxes / radios checked -> aubergine */
.cp-classes .custom-checkbox .custom-control-input:checked ~ .custom-control__label::before,
.cp-classes .custom-radio .custom-control-input:checked ~ .custom-control__label::before{
  background-color:var(--cp-prim) !important; border-color:var(--cp-prim) !important; }
.cp-classes .form-group-label{ color:var(--cp-muted); font-weight:600; }
.cp-classes .input-xs{ border:1px solid var(--cp-line2) !important; border-radius:9px !important; background:var(--cp-soft) !important; color:var(--cp-head) !important; }
/* price range slider (wrunner) -> aubergine */
.cp-classes .course-list-price-range [class*="connect"],
.cp-classes .course-list-price-range [class*="-bar"]{ background-color:var(--cp-prim) !important; }
.cp-classes .course-list-price-range [class*="handle"],
.cp-classes .course-list-price-range [class*="grip"]{ background-color:var(--cp-prim) !important; border-color:var(--cp-prim) !important; box-shadow:0 2px 6px -2px var(--cp-prim) !important; }

/* =================== COURSE CARDS =================== */
.cp-classes .course-grid-card-1{ background:var(--cp-panel) !important; border:1px solid var(--cp-line) !important;
  border-radius:20px !important; box-shadow:var(--cp-sh-sm) !important; overflow:hidden;
  transition:transform .32s cubic-bezier(.4,0,.2,1), box-shadow .32s, border-color .32s; }
.cp-classes .course-grid-card-1:hover{ transform:translateY(-7px); box-shadow:var(--cp-sh) !important; border-color:var(--cp-prim-line) !important; }
.cp-classes .course-grid-card-1__image{ overflow:hidden; background:var(--cp-soft) !important; }
.cp-classes .course-grid-card-1__image img{ transition:transform .5s cubic-bezier(.2,.6,.2,1); }
.cp-classes .course-grid-card-1:hover .course-grid-card-1__image img{ transform:scale(1.06); }
/* PRO badge -> nude aubergine */
.cp-classes .course-grid-card-1 .badge{ background-color:var(--cp-prim-soft) !important; color:var(--cp-prim) !important;
  border:1px solid var(--cp-prim-line); letter-spacing:.06em; }
.cp-classes.cp-dark .course-grid-card-1 .badge{ color:#cabbf0 !important; }
/* discount badge stays clay (theme bg-accent already remapped via --accent) */
.cp-classes .course-grid-card-1 .bg-accent{ background:var(--cp-accent) !important; }
/* FREE badge -> sage */
.cp-classes .course-grid-card-1 [style*="#f0fdf4"]{ background:var(--cp-green-soft) !important; color:var(--cp-green) !important; border-color:transparent !important; }
.cp-classes .course-grid-card-1 [style*="#16a34a"]{ color:var(--cp-green) !important; }
/* title */
.cp-classes .course-grid-card-1__title a{ color:var(--cp-head) !important; }
.cp-classes .course-grid-card-1__title a:hover{ color:var(--cp-accent) !important; }
/* description */
.cp-classes .course-grid-card-1 .course-description{ color:var(--cp-muted) !important; }
/* separator */
.cp-classes .course-grid-card-1__separator{ height:1px; background:var(--cp-line) !important; }
/* price (override inline #121F3E / #ffffff) */
.cp-classes .course-grid-card-1__price span,
.cp-classes .course-grid-card-1__price [style*="#121F3E"]{ color:var(--cp-head) !important; font-weight:800 !important; }
/* arrow action button (override inline #94a3b8 / #6366f1) -> clay, keep take-off hover */
.cp-classes .course-grid-card-1 .card-action-btn{ color:var(--cp-accent) !important; }
.cp-classes .course-grid-card-1 .card-action-btn svg{ color:var(--cp-accent) !important; }
.cp-classes .course-grid-card-1 .card-action-btn:hover svg{ color:var(--cp-prim) !important; }

/* =================== PAGINATION =================== */
.cp-classes .js-ajax-pagination .page-item.active .page-link,
.cp-classes .js-ajax-pagination .active a,
.cp-classes .js-ajax-pagination [class*="active"] a{ background:var(--cp-prim) !important; border-color:var(--cp-prim) !important; color:#fff !important; }
.cp-classes .js-ajax-pagination a{ color:var(--cp-head) !important; border-radius:10px !important; }
.cp-classes .js-ajax-pagination a:hover{ color:var(--cp-accent) !important; }

/* =================== SEO content box =================== */
.cp-classes section.bg-gray-100{ background:var(--cp-soft) !important; border:1px solid var(--cp-line) !important; border-radius:var(--cp-r-lg) !important; }

/* =================== theme toggle (fixed) =================== */
.cp-theme-toggle{ position:fixed; right:18px; bottom:18px; z-index:60; width:46px; height:46px; border-radius:50%;
  background:#ffffff; border:1px solid #ddd3c3; color:#2a2442; display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 14px 34px -14px rgba(60,46,34,.4); transition:.25s; }
.cp-theme-toggle:hover{ color:#bf6a50; border-color:#bf6a50; transform:translateY(-2px); }
.cp-theme-toggle svg{ width:20px; height:20px; }
body.cp-dark .cp-theme-toggle{ background:#221c3a; border-color:rgba(204,189,214,.24); color:#f1ece2; }
body.cp-dark .cp-theme-toggle:hover{ color:#cf8268; border-color:#cf8268; }
.cp-theme-toggle .cp-moon{ display:none; } body.cp-dark .cp-theme-toggle .cp-moon{ display:block; }
body.cp-dark .cp-theme-toggle .cp-sun{ display:none; }
