/* CIDEC UI V2. Shared components are explicit; the pilot is scoped to .cidec-home.
   Keep legacy CSS and functional hooks. See docs/design/CIDEC_DESIGN_SYSTEM_V2.md. */
:root {
  --cidec-navy-950: #071A2E;
  --cidec-navy-900: #0B2239;
  --cidec-navy-800: #123B56;
  --cidec-gold: #F2B824;
  --cidec-gold-hover: #D99A10;
  --cidec-gold-soft: #FFF4D4;
  --cidec-teal: #0B7A75;
  --cidec-teal-hover: #075E59;
  --cidec-teal-soft: #E6F4F2;
  --cidec-bg: #F7F9FC;
  --cidec-surface: #FFFFFF;
  --cidec-surface-muted: #F1F5F8;
  --cidec-text: #0F2134;
  --cidec-text-muted: #607080;
  --cidec-text-inverse: #FFFFFF;
  --cidec-border: #DCE4EA;
  --cidec-success: #2F855A;
  --cidec-warning: #C58400;
  --cidec-danger: #B42318;
  --cidec-shadow-sm: 0 2px 8px rgba(7,26,46,.06);
  --cidec-shadow-md: 0 8px 24px rgba(7,26,46,.09);
  --cidec-shadow-lg: 0 18px 48px rgba(7,26,46,.13);
  --cidec-radius-sm: 8px;
  --cidec-radius-md: 12px;
  --cidec-radius-lg: 18px;
  --cidec-radius-xl: 24px;
  --cidec-transition-fast: 160ms ease;
  --cidec-transition-normal: 220ms ease;
}

/* Shared header: keep the theme's 1200px menu breakpoint and existing JS. */
.cidec-v2-header {
  --background-color: var(--cidec-navy-950);
  --heading-color: var(--cidec-text-inverse);
  --default-color: var(--cidec-text-inverse);
  --accent-color: var(--cidec-teal);
  --nav-color: var(--cidec-text-inverse);
  --nav-hover-color: var(--cidec-gold);
  --nav-mobile-background-color: var(--cidec-surface);
  --nav-dropdown-background-color: var(--cidec-surface);
  --nav-dropdown-color: var(--cidec-text);
  --nav-dropdown-hover-color: var(--cidec-teal);
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,.12);
  transition: box-shadow var(--cidec-transition-normal);
}
.cidec-v2-header .logo { gap: 5px; }
.cidec-v2-header .logo h1 {
  display: flex;
  align-items: center;
  gap: 10px;
  font: 700 32px/1 Georgia, "Times New Roman", serif;
  letter-spacing: .08em;
}
.cidec-v2-header .cidec-brand-mark { color: var(--cidec-gold); font-size: 34px; }
.cidec-v2-header .tagline { font-size: 9px; line-height: 1.4; letter-spacing: .02em; margin: 0; }
.cidec-v2-header .navmenu > ul > li > a { min-height: 44px; font-weight: 600; }
.cidec-v2-header .navmenu > ul > li > a::before { bottom: 0; background: var(--cidec-gold); }
.cidec-v2-header .navmenu .auth-btn {
  min-height: 44px;
  padding: 10px 16px;
  border-radius: var(--cidec-radius-sm);
  gap: 8px;
  font-weight: 600;
  transition: background var(--cidec-transition-fast), transform var(--cidec-transition-fast);
}
.cidec-v2-header .navmenu .auth-btn::before { content: none; }
.cidec-v2-header .navmenu .auth-login { background: transparent; border-color: rgba(255,255,255,.7); }
.cidec-v2-header .navmenu .auth-login:hover { background: rgba(255,255,255,.1); }
.cidec-v2-header .navmenu .auth-register {
  /* Legacy .auth-register and :hover both set text color with !important. */
  color: var(--cidec-navy-950) !important;
  background: var(--cidec-gold);
  border-color: var(--cidec-gold);
  box-shadow: none;
}
.cidec-v2-header .navmenu .auth-register:hover { background: var(--cidec-gold-hover); border-color: var(--cidec-gold-hover); }
.cidec-v2-header .user-avatar { color: var(--cidec-navy-950); background: var(--cidec-gold); }
.cidec-v2-header .navmenu .user-submenu { border-color: var(--cidec-border); box-shadow: var(--cidec-shadow-lg); }
.cidec-v2-header .navmenu .user-submenu .text-danger { color: var(--cidec-danger) !important; } /* Bootstrap utility. */
.cidec-v2-header .mobile-nav-toggle {
  min-width: 44px;
  min-height: 44px;
  margin-right: 0;
  color: var(--cidec-text-inverse);
  background: transparent;
  border: 1px solid rgba(255,255,255,.4);
  border-radius: var(--cidec-radius-sm);
  font-size: 26px;
  line-height: 1;
}
.cidec-v2-header :is(a, button):focus-visible {
  outline: 3px solid var(--cidec-gold);
  outline-offset: 4px;
  border-radius: var(--cidec-radius-sm);
}
@media (min-width: 1200px) {
  .cidec-v2-header .navmenu > ul > li { padding: 0 10px; }
  .cidec-v2-header .navmenu .dropdown:focus-within > ul { opacity: 1; top: 100%; visibility: visible; }
  .cidec-v2-header .navmenu .user-submenu a:focus-visible { outline-color: var(--cidec-teal); outline-offset: 0; }
}
@media (max-width: 1199px) {
  .mobile-nav-active .cidec-v2-header .navmenu { background: rgba(7,26,46,.88); }
  .cidec-v2-header .navmenu > ul { border-radius: var(--cidec-radius-lg); padding: 16px; }
  .cidec-v2-header .navmenu > ul > li > a { border-radius: var(--cidec-radius-sm); padding: 12px; }
  .cidec-v2-header .navmenu .active { color: var(--cidec-navy-950); background: var(--cidec-gold-soft); }
  .cidec-v2-header .navmenu .cidec-mobile-login { margin-top: 12px; border: 1px solid var(--cidec-border); }
  .cidec-v2-header .navmenu .cidec-mobile-register { margin-top: 8px; color: var(--cidec-navy-950); background: var(--cidec-gold); }
  .cidec-v2-header .navmenu a:focus-visible { outline-color: var(--cidec-teal); outline-offset: 0; }
  .cidec-v2-header .navmenu a i { line-height: 1; }
}

/* Shared footer and scroll control. WhatsApp keeps its existing brand styling. */
.cidec-v2-footer {
  --background-color: var(--cidec-navy-950);
  --default-color: var(--cidec-text-inverse);
  --heading-color: var(--cidec-text-inverse);
  --accent-color: var(--cidec-gold);
  --surface-color: var(--cidec-navy-800);
  padding-bottom: 24px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.cidec-v2-footer .footer-top { padding-top: 44px; }
.cidec-v2-footer .logo { gap: 10px; width: fit-content; }
.cidec-v2-footer .logo .sitename { font-family: Georgia, "Times New Roman", serif; letter-spacing: .06em; }
.cidec-v2-footer .cidec-brand-mark { font-size: 38px; color: var(--cidec-gold); }
.cidec-v2-footer .footer-about p { max-width: 42ch; line-height: 1.75; color: #CDD8E3; }
.cidec-v2-footer h4 { font-size: 15px; font-weight: 700; }
.cidec-v2-footer .footer-links ul li { padding: 0; }
.cidec-v2-footer .footer-links ul a { display: inline-flex; align-items: center; min-height: 36px; color: #CDD8E3; }
.cidec-v2-footer a:hover { color: var(--cidec-gold); }
.cidec-v2-footer .social-links a { width: 44px; height: 44px; color: var(--cidec-text-inverse); border-color: rgba(255,255,255,.3); border-radius: var(--cidec-radius-sm); }
.cidec-v2-footer .social-links a:hover { color: var(--cidec-gold); border-color: var(--cidec-gold); }
.cidec-v2-footer .footer-contact p { line-height: 1.7; }
.cidec-v2-footer .copyright { background: transparent; border-top: 1px solid rgba(255,255,255,.14); padding-top: 24px; }
.cidec-v2-footer :is(a, button):focus-visible { outline: 3px solid var(--cidec-gold); outline-offset: 3px; }
.cidec-v2-scroll-top { width: 44px; height: 44px; color: var(--cidec-navy-950); background: var(--cidec-gold); border-radius: var(--cidec-radius-md); }
.cidec-v2-scroll-top:hover { color: var(--cidec-navy-950); background: var(--cidec-gold-hover); }
.cidec-v2-scroll-top:focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; }

/* Home pilot only. Do not promote these aliases to :root. */
.cidec-home {
  --background-color: var(--cidec-bg);
  --surface-color: var(--cidec-surface);
  --default-color: var(--cidec-text);
  --heading-color: var(--cidec-navy-950);
  --accent-color: var(--cidec-teal);
  color: var(--cidec-text);
  background: var(--cidec-bg);
}
.cidec-home .main { background: var(--cidec-bg); overflow-x: clip; } /* Contain inherited offscreen AOS fades without a scroll container. */
.cidec-home .section { padding: 48px 0; }
.cidec-home .section-title { text-align: left; padding-bottom: 28px; }
.cidec-home .section-title h2,
.cidec-home .cidec-home-section-label { font: 700 clamp(1.6rem, 2.6vw, 2.25rem)/1.2 Georgia, "Times New Roman", serif; color: var(--cidec-navy-950); margin: 0 0 12px; }
.cidec-home .section-title h2::before { background: var(--cidec-gold); }
.cidec-home .section-title h2::after { content: none; }
.cidec-home .section-title p { color: var(--cidec-text-muted); }
.cidec-home .main :is(a, button, input, select):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 4px; }
.cidec-home [data-aos]:focus-within { opacity: 1; transform: none; transition: none; }
.cidec-home .courses-hero {
  --background-color: var(--cidec-navy-950);
  --heading-color: var(--cidec-text-inverse);
  --default-color: var(--cidec-text-inverse);
  min-height: 0;
  padding: 56px 0;
  background: linear-gradient(110deg, var(--cidec-navy-950), var(--cidec-navy-800));
}
.cidec-home .courses-hero .row { --bs-gutter-x: 3rem; --bs-gutter-y: 2rem; }
.cidec-home .courses-hero .hero-text h1 { color: var(--cidec-text-inverse); font: 700 clamp(2.1rem, 3.5vw, 3.2rem)/1.1 Georgia, "Times New Roman", serif; margin-bottom: 22px; }
.cidec-home .cidec-title-highlight { color: var(--cidec-gold); }
.cidec-home .courses-hero .hero-text p { color: #DAE4ED; font-size: 1rem; line-height: 1.7; margin-bottom: 28px; }
.cidec-home .courses-hero .hero-buttons { margin-bottom: 32px; gap: 12px; flex-wrap: wrap; }
.cidec-home .courses-hero .hero-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cidec-home .courses-hero .hero-features .feature { align-items: flex-start; gap: 10px; }
.cidec-home .courses-hero .hero-features .feature i { font-size: 24px; color: var(--cidec-gold); }
.cidec-home .courses-hero .hero-features .feature span { color: var(--cidec-text-inverse); font-size: .8rem; line-height: 1.5; }
.cidec-home #heroCarousel { border: 1px solid rgba(255,255,255,.18); background: var(--cidec-navy-900); box-shadow: var(--cidec-shadow-lg); }
.cidec-home #heroCarousel .carousel-item img { height: clamp(280px, 32vw, 440px); object-fit: contain; }
.cidec-home #heroCarousel :is(.carousel-control-prev, .carousel-control-next) { width: 44px; min-height: 44px; opacity: .9; }
.cidec-home #heroCarousel .carousel-indicators button { min-width: 44px; min-height: 4px; padding: 10px 0; background-color: var(--cidec-gold); background-clip: content-box; } /* Slim bars with 44px touch targets, including Bootstrap's transparent borders. */
.cidec-home #heroCarousel .carousel-indicators { margin: 0 10% 8px; padding: 0 8px; background: rgba(7,26,46,.7); border-radius: var(--cidec-radius-sm); }
.cidec-home .courses-hero .hero-background { display: none; } /* Decorative legacy shapes, not controls. */
.cidec-home .courses-hero :is(a, button):focus-visible,
.cidec-home .cta :is(a, button):focus-visible { outline-color: var(--cidec-gold); }

/* Existing counters and categories, reorganized without changing their hooks/data. */
.cidec-home .cidec-home-metrics { padding: 24px 0; background: var(--cidec-surface-muted); border-bottom: 1px solid var(--cidec-border); }
.cidec-home .cidec-home-metrics .hero-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.cidec-home .cidec-home-metrics .stat-item { display: flex; align-items: center; justify-content: center; gap: 16px; }
.cidec-home .cidec-home-metrics .stat-item + .stat-item { border-left: 1px solid var(--cidec-border); }
.cidec-home .cidec-home-metrics .stat-item > i { font-size: 32px; color: var(--cidec-navy-800); }
.cidec-home .cidec-home-metrics .number { display: block; color: var(--cidec-teal); font-size: 1.75rem; font-weight: 700; line-height: 1.2; }
.cidec-home .cidec-home-metrics .label { color: var(--cidec-text-muted); font-size: .8rem; }
.cidec-home .cidec-home-categories { padding: 36px 0 0; background: var(--cidec-bg); }
.cidec-home .cidec-home-categories .floating-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.cidec-home .cidec-home-categories .course-card { display: flex; align-items: center; gap: 14px; min-width: 0; padding: 20px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-md); box-shadow: var(--cidec-shadow-sm); pointer-events: auto; transition: border-color var(--cidec-transition-fast), box-shadow var(--cidec-transition-fast); }
.cidec-home .cidec-home-categories .course-card:hover { border-color: var(--cidec-teal); box-shadow: var(--cidec-shadow-md); }
.cidec-home .cidec-home-categories .card-icon { flex-shrink: 0; width: 48px; height: 48px; display: grid; place-items: center; font-size: 24px; color: var(--cidec-teal); background: var(--cidec-teal-soft); border-radius: var(--cidec-radius-md); }
.cidec-home .cidec-home-categories h6 { color: var(--cidec-navy-950); font-size: 1rem; font-weight: 700; margin: 0 0 4px; }
.cidec-home .cidec-home-categories .card-content span { color: var(--cidec-text-muted); font-size: .78rem; }
.cidec-home .cidec-home-categories .course-card > .bi-arrow-right { margin-left: auto; color: var(--cidec-teal); }

/* Home buttons: exploration TEAL, commercial GOLD; keep functional classes. */
.cidec-home .courses-hero .hero-buttons .btn,
.cidec-home .featured-courses .btn-course,
.cidec-home .featured-courses .more-courses .btn-more,
.cidec-home .featured-instructors .action-buttons .btn-view,
.cidec-home .cta .cta-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 11px 22px;
  border: 1px solid var(--cidec-teal);
  border-radius: var(--cidec-radius-md);
  background: var(--cidec-teal);
  color: var(--cidec-text-inverse);
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.35;
  transition: background var(--cidec-transition-fast), border-color var(--cidec-transition-fast), transform var(--cidec-transition-fast);
}
.cidec-home .courses-hero .hero-buttons .btn:hover,
.cidec-home .featured-courses .btn-course:hover,
.cidec-home .featured-courses .more-courses .btn-more:hover,
.cidec-home .featured-instructors .action-buttons .btn-view:hover,
.cidec-home .cta .cta-actions .btn:hover { background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); color: var(--cidec-text-inverse); transform: translateY(-1px); }
.cidec-home .courses-hero .hero-buttons .btn-outline { background: transparent; border-color: rgba(255,255,255,.7); color: var(--cidec-text-inverse); }
.cidec-home .courses-hero .hero-buttons .btn-outline:hover { background: rgba(255,255,255,.1); border-color: var(--cidec-text-inverse); }
.cidec-home .cta .cta-actions .btn-outline { background: var(--cidec-gold); border-color: var(--cidec-gold); color: var(--cidec-navy-950); }
.cidec-home .cta .cta-actions .btn-outline:hover { background: var(--cidec-gold-hover); border-color: var(--cidec-gold-hover); color: var(--cidec-navy-950); }

/* Real course cards, with no changes to selection, prices or enrollment states. */
.cidec-home .featured-courses .row { align-items: stretch; }
.cidec-home .featured-courses .course-card { height: 100%; display: flex; flex-direction: column; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); transition: box-shadow var(--cidec-transition-normal), border-color var(--cidec-transition-normal); }
.cidec-home .featured-courses .course-card:hover { transform: none; border-color: var(--cidec-teal); box-shadow: var(--cidec-shadow-md); }
.cidec-home .featured-courses .course-image img { height: 205px; object-fit: cover; }
.cidec-home .featured-courses .course-image:hover img { transform: none; }
.cidec-home .featured-courses .course-image .badge.featured { color: var(--cidec-navy-950); background: var(--cidec-gold-soft); border-radius: var(--cidec-radius-sm); }
.cidec-home .featured-courses .course-image .price-badge { color: var(--cidec-navy-950); background: var(--cidec-gold-soft); box-shadow: var(--cidec-shadow-sm); }
.cidec-home .featured-courses .course-image .price-badge.status-paid,
.cidec-home .featured-courses .course-image .price-badge.status-free { color: var(--cidec-success); background: var(--cidec-teal-soft); }
.cidec-home .featured-courses .course-image .price-badge.status-pending { color: var(--cidec-navy-950); background: var(--cidec-gold-soft); }
.cidec-home .featured-courses .course-content { flex: 1; display: flex; flex-direction: column; padding: 22px; }
.cidec-home .featured-courses .course-meta { flex-wrap: wrap; gap: 8px 12px; margin-bottom: 16px; font-size: .875rem; }
.cidec-home .featured-courses .course-meta span.level { color: var(--cidec-teal); background: var(--cidec-teal-soft); }
.cidec-home .featured-courses h3 { font-size: 1.125rem; line-height: 1.5; font-weight: 700; margin-bottom: 14px; overflow-wrap: anywhere; }
.cidec-home .featured-courses h3 a { color: var(--cidec-navy-950); }
.cidec-home .featured-courses h3 a:hover { color: var(--cidec-teal); }
.cidec-home .featured-courses p { color: var(--cidec-text-muted); line-height: 1.7; font-size: .9375rem; margin-bottom: 24px; }
.cidec-home .featured-courses .instructor { border-color: var(--cidec-border); margin-top: auto; padding: 18px 0; margin-bottom: 18px; }
.cidec-home .featured-courses .instructor a { min-width: 0; gap: 4px; }
.cidec-home .featured-courses .instructor-img { flex-shrink: 0; }
.cidec-home .featured-courses .instructor-info { min-width: 0; overflow-wrap: anywhere; }
.cidec-home .featured-courses .instructor-info h6 { font-size: .9375rem; line-height: 1.5; }
.cidec-home .featured-courses .instructor-info span { color: var(--cidec-text-muted); }
.cidec-home .featured-courses .course-stats { flex-wrap: wrap; gap: 12px; margin-bottom: 20px; font-size: .875rem; }
.cidec-home .featured-courses .course-stats .rating i { color: var(--cidec-warning); }
.cidec-home .featured-courses .course-stats .students i { color: var(--cidec-teal); }
.cidec-home .featured-courses .more-courses { margin-top: 28px; }

/* Instructors retain every real statistic and link. */
.cidec-home .featured-instructors { background: var(--cidec-surface-muted); }
.cidec-home .featured-instructors .instructor-card { height: 100%; display: flex; flex-direction: column; padding: 22px; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-home .featured-instructors .instructor-card:hover { transform: none; box-shadow: var(--cidec-shadow-md); }
.cidec-home .featured-instructors .instructor-image { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; gap: 10px; height: auto; overflow: visible; }
.cidec-home .featured-instructors .instructor-image img { width: 72px; height: 72px; object-fit: cover; border-radius: 50%; }
.cidec-home .featured-instructors .instructor-card:hover .instructor-image img { transform: none; }
.cidec-home .featured-instructors .instructor-image .overlay-content { position: static; display: block; opacity: 1; transform: none; background: transparent; padding: 0; color: var(--cidec-text-muted); }
.cidec-home .featured-instructors .instructor-image .rating-stars { color: var(--cidec-warning); font-size: .8125rem; flex-wrap: wrap; gap: 3px; padding: 4px 0; background: transparent; }
.cidec-home .featured-instructors .instructor-image .rating-stars span { color: var(--cidec-text); font-size: .8rem; }
.cidec-home .featured-instructors .instructor-image .course-count { position: static; color: var(--cidec-text-muted); background: transparent; padding: 4px 0; font-size: .8rem; border: 0; border-radius: 0; box-shadow: none; }
.cidec-home .featured-instructors .instructor-image .course-count i { color: var(--cidec-teal); }
.cidec-home .featured-instructors .instructor-info { flex: 1; display: flex; flex-direction: column; padding: 22px 0 0; min-width: 0; overflow-wrap: anywhere; }
.cidec-home .featured-instructors .instructor-info h5 { font-size: 1.0625rem; line-height: 1.5; margin-bottom: 10px; }
.cidec-home .featured-instructors .specialty { color: var(--cidec-teal); font-size: .9375rem; line-height: 1.6; margin-bottom: 12px; }
.cidec-home .featured-instructors .description { color: var(--cidec-text-muted); font-size: .9375rem; line-height: 1.7; margin-bottom: 22px; }
.cidec-home .featured-instructors .stats-grid { border-color: var(--cidec-border); margin-top: auto; margin-bottom: 20px; padding: 18px 0; }
.cidec-home .featured-instructors .stats-grid .stat .number { color: var(--cidec-navy-950); font-size: 1.2rem; }
.cidec-home .featured-instructors .stats-grid .stat .label { color: var(--cidec-text-muted); font-size: .8125rem; line-height: 1.5; }
.cidec-home .featured-instructors .action-buttons { flex-wrap: wrap; gap: 8px; }
.cidec-home .featured-instructors .action-buttons .btn-view { padding: 10px 14px; }
.cidec-home .featured-instructors .action-buttons .social-links a { width: 44px; height: 44px; background: var(--cidec-teal-soft); color: var(--cidec-teal); border-radius: var(--cidec-radius-sm); }
.cidec-home .featured-instructors .action-buttons .social-links a:hover { background: var(--cidec-teal); color: var(--cidec-text-inverse); }

/* Shared floating contact: one component and one position at every viewport.
   Leave a separate vertical slot for the existing scroll-to-top control. */
.cidec-v2-footer .cidec-whatsapp-label { display: none; }
.cidec-v2-footer .whatsapp-float {
  position: fixed;
  right: max(12px, env(safe-area-inset-right, 0px));
  bottom: calc(80px + env(safe-area-inset-bottom, 0px));
  width: 48px;
  height: 48px;
  /* Neutralize legacy white !important; retain the existing WhatsApp brand green. */
  color: var(--cidec-navy-950) !important;
  z-index: 996; /* Keep the shared mobile navigation above floating controls. */
}
.cidec-v2-footer .whatsapp-float:focus-visible { outline: 3px solid var(--cidec-gold); outline-offset: 4px; }
.cidec-v2-scroll-top { right: max(14px, env(safe-area-inset-right, 0px)); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 996; }
@media (max-width: 1439px) {
  /* These Home controls intersected the floating contact during the scroll check.
     Reserve only their right edge; retain full-width surfaces and existing content. */
  .cidec-home #heroCarousel,
  .cidec-home .cidec-home-categories .floating-cards { margin-right: 60px; }
  .cidec-home .featured-courses .course-content { padding-right: 54px; }
  .cidec-home .featured-instructors .instructor-info { padding-right: 32px; }
}
@media (max-width: 767px) {
  /* Keep footer links and copyright out of the shared floating-control rail. */
  .cidec-v2-footer :is(.footer-top, .copyright) { padding-right: 72px; }
}

/* Existing home CTA; preserve its content, illustration and counters. */
.cidec-home .cta { --background-color: var(--cidec-navy-950); --heading-color: var(--cidec-text-inverse); --default-color: var(--cidec-text-inverse); background: var(--cidec-navy-950); }
.cidec-home .cta::before { content: none; }
.cidec-home .cta .cta-content h2 { font: 700 clamp(1.8rem, 2.8vw, 2.4rem)/1.2 Georgia, "Times New Roman", serif; color: var(--cidec-text-inverse); }
.cidec-home .cta .cta-content p { color: #DAE4ED; }
.cidec-home .cta .features-list .feature-item i { color: var(--cidec-gold); }
.cidec-home .cta .features-list .feature-item span { color: var(--cidec-text-inverse); }
.cidec-home .cta .cta-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.cidec-home .cta .stats-row { gap: 16px; border-color: rgba(255,255,255,.2); }
.cidec-home .cta .stats-row .stat-item h3 { color: var(--cidec-gold); }
.cidec-home .cta .stats-row .stat-item p { color: #CDD8E3; }
.cidec-home .cta .cta-image img { border-radius: var(--cidec-radius-lg); box-shadow: none; }
.cidec-home .cta .cta-image .floating-element { position: static; display: inline-flex; vertical-align: top; width: calc(50% - 8px); margin-top: 16px; padding: 16px; animation: none; border-radius: var(--cidec-radius-md); background: var(--cidec-navy-800); border: 1px solid rgba(255,255,255,.16); box-shadow: none; }
.cidec-home .cta .cta-image .student-card { margin-right: 12px; }
.cidec-home .cta .cta-image .floating-element .card-content { gap: 10px; }
.cidec-home .cta .cta-image .floating-element .card-content i { color: var(--cidec-gold); font-size: 24px; }
.cidec-home .cta .cta-image .floating-element .card-content .text .number { color: var(--cidec-text-inverse); font-size: 1.15rem; }
.cidec-home .cta .cta-image .floating-element .card-content .text .label { color: #CDD8E3; font-size: .75rem; }

@media (max-width: 1199px) {
  .cidec-home .courses-hero { padding: 40px 0; }
  .cidec-home .courses-hero .row { --bs-gutter-x: 2rem; }
  .cidec-home .cidec-home-categories .course-card { padding: 16px; gap: 10px; }
}
@media (max-width: 991px) {
  .cidec-home .featured-instructors .row > .col-md-6 { width: 50%; }
  .cidec-home .courses-hero .hero-text { margin-bottom: 0; }
  .cidec-home #heroCarousel .carousel-item img { height: 380px; }
  .cidec-home .cidec-home-categories .floating-cards { gap: 12px; }
  .cidec-home .cidec-home-categories .course-card { flex-wrap: wrap; }
  .cidec-home .cidec-home-categories .card-content { flex: 1 1 130px; }
  .cidec-home .cta .cta-image { margin-top: 28px; }
}
@media (max-width: 767px) {
  .cidec-home .featured-instructors .row > .col-md-6 { width: 100%; }
  .cidec-home .section { padding: 36px 0; }
  .cidec-home .courses-hero { padding: 32px 0; text-align: left; }
  .cidec-home .courses-hero .hero-buttons { flex-direction: row; margin-bottom: 24px; }
  .cidec-home .courses-hero .hero-buttons .btn { flex: 1 1 140px; }
  .cidec-home .courses-hero .hero-features { gap: 12px; }
  .cidec-home .courses-hero .hero-features .feature { flex-direction: column; }
  .cidec-home #heroCarousel .carousel-item img { height: 290px; }
  .cidec-home .cidec-home-metrics { padding: 20px 0; }
  .cidec-home .cidec-home-metrics .hero-stats { gap: 12px; }
  .cidec-home .cidec-home-metrics .stat-item { flex-direction: column; align-items: flex-start; gap: 8px; padding-left: 10px; }
  .cidec-home .cidec-home-metrics .stat-item > i { font-size: 24px; }
  .cidec-home .cidec-home-metrics .number { font-size: 1.4rem; }
  .cidec-home .cidec-home-metrics .label { font-size: .7rem; line-height: 1.4; display: block; }
  .cidec-home .cidec-home-categories { padding-top: 28px; }
  .cidec-home .cidec-home-categories .floating-cards { grid-template-columns: 1fr; }
  .cidec-home .cidec-home-categories .course-card { flex-wrap: nowrap; }
  .cidec-home .featured-courses .course-image img { height: 220px; }
  .cidec-home .cta .stats-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cidec-home .cta .stats-row .stat-item h3 { font-size: 1.4rem; }
  .cidec-home .cta .stats-row .stat-item p { font-size: .7rem; }
  .cidec-v2-footer .footer-contact { text-align: left !important; } /* Existing Bootstrap text-center utility. */
}
@media (max-width: 359px) {
  .cidec-v2-header .tagline { font-size: 8px; }
  .cidec-home .cta .cta-image .floating-element { width: 100%; margin-right: 0; }
}
@media (prefers-reduced-motion: reduce) {
  /* Override inherited AOS/Bootstrap transforms and inline animation styles. */
  .cidec-home *, .cidec-home *::before, .cidec-home *::after,
  .cidec-v2-header *, .cidec-v2-footer *, .cidec-v2-scroll-top {
    animation: none !important;
    transition: none !important;
  }
  .cidec-home [data-aos] { opacity: 1 !important; transform: none !important; }
  .cidec-home .main :is(a, button):hover { transform: none; }
}


/* Nosotros V2 only. Keep the Home pilot and shared component rules above intact. */
.cidec-about {
  --background-color: var(--cidec-bg);
  --surface-color: var(--cidec-surface);
  --default-color: var(--cidec-text);
  --heading-color: var(--cidec-navy-950);
  --accent-color: var(--cidec-teal);
  color: var(--cidec-text);
  background: var(--cidec-bg);
}
.cidec-about .main { background: var(--cidec-bg); overflow-x: clip; }
.cidec-about .about { padding: 0 0 64px; }
.cidec-about .cidec-about-intro { margin-top: 0; position: relative; isolation: isolate; padding: 48px 0; --bs-gutter-x: 3rem; --bs-gutter-y: 2rem; }
.cidec-about .cidec-about-intro::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%); background: linear-gradient(115deg, var(--cidec-navy-950), var(--cidec-navy-800)); }
.cidec-about .cidec-about-story { order: 1; margin-top: 0; }
.cidec-about .cidec-about-visual { order: 2; margin-top: 0; }
.cidec-about .cidec-about-visual img { display: block; width: 100%; height: 400px; object-fit: cover; border: 1px solid rgba(255,255,255,.22); box-shadow: var(--cidec-shadow-lg); border-radius: var(--cidec-radius-xl); }
.cidec-about .about-content { padding: 0; }
.cidec-about .subtitle { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 14px; color: var(--cidec-teal); font-size: .75rem; font-weight: 700; letter-spacing: .08em; }
.cidec-about .subtitle::before { content: ""; flex: 0 0 28px; height: 3px; background: var(--cidec-gold); }
.cidec-about .about-content .subtitle { color: var(--cidec-gold); }
.cidec-about .about-content h2 { margin-bottom: 20px; color: var(--cidec-text-inverse); font: 700 clamp(2rem, 3.5vw, 3.15rem)/1.15 Georgia, "Times New Roman", serif; }
.cidec-about .cidec-about-highlight { color: var(--cidec-gold); }
.cidec-about .about-content p { max-width: 56ch; margin: 0; color: #DAE4ED; font-size: 1rem; line-height: 1.8; }
.cidec-about .cidec-about-values { --bs-gutter-y: 20px; }
.cidec-about .mission-card { padding: 28px; text-align: left; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); transition: transform var(--cidec-transition-normal), box-shadow var(--cidec-transition-normal), border-color var(--cidec-transition-normal); }
.cidec-about .mission-card:hover { transform: translateY(-3px); border-color: var(--cidec-teal); box-shadow: var(--cidec-shadow-md); }
.cidec-about .mission-card .icon-box { width: 56px; height: 56px; margin: 0 0 20px; color: var(--cidec-teal); background: var(--cidec-teal-soft); border-radius: var(--cidec-radius-md); }
.cidec-about .mission-card:hover .icon-box { color: var(--cidec-text-inverse); background: var(--cidec-teal); }
.cidec-about .mission-card h3 { margin-bottom: 14px; color: var(--cidec-navy-950); font: 700 1.35rem/1.3 Georgia, "Times New Roman", serif; }
.cidec-about .mission-card p { color: var(--cidec-text-muted); font-size: .95rem; line-height: 1.8; }
.cidec-about .cidec-about-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 32px; padding: 26px 16px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); }
.cidec-about .cidec-about-metrics .stats-item { min-width: 0; padding: 0 16px; text-align: center; }
.cidec-about .cidec-about-metrics .stats-item + .stats-item { border-left: 1px solid var(--cidec-border); }
.cidec-about .cidec-about-metrics .stats-item .count { margin: 0 0 5px; color: var(--cidec-teal); font-size: 1.9rem; font-weight: 700; line-height: 1.2; }
.cidec-about .cidec-about-metrics .stats-item p { color: var(--cidec-text-muted); font-size: .85rem; line-height: 1.5; }
.cidec-about .cidec-about-reasons { --bs-gutter-x: 3rem; --bs-gutter-y: 2rem; }
.cidec-about .achievements { padding: 0; }
.cidec-about .achievements h2 { margin-bottom: 18px; color: var(--cidec-navy-950); font: 700 clamp(1.8rem, 2.6vw, 2.35rem)/1.2 Georgia, "Times New Roman", serif; }
.cidec-about .achievements p { color: var(--cidec-text-muted); font-size: 1rem; line-height: 1.8; }
.cidec-about .achievements-list { display: grid; gap: 10px; margin: 0 0 24px; }
.cidec-about .achievements .achievements-list li { padding: 12px 14px; color: var(--cidec-text); background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-md); font-size: .95rem; line-height: 1.5; }
.cidec-about .achievements .achievements-list li i { color: var(--cidec-teal); }
.cidec-about .achievements .btn-explore { min-height: 48px; padding: 12px 20px; color: var(--cidec-text-inverse); background: var(--cidec-teal); border: 1px solid var(--cidec-teal); border-radius: var(--cidec-radius-md); font-weight: 700; gap: 10px; transition: background var(--cidec-transition-fast), transform var(--cidec-transition-fast); }
.cidec-about .achievements .btn-explore:hover { color: var(--cidec-text-inverse); background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); gap: 10px; transform: translateY(-1px); }
.cidec-about .about-gallery img { display: block; width: 100%; height: 210px; object-fit: cover; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); transition: box-shadow var(--cidec-transition-normal); }
.cidec-about .about-gallery .col-12 img { height: 250px; }
.cidec-about .about-gallery img:hover { transform: none; box-shadow: var(--cidec-shadow-md); }
.cidec-about .main a:focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 4px; border-radius: var(--cidec-radius-sm); }
.cidec-about [data-aos]:focus-within { opacity: 1; transform: none; transition: none; }
@media (min-width: 768px) and (max-width: 991px) {
  .cidec-about .cidec-about-values > .col-lg-4 { width: 33.333333%; }
  .cidec-about .mission-card { padding: 20px; }
}
@media (max-width: 991px) {
  .cidec-about .cidec-about-intro { padding: 32px 0; }
  .cidec-about .cidec-about-visual { margin-top: 32px; }
  .cidec-about .cidec-about-visual img { height: 350px; object-position: center 45%; }
  .cidec-about .cidec-about-reasons { align-items: start; }
}
@media (max-width: 767px) {
  .cidec-about .cidec-about-intro { --bs-gutter-x: 1.5rem; padding: 28px 0; }
  .cidec-about .about-content h2 { font-size: clamp(2rem, 8.5vw, 2.6rem); }
  .cidec-about .about-content p { font-size: .95rem; }
  .cidec-about .cidec-about-visual img { height: 280px; }
  .cidec-about .mission-card { padding: 24px; }
  .cidec-about .cidec-about-metrics { padding: 20px 4px; }
  .cidec-about .cidec-about-metrics .stats-item { padding: 0 8px; }
  .cidec-about .cidec-about-metrics .stats-item .count { font-size: 1.45rem; }
  .cidec-about .cidec-about-metrics .stats-item p { font-size: .75rem; }
  .cidec-about .cidec-about-reasons { --bs-gutter-x: 1.5rem; }
  .cidec-about .about-gallery img { height: 150px; }
  .cidec-about .about-gallery .col-12 img { height: 190px; }
  .cidec-about .about { padding-bottom: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  /* AOS uses inline transitions; this scoped exception preserves reduced motion. */
  .cidec-about *, .cidec-about *::before, .cidec-about *::after { animation: none !important; transition: none !important; }
  .cidec-about [data-aos] { opacity: 1 !important; transform: none !important; }
  .cidec-about .main :is(a, .mission-card):hover { transform: none; }
}

/* Existing course catalog only: preserve GET forms, course data and enrollment links. */
.cidec-courses {
  --background-color: var(--cidec-bg);
  --surface-color: var(--cidec-surface);
  --default-color: var(--cidec-text);
  --heading-color: var(--cidec-navy-950);
  --accent-color: var(--cidec-teal);
  color: var(--cidec-text);
  background: var(--cidec-bg);
}
.cidec-courses .main { background: var(--cidec-bg); overflow-x: clip; }
.cidec-courses #courses-2 { padding: 40px 0 56px; }
.cidec-courses #courses-2 .course-filters { margin: 0 0 24px; padding: 24px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-courses #courses-2 .filter-title { margin-bottom: 20px; padding-bottom: 16px; border-color: var(--cidec-border); font: 700 23px/1.3 Georgia, "Times New Roman", serif; }
.cidec-courses #courses-2 .filter-group { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--cidec-border); }
.cidec-courses #courses-2 .filter-group h5 { margin-bottom: 10px; font-size: .9375rem; font-weight: 700; }
.cidec-courses #courses-2 .filter-options { gap: 2px; }
.cidec-courses #courses-2 .filter-checkbox { min-height: 44px; padding: 6px 0 6px 32px; line-height: 1.5; color: var(--cidec-text-muted); overflow-wrap: anywhere; }
.cidec-courses #courses-2 .filter-checkbox:hover { color: var(--cidec-teal); }
.cidec-courses #courses-2 .filter-checkbox .checkmark { width: 20px; height: 20px; border-color: #8797A7; border-radius: 5px; }
.cidec-courses #courses-2 .filter-checkbox input[type="radio"] ~ .checkmark { border-radius: 50%; }
.cidec-courses #courses-2 .filter-checkbox input:checked ~ .checkmark { background: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-courses #courses-2 .filter-checkbox .checkmark::after { left: 5px; top: 2px; width: 5px; height: 9px; }
.cidec-courses #courses-2 .filter-checkbox input:focus-visible ~ .checkmark { outline: 3px solid var(--cidec-teal); outline-offset: 3px; }
.cidec-courses #courses-2 .courses-header { margin-bottom: 24px; padding: 16px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-courses #courses-2 .courses-header form { flex-wrap: wrap; }
.cidec-courses #courses-2 .courses-header .search-box { flex: 1 1 220px; min-width: 0; max-width: none; }
.cidec-courses #courses-2 .search-box i { color: var(--cidec-teal); }
.cidec-courses #courses-2 .search-box input,
.cidec-courses #courses-2 .sort-dropdown select { min-height: 48px; font-size: .9375rem; line-height: 1.4; background-color: var(--cidec-surface); color: var(--cidec-text); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-sm); }
.cidec-courses #courses-2 .search-box input::placeholder { color: var(--cidec-text-muted); opacity: 1; }
.cidec-courses #courses-2 .sort-dropdown { flex: 1 1 220px; min-width: 0; }
.cidec-courses #courses-2 .sort-dropdown select { width: 100%; max-width: 100%; }
.cidec-courses #courses-2 .search-box input:focus,
.cidec-courses #courses-2 .sort-dropdown select:focus { border-color: var(--cidec-teal); box-shadow: 0 0 0 3px var(--cidec-teal-soft); }
.cidec-courses #courses-2 .courses-grid .row { align-items: stretch; }
.cidec-courses #courses-2 .catalog-course-card { display: flex; flex-direction: column; height: 100%; margin: 0; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); transition: border-color var(--cidec-transition-normal), box-shadow var(--cidec-transition-normal); }
.cidec-courses #courses-2 .catalog-course-card:hover { transform: none; border-color: var(--cidec-teal); box-shadow: var(--cidec-shadow-md); }
.cidec-courses #courses-2 .catalog-course-card .course-image { height: auto; background: var(--cidec-surface-muted); }
.cidec-courses #courses-2 .catalog-course-card .course-image img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.cidec-courses #courses-2 .catalog-course-card .course-image:hover img { transform: none; }
.cidec-courses #courses-2 .catalog-course-card .badge.featured { top: 14px; left: 14px; padding: 7px 10px; color: var(--cidec-navy-950); background: var(--cidec-gold-soft); border-radius: var(--cidec-radius-sm); font-size: .75rem; }
.cidec-courses #courses-2 .catalog-course-card .price-badge { top: 14px; right: 14px; padding: 7px 10px; background: var(--cidec-surface); color: var(--cidec-teal); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-sm); box-shadow: var(--cidec-shadow-sm); font-size: 1rem; font-weight: 800; }
.cidec-courses #courses-2 .catalog-course-card .price-badge:is(.status-paid, .status-free) { color: var(--cidec-success); background: var(--cidec-teal-soft); }
.cidec-courses #courses-2 .catalog-course-card .price-badge.status-pending { color: var(--cidec-navy-950); background: var(--cidec-gold-soft); }
.cidec-courses #courses-2 .catalog-course-card .course-content { display: flex; flex-direction: column; flex: 1; min-width: 0; padding: 22px; }
.cidec-courses #courses-2 .catalog-course-card .course-meta { flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.cidec-courses #courses-2 .catalog-course-card .course-meta span { padding: 5px 10px; font-size: .8125rem; line-height: 1.5; border-radius: var(--cidec-radius-sm); }
.cidec-courses #courses-2 .catalog-course-card .catalog-type-badge { color: var(--cidec-teal); background: var(--cidec-teal-soft); }
.cidec-courses #courses-2 .catalog-course-card .catalog-duration-badge { color: var(--cidec-navy-950); background: var(--cidec-surface-muted); }
.cidec-courses #courses-2 .catalog-course-card h3 { margin: 0 0 14px; font-size: 1.125rem; line-height: 1.5; font-weight: 700; overflow-wrap: anywhere; }
.cidec-courses #courses-2 .catalog-course-card h3 a { display: block; color: var(--cidec-navy-950); overflow: visible; -webkit-line-clamp: unset; line-clamp: unset; }
.cidec-courses #courses-2 .catalog-course-card h3 a:hover { color: var(--cidec-teal); }
.cidec-courses #courses-2 .catalog-course-card .course-description { display: block; max-height: none; overflow: visible; margin-bottom: 20px; color: var(--cidec-text-muted); font-size: .9375rem; line-height: 1.7; text-overflow: clip; -webkit-line-clamp: unset; line-clamp: unset; overflow-wrap: anywhere; }
.cidec-courses #courses-2 .catalog-course-card .instructor { margin: 0 0 20px; padding: 16px 0; border-top: 1px solid var(--cidec-border); border-bottom: 1px solid var(--cidec-border); }
.cidec-courses #courses-2 .catalog-course-card .instructor > :is(a, div) { min-width: 0; max-width: 100%; }
.cidec-courses #courses-2 .catalog-course-card .instructor-img { width: 40px; height: 40px; flex-shrink: 0; object-fit: cover; }
.cidec-courses #courses-2 .catalog-course-card .instructor-info { min-width: 0; overflow-wrap: anywhere; }
.cidec-courses #courses-2 .catalog-course-card .instructor-info h6 { font-size: .9375rem; font-weight: 600; line-height: 1.5; color: var(--cidec-navy-950); }
.cidec-courses #courses-2 .catalog-course-card .instructor-info span { display: inline-block; margin-top: 4px; font-size: .8125rem; line-height: 1.5; color: var(--cidec-teal); }
.cidec-courses #courses-2 .catalog-course-card .course-stats { flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 20px; padding: 0; border: 0; font-size: .8125rem; }
.cidec-courses #courses-2 .catalog-course-card .course-stats .rating { color: var(--cidec-warning); }
.cidec-courses #courses-2 .catalog-course-card .course-stats .rating span { color: var(--cidec-text-muted); }
.cidec-courses #courses-2 .catalog-course-card .course-stats .students { color: var(--cidec-text-muted); }
.cidec-courses #courses-2 .catalog-course-card .course-stats .students i { color: var(--cidec-teal); }
.cidec-courses #courses-2 .course-card-actions { margin-top: auto; }
.cidec-courses #courses-2 .course-card-actions .btn-course,
.cidec-courses :is(#courses-2, #welcomeModal) .btn-primary { min-height: 48px; padding: 12px 18px; color: var(--cidec-text-inverse); background: var(--cidec-teal); border: 1px solid var(--cidec-teal); border-radius: var(--cidec-radius-md); font-size: .9375rem; font-weight: 700; line-height: 1.5; transition: background var(--cidec-transition-fast), border-color var(--cidec-transition-fast); }
.cidec-courses #courses-2 .course-card-actions .btn-course:hover,
.cidec-courses :is(#courses-2, #welcomeModal) .btn-primary:hover { color: var(--cidec-text-inverse); background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); transform: none; }
/* All existing catalog card actions, including enrollment, use the same teal treatment. */
.cidec-courses :is(#courses-2, #welcomeModal) :is(.btn-outline-secondary, .btn-outline-primary) { min-height: 48px; padding: 12px 18px; color: var(--cidec-teal); background: transparent; border: 1px solid var(--cidec-teal); border-radius: var(--cidec-radius-md); font-weight: 600; }
.cidec-courses :is(#courses-2, #welcomeModal) :is(.btn-outline-secondary, .btn-outline-primary):hover { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal-hover); }
.cidec-courses #courses-2 .pagination-wrapper { margin-top: 32px; }
.cidec-courses #courses-2 .pagination { gap: 6px; margin: 0; }
.cidec-courses #courses-2 .pagination .page-item { margin: 0; }
.cidec-courses #courses-2 .pagination .page-link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 10px 12px; color: var(--cidec-teal); background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-sm); box-shadow: none; }
.cidec-courses #courses-2 .pagination .page-link:hover { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); }
.cidec-courses #courses-2 .pagination .page-item.active .page-link { color: var(--cidec-text-inverse); background: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-courses #courses-2 .pagination .page-item.disabled .page-link { color: var(--cidec-text-muted); background: var(--cidec-surface-muted); border-color: var(--cidec-border); }
.cidec-courses #courses-2 .catalog-empty-state { padding: 40px 24px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-courses #courses-2 .catalog-empty-icon { color: var(--cidec-teal); background: var(--cidec-teal-soft); }
.cidec-courses #courses-2 .catalog-empty-state h3 { color: var(--cidec-navy-950); font-size: 1.25rem; line-height: 1.5; }
.cidec-courses #courses-2 .catalog-empty-state p { color: var(--cidec-text-muted); line-height: 1.7; }
.cidec-courses .main :is(a, button, input, select):focus-visible,
.cidec-courses #welcomeModal :is(a, button):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
.cidec-courses #courses-2 .course-image-link:focus-visible { outline-color: var(--cidec-gold); outline-offset: -5px; } /* Keep the focus ring inside the existing clipped image container. */
.cidec-courses [data-aos]:focus-within { opacity: 1; transform: none; transition: none; }
@media (max-width: 1439px) {
  /* Reserve the right edge for the approved shared floating controls, including linked course images. */
  .cidec-courses #courses-2 > .container { padding-right: 72px; }
}
@media (min-width: 576px) and (max-width: 991px) {
  .cidec-courses #courses-2 .course-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .cidec-courses #courses-2 .filter-title,
  .cidec-courses #courses-2 .course-filters > .mt-3 { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .cidec-courses #courses-2 { padding: 28px 0 40px; }
  .cidec-courses #courses-2 .course-filters { padding: 20px; }
  .cidec-courses #courses-2 .courses-grid .row > .col-md-6 { width: 100%; }
  .cidec-courses #courses-2 .courses-header form > :is(.search-box, .sort-dropdown, button) { flex-basis: 100%; width: 100%; }
  .cidec-courses #courses-2 .catalog-course-card .course-content { padding: 18px; }
  .cidec-courses #courses-2 .catalog-course-card .badge.featured,
  .cidec-courses #courses-2 .catalog-course-card .price-badge { top: 10px; font-size: .75rem; padding: 6px 8px; }
  .cidec-courses #courses-2 .catalog-course-card .badge.featured { left: 10px; }
  .cidec-courses #courses-2 .catalog-course-card .price-badge { right: 10px; }
  .cidec-courses #courses-2 .catalog-course-card .course-stats { flex-direction: row; }
  .cidec-courses #courses-2 .pagination .page-link.small { font-size: .8125rem; }
}
@media (max-width: 359px) {
  .cidec-courses #courses-2 .courses-header { padding: 12px; }
  .cidec-courses #courses-2 .sort-dropdown select { padding-left: 10px; padding-right: 30px; background-position: right 8px center; font-size: .875rem; }
}
@media (prefers-reduced-motion: reduce) {
  /* Neutralize inherited AOS/Bootstrap animation only inside the course catalog. */
  .cidec-courses .main *, .cidec-courses .main *::before, .cidec-courses .main *::after,
  .cidec-courses #welcomeModal * { animation: none !important; transition: none !important; }
  .cidec-courses .main [data-aos] { opacity: 1 !important; transform: none !important; }
}

/* CIDEC_PAGE_BANNER: opt-in visual component; currently used only by Nosotros and Cursos. */
.cidec-page-banner.page-title { padding: 44px 0; color: var(--cidec-text-inverse); background: linear-gradient(110deg, var(--cidec-navy-950), var(--cidec-navy-800)); border-bottom: 3px solid var(--cidec-gold); }
.cidec-page-banner .cidec-page-banner__title { margin: 0; color: var(--cidec-gold); font: 700 clamp(2.25rem, 4vw, 3.25rem)/1.15 Georgia, "Times New Roman", serif; }
.cidec-page-banner .cidec-page-banner__breadcrumbs { color: var(--cidec-text-inverse); }
.cidec-page-banner .cidec-page-banner__breadcrumbs ol li { color: var(--cidec-text-inverse); }
.cidec-page-banner .cidec-page-banner__breadcrumbs ol li + li::before { color: #DAE4ED; }
.cidec-page-banner .cidec-page-banner__back-link,
.cidec-page-banner .cidec-page-banner__current { color: var(--cidec-text-inverse); }
.cidec-page-banner .cidec-page-banner__back-link { text-decoration: underline; text-underline-offset: 4px; }
.cidec-page-banner .cidec-page-banner__back-link:hover { color: var(--cidec-gold); }
.cidec-page-banner .cidec-page-banner__breadcrumbs a:focus-visible { outline: 3px solid var(--cidec-gold); outline-offset: 4px; border-radius: var(--cidec-radius-sm); }
@media (max-width: 767px) {
  .cidec-page-banner.page-title { padding: 28px 0; }
  .cidec-page-banner .cidec-page-banner__container { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
  .cidec-page-banner .cidec-page-banner__title { font-size: 2.25rem; }
  .cidec-page-banner .cidec-page-banner__breadcrumbs { padding: 0; }
}

/* Course detail: opt-in presentation only; preserve tabs, enrollment states and player hooks. */
.cidec-course-detail { background: var(--cidec-bg); }
.cidec-course-detail .main,
.cidec-course-detail #needAccessModal { --accent-color: var(--cidec-teal); --heading-color: var(--cidec-navy-950); --default-color: var(--cidec-text); color: var(--cidec-text); }
.cidec-course-detail .cidec-page-banner__container { flex-wrap: wrap; gap: 20px 32px; }
.cidec-course-detail .cidec-page-banner__title { flex: 0 0 auto; }
.cidec-course-detail .cidec-page-banner__breadcrumbs { flex: 1 1 420px; min-width: 0; padding: 0; font-size: .875rem; line-height: 1.7; }
.cidec-course-detail .cidec-page-banner__breadcrumbs ol { flex-wrap: wrap; justify-content: flex-end; gap: 4px 0; }
.cidec-course-detail .cidec-page-banner__current { overflow-wrap: anywhere; }
.cidec-course-detail .cidec-detail-content { padding: 44px 0 64px; background: var(--cidec-bg); }
.cidec-course-detail .cidec-detail-content > .container > .row { --bs-gutter-x: 32px; --bs-gutter-y: 32px; }
.cidec-course-detail .cidec-detail-main,
.cidec-course-detail .cidec-detail-sidebar { min-width: 0; overflow-wrap: anywhere; }
.cidec-course-detail .cidec-detail-title { margin-bottom: 16px !important; color: var(--cidec-navy-950); font: 700 clamp(1.5rem, 2.4vw, 2.125rem)/1.3 Georgia, "Times New Roman", serif; }
.cidec-course-detail .cidec-detail-badges { row-gap: 8px; }
.cidec-course-detail .cidec-detail-badges .badge { padding: 8px 10px; border-radius: var(--cidec-radius-sm); font-size: .75rem; line-height: 1.4; white-space: normal; text-align: left; }
/* Bootstrap color/spacing utilities are important; override them only in this page's components. */
.cidec-course-detail .cidec-detail-badges .bg-secondary { color: var(--cidec-teal); background: var(--cidec-teal-soft) !important; }
.cidec-course-detail .cidec-detail-badges .bg-light { color: var(--cidec-navy-900) !important; background: var(--cidec-surface) !important; border: 1px solid var(--cidec-border); }
.cidec-course-detail .cidec-detail-badges .bg-primary { color: var(--cidec-navy-950); background: var(--cidec-gold-soft) !important; }
.cidec-course-detail .course-hero-image { border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg) !important; box-shadow: var(--cidec-shadow-sm); background: var(--cidec-navy-950); }
.cidec-course-detail .course-hero-image img { max-height: 460px; }
.cidec-course-detail .cidec-detail-main .card,
.cidec-course-detail .cidec-detail-enrollment { border: 1px solid var(--cidec-border) !important; border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm) !important; background: var(--cidec-surface); }
.cidec-course-detail .cidec-detail-main .card-body { padding: 24px; line-height: 1.8; }
.cidec-course-detail .cidec-detail-main h5 { color: var(--cidec-navy-950); font-size: 1.125rem; font-weight: 700; line-height: 1.5; }
.cidec-course-detail .cidec-detail-main .text-success { color: var(--cidec-teal) !important; }
.cidec-course-detail .cidec-detail-tabs { padding: 8px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-md); }
.cidec-course-detail .cidec-detail-tabs .nav-item { flex: 1; }
.cidec-course-detail .cidec-detail-tabs .nav-link { width: 100%; min-height: 44px; color: var(--cidec-teal); background: transparent; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-sm); font-weight: 700; box-shadow: none; }
.cidec-course-detail .cidec-detail-tabs .nav-link:hover { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); }
.cidec-course-detail .cidec-detail-tabs .nav-link.active { color: var(--cidec-text-inverse); background: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-course-detail #tab-contenido { padding-top: 8px; }
.cidec-course-detail #modulosAccordion { --bs-accordion-btn-active-icon: var(--bs-accordion-btn-icon); }
.cidec-course-detail #modulosAccordion .accordion-item { border: 1px solid var(--cidec-border) !important; border-radius: var(--cidec-radius-md) !important; box-shadow: var(--cidec-shadow-sm) !important; }
.cidec-course-detail #modulosAccordion .accordion-button { display: grid !important; grid-template-columns: minmax(0, 1fr) auto 18px; column-gap: 12px; row-gap: 4px; padding: 20px; color: var(--cidec-navy-950); background: var(--cidec-surface); line-height: 1.6; box-shadow: none; }
.cidec-course-detail #modulosAccordion .accordion-button > span:first-child { grid-column: 1; color: var(--cidec-teal); font-size: .875rem; }
.cidec-course-detail #modulosAccordion .accordion-button > .fw-normal { grid-column: 1; min-width: 0; }
.cidec-course-detail #modulosAccordion .accordion-button > .badge { grid-column: 2; grid-row: 1 / span 2; margin-left: 0 !important; font-size: .75rem; padding: 7px 9px; white-space: normal; }
.cidec-course-detail #modulosAccordion .accordion-button::after { grid-column: 3; grid-row: 1 / span 2; width: 18px; height: 18px; background-size: 18px; margin: 0; }
.cidec-course-detail #modulosAccordion .accordion-button:not(.collapsed) { background: var(--cidec-teal-soft); }
.cidec-course-detail #modulosAccordion .accordion-body { padding: 20px; line-height: 1.8; }
.cidec-course-detail #modulosAccordion .list-group-item { flex-wrap: wrap; padding: 16px 0; background: transparent; color: var(--cidec-text); border-color: var(--cidec-border); }
.cidec-course-detail #modulosAccordion .list-group-item > div:first-child { flex: 1 1 220px; min-width: 0; flex-wrap: wrap; }
.cidec-course-detail #modulosAccordion .list-group-item > div:last-child { flex-wrap: wrap; }
.cidec-course-detail #modulosAccordion .list-group-item .badge { color: var(--cidec-teal) !important; background: var(--cidec-teal-soft) !important; font-size: .75rem; line-height: 1.4; white-space: normal; }
.cidec-course-detail .course-meta-chips .chip { padding: 10px 14px; color: var(--cidec-navy-900); background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-md); box-shadow: none; line-height: 1.5; }
.cidec-course-detail .course-meta-chips .chip i { color: var(--cidec-teal); }
.cidec-course-detail .cidec-detail-enrollment { padding: 24px !important; border-top: 4px solid var(--cidec-gold) !important; }
.cidec-course-detail .cidec-detail-price { margin-bottom: 20px !important; }
.cidec-course-detail .cidec-detail-price .fs-3 { color: var(--cidec-navy-950); font-size: 2rem !important; line-height: 1.3; }
.cidec-course-detail .cidec-detail-enrollment hr { margin: 24px 0; border-color: var(--cidec-border); opacity: 1; }
.cidec-course-detail .cidec-detail-instructor { gap: 12px; align-items: flex-start !important; }
.cidec-course-detail .cidec-detail-instructor > img { flex: 0 0 56px; margin-right: 0 !important; object-fit: cover; border: 2px solid var(--cidec-border); }
.cidec-course-detail .cidec-detail-instructor > div { min-width: 0; }
.cidec-course-detail .cidec-detail-instructor .fw-semibold { color: var(--cidec-navy-950); font-size: 1rem; line-height: 1.5; }
.cidec-course-detail .cidec-detail-instructor .small { flex-wrap: wrap; }
.cidec-course-detail .rating-stars { white-space: nowrap; }
.cidec-course-detail .cidec-detail-enrollment > p { font-size: .875rem; line-height: 1.8; }
.cidec-course-detail .cidec-detail-facts { padding: 20px !important; background: var(--cidec-surface-muted); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-md); box-shadow: none !important; }
.cidec-course-detail .cidec-detail-facts h6 { font-size: 1rem; font-weight: 700; }
.cidec-course-detail .cidec-detail-facts li { flex-wrap: wrap; gap: 6px 12px; padding: 4px 0; line-height: 1.6; }
.cidec-course-detail .cidec-detail-facts .text-primary { color: var(--cidec-teal) !important; }
.cidec-course-detail .main .btn,
.cidec-course-detail #needAccessModal .btn { min-height: 44px; padding: 11px 16px; border-radius: var(--cidec-radius-md); font-weight: 700; line-height: 1.5; white-space: normal; transition: color var(--cidec-transition-fast), background-color var(--cidec-transition-fast), border-color var(--cidec-transition-fast); }
.cidec-course-detail .main :is(.btn-primary, .btn-success),
.cidec-course-detail #needAccessModal .btn-primary { color: var(--cidec-text-inverse); background: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-course-detail .main :is(.btn-primary, .btn-success):is(:hover, :active),
.cidec-course-detail #needAccessModal .btn-primary:is(:hover, :active) { color: var(--cidec-text-inverse); background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); }
.cidec-course-detail .main :is(.btn-outline-primary, .btn-outline-secondary),
.cidec-course-detail #needAccessModal .btn-outline-secondary { color: var(--cidec-teal); background: var(--cidec-surface); border-color: var(--cidec-teal); }
.cidec-course-detail .main :is(.btn-outline-primary, .btn-outline-secondary):is(:hover, :active),
.cidec-course-detail #needAccessModal .btn-outline-secondary:is(:hover, :active) { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal-hover); }
.cidec-course-detail .main .btn-warning,
.cidec-course-detail .main .cidec-detail-enroll-cta,
.cidec-course-detail #needAccessModal .cidec-detail-enroll-cta { color: var(--cidec-navy-950); background: var(--cidec-gold); border-color: var(--cidec-gold); }
.cidec-course-detail .main .btn-warning:is(:hover, :active),
.cidec-course-detail .main .cidec-detail-enroll-cta:is(:hover, :active),
.cidec-course-detail #needAccessModal .cidec-detail-enroll-cta:is(:hover, :active) { color: var(--cidec-navy-950); background: var(--cidec-gold-hover); border-color: var(--cidec-gold-hover); }
.cidec-course-detail .main .btn:disabled { color: var(--cidec-text-muted); background: var(--cidec-surface-muted); border-color: var(--cidec-border); opacity: 1; }
.cidec-course-detail #needAccessModal .modal-content { color: var(--cidec-text); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-lg); }
.cidec-course-detail #needAccessModal :is(.modal-header, .modal-body, .modal-footer) { padding: 20px 24px; border-color: var(--cidec-border); line-height: 1.7; }
.cidec-course-detail #needAccessModal .modal-title { color: var(--cidec-navy-950); font-weight: 700; }
.cidec-course-detail .main :is(a, button):focus-visible,
.cidec-course-detail #needAccessModal :is(a, button):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
.cidec-course-detail .cidec-page-banner a:focus-visible { outline-color: var(--cidec-gold); }
.cidec-course-detail [data-aos]:focus-within { opacity: 1; transform: none; transition: none; }
@media (min-width: 992px) {
  .cidec-course-detail .sidebar-sticky { top: 96px; }
}
@media (max-width: 1439px) {
  /* Keep lesson actions and enrollment links outside the shared floating controls' right-edge lane. */
  .cidec-course-detail .cidec-detail-content > .container { padding-right: 72px; }
}
@media (max-width: 991px) {
  .cidec-course-detail .cidec-page-banner__container { display: flex; flex-direction: column; align-items: flex-start !important; gap: 16px; }
  .cidec-course-detail .cidec-page-banner__breadcrumbs { flex: 0 1 auto; width: 100%; }
  .cidec-course-detail .cidec-page-banner__breadcrumbs ol { justify-content: flex-start; }
  .cidec-course-detail .sidebar-sticky { position: static; }
}
@media (max-width: 767px) {
  .cidec-course-detail .cidec-detail-content { padding: 28px 0 40px; }
  .cidec-course-detail .cidec-detail-content > .container > .row { --bs-gutter-x: 24px; --bs-gutter-y: 24px; }
  .cidec-course-detail .cidec-detail-tabs .nav-link { padding-right: 10px !important; padding-left: 10px !important; font-size: .875rem; }
  .cidec-course-detail .cidec-detail-main .card-body { padding: 18px; }
  .cidec-course-detail .cidec-detail-enrollment { padding: 18px !important; }
  .cidec-course-detail #modulosAccordion .accordion-button { grid-template-columns: minmax(0, 1fr) 18px; padding: 16px; }
  .cidec-course-detail #modulosAccordion .accordion-button > .badge { grid-column: 1; grid-row: 3; justify-self: start; }
  .cidec-course-detail #modulosAccordion .accordion-button::after { grid-column: 2; grid-row: 1 / span 3; }
  .cidec-course-detail #modulosAccordion .accordion-body { padding: 16px; }
  .cidec-course-detail #modulosAccordion .list-group-item > div { flex-basis: 100%; }
  .cidec-course-detail #modulosAccordion .list-group-item .btn { width: 100%; }
  .cidec-course-detail .cidec-detail-facts { padding: 16px !important; }
  .cidec-course-detail .cidec-detail-facts li { display: block !important; }
  .cidec-course-detail .cidec-detail-facts li > span:last-child { display: block; padding-left: 24px; }
  .cidec-course-detail #needAccessModal .modal-footer .btn { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .cidec-course-detail .main *, .cidec-course-detail .main *::before, .cidec-course-detail .main *::after,
  .cidec-course-detail #needAccessModal * { animation: none !important; transition: none !important; }
  .cidec-course-detail .main [data-aos] { opacity: 1 !important; transform: none !important; }
}

/* Excel formats: page-only catalog presentation; download/WhatsApp contracts remain unchanged. */
.cidec-excel-formats { background: var(--cidec-bg); }
.cidec-excel-formats .main { --accent-color: var(--cidec-teal); --heading-color: var(--cidec-navy-950); --default-color: var(--cidec-text); color: var(--cidec-text); }
.cidec-excel-formats .excel-catalog-section { padding: 44px 0 64px; background: var(--cidec-bg); }
.cidec-excel-formats .excel-filters-column,
.cidec-excel-formats .excel-catalog-column { min-width: 0; }
.cidec-excel-formats .course-filters { padding: 24px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-excel-formats .filter-title { margin: 0 0 24px; padding-bottom: 16px; color: var(--cidec-navy-950); border-bottom: 2px solid var(--cidec-gold); font: 700 1.5rem/1.3 Georgia, "Times New Roman", serif; }
.cidec-excel-formats .form-label,
.cidec-excel-formats .filter-group h5 { margin-bottom: 10px; color: var(--cidec-navy-950); font-size: .9375rem; line-height: 1.5; font-weight: 700; }
.cidec-excel-formats .filter-group { margin-top: 24px; }
.cidec-excel-formats .search-box { position: relative; }
.cidec-excel-formats .search-box > i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--cidec-teal); pointer-events: none; }
.cidec-excel-formats .search-box input { width: 100%; min-width: 0; min-height: 48px; padding: 11px 12px 11px 40px; color: var(--cidec-text); background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-md); font: inherit; font-size: .9375rem; }
.cidec-excel-formats .search-box input::placeholder { color: var(--cidec-text-muted); opacity: 1; }
.cidec-excel-formats .form-select { min-height: 48px; padding: 11px 34px 11px 12px; color: var(--cidec-text); background-color: var(--cidec-surface); border-color: var(--cidec-border); border-radius: var(--cidec-radius-md); font-size: .875rem; }
.cidec-excel-formats .search-box input:focus,
.cidec-excel-formats .form-select:focus { border-color: var(--cidec-teal); box-shadow: none; }
.cidec-excel-formats .filter-checkbox { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 12px; margin: 4px 0; color: var(--cidec-text); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-sm); font-size: .9375rem; line-height: 1.5; cursor: pointer; }
.cidec-excel-formats .filter-checkbox:hover,
.cidec-excel-formats .filter-checkbox:has(input:checked) { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal); }
.cidec-excel-formats .filter-checkbox input { flex: 0 0 18px; width: 18px; height: 18px; margin: 0; accent-color: var(--cidec-teal); }
.cidec-excel-formats .filter-checkbox .checkmark { display: none; } /* Empty legacy decoration; the native radio stays visible and keyboard accessible. */
.cidec-excel-formats .course-filters .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 11px 14px; border-radius: var(--cidec-radius-md); font-weight: 700; line-height: 1.5; white-space: normal; }
.cidec-excel-formats .course-filters .btn-primary { color: var(--cidec-text-inverse); background: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-excel-formats .course-filters .btn-primary:is(:hover, :active) { color: var(--cidec-text-inverse); background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); }
.cidec-excel-formats .course-filters .btn-outline-secondary { color: var(--cidec-teal); background: var(--cidec-surface); border-color: var(--cidec-teal); }
.cidec-excel-formats .course-filters .btn-outline-secondary:is(:hover, :active) { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal-hover); }
.cidec-excel-formats .excel-formats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; }
.cidec-excel-formats .excel-formats-grid > :is(.col-md-6, .col-12) { width: 100%; min-width: 0; margin: 0; padding: 0; }
.cidec-excel-formats .excel-formats-grid > .col-12 { grid-column: 1 / -1; }
.cidec-excel-formats .course-card { display: flex; flex-direction: column; overflow: hidden; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-excel-formats .course-image { position: relative; flex: 0 0 auto; aspect-ratio: 16 / 10; background: var(--cidec-surface-muted); border-bottom: 1px solid var(--cidec-border); }
.cidec-excel-formats .course-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; }
.cidec-excel-formats .price-badge { position: absolute; top: 12px; right: 12px; max-width: calc(100% - 24px); padding: 7px 10px; color: var(--cidec-teal-hover); background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-sm); box-shadow: var(--cidec-shadow-sm); font-size: .875rem; line-height: 1.5; font-weight: 700; overflow-wrap: anywhere; }
.cidec-excel-formats .course-content { display: flex; flex: 1; flex-direction: column; gap: 14px; padding: 20px; overflow-wrap: anywhere; }
.cidec-excel-formats .course-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cidec-excel-formats .course-meta > span { padding: 5px 8px; border-radius: var(--cidec-radius-sm); font-size: .75rem; line-height: 1.5; font-weight: 600; }
.cidec-excel-formats .category { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); }
.cidec-excel-formats .level { color: var(--cidec-navy-900); background: var(--cidec-surface-muted); }
.cidec-excel-formats .course-content h3 { margin: 0; color: var(--cidec-navy-950); font: 700 1.125rem/1.5 Georgia, "Times New Roman", serif; }
.cidec-excel-formats .course-content p { margin: 0; color: var(--cidec-text-muted); font-size: .9375rem; line-height: 1.7; }
.cidec-excel-formats .course-content .btn-course { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 11px 14px; margin-top: auto; color: var(--cidec-text-inverse); background: var(--cidec-teal); border: 1px solid var(--cidec-teal); border-radius: var(--cidec-radius-md); font-size: .875rem; line-height: 1.5; font-weight: 700; text-align: center; text-decoration: none; white-space: normal; transition: background-color var(--cidec-transition-fast), border-color var(--cidec-transition-fast); }
.cidec-excel-formats .course-content .btn-course:is(:hover, :active) { color: var(--cidec-text-inverse); background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); }
.cidec-excel-formats .excel-empty-state { margin: 0; padding: 32px 24px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); line-height: 1.7; }
.cidec-excel-formats .pagination { gap: 6px; margin: 0; }
.cidec-excel-formats .pagination .page-link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 10px 12px; color: var(--cidec-teal); background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-sm); box-shadow: none; }
.cidec-excel-formats .pagination .page-link:hover { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); }
.cidec-excel-formats .pagination .page-item.active .page-link { color: var(--cidec-text-inverse); background: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-excel-formats .pagination .page-item.disabled .page-link { color: var(--cidec-text-muted); background: var(--cidec-surface-muted); border-color: var(--cidec-border); }
.cidec-excel-formats .main :is(a, button, input, select):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
.cidec-excel-formats .cidec-page-banner a:focus-visible { outline-color: var(--cidec-gold); }
.cidec-excel-formats [data-aos]:focus-within { opacity: 1; transform: none; transition: none; }
@media (max-width: 1439px) {
  /* Reserve the shared floating controls' right-edge lane without changing their component. */
  .cidec-excel-formats .excel-catalog-section > .container { padding-right: 72px; }
}
@media (max-width: 1199px) {
  .cidec-excel-formats :is(.excel-filters-column, .excel-catalog-column) { width: 100%; }
  .cidec-excel-formats .course-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
  .cidec-excel-formats .course-filters > :is(.filter-title, .mb-3, .mt-3) { grid-column: 1 / -1; margin: 0 !important; } /* Bootstrap spacing utilities; only this form's grid children. */
  .cidec-excel-formats .filter-group { margin: 0; }
  .cidec-excel-formats .course-filters > .mt-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cidec-excel-formats .excel-formats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
  .cidec-excel-formats .cidec-page-banner__container { display: flex; flex-direction: column; align-items: flex-start !important; gap: 16px; } /* Override the preserved Bootstrap alignment utility for a readable mobile breadcrumb. */
  .cidec-excel-formats .cidec-page-banner__breadcrumbs { padding: 0; }
}
@media (max-width: 767px) {
  .cidec-excel-formats .excel-catalog-section { padding: 28px 0 40px; }
  .cidec-excel-formats .course-filters { display: block; padding: 20px; }
  .cidec-excel-formats .course-filters > .filter-title { margin-bottom: 24px !important; }
  .cidec-excel-formats .course-filters > .mb-3 { margin-bottom: 24px !important; }
  .cidec-excel-formats .filter-group { margin-top: 24px; }
  .cidec-excel-formats .course-filters > .mt-3 { margin-top: 24px !important; grid-template-columns: 1fr; }
  .cidec-excel-formats .excel-formats-grid { grid-template-columns: minmax(0, 1fr); }
  .cidec-excel-formats .course-content { padding: 18px; }
  .cidec-excel-formats .excel-empty-state { padding: 24px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .cidec-excel-formats .main *, .cidec-excel-formats .main *::before, .cidec-excel-formats .main *::after { animation: none !important; transition: none !important; }
  .cidec-excel-formats .main [data-aos] { opacity: 1 !important; transform: none !important; }
}

/* Instructor profile: presentation only, preserving the existing Bootstrap tabs and course links. */
.cidec-instructor-profile { background: var(--cidec-bg); }
.cidec-instructor-profile .main { --accent-color: var(--cidec-teal); --heading-color: var(--cidec-navy-950); --default-color: var(--cidec-text); color: var(--cidec-text); }
.cidec-instructor-profile .cidec-page-banner__container { gap: 24px; }
.cidec-instructor-profile .cidec-page-banner__title { min-width: 0; overflow-wrap: anywhere; }
.cidec-instructor-profile .cidec-page-banner__breadcrumbs { flex-shrink: 0; }
.cidec-instructor-profile #instructor-profile { padding: 44px 0 64px; background: var(--cidec-bg); }
.cidec-instructor-profile #instructor-profile .instructor-hero-banner { margin-bottom: 0; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-bottom: 3px solid var(--cidec-gold); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-instructor-profile #instructor-profile .hero-background { left: auto; right: 0; width: 42%; opacity: .08; }
.cidec-instructor-profile #instructor-profile .hero-overlay { background: linear-gradient(90deg, var(--cidec-surface), transparent); }
.cidec-instructor-profile #instructor-profile .hero-content { padding: 36px; gap: 36px; text-align: left; }
.cidec-instructor-profile #instructor-profile .instructor-avatar img { display: block; width: 180px; height: 214px; border: 4px solid var(--cidec-surface); border-radius: var(--cidec-radius-md); object-fit: cover; box-shadow: var(--cidec-shadow-md); }
.cidec-instructor-profile #instructor-profile .status-badge { bottom: -10px; right: -10px; padding: 8px 10px; color: var(--cidec-teal-hover); background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-sm); box-shadow: var(--cidec-shadow-sm); font-size: .75rem; line-height: 1.5; }
.cidec-instructor-profile #instructor-profile .instructor-info { flex: 1; min-width: 0; color: var(--cidec-text); overflow-wrap: anywhere; }
.cidec-instructor-profile #instructor-profile .instructor-info h2 { margin: 0 0 12px; color: var(--cidec-navy-950); font: 700 clamp(1.75rem, 2.5vw, 2.375rem)/1.25 Georgia, "Times New Roman", serif; text-shadow: none; }
.cidec-instructor-profile #instructor-profile .instructor-info .title { margin: 0 0 20px; color: var(--cidec-navy-800); font-size: 1.125rem; line-height: 1.6; opacity: 1; }
.cidec-instructor-profile #instructor-profile .credentials { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; gap: 8px; margin-bottom: 20px; }
.cidec-instructor-profile #instructor-profile .credential { padding: 6px 12px; color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-radius: var(--cidec-radius-sm); font-size: .875rem; line-height: 1.5; font-weight: 600; }
.cidec-instructor-profile #instructor-profile .rating-overview { flex-wrap: wrap; gap: 10px 16px; margin-bottom: 24px; }
.cidec-instructor-profile #instructor-profile .stars { color: var(--cidec-gold); font-size: 1.125rem; }
.cidec-instructor-profile #instructor-profile .rating-text { color: var(--cidec-text); font-size: .9375rem; line-height: 1.6; opacity: 1; }
.cidec-instructor-profile #instructor-profile .contact-actions { justify-content: flex-start; align-items: flex-start; gap: 12px; }
.cidec-instructor-profile #instructor-profile .btn-contact { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; max-width: 100%; padding: 11px 20px; color: var(--cidec-navy-950); background: var(--cidec-gold); border: 1px solid var(--cidec-gold); border-radius: var(--cidec-radius-md); font-size: .9375rem; line-height: 1.5; font-weight: 700; text-decoration: none; transition: background-color var(--cidec-transition-fast), border-color var(--cidec-transition-fast); }
.cidec-instructor-profile #instructor-profile .btn-contact:hover { color: var(--cidec-navy-950); background: var(--cidec-gold-hover); border-color: var(--cidec-gold-hover); transform: none; box-shadow: none; }
.cidec-instructor-profile #instructor-profile .instructor-content-row { --bs-gutter-y: 28px; margin-top: 8px !important; } /* Preserved Bootstrap mt-4; align both real columns with a 36px gap after the profile. */
.cidec-instructor-profile #instructor-profile .instructor-content-row > div { min-width: 0; }
.cidec-instructor-profile #instructor-profile .custom-tabs { display: flex; flex-wrap: nowrap; gap: 8px; padding: 8px; margin-bottom: 20px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-md); box-shadow: var(--cidec-shadow-sm); }
.cidec-instructor-profile #instructor-profile .custom-tabs .nav-item { min-width: 0; }
.cidec-instructor-profile #instructor-profile .custom-tabs .nav-link { justify-content: center; gap: 8px; min-height: 48px; padding: 11px 20px; margin: 0; color: var(--cidec-navy-950); background: transparent; border-radius: var(--cidec-radius-sm); font-size: .9375rem; line-height: 1.5; font-weight: 700; transition: color var(--cidec-transition-fast), background-color var(--cidec-transition-fast); }
.cidec-instructor-profile #instructor-profile .custom-tabs .nav-link:hover { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); }
.cidec-instructor-profile #instructor-profile .custom-tabs .nav-link.active { color: var(--cidec-text-inverse); background: var(--cidec-teal); }
.cidec-instructor-profile #instructor-profile .custom-tab-content { padding: 28px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-instructor-profile #instructor-profile .bio-section { margin: 0; }
.cidec-instructor-profile #instructor-profile :is(.bio-section, .stats-widget, .contact-widget) > h4 { margin: 0 0 20px; color: var(--cidec-navy-950); font: 700 1.5rem/1.35 Georgia, "Times New Roman", serif; }
.cidec-instructor-profile #instructor-profile .bio-section > h4::after { content: ""; display: block; width: 40px; height: 3px; margin-top: 12px; background: var(--cidec-gold); }
.cidec-instructor-profile #instructor-profile .bio-section p { margin: 0; color: var(--cidec-text); font-size: 1rem; line-height: 1.85; overflow-wrap: anywhere; }
.cidec-instructor-profile #instructor-profile .sidebar-widgets { gap: 24px; margin-top: 0; }
.cidec-instructor-profile #instructor-profile :is(.stats-widget, .contact-widget) { padding: 24px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-instructor-profile #instructor-profile .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cidec-instructor-profile #instructor-profile .stat-box { min-width: 0; padding: 16px 10px; background: var(--cidec-surface-muted); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-md); }
.cidec-instructor-profile #instructor-profile .stat-box:hover { border-color: var(--cidec-teal); transform: none; }
.cidec-instructor-profile #instructor-profile .stat-icon { width: 44px; height: 44px; margin: 0 auto 12px; color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); }
.cidec-instructor-profile #instructor-profile .stat-content h5 { margin-bottom: 6px; color: var(--cidec-navy-950); font-size: 1.5rem; line-height: 1.3; }
.cidec-instructor-profile #instructor-profile .stat-content p { color: var(--cidec-text-muted); font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere; }
.cidec-instructor-profile #instructor-profile .contact-widget p { margin: 0; font-size: .9375rem; line-height: 1.75; }
.cidec-instructor-profile #instructor-profile .contact-widget a { color: var(--cidec-teal-hover); text-decoration: underline; text-underline-offset: 3px; }
.cidec-instructor-profile #instructor-profile .contact-widget a:hover { color: var(--cidec-navy-950); }
.cidec-instructor-profile #instructor-profile #tab-courses .col-md-6 { display: flex; min-width: 0; }
.cidec-instructor-profile #instructor-profile .course-card { display: flex; flex-direction: column; width: 100%; overflow: hidden; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-instructor-profile #instructor-profile .course-image { position: relative; aspect-ratio: 16 / 10; background: var(--cidec-surface-muted); border-bottom: 1px solid var(--cidec-border); }
.cidec-instructor-profile #instructor-profile .course-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.cidec-instructor-profile #instructor-profile .course-price { position: absolute; right: 12px; bottom: 12px; max-width: calc(100% - 24px); padding: 7px 10px; color: var(--cidec-navy-950); background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-sm); box-shadow: var(--cidec-shadow-sm); font-size: .9375rem; line-height: 1.5; font-weight: 700; overflow-wrap: anywhere; }
.cidec-instructor-profile #instructor-profile .course-content { display: flex; flex: 1; flex-direction: column; gap: 16px; padding: 20px; }
.cidec-instructor-profile #instructor-profile .course-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.cidec-instructor-profile #instructor-profile .course-meta .level { padding: 5px 8px; color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-radius: var(--cidec-radius-sm); font-size: .75rem; line-height: 1.5; font-weight: 600; }
.cidec-instructor-profile #instructor-profile .course-content h5 { margin: 0; }
.cidec-instructor-profile #instructor-profile .instructor-course-link { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; color: var(--cidec-navy-950); text-decoration: none; }
.cidec-instructor-profile #instructor-profile .instructor-course-title { font: 700 1.125rem/1.5 Georgia, "Times New Roman", serif; overflow-wrap: anywhere; }
.cidec-instructor-profile #instructor-profile .instructor-course-action { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; max-width: 100%; padding: 11px 18px; color: var(--cidec-text-inverse); background: var(--cidec-teal); border: 1px solid var(--cidec-teal); border-radius: var(--cidec-radius-md); font: 700 .875rem/1.5 var(--default-font); transition: background-color var(--cidec-transition-fast), border-color var(--cidec-transition-fast); }
.cidec-instructor-profile #instructor-profile .instructor-course-link:hover .instructor-course-title { color: var(--cidec-teal-hover); text-decoration: underline; text-underline-offset: 3px; }
.cidec-instructor-profile #instructor-profile .instructor-course-link:hover .instructor-course-action { background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); }
.cidec-instructor-profile #instructor-profile .course-stats { margin-top: auto; color: var(--cidec-text-muted); font-size: .875rem; line-height: 1.6; }
.cidec-instructor-profile #instructor-profile .course-stats i { color: var(--cidec-teal-hover); }
.cidec-instructor-profile .main :is(a, button, [tabindex]):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
.cidec-instructor-profile .cidec-page-banner a:focus-visible { outline-color: var(--cidec-gold); }
.cidec-instructor-profile [data-aos]:focus-within { opacity: 1; transform: none; transition: none; }
@media (max-width: 1439px) {
  /* Keep existing shared floating controls clear of all profile information. */
  .cidec-instructor-profile #instructor-profile > .container { padding-right: 72px; }
}
@media (max-width: 1199px) {
  .cidec-instructor-profile .cidec-page-banner__container { display: flex; flex-direction: column; align-items: flex-start !important; gap: 16px; } /* Override the preserved Bootstrap alignment utility only within this banner. */
  .cidec-instructor-profile .cidec-page-banner__breadcrumbs { padding: 0; }
  .cidec-instructor-profile #instructor-profile .instructor-content-row > :is(.col-lg-8, .col-lg-4) { width: 100%; }
  .cidec-instructor-profile #instructor-profile .sidebar-widgets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}
@media (max-width: 991px) {
  .cidec-instructor-profile #instructor-profile .hero-content { flex-direction: column; align-items: flex-start; gap: 28px; padding: 28px; }
}
@media (max-width: 767px) {
  .cidec-instructor-profile #instructor-profile { padding: 28px 0 40px; }
  .cidec-instructor-profile #instructor-profile .hero-content { padding: 20px; gap: 24px; }
  .cidec-instructor-profile #instructor-profile .instructor-avatar img { width: 140px; height: 166px; }
  .cidec-instructor-profile #instructor-profile .instructor-info .title { font-size: 1rem; }
  .cidec-instructor-profile #instructor-profile .custom-tabs { gap: 4px; padding: 6px; }
  .cidec-instructor-profile #instructor-profile .custom-tabs .nav-item { flex: 1; }
  .cidec-instructor-profile #instructor-profile .custom-tabs .nav-link { width: 100%; padding: 11px 8px; gap: 6px; font-size: .875rem; }
  .cidec-instructor-profile #instructor-profile .custom-tab-content { padding: 20px; }
  .cidec-instructor-profile #instructor-profile :is(.bio-section, .stats-widget, .contact-widget) > h4 { font-size: 1.375rem; }
  .cidec-instructor-profile #instructor-profile .bio-section p { font-size: .9375rem; }
  .cidec-instructor-profile #instructor-profile .sidebar-widgets { display: flex; }
  .cidec-instructor-profile #instructor-profile :is(.stats-widget, .contact-widget) { padding: 20px; }
  .cidec-instructor-profile #instructor-profile .course-content { padding: 16px; }
}
@media (max-width: 359px) {
  .cidec-instructor-profile #instructor-profile .stats-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .cidec-instructor-profile .main *, .cidec-instructor-profile .main *::before, .cidec-instructor-profile .main *::after { animation: none !important; transition: none !important; }
  .cidec-instructor-profile .main [data-aos] { opacity: 1 !important; transform: none !important; }
}

/* Login only: standalone auth.css stays canonical for functional markup and other auth pages. */
.cidec-auth-login.auth-page { --auth-brand: var(--cidec-teal); --auth-brand-2: var(--cidec-teal-hover); --auth-ink: var(--cidec-navy-950); --auth-muted: var(--cidec-text-muted); --auth-line: var(--cidec-border); --auth-soft: var(--cidec-teal-soft); --auth-card: var(--cidec-surface); --auth-danger: var(--cidec-danger); color: var(--cidec-text); background: var(--cidec-bg); }
.cidec-auth-login .auth-shell { min-height: 100vh; min-height: 100svh; padding: 32px; }
.cidec-auth-login .auth-grid { width: min(1120px, 100%); min-height: 700px; grid-template-columns: minmax(280px, .95fr) minmax(360px, 1fr); border: 1px solid var(--cidec-border); border-bottom: 3px solid var(--cidec-gold); border-radius: var(--cidec-radius-xl); box-shadow: var(--cidec-shadow-lg); }
.cidec-auth-login .auth-brand { min-width: 0; padding: 40px; background: var(--cidec-navy-950); }
.cidec-auth-login .auth-brand::before { background-position: center top; }
.cidec-auth-login .auth-brand::after { background: linear-gradient(180deg, rgba(7, 26, 46, .8), rgba(7, 26, 46, .5) 38%, rgba(7, 26, 46, .94) 100%); }
.cidec-auth-login .brand-top { gap: 14px; }
.cidec-auth-login .brand-logo { width: 56px; height: 56px; filter: none; }
.cidec-auth-login .brand-name { font: 700 2.25rem/1.1 Georgia, "Times New Roman", serif; letter-spacing: .04em; }
.cidec-auth-login .brand-main h2 { max-width: 12ch; margin: 0 0 20px; color: var(--cidec-text-inverse); font: 700 clamp(2.125rem, 3.2vw, 3rem)/1.15 Georgia, "Times New Roman", serif; }
.cidec-auth-login .brand-main h2::after { content: ""; display: block; width: 52px; height: 3px; margin-top: 20px; background: var(--cidec-gold); }
.cidec-auth-login .brand-main p { max-width: 38ch; color: var(--cidec-text-inverse); font-size: 1rem; line-height: 1.75; }
.cidec-auth-login .badges { flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 24px; }
.cidec-auth-login .badge { max-width: 100%; min-height: 34px; padding: 7px 12px; color: var(--cidec-text-inverse); background: rgba(7, 94, 89, .72); border: 1px solid rgba(255, 255, 255, .35); border-radius: var(--cidec-radius-sm); font-size: .8125rem; line-height: 1.5; font-weight: 600; }
.cidec-auth-login .auth-panel { min-width: 0; padding: 44px; background: var(--cidec-surface); }
.cidec-auth-login .auth-panel header { margin-bottom: 28px; }
.cidec-auth-login .auth-panel h1 { margin: 0 0 12px; color: var(--cidec-navy-950); font: 700 clamp(1.875rem, 2.5vw, 2.25rem)/1.2 Georgia, "Times New Roman", serif; }
.cidec-auth-login .auth-panel .sub { color: var(--cidec-text-muted); font-size: 1rem; line-height: 1.65; }
.cidec-auth-login form { gap: 22px; margin-top: 0; }
.cidec-auth-login .field { min-width: 0; gap: 8px; }
.cidec-auth-login .label { flex-wrap: wrap; align-items: baseline; gap: 4px 12px; color: var(--cidec-navy-950); font-size: .9375rem; line-height: 1.5; font-weight: 700; }
.cidec-auth-login .hint { color: var(--cidec-text-muted); font-size: .8125rem; line-height: 1.5; font-weight: 500; }
.cidec-auth-login .control input { display: block; min-width: 0; min-height: 52px; padding: 13px 56px 13px 46px; color: var(--cidec-text); background: var(--cidec-surface); border: 1px solid color-mix(in srgb, var(--cidec-text-muted) 80%, var(--cidec-surface)); border-radius: var(--cidec-radius-md); font: inherit; font-size: 1rem; line-height: 1.5; font-weight: 500; transition: border-color var(--cidec-transition-fast), box-shadow var(--cidec-transition-fast); }
.cidec-auth-login .control input[type="email"] { padding-right: 14px; }
.cidec-auth-login .control input::placeholder { color: var(--cidec-text-muted); opacity: 1; }
.cidec-auth-login .control input:focus { border-color: var(--cidec-teal); outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
.cidec-auth-login .ico { color: var(--cidec-teal-hover); }
.cidec-auth-login .eye-btn { right: 4px; width: 44px; height: 44px; color: var(--cidec-teal-hover); border-radius: var(--cidec-radius-sm); }
.cidec-auth-login .eye-btn:is(:hover, :focus) { color: var(--cidec-teal-hover); border-color: var(--cidec-border); background: var(--cidec-teal-soft); }
.cidec-auth-login .actions { gap: 16px; margin-top: 2px; }
.cidec-auth-login .btn.btn-primary { min-height: 52px; padding: 12px 20px; color: var(--cidec-navy-950); background: var(--cidec-gold); border: 1px solid var(--cidec-gold); border-radius: var(--cidec-radius-md); font: inherit; font-size: 1rem; font-weight: 700; box-shadow: none; transition: background-color var(--cidec-transition-fast), border-color var(--cidec-transition-fast); }
.cidec-auth-login .btn-primary:is(:hover, :active) { color: var(--cidec-navy-950); background: var(--cidec-gold-hover); border-color: var(--cidec-gold-hover); filter: none; transform: none; }
.cidec-auth-login .links { display: grid; grid-template-columns: minmax(0, 1fr); justify-content: stretch; gap: 16px; margin-top: 0; color: var(--cidec-text-muted); font-size: .9375rem; line-height: 1.6; font-weight: 500; }
.cidec-auth-login a.link { color: var(--cidec-teal-hover); font-weight: 600; text-underline-offset: 3px; }
.cidec-auth-login .links > .link { display: inline-flex; align-items: center; min-height: 44px; justify-self: end; }
.cidec-auth-login .links > span { padding-top: 20px; border-top: 1px solid var(--cidec-border); text-align: center; }
.cidec-auth-login .links > span .link { display: flex; align-items: center; justify-content: center; min-height: 48px; margin-top: 10px; padding: 10px 16px; color: var(--cidec-teal); background: var(--cidec-surface); border: 1px solid var(--cidec-teal); border-radius: var(--cidec-radius-md); text-decoration: none; transition: color var(--cidec-transition-fast), background-color var(--cidec-transition-fast); }
.cidec-auth-login .links > span .link:hover { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal-hover); }
.cidec-auth-login .foot { justify-content: center; margin-top: 24px; color: var(--cidec-text-muted); font-size: .8125rem; line-height: 1.6; }
.cidec-auth-login .alert.error { color: var(--cidec-danger); border-color: var(--cidec-danger); background: var(--cidec-surface); border-radius: var(--cidec-radius-md); font-size: .9375rem; line-height: 1.6; overflow-wrap: anywhere; }
.cidec-auth-login :is(a, button):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
@media (max-width: 1100px) {
  .cidec-auth-login .auth-brand { padding: 32px; }
  .cidec-auth-login .auth-panel { padding: 36px; }
}
@media (max-width: 900px) {
  .cidec-auth-login .auth-shell { padding: 24px; }
  .cidec-auth-login .auth-grid { max-width: 660px; min-height: 0; grid-template-columns: minmax(0, 1fr); }
  .cidec-auth-login .auth-brand { min-height: 300px; gap: 24px; }
  .cidec-auth-login .brand-main { margin-top: 0; }
  .cidec-auth-login .brand-main h2 { max-width: none; font-size: 2rem; }
  .cidec-auth-login .badges { flex-direction: row; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
}
@media (max-width: 560px) {
  .cidec-auth-login .auth-shell { padding: 12px; }
  .cidec-auth-login .auth-grid { width: 100%; min-height: 0; border-radius: var(--cidec-radius-lg); }
  .cidec-auth-login .auth-brand { min-height: 0; padding: 24px 20px; gap: 20px; }
  .cidec-auth-login .brand-logo { width: 44px; height: 44px; }
  .cidec-auth-login .brand-name { font-size: 1.875rem; }
  .cidec-auth-login .brand-main h2 { margin-bottom: 14px; font-size: 1.75rem; line-height: 1.2; }
  .cidec-auth-login .brand-main h2::after { margin-top: 14px; }
  .cidec-auth-login .brand-main p { font-size: .9375rem; line-height: 1.6; }
  .cidec-auth-login .badges { gap: 6px; margin-top: 16px; }
  .cidec-auth-login .badge { min-height: 30px; padding: 5px 8px; font-size: .75rem; }
  .cidec-auth-login .auth-panel { padding: 28px 20px; }
  .cidec-auth-login .auth-panel header { margin-bottom: 24px; }
  .cidec-auth-login .auth-panel .sub { font-size: .9375rem; line-height: 1.6; }
  .cidec-auth-login form { gap: 20px; }
  .cidec-auth-login .label { display: grid; gap: 4px; }
  .cidec-auth-login .links > .link { justify-self: start; }
}
@media (prefers-reduced-motion: reduce) {
  .cidec-auth-login *, .cidec-auth-login *::before, .cidec-auth-login *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Register only: preserve auth.css, accepted Login rules and all registration contracts. */
.cidec-auth-register.auth-page { --auth-brand: var(--cidec-teal); --auth-brand-2: var(--cidec-teal-hover); --auth-ink: var(--cidec-navy-950); --auth-muted: var(--cidec-text-muted); --auth-line: var(--cidec-border); --auth-soft: var(--cidec-teal-soft); --auth-card: var(--cidec-surface); --auth-danger: var(--cidec-danger); color: var(--cidec-text); background: var(--cidec-navy-950); }
.cidec-auth-register .auth-shell { min-height: 100vh; min-height: 100svh; padding: 32px; }
.cidec-auth-register .auth-grid { width: min(1120px, 100%); min-height: 740px; grid-template-columns: minmax(280px, .95fr) minmax(360px, 1fr); border: 1px solid var(--cidec-border); border-bottom: 3px solid var(--cidec-gold); border-radius: var(--cidec-radius-xl); box-shadow: var(--cidec-shadow-lg); }
.cidec-auth-register .auth-brand { min-width: 0; padding: 40px; background: var(--cidec-navy-950); }
.cidec-auth-register .auth-brand::before { background-position: center top; }
.cidec-auth-register .auth-brand::after { background: linear-gradient(180deg, rgba(7, 26, 46, .8), rgba(7, 26, 46, .5) 38%, rgba(7, 26, 46, .94) 100%); }
.cidec-auth-register .brand-top { gap: 14px; }
.cidec-auth-register .brand-logo { width: 56px; height: 56px; filter: none; }
.cidec-auth-register .brand-name { font: 700 2.25rem/1.1 Georgia, "Times New Roman", serif; letter-spacing: .04em; }
.cidec-auth-register .brand-main h2 { max-width: 12ch; margin: 0 0 20px; font: 700 clamp(2.125rem, 3.2vw, 3rem)/1.15 Georgia, "Times New Roman", serif; }
.cidec-auth-register .brand-main h2::after { content: ""; display: block; width: 52px; height: 3px; margin-top: 20px; background: var(--cidec-gold); }
.cidec-auth-register .brand-main p { max-width: 38ch; color: var(--cidec-text-inverse); font-size: 1rem; line-height: 1.75; }
.cidec-auth-register .badges { flex-direction: column; align-items: flex-start; gap: 10px; }
.cidec-auth-register .badge { max-width: 100%; min-height: 34px; padding: 7px 12px; color: var(--cidec-text-inverse); background: rgba(7, 94, 89, .72); border-color: rgba(255, 255, 255, .35); border-radius: var(--cidec-radius-sm); font-size: .8125rem; line-height: 1.5; font-weight: 600; }
.cidec-auth-register .auth-panel { min-width: 0; padding: 44px; }
.cidec-auth-register .auth-panel header { margin-bottom: 28px; }
.cidec-auth-register .auth-panel h1 { margin: 0 0 12px; font: 700 clamp(1.875rem, 2.5vw, 2.25rem)/1.2 Georgia, "Times New Roman", serif; }
.cidec-auth-register .auth-panel .sub { font-size: 1rem; line-height: 1.65; }
.cidec-auth-register form { gap: 22px; margin-top: 0; }
.cidec-auth-register .field { min-width: 0; }
.cidec-auth-register .label { flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font-size: .9375rem; line-height: 1.5; font-weight: 700; }
.cidec-auth-register .hint { font-size: .8125rem; line-height: 1.5; font-weight: 500; }
.cidec-auth-register .control input { display: block; min-width: 0; min-height: 52px; padding: 13px 56px 13px 46px; color: var(--cidec-text); border: 1px solid color-mix(in srgb, var(--cidec-text-muted) 80%, var(--cidec-surface)); border-radius: var(--cidec-radius-md); font: inherit; font-size: 1rem; line-height: 1.5; font-weight: 500; transition: border-color var(--cidec-transition-fast), box-shadow var(--cidec-transition-fast); }
.cidec-auth-register .control :is(input[name="name"], input[name="email"]) { padding-right: 14px; }
.cidec-auth-register .control input::placeholder { color: var(--cidec-text-muted); opacity: 1; }
.cidec-auth-register .control input:focus { border-color: var(--cidec-teal); outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
.cidec-auth-register .ico { color: var(--cidec-teal-hover); }
.cidec-auth-register .eye-btn { right: 4px; width: 44px; height: 44px; color: var(--cidec-teal-hover); border-radius: var(--cidec-radius-sm); }
.cidec-auth-register .eye-btn:is(:hover, :focus) { border-color: var(--cidec-border); background: var(--cidec-teal-soft); }
.cidec-auth-register .actions { gap: 16px; margin-top: 2px; }
.cidec-auth-register .btn.btn-primary { min-height: 52px; padding: 12px 20px; color: var(--cidec-navy-950); background: var(--cidec-gold); border: 1px solid var(--cidec-gold); border-radius: var(--cidec-radius-md); font: inherit; font-weight: 700; box-shadow: none; transition: background-color var(--cidec-transition-fast), border-color var(--cidec-transition-fast); }
.cidec-auth-register .btn-primary:is(:hover, :active) { background: var(--cidec-gold-hover); border-color: var(--cidec-gold-hover); filter: none; transform: none; }
.cidec-auth-register .links { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 0; font-size: .9375rem; line-height: 1.6; font-weight: 500; }
.cidec-auth-register a.link { color: var(--cidec-teal-hover); font-weight: 600; text-underline-offset: 3px; }
.cidec-auth-register .links > .link { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 16px; color: var(--cidec-teal); border: 1px solid var(--cidec-teal); border-radius: var(--cidec-radius-md); text-align: center; text-decoration: none; transition: color var(--cidec-transition-fast), background-color var(--cidec-transition-fast); }
.cidec-auth-register .links > .link:hover { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal-hover); }
.cidec-auth-register .links > span { padding-top: 16px; border-top: 1px solid var(--cidec-border); text-align: center; font-size: .8125rem; line-height: 1.8; }
.cidec-auth-register .links > span a { text-decoration: underline; }
.cidec-auth-register .foot { justify-content: center; margin-top: 24px; font-size: .8125rem; line-height: 1.6; }
.cidec-auth-register .alert.error { color: var(--cidec-danger); border-color: var(--cidec-danger); background: var(--cidec-surface); border-radius: var(--cidec-radius-md); font-size: .9375rem; line-height: 1.6; overflow-wrap: anywhere; }
.cidec-auth-register .modal-backdrop { background: rgba(7, 26, 46, .72); }
.cidec-auth-register .modal-card { max-height: calc(100svh - 36px); overflow-y: auto; padding: 28px; border-radius: var(--cidec-radius-xl); box-shadow: var(--cidec-shadow-lg); }
.cidec-auth-register .modal-card h3 { font-family: Georgia, "Times New Roman", serif; }
.cidec-auth-register :is(a, button):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
@media (max-width: 1100px) {
  .cidec-auth-register .auth-brand { padding: 32px; }
  .cidec-auth-register .auth-panel { padding: 36px; }
}
@media (max-width: 900px) {
  .cidec-auth-register .auth-shell { padding: 24px; }
  .cidec-auth-register .auth-grid { max-width: 660px; min-height: 0; grid-template-columns: minmax(0, 1fr); }
  .cidec-auth-register .auth-brand { min-height: 300px; gap: 24px; }
  .cidec-auth-register .brand-main { margin-top: 0; }
  .cidec-auth-register .brand-main h2 { max-width: none; font-size: 2rem; }
  .cidec-auth-register .badges { flex-direction: row; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
}
@media (max-width: 560px) {
  .cidec-auth-register .auth-shell { padding: 12px; }
  .cidec-auth-register .auth-grid { width: 100%; min-height: 0; border-radius: var(--cidec-radius-lg); }
  .cidec-auth-register .auth-brand { min-height: 0; padding: 24px 20px; gap: 20px; }
  .cidec-auth-register .brand-logo { width: 44px; height: 44px; }
  .cidec-auth-register .brand-name { font-size: 1.875rem; }
  .cidec-auth-register .brand-main h2 { margin-bottom: 14px; font-size: 1.75rem; line-height: 1.2; }
  .cidec-auth-register .brand-main h2::after { margin-top: 14px; }
  .cidec-auth-register .brand-main p { font-size: .9375rem; line-height: 1.6; }
  .cidec-auth-register .badges { gap: 6px; margin-top: 16px; }
  .cidec-auth-register .badge { min-height: 30px; padding: 5px 8px; font-size: .75rem; }
  .cidec-auth-register .auth-panel { padding: 28px 20px; }
  .cidec-auth-register .auth-panel header { margin-bottom: 24px; }
  .cidec-auth-register .auth-panel .sub { font-size: .9375rem; line-height: 1.6; }
  .cidec-auth-register form { gap: 20px; }
  .cidec-auth-register .label { display: grid; gap: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .cidec-auth-register *, .cidec-auth-register *::before, .cidec-auth-register *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* My courses only: retain enrollment/payment decisions, card hooks and shared layout. */
body.cidec-my-courses.student-dashboard-page { color: var(--cidec-text); background-color: var(--cidec-bg) !important; } /* Preserved Bootstrap bg-light utility. */
.cidec-my-courses .student-shell { max-width: 1248px; }
.cidec-my-courses .student-hero.cidec-page-banner { padding: 32px; border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-md); }
.cidec-my-courses .cidec-student-banner-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-bottom: 24px; }
.cidec-my-courses .cidec-page-banner__breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: .875rem; }
.cidec-my-courses .cidec-page-banner__breadcrumbs li + li::before { content: "/"; padding-right: 8px; color: var(--cidec-text-inverse); }
.cidec-my-courses .student-hero .muted { color: var(--cidec-text-inverse); line-height: 1.7; }
.cidec-my-courses .cidec-student-greeting { margin-top: 4px; color: var(--cidec-text-inverse); font-size: 1.25rem; line-height: 1.5; overflow-wrap: anywhere; }
.cidec-my-courses .student-hero .cidec-student-metrics { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; } /* Preserved Bootstrap d-flex utility. */
@media (min-width: 1200px) { .cidec-my-courses .student-hero .cidec-student-metrics { flex: 0 0 480px; } }
.cidec-my-courses .student-hero .metric .small { overflow-wrap: anywhere; }
.cidec-my-courses .student-hero .metric { flex: 1 1 108px; min-width: 0; padding: 16px; border-color: rgba(255,255,255,.3); border-radius: var(--cidec-radius-md); background: rgba(255,255,255,.08); }
.cidec-my-courses .student-hero .metric .value { margin-bottom: 8px; color: var(--cidec-gold); font-size: 1.625rem; line-height: 1.2; }
.cidec-my-courses .toolbar-panel { padding: 20px; border-color: var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-my-courses .toolbar-panel .btn-group { display: flex; flex-wrap: wrap; gap: 8px; overflow: visible; }
.cidec-my-courses .toolbar-panel .btn-group > .btn { flex: 0 1 auto; margin-left: 0; border-radius: var(--cidec-radius-sm); }
.cidec-my-courses .student-shell .btn { min-height: 44px; padding: 10px 14px; border-radius: var(--cidec-radius-md); font-size: .875rem; line-height: 1.5; font-weight: 600; white-space: normal; overflow-wrap: anywhere; box-shadow: none; transition: color var(--cidec-transition-fast), background-color var(--cidec-transition-fast), border-color var(--cidec-transition-fast); }
.cidec-my-courses .student-shell :is(.btn-primary,.btn-success) { color: var(--cidec-text-inverse); background: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-my-courses .student-shell :is(.btn-primary,.btn-success):hover { color: var(--cidec-text-inverse); background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); transform: none; }
/* Existing payment-action icons identify commercial actions; tracking remains teal. */
.cidec-my-courses .student-card .btn-success:has(:is(.bi-credit-card,.bi-send-check,.bi-arrow-repeat)) { color: var(--cidec-navy-950); background: var(--cidec-gold); border-color: var(--cidec-gold); }
.cidec-my-courses .student-card .btn-success:has(:is(.bi-credit-card,.bi-send-check,.bi-arrow-repeat)):hover { color: var(--cidec-navy-950); background: var(--cidec-gold-hover); border-color: var(--cidec-gold-hover); }
.cidec-my-courses .student-shell :is(.btn-outline-primary,.btn-outline-secondary,.btn-outline-success) { color: var(--cidec-teal-hover); background: var(--cidec-surface); border-color: var(--cidec-teal); }
.cidec-my-courses .student-shell :is(.btn-outline-primary,.btn-outline-secondary,.btn-outline-success):hover { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal-hover); }
.cidec-my-courses .toolbar-panel .btn.active { color: var(--cidec-text-inverse); background: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-my-courses .student-shell .btn-outline-danger { color: var(--cidec-danger); background: var(--cidec-surface); border-color: var(--cidec-danger); }
.cidec-my-courses .student-shell .btn-outline-danger:hover { color: var(--cidec-text-inverse); background: var(--cidec-danger); }
.cidec-my-courses #searchInput { min-height: 48px; border-color: color-mix(in srgb, var(--cidec-text-muted) 80%, var(--cidec-surface)); border-radius: var(--cidec-radius-md); color: var(--cidec-text); background: var(--cidec-surface); font-size: .9375rem; }
.cidec-my-courses #searchInput::placeholder { color: var(--cidec-text-muted); opacity: 1; }
.cidec-my-courses .student-shell :is(a,button,input):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
.cidec-my-courses .student-hero :is(a,button):focus-visible { outline-color: var(--cidec-gold); }
.cidec-my-courses .student-shell a:not(.btn):not(.cidec-page-banner__back-link) { color: var(--cidec-teal-hover); text-decoration: underline; text-underline-offset: 3px; }
.cidec-my-courses #cardsWrap > .course-card { display: flex; min-width: 0; background: transparent; border: 0; box-shadow: none; transform: none; }
.cidec-my-courses #cardsWrap > .course-card:hover { box-shadow: none; transform: none; }
.cidec-my-courses .student-card { display: flex; flex-direction: column; border-color: var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-my-courses .student-card .thumb { flex: 0 0 auto; background: var(--cidec-surface-muted); }
.cidec-my-courses .student-card .thumb > .badge { top: auto !important; bottom: 0; font-size: .75rem; line-height: 1.5; } /* Preserve Bootstrap top-0 while avoiding collision with payment badges. */
.cidec-my-courses .cidec-student-card-body { flex: 1; min-width: 0; padding: 20px !important; } /* Preserved Bootstrap p-3 utility. */
.cidec-my-courses .student-card h2 { color: var(--cidec-navy-950); font-size: 1.125rem; line-height: 1.5; font-weight: 700; overflow-wrap: anywhere; }
.cidec-my-courses .student-shell :is(.text-secondary,.text-muted) { color: var(--cidec-text-muted) !important; } /* Preserved Bootstrap text utilities. */
.cidec-my-courses .student-card .small { font-size: .875rem; line-height: 1.65; }
.cidec-my-courses :is(.status-pill,.cert-pill) { max-width: 100%; padding: 6px 10px; white-space: normal; font-size: .8125rem; line-height: 1.5; font-weight: 600; }
.cidec-my-courses :is(.status-paid,.cert-ready) { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); }
.cidec-my-courses :is(.status-pending,.cert-pending) { color: var(--cidec-navy-950); background: var(--cidec-gold-soft); }
.cidec-my-courses .status-review { color: var(--cidec-navy-800); background: var(--cidec-teal-soft); }
.cidec-my-courses .status-observed { color: var(--cidec-navy-950); background: var(--cidec-gold-soft); }
.cidec-my-courses :is(.status-rejected,.cert-rejected) { color: var(--cidec-danger); background: var(--cidec-surface-muted); }
.cidec-my-courses .cert-none { color: var(--cidec-text-muted); background: var(--cidec-surface-muted); }
.cidec-my-courses .meta-line { gap: 10px; }
.cidec-my-courses .meta-item { min-width: 0; padding: 12px; border-color: var(--cidec-border); border-radius: var(--cidec-radius-md); background: var(--cidec-surface-muted); }
.cidec-my-courses .meta-label { margin-bottom: 4px; color: var(--cidec-text-muted); font-size: .8125rem; line-height: 1.5; }
.cidec-my-courses .meta-value { color: var(--cidec-text); font-size: .9375rem; line-height: 1.5; overflow-wrap: anywhere; }
.cidec-my-courses .student-shell .alert { padding: 18px; border-radius: var(--cidec-radius-md); font-size: .9375rem; line-height: 1.7; overflow-wrap: anywhere; }
.cidec-my-courses .student-shell .alert-warning { color: var(--cidec-navy-950); background: var(--cidec-gold-soft); border-color: var(--cidec-gold); }
.cidec-my-courses .student-shell :is(.alert-success,.alert-info) { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal); }
.cidec-my-courses .student-shell :is(.alert-danger,.text-danger) { color: var(--cidec-danger) !important; } /* Preserve Bootstrap error utilities. */
.cidec-my-courses .student-card form .border.rounded { padding: 14px !important; border-radius: var(--cidec-radius-md) !important; } /* Preserved Bootstrap certificate confirmation utilities. */
.cidec-my-courses .student-card .form-check { padding-left: 28px; }
.cidec-my-courses .student-card .form-check-input { width: 20px; height: 20px; margin-left: -28px; border-color: var(--cidec-text-muted); }
.cidec-my-courses .student-card .form-check-input:checked { background-color: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-my-courses .student-card form .form-check-label { color: var(--cidec-text); }
.cidec-my-courses .empty-state { padding: 40px 24px; border-color: var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-my-courses .empty-state h2 { color: var(--cidec-navy-950); font: 700 1.75rem/1.3 Georgia, "Times New Roman", serif; }
@media (max-width: 1439px) {
  /* Reserve the right rail: shared WhatsApp and scroll-top keep their approved positions. */
  .cidec-my-courses .student-shell { padding-right: calc(72px + env(safe-area-inset-right, 0px)); }
}
@media (max-width: 1199px) {
  .cidec-my-courses .student-hero.cidec-page-banner { padding: 24px; }
}
@media (max-width: 767px) {
  .cidec-my-courses .cidec-student-banner-heading { align-items: flex-start; flex-direction: column; gap: 12px; margin-bottom: 20px; }
  .cidec-my-courses .student-hero.cidec-page-banner { padding: 20px; }
  .cidec-my-courses .student-hero .cidec-student-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cidec-my-courses .student-hero .metric { padding: 12px; }
  .cidec-my-courses .toolbar-panel { padding: 16px; }
  .cidec-my-courses .toolbar-panel .btn { padding: 9px 10px; font-size: .8125rem; }
  .cidec-my-courses .cidec-student-card-body { padding: 16px !important; }
  .cidec-my-courses .student-card h2 { font-size: 1.0625rem; }
  .cidec-my-courses .student-card form .border.rounded { padding: 12px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .cidec-my-courses .student-shell *, .cidec-my-courses .student-shell *::before, .cidec-my-courses .student-shell *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Mis cursos — approved Option B. Existing data, forms and filtering stay intact. */
.cidec-my-courses #cardsWrap { row-gap: 20px; }
.cidec-my-courses #cardsWrap > .course-card { width: 100%; margin-top: 0; }
.cidec-my-courses .student-card { display: grid; grid-template-columns: 220px minmax(0, 1fr); align-items: start; gap: 24px; width: 100%; padding: 24px; }
.cidec-my-courses .student-card .thumb { aspect-ratio: 4 / 3; border-radius: var(--cidec-radius-md); overflow: hidden; }
.cidec-my-courses .student-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.cidec-my-courses .cidec-student-card-body { display: grid !important; grid-template-columns: minmax(0, 1fr) 270px; align-items: start; gap: 24px !important; padding: 0 !important; } /* Neutralize preserved Bootstrap layout utilities. */
.cidec-my-courses .cidec-student-course-info { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.cidec-my-courses .cidec-student-course-status { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cidec-my-courses .student-card .cidec-student-date { color: var(--cidec-text-muted) !important; background: var(--cidec-surface-muted) !important; padding: 6px 10px; white-space: normal; font-size: .75rem; line-height: 1.5; } /* Existing date badge keeps its real value. */
.cidec-my-courses .cidec-student-course-actions { display: flex; flex-direction: column; gap: 16px; min-width: 0; padding-left: 24px; border-left: 1px solid var(--cidec-border); }
.cidec-my-courses .cidec-student-course-actions > .border-top { border-color: var(--cidec-border) !important; }
@media (min-width: 992px) and (max-width: 1199px) {
  .cidec-my-courses .student-card { grid-template-columns: 160px minmax(0, 1fr); gap: 20px; padding: 20px; }
  .cidec-my-courses .cidec-student-card-body { grid-template-columns: minmax(0, 1fr) 240px; gap: 20px !important; }
  .cidec-my-courses .cidec-student-course-actions { padding-left: 20px; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .cidec-my-courses .student-card { grid-template-columns: 144px minmax(0, 1fr); gap: 20px; padding: 20px; }
  .cidec-my-courses .cidec-student-card-body { grid-template-columns: minmax(0, 1fr); gap: 20px !important; }
  .cidec-my-courses .cidec-student-course-actions { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--cidec-border); }
}
@media (max-width: 767px) {
  .cidec-my-courses #cardsWrap { row-gap: 16px; }
  .cidec-my-courses .student-card { grid-template-columns: 80px minmax(0, 1fr); gap: 16px 12px; padding: 16px; }
  .cidec-my-courses .student-card .thumb { aspect-ratio: 1; }
  .cidec-my-courses .cidec-student-card-body { display: contents !important; }
  .cidec-my-courses .cidec-student-course-info { gap: 12px; }
  .cidec-my-courses .cidec-student-course-actions { grid-column: 1 / -1; padding: 16px 0 0; border-left: 0; border-top: 1px solid var(--cidec-border); }
  .cidec-my-courses .student-card h2 { font-size: 1rem; }
  .cidec-my-courses .meta-line { grid-template-columns: minmax(0, 1fr); }
  .cidec-my-courses .meta-item { padding: 10px; }
}
@media (max-width: 359px) {
  .cidec-my-courses .student-card { grid-template-columns: 60px minmax(0, 1fr); padding: 12px; gap: 14px 10px; }
  .cidec-my-courses :is(.status-pill,.cert-pill) { padding: 5px 8px; }
}

@media (max-width: 359px) {
  .cidec-my-courses .cidec-student-course-info { display: contents; }
  .cidec-my-courses .cidec-student-course-info > :not(.cidec-student-course-status) { grid-column: 1 / -1; }
}

/* Student profile V2. Presentation only; legacy handlers and dynamic navigation preserved. */
body.cidec-student-profile.bg-light { background: var(--cidec-bg) !important; color: var(--cidec-text); }
.cidec-student-profile .profile-shell { --accent: var(--cidec-teal); --accent2: var(--cidec-teal-hover); --line: var(--cidec-border); --ink: var(--cidec-text); --muted-ink: var(--cidec-text-muted); max-width: 1248px; }
.cidec-student-profile .profile-shell :is(.flex-grow-1,.profile-panel,.profile-sidebar-column,.profile-header .d-flex > div) { min-width: 0; }
.cidec-student-profile .profile-header.cidec-page-banner { padding: 32px; border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-md); }
.cidec-student-profile .cidec-profile-banner-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-bottom: 24px; }
.cidec-student-profile .cidec-page-banner__breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; list-style: none; font-size: .875rem; }
.cidec-student-profile .cidec-page-banner__breadcrumbs li + li::before { content: "/"; padding-right: 8px; color: var(--cidec-text-inverse); }
.cidec-student-profile .profile-header > .d-flex > .d-flex { display: grid !important; grid-template-columns: 56px minmax(0,1fr) 420px; width: 100%; }
.cidec-student-profile .profile-avatar { width: 56px; height: 56px; border-radius: var(--cidec-radius-md); background: rgba(242,184,36,.16); border-color: rgba(242,184,36,.5); color: var(--cidec-gold); font-size: 1.25rem; }
.cidec-student-profile .cidec-profile-greeting { font-size: 1.25rem; line-height: 1.5; color: var(--cidec-text-inverse); overflow-wrap: anywhere; }
.cidec-student-profile .profile-header .muted { color: var(--cidec-text-inverse); line-height: 1.7; }
.cidec-student-profile .profile-chip { max-width: 100%; padding: 7px 10px; font-size: .8125rem; line-height: 1.5; overflow-wrap: anywhere; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.24); }
.cidec-student-profile .profile-stats { width: 100%; gap: 8px; }
.cidec-student-profile .profile-stat { min-width: 0; padding: 14px; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.3); border-radius: var(--cidec-radius-md); }
.cidec-student-profile .profile-stat .value { margin-bottom: 8px; font-size: 1.625rem; line-height: 1.2; color: var(--cidec-gold); }
.cidec-student-profile .profile-stat .label { font-size: .75rem; line-height: 1.5; color: var(--cidec-text-inverse); overflow-wrap: anywhere; }
.cidec-student-profile .profile-layout { grid-template-columns: 240px minmax(0,1fr); gap: 24px; }
.cidec-student-profile .card-soft { border-color: var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); background: var(--cidec-surface); }
.cidec-student-profile .profile-panel > .card-soft > .card-body { padding: 28px; }
.cidec-student-profile .profile-panel { padding: 0; background: transparent; }
.cidec-student-profile .profile-panel .section-title { padding: 0; text-align: left; }
.cidec-student-profile .profile-sidebar-head { padding: 20px; background: var(--cidec-surface-muted); }
.cidec-student-profile .profile-sidebar-user { color: var(--cidec-navy-950); line-height: 1.5; overflow-wrap: anywhere; }
.cidec-student-profile .profile-sidebar-email { white-space: normal; overflow-wrap: anywhere; line-height: 1.5; }
.cidec-student-profile .profile-nav { padding: 12px; gap: 6px; }
.cidec-student-profile .profile-nav-link { min-height: 48px; padding: 12px; border-radius: var(--cidec-radius-sm); color: var(--cidec-navy-950); font-size: .875rem; line-height: 1.5; }
.cidec-student-profile .profile-nav-link i { color: var(--cidec-teal-hover); }
.cidec-student-profile .profile-nav-link:is(:hover,.active) { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); }
.cidec-student-profile .profile-nav-link.active i { color: var(--cidec-teal-hover); }
.cidec-student-profile .profile-panel :is(h2,.section-title) { color: var(--cidec-navy-950); font: 700 1.5rem/1.35 Georgia, "Times New Roman", serif; }
.cidec-student-profile .profile-panel h3 { color: var(--cidec-navy-950); font-size: 1.125rem; line-height: 1.5; overflow-wrap: anywhere; }
.cidec-student-profile .profile-shell :is(.small,.form-text,.profile-list-meta,.profile-section-head p,.form-hint) { font-size: .875rem; line-height: 1.7; }
.cidec-student-profile .profile-shell :is(.text-secondary,.text-muted,.form-hint,.form-text,.profile-kicker,.profile-overview-item .title,.identity-snapshot .label) { color: var(--cidec-text-muted) !important; } /* Preserve Bootstrap text utilities. */
.cidec-student-profile .profile-section-head { margin-bottom: 24px; padding-bottom: 16px; }
.cidec-student-profile .identity-snapshot { padding: 20px; border-color: var(--cidec-border); border-radius: var(--cidec-radius-md); background: var(--cidec-surface-muted); }
.cidec-student-profile .profile-overview-item { padding: 16px; border-color: var(--cidec-border); border-radius: var(--cidec-radius-md); background: var(--cidec-surface); }
.cidec-student-profile .profile-shell :is(.value,.mono,.fw-semibold,.profile-list-item-title) { overflow-wrap: anywhere; }
.cidec-student-profile .profile-list { gap: 14px; }
.cidec-student-profile .profile-list-item { padding: 18px; border-color: var(--cidec-border); border-radius: var(--cidec-radius-md); }
.cidec-student-profile .profile-list-item-title { color: var(--cidec-navy-950); font-size: 1rem; line-height: 1.5; }
.cidec-student-profile .profile-list-meta { gap: 6px 16px; color: var(--cidec-text-muted); }
.cidec-student-profile .certificate-list-link:is(:hover,.active) .profile-list-item { border-color: var(--cidec-teal); box-shadow: var(--cidec-shadow-sm); }
.cidec-student-profile .certificate-list-link.active .profile-list-item { background: var(--cidec-teal-soft); }
.cidec-student-profile .certificate-detail-panel.is-loading::after { border-color: var(--cidec-teal-soft); border-top-color: var(--cidec-teal); }
.cidec-student-profile .profile-shell .btn { min-height: 44px; padding: 10px 14px; border-radius: var(--cidec-radius-md); font-size: .875rem; font-weight: 600; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; box-shadow: none; transition: color var(--cidec-transition-fast),background-color var(--cidec-transition-fast),border-color var(--cidec-transition-fast); }
.cidec-student-profile .profile-shell :is(.btn-primary,.btn-success) { color: var(--cidec-text-inverse); background: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-student-profile .profile-shell :is(.btn-primary,.btn-success):hover { color: var(--cidec-text-inverse); background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); transform: none; }
.cidec-student-profile .profile-shell :is(.btn-outline-primary,.btn-outline-secondary,.btn-soft) { color: var(--cidec-teal-hover); background: var(--cidec-surface); border-color: var(--cidec-teal); }
.cidec-student-profile .profile-shell :is(.btn-outline-primary,.btn-outline-secondary,.btn-soft):hover { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal-hover); }
.cidec-student-profile .profile-panel .btn:has(:is(.bi-credit-card,.bi-arrow-repeat)) { color: var(--cidec-navy-950); background: var(--cidec-gold); border-color: var(--cidec-gold); }
.cidec-student-profile .profile-panel .btn:has(:is(.bi-credit-card,.bi-arrow-repeat)):hover { background: var(--cidec-gold-hover); border-color: var(--cidec-gold-hover); }
.cidec-student-profile .profile-header .btn-light.text-primary { color: var(--cidec-teal-hover) !important; background: var(--cidec-surface); border-color: var(--cidec-border); } /* Preserve Bootstrap text-primary hook. */
.cidec-student-profile .profile-header .btn-light.text-primary:hover { background: var(--cidec-teal-soft); }
.cidec-student-profile .profile-header .btn-outline-light { color: var(--cidec-text-inverse); border-color: rgba(255,255,255,.6); background: transparent; }
.cidec-student-profile .profile-header .btn-outline-light:hover { color: var(--cidec-navy-950); background: var(--cidec-gold); border-color: var(--cidec-gold); }
.cidec-student-profile .profile-shell :is(a,button,input,select,[tabindex]):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
.cidec-student-profile .profile-header :is(a,button):focus-visible { outline-color: var(--cidec-gold); }
.cidec-student-profile .profile-shell .form-label { color: var(--cidec-text); font-size: .9375rem; line-height: 1.5; }
.cidec-student-profile .profile-shell :is(.form-control,.form-select,.input-group-text) { min-height: 48px; min-width: 0; border-color: color-mix(in srgb,var(--cidec-text-muted) 80%,var(--cidec-surface)); color: var(--cidec-text); background-color: var(--cidec-surface); font-size: .9375rem; }
.cidec-student-profile .profile-shell :is(.form-control,.form-select) { border-radius: var(--cidec-radius-md); }
.cidec-student-profile .profile-shell :is(.form-control,.form-select):focus { border-color: var(--cidec-teal); box-shadow: 0 0 0 3px var(--cidec-teal-soft); }
.cidec-student-profile .profile-shell .form-control:disabled { color: var(--cidec-text-muted); background: var(--cidec-surface-muted); opacity: 1; }
.cidec-student-profile .phone-input-group .form-control { flex-basis: 80px; }
.cidec-student-profile .profile-shell form > .d-flex { flex-wrap: wrap; }
.cidec-student-profile .profile-shell .badge { max-width: 100%; padding: 6px 10px; white-space: normal; font-size: .8125rem; line-height: 1.5; }
.cidec-student-profile .profile-shell :is(.bg-primary-subtle,.bg-info) { color: var(--cidec-teal-hover) !important; background: var(--cidec-teal-soft) !important; } /* Existing semantic Bootstrap badge classes. */
.cidec-student-profile .profile-shell .bg-primary-subtle.text-primary { color: var(--cidec-teal-hover) !important; }
.cidec-student-profile .profile-shell .bg-success { color: var(--cidec-teal-hover) !important; background: var(--cidec-teal-soft) !important; }
.cidec-student-profile .profile-shell .bg-warning { color: var(--cidec-navy-950) !important; background: var(--cidec-gold-soft) !important; }
.cidec-student-profile .profile-status { max-width: 100%; padding: 6px 10px; white-space: normal; font-size: .8125rem; line-height: 1.5; }
.cidec-student-profile .profile-status:is(.success,.info) { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); }
.cidec-student-profile .profile-status.warning { color: var(--cidec-navy-950); background: var(--cidec-gold-soft); }
.cidec-student-profile .profile-status.danger { color: var(--cidec-danger); background: var(--cidec-surface-muted); }
.cidec-student-profile .profile-status.muted { color: var(--cidec-text-muted); background: var(--cidec-surface-muted); }
.cidec-student-profile .profile-shell .alert { padding: 18px; border-radius: var(--cidec-radius-md); font-size: .9375rem; line-height: 1.7; overflow-wrap: anywhere; }
.cidec-student-profile .profile-shell .alert-warning { color: var(--cidec-navy-950); background: var(--cidec-gold-soft); border-color: var(--cidec-gold); }
.cidec-student-profile .profile-shell :is(.alert-info,.alert-success) { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal); }
.cidec-student-profile .profile-shell .alert-danger { color: var(--cidec-danger); }
.cidec-student-profile .security-panel { background: var(--cidec-surface); border-color: var(--cidec-border); }
.cidec-student-profile :is(.security-lock,.status-icon) { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); }
.cidec-student-profile .profile-empty { color: var(--cidec-text-muted); }
.cidec-student-profile .profile-table-wrap { max-width: 100%; border-color: var(--cidec-border); border-radius: var(--cidec-radius-md); }
.cidec-student-profile .profile-purchase-table { min-width: 760px; }
.cidec-student-profile .profile-purchase-table thead th { padding: 14px; color: var(--cidec-text-muted); background: var(--cidec-surface-muted); font-size: .8125rem; }
.cidec-student-profile .profile-purchase-table tbody td { padding: 16px 14px; color: var(--cidec-text); font-size: .875rem; line-height: 1.6; }
.cidec-student-profile .profile-purchase-table .purchase-title { min-width: 180px; color: var(--cidec-navy-950); line-height: 1.5; overflow-wrap: anywhere; }
@media (max-width: 1439px) {
  /* Keep shared floating controls unchanged and reserve their right rail. */
  .cidec-student-profile .profile-shell { padding-right: calc(72px + env(safe-area-inset-right,0px)); }
}
@media (max-width: 1199px) {
  .cidec-student-profile .profile-header.cidec-page-banner { padding: 24px; }
  .cidec-student-profile .profile-header > .d-flex > .d-flex { grid-template-columns: 56px minmax(0,1fr); }
  .cidec-student-profile .profile-header > .d-flex > .d-flex > .d-flex { grid-column: 1 / -1; }
  .cidec-student-profile .profile-layout { grid-template-columns: 210px minmax(0,1fr); gap: 20px; }
}
@media (max-width: 991px) {
  .cidec-student-profile .profile-mobile-nav { padding: 20px; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); background: var(--cidec-surface); box-shadow: var(--cidec-shadow-sm); }
}
@media (max-width: 767px) {
  .cidec-student-profile .profile-header.cidec-page-banner { padding: 20px; }
  .cidec-student-profile .cidec-profile-banner-heading { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
  .cidec-student-profile .profile-header > .d-flex > .d-flex { grid-template-columns: 44px minmax(0,1fr); }
  .cidec-student-profile .profile-avatar { width: 44px; height: 44px; }
  .cidec-student-profile .profile-panel > .card-soft > .card-body { padding: 18px; }
  .cidec-student-profile .profile-mobile-nav { padding: 16px; }
  .cidec-student-profile .profile-overview-grid { grid-template-columns: minmax(0,1fr); }
  .cidec-student-profile :is(.profile-panel .d-flex.align-items-center.justify-content-between,.profile-panel .d-flex.align-items-start.justify-content-between) { flex-wrap: wrap; gap: 12px; }
  .cidec-student-profile .profile-mobile-purchases .btn { width: 100%; }
  .cidec-student-profile .profile-list-item { padding: 14px; }
  .cidec-student-profile .identity-snapshot { padding: 16px; }
  .cidec-student-profile .profile-stat { padding: 12px; }
  .cidec-student-profile .profile-header .profile-chip { flex-wrap: wrap; }
}
@media (max-width: 359px) {
  .cidec-student-profile .profile-header > .d-flex > .d-flex { grid-template-columns: minmax(0,1fr); }
  .cidec-student-profile .profile-header.cidec-page-banner { padding: 16px; }
  .cidec-student-profile .profile-shell .btn { padding: 10px 12px; }
  .cidec-student-profile .profile-panel > .card-soft > .card-body { padding: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .cidec-student-profile .profile-shell *, .cidec-student-profile .profile-shell *::before, .cidec-student-profile .profile-shell *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Student profile Option B: compact banner, dashboard, forms and academic lists.
   Presentation only. Original PHP, responsive purchase loops and AJAX are retained. */
.cidec-student-profile .profile-header.cidec-page-banner { padding: 24px 32px; }
.cidec-student-profile .cidec-profile-banner-heading { margin-bottom: 0; }
.cidec-student-profile .profile-account-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin: -8px 0 24px; }
.cidec-student-profile .profile-account-actions .btn { color: var(--cidec-teal-hover) !important; background: var(--cidec-surface); border: 1px solid var(--cidec-border); }
.cidec-student-profile .profile-account-actions .btn:hover { background: var(--cidec-teal-soft); border-color: var(--cidec-teal); }
.cidec-student-profile .profile-layout { align-items: start; grid-template-columns: 232px minmax(0,1fr); }
.cidec-student-profile .profile-sidebar { position: sticky; top: 104px; overflow: hidden; }
.cidec-student-profile .profile-sidebar-head { padding: 24px 20px; background: var(--cidec-surface); border-bottom: 1px solid var(--cidec-border); }
.cidec-student-profile .profile-sidebar-head::before { content: ""; display: block; width: 36px; height: 3px; margin-bottom: 16px; border-radius: 3px; background: var(--cidec-gold); }
.cidec-student-profile .profile-nav-link.active { border-left: 3px solid var(--cidec-teal); padding-left: 9px; font-weight: 700; }
.cidec-student-profile .profile-dashboard-grid { display: grid; grid-template-columns: 64px minmax(0,1fr); align-items: start; gap: 16px; }
.cidec-student-profile .profile-dashboard-welcome { padding: 24px; margin-bottom: 24px; border: 1px solid var(--cidec-border); border-top: 3px solid var(--cidec-gold); border-radius: var(--cidec-radius-lg); background: var(--cidec-surface); box-shadow: var(--cidec-shadow-sm); }
.cidec-student-profile .profile-dashboard-welcome .profile-avatar { width: 64px; height: 64px; color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border: 1px solid var(--cidec-border); border-radius: 50%; }
.cidec-student-profile .profile-dashboard-welcome .cidec-profile-greeting { color: var(--cidec-navy-950); font: 700 1.75rem/1.3 Georgia,serif; }
.cidec-student-profile .profile-dashboard-welcome .muted { color: var(--cidec-text-muted); }
.cidec-student-profile .profile-account-intro > .d-flex { display: grid !important; grid-template-columns: minmax(0,1fr); gap: 6px !important; margin-top: 12px; } /* Existing flex utility becomes an account-details stack. */
.cidec-student-profile .profile-dashboard-welcome .profile-chip { display: flex; align-items: baseline; gap: 8px; padding: 0; border: 0; background: transparent; color: var(--cidec-text-muted); }
.cidec-student-profile .profile-dashboard-welcome .profile-chip i { color: var(--cidec-teal-hover); }
.cidec-student-profile .profile-dashboard-metrics { grid-column: 1 / -1; margin-top: 8px; }
.cidec-student-profile .profile-dashboard-metrics .profile-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.cidec-student-profile .profile-dashboard-metrics .profile-stat { position: relative; display: flex; flex-direction: column; padding: 18px; border: 1px solid var(--cidec-border); background: var(--cidec-bg); }
.cidec-student-profile .profile-dashboard-metrics .profile-stat::before { content: ""; width: 22px; height: 3px; margin-bottom: 14px; background: var(--cidec-teal); border-radius: 3px; }
.cidec-student-profile .profile-dashboard-metrics .profile-stat:nth-child(3)::before { background: var(--cidec-gold); }
.cidec-student-profile .profile-dashboard-metrics .profile-stat .value { color: var(--cidec-navy-950); font-size: 1.875rem; margin-bottom: 4px; }
.cidec-student-profile .profile-dashboard-metrics .profile-stat .label { color: var(--cidec-text-muted); font-size: .8125rem; }
.cidec-student-profile .profile-summary-content { border: 0; background: transparent; box-shadow: none; }
.cidec-student-profile .profile-panel > .profile-summary-content > .card-body { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); align-items: start; gap: 16px; padding: 0; }
.cidec-student-profile .profile-summary-content > .card-body > :nth-child(-n+2) { grid-column: 1 / -1; margin-bottom: 0 !important; } /* Retain existing heading/subtitle utilities. */
.cidec-student-profile :is(.profile-summary-account,.profile-summary-identity) { min-width: 0; padding: 22px; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); background: var(--cidec-surface); box-shadow: var(--cidec-shadow-sm); }
.cidec-student-profile .profile-card-title { display: flex; align-items: center; gap: 10px; padding-bottom: 16px; margin-bottom: 20px; border-bottom: 1px solid var(--cidec-border); font-weight: 700; }
.cidec-student-profile .profile-card-title i { color: var(--cidec-teal-hover); }
.cidec-student-profile .profile-summary-account > .mb-2 { padding: 14px 0; border-bottom: 1px solid var(--cidec-border); }
.cidec-student-profile .profile-summary-account > .mb-2:last-child { border: 0; }
.cidec-student-profile .profile-summary-identity .identity-snapshot { padding: 16px; }
.cidec-student-profile .profile-section-head { border-bottom: 0; padding-bottom: 0; margin-bottom: 24px; }
.cidec-student-profile .profile-form-title { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.cidec-student-profile .profile-form-layout { display: grid; grid-template-columns: minmax(0,1fr) 210px; gap: 20px; align-items: start; }
.cidec-student-profile .profile-form-card { min-width: 0; }
.cidec-student-profile .profile-form-card > .card-body { padding: 28px; }
.cidec-student-profile .profile-context-card { padding: 24px; border-radius: var(--cidec-radius-lg); background: var(--cidec-teal-soft); border: 1px solid var(--cidec-border); }
.cidec-student-profile .profile-context-card > i { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 20px; border-radius: 50%; background: var(--cidec-surface); color: var(--cidec-teal-hover); font-size: 1.5rem; }
.cidec-student-profile .profile-context-card h3 { font-weight: 700; }
.cidec-student-profile .profile-context-card p { margin-bottom: 0 !important; } /* Existing hint is reused rather than duplicated. */
.cidec-student-profile :is(#contactForm,#identityForm) { row-gap: 8px; }
.cidec-student-profile :is(#contactForm,#identityForm) > .d-flex { padding-top: 20px; margin-top: 24px; border-top: 1px solid var(--cidec-border); }
.cidec-student-profile .profile-identity-notice { margin-bottom: 24px; }
.cidec-student-profile .profile-identity-notice > .form-hint { border-left: 3px solid var(--cidec-gold); padding: 12px 16px; background: var(--cidec-gold-soft); border-radius: 0 var(--cidec-radius-sm) var(--cidec-radius-sm) 0; }
.cidec-student-profile .profile-identity-notice .alert { margin-bottom: 0; }
.cidec-student-profile .profile-identity-card .card-body { padding: 28px; }
.cidec-student-profile .profile-identity-card #identityForm > .col-12:has(#profileDni) { max-width: 440px; }
.cidec-student-profile .profile-panel[data-profile-panel="compras"] > .card-soft,
.cidec-student-profile .profile-panel[data-profile-panel="certificados"] > .card-soft { border: 0; background: transparent; box-shadow: none; }
.cidec-student-profile .profile-panel[data-profile-panel="compras"] > .card-soft > .card-body,
.cidec-student-profile .profile-panel[data-profile-panel="certificados"] > .card-soft > .card-body { padding: 0; }
.cidec-student-profile .profile-table-wrap { overflow: visible; border: 0; border-radius: 0; }
.cidec-student-profile .profile-purchase-table { display: block; min-width: 0; margin-bottom: 0; }
.cidec-student-profile .profile-purchase-table thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.cidec-student-profile .profile-purchase-table tbody { display: grid; gap: 14px; }
.cidec-student-profile .profile-purchase-table tbody tr { display: grid; grid-template-columns: minmax(0,1fr) 95px 145px; grid-template-areas: "program amount action" "operation state action" "date state action"; gap: 6px 20px; padding: 22px; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-md); background: var(--cidec-surface); box-shadow: var(--cidec-shadow-sm); }
.cidec-student-profile .profile-purchase-table tbody td { min-width: 0; padding: 0; border: 0; background: transparent; box-shadow: none; white-space: normal !important; } /* Existing Bootstrap nowrap cells now wrap within each compact row. */
.cidec-student-profile .profile-purchase-table .purchase-program { grid-area: program; display: flex; align-items: start; gap: 12px; }
.cidec-student-profile .profile-purchase-table .purchase-title { min-width: 0; font-size: .9375rem; font-weight: 700; }
.cidec-student-profile .purchase-icon { flex: 0 0 38px; display: grid; place-items: center; width: 38px; height: 38px; color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-radius: var(--cidec-radius-sm); font-size: 1.25rem; }
.cidec-student-profile .profile-purchase-table .purchase-operation { grid-area: operation; color: var(--cidec-text-muted); padding-left: 50px; }
.cidec-student-profile .profile-purchase-table .purchase-date { grid-area: date; color: var(--cidec-text-muted); padding-left: 50px; }
.cidec-student-profile .profile-purchase-table .purchase-amount { grid-area: amount; }
.cidec-student-profile .profile-purchase-table .purchase-state { grid-area: state; }
.cidec-student-profile .profile-purchase-table .purchase-action { grid-area: action; align-self: center; padding-left: 16px; border-left: 1px solid var(--cidec-border); }
.cidec-student-profile .profile-purchase-table .purchase-action .btn { width: 100%; }
.cidec-student-profile .profile-purchase-mobile-card { background: var(--cidec-surface); box-shadow: var(--cidec-shadow-sm); }
.cidec-student-profile .profile-purchase-mobile-card .profile-list-meta { display: grid; grid-template-columns: minmax(0,1fr); margin-top: 14px; }
.cidec-student-profile .profile-purchase-mobile-card .profile-list-meta span:nth-child(3) { font-weight: 700; color: var(--cidec-navy-950); font-size: 1.125rem; }
.cidec-student-profile .profile-purchase-mobile-card .btn { padding-top: 12px; border-width: 1px; }
.cidec-student-profile .profile-certificate-library { display: grid; grid-template-columns: minmax(0,1fr); margin: 0; gap: 24px; }
.cidec-student-profile .profile-certificate-library > :is(.col-xl-5,.col-xl-7) { width: 100%; padding: 0; margin: 0; }
.cidec-student-profile .profile-certificate-row { display: grid; grid-template-columns: 44px minmax(0,1fr) 16px; gap: 6px 16px; align-items: center; background: var(--cidec-surface); box-shadow: var(--cidec-shadow-sm); }
.cidec-student-profile .profile-certificate-icon { grid-row: 1 / 3; width: 44px; height: 44px; display: grid; place-items: center; border-radius: var(--cidec-radius-sm); background: var(--cidec-teal-soft); color: var(--cidec-teal-hover); font-size: 1.5rem; }
.cidec-student-profile .profile-certificate-row > .profile-list-item-title { grid-column: 2; }
.cidec-student-profile .profile-certificate-row > .d-flex { grid-column: 2; flex-wrap: wrap; justify-content: flex-start !important; margin-top: 0 !important; } /* Keep status/date pair together using existing markup. */
.cidec-student-profile .profile-certificate-chevron { grid-column: 3; grid-row: 1 / 3; color: var(--cidec-teal-hover); }
.cidec-student-profile .certificate-list-link.active .profile-list-item { border-left: 4px solid var(--cidec-teal); padding-left: 15px; }
.cidec-student-profile .certificate-detail-panel > .identity-snapshot { padding: 24px !important; background: var(--cidec-surface); border-top: 3px solid var(--cidec-gold); box-shadow: var(--cidec-shadow-sm); } /* Override preserved Bootstrap p-3 on the AJAX-replaced fragment. */
.cidec-student-profile .certificate-detail-panel .profile-overview-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.cidec-student-profile .certificate-detail-panel .profile-overview-item { background: var(--cidec-bg); }
.cidec-student-profile .profile-security-heading { display: flex; align-items: start; gap: 16px; }
.cidec-student-profile .profile-security-heading .security-lock { flex: 0 0 52px; width: 52px; height: 52px; }
.cidec-student-profile .security-panel { border: 0; box-shadow: none; background: transparent; }
.cidec-student-profile .profile-panel > .security-panel > .profile-security-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 20px; padding: 0; }
.cidec-student-profile .profile-security-grid > :is(.status-row,.profile-password-card) { min-width: 0; margin: 0; padding: 24px; background: var(--cidec-surface); border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-student-profile .profile-password-card .status-row { border: 0; margin: 0; padding: 0; }
.cidec-student-profile .profile-password-card .btn { width: auto !important; margin-left: 48px; } /* Preserve the existing password link and its w-100 hook. */
@media (max-width:1199px) {
  .cidec-student-profile .profile-layout { grid-template-columns: 210px minmax(0,1fr); gap: 20px; }
  .cidec-student-profile .profile-form-layout { grid-template-columns: minmax(0,1fr); }
  .cidec-student-profile .profile-context-card { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 4px 16px; }
  .cidec-student-profile .profile-context-card > i { grid-row: 1 / 3; margin-bottom: 0; }
  .cidec-student-profile .profile-context-card :is(h3,p) { grid-column: 2; }
  .cidec-student-profile .profile-panel > .profile-summary-content > .card-body,
  .cidec-student-profile .profile-panel > .security-panel > .profile-security-grid { grid-template-columns: minmax(0,1fr); }
  .cidec-student-profile .profile-purchase-table tbody tr { grid-template-columns: minmax(0,1fr) 130px; grid-template-areas: "program amount" "operation state" "date action"; gap: 10px 16px; padding: 20px; }
  .cidec-student-profile .profile-purchase-table .purchase-action { border-left: 0; padding-left: 0; }
}
@media (max-width:991px) {
  .cidec-student-profile .profile-layout { grid-template-columns: minmax(0,1fr); }
  .cidec-student-profile .profile-mobile-nav { padding: 16px; }
  .cidec-student-profile .profile-dashboard-metrics .profile-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
  .cidec-student-profile .profile-header.cidec-page-banner { padding: 20px; }
  .cidec-student-profile .cidec-profile-banner-heading { margin-bottom: 0; gap: 8px; }
  .cidec-student-profile .profile-account-actions { justify-content: flex-start; margin-bottom: 20px; }
  .cidec-student-profile .profile-account-actions :is(form,.btn) { flex: 1 1 100%; }
  .cidec-student-profile .profile-account-actions form .btn { width: 100%; }
  .cidec-student-profile .profile-dashboard-welcome { padding: 18px; }
  .cidec-student-profile .profile-dashboard-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .cidec-student-profile .profile-dashboard-welcome .cidec-profile-greeting { font-size: 1.5rem; }
  .cidec-student-profile .profile-dashboard-welcome .profile-avatar { width: 52px; height: 52px; }
  .cidec-student-profile .profile-dashboard-metrics .profile-stat { padding: 12px; }
  .cidec-student-profile :is(.profile-summary-account,.profile-summary-identity,.profile-context-card) { padding: 18px; }
  .cidec-student-profile .profile-context-card { display: block; }
  .cidec-student-profile .profile-context-card > i { margin-bottom: 12px; }
  .cidec-student-profile .profile-identity-card .card-body { padding: 18px; }
  .cidec-student-profile .profile-form-card > .card-body { padding: 18px; }
  .cidec-student-profile :is(#contactForm,#identityForm) > .d-flex { flex-direction: column; }
  .cidec-student-profile .profile-certificate-row { grid-template-columns: 32px minmax(0,1fr); gap: 8px 10px; padding: 14px; }
  .cidec-student-profile .profile-certificate-icon { width: 32px; height: 38px; font-size: 1.25rem; }
  .cidec-student-profile .profile-certificate-chevron { display: none; }
  .cidec-student-profile .certificate-list-link.active .profile-list-item { padding-left: 11px; }
  .cidec-student-profile .certificate-detail-panel > .identity-snapshot { padding: 16px !important; }
  .cidec-student-profile .certificate-detail-panel .profile-overview-grid { grid-template-columns: minmax(0,1fr); }
  .cidec-student-profile .profile-security-heading { flex-wrap: wrap; }
  .cidec-student-profile .profile-security-grid > :is(.status-row,.profile-password-card) { padding: 18px; }
  .cidec-student-profile .profile-password-card .btn { width: 100% !important; margin-left: 0; }
}
@media (max-width:359px) {
  .cidec-student-profile .profile-dashboard-welcome,
  .cidec-student-profile :is(.profile-summary-account,.profile-summary-identity,.profile-context-card) { padding: 14px; }
  .cidec-student-profile .profile-dashboard-metrics .profile-stats { gap: 8px; }
  .cidec-student-profile .profile-dashboard-metrics .profile-stat { padding: 10px; }
  .cidec-student-profile .profile-dashboard-metrics .profile-stat .value { font-size: 1.5rem; }
}

/* Change password V2. Existing security logic, fields and JavaScript are canonical. */
body.cidec-change-password.bg-light { background: var(--cidec-bg) !important; color: var(--cidec-text); } /* Override the existing Bootstrap background utility only on this page. */
.cidec-change-password .cidec-password-shell { max-width: 1160px; }
.cidec-change-password .cidec-password-banner { padding: 28px 32px; border-radius: var(--cidec-radius-lg); box-shadow: var(--cidec-shadow-sm); }
.cidec-change-password .cidec-password-banner-content { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; width: 100%; }
.cidec-change-password .cidec-password-banner .cidec-page-banner__title { min-width: 0; font-size: clamp(2rem,3.3vw,2.75rem); overflow-wrap: anywhere; }
.cidec-change-password .cidec-password-banner .cidec-page-banner__back-link { flex-shrink: 0; min-height: 44px; padding: 10px 16px; border-color: rgba(255,255,255,.65); border-radius: var(--cidec-radius-md); text-decoration: none; }
.cidec-change-password .cidec-password-banner .cidec-page-banner__back-link:hover { color: var(--cidec-navy-950); background: var(--cidec-gold); border-color: var(--cidec-gold); }
.cidec-change-password .cidec-password-intro { margin: 20px 0 28px; font-size: 1rem; line-height: 1.7; }
.cidec-change-password .cidec-password-layout { display: grid; grid-template-columns: minmax(240px,.43fr) minmax(0,1fr); align-items: start; gap: 24px; }
.cidec-change-password .cidec-password-layout > .card-soft { min-width: 0; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); background: var(--cidec-surface); box-shadow: var(--cidec-shadow-md); }
.cidec-change-password .cidec-password-guide > .card-body { padding: 28px; }
.cidec-change-password .cidec-password-guide-icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 24px; color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-radius: var(--cidec-radius-md); font-size: 1.6rem; }
.cidec-change-password .cidec-password-layout h2 { margin: 0 0 18px; color: var(--cidec-navy-950); font: 700 1.5rem/1.35 Georgia,"Times New Roman",serif; overflow-wrap: anywhere; }
.cidec-change-password .cidec-password-guide p { color: var(--cidec-text-muted); font-size: .9375rem; line-height: 1.7; }
.cidec-change-password .cidec-password-guide ul { display: grid; gap: 12px; margin: 20px 0 0; padding: 20px 0 0 20px; border-top: 1px solid var(--cidec-border); color: var(--cidec-text-muted); font-size: .875rem; line-height: 1.7; }
.cidec-change-password .cidec-password-guide li::marker { color: var(--cidec-teal-hover); }
.cidec-change-password .cidec-password-form-card > .card-body.p-4 { padding: 32px !important; } /* Preserve Bootstrap p-4 while using the V2 spacing. */
.cidec-change-password .cidec-password-form-title { padding-bottom: 20px; border-bottom: 1px solid var(--cidec-border); }
.cidec-change-password .cidec-password-shell :is(.text-muted,.form-text,.hint) { color: var(--cidec-text-muted) !important; font-size: .875rem; line-height: 1.7; } /* Neutralize inherited text utility colors within this page. */
.cidec-change-password .cidec-password-shell .form-label { margin-bottom: 8px; color: var(--cidec-text); font-size: .9375rem; font-weight: 600; line-height: 1.5; }
.cidec-change-password .cidec-password-form-card .form-control { min-height: 50px; min-width: 0; padding: 12px 56px 12px 14px; border: 1px solid var(--cidec-text-muted); border-radius: var(--cidec-radius-md); color: var(--cidec-text); background: var(--cidec-surface); font-size: 1rem; }
.cidec-change-password .cidec-password-form-card .form-control:focus { border-color: var(--cidec-teal); box-shadow: 0 0 0 3px var(--cidec-teal-soft); }
.cidec-change-password .cidec-password-form-card .cidec-password-wide-field { width: 100%; }
.cidec-change-password .cidec-password-form-card .pw-toggle { display: grid; place-items: center; right: 4px; width: 44px; height: 44px; padding: 0; border-radius: var(--cidec-radius-sm); color: var(--cidec-teal-hover); background: transparent; }
.cidec-change-password .cidec-password-form-card .pw-toggle:hover { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); }
.cidec-change-password .cidec-password-form-card .strength-meta { gap: 12px; }
.cidec-change-password .cidec-password-form-card .strength-bar { background: var(--cidec-border); }
.cidec-change-password .cidec-password-form-card .pill { min-width: 44px; padding: 4px 10px; border-color: var(--cidec-border); color: var(--cidec-text-muted); background: var(--cidec-surface-muted); text-align: center; font-size: .8125rem; }
.cidec-change-password .cidec-password-form-card form > .d-flex { flex-wrap: wrap; padding-top: 8px; }
.cidec-change-password .cidec-password-shell .btn { min-height: 44px; padding: 10px 18px; border-radius: var(--cidec-radius-md); font-size: .875rem; font-weight: 600; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; transition: color var(--cidec-transition-fast),background-color var(--cidec-transition-fast),border-color var(--cidec-transition-fast); }
.cidec-change-password .cidec-password-form-card .btn-primary { color: var(--cidec-text-inverse); background: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-change-password .cidec-password-form-card .btn-primary:hover { color: var(--cidec-text-inverse); background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); transform: none; }
.cidec-change-password .cidec-password-form-card .btn-primary:disabled { color: var(--cidec-text-muted); background: var(--cidec-surface-muted); border-color: var(--cidec-border); opacity: 1; }
.cidec-change-password .cidec-password-form-card .btn-outline-secondary { color: var(--cidec-teal-hover); background: var(--cidec-surface); border-color: var(--cidec-teal); }
.cidec-change-password .cidec-password-form-card .btn-outline-secondary:hover { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal-hover); }
.cidec-change-password .cidec-password-form-card a:not(.btn) { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 0; color: var(--cidec-teal-hover); text-decoration: underline; text-underline-offset: 3px; }
.cidec-change-password .cidec-password-form-card hr { border-color: var(--cidec-border); opacity: 1; }
.cidec-change-password .cidec-password-shell :is(a,button,input):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; }
.cidec-change-password .cidec-password-banner a:focus-visible { outline-color: var(--cidec-gold); }
.cidec-change-password .cidec-password-shell .alert { padding: 18px; border-radius: var(--cidec-radius-md); font-size: .9375rem; line-height: 1.7; overflow-wrap: anywhere; }
.cidec-change-password .cidec-password-shell .alert-success { color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-color: var(--cidec-teal); }
.cidec-change-password .cidec-password-shell .alert-danger { color: var(--cidec-danger); border-color: var(--cidec-danger); }
@media (max-width:1439px) {
  /* Reserve the shared floating controls' right rail without changing them. */
  .cidec-change-password .cidec-password-shell { padding-right: calc(72px + env(safe-area-inset-right,0px)); }
}
@media (max-width:991px) {
  .cidec-change-password .cidec-password-layout { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .cidec-change-password .cidec-password-guide > .card-body { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 4px 20px; }
  .cidec-change-password .cidec-password-guide-icon { grid-row: 1 / 3; margin-bottom: 0; }
  .cidec-change-password .cidec-password-guide :is(h2,p) { grid-column: 2; margin-bottom: 8px; }
  .cidec-change-password .cidec-password-guide ul { grid-column: 1 / -1; }
}
@media (max-width:767px) {
  .cidec-change-password .cidec-password-banner { padding: 20px; }
  .cidec-change-password .cidec-password-banner-content { flex-direction: column; align-items: flex-start; gap: 16px; }
  .cidec-change-password .cidec-password-guide > .card-body { display: block; padding: 20px; }
  .cidec-change-password .cidec-password-guide-icon { margin-bottom: 18px; }
  .cidec-change-password .cidec-password-form-card > .card-body.p-4 { padding: 20px !important; }
  .cidec-change-password .cidec-password-form-card form > .d-flex { flex-direction: column; }
  .cidec-change-password .cidec-password-layout h2 { font-size: 1.375rem; }
}
@media (max-width:359px) {
  .cidec-change-password .cidec-password-banner { padding: 16px; }
  .cidec-change-password .cidec-password-banner .cidec-page-banner__title { font-size: 1.875rem; }
  .cidec-change-password .cidec-password-guide > .card-body { padding: 16px; }
  .cidec-change-password .cidec-password-form-card > .card-body.p-4 { padding: 16px !important; }
  .cidec-change-password .cidec-password-layout h2 { font-size: 1.25rem; }
}
@media (prefers-reduced-motion:reduce) {
  .cidec-change-password .cidec-password-shell *, .cidec-change-password .cidec-password-shell *::before, .cidec-change-password .cidec-password-shell *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* CIDEC_PREINSCRIPCION_OPTION_B_01. Autonomous layout; existing form and payment JS retained. */
.cidec-preinscription {
  background: var(--cidec-bg);
  color: var(--cidec-text);
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.65;
}
.cidec-preinscription .container { max-width: 1200px; padding-inline: 24px; }
/* The autonomous banner has stacked content rather than the shared two-item breadcrumb row. */
.cidec-preinscription .pay-hero .cidec-page-banner__container { display: block; }
.cidec-preinscription .pay-hero.cidec-page-banner {
  margin: 0;
  padding: 36px 0 30px;
  border-radius: 0;
  border-bottom: 3px solid var(--cidec-gold);
  background: linear-gradient(110deg, var(--cidec-navy-950), var(--cidec-navy-800));
  box-shadow: none;
  color: white;
}
.cidec-preinscription .preinscription-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; color: #c4d5df; }
.cidec-preinscription .cidec-page-banner__title { margin-block: 0 8px !important; font: 700 clamp(36px, 4vw, 50px)/1.15 Georgia, "Times New Roman", serif; color: var(--cidec-gold); }
/* Overrides the legacy Bootstrap text-white-50 utility in this autonomous banner. */
.cidec-preinscription .cidec-page-banner__back-link { display: inline-flex; align-items: center; min-height: 44px; color: #fff !important; }
.cidec-preinscription .cidec-page-banner__back-link:hover { color: var(--cidec-gold) !important; }
.cidec-preinscription .preinscription-context { max-width: 780px; color: #e3edf3; overflow-wrap: anywhere; }
.cidec-preinscription .pay-stepper { gap: 14px; margin-top: 24px !important; }
.cidec-preinscription .preinscription-step-item { display: flex; align-items: center; gap: 9px; min-width: 0; }
.cidec-preinscription .pay-step { flex: 0 0 28px; color: #fff; background: #ffffff12; border-color: #ffffff45; font-size: 12px; }
.cidec-preinscription .pay-step.active { color: var(--cidec-navy-950); background: var(--cidec-gold); border-color: var(--cidec-gold); }
.cidec-preinscription .pay-crumb { color: #edf3f7; opacity: 1; font-size: 13px; }
.cidec-preinscription .pay-stepper > .bi { color: #adc6d5; font-size: 11px; }
.cidec-preinscription .preinscription-content { padding-top: 32px; padding-bottom: max(48px, env(safe-area-inset-bottom)); }
.cidec-preinscription .preinscription-intro { margin-bottom: 24px; }
.cidec-preinscription .preinscription-intro h2 { margin: 0 0 6px; font: 700 28px/1.3 Georgia, "Times New Roman", serif; color: var(--cidec-navy-950); }
.cidec-preinscription .preinscription-intro p { margin: 0; color: #516679; }
.cidec-preinscription .preinscription-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px; margin: 0; }
.cidec-preinscription .preinscription-layout > .col-lg-8,
.cidec-preinscription .preinscription-layout > .col-lg-4 { width: auto; min-width: 0; padding: 0; margin: 0; }
.cidec-preinscription .card { border: 1px solid var(--cidec-border); border-radius: 18px; box-shadow: var(--cidec-shadow-sm); background: #fff; color: var(--cidec-text); overflow: hidden; }
.cidec-preinscription .preinscription-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px; border-bottom: 1px solid #e5ecf1; }
.cidec-preinscription .preinscription-card-heading h3 { display: flex; align-items: center; gap: 12px; font-size: 19px; font-weight: 700; line-height: 1.4; color: var(--cidec-navy-900); }
.cidec-preinscription .preinscription-card-heading h3 > .bi { font-size: 22px; }
.cidec-preinscription .preinscription-profile-badge { display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border-radius: 12px; background: var(--cidec-teal-soft); color: #075e59; font-size: 12px; font-weight: 650; line-height: 1.4; flex: 0 0 auto; }
.cidec-preinscription .card-body { padding: 24px; }
.cidec-preinscription .preinscription-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; margin: 0; }
.cidec-preinscription .preinscription-fields > div { width: auto; min-width: 0; padding: 0; margin: 0; }
.cidec-preinscription .preinscription-phone-field { grid-column: 1 / -1; }
.cidec-preinscription .form-label { margin-bottom: 7px; color: #344d60; font-size: 13px; font-weight: 650; }
.cidec-preinscription .form-control,
.cidec-preinscription .form-select { min-height: 48px; border: 1px solid #cbd8e2; border-radius: 10px; background-color: #fff; color: var(--cidec-text); font-size: 15px; box-shadow: none; }
.cidec-preinscription .form-control:disabled { background-color: #f5f8fb; color: #344d60; opacity: 1; }
.cidec-preinscription .form-control:not(:disabled),
.cidec-preinscription .form-select { border-color: #7d8f9e; }
.cidec-preinscription .input-group > .form-control { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.cidec-preinscription #dialBadge { padding-inline: 16px; border-color: #cbd8e2; border-radius: 10px 0 0 10px; background: var(--cidec-surface-muted); color: #344d60; font-size: 14px; }
.cidec-preinscription .country-code-select { font-weight: 600; min-width: 0; padding-right: 32px; }
.cidec-preinscription .form-text,
.cidec-preinscription .locked-hint { margin-top: 6px; color: #526779; font-size: 12px; }
.cidec-preinscription .alert { border-radius: 12px; font-size: 13px; line-height: 1.65; }
.cidec-preinscription .alert-info { border-color: #b8dfdb; background: #eff9f7; color: #075e59; }
.cidec-preinscription .preinscription-identity-note { margin-bottom: 22px; padding: 14px 16px; }
.cidec-preinscription a { color: #075e59; text-underline-offset: 3px; }
.cidec-preinscription a:hover { color: var(--cidec-navy-950); }
.cidec-preinscription :is(a,button,input,select) { scroll-margin-block: 12px; }
.cidec-preinscription .preinscription-guidance-card { margin-top: 20px; }
.cidec-preinscription .preinscription-payer-note { padding: 16px; }
.cidec-preinscription .preinscription-payer-note .small { font-size: 13px; }
.cidec-preinscription .preinscription-payment-method { margin-top: 20px; }
.cidec-preinscription .payment-option { padding: 16px; border: 1px solid var(--cidec-border); border-radius: 12px; transition: border-color 160ms ease, background-color 160ms ease; }
.cidec-preinscription .payment-option:hover,
.cidec-preinscription .payment-option.selected { border-color: #87c6c0; background: #f2faf8; }
.cidec-preinscription .payment-option > .text-center { display: flex; align-items: center; gap: 16px; text-align: left !important; }
.cidec-preinscription .payment-icon { margin: 0; display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; background: #e1f1ee; border-radius: 10px; color: #075e59; font-size: 22px; }
.cidec-preinscription .payment-option h6 { color: var(--cidec-navy-900); font-size: 15px; font-weight: 700; }
/* Legacy text-muted utility is local to this page's real content. */
.cidec-preinscription .text-muted { color: #526779 !important; }
.cidec-preinscription .preinscription-summary-column { align-self: start; position: sticky; top: 24px; }
.cidec-preinscription .preinscription-course { padding-bottom: 20px; margin-bottom: 0 !important; border-bottom: 1px solid #e5ecf1; }
/* The existing image and missing-image branch keep their inline markup and data. */
.cidec-preinscription .preinscription-course > img,
.cidec-preinscription .preinscription-course > .bg-secondary { width: 112px !important; height: 100px !important; flex: 0 0 112px; border-radius: 10px !important; object-fit: cover; }
.cidec-preinscription .preinscription-course > div:not(.bg-secondary) { min-width: 0; }
.cidec-preinscription .preinscription-course .fw-semibold { font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
.cidec-preinscription .preinscription-price-line { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-block: 20px; font-size: 13px; }
.cidec-preinscription .preinscription-price-line > .fw-semibold { white-space: nowrap; }
.cidec-preinscription .preinscription-total { align-items: center; gap: 12px; padding: 15px 16px; border-radius: 12px; background: var(--cidec-teal-soft); color: var(--cidec-navy-900); font-size: 18px; font-weight: 700; }
.cidec-preinscription .preinscription-total > .fw-semibold { color: #075e59; white-space: nowrap; }
.cidec-preinscription .preinscription-summary-note { margin-top: 16px !important; font-size: 13px; line-height: 1.6; }
.cidec-preinscription .preinscription-terms { margin-block: 22px; padding-left: 30px; font-size: 12px; line-height: 1.75; }
.cidec-preinscription .form-check-input { width: 18px; height: 18px; margin-top: 4px; margin-left: -30px; border-color: #7d8f9e; cursor: pointer; accent-color: var(--cidec-teal); }
.cidec-preinscription .form-check-input:checked { background-color: var(--cidec-teal); border-color: var(--cidec-teal); }
.cidec-preinscription .preinscription-actions { display: flex; flex-direction: column; gap: 10px !important; }
.cidec-preinscription .btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 11px 20px; border-radius: 12px; font-size: 14px; font-weight: 700; transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease; }
.cidec-preinscription .btn-primary { background: var(--cidec-gold); border-color: var(--cidec-gold); color: var(--cidec-navy-950); }
.cidec-preinscription .btn-primary:hover,
.cidec-preinscription .btn-primary:active { background: var(--cidec-gold-hover); border-color: var(--cidec-gold-hover); color: var(--cidec-navy-950); }
.cidec-preinscription .btn-primary:disabled { background: var(--cidec-gold-soft); border-color: #d7c694; color: #526779; opacity: 1; }
.cidec-preinscription .btn-outline-secondary { border-color: var(--cidec-teal); color: #075e59; background: #fff; }
.cidec-preinscription .btn-outline-secondary:hover,
.cidec-preinscription .btn-outline-secondary:active { border-color: var(--cidec-teal-hover); background: var(--cidec-teal-hover); color: #fff; }
.cidec-preinscription :is(a,button,input,select):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
.cidec-preinscription .cidec-page-banner a:focus-visible { outline-color: var(--cidec-gold); }
.cidec-preinscription :is(.form-control,.form-select):focus { border-color: var(--cidec-teal); box-shadow: 0 0 0 3px #0b7a751a; }
@media (max-width: 991px) {
  .cidec-preinscription .preinscription-layout { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .cidec-preinscription .preinscription-summary-column { position: static; }
}
@media (max-width: 575px) {
  .cidec-preinscription .container { padding-inline: 18px; }
  .cidec-preinscription .pay-hero.cidec-page-banner { padding-block: 26px 24px; }
  .cidec-preinscription .preinscription-eyebrow { font-size: 10px; letter-spacing: .13em; }
  .cidec-preinscription .cidec-page-banner__title { font-size: 36px; }
  .cidec-preinscription .preinscription-context { font-size: 12px; }
  .cidec-preinscription .pay-stepper { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
  .cidec-preinscription .preinscription-step-item { flex-direction: column; gap: 7px; text-align: center; }
  .cidec-preinscription .pay-step { flex-basis: 28px; }
  .cidec-preinscription .pay-crumb { font-size: 11px; min-height: 36px; }
  .cidec-preinscription .pay-stepper > .bi { display: none; }
  .cidec-preinscription .preinscription-content { padding-top: 26px; }
  .cidec-preinscription .preinscription-intro h2 { font-size: 26px; }
  .cidec-preinscription .preinscription-intro p { font-size: 14px; }
  .cidec-preinscription .preinscription-card-heading { padding: 20px 16px; gap: 12px; flex-wrap: wrap; }
  .cidec-preinscription .preinscription-card-heading h3 { font-size: 18px; gap: 10px; }
  .cidec-preinscription .preinscription-profile-badge { font-size: 11px; padding: 6px 10px; }
  .cidec-preinscription .card-body { padding: 18px 16px; }
  .cidec-preinscription .preinscription-fields { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .cidec-preinscription .preinscription-course { gap: 14px !important; }
  .cidec-preinscription .preinscription-course > img,
  .cidec-preinscription .preinscription-course > .bg-secondary { width: 96px !important; height: 92px !important; flex-basis: 96px; }
  .cidec-preinscription .preinscription-course .fw-semibold { font-size: 14px; }
  .cidec-preinscription .preinscription-total { font-size: 17px; padding-inline: 14px; }
  .cidec-preinscription .preinscription-price-line { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .cidec-preinscription *, .cidec-preinscription *::before, .cidec-preinscription *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* CIDEC_MERCADOPAGO_UI_OPTION_B_01. Merchant-owned presentation only; SDK/iframe styles are untouched. */
body.cidec-mercadopago-payment.bg-light { background: var(--cidec-bg) !important; color: var(--cidec-text); font: 15px/1.7 system-ui, -apple-system, "Segoe UI", sans-serif; }
.cidec-mercadopago-payment :is(.cidec-mp-banner-inner,.cidec-mp-main) { max-width: 1200px; padding-inline: 24px; }
.cidec-mercadopago-payment .cidec-mp-banner { padding-block: 32px 36px; color: #fff; background: linear-gradient(110deg,var(--cidec-navy-950),var(--cidec-navy-800)); border-bottom: 3px solid var(--cidec-gold); }
.cidec-mercadopago-payment .cidec-mp-eyebrow { color: #c4d5df; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.cidec-mercadopago-payment .cidec-mp-back-link { display: inline-flex; align-items: center; min-height: 44px; color: #fff; }
.cidec-mercadopago-payment .cidec-mp-back-link:hover { color: var(--cidec-gold); }
.cidec-mercadopago-payment .cidec-page-banner__title { max-width: 850px; margin-top: 4px; font-size: clamp(36px,4vw,50px); overflow-wrap: anywhere; }
.cidec-mercadopago-payment .cidec-mp-main.py-5 { padding-block: 40px 56px !important; }
.cidec-mercadopago-payment .cidec-mp-column { width: 100%; }
/* The preserved Bootstrap shell is only a layout wrapper; the two real content sections form the cards. */
.cidec-mercadopago-payment .cidec-mp-shell { background: transparent; box-shadow: none !important; }
.cidec-mercadopago-payment .cidec-mp-body.p-4 { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); align-items: start; gap: 24px; padding: 0 !important; }
.cidec-mercadopago-payment :is(.cidec-mp-summary,.cidec-mp-checkout,.cidec-mp-error) { min-width: 0; padding: 28px; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); background: var(--cidec-surface); box-shadow: var(--cidec-shadow-sm); }
.cidec-mercadopago-payment .cidec-mp-summary { border-top: 3px solid var(--cidec-gold); }
.cidec-mercadopago-payment .cidec-mp-checkout { border-top: 3px solid var(--cidec-teal); }
.cidec-mercadopago-payment .cidec-mp-error { grid-column: 1 / -1; max-width: 760px; width: 100%; justify-self: center; border-top: 3px solid var(--cidec-danger); }
.cidec-mercadopago-payment :is(.cidec-mp-summary,.cidec-mp-error) > h2 { margin-top: 0 !important; margin-bottom: 20px !important; color: var(--cidec-navy-950); font: 700 28px/1.3 Georgia,"Times New Roman",serif; }
.cidec-mercadopago-payment .cidec-mp-course-title.text-muted { color: #344d60 !important; font-size: 17px; font-weight: 600; line-height: 1.6; overflow-wrap: anywhere; }
.cidec-mercadopago-payment .cidec-mp-amount { margin-top: 24px; margin-bottom: 0 !important; padding: 18px 20px; border-radius: 12px; color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); overflow-wrap: anywhere; }
.cidec-mercadopago-payment .cidec-mp-payer-notice { margin-bottom: 22px; padding: 16px; border-color: #b8dfdb; border-radius: 12px; color: var(--cidec-teal-hover); background: #eff9f7; font-size: 14px; line-height: 1.7; }
.cidec-mercadopago-payment :is(#mpSdkError,.cidec-mp-error > .alert) { padding: 16px; border-radius: 12px; line-height: 1.7; }
.cidec-mercadopago-payment .cidec-mp-technical-detail.text-muted { color: #526779 !important; font-size: 13px; overflow-wrap: anywhere; }
/* Explicit CIDEC controls only: do not recolor links/buttons that the provider may inject. */
.cidec-mercadopago-payment :is(.cidec-mp-continue,.cidec-mp-status,.cidec-mp-error-actions > .btn) { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 11px 18px; border-radius: 12px; font-size: 14px; font-weight: 700; line-height: 1.6; transition: color 160ms ease,background-color 160ms ease,border-color 160ms ease; }
.cidec-mercadopago-payment :is(.cidec-mp-continue,.cidec-mp-error-actions > .btn-primary) { border-color: var(--cidec-gold); background: var(--cidec-gold); color: var(--cidec-navy-950); }
.cidec-mercadopago-payment :is(.cidec-mp-continue,.cidec-mp-error-actions > .btn-primary):is(:hover,:active) { border-color: var(--cidec-gold-hover); background: var(--cidec-gold-hover); color: var(--cidec-navy-950); }
.cidec-mercadopago-payment :is(.cidec-mp-status,.cidec-mp-error-actions > .btn-outline-secondary) { border-color: var(--cidec-teal); background: #fff; color: var(--cidec-teal-hover); text-decoration: none; }
.cidec-mercadopago-payment :is(.cidec-mp-status,.cidec-mp-error-actions > .btn-outline-secondary):is(:hover,:active) { border-color: var(--cidec-teal-hover); background: var(--cidec-teal-hover); color: #fff; }
.cidec-mercadopago-payment .cidec-mp-error-actions { margin-top: 24px; }
.cidec-mercadopago-payment .cidec-mp-error-actions > .btn { flex: 1 1 0; }
.cidec-mercadopago-payment :is(.cidec-mp-back-link,.cidec-mp-continue,.cidec-mp-status,.cidec-mp-error-actions > .btn) { scroll-margin-block: 12px; }
.cidec-mercadopago-payment :is(.cidec-mp-back-link,.cidec-mp-continue,.cidec-mp-status,.cidec-mp-error-actions > .btn):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; box-shadow: none; }
.cidec-mercadopago-payment .cidec-mp-back-link:focus-visible { outline-color: var(--cidec-gold); }
@media (max-width:991px) {
  .cidec-mercadopago-payment .cidec-mp-body.p-4 { grid-template-columns: minmax(0,1fr); gap: 20px; }
}
@media (max-width:575px) {
  .cidec-mercadopago-payment :is(.cidec-mp-banner-inner,.cidec-mp-main) { padding-inline: 18px; }
  .cidec-mercadopago-payment .cidec-mp-banner { padding-block: 24px 28px; }
  .cidec-mercadopago-payment .cidec-page-banner__title { font-size: 36px; }
  .cidec-mercadopago-payment .cidec-mp-main.py-5 { padding-block: 26px max(40px,env(safe-area-inset-bottom)) !important; }
  .cidec-mercadopago-payment :is(.cidec-mp-summary,.cidec-mp-checkout,.cidec-mp-error) { padding: 22px 18px; }
  .cidec-mercadopago-payment :is(.cidec-mp-summary,.cidec-mp-error) > h2 { font-size: 25px; }
  .cidec-mercadopago-payment .cidec-mp-course-title.text-muted { font-size: 16px; }
  .cidec-mercadopago-payment .cidec-mp-amount { padding: 16px; font-size: 22px !important; }
  .cidec-mercadopago-payment .cidec-mp-payer-notice { font-size: 13px; }
}
@media (prefers-reduced-motion:reduce) {
  .cidec-mercadopago-payment :is(.cidec-mp-back-link,.cidec-mp-continue,.cidec-mp-status,.cidec-mp-error-actions > .btn) { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* CIDEC_PAYMENT_TRACKING_OPTION_B_01 — autonomous CIDEC markup only. */
.cidec-payment-tracking { margin:0; background:var(--cidec-bg,#F7F9FC); color:var(--cidec-text,#0F2134); font-family:Arial,Helvetica,sans-serif; line-height:1.6; }
.cidec-payment-tracking .cidec-tracking-container { width:100%; max-width:1224px; padding-inline:24px; }
.cidec-payment-tracking .cidec-tracking-banner { margin:0; padding:40px 0 30px; border-radius:0; border-bottom:3px solid #F2B824; background:linear-gradient(110deg,#071A2E,#123B56); color:#fff; box-shadow:none; }
.cidec-payment-tracking .cidec-tracking-banner-content { min-width:0; }
.cidec-payment-tracking .cidec-page-banner__title { margin-block:16px 10px !important; color:#F2B824; font:700 clamp(2rem,3.5vw,3rem)/1.15 Georgia,'Times New Roman',serif; overflow-wrap:anywhere; }
.cidec-payment-tracking .cidec-tracking-back { display:inline-flex; align-items:center; min-height:44px; color:#fff !important; text-underline-offset:5px; }
.cidec-payment-tracking .cidec-tracking-back:hover { color:#F2B824 !important; text-decoration:underline !important; }
.cidec-payment-tracking .cidec-tracking-banner-course { max-width:760px; color:#e1eaf1; font-size:1rem; overflow-wrap:anywhere; }
.cidec-payment-tracking .stepper { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding-top:22px; font-size:.875rem; }
.cidec-payment-tracking .cidec-tracking-step { display:flex; align-items:center; gap:8px; min-width:0; }
.cidec-payment-tracking .stepper .dot { display:flex; align-items:center; justify-content:center; flex:0 0 28px; width:28px; height:28px; border:1px solid #9bb0bf; border-radius:50%; color:#fff; font-weight:700; }
.cidec-payment-tracking .stepper .dot.active { border-color:#F2B824; background:#F2B824; color:#071A2E; }
.cidec-payment-tracking .price-badge { display:inline-block; padding:6px 14px; border:1px solid #b9cedb; border-radius:999px; color:#fff; font-weight:700; }
.cidec-payment-tracking .cidec-tracking-main { padding-block:36px 48px; }
.cidec-payment-tracking .cidec-tracking-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); grid-template-areas:'status actions' 'summary actions'; align-items:start; gap:22px 24px; }
.cidec-payment-tracking .cidec-tracking-status { grid-area:status; display:flex; align-items:flex-start; gap:10px; margin:0; padding:22px 24px; font-size:1rem; line-height:1.7; }
.cidec-payment-tracking .cidec-tracking-status > i { margin-top:3px; flex-shrink:0; }
.cidec-payment-tracking .cidec-tracking-summary { grid-area:summary; width:auto; min-width:0; }
.cidec-payment-tracking .cidec-tracking-actions { grid-area:actions; width:auto; min-width:0; }
.cidec-payment-tracking .card-soft { border:1px solid #DCE4EA; border-radius:18px; box-shadow:0 6px 22px rgba(7,26,46,.045); }
.cidec-payment-tracking .cidec-tracking-card { background:#fff; }
.cidec-payment-tracking .cidec-tracking-card > .card-body { padding:26px; min-width:0; }
.cidec-payment-tracking .cidec-tracking-card-title { color:#0B2239; font-size:1.15rem; font-weight:700; line-height:1.4; }
.cidec-payment-tracking .cidec-tracking-summary .card-body > .d-flex:first-child { flex-wrap:wrap; gap:12px; padding-bottom:18px; border-bottom:1px solid #e5ebef; }
.cidec-payment-tracking .cidec-tracking-amount { margin-top:20px; color:#071A2E; font-size:2.1rem; line-height:1.25; overflow-wrap:anywhere; }
.cidec-payment-tracking .cidec-tracking-course { min-width:0; }
.cidec-payment-tracking .cidec-tracking-course > .small { min-width:0; font-size:.95rem; overflow-wrap:anywhere; }
.cidec-payment-tracking .cidec-tracking-course-image, .cidec-payment-tracking .cidec-tracking-course-placeholder { width:64px; height:64px; flex:0 0 64px; border-radius:10px; object-fit:cover; }
.cidec-payment-tracking .cidec-tracking-course-placeholder { background:#e5ebef !important; }
.cidec-payment-tracking .text-muted { color:#526779 !important; }
.cidec-payment-tracking .small { font-size:.875rem; }
.cidec-payment-tracking hr { border-color:#DCE4EA; opacity:1; }
.cidec-payment-tracking .badge { max-width:100%; padding:8px 12px; border-radius:999px; font-size:.8rem; line-height:1.35; white-space:normal; }
.cidec-payment-tracking .bg-success { background:#E6F4EB !important; color:#1B603D !important; }
.cidec-payment-tracking .bg-warning { background:#FFF4D4 !important; color:#715000 !important; }
.cidec-payment-tracking .bg-danger { background:#FDEDEB !important; color:#97261C !important; }
.cidec-payment-tracking .bg-info { background:#E6F4F2 !important; color:#075E59 !important; }
.cidec-payment-tracking .alert { border-radius:14px; overflow-wrap:anywhere; }
.cidec-payment-tracking .alert-info { background:#EDF6F8; border-color:#C9DEE5; color:#264D60; }
.cidec-payment-tracking .alert-warning { background:#FFF8E5; border-color:#ECD599; color:#705015; }
.cidec-payment-tracking .alert-success { background:#EAF6F0; border-color:#B6DCC9; color:#1B603D; }
.cidec-payment-tracking .alert-danger { background:#FDEDEB; border-color:#EABBB5; color:#97261C; }
.cidec-payment-tracking .btn { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:11px 16px; border-radius:10px; font-weight:700; line-height:1.45; white-space:normal; overflow-wrap:anywhere; transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease; }
.cidec-payment-tracking .btn-primary, .cidec-payment-tracking .btn-warning { --bs-btn-active-bg:#D99A10; --bs-btn-active-border-color:#D99A10; --bs-btn-active-color:#071A2E; --bs-btn-hover-bg:#D99A10; --bs-btn-hover-border-color:#D99A10; --bs-btn-hover-color:#071A2E; background:#F2B824; border-color:#F2B824; color:#071A2E; }
.cidec-payment-tracking .btn-primary:hover, .cidec-payment-tracking .btn-warning:hover { background:#D99A10; border-color:#D99A10; color:#071A2E; }
.cidec-payment-tracking .btn-success { --bs-btn-active-bg:#075E59; --bs-btn-active-border-color:#075E59; --bs-btn-active-color:#fff; --bs-btn-hover-bg:#075E59; --bs-btn-hover-border-color:#075E59; --bs-btn-hover-color:#fff; background:#0B7A75; border-color:#0B7A75; color:#fff; }
.cidec-payment-tracking .btn-success:hover { background:#075E59; border-color:#075E59; color:#fff; }
.cidec-payment-tracking .btn-outline-secondary { --bs-btn-active-bg:#E6F4F2; --bs-btn-active-border-color:#0B7A75; --bs-btn-active-color:#075E59; --bs-btn-hover-bg:#E6F4F2; --bs-btn-hover-border-color:#0B7A75; --bs-btn-hover-color:#075E59; background:#fff; border-color:#8AA0AE; color:#0B2239; }
.cidec-payment-tracking .btn-outline-secondary:hover { background:#E6F4F2; border-color:#0B7A75; color:#075E59; }
.cidec-payment-tracking .cidec-tracking-actions .d-sm-flex { flex-direction:column; }
.cidec-payment-tracking .cidec-tracking-actions .btn { width:100%; }
.cidec-payment-tracking a:focus-visible { outline:3px solid #0B7A75; outline-offset:3px; box-shadow:none; }
.cidec-payment-tracking .cidec-tracking-banner a:focus-visible { outline-color:#F2B824; }
@media (max-width:991px) {
  .cidec-payment-tracking .cidec-tracking-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:'status' 'summary' 'actions'; }
}
@media (max-width:575px) {
  .cidec-payment-tracking .cidec-tracking-container { padding-inline:17px; }
  .cidec-payment-tracking .cidec-tracking-banner { padding-block:24px; }
  .cidec-payment-tracking .cidec-tracking-main { padding-block:24px 32px; }
  .cidec-payment-tracking .cidec-tracking-grid { gap:16px; }
  .cidec-payment-tracking .cidec-tracking-card > .card-body { padding:20px; }
  .cidec-payment-tracking .cidec-tracking-status { padding:18px; }
  .cidec-payment-tracking .stepper { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items:start; gap:8px; font-size:.75rem; }
  .cidec-payment-tracking .cidec-tracking-step { flex-direction:column; text-align:center; line-height:1.5; }
  .cidec-payment-tracking .stepper > i { margin-top:3px; }
  .cidec-payment-tracking .stepper .dot { width:24px; height:24px; flex-basis:24px; }
  .cidec-payment-tracking .cidec-tracking-amount { font-size:1.8rem; }
}
@media (prefers-reduced-motion:reduce) {
  .cidec-payment-tracking *, .cidec-payment-tracking *::before, .cidec-payment-tracking *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}

/* CIDEC_VIRTUAL_CLASSROOM_OPTION_B_01. Legacy inline styles remain; all overrides are scoped. */
.cidec-virtual-classroom.play-page { background:#F7F9FC; color:#0F2134; }
.cidec-virtual-classroom .play-main { max-width:none; padding:0 !important; }
.cidec-virtual-classroom .play-hero { margin:0 !important; padding:34px max(24px,calc((100% - 1200px)/2)) 30px; border:0; border-bottom:3px solid #F2B824; border-radius:0; background:linear-gradient(110deg,#071A2E,#123B56); overflow:visible; }
.cidec-virtual-classroom .play-hero::before { display:none; }
.cidec-virtual-classroom .play-hero .play-crumb { color:#C1D0DC; gap:8px; align-items:center; margin-bottom:15px; font-size:.875rem; }
.cidec-virtual-classroom .play-crumb a { display:inline-flex; align-items:center; min-height:44px; color:#fff; text-underline-offset:5px; }
.cidec-virtual-classroom .play-crumb a:hover { color:#F2B824; text-decoration:underline; }
.cidec-virtual-classroom .play-hero .course-title { margin-bottom:10px; max-width:1050px; color:#E0EAF0; font-size:1rem; line-height:1.55; overflow-wrap:anywhere; }
.cidec-virtual-classroom .play-hero h1 { max-width:1120px; color:#F2B824; font:700 clamp(1.75rem,3.1vw,2.65rem)/1.22 Georgia,'Times New Roman',serif; overflow-wrap:anywhere; }
.cidec-virtual-classroom .play-chip-row { gap:9px; margin-top:20px; }
.cidec-virtual-classroom .play-chip { background:#18364D; border-color:#496579; color:#E8F0F5; font-size:.82rem; font-weight:600; line-height:1.45; }
.cidec-virtual-classroom .play-chip.success { background:#113E43; border-color:#477878; color:#D5F4E9; }
.cidec-virtual-classroom .play-progress { margin-top:20px; height:5px; background:#496579; }
.cidec-virtual-classroom .play-progress span { background:#F2B824; }
.cidec-virtual-classroom .cidec-classroom-layout { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr); grid-template-areas:'lesson syllabus' 'resources syllabus' 'certificate syllabus'; grid-template-rows:auto auto 1fr; align-items:start !important; gap:24px; width:100%; max-width:1248px; margin:0 auto; padding:34px 24px 48px; }
.cidec-virtual-classroom .cidec-classroom-layout > * { width:auto; max-width:100%; min-width:0; padding:0; margin:0; }
.cidec-virtual-classroom .cidec-classroom-lesson { grid-area:lesson; }
.cidec-virtual-classroom .cidec-classroom-syllabus { grid-area:syllabus; }
.cidec-virtual-classroom .cidec-classroom-resources { grid-area:resources; }
.cidec-virtual-classroom .cidec-classroom-certificate { grid-area:certificate; }
.cidec-virtual-classroom .sidebar-sticky { position:sticky; top:92px; }
.cidec-virtual-classroom .play-panel, .cidec-virtual-classroom .play-widget { border:1px solid #DCE4EA; border-radius:18px; background:#fff; box-shadow:0 5px 20px rgba(7,26,46,.045); overflow:visible; }
.cidec-virtual-classroom .play-panel { padding:22px; scroll-margin-top:96px; }
.cidec-virtual-classroom .play-widget-body { padding:22px; }
.cidec-virtual-classroom .play-widget { padding:0; }
.cidec-virtual-classroom .play-section-head { margin-bottom:18px; padding-bottom:16px; border-color:#E5EBEF; }
.cidec-virtual-classroom .play-kicker { color:#526779; font-size:.73rem; font-weight:700; letter-spacing:.07em; }
.cidec-virtual-classroom .play-section-head h2, .cidec-virtual-classroom .play-widget-title h2 { margin-top:5px; color:#0B2239; font-size:1.06rem; font-weight:700; line-height:1.5; overflow-wrap:anywhere; }
.cidec-virtual-classroom .play-video-shell { border-radius:12px; background:#071A2E; overflow:hidden; }
.cidec-virtual-classroom .play-video-shell iframe, .cidec-virtual-classroom .play-video-shell video { background:#071A2E; width:100%; height:100%; }
.cidec-virtual-classroom .play-access-state { padding:24px; border:1px solid #315169; border-radius:12px; background:#0B2239; color:#DCE7EE; font-size:.94rem; line-height:1.7; }
.cidec-virtual-classroom .play-access-state h5 { color:#fff; font-size:1.2rem; line-height:1.4; }
.cidec-virtual-classroom .play-access-state .btn { margin:6px 6px 0 0 !important; }
.cidec-virtual-classroom .play-navigation { grid-template-columns:minmax(0,1fr) auto auto; gap:10px; margin-top:16px; }
.cidec-virtual-classroom .play-widget-title { gap:12px; padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid #E5EBEF; }
.cidec-virtual-classroom .play-widget-title .icon { flex:0 0 38px; background:#E6F4F2; color:#075E59; border-radius:10px; }
/* !important neutralizes the existing inline accordion border/radius utilities only. */
.cidec-virtual-classroom .playlist-widget .accordion-item { margin-bottom:12px; border:1px solid #DCE4EA !important; border-radius:12px !important; box-shadow:none !important; overflow:hidden; }
.cidec-virtual-classroom .playlist-widget .accordion-button { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:5px 7px; align-items:center; min-height:64px; padding:15px 13px; background:#fff; color:#0B2239; font-size:.87rem; font-weight:600; box-shadow:none; }
.cidec-virtual-classroom .playlist-widget .accordion-button > span:nth-child(1) { grid-column:1; margin-right:0 !important; }
.cidec-virtual-classroom .playlist-widget .accordion-button > span:nth-child(2) { grid-column:2; min-width:0; line-height:1.5; overflow-wrap:anywhere; }
.cidec-virtual-classroom .playlist-widget .accordion-button .module-count { grid-column:1 / 3; grid-row:2; margin:0; color:#526779; font-size:.75rem; }
.cidec-virtual-classroom .playlist-widget .accordion-button::after { grid-column:3; grid-row:1 / 3; margin-left:0; }
.cidec-virtual-classroom .playlist-widget .accordion-button:not(.collapsed) { background:#E6F4F2; color:#075E59; box-shadow:none; }
.cidec-virtual-classroom .lesson-list { gap:5px; padding:7px; }
.cidec-virtual-classroom .lesson-item { gap:8px; min-height:48px; padding:0 10px; border-radius:9px; }
.cidec-virtual-classroom .lesson-item a { display:flex; align-items:center; align-self:stretch; min-height:48px; padding:10px 0; min-width:0; color:#213C50; font-size:.86rem; font-weight:600; line-height:1.55; overflow-wrap:anywhere; }
.cidec-virtual-classroom .lesson-item:hover { background:#F1F5F8; }
.cidec-virtual-classroom .lesson-item.is-active { background:#E6F4F2; box-shadow:inset 3px 0 #0B7A75; }
.cidec-virtual-classroom .lesson-item.is-active a, .cidec-virtual-classroom .lesson-item.is-active .lesson-icon, .cidec-virtual-classroom .lesson-item.is-active .lesson-state { color:#075E59; }
.cidec-virtual-classroom .lesson-icon, .cidec-virtual-classroom .lesson-state { color:#526779; }
.cidec-virtual-classroom .lesson-lock-button { min-height:48px; padding:10px; color:#526779; gap:8px; }
.cidec-virtual-classroom .lesson-lock-button .lesson-locked-title { font-size:.86rem; font-weight:600; line-height:1.55; overflow-wrap:anywhere; min-width:0; }
.cidec-virtual-classroom .lesson-lock-button:hover { background:#EDF5F5; color:#075E59; }
.cidec-virtual-classroom .lesson-lock-button:hover .lesson-icon, .cidec-virtual-classroom .lesson-lock-button:hover .lesson-state { color:#075E59; }
.cidec-virtual-classroom .preview-badge { flex-shrink:0; background:#EAF6F0; border-color:#B6DCC9; color:#1B603D; font-size:.68rem; font-weight:700; padding:3px 6px; }
.cidec-virtual-classroom .resource-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.cidec-virtual-classroom .resource-card { min-width:0; min-height:82px; padding:14px; gap:12px; background:#F7FAFB; border-color:#DCE4EA; border-radius:12px; color:#0B2239; transform:none; }
.cidec-virtual-classroom .resource-card > span:nth-child(2) { min-width:0; overflow-wrap:anywhere; }
.cidec-virtual-classroom .resource-card:hover { background:#E6F4F2; border-color:#0B7A75; color:#075E59; transform:none; }
.cidec-virtual-classroom .resource-icon { background:#E6F4F2; color:#075E59; border-radius:10px; }
.cidec-virtual-classroom .resource-title { line-height:1.5; font-size:.94rem; font-weight:600; }
.cidec-virtual-classroom .resource-meta { color:#526779; font-size:.8rem; }
.cidec-virtual-classroom .resource-download { color:#075E59; }
.cidec-virtual-classroom #playDynamicMain .btn { min-height:46px; padding:11px 15px; border-radius:10px; font-size:.875rem; font-weight:700; line-height:1.5; white-space:normal; overflow-wrap:anywhere; transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease; }
.cidec-virtual-classroom #playDynamicMain .btn-primary, .cidec-virtual-classroom #playDynamicMain .btn-success { --bs-btn-active-bg:#075E59; --bs-btn-active-border-color:#075E59; --bs-btn-active-color:#fff; --bs-btn-hover-bg:#075E59; --bs-btn-hover-border-color:#075E59; --bs-btn-hover-color:#fff; background:#0B7A75; border-color:#0B7A75; color:#fff; }
.cidec-virtual-classroom #playDynamicMain .btn-primary:hover, .cidec-virtual-classroom #playDynamicMain .btn-success:hover { background:#075E59; border-color:#075E59; color:#fff; }
.cidec-virtual-classroom #playDynamicMain .btn-outline-primary, .cidec-virtual-classroom #playDynamicMain .btn-outline-success, .cidec-virtual-classroom #playDynamicMain .btn-outline-secondary { --bs-btn-active-bg:#E6F4F2; --bs-btn-active-border-color:#0B7A75; --bs-btn-active-color:#075E59; --bs-btn-hover-bg:#E6F4F2; --bs-btn-hover-border-color:#0B7A75; --bs-btn-hover-color:#075E59; background:#fff; border-color:#8AA0AE; color:#075E59; }
.cidec-virtual-classroom #playDynamicMain .btn-outline-primary:hover, .cidec-virtual-classroom #playDynamicMain .btn-outline-success:hover, .cidec-virtual-classroom #playDynamicMain .btn-outline-secondary:hover { background:#E6F4F2; border-color:#0B7A75; color:#075E59; }
.cidec-virtual-classroom #courseAccessModal .btn-primary, .cidec-virtual-classroom #playDynamicMain .play-access-state .btn-primary { --bs-btn-active-bg:#D99A10; --bs-btn-active-border-color:#D99A10; --bs-btn-active-color:#071A2E; --bs-btn-hover-bg:#D99A10; --bs-btn-hover-border-color:#D99A10; --bs-btn-hover-color:#071A2E; background:#F2B824; border-color:#F2B824; color:#071A2E; }
.cidec-virtual-classroom #courseAccessModal .btn-primary:hover, .cidec-virtual-classroom #playDynamicMain .play-access-state .btn-primary:hover { background:#D99A10; border-color:#D99A10; color:#071A2E; }
.cidec-virtual-classroom #playDynamicMain .btn-outline-light { --bs-btn-active-bg:#183D53; --bs-btn-active-border-color:#fff; --bs-btn-active-color:#fff; --bs-btn-hover-bg:#183D53; --bs-btn-hover-border-color:#fff; --bs-btn-hover-color:#fff; background:transparent; color:#fff; border-color:#B6CAD7; }
.cidec-virtual-classroom #playDynamicMain .btn-outline-light:hover { background:#183D53; color:#fff; border-color:#fff; }
.cidec-virtual-classroom #playDynamicMain .btn:disabled { opacity:.65; }
.cidec-virtual-classroom .text-muted { color:#526779 !important; }
.cidec-virtual-classroom .alert { border-radius:12px; line-height:1.65; overflow-wrap:anywhere; }
.cidec-virtual-classroom .alert-info { background:#EDF6F8; border-color:#C9DEE5; color:#264D60; }
.cidec-virtual-classroom .alert-warning { background:#FFF8E5; border-color:#ECD599; color:#705015; }
.cidec-virtual-classroom .alert-success { background:#EAF6F0; border-color:#B6DCC9; color:#1B603D; }
.cidec-virtual-classroom .alert-danger { background:#FDEDEB; border-color:#EABBB5; color:#97261C; }
.cidec-virtual-classroom .cidec-classroom-certificate { padding:0; }
.cidec-virtual-classroom .cidec-classroom-certificate form .border { padding:16px !important; border-radius:10px !important; line-height:1.8; }
.cidec-virtual-classroom .cidec-classroom-certificate a.small { display:inline-flex; align-items:center; min-height:44px; color:#075E59; text-decoration:underline; text-underline-offset:3px; }
.cidec-virtual-classroom .form-check-input:checked { background-color:#0B7A75; border-color:#0B7A75; }
.cidec-virtual-classroom .form-check { min-height:44px; display:flex; align-items:flex-start; gap:10px; padding-top:8px; }
.cidec-virtual-classroom .form-check-input { flex-shrink:0; }
.cidec-virtual-classroom .access-modal-icon { background:#E6F4F2; color:#075E59; }
.cidec-virtual-classroom .modal-content { border-radius:18px; }
.cidec-virtual-classroom #playDynamicMain.is-loading::after { border-color:#BDDCD9; border-top-color:#0B7A75; }
.cidec-virtual-classroom #playDynamicMain a:focus-visible, .cidec-virtual-classroom #playDynamicMain button:focus-visible, .cidec-virtual-classroom #playDynamicMain input:focus-visible { outline:3px solid #0B7A75; outline-offset:3px; box-shadow:none; }
.cidec-virtual-classroom .play-hero a:focus-visible, .cidec-virtual-classroom .play-access-state a:focus-visible { outline-color:#F2B824; }
@media (max-width:991px) {
  .cidec-virtual-classroom .cidec-classroom-layout { grid-template-columns:minmax(0,1fr); grid-template-areas:'lesson' 'syllabus' 'resources' 'certificate'; }
  .cidec-virtual-classroom .sidebar-sticky { position:static; }
  .cidec-virtual-classroom .play-video-shell { width:calc(100% - 32px); }
}
/* Reserve the contact button's right edge for CIDEC controls; keep player width and shared footer intact. */
@media (max-width:1439px) {
  .cidec-virtual-classroom .play-navigation, .cidec-virtual-classroom .playlist-widget .accordion, .cidec-virtual-classroom .resource-grid, .cidec-virtual-classroom .cidec-classroom-certificate form { margin-right:52px; }
}
@media (max-width:575px) {
  .cidec-virtual-classroom .play-hero { padding:22px 17px 24px; }
  .cidec-virtual-classroom .play-hero h1 { font-size:1.65rem; }
  .cidec-virtual-classroom .play-chip { font-size:.75rem; }
  .cidec-virtual-classroom .cidec-classroom-layout { gap:20px; padding:24px 17px 40px; }
  .cidec-virtual-classroom .play-panel, .cidec-virtual-classroom .play-widget-body { padding:16px; }
  .cidec-virtual-classroom .playlist-widget .accordion-button { grid-template-columns:minmax(0,1fr) auto; }
  .cidec-virtual-classroom .playlist-widget .accordion-button > span:nth-child(1) { grid-column:1; grid-row:1; }
  .cidec-virtual-classroom .playlist-widget .accordion-button > span:nth-child(2) { grid-column:1 / -1; grid-row:2; }
  .cidec-virtual-classroom .playlist-widget .accordion-button .module-count { grid-column:1 / -1; grid-row:3; }
  .cidec-virtual-classroom .playlist-widget .accordion-button::after { grid-column:2; grid-row:1; }
  .cidec-virtual-classroom .play-navigation { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cidec-virtual-classroom .play-navigation > :first-child { grid-column:1 / -1; }
  .cidec-virtual-classroom .resource-grid { grid-template-columns:minmax(0,1fr); }
  .cidec-virtual-classroom .play-access-state { padding:18px; }
  .cidec-virtual-classroom .play-access-state .btn { width:100%; margin-inline:0 !important; }
  .cidec-virtual-classroom .play-access-state .btn { max-width:calc(100% - 40px); }
}
@media (prefers-reduced-motion:reduce) {
  .cidec-virtual-classroom *, .cidec-virtual-classroom *::before, .cidec-virtual-classroom *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}

/* CIDEC_VIRTUAL_CLASSROOM_OPTION_D_01: one adaptive classroom, existing AJAX and player. */
.cidec-virtual-classroom.cidec-classroom-executive { background:#F7F9FC; }
.cidec-virtual-classroom.cidec-classroom-executive .play-main > .play-hero { padding:24px 28px 22px; background:linear-gradient(110deg,#071A2E,#0B2239); }
.cidec-virtual-classroom.cidec-classroom-executive .play-main > .play-hero .course-title { max-width:1320px; margin:0 0 12px; color:#F2B824; font:700 clamp(1.6rem,2.25vw,2.15rem)/1.3 Georgia,'Times New Roman',serif; }
.cidec-virtual-classroom.cidec-classroom-executive .play-main > .play-hero .play-crumb { margin-bottom:10px; }
.cidec-virtual-classroom.cidec-classroom-executive .play-chip-row { margin-top:14px; }
.cidec-virtual-classroom.cidec-classroom-executive .play-progress { margin-top:16px; height:4px; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-layout { max-width:1600px; padding:30px 76px 48px 24px; gap:24px; grid-template-columns:minmax(230px,.85fr) minmax(0,2.2fr); grid-template-areas:'syllabus lesson'; grid-template-rows:auto; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-layout:has(> .cidec-classroom-certificate) { grid-template-areas:'syllabus lesson' 'syllabus certificate'; grid-template-rows:auto 1fr; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-lesson > .play-panel:first-child { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
/* Existing .play-hero has an important margin reset; retain it on the moved topic header only. */
.cidec-virtual-classroom.cidec-classroom-executive .play-hero.cidec-classroom-topic-header { display:block; padding:0; margin:0 0 18px !important; border:0; border-radius:0; background:transparent; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-topic-header .play-kicker { color:#075E59; font-size:.75rem; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-topic-header h1 { margin:7px 0 8px; color:#071A2E; font:700 clamp(1.65rem,2.1vw,2.05rem)/1.3 Georgia,'Times New Roman',serif; overflow-wrap:anywhere; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-topic-header h2 { margin:0; color:#526779; font-size:.9rem; font-weight:400; line-height:1.6; }
.cidec-virtual-classroom.cidec-classroom-executive .play-video-shell { width:100%; border:1px solid #16354A; border-radius:12px; box-shadow:0 8px 24px rgba(7,26,46,.09); }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-syllabus { position:sticky; top:104px; max-height:calc(100dvh - 128px); overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; scrollbar-color:#8AA0AE #F1F5F8; border-radius:12px; }
.cidec-virtual-classroom.cidec-classroom-executive .sidebar-sticky { position:static; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget { margin:0; border-radius:12px; background:#F1F5F8; box-shadow:none; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .play-widget-body { padding:18px 16px 10px; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .play-widget-title { align-items:flex-start; gap:9px; margin-bottom:12px; padding-bottom:16px; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .play-widget-title .icon { flex-basis:30px; height:30px; background:#E6F4F2; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .play-widget-title h2 { font-size:.88rem; line-height:1.6; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .accordion { margin-right:0; }
/* Neutralize the retained legacy important borders/radii within the syllabus only. */
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .accordion-item { margin-bottom:0; border:0 !important; border-bottom:1px solid #DCE4EA !important; border-radius:0 !important; background:transparent; overflow:visible; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .accordion-item:last-child { border-bottom:0 !important; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .accordion-button { grid-template-columns:minmax(0,1fr) auto; gap:5px 8px; padding:16px 10px; border-radius:8px; background:transparent; font-size:.87rem; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .accordion-button > span:nth-child(1) { grid-column:1; grid-row:1; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .accordion-button > span:nth-child(2) { grid-column:1 / -1; grid-row:2; font-size:.82rem; font-weight:400; line-height:1.6; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .accordion-button .module-count { grid-column:1 / -1; grid-row:3; font-size:.73rem; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .accordion-button::after { grid-column:2; grid-row:1; }
.cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .accordion-button:not(.collapsed) { background:#E6F4F2; color:#075E59; }
.cidec-virtual-classroom.cidec-classroom-executive .lesson-list { padding:7px 0 12px; gap:4px; }
.cidec-virtual-classroom.cidec-classroom-executive .lesson-item { border-radius:6px; padding-inline:9px; }
.cidec-virtual-classroom.cidec-classroom-executive .lesson-item.is-active { background:#E6F4F2; box-shadow:inset 3px 0 #F2B824; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-resources { margin-top:20px; padding:18px; border-radius:12px; box-shadow:none; }
.cidec-virtual-classroom.cidec-classroom-executive .resource-grid { grid-template-columns:minmax(0,1fr); margin-right:0; gap:10px; }
.cidec-virtual-classroom.cidec-classroom-executive .resource-card { min-height:76px; background:#fff; }
.cidec-virtual-classroom.cidec-classroom-executive .play-navigation { margin:20px 0 0; gap:10px; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-certificate { margin:0; border-radius:12px; box-shadow:0 2px 8px rgba(7,26,46,.04); }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-certificate .play-widget-body { padding:20px; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-certificate .play-widget-title { align-items:flex-start; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-certificate .play-widget-title .icon { background:#FFF4D4; color:#071A2E; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-certificate .play-widget-title h2 { font-size:1rem; }
.cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-certificate form { margin-right:0; }
.cidec-virtual-classroom.cidec-classroom-executive .play-access-state .btn { max-width:100%; }
.cidec-virtual-classroom.cidec-classroom-executive #playDynamicMain aside:focus-visible { outline:3px solid #0B7A75; outline-offset:3px; }
@media (min-width:1280px) {
  .cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-layout:has(> .cidec-classroom-certificate) { grid-template-columns:minmax(230px,.9fr) minmax(0,2.3fr) minmax(240px,.95fr); grid-template-areas:'syllabus lesson certificate'; grid-template-rows:auto; }
}
@media (max-width:991px) {
  .cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-layout, .cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-layout:has(> .cidec-classroom-certificate) { grid-template-columns:minmax(0,1fr); grid-template-areas:'lesson' 'syllabus' 'certificate'; grid-template-rows:auto; }
  .cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-syllabus { position:static; max-height:none; overflow:visible; scrollbar-gutter:auto; }
}
@media (max-width:575px) {
  .cidec-virtual-classroom.cidec-classroom-executive .play-main > .play-hero { padding:20px 17px; }
  .cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-layout { padding:24px 69px 40px 17px; gap:22px; }
  .cidec-virtual-classroom.cidec-classroom-executive .playlist-widget .play-widget-body, .cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-certificate .play-widget-body, .cidec-virtual-classroom.cidec-classroom-executive .cidec-classroom-resources { padding:14px; }
  .cidec-virtual-classroom.cidec-classroom-executive .play-navigation { gap:9px; }
  .cidec-virtual-classroom.cidec-classroom-executive .play-access-state { padding:16px; }
}

/* CIDEC_MERCADOPAGO_RETURN_UI_V2_01: standalone return; no financial state changes. */
.cidec-payment-return.bg-light { min-height:100vh; min-height:100dvh; background:#F7F9FC !important; color:#0F2134; font-family:system-ui,-apple-system,'Segoe UI',sans-serif; line-height:1.65; }
.cidec-payment-return .cidec-return-main { padding-top:clamp(28px,7vh,72px) !important; padding-bottom:max(32px,env(safe-area-inset-bottom)) !important; }
.cidec-payment-return .cidec-return-column { width:100%; max-width:780px; }
.cidec-payment-return .cidec-return-card { overflow:hidden; border-radius:20px; background:#fff; box-shadow:0 18px 48px rgba(7,26,46,.09) !important; }
.cidec-payment-return .cidec-return-heading { padding:32px 40px; border-bottom:3px solid #F2B824; background:linear-gradient(110deg,#071A2E,#123B56); }
.cidec-payment-return .cidec-return-kicker { margin:0 0 12px; color:#DCE4EA; font-size:.75rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.cidec-payment-return .cidec-return-heading h1 { margin:0 !important; color:#F2B824; font:700 clamp(1.9rem,3vw,2.5rem)/1.22 Georgia,'Times New Roman',serif; overflow-wrap:anywhere; }
.cidec-payment-return .cidec-return-card .card-body { padding:32px 40px 36px !important; }
.cidec-payment-return .cidec-return-message { padding:20px 22px; border:1px solid #DCE4EA; border-left-width:4px; border-radius:12px; font-size:1rem; line-height:1.75; overflow-wrap:anywhere; }
.cidec-payment-return .alert-success { color:#185C3D; border-color:#B7DCCB; background:#EFF8F3; }
.cidec-payment-return .alert-warning { color:#714C00; border-color:#EBD79F; background:#FFF8E7; }
.cidec-payment-return .alert-danger { color:#912B25; border-color:#EAC9C4; background:#FFF3F1; }
.cidec-payment-return .alert-info { color:#075E59; border-color:#B9DCD7; background:#EDF7F5; }
.cidec-payment-return .cidec-return-reference { padding:14px 18px; border:1px solid #DCE4EA; border-radius:10px; background:#F7F9FC; color:#526779 !important; font-size:.875rem; overflow-wrap:anywhere; }
.cidec-payment-return .cidec-return-sync-warning { margin:20px 0 24px; padding:16px 18px; border:1px solid #DCE4EA; border-radius:10px; background:#F1F5F8; color:#435769; font-size:.875rem; line-height:1.75; overflow-wrap:anywhere; }
.cidec-payment-return .cidec-return-actions { padding-top:8px; }
.cidec-payment-return .cidec-return-actions .btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 24px; border-radius:10px; font-size:.9375rem; font-weight:650; line-height:1.4; white-space:normal; transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease; box-shadow:none; }
.cidec-payment-return .btn-primary { --bs-btn-color:#fff; --bs-btn-bg:#0B7A75; --bs-btn-border-color:#0B7A75; --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#075E59; --bs-btn-hover-border-color:#075E59; --bs-btn-active-color:#fff; --bs-btn-active-bg:#075E59; --bs-btn-active-border-color:#075E59; --bs-btn-focus-shadow-rgb:11,122,117; }
.cidec-payment-return .btn-outline-secondary { --bs-btn-color:#075E59; --bs-btn-border-color:#0B7A75; --bs-btn-hover-color:#075E59; --bs-btn-hover-bg:#E6F4F2; --bs-btn-hover-border-color:#075E59; --bs-btn-active-color:#075E59; --bs-btn-active-bg:#E6F4F2; --bs-btn-active-border-color:#075E59; --bs-btn-focus-shadow-rgb:11,122,117; }
.cidec-payment-return .cidec-return-actions a:focus-visible { outline:3px solid #0B7A75; outline-offset:4px; box-shadow:none; }
@media (max-width:575px) {
  .cidec-payment-return .cidec-return-main { padding-inline:16px; padding-top:24px !important; }
  .cidec-payment-return .cidec-return-card { border-radius:16px; }
  .cidec-payment-return .cidec-return-heading { padding:26px 22px; }
  .cidec-payment-return .cidec-return-kicker { font-size:.6875rem; letter-spacing:.1em; }
  .cidec-payment-return .cidec-return-card .card-body { padding:24px 22px 28px !important; }
  .cidec-payment-return .cidec-return-message { padding:16px; }
  .cidec-payment-return .cidec-return-reference, .cidec-payment-return .cidec-return-sync-warning { padding:14px 16px; }
  .cidec-payment-return .cidec-return-actions { gap:12px !important; }
  .cidec-payment-return .cidec-return-actions .btn { width:100%; }
}
/* Override Bootstrap's transitions only within this page for reduced motion. */
@media (prefers-reduced-motion:reduce) {
  .cidec-payment-return *, .cidec-payment-return *::before, .cidec-payment-return *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}

/* CIDEC auth recovery · Option B. Independent scopes; existing auth pages unchanged. */
:is(.cidec-auth-forgot, .cidec-auth-reset, .cidec-auth-verify) {
  --auth-brand: #0B7A75;
  --auth-brand-2: #075E59;
  --auth-ink: #071A2E;
  --auth-muted: #526779;
  --auth-line: #DCE4EA;
  --auth-soft: #F3F6F7;
  --auth-ring: rgba(11, 122, 117, .18);
  --brand: #0B7A75;
  --brand-2: #075E59;
  --ink: #071A2E;
  --muted: #526779;
  --line: #DCE4EA;
  --soft: #F3F6F7;
  --ring: rgba(11, 122, 117, .18);
  color: var(--ink);
  background: var(--soft);
  font-family: Arial, Helvetica, sans-serif;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .auth-shell {
  padding: 40px 32px;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .auth-grid {
  width: min(1200px, 100%);
  min-height: 742px;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  border: 1px solid var(--line);
  border-radius: 28px;
  box-shadow: 0 20px 60px rgba(7, 26, 46, .1);
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .auth-brand {
  min-width: 0;
  gap: 48px;
  padding: 44px 42px;
  background: #071A2E;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .auth-brand::after {
  background: linear-gradient(165deg, rgba(7, 26, 46, .84), rgba(11, 34, 57, .91) 60%, rgba(7, 94, 89, .84));
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .brand-top { gap: 14px; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .brand-logo {
  width: 56px;
  height: 56px;
  flex-shrink: 0;
  object-fit: contain;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .brand-name {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 36px;
  letter-spacing: .01em;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .brand-main { margin: auto 0 16px; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .brand-main h2 {
  max-width: 12ch;
  margin: 0 0 24px;
  color: #FFF;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(34px, 3.1vw, 46px);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.025em;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .brand-main h2::after {
  display: block;
  width: 52px;
  height: 3px;
  margin-top: 24px;
  background: #F2B824;
  content: '';
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .brand-main p {
  color: #EDF3F5;
  font-size: 16px;
  line-height: 1.75;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .badges { gap: 8px; margin-top: 28px; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .badge {
  min-height: 32px;
  padding: 6px 11px;
  border-color: rgba(255, 255, 255, .3);
  border-radius: 24px;
  color: #FFF;
  background: rgba(7, 26, 46, .32);
  font-size: 12px;
  font-weight: 600;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .auth-panel {
  min-width: 0;
  padding: 56px 60px;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .auth-panel header { margin-bottom: 24px; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .auth-panel h1 {
  margin: 0 0 14px;
  color: #071A2E;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(29px, 2.4vw, 36px);
  line-height: 1.16;
  letter-spacing: -.025em;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .auth-panel .sub {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.7;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .recovery-symbol {
  display: grid;
  width: 48px;
  height: 48px;
  margin-bottom: 24px;
  place-items: center;
  border: 1px solid #D1E5E2;
  border-radius: 14px;
  color: #0B7A75;
  background: #EFF7F6;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .recovery-symbol svg { width: 24px; height: 24px; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .auth-panel form { gap: 22px; margin-top: 8px; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .field { gap: 10px; min-width: 0; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .label {
  display: grid;
  gap: 7px;
  color: #071A2E;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .hint {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) input:not([type='hidden']) {
  min-width: 0;
  min-height: 54px;
  padding: 15px 52px 15px 46px;
  border: 1px solid #7D909C;
  border-radius: 12px;
  background: #FFF;
  color: #071A2E;
  font: 400 16px/1.4 Arial, Helvetica, sans-serif;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) input::placeholder { color: #647684; opacity: 1; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .ico { color: #627985; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .eye-btn {
  right: 5px;
  width: 44px;
  height: 44px;
  border-radius: 9px;
  color: #526779;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .eye-btn:hover { background: #EFF7F6; color: #075E59; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .actions { gap: 18px; margin-top: 4px; }
:is(.cidec-auth-forgot, .cidec-auth-reset, .cidec-auth-verify) .btn.btn-primary {
  min-height: 54px;
  padding: 15px 24px;
  border: 1px solid #0B7A75;
  border-radius: 12px;
  background: #0B7A75;
  color: #FFF;
  box-shadow: 0 4px 12px rgba(11, 122, 117, .13);
  font: 700 15px/1.5 Arial, Helvetica, sans-serif;
  text-align: center;
  white-space: normal;
  transition: background-color .18s ease, border-color .18s ease;
}
:is(.cidec-auth-forgot, .cidec-auth-reset, .cidec-auth-verify) .btn.btn-primary:hover {
  border-color: #075E59;
  background: #075E59;
  color: #FFF;
  box-shadow: 0 4px 12px rgba(11, 122, 117, .13);
  transform: none;
  filter: none;
}
:is(.cidec-auth-forgot, .cidec-auth-reset, .cidec-auth-verify) :is(a, button, input):focus-visible {
  outline: 3px solid #0B7A75;
  outline-offset: 4px;
  box-shadow: 0 0 0 2px #FFF;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 18px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .links a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: #075E59;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 4px;
  overflow-wrap: anywhere;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .links a:hover { color: #071A2E; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .links a.btn { color: #FFF; text-decoration: none; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .foot {
  justify-content: center;
  gap: 10px;
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .alert {
  margin: 0 0 20px;
  padding: 16px 18px;
  border: 1px solid;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
:is(.cidec-auth-forgot, .cidec-auth-reset) .alert.ok { border-color: #C4DFD6; background: #EFF8F3; color: #175D44; }
:is(.cidec-auth-forgot, .cidec-auth-reset) .alert.error { border-color: #EACCCB; background: #FCF3F2; color: #9D302C; }
@media (max-width: 1100px) {
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-shell { padding: 28px 24px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-brand { padding: 36px 30px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-panel { padding: 44px 36px; }
}
@media (max-width: 900px) {
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-grid { max-width: 660px; min-height: 0; grid-template-columns: minmax(0, 1fr); }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-brand { min-height: 0; gap: 32px; padding: 32px 36px 44px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .brand-main { margin: 0; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .brand-main h2 { max-width: none; font-size: 34px; margin-bottom: 16px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .brand-main h2::after { margin-top: 16px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .brand-main p { max-width: none; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .badges { margin-top: 18px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-panel { position: relative; margin-top: -16px; padding: 40px 36px; border-radius: 24px 24px 0 0; }
}
@media (max-width: 560px) {
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-shell { padding: 0; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-grid { min-height: 100vh; border: 0; border-radius: 0; box-shadow: none; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-brand { gap: 24px; padding: 24px 24px 40px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .brand-logo { width: 44px; height: 44px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .brand-name { font-size: 30px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .brand-main h2 { font-size: 29px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .brand-main p { font-size: 14px; line-height: 1.65; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .badge { min-height: 28px; padding: 5px 9px; font-size: 11px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .badges { gap: 6px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-panel { padding: 30px 24px max(32px, env(safe-area-inset-bottom)); }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-panel h1 { font-size: 29px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .auth-panel .sub { font-size: 14px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .recovery-symbol { width: 42px; height: 42px; margin-bottom: 20px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .links { align-items: stretch; flex-direction: column; gap: 4px; font-size: 12px; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .links > a { justify-content: center; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .links > span { text-align: center; }
  :is(.cidec-auth-forgot, .cidec-auth-reset) .foot { margin-top: 20px; padding-top: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.cidec-auth-forgot, .cidec-auth-reset, .cidec-auth-verify) :is(a, button, input) { transition: none; }
}

:is(.cidec-auth-forgot, .cidec-auth-reset) input:focus { border-color: #0B7A75; box-shadow: 0 0 0 3px rgba(11, 122, 117, .16); }

/* Reset outcomes retain the original branch conditions, messages and actions. */
.cidec-auth-reset .recovery-state { text-align: center; }
.cidec-auth-reset .recovery-state-icon {
  display: grid;
  width: 76px;
  height: 76px;
  margin: 0 auto 28px;
  place-items: center;
  border: 1px solid;
  border-radius: 50%;
  font: 700 36px/1 Arial, Helvetica, sans-serif;
}
.cidec-auth-reset .recovery-state-success .recovery-state-icon { border-color: #C4DFD6; background: #EFF8F3; color: #175D44; }
.cidec-auth-reset .recovery-state-error .recovery-state-icon { border-color: #EACCCB; background: #FCF3F2; color: #9D302C; }
.cidec-auth-reset .recovery-state ~ .alert { text-align: center; }
.cidec-auth-reset .recovery-state ~ .links { justify-content: center; }
.cidec-auth-reset .recovery-state ~ .links .btn { width: 100%; }
.cidec-auth-reset form .links { justify-content: center; }

/* Email verification · existing centered card, without public navigation or new actions. */
.cidec-auth-verify .auth-shell { padding: 40px 24px; }
.cidec-auth-verify .auth-card {
  width: min(664px, 100%);
  padding: 0;
  overflow: hidden;
  border: 1px solid #DCE4EA;
  border-radius: 26px;
  background: #FFF;
  box-shadow: 0 20px 60px rgba(7, 26, 46, .1);
}
.cidec-auth-verify .verification-brand {
  display: flex;
  min-height: 108px;
  padding: 24px;
  align-items: center;
  justify-content: center;
  gap: 14px;
  border-bottom: 3px solid #F2B824;
  background: #071A2E;
  color: #FFF;
}
.cidec-auth-verify .verification-brand img { width: 48px; height: 48px; object-fit: contain; }
.cidec-auth-verify .verification-brand strong { font: 700 34px/1.2 Georgia, 'Times New Roman', serif; letter-spacing: .01em; }
.cidec-auth-verify .verification-content { padding: 44px 60px 48px; }
.cidec-auth-verify .auth-card-icon {
  width: 76px;
  height: 76px;
  margin: 0 auto 26px;
  border: 1px solid;
  border-radius: 50%;
  font: 700 36px/1 Arial, Helvetica, sans-serif;
}
.cidec-auth-verify .auth-card-icon.ok { border-color: #C4DFD6; background: #EFF8F3; color: #175D44; }
.cidec-auth-verify .auth-card-icon.err { border-color: #EACCCB; background: #FCF3F2; color: #9D302C; }
.cidec-auth-verify .auth-card h1 {
  margin: 0 0 24px;
  color: #071A2E;
  font: 700 34px/1.2 Georgia, 'Times New Roman', serif;
  letter-spacing: -.025em;
}
.cidec-auth-verify .auth-card .verification-message {
  margin: 0 0 28px;
  padding: 16px 18px;
  border: 1px solid;
  border-radius: 12px;
  font-size: 15px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
.cidec-auth-verify .verification-message.verification-message-success { border-color: #C4DFD6; background: #EFF8F3; color: #175D44; }
.cidec-auth-verify .verification-message.verification-message-error { border-color: #EACCCB; background: #FCF3F2; color: #9D302C; }
.cidec-auth-verify .verification-content > .btn,
.cidec-auth-verify .verification-content form { width: min(360px, 100%); margin: 0 auto; }
.cidec-auth-verify .verification-content form .btn { width: 100%; }
@media (max-width: 560px) {
  .cidec-auth-verify .auth-shell { padding: 24px 16px max(24px, env(safe-area-inset-bottom)); }
  .cidec-auth-verify .auth-card { border-radius: 22px; }
  .cidec-auth-verify .verification-brand { min-height: 96px; padding: 22px; gap: 12px; }
  .cidec-auth-verify .verification-brand img { width: 44px; height: 44px; }
  .cidec-auth-verify .verification-brand strong { font-size: 30px; }
  .cidec-auth-verify .verification-content { padding: 34px 24px 36px; }
  .cidec-auth-verify .auth-card h1 { font-size: 29px; }
  .cidec-auth-verify .auth-card .verification-message { padding: 14px 16px; font-size: 14px; }
}

/* Public auxiliary Option B. Every selector is limited to these five page scopes.
   Preserve the earlier stylesheet byte for byte; legal helper output stays intact. */
:is(.cidec-contact-v2, .cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) { background: var(--cidec-bg); color: var(--cidec-text); }
:is(.cidec-contact-v2, .cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .cidec-aux-shell { padding: 48px 0 64px; }
:is(.cidec-contact-v2, .cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) main > .cidec-page-banner > .container,
:is(.cidec-contact-v2, .cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .cidec-aux-shell > .container { max-width: 1200px; }
:is(.cidec-contact-v2, .cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) main :is(h2, h3, h4) { color: var(--cidec-navy-950); letter-spacing: -.02em; }
:is(.cidec-contact-v2, .cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) main :is(a, button, input, textarea, select):focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 3px; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-hero.cidec-page-banner { padding: 42px 0 36px; background: linear-gradient(110deg, var(--cidec-navy-950), var(--cidec-navy-800)); border-bottom: 3px solid var(--cidec-gold); }
:is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-hero .cidec-page-banner__title { max-width: 100%; color: var(--cidec-gold); font: 700 clamp(2rem, 3.6vw, 3rem)/1.18 Georgia, 'Times New Roman', serif; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-hero .eyebrow { background: transparent; border: 0; padding: 0; color: #A9DDDA; letter-spacing: .08em; font-size: .75rem; text-transform: uppercase; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-hero p { max-width: 850px; color: #E2EBF1; line-height: 1.7; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-actions .btn { min-height: 44px; display: inline-flex; align-items: center; padding: 10px 16px; border: 1px solid #B8CCD8; border-radius: 10px; color: #FFF; background: transparent; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-actions .btn:hover { color: var(--cidec-navy-950); background: var(--cidec-gold); border-color: var(--cidec-gold); }
:is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .cidec-page-banner a:focus-visible { outline-color: var(--cidec-gold); }

/* Contact: form first in DOM/mobile, institutional channels and original map alongside. */
.cidec-contact-v2 .contact .contact-main-wrapper { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 28px; align-items: start; }
.cidec-contact-v2 .contact .contact-form-container { grid-column: 2; grid-row: 1; min-width: 0; margin: 0; padding: 32px; border: 1px solid var(--cidec-border); border-radius: 20px; background: #FFF; box-shadow: var(--cidec-shadow-md); }
.cidec-contact-v2 .contact-form-container h2 { margin: 0 0 12px; font-size: 28px; font-weight: 750; }
.cidec-contact-v2 .contact .contact-form-container > p { margin-bottom: 28px; padding-bottom: 24px; border-bottom: 1px solid var(--cidec-border); color: var(--cidec-text-muted); font-size: 15px; line-height: 1.7; }
.cidec-contact-v2 .contact-information { grid-column: 1; grid-row: 1; min-width: 0; }
.cidec-contact-v2 .contact-information > h2 { margin: 0 0 22px; font-size: 26px; font-weight: 750; }
.cidec-contact-v2 .contact .contact-cards-container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0 0 22px; }
.cidec-contact-v2 .contact .contact-card { display: flex; align-items: flex-start; gap: 14px; min-width: 0; padding: 22px 18px; border: 1px solid var(--cidec-border); border-radius: 14px; background: #FFF; box-shadow: var(--cidec-shadow-sm); }
.cidec-contact-v2 .contact .contact-card:hover { transform: none; border-color: #B8D6D3; }
.cidec-contact-v2 .contact .contact-card .icon-box { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; margin: 0; border-radius: 12px; color: var(--cidec-teal); background: var(--cidec-teal-soft); font-size: 20px; }
.cidec-contact-v2 .contact-card .contact-text { min-width: 0; }
.cidec-contact-v2 .contact .contact-card h4 { margin: 0 0 8px; font-size: 15px; font-weight: 700; }
.cidec-contact-v2 .contact .contact-card p { margin: 0; color: var(--cidec-text-muted); font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.cidec-contact-v2 .contact .map-wrapper { width: 100%; height: 260px; min-height: 0; border: 1px solid var(--cidec-border); border-radius: 16px; overflow: hidden; }
.cidec-contact-v2 .contact .map-wrapper iframe { display: block; width: 100%; height: 100%; }
.cidec-contact-v2 #contact-form label { display: block; margin-bottom: 8px; color: var(--cidec-text); font-size: 14px; font-weight: 700; }
.cidec-contact-v2 .contact .contact-form-container .php-email-form .form-control { min-height: 48px; padding: 12px 14px; border: 1px solid #BDC9D4; border-radius: 10px; color: var(--cidec-text); background: #FFF; font-size: 15px; box-shadow: none; }
.cidec-contact-v2 .contact .contact-form-container .php-email-form .form-control:focus { border-color: var(--cidec-teal); box-shadow: 0 0 0 3px var(--cidec-teal-soft); }
.cidec-contact-v2 .contact .contact-form-container .php-email-form .form-control::placeholder { color: #65758A; opacity: 1; }
.cidec-contact-v2 .contact .contact-form-container .php-email-form textarea.form-control { min-height: 170px; resize: vertical; }
.cidec-contact-v2 .contact .contact-form-container .php-email-form .form-submit { display: flex; flex-wrap: wrap; gap: 18px; justify-content: space-between; align-items: center; margin: 0; padding-top: 20px; border-top: 1px solid var(--cidec-border); }
.cidec-contact-v2 .contact .contact-form-container .php-email-form button { min-height: 48px; padding: 12px 20px; border: 1px solid var(--cidec-teal); border-radius: 12px; background: var(--cidec-teal); color: #FFF; font-weight: 700; }
.cidec-contact-v2 .contact .contact-form-container .php-email-form button:hover { background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); transform: none; }
.cidec-contact-v2 .contact .contact-form-container .php-email-form .social-links { gap: 8px; }
.cidec-contact-v2 .contact .contact-form-container .php-email-form .social-links a { width: 44px; height: 44px; color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); border-radius: 10px; }
.cidec-contact-v2 .contact .contact-form-container .php-email-form .social-links a:hover { color: #FFF; background: var(--cidec-teal-hover); }

/* Legal family: real provider/summary sidebar, complete document, no fabricated index. */
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-grid { grid-template-columns: 285px minmax(0, 1fr); gap: 26px; grid-template-areas: 'aside document'; align-items: start; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card { grid-area: document; min-width: 0; padding: 34px 38px; border: 1px solid var(--cidec-border); border-radius: 18px; box-shadow: var(--cidec-shadow-sm); }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .cidec-document-heading { display: flex; gap: 14px; align-items: center; margin-bottom: 4px; padding-bottom: 26px; border-bottom: 1px solid var(--cidec-border); }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .cidec-document-heading > i { color: var(--cidec-teal); font-size: 24px; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .cidec-document-heading h2 { margin: 0; font: 700 27px/1.3 Georgia, 'Times New Roman', serif; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card > section { padding: 28px 0; margin: 0; background: transparent; border: 0; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card > section + section { border-top: 1px solid var(--cidec-border); }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card > section:last-child { padding-bottom: 0; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card section h2 { font-size: 20px; line-height: 1.45; margin: 0 0 14px; font-weight: 750; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card :is(p, li) { color: #41556A; font-size: 15px; line-height: 1.85; overflow-wrap: anywhere; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card li + li { margin-top: 8px; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card p:last-child { margin-bottom: 0; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card a { color: var(--cidec-teal-hover); text-decoration: underline; text-underline-offset: 3px; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-aside { grid-area: aside; position: sticky; top: 100px; border: 1px solid var(--cidec-border); border-radius: 16px; box-shadow: var(--cidec-shadow-sm); }
:is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-aside .box { padding: 22px; border-color: var(--cidec-border); }
:is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-meta { font-size: 14px; line-height: 1.7; gap: 12px; color: #506278; overflow-wrap: anywhere; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-pill { border-color: #E9D49A; background: var(--cidec-gold-soft); color: #6A4A08; border-radius: 10px; line-height: 1.6; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-aside .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; border: 1px solid var(--cidec-teal); border-radius: 10px; color: #FFF; background: var(--cidec-teal); font-weight: 700; }
:is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-aside .btn:hover { border-color: var(--cidec-teal-hover); background: var(--cidec-teal-hover); color: #FFF; }

/* Certificate lookup: independent layout and existing Bootstrap; original JS is untouched. */
.cidec-certificate-lookup-v2 { display: block; min-height: 100vh; margin: 0; padding: 0; color: #FFF; font-family: Roboto, Arial, sans-serif; background: radial-gradient(ellipse at top left, #184C5B, transparent 50%), radial-gradient(ellipse at bottom right, #134B50, transparent 45%), var(--cidec-navy-950); }
.cidec-certificate-lookup-v2 .lookup-brand { display: flex; align-items: center; gap: 12px; max-width: 1340px; margin: auto; padding: 30px 32px; }
.cidec-certificate-lookup-v2 .lookup-brand .logo-container { display: block; margin: 0; }
.cidec-certificate-lookup-v2 .lookup-brand .logo { display: block; width: 54px; height: 54px; animation: none; filter: none; }
.cidec-certificate-lookup-v2 .lookup-brand strong { font: 700 34px/1.2 Georgia, 'Times New Roman', serif; }
.cidec-certificate-lookup-v2 .verification-wrapper { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; width: 100%; max-width: 1200px; min-height: calc(100vh - 114px); margin: auto; padding: 48px 24px 80px; perspective: none; }
.cidec-certificate-lookup-v2 .lookup-introduction { min-width: 0; text-align: left; }
.cidec-certificate-lookup-v2 .lookup-eyebrow { display: inline-block; margin: 0 0 24px; padding: 8px 14px; color: #6A4A08; background: var(--cidec-gold-soft); border-radius: 30px; font-size: 12px; font-weight: 700; }
.cidec-certificate-lookup-v2 .lookup-introduction h1 { margin: 0 0 24px; font: 700 clamp(2rem, 4vw, 3.1rem)/1.2 Georgia, 'Times New Roman', serif; color: #FFF; }
.cidec-certificate-lookup-v2 .lookup-introduction h1 span { color: var(--cidec-gold); }
.cidec-certificate-lookup-v2 .lookup-introduction > p:last-of-type { max-width: 460px; color: #D5E4EE; font-size: 16px; line-height: 1.8; }
.cidec-certificate-lookup-v2 .lookup-illustration { display: grid; place-items: center; width: min(360px, 85%); min-height: 200px; margin: 46px 0 0 18px; transform: rotate(-7deg); border: 1px solid #DCE4EA; border-radius: 20px; background: #EDF3F4; box-shadow: var(--cidec-shadow-lg); color: #B18620; font-size: 100px; }
.cidec-certificate-lookup-v2 .verification-container { min-width: 0; max-width: none; margin: 0; padding: 40px; border: 1px solid #E8D7AB; border-radius: 20px; background: #FFF; color: var(--cidec-text); box-shadow: var(--cidec-shadow-lg); text-align: left; transform: none; opacity: 1; animation: none; overflow: visible; }
.cidec-certificate-lookup-v2 .verification-container::before, .cidec-certificate-lookup-v2 .verification-title::after { content: none; animation: none; }
.cidec-certificate-lookup-v2 .lookup-card-icon { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 22px; border-radius: 14px; background: var(--cidec-teal-soft); color: var(--cidec-teal); font-size: 24px; }
.cidec-certificate-lookup-v2 .verification-title { margin: 0 0 28px; color: var(--cidec-navy-950); font: 700 29px/1.25 Georgia, 'Times New Roman', serif; }
.cidec-certificate-lookup-v2 .verification-form { gap: 18px; }
.cidec-certificate-lookup-v2 .input-icon-wrap { margin-bottom: 0 !important; } /* Preserved Bootstrap mb-3 utility; the form gap provides spacing. */
.cidec-certificate-lookup-v2 .input-icon-wrap label { display: block; margin-bottom: 10px; color: var(--cidec-text); font-size: 14px; font-weight: 700; }
.cidec-certificate-lookup-v2 .input-icon-wrap .field-icon { position: static; transform: none; color: var(--cidec-teal); opacity: 1; margin-right: 4px; font-size: 16px; }
.cidec-certificate-lookup-v2 .input-icon-wrap .form-control { min-height: 54px; padding: 13px 12px; border: 1px solid #AFBECD; border-radius: 10px; color: var(--cidec-text); font-size: 16px; }
.cidec-certificate-lookup-v2 .input-icon-wrap .form-control::placeholder { color: #61728A; opacity: 1; font-size: 13px; }
.cidec-certificate-lookup-v2 .input-icon-wrap .form-control:focus { border-color: var(--cidec-teal); box-shadow: 0 0 0 3px var(--cidec-teal-soft); outline: 3px solid var(--cidec-teal); outline-offset: 3px; }
.cidec-certificate-lookup-v2 .btn-verify { min-height: 48px; padding: 12px 18px; border-radius: 10px; border: 1px solid var(--cidec-teal); background: var(--cidec-teal); color: #FFF; box-shadow: none; font-size: 14px; font-weight: 700; letter-spacing: .025em; transition: background-color 160ms ease; }
.cidec-certificate-lookup-v2 .btn-verify:hover { background: var(--cidec-teal-hover); transform: none; box-shadow: none; }
.cidec-certificate-lookup-v2 .btn-verify:focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 4px; }
.cidec-certificate-lookup-v2 .verification-footer { margin-top: 24px; padding: 22px 0 0; border-top: 1px solid var(--cidec-border); border-radius: 0; color: #506278; background: transparent; font-size: 13px; line-height: 1.7; text-align: center; }
.cidec-certificate-lookup-v2 .verification-footer p:last-child { margin: 0; }
.cidec-certificate-lookup-v2 #resultado { overflow-wrap: anywhere; }

/* Complaints: original single POST, grouped fieldsets, original explanations moved to aside. */
.cidec-complaints-v2 .legal-grid { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 26px; align-items: start; }
.cidec-complaints-v2 .legal-card { min-width: 0; padding: 30px; border: 1px solid var(--cidec-border); border-radius: 18px; box-shadow: var(--cidec-shadow-sm); }
.cidec-complaints-v2 .legal-card > section { padding: 0; margin: 0; border: 0; }
.cidec-complaints-v2 .legal-card > section > h2 { margin: 0 0 26px; font-size: 27px; font-weight: 750; }
.cidec-complaints-v2 .claim-form { display: block; }
.cidec-complaints-v2 .cidec-claim-group { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; min-width: 0; padding: 24px 0; margin: 0; border: 0; border-top: 1px solid var(--cidec-border); }
.cidec-complaints-v2 .cidec-claim-group legend { float: none; display: flex; align-items: center; gap: 12px; width: 100%; margin: 0 0 20px; padding: 0; color: var(--cidec-navy-950); font-size: 17px; font-weight: 750; }
.cidec-complaints-v2 .cidec-claim-group legend > span { display: grid; place-items: center; flex: 0 0 34px; min-height: 34px; border-radius: 9px; color: var(--cidec-teal-hover); background: var(--cidec-teal-soft); font-size: 13px; }
.cidec-complaints-v2 .claim-form :is(.field, .field-full) { min-width: 0; }
.cidec-complaints-v2 .claim-form .form-label { font-size: 14px; margin-bottom: 8px; line-height: 1.5; }
.cidec-complaints-v2 .claim-form :is(.form-control, .form-select) { min-height: 48px; padding: 12px 14px; color: var(--cidec-text); border: 1px solid #AFBECD; border-radius: 10px; background-color: #FFF; font-size: 15px; }
.cidec-complaints-v2 .claim-form :is(.form-control, .form-select):focus { border-color: var(--cidec-teal); box-shadow: 0 0 0 3px var(--cidec-teal-soft); }
.cidec-complaints-v2 .claim-form textarea.form-control { min-height: 150px; resize: vertical; }
.cidec-complaints-v2 .claim-form .form-check { display: flex; align-items: flex-start; gap: 12px; min-height: 48px; margin: 0; padding: 12px 14px; border: 1px solid var(--cidec-border); border-radius: 10px; background: #FFF; font-size: 14px; line-height: 1.7; }
.cidec-complaints-v2 .claim-form .form-check-input { float: none; flex: 0 0 18px; width: 18px; height: 18px; margin: 3px 0 0; border-color: #738596; }
.cidec-complaints-v2 .claim-form .form-check-input:checked { border-color: var(--cidec-teal); background-color: var(--cidec-teal); }
.cidec-complaints-v2 .claim-form .form-check:has(:checked) { border-color: #A4CECA; background: var(--cidec-teal-soft); }
.cidec-complaints-v2 .claim-form .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 22px; border: 1px solid var(--cidec-teal); border-radius: 10px; color: #FFF; background: var(--cidec-teal); font-size: 15px; font-weight: 700; }
.cidec-complaints-v2 .claim-form .btn:hover { background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); }
.cidec-complaints-v2 .claim-form .btn:disabled { opacity: .65; }
.cidec-complaints-v2 .legal-aside { position: sticky; top: 100px; border: 1px solid var(--cidec-border); border-radius: 16px; box-shadow: var(--cidec-shadow-sm); }
.cidec-complaints-v2 .legal-aside > section { margin: 0; padding: 22px; border-bottom: 1px solid var(--cidec-border); }
.cidec-complaints-v2 .legal-aside > section > h2 { font-size: 18px; margin-bottom: 18px; }
.cidec-complaints-v2 .legal-aside .row { display: grid; grid-template-columns: 1fr; margin: 0; gap: 12px; }
.cidec-complaints-v2 .legal-aside .row > div { width: 100%; padding: 0; margin: 0; }
.cidec-complaints-v2 .claim-summary { padding: 16px; border: 1px solid var(--cidec-border); background: #FFF; }
.cidec-complaints-v2 .claim-summary h3 { margin: 0 0 8px; color: var(--cidec-navy-950); font-size: 15px; font-weight: 700; }
.cidec-complaints-v2 .claim-summary p { color: #506278; font-size: 14px; line-height: 1.7; }
.cidec-complaints-v2 .claim-success .btn { min-height: 44px; background: var(--cidec-teal); border-color: var(--cidec-teal); color: #FFF; }

@media (max-width: 1199.98px) {
  /* Reserve the existing fixed WhatsApp/scroll-top lane without changing their components. */
  :is(.cidec-contact-v2, .cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .cidec-aux-shell > .container { padding-inline-end: 76px; }
  .cidec-contact-v2 .contact .contact-main-wrapper { gap: 20px; }
  .cidec-contact-v2 .contact .contact-cards-container { grid-template-columns: 1fr; }
  :is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-grid { grid-template-columns: 240px minmax(0, 1fr); gap: 20px; }
}
@media (max-width: 991.98px) {
  .cidec-contact-v2 .contact .contact-main-wrapper { grid-template-columns: 1fr; gap: 32px; }
  .cidec-contact-v2 .contact :is(.contact-form-container, .contact-information) { grid-column: 1; grid-row: auto; }
  .cidec-contact-v2 .contact .contact-cards-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-grid { grid-template-columns: 1fr; grid-template-areas: 'document' 'aside'; }
  :is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-aside { position: static; }
  .cidec-complaints-v2 .legal-grid { grid-template-columns: 1fr; }
  .cidec-certificate-lookup-v2 .verification-wrapper { grid-template-columns: 1fr; max-width: 650px; gap: 30px; padding-top: 28px; }
  .cidec-certificate-lookup-v2 .lookup-introduction { text-align: center; }
  .cidec-certificate-lookup-v2 .lookup-introduction > p:last-of-type { margin: 0 auto; }
  .cidec-certificate-lookup-v2 .lookup-illustration { display: none; } /* Decorative icon only; no content or controls hidden. */
}
@media (max-width: 767.98px) {
  :is(.cidec-contact-v2, .cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .cidec-aux-shell { padding-block: 28px 44px; }
  :is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-hero.cidec-page-banner { padding-block: 28px; }
  :is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-hero .cidec-page-banner__title { font-size: 32px; }
  .cidec-contact-v2 .cidec-page-banner__container { flex-wrap: wrap; }
  .cidec-contact-v2 .contact .contact-form-container { padding: 22px; }
  .cidec-contact-v2 .contact .contact-cards-container { grid-template-columns: 1fr; }
  .cidec-contact-v2 .contact .contact-form-container .php-email-form .form-submit { flex-direction: column; align-items: stretch; }
  .cidec-contact-v2 .contact .contact-form-container .php-email-form .social-links { justify-content: flex-start; flex-wrap: wrap; }
  :is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card { padding: 22px; }
  :is(.cidec-terms-v2, .cidec-returns-policy-v2) .cidec-document-heading { align-items: flex-start; gap: 10px; }
  :is(.cidec-terms-v2, .cidec-returns-policy-v2) .cidec-document-heading h2 { font-size: 23px; }
  :is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card > section { padding-block: 24px; }
  .cidec-complaints-v2 .legal-card { padding: 22px; }
  .cidec-complaints-v2 .claim-form .field { grid-column: span 12; }
  .cidec-complaints-v2 .claim-form .btn { width: 100%; }
  .cidec-complaints-v2 .claim-form .d-flex { flex-direction: column; }
  .cidec-certificate-lookup-v2 .lookup-brand { padding: 24px 20px; }
  .cidec-certificate-lookup-v2 .lookup-brand strong { font-size: 30px; }
  .cidec-certificate-lookup-v2 .verification-wrapper { padding: 20px 16px 48px; }
  .cidec-certificate-lookup-v2 .verification-container { padding: 28px 22px; }
  .cidec-certificate-lookup-v2 .lookup-introduction h1 { font-size: 32px; }
}
@media (max-width: 359.98px) {
  .cidec-contact-v2 .contact .contact-form-container { padding: 16px; }
  .cidec-contact-v2 .contact .contact-card { padding: 16px 12px; gap: 10px; }
  :is(.cidec-terms-v2, .cidec-returns-policy-v2) .legal-card, .cidec-complaints-v2 .legal-card { padding: 16px; }
  :is(.cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) .legal-aside .box { padding: 16px; }
  .cidec-complaints-v2 .cidec-claim-group legend { font-size: 16px; gap: 8px; }
  .cidec-certificate-lookup-v2 .verification-container { padding: 24px 16px; }
  .cidec-certificate-lookup-v2 .verification-title { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.cidec-contact-v2, .cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) main *,
  .cidec-certificate-lookup-v2 * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } /* Neutralize inherited vendor animations within the authorized pages. */
  .cidec-contact-v2 main [data-aos] { opacity: 1 !important; transform: none !important; } /* Existing AOS inline/runtime presentation. */
}

/* Neutralize inherited content surfaces and icon color only within these new pages. */
:is(.cidec-contact-v2, .cidec-terms-v2, .cidec-returns-policy-v2, .cidec-complaints-v2) main.main { background: var(--cidec-bg); color: var(--cidec-text); }
.cidec-contact-v2 .contact .contact-card .icon-box i { color: var(--cidec-teal); }
.cidec-certificate-lookup-v2 .verification-title { text-align: left; }


/* Certificate result, Option B. Autonomous layout; original certificate contracts remain canonical. */
.cidec-certificate-result { min-height: 100vh; background: var(--cidec-bg); color: var(--cidec-text); }
.cidec-certificate-result .result-header { background: var(--cidec-navy-950); border-bottom: 1px solid rgba(255,255,255,.12); }
.cidec-certificate-result .result-brand { max-width: 1120px; margin-inline: auto; padding: 16px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.cidec-certificate-result .result-brand-identity { display: flex; align-items: center; gap: 12px; min-width: 0; }
.cidec-certificate-result .result-logo { flex: 0 0 52px; width: 52px; height: 52px; object-fit: contain; border-radius: 50%; }
.cidec-certificate-result .result-brand-name { color: var(--cidec-text-inverse); font: 700 28px/1.15 Georgia, "Times New Roman", serif; letter-spacing: .04em; }
.cidec-certificate-result .result-brand-label { padding: 9px 16px; border: 1px solid rgba(255,255,255,.25); border-radius: 24px; color: #CDD8E3; font-size: 11px; line-height: 1.4; font-weight: 600; letter-spacing: .08em; text-align: center; }
.cidec-certificate-result .result-hero { position: relative; overflow: clip; padding: 42px 0 76px; background: linear-gradient(110deg,var(--cidec-navy-950),var(--cidec-navy-800)); border-bottom: 3px solid var(--cidec-gold); }
.cidec-certificate-result .result-hero::after { content: ""; position: absolute; width: 600px; height: 600px; right: -160px; top: -290px; border: 1px solid var(--cidec-gold); border-radius: 50%; opacity: .12; pointer-events: none; }
.cidec-certificate-result .result-hero-inner { position: relative; z-index: 1; max-width: 1120px; margin-inline: auto; padding-inline: 24px; }
.cidec-certificate-result .result-eyebrow { margin: 0 0 12px; color: var(--cidec-gold); font-size: 12px; line-height: 1.5; letter-spacing: .12em; font-weight: 700; text-transform: uppercase; }
.cidec-certificate-result .result-hero h1 { margin: 0; color: var(--cidec-text-inverse); font: 700 clamp(2rem,3.1vw,2.75rem)/1.2 Georgia, "Times New Roman", serif; overflow-wrap: anywhere; }
.cidec-certificate-result .result-main { position: relative; }
.cidec-certificate-result .result-layout { width: 100%; max-width: 1120px; padding: 0 24px 56px; margin: -40px auto 0; }
.cidec-certificate-result .result-grid { position: relative; isolation: isolate; display: grid; grid-template-columns: 350px minmax(0,1fr); grid-template-areas: "person academic" "actions academic"; grid-template-rows: auto 1fr; column-gap: 24px; }
.cidec-certificate-result .result-grid::before { content: ""; grid-area: 1 / 1 / 3 / 2; z-index: -1; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); background: var(--cidec-surface); box-shadow: var(--cidec-shadow-md); pointer-events: none; }
.cidec-certificate-result .result-person { grid-area: person; min-width: 0; padding: 28px 28px 22px; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; }
.cidec-certificate-result .result-state-row { display: flex; justify-content: center; margin-bottom: 22px; }
.cidec-certificate-result .result-state { display: inline-flex; justify-content: center; max-width: 100%; padding: 7px 14px; font-size: 12px; line-height: 1.5; letter-spacing: .02em; text-align: center; overflow-wrap: anywhere; }
/* Override the preserved Bootstrap bg-* utility only within the existing state badge. */
.cidec-certificate-result .result-state.bg-success { background: var(--cidec-success) !important; }
.cidec-certificate-result .result-state.bg-secondary { background: var(--cidec-text-muted) !important; }
.cidec-certificate-result .result-person .avatar { width: 140px; height: 140px; flex-shrink: 0; margin: 0 auto 20px; border: 6px solid var(--cidec-surface); outline: 1px solid var(--cidec-border); box-shadow: var(--cidec-shadow-sm); }
.cidec-certificate-result .result-person-label { margin-bottom: 10px; color: var(--cidec-teal); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.cidec-certificate-result .result-person-name { margin: 0; color: var(--cidec-navy-950); font: 700 1.375rem/1.4 Georgia, "Times New Roman", serif; overflow-wrap: anywhere; }
/* Keep the original px-0 utility hook; only the relocated DNI row needs padded edges. */
.cidec-certificate-result .result-person .result-dni { margin-top: 18px; padding: 10px 12px !important; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-sm); background: var(--cidec-surface-muted); justify-content: center; min-width: 0; }
.cidec-certificate-result .result-dni .list-icon { flex-shrink: 0; color: var(--cidec-teal); }
.cidec-certificate-result .result-dni > div { display: flex; align-items: baseline; justify-content: center; flex-wrap: wrap; gap: 6px; min-width: 0; }
.cidec-certificate-result .result-dni strong { color: var(--cidec-navy-950); font-size: .875rem; overflow-wrap: anywhere; }
.cidec-certificate-result .result-details { grid-area: academic; min-width: 0; padding: 30px 32px; align-self: stretch; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); background: var(--cidec-surface); box-shadow: var(--cidec-shadow-md); backdrop-filter: none; }
.cidec-certificate-result .result-details-title { margin: 0 0 10px; padding-bottom: 22px; border-bottom: 1px solid var(--cidec-border); color: var(--cidec-navy-950); font: 700 1.5rem/1.35 Georgia, "Times New Roman", serif; overflow-wrap: anywhere; }
/* Bootstrap text-primary is retained in markup; its icon is decorative, never a green approval. */
.cidec-certificate-result .result-details-title .text-primary { color: var(--cidec-gold) !important; }
.cidec-certificate-result .result-academic-fields .list-group-item { min-width: 0; padding-block: 20px; border-color: var(--cidec-border); background: transparent; gap: 8px; }
.cidec-certificate-result .result-academic-fields .list-group-item:last-child { padding-bottom: 0; }
.cidec-certificate-result .result-academic-fields .list-icon { width: 22px; margin-right: 0; flex-shrink: 0; color: var(--cidec-teal); }
.cidec-certificate-result .result-academic-fields .list-group-item > div { flex: 1; min-width: 0; display: grid; grid-template-columns: minmax(100px,.34fr) minmax(0,1fr); gap: 8px 18px; align-items: baseline; }
/* Preserve text-secondary/text-muted utility classes while using the V2 readable text token. */
.cidec-certificate-result :is(.result-academic-fields,.result-dni) .text-secondary { color: var(--cidec-text-muted) !important; font-size: .8125rem; line-height: 1.6; }
.cidec-certificate-result .result-academic-fields strong { min-width: 0; color: var(--cidec-navy-950); font-size: 1rem; line-height: 1.6; overflow-wrap: anywhere; }
.cidec-certificate-result .result-program strong { font: 700 1.1875rem/1.6 Georgia, "Times New Roman", serif; }
.cidec-certificate-result .result-academic-fields strong .text-muted { display: block; margin-top: 5px; color: var(--cidec-text-muted) !important; font-weight: 400; line-height: 1.6; }
.cidec-certificate-result .result-actions { grid-area: actions; min-width: 0; align-self: start; margin-inline: 28px; padding: 22px 0 28px; border-top: 1px solid var(--cidec-border); }
.cidec-certificate-result .result-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 48px; max-width: 100%; padding: 12px 16px; border-radius: var(--cidec-radius-md); font-size: .9375rem; line-height: 1.5; font-weight: 600; white-space: normal; overflow-wrap: anywhere; transition: background-color var(--cidec-transition-fast), border-color var(--cidec-transition-fast), color var(--cidec-transition-fast); }
.cidec-certificate-result .result-actions .btn-descargar { color: var(--cidec-text-inverse); background: var(--cidec-teal); border: 1px solid var(--cidec-teal); }
.cidec-certificate-result .result-actions .btn-descargar:is(:hover,:active) { color: var(--cidec-text-inverse); background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); }
.cidec-certificate-result .result-actions .btn-outline-primary { color: var(--cidec-teal-hover); border: 1px solid var(--cidec-teal); background: var(--cidec-surface); }
.cidec-certificate-result .result-actions .btn-outline-primary:is(:hover,:active) { color: var(--cidec-text-inverse); background: var(--cidec-teal-hover); border-color: var(--cidec-teal-hover); }
.cidec-certificate-result .result-actions .btn:focus-visible { outline: 3px solid var(--cidec-teal); outline-offset: 4px; box-shadow: none; }
.cidec-certificate-result .result-actions .alert-info { order: 1; margin-top: 6px; padding: 16px; color: var(--cidec-navy-950); background: var(--cidec-teal-soft); border: 1px solid var(--cidec-border); border-left: 3px solid var(--cidec-teal); border-radius: var(--cidec-radius-sm); font-size: .875rem; line-height: 1.7; overflow-wrap: anywhere; }
@media (max-width: 991px) {
  .cidec-certificate-result .result-layout { max-width: 760px; }
  .cidec-certificate-result .result-grid { grid-template-columns: minmax(0,1fr); grid-template-areas: "person" "academic" "actions"; grid-template-rows: auto; gap: 20px; }
  .cidec-certificate-result .result-grid::before { content: none; }
  .cidec-certificate-result .result-person { padding: 28px; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); background: var(--cidec-surface); box-shadow: var(--cidec-shadow-md); }
  .cidec-certificate-result .result-person .result-dni { max-width: 400px; margin-inline: auto; }
  .cidec-certificate-result .result-actions { margin: 0; padding: 24px; border: 1px solid var(--cidec-border); border-radius: var(--cidec-radius-lg); background: var(--cidec-surface); box-shadow: var(--cidec-shadow-sm); }
}
@media (max-width: 575px) {
  .cidec-certificate-result .result-brand { padding: 14px 16px; gap: 10px; }
  .cidec-certificate-result .result-logo { width: 44px; height: 44px; flex-basis: 44px; }
  .cidec-certificate-result .result-brand-identity { gap: 8px; }
  .cidec-certificate-result .result-brand-name { font-size: 23px; }
  .cidec-certificate-result .result-brand-label { max-width: 132px; padding: 7px 10px; font-size: 9px; letter-spacing: .04em; }
  .cidec-certificate-result .result-hero { padding: 32px 0 62px; }
  .cidec-certificate-result .result-hero-inner { padding-inline: 16px; }
  .cidec-certificate-result .result-eyebrow { font-size: 10px; }
  .cidec-certificate-result .result-layout { padding: 0 16px 32px; margin-top: -32px; }
  .cidec-certificate-result .result-grid { gap: 16px; }
  .cidec-certificate-result .result-person { padding: 24px 18px; }
  .cidec-certificate-result .result-details { padding: 24px 18px; }
  .cidec-certificate-result .result-details-title { font-size: 1.375rem; padding-bottom: 18px; }
  .cidec-certificate-result .result-academic-fields .list-group-item { align-items: flex-start !important; } /* Preserved Bootstrap align-items-center utility. */
  .cidec-certificate-result .result-academic-fields .list-group-item > div { grid-template-columns: minmax(0,1fr); gap: 4px; }
  .cidec-certificate-result .result-academic-fields .list-icon { margin-top: 3px; }
  .cidec-certificate-result .result-actions { padding: 20px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .cidec-certificate-result .result-actions .btn { transition: none; }
}
