﻿
:root {
  /* ?? Paleta institucional - Colegio Científico de Parrita */

  /* Colores principales */
  --color-primary: #0F2E8C;       /* Azul institucional */
  --color-secondary: #E6CB3D;     /* Amarillo brillante */
  --color-dark: #141414;          /* Texto principal / Negro */
  --color-light: #BEBEBF;         /* Gris claro */
  --color-bg: #FFFFFF;            /* Fondo general (modo claro) */
  --color-text: #141414;          /* Texto principal */
  /* Colores complementarios */
  --color-accent: #F8F8F8;        /* Cards, secciones destacadas */
  --color-footer-bg: #0F2E8C;     /* Footer / Header */

  /* Variantes de botones */
  --color-primary-hover: #0C2470;
  --color-secondary-hover: #E6D800;
  --color-button-text: #141414;

  /* Texto y enlaces */
  --color-text-secondary: #4A4A4A;
  --color-link: #F1E91D;
  --color-link-hover: #F1E91D;
  --color-link-visited: #BEBEBF;

  /* Apoyos de UI */
  --color-border: #E6E6E6;
  --color-surface: #F8F8F8;

  /* Transiciones y sombras */
  --transition-default: all 0.3s ease;
  --shadow-light: none;
  --shadow-strong: none;
}



/* ---------------------------------------------
Table of contents
------------------------------------------------
01. font & reset css
02. reset
03. global styles
04. header
05. banner
06. features
07. testimonials
08. contact
09. footer
10. preloader
11. search
12. portfolio

--------------------------------------------- */
/* 
---------------------------------------------
font & reset css
--------------------------------------------- 
*/
@import url("https://fonts.googleapis.com/css?family=Open+Sans:100,200,300,400,500,600,700,800,900");
/* 
---------------------------------------------
reset
--------------------------------------------- 
*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, blockquote, div
pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q,
s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li,
figure, header, nav, section, article, aside, footer, figcaption {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
}

.clearfix:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0;
}

.clearfix {
  display: inline-block;
}

html[xmlns] .clearfix {
  display: block;
}

* html .clearfix {
  height: 1%;
}

ul, li {
  padding: 0;
  margin-left: 10px;
}

.detail-card__list--uploads {
  list-style: disc;
  padding-left: 20px;
}

.detail-card__list--uploads li {
  list-style: disc;
  display: list-item;
  margin-left: 4px;
}

header, nav, section, article, aside, footer, hgroup {
  display: block;
}

* {
  box-sizing: border-box;
}

html, body {
  font-family: 'Poppins', sans-serif;
  font-weight: 400;
  background-color: var(--color-bg);
  font-size: 16px;
  -ms-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  text-decoration: none !important;
}

h1, h2, h3, h4, h5, h6 {
  margin-top: 0px;
  margin-bottom: 0px;
  color: var(--color-dark);
}

ul {
  margin-bottom: 0px;
}

p {
  font-size: 15px;
  line-height: 26px;
  color: var(--color-dark);
}

/* Texto justificado para login (ng-controller) y registro (cuerpo de admisión) */
body[ng-controller="MainController"] p,
.ccp-admission-body p{
  text-align: justify;
}

.site-footer p{
  text-align: center !important;
}

img {
  overflow: hidden;
}

/* 
---------------------------------------------
global styles
--------------------------------------------- 
*/
html,
body {
  background-color: var(--color-bg);
  font-family: 'Poppins', sans-serif;
}

::selection {
  background: var(--color-primary);
  color: var(--color-bg);
}

::-moz-selection {
  background: var(--color-primary);
  color: var(--color-bg);
}

@media (max-width: 991px) {
  html, body {
    overflow-x: hidden;
  }
  .mobile-top-fix {
    margin-top: 30px;
    margin-bottom: 0px;
  }
  .mobile-bottom-fix {
    margin-bottom: 30px;
  }
  .mobile-bottom-fix-big {
    margin-bottom: 60px;
  }
}

.green-button a {
  font-size: 14px;
  color: var(--color-bg);
  background-color: var(--color-secondary);
  padding: 12px 30px;
  display: inline-block;
  border-radius: 5px;
  font-weight: 500;
  text-transform: capitalize;
  letter-spacing: 0.5px;
  transition: all .3s;
}

.green-button a:hover {
  opacity: 0.9;
}

.orange-button a {
  font-size: 14px;
  color: var(--color-bg);
  background-color: var(--color-primary);
  padding: 12px 30px;
  display: inline-block;
  border-radius: 5px;
  font-weight: 500;
  text-transform: capitalize;
  letter-spacing: 0.5px;
  transition: all .3s;
}

.orange-button a:hover {
  opacity: 0.9;
}

.section-heading {
  position: relative;
  z-index: 2;
  margin-top: 0px;
  text-align: center;
  margin-bottom: 70px;
}

.section-heading h6 {
  font-size: 20px;
  text-transform: uppercase;
  color: var(--color-primary);
  font-weight: 700;
  letter-spacing: 0.12em;
}

.section-heading h4 {
  margin-top: 10px;
  line-height: 1.2;
  font-size: 36px;
  font-weight: 800;
  text-transform: capitalize;
  color: var(--color-dark);
}
.section-heading h4 em {
  font-style: normal;
  color: var(--color-secondary);
}

.section-heading p {
  margin-top: 30px;
}

/* 
---------------------------------------------
header
--------------------------------------------- 
*/
/* ===================== HEADER (overlay + glass + 3D) ===================== */
/* Alturas / tokens */
:root{
  --header-h: 96px;              /* altura desktop aprox */
  --header-h-mobile: 80px;       /* altura móvil aprox */

  --glass-blur: 18px;
  --glass-saturate: 160%;
  --glass-radius: 15px;
  --glass-edge: rgba(255,255,255,0.20); /* borde suavizado */
  --glass-shadow: none;
  --glass-shadow-strong: none;
  --glass-tint-1: rgba(15,46,140,.25);
  --glass-tint-2: rgba(15,46,140,.25);
  --glass-brand: rgba(15,46,140,.25);

  /* reflejo / halo */
  --ring-opacity: .40;
  --ring-blur: 18px;
  --specular: .28;               /* bajado para evitar “halo” duro en esquinas */
}

/* Header fijo superpuesto */
.header-area{
  position: sticky;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: linear-gradient(135deg, #071c63 0%, #0c287f 100%);
  padding: clamp(14px, 3vw, 22px) 0;
  box-shadow: 0 12px 28px rgba(7, 28, 99, 0.28);
  transition: background 0.3s ease, padding 0.3s ease, box-shadow 0.3s ease;
}

/* Compensación de overlay: empuja el contenido */
body{
  padding-top: 0;
  --mobile-header-offset: 0px;
}





/* Bandas superiores */
.header-meta{
  display:flex;
  flex-direction:column;
  gap:0;
}

.header-meta__bar{
  position: relative;
  background: var(--color-primary);
  color:#ffffff;
  padding: clamp(16px, 5vw, 28px) 0;
  text-align:center;
  box-shadow: 0 6px 18px rgba(11, 31, 96, 0.28);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.header-meta__bar::before{
  display: none;
}
.header-meta__bar > *{
  position:relative;
  z-index:1;
}

 .header-meta__inner{
   display:flex;
   flex-direction:column;
   align-items:center;
   justify-content:center;
   text-align:center;
   gap: clamp(16px, 3vw, 28px);
 }

 .header-brand{
   display:flex;
   flex-direction:column;
   align-items:center;
   gap: clamp(8px, 2vw, 14px);
 }

.header-brand__logo{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
}

.header-brand__logo img{
  display:block;
  height: clamp(52px, 8vw, 78px);
  width:auto;
}

.header-brand__text{
  display:flex;
  flex-direction:column;
  gap:4px;
  text-align:center;
}

.header-brand__name{
  font-weight:700;
  font-size: clamp(18px, 2.2vw, 26px);
  letter-spacing:0.02em;
}

.header-brand__country{
  font-weight:500;
  font-size: clamp(14px, 1.6vw, 18px);
  letter-spacing:0.08em;
  text-transform: uppercase;
}

 .header-info{
   display:flex;
   align-items:center;
   justify-content:center;
   flex-wrap:wrap;
   gap: clamp(10px, 2.4vw, 20px);
   font-size:13px;
   color: rgba(255,255,255,0.85);
 }

.header-info__social{
  display:flex;
  align-items:center;
  gap:16px;
}

.header-info__social a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:50%;
  color:#ffffff;
  background:rgba(255,255,255,0.18);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.header-info__social a:hover{
  background:rgba(255,255,255,0.28);
  transform: translateY(-2px);
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.22);
}

.header-info__contact{
  display:flex;
  align-items:center;
  gap: clamp(12px, 3vw, 24px);
  flex-wrap:wrap;
}

.header-info__contact-link,
.header-info__schedule{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:rgba(255,255,255,0.88);
  font-weight:500;
  text-decoration:none;
}

.header-info__contact-link i,
.header-info__schedule i{
  color:#ffffff;
  font-size:13px;
}

.header-info__contact-link:hover{
  color:#ffffff;
}

/* Pill de vidrio */
.header-style{
  position: relative;
  isolation: isolate;
  margin: 0;
  max-width: 100%;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: clamp(12px, 3vw, 24px) clamp(20px, 6vw, 64px);
  transition: var(--transition-default);
}

.header-style::before,
.header-style::after{
  display: none;
}

.header-area.background-header{
  background: transparent;
  padding: clamp(10px, 2vw, 16px) 0;
  box-shadow: none;
}

.header-area.background-header .header-style{
  margin: 8px auto 0 auto;
  max-width: min(1200px, 96%);
  background: linear-gradient(135deg,var(--glass-tint-1),var(--glass-tint-2)), var(--glass-brand);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  border: 1px solid var(--color-primary);
  border-radius: var(--glass-radius);
  background-clip: padding-box;
  box-shadow: var(--glass-shadow), inset 0 1px 1px rgba(255,255,255,.25);
  padding: 8px 16px;
}

.header-area.background-header .header-style::after{
  content:"";
  position:absolute;
  inset: 1px 1px auto 1px;
  height: 38%;
  border-radius: calc(var(--glass-radius) - 1px);
  background: linear-gradient(180deg,
              rgba(255,255,255,.55) 0%,
              rgba(255,255,255,0) 85%);
  mix-blend-mode: screen;
  opacity: var(--specular);
  pointer-events: none;
}

.header-area.background-header .header-style::before{
  content: "";
  position: absolute;
  z-index: -1;
  left: 8%;
  right: 8%;
  height: 22px;
  bottom: -12px;
  border-radius: 999px;
  background: radial-gradient(60% 70% at 50% 50%,
              rgba(0,0,0,.35) 0%,
              rgba(0,0,0,.22) 40%,
              rgba(0,0,0,0) 100%);
  filter: blur(var(--ring-blur));
  opacity: var(--ring-opacity);
  pointer-events: none;
}

.header-area .container{
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.header-area .row{
  margin-left: 0;
  margin-right: 0;
}

.header-area.background-header .container{
  max-width: min(1200px, 96%);
  padding-left: 12px;
  padding-right: 12px;
}

.header-area.background-header .row{
  margin-left: 0;
  margin-right: 0;
}

/* ===== Nav ===== */
.main-nav{ display:flex; align-items:center; justify-content:space-between; position:relative; }
.main-nav .logo img{ display:block; height:48px; width:auto; }
.main-nav .nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: clamp(5px, 1vw, 5px);
  flex:1;
}
.main-nav .nav li{ position:relative; }
.main-nav .nav li a{
  display:block; padding:8px 0;
  font-size:14px; font-weight:400; letter-spacing:.2px;
  color: var(--color-bg);
  text-shadow: 0 1px 1px rgba(0,0,0,.25);
  transition: color .2s ease;
}
.main-nav .nav li.nav__login{
  margin-left: clamp(32px, 6vw, 120px);
}
.main-nav .logo--mobile{ display:none; }
.main-nav__title{
  display:none;
  margin-left: 12px;
  font-size:16px;
  font-weight:600;
  color: var(--color-bg);
  text-decoration:none;
}
.main-nav__title.active{
  color: var(--color-secondary);
}
.main-nav .nav li a:hover,
.main-nav .nav li a.active{ color: var(--color-secondary); }

/* CTA opcional (usa <li class="cta">) */
.main-nav .nav li.cta a{
  background: var(--color-secondary);
  color: var(--color-button-text);
  border-radius: 8px;
  padding:10px 16px;
  box-shadow: 0 4px 10px rgba(0,0,0,.15);
}
.main-nav .nav li.cta a:hover{ background: var(--color-secondary-hover); }

/* ===== Dropdowns (desktop) ===== */
.main-nav .nav li.has-sub > .nav__dropdown-toggle{
  padding-right:16px;
  background:none;
  border:none;
  cursor:pointer;
  font-size:14px;
  font-weight:400;
  letter-spacing:.2px;
  color: var(--color-bg);
  text-shadow: 0 1px 1px rgba(0,0,0,.25);
  display:inline-flex;
  align-items:center;
  transition: color .2s ease;
}
.main-nav .nav li.has-sub > .nav__dropdown-toggle:focus{
  outline:2px solid rgba(255,255,255,.65);
  outline-offset:4px;
}
.main-nav .nav li.has-sub > .nav__dropdown-toggle::after{
  content:""; display:inline-block; width:0; height:0; margin-left:6px;
  border-left:4px solid transparent; border-right:4px solid transparent; border-top:5px solid currentColor;
  transform: translateY(-1px);
  transition: transform .2s ease;
}
.main-nav .nav li.has-sub > .sub-menu{
  position:absolute; left:0; top:100%;
  min-width:220px; padding:6px 0; border-radius:14px;
  background: linear-gradient(135deg, rgba(255,255,255,.20), rgba(255,255,255,.08)), rgba(15,46,140,.42);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  border:1px solid var(--glass-edge);
  box-shadow: 0 12px 28px rgba(0,0,0,.25);
  opacity:0; transform: translateY(6px); visibility:hidden;
  transition: opacity .26s ease, transform .26s ease, visibility 0s linear .26s;
  z-index: 20;
  pointer-events: none;
}
.main-nav .nav li.has-sub.is-open > .sub-menu{
  opacity:1; transform: translateY(0); visibility:visible; transition-delay: 0s;
  pointer-events: auto;
}
.main-nav .nav li.has-sub.is-open > .nav__dropdown-toggle::after{
  transform: translateY(-1px) rotate(180deg);
}
@media (min-width: 992px){
  .main-nav .nav li.has-sub:hover > .sub-menu{
    opacity:1;
    transform: translateY(0);
    visibility:visible;
    pointer-events:auto;
  }
.main-nav .nav li.has-sub:hover > .nav__dropdown-toggle::after{
    transform: translateY(-1px) rotate(180deg);
  }
}
.main-nav .nav li.has-sub > .sub-menu li a{
  display:block; height:40px; line-height:40px; padding:0 16px;
  font-size:12px; color: var(--color-bg);
  border-bottom:1px solid rgba(255,255,255,.12);
  background: transparent;
}
.main-nav .nav li.has-sub > .sub-menu li:last-child a{ border-bottom:0; }
.main-nav .nav li.has-sub > .sub-menu li a:hover{
  background: rgba(15,46,140,.45);
  color: var(--color-secondary);
  padding-left: 22px;
  letter-spacing: 0.08em;
}

/* ===== Mobile ===== */
.menu-trigger{ display:none; cursor:pointer; width:40px; height:40px; align-items:center; justify-content:center; }
.menu-trigger .hamburger{ position:relative; width:26px; height:18px; display:inline-block; }
.menu-trigger .hamburger .line{ position:absolute; left:0; right:0; height:2px; background: var(--color-bg); border-radius:2px; transition: transform .25s ease, opacity .25s ease; }
.menu-trigger .hamburger .line:nth-child(1){ top:0; }
.menu-trigger .hamburger .line:nth-child(2){ top:8px; }
.menu-trigger .hamburger .line:nth-child(3){ top:16px; }
.menu-trigger.active .hamburger .line:nth-child(1){ transform: translateY(8px) rotate(45deg); }
.menu-trigger.active .hamburger .line:nth-child(2){ opacity:0; }
.menu-trigger.active .hamburger .line:nth-child(3){ transform: translateY(-8px) rotate(-45deg); }

@media (max-width: 991.98px){
  body{
    padding-top: var(--mobile-header-offset);
    transition: padding-top 0.2s ease;
  }

  .header-meta__bar{
    padding: 14px 0 12px;
  }

  .header-meta__inner{
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 18px;
  }

  .header-brand__logo img{
    height: clamp(48px, 16vw, 68px);
  }

  .header-brand__name{
    font-size: clamp(17px, 4vw, 22px);
  }

  .header-info{
    justify-content: center;
    text-align: center;
  }

  .header-info__contact,
  .header-info__social{
    justify-content: center;
  }

  .header-area{
    position: relative;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    padding: 12px 0;
    background: linear-gradient(135deg, #071c63 0%, #0c287f 100%);
    box-shadow: 0 12px 24px rgba(7, 28, 99, 0.32);
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  }

  .header-area.is-fixed{
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
  }

  .header-area.background-header{
    background: linear-gradient(135deg, #071c63 0%, #0c287f 100%);
    padding: 12px 0;
    box-shadow: 0 12px 24px rgba(7, 28, 99, 0.32);
    border-radius: 0;
  }

  .header-area.background-header .header-style{
    background: none;
    box-shadow: none;
    border-radius: 0;
    margin: 0;
  }

  .header-area .container{
    padding-left: 16px;
    padding-right: 16px;
  }

  .header-style{
    margin: 0;
    max-width: 100%;
    border-radius: 0;
    background: none;
    box-shadow: none;
  }

  .header-style::before,
  .header-style::after{
    display: none;
  }

  .menu-trigger{
    display: flex;
  }

  .main-nav{
    min-height: 56px;
    gap: 12px;
  }

  .main-nav .logo--mobile{
    display: block;
  }

  .main-nav .logo--mobile img{
    height: 46px;
    width: auto;
  }

  .main-nav__title{
    display: inline-block;
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    margin-left: 6px;
    letter-spacing: 0.04em;
  }

  .main-nav .nav{
    position: absolute;
    top: calc(100% + 6px);
    left: 16px;
    right: 16px;
    display: none;
    flex-direction: column;
    gap: 0;
    background: linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.08)), rgba(7,28,99,.88);
    -webkit-backdrop-filter: blur(12px) saturate(180%);
    backdrop-filter: blur(12px) saturate(180%);
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 18px 36px rgba(7, 28, 99, 0.32);
    z-index: 30;
    overflow: hidden;
  }

  .main-nav .nav li{
    width: 100%;
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }

  .main-nav .nav li.nav__login{
    border-bottom: none;
  }

  .main-nav .nav li:last-child{
    border-bottom: none;
  }

  .main-nav .nav li a{
    padding: 0 18px;
    height: 46px;
    line-height: 46px;
    color: var(--color-bg);
    background: transparent;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  .main-nav .nav li.nav__login{
    margin-left: 0;
    padding: 10px 18px 16px;
    border-bottom-left-radius: 16px;
    border-bottom-right-radius: 16px;
  }

  .main-nav .nav li.nav__login::before{
    content: "";
    display: block;
    height: 1px;
    margin-bottom: 12px;
    background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.24), rgba(255,255,255,0));
  }

  .main-nav .nav .login-modal-trigger{
    width: 100%;
    padding: 12px 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.22);
    color: #ffffff;
    font-size: 13px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 10px 18px rgba(7,28,99,0.26);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
  }

  .main-nav .nav .login-modal-trigger:hover,
  .main-nav .nav .login-modal-trigger:focus{
    background: rgba(255, 255, 255, 0.26);
    border-color: rgba(255, 255, 255, 0.32);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.28), 0 14px 22px rgba(7,28,99,0.32);
    transform: translateY(-1px);
  }

  .main-nav .nav li.has-sub > .nav__dropdown-toggle{
    width: 100%;
    padding: 0 18px;
    height: 46px;
    line-height: 46px;
    justify-content: space-between;
  }
  .main-nav .nav li.has-sub > .sub-menu{
    position: relative;
    top: 0;
    left: 0;
    right: 0;
    min-width: 100%;
    border-radius: 0;
    background: rgba(0, 0, 0, 0.12);
    border: 0;
    box-shadow: none;
    opacity: 0;
    transform: none;
    visibility: hidden;
    padding: 0;
    display: none;
  }
  .main-nav .nav li.has-sub.is-open > .sub-menu{
    opacity: 1;
    visibility: visible;
    display: block;
    pointer-events: auto;
  }

  .background-header .main-nav{
    min-height: 56px;
  }
}

.history-section__intro{
  text-align:center;
  max-width:960px;
  margin:0 auto 2rem;
  font-size:15px;
  line-height:1.6;
}
.history-section__intro h3{
  font-size:2.25rem;
  margin-bottom:0.8rem;
}
.history-section__quote{
  background:rgba(15,46,140,.15);
  border-left:4px solid var(--color-secondary);
  padding:1rem 1.1rem;
  font-style:italic;
  border-radius:12px;
}
.history-section__grid{
  display:grid;
  grid-template-columns: repeat(auto-fit,minmax(280px,1fr));
  gap:1.75rem;
}
.history-card{
  background: #ffffff;
  border-radius:12px;
  border:1px solid var(--color-border);
  overflow: visible;
  display:flex;
  flex-direction:column;
  padding: 18px 20px;
  gap: 10px;
}
.history-card__media img{
  width:100%;
  height:220px;
  object-fit:cover;
  display:block;
}
.history-card__body{
  padding:1.4rem 1.5rem;
  display:flex;
  flex-direction:column;
  gap:0.9rem;
}
.history-card__body h4{
  font-size:1.4rem;
  margin:0;
}
.history-section__blockquote{
  margin:1rem 0 0;
  font-size:0.95rem;
  color:var(--color-bg);
}
.history-section__blockquote cite{
  display:block;
  margin-top:0.4rem;
  font-size:0.85rem;
  color:rgba(255,255,255,.75);
}

.history-section{
  padding-top: 60px;
  padding-bottom: 80px;
}
.history-shell{
  background: linear-gradient(135deg, rgba(15,46,140,.85), rgba(3,16,78,.85));
  border:1px solid rgba(255,255,255,.16);
  border-radius:32px;
  padding: 2.5rem;
  box-shadow: 0 20px 40px rgba(1,13,43,.45);
}
.history-shell__header{
  text-align:center;
  margin-bottom:2rem;
}
.history-shell__header h3{
  font-size:2.2rem;
  margin-top:0.5rem;
}
.history-shell__header p{
  font-size:1rem;
  line-height:1.7;
}
.history-shell__body{
  display:grid;
  grid-template-columns: 1fr 0.95fr;
  gap:2rem;
}
.history-shell__text{
  background:rgba(0,0,0,.18);
  border-radius:24px;
  padding:1.8rem;
  border:1px solid rgba(255,255,255,.1);
  font-size:0.95rem;
  line-height:1.7;
}
.history-shell__text p{
  margin-bottom:1rem;
}
.history-shell__timeline{
  background:rgba(255,255,255,.05);
  border-radius:24px;
  padding:1.3rem;
  border:1px solid rgba(255,255,255,.12);
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.history-event{
  display:flex;
  align-items:flex-start;
  gap:0.9rem;
}
.history-event__marker{
  width:12px;
  height:12px;
  border-radius:50%;
  background:var(--color-secondary);
  margin-top:0.4rem;
  box-shadow: 0 0 12px var(--color-secondary);
}
.history-event h4{
  margin:0 0.2rem 0.2rem;
  font-size:1rem;
  font-weight:600;
}
.history-event p{
  margin:0;
  font-size:0.9rem;
  line-height:1.5;
}
.history-shell__closing{
  margin-top:2rem;
  border-top:1px solid rgba(255,255,255,.18);
  padding-top:1.5rem;
  font-size:0.95rem;
  line-height:1.6;
  color:rgba(255,255,255,.85);
}

/* Stage timeline styling */
.stage-timeline{
  background: transparent;
  padding:2.75rem;
}
.stage-timeline__intro{
  text-align:center;
  margin-bottom:1.8rem;
}
.stage-timeline__intro h3{
  font-size:2.35rem;
  color:#0b1b3c;
}
.stage-timeline__intro p{
  margin:0 auto;
  max-width:860px;
  line-height:1.7;
  color:#1a2944;
}
.stage-timeline__grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:1.6rem;
}
@media (max-width: 1000px){
  .stage-timeline__grid{
    grid-template-columns: 1fr;
  }
}

.stage-card__number{
  width:44px;
  height:44px;
  border-radius:50%;
  background: var(--color-secondary);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  letter-spacing:0;
  color: #1b1b1f;
  box-shadow: 0 0 0 8px rgba(226,203,61,0.25);
  border:2px solid rgba(230,203,61,.4);
  font-size:1rem;
}
.stage-card__body h4{
  font-size:1.25rem;
  color:#1b1b1f;
}
.stage-card__body p{
  margin:0;
  line-height:1.6;
}
.stage-card__quote{
  font-style:italic;
  border-left:3px solid var(--color-secondary);
  padding-left:1rem;
  color:#1d2740;
  background: rgba(15,46,140,.05);
}
.stage-card__media{
  border-radius:18px;
  overflow:hidden;
  box-shadow: 0 20px 32px rgba(0,0,0,.35);
}
.stage-card__media img{
  width:100%;
  height:210px;
  object-fit:cover;
  display:block;
}
.stage-card--quote{
  background:rgba(15,46,140,.08);
}
.stage-card--image{
  background:rgba(255,255,255,.1);
}
.stage-card--cta{
  background:rgba(247,248,251,.7);
  border-color:rgba(28,33,50,.1);
}
@media (max-width: 768px){
  .stage-timeline__grid{
    grid-template-columns: 1fr;
  }
  .stage-card__media img{
    height:190px;
  }
}
@media (max-width: 991.98px){
  .history-shell{
    padding: 1.8rem;
  }
  .history-shell__body{
    grid-template-columns: 1fr;
  }
  .history-shell__timeline{
    order: -1;
  }
}
.history-card--highlight{
  background:linear-gradient(180deg,rgba(241,80,86,.25),rgba(15,46,140,.35));
}
.history-card--highlight .history-card__blockquote{
  margin:0;
  border-left:3px solid rgba(255,255,255,.6);
  padding-left:1.1rem;
  font-style:italic;
}
.history-card--highlight .history-card__media img{
  height:200px;
}

/* 
---------------------------------------------
banner
--------------------------------------------- 
*/

.swiper-container {
  position: relative;	
  height: clamp(520px, 72vh, 760px);
  margin: 0px;
  background-color: var(--color-footer-bg);
}

.swiper-slide {
  overflow: hidden;
}

.slide-inner {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background-size: cover;
  background-position: center;
}

.swiper-slide-active h2 {
  animation: fadeInLeft .8s;
  -webkit-animation-delay: 1s;
  animation-delay: .3s;
  opacity: 1;
}

.swiper-slide-active p {
  animation: fadeInRight .8s;
  -webkit-animation-delay: 1s;
  animation-delay: .3s;
  opacity: 1;
}

.swiper-slide-active .div-dec {
  animation: fadeIn .8s;
  -webkit-animation-delay: 1s;
  animation-delay: .3s;
  opacity: 1;
}

.swiper-slide-active .buttons .green-button,
.swiper-slide-active .buttons .orange-button {
  animation: fadeInUp .8s;
  -webkit-animation-delay: 1s;
  animation-delay: .3s;
  opacity: 1;
}

.slide-inner .header-text {
  position: absolute;
  width: 60%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: transparent;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}

.slide-inner .header-text .buttons{
  margin-top: 14px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.slide-inner .header-text__belt{
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  background: rgba(0, 0, 0, 0.52);
  padding: clamp(18px, 3vw, 28px);
  border-radius: 16px;
  box-shadow: 0 18px 38px rgba(0,0,0,0.24);
  text-align: center;
}

.slide-inner .header-text__belt .buttons{
  margin-top: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
}

.slide-inner .row{
  justify-content: center;
}

.slide-inner .header-text{
  display: flex;
  justify-content: center;
}

@media (max-width: 767px) {
  .slide-inner .header-text{
    width: 80%;
  }
}

.slide-inner .header-text h2 {
  position: relative;
  z-index: 2;
  font-size: 56px;
  color: var(--color-bg);
  font-weight: 700;
  opacity: 1;
  visibility: visible;
  line-height: 70px;
  margin-bottom: 40px;
}

.slide-inner .header-text .div-dec {
  width: 80px;
  height: 6px;
  border-radius: 3px;
  background-color: var(--color-bg);
  margin-bottom: 40px;
  opacity: 1;
  visibility: visible;
}

.slide-inner .header-text p {
  color: var(--color-bg);
  margin-right: 60px;
  margin-bottom: 50px;
  opacity: 1;
  visibility: visible;
}

.slide-inner .header-text h2 em {
  font-style: normal;
  color: var(--color-secondary);
}

.slide-inner .header-text .buttons {
  display: inline;
  opacity: 1;
  visibility: visible;
}

.slide-inner .header-text .buttons .green-button {
  display: inline;
  float: left;
  margin-right: 20px;
}

.swiper-button-next, .swiper-button-prev {
  color: var(--color-bg) !important;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 44px;
  height: 44px;
  margin-top: 0;
  opacity: 0.9;
  color: #fff;
}

/*
---------------------------------------------
services
---------------------------------------------
*/ 

section.events {
  margin-top: 120px;
  position: relative;
}

/* Eventos: barra de filtros */
.events-filters{
  background: rgba(15,46,140,0.06);
  border: 1px solid rgba(15,46,140,0.12);
  border-radius: 16px;
  padding: 16px 18px;
  box-shadow: 0 10px 22px rgba(9,19,59,0.08);
}

/* Espacio de etiquetas reducido; usaremos placeholders para alinear */
.events-filters .form-label{ margin-bottom: 0; }

.events-filters .input-group .input-group-text{
  background: #fff;
  border: 1px solid var(--color-border);
  border-right: 0;
  color: var(--color-text-secondary);
  border-top-left-radius: 12px;
  border-bottom-left-radius: 12px;
}

.events-filters .form-control{
  height: 44px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.events-filters .input-group .form-control{
  border-left: 0;
  border-top-right-radius: 12px;
  border-bottom-right-radius: 12px;
}

.events-filters .form-control:focus{
  border-color: rgba(15,46,140,0.45);
  box-shadow: 0 0 0 3px rgba(15,46,140,0.12);
}

/* icono dentro del input de fecha */
.events-filters .input-icon{ position: relative; }
.events-filters .input-icon > i{
  position: absolute;
  left: 12px; top: 50%; transform: translateY(-50%);
  color: rgba(15,46,140,0.55);
  pointer-events: none;
}
.events-filters .input-icon > .form-control{
  padding-left: 36px;
}

/* Asegura que el altInput de flatpickr luzca como control normal */
.events-filters .input-icon > .flatpickr-input.form-control[readonly]{
  background-color: #fff;
  cursor: pointer;
}


.events-filters .filters-clear-btn{
  height: 44px;
  padding: 0 14px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: #fff;
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}

.events-filters .filters-clear-btn i{ margin-right: 2px; color: rgba(15,46,140,0.65); }

.events-filters .filters-clear-btn:hover{
  background: rgba(15,46,140,0.06);
  border-color: rgba(15,46,140,0.28);
}

.events-filters .filters-clear-btn:focus{ outline: none; }

.events-filters .filters-clear-btn:focus-visible{
  border-color: rgba(15,46,140,0.45);
  box-shadow: 0 0 0 3px rgba(15,46,140,0.12);
}

/* Flatpickr theming to match site */
.flatpickr-calendar{
  border-radius: 14px;
  border: 1px solid rgba(15,46,140,0.18);
  box-shadow: 0 14px 36px rgba(9,19,59,0.22);
  overflow: hidden;
}
.flatpickr-months .flatpickr-month{ height: 46px; }
.flatpickr-months .flatpickr-month,
.flatpickr-weekdays{ background: rgba(15,46,140,0.06); }
.flatpickr-weekday{ color: var(--color-primary); font-weight: 700; }
.flatpickr-day{ border-radius: 10px; }
.flatpickr-day.today{ border-color: rgba(15,46,140,0.5); }
.flatpickr-day:hover{ background: rgba(241,233,29,0.22); border-color: rgba(241,233,29,0.45); }
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange{
  background: linear-gradient(135deg, var(--color-secondary), #fff38c);
  border-color: rgba(241,233,29,0.6);
  color: var(--color-dark);
  box-shadow: 0 10px 24px rgba(241,233,29,0.24);
}
.flatpickr-current-month .cur-month,
.flatpickr-current-month .numInput{ color: var(--color-primary); font-weight: 700; }
.flatpickr-calendar.arrowTop:before,
.flatpickr-calendar.arrowTop:after{ display: none; }
.flatpickr-time .flatpickr-time-separator,
.flatpickr-time input{ color: var(--color-dark); }

section.events .event-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 26px;
  border: 1px solid rgba(20,20,20,0.08);
  background: #ffffff;
  overflow: hidden;
  padding: 0;
  transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease;
}

section.events .event-card::before {
  inset: -38% 24% 58% -24%;
  background: radial-gradient(circle at top left, rgba(241,233,29,0.24), rgba(241,233,29,0));
  opacity: 0.75;
}

section.events .event-card__image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
}

section.events .event-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}

section.events .event-card__image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,46,140,0.15) 0%, rgba(15,46,140,0) 65%);
  pointer-events: none;
}

section.events .event-card:hover {
  transform: translateY(-6px);
}

section.events .event-card:hover .event-card__image img {
  transform: scale(1.05);
}

section.events .event-card__body {
  padding: 28px 26px 24px;
  display: grid;
  gap: 18px;
  flex: 1 1 auto;
}

section.events .event-card__meta {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 10px 14px;
  flex-wrap: wrap;
}

section.events .event-card__date {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: 0.12em;
  font-weight: 700;
  color: var(--color-dark);
  background: rgba(241,233,29,0.82);
  box-shadow: 0 10px 22px rgba(241,233,29,0.32);
  text-transform: uppercase;
  white-space: nowrap;
}

section.events .event-card__location {
  font-size: 12px;
  font-weight: 600;
  color: rgba(15,46,140,0.8);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  flex: 1 1 auto;
  min-width: 0;
  line-height: 1.3;
}

section.events .event-card__location i {
  font-size: 14px;
  color: var(--color-secondary);
}

section.events .event-card__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-dark);
  margin: 0;
}

section.events .event-card__excerpt {
  margin: 0;
  color: var(--color-text-secondary);
  line-height: 1.6;
  font-size: 15px;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

section.events .event-card__footer {
  padding: 0 26px 26px;
}

section.events .event-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: color .3s ease, border-bottom-color .3s ease, gap .3s ease;
}

section.events .event-card__link::after {
  content: "\f178";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-size: 12px;
  transition: transform .3s ease;
}

section.events .event-card__link:hover,
section.events .event-card__link:focus {
  color: var(--color-secondary);
  border-bottom-color: currentColor;
  gap: 12px;
}

.events-pagination {
  margin-top: 36px;
}

.events-pagination__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.events-pagination__button {
  min-width: 44px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(15,46,140,0.18);
  background: rgba(15,46,140,0.08);
  color: var(--color-primary);
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.events-pagination__button:hover:not(:disabled) {
  transform: translateY(-2px);
  background: rgba(241,233,29,0.18);
  color: var(--color-dark);
  border-color: rgba(241,233,29,0.38);
  box-shadow: 0 12px 24px rgba(15,46,140,0.22);
}

.events-pagination__button.is-active {
  background: linear-gradient(135deg, var(--color-secondary), #fff38c);
  border-color: rgba(241,233,29,0.55);
  color: var(--color-dark);
  cursor: default;
  box-shadow: 0 16px 32px rgba(241,233,29,0.28);
}

.events-pagination__button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.events-pagination__button.is-nav {
  padding-inline: 18px;
}

section.events .event-card__link:hover::after,
section.events .event-card__link:focus::after {
  transform: translateX(3px);
}

section.events.events-archive {
  margin-top: 120px;
}

section.events.events-archive .section-heading h4 {
  max-width: 540px;
  margin: 0 auto;
}

section.events.events-archive .event-card {
  min-height: 100%;
}

section.news-grid {
  margin-top: 120px;
}

section.news-grid .news-card {
  background-color: var(--color-surface);
  border-radius: 18px;
  overflow: hidden;
  transition: var(--transition-default);
  display: flex;
  flex-direction: column;
}

section.news-grid .news-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-strong);
}

section.news-grid .news-card__image {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

section.news-grid .news-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}

section.news-grid .news-card:hover .news-card__image img {
  transform: scale(1.04);
}

section.news-grid .news-card .card-body {
  padding: 24px;
  flex-grow: 1;
}

section.news-grid .news-card__meta {
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-secondary);
  font-weight: 600;
  display: block;
  margin-bottom: 12px;
}

section.news-grid .news-card .card-title {
  font-size: 20px;
  font-weight: 600;
  color: var(--color-dark);
  margin-bottom: 12px;
}

section.news-grid .news-card .card-text {
  color: var(--color-text-secondary);
  margin-bottom: 0;
}

section.news-grid .news-card__footer {
  padding: 0 24px 24px;
}

section.news-grid .news-card__link {
  display: inline-block;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: var(--transition-default);
}

section.news-grid .news-card__link:hover,
section.news-grid .news-card__link:focus {
  color: var(--color-secondary);
  border-bottom-color: currentColor;
}

section.admission-overview {
  padding: 60px 0 40px;
  position: relative;
}

.glass-card {
  position: relative;
  border-radius: 24px;
  background: rgba(255,255,255,0.16);
  border: 1px solid rgba(255,255,255,0.32);
  box-shadow: 0 25px 45px rgba(15,46,140,0.14);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  overflow: hidden;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.glass-card::before {
  content: "";
  position: absolute;
  inset: -30% 30% 45% -30%;
  /* Eliminamos tinte amarillo y usamos brillo neutro */
  background: radial-gradient(circle at top left, rgba(255,255,255,0.45), rgba(255,255,255,0));
  opacity: 0.7;
  pointer-events: none;
  transition: opacity .35s ease;
}

.glass-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 32px 62px rgba(15,46,140,0.18);
  border-color: rgba(255,255,255,0.45);
}

.glass-card:hover::before {
  opacity: 1;
}

.surface-card {
  position: relative;
  border-radius: 24px;
  background: #ffffff;
  border: 1px solid var(--color-border);
  box-shadow: 0 20px 40px rgba(15,46,140,0.12);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.surface-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 30px 64px rgba(15,46,140,0.16);
  border-color: rgba(15,46,140,0.2);
}

.admission-step__body {
  padding: 34px 32px;
  display: grid;
  gap: 18px;
  position: relative;
  z-index: 2;
}

.admission-step__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(15,46,140,0.18);
  color: var(--color-primary);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 700;
}

.admission-step h5 {
  font-size: 22px;
  font-weight: 700;
  color: var(--color-dark);
  margin: 0;
}

.admission-step p {
  margin: 0;
  color: var(--color-text-secondary);
  line-height: 1.6;
}

.admission-step__link {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 22px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid rgba(15,46,140,0.35);
  color: var(--color-primary);
  background: rgba(255,255,255,0.9);
  text-decoration: none;
  box-shadow: 0 10px 22px rgba(15,46,140,0.12);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  background: var(--color-primary);
  color: #fff;			  
}

.admission-step__link:hover,
.admission-step__link:focus {
  background: var(--color-link);
  color: var(--color-primary-hover);
  border-color: var(--color-primary);
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(15,46,140,0.2);
}

.admission-step .detail-card__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 12px;
}

.admission-step .detail-card__list li {
  position: relative;
  padding-left: 22px;
  color: var(--color-dark);
  font-size: 15px;
  line-height: 1.6;
}

.admission-step .detail-card__list li::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-secondary);
  position: absolute;
  left: 0;
  top: 9px;
}

section.admission-details {
  padding: 28px 0 24px;
}

section.admission-details .detail-card {
  position: relative;
  border-radius: 24px;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.28);
  box-shadow: 0 24px 54px rgba(9,19,59,0.16);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  padding: 36px 34px;
  height: 100%;
  overflow: hidden;
  transition: transform .35s ease, box-shadow .35s ease;
}

.detail-card--alert{
  background: rgba(230, 203, 61, 0.18);
  border-color: rgba(230, 203, 61, 0.48);
  box-shadow: 0 26px 46px rgba(230, 203, 61, 0.32);
}

.detail-card--alert h4{
  color: #0F2E8C;
}

.detail-card--alert .detail-card__list li::before{
  color: #0F2E8C;
}

section.admission-details .detail-card::before {
  content: "";
  position: absolute;
  inset: 10% -40% 50% 20%;
  pointer-events: none;
}

section.admission-details .detail-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 32px 62px rgba(9,19,59,0.2);
}

section.admission-details .detail-card h4 {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 22px;
  color: var(--color-primary);
  position: relative;
  z-index: 2;
}

section.admission-details .detail-card p{
  margin: 0 0 10px;
  color: var(--color-text-secondary);
  line-height: 1.6;
  text-align: justify;
}

section.admission-details .detail-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
  z-index: 2;
  display: grid;
  gap: 14px;
}

section.admission-details .detail-card ul li {
  padding-left: 26px;
  position: relative;
  color: var(--color-dark);
  font-size: 15px;
  line-height: 1.6;
}

section.admission-details .detail-card ul li::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-secondary);
  position: absolute;
  left: 0;
  top: 9px;
  box-shadow: 0 0 0 4px rgba(241,233,29,0.22);
}

.detail-card__list--uploads {
  padding-top: 4px;
}

.detail-card__list--uploads li {
  color: var(--color-text-secondary);
  font-size: 15px;
  line-height: 1.6;
}

section.admission-cta {
  padding: 70px 0;
  margin: 70px auto 40px;
  width: calc(100% - 60px);
  border-radius: 28px;
  background: rgba(15,46,140,0.72);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(255,255,255,0.25);
  box-shadow: 0 28px 58px rgba(9,19,59,0.28);
  color: var(--color-bg);
  overflow: hidden;
  position: relative;
}

section.admission-cta::before {
  content: "";
  position: absolute;
  inset: -30% 20% 30% -20%;
  opacity: 0.8;
  pointer-events: none;
}

section.admission-cta h3 {
  font-size: 30px;
  font-weight: 700;
  margin-bottom: 18px;
}

section.admission-cta p {
  margin-bottom: 0;
  color: rgba(255,255,255,0.85);
  font-size: 15px;
}

section.admission-cta .btn {
  background: linear-gradient(135deg, var(--color-secondary), #fff38c);
  color: var(--color-dark);
  font-weight: 600;
  border-radius: 999px;
  padding: 12px 30px;
  box-shadow: 0 16px 36px rgba(241,233,29,0.26);
  transition: transform .3s ease, box-shadow .3s ease, background .3s ease;
}

section.admission-cta .btn:hover,
section.admission-cta .btn:focus {
  transform: translateY(-3px);
  box-shadow: 0 22px 42px rgba(241,233,29,0.32);
  background: linear-gradient(135deg, #fff59f, var(--color-secondary));
}

@media (max-width: 991px) {
  section.events {
    margin-top: 100px;
  }
  section.news-grid {
    margin-top: 100px;
  }
  .admission-step__body {
    padding: 28px;
  }
  section.admission-details .detail-card {
    padding: 30px;
  }
  section.admission-cta {
    width: 100%;
    margin: 60px auto 30px;
    padding: 60px 0;
  }
}

@media (max-width: 767px) {
  .curriculum-card__list--compact { columns: 1; }
  section.events {
    margin-top: 80px;
  }
  section.events .event-card__body,
  section.events .event-card__footer {
    padding: 20px;
  }
  section.events .event-card__meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 16px;
  }
  section.events .event-card__location {
    text-align: left;
    font-size: 12px;
    letter-spacing: 0.06em;
  }

  section.events.events-archive {
    margin-top: 100px;
  }
  section.news-grid {
    margin-top: 80px;
  }
  section.news-grid .news-card .card-body,
  section.news-grid .news-card__footer {
    padding: 20px;
  }
  section.news-grid .news-card__meta {
    letter-spacing: 0.08em;
  }
  section.admission-overview {
    padding: 50px 0 30px;
  }
  .admission-step__body {
    padding: 26px 24px;
  }
  section.admission-details .detail-card {
    padding: 26px 22px;
  }
  section.admission-details .detail-card h4 {
    font-size: 22px;
  }
  section.admission-cta {
    text-align: center;
    padding: 60px 24px;
  }
  section.admission-cta .btn {
    margin-top: 20px;
  }
}

@keyframes tabFadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

section.services {
  margin-top: 90px;
}

.services .service-item {
  border-radius: 5px;
  padding: 40px;
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.1);
  margin-top: 30px;
}

.services .service-item:hover i {
  margin-top: 15px;
}

.services .service-item h4 {
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 20px;
}

.services .service-item i {
  transition: all .5s;
  float: left;
  font-size: 64px;
  color: var(--color-primary);
  margin-bottom: 30px;
  margin-right: 30px;
}

/*
---------------------------------------------
cta
---------------------------------------------
*/

.simple-cta {
  background-image: url(../images/cta-bg.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  width: 100%;
  padding: 60px 0px;
}

.simple-cta .left-image {
  margin-right: 45px;
}

.simple-cta h4 {
  font-size: 36px;
  font-weight: 700;
  color: var(--color-bg);
  line-height: 50px;
}
.simple-cta p {
  color: rgba(255,255,255,0.88);
  margin-top: 12px;
  margin-bottom: 0;
  font-size: 15px;
  max-width: 460px;
}

.simple-cta h4 em {
  font-style: normal;
  color: var(--color-secondary);
}

.simple-cta h4 strong {
  color: var(--color-primary);
  font-weight: 700;
}

.simple-cta .buttons {
  display: flex;
  justify-content: end;
  gap: 16px;
}

.simple-cta .buttons .orange-button,
.simple-cta .buttons .green-button {
  margin-top: 25px;
}

/*
---------------------------------------------
about us
---------------------------------------------
*/

section.news-detail {
  padding: 110px 0;
  background: radial-gradient(circle at 20% 20%, rgba(241,233,29,0.08), transparent 32%), radial-gradient(circle at 80% 10%, rgba(15,46,140,0.06), transparent 34%), #f8f9fd;
}

section.news-detail .news-detail__content {
  position: relative;
  border-radius: 32px;
  padding: 38px 40px;
  box-shadow: 0 28px 56px rgba(9,19,59,0.18);
  overflow: hidden;
  max-width: 980px;
  margin: 0 auto;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

section.news-detail .news-detail__content::before {
  content: "";
  position: absolute;
  inset: -35% 25% 55% -25%;
  pointer-events: none;
  opacity: 0.85;
}

section.news-detail .news-detail__hero {
  margin: 0 auto 26px;
  position: relative;
  max-width: 760px;
  width: 100%;
  background: transparent;
  border: none;
  box-shadow: none;
  overflow: visible;
}

section.news-detail .news-detail__hero img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

section.news-detail .news-detail__hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(200deg, rgba(9,19,59,0.12) 0%, rgba(9,19,59,0) 70%);
  pointer-events: none;
}

section.news-detail .news-detail__hero figcaption {
  position: absolute;
  left: 24px;
  bottom: 20px;
  background: rgba(15,46,140,0.7);
  color: rgba(255,255,255,0.85);
  padding: 10px 16px;
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
}

section.news-detail .news-detail__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 auto 22px;
  position: relative;
  z-index: 2;
  max-width: 720px;
}

section.news-detail .news-detail__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,0.18);
  color: var(--color-primary);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  box-shadow: 0 12px 24px rgba(15,46,140,0.18);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

section.news-detail h3 {
  font-size: 30px;
  line-height: 1.25;
  margin-bottom: 22px;
  font-weight: 700;
  color: var(--color-dark);
  position: relative;
  z-index: 2;
}

section.news-detail p {
  color: var(--color-text-secondary);
  margin-bottom: 22px;
  font-size: 16px;
  line-height: 1.7;
  position: relative;
  z-index: 2;
}

section.news-detail blockquote {
  position: relative;
  margin: 38px 0;
  padding: 40px 32px 32px;
  border-radius: 22px;
  background: rgba(255,255,255,0.16);
  border: 1px solid rgba(255,255,255,0.28);
  box-shadow: 0 24px 48px rgba(9,19,59,0.18);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  z-index: 2;
}

section.news-detail blockquote::before {
  content: "\f10d";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-size: 32px;
  color: rgba(241,233,29,0.6);
  position: absolute;
  top: -18px;
  left: 28px;
}

section.news-detail blockquote p {
  margin-bottom: 12px;
  font-size: 20px;
  font-style: italic;
  color: var(--color-dark);
}

section.news-detail blockquote cite {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 600;
  color: var(--color-primary);
}

section.news-detail .news-detail__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 36px;
  position: relative;
  z-index: 2;
}

section.news-detail .news-detail__cta .btn {
  border-radius: 999px;
  padding: 12px 28px;
  font-weight: 600;
  letter-spacing: 0.05em;
  transition: transform .3s ease, box-shadow .3s ease;
  box-shadow: 0 16px 32px rgba(15,46,140,0.18);
}

section.news-detail .news-detail__cta .btn:hover,
section.news-detail .news-detail__cta .btn:focus {
  transform: translateY(-2px);
  box-shadow: 0 22px 40px rgba(15,46,140,0.24);
}

section.news-detail .news-detail__label,
section.news-detail .news-detail__value,
section.news-detail .news-detail__note {
  position: relative;
  z-index: 2;
}

section.news-detail .news-detail__label {
  display: block;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
  font-weight: 600;
}

section.news-detail .news-detail__value {
  display: block;
  font-size: 15px;
  color: var(--color-text-secondary);
  margin: 20px;  
}

section.news-detail .news-detail__note {
  margin-bottom: 24px;
  font-size: 14px;
  color: var(--color-text-secondary);
}

section.news-detail .news-detail__content--empty {
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

section.news-detail .news-detail__placeholder {
  max-width: 680px;
  margin: 0 auto;
}

@media (max-width: 991px) {
  section.news-detail .news-detail__content {
    padding: 36px 32px;
  }

  section.news-detail .news-detail__cta {
    justify-content: center;
  }
}

@media (max-width: 767px) {
  .curriculum-card__list--compact { columns: 1; }
  section.news-detail {
    padding: 90px 0;
  }
  section.news-detail .news-detail__content {
    padding: 30px 24px;
  }
  section.news-detail .news-detail__hero figcaption {
    left: 16px;
    bottom: 16px;
    font-size: 11px;
  }
  section.news-detail h3 {
    font-size: 28px;
  }
  section.news-detail blockquote {
    padding: 26px;
  }
  section.news-detail blockquote::before {
    left: 20px;
  }
}

@media (max-width: 767px) {
  .curriculum-card__list--compact { columns: 1; }
  section.news-detail .news-detail__content {
    padding: 24px;
  }

  section.news-detail .news-detail__cta {
    flex-direction: column;
    align-items: stretch;
  }
}
section.about-us {
  margin-top: 90px;
  padding-top: 30px;
}

.about-us__intro {
  padding: 30px 10px 30px 0;
}

.about-us__eyebrow {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--color-secondary);
  margin-bottom: 12px;
}

.about-us__intro h3 {
  font-size: 32px;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: 16px;
}

.about-us__intro p {
  color: var(--color-text-secondary);
  margin-bottom: 18px;
}

.about-us__pillars {
  display: flex;
  flex-direction: column;
  gap: 18px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.about-us__pillars li {
  background-color: var(--color-surface);
  border-radius: 14px;
  padding: 18px 22px;
  border: 1px solid var(--color-border);
  box-shadow: none;
}

.about-us__pillar-title {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 6px;
}

.about-us__pillars p {
  color: var(--color-text-secondary);
  font-size: 15px;
  margin: 0;
}

.about-qs__grid{
  row-gap: 16px;
  align-items: stretch;
}

.about-qs__card{
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 18px 20px;
  box-shadow: 0 10px 26px rgba(230, 203, 61, 0.24);
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: 100%;
}

.about-qs .about-qs__card{
  box-shadow: 10px 10px 36px rgba(15, 46, 140, 0.16) !important;
}

.about-qs__card h4{
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: var(--color-primary);
}

.about-qs__card p{
  margin: 0;
  color: var(--color-text-secondary);
  line-height: 1.55;
}

.about-qs__card strong{
  color: var(--color-primary);
}

.about-qs__list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px 16px;
}

.about-qs__list li{
  font-size: 14px;
  color: var(--color-dark);
  line-height: 1.4;
  position: relative;
  padding-left: 14px;
}

.about-qs__list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-primary);
}

.about-qs__card p + p{
  margin-top: 6px;
}

.about-us__cta-row{
  margin-top: 16px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.about-us__link{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid rgba(230,203,61,0.45);
  color: #ffffff;
  font-weight: 700;
  letter-spacing: 0.01em;
  background: linear-gradient(135deg, rgba(15,46,140,0.92), rgba(15,46,140,0.82));
  box-shadow: 0 12px 28px rgba(15,46,140,0.22), 0 0 0 4px rgba(230,203,61,0.14);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.about-us__link:hover{
  background: linear-gradient(135deg, rgba(230,203,61,0.92), rgba(230,203,61,0.86));
  color: #0F2E8C;
  border-color: rgba(230,203,61,0.55);
  box-shadow: 0 14px 32px rgba(15,46,140,0.26), 0 0 0 6px rgba(230,203,61,0.18);
  transform: translateY(-2px);
}

.about-us__secondary-link {
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  transition: var(--transition-default);
}

.about-us__secondary-link:hover {
  color: var(--color-primary-hover);
}

.about-us__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 22px;
}

.about-card {
  background-color: var(--color-bg);
  border-radius: 16px;
  padding: 26px 28px;
  box-shadow: 0px 18px 35px rgba(15, 46, 140, 0.12);
  border: 1px solid rgba(15, 46, 140, 0.08);
  height: 100%;
  display: flex;
  flex-direction: column;
}

.about-card__eyebrow{
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-secondary);
  font-weight: 700;
  margin-bottom: 10px;
}

.about-card h5 {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 12px;
}

.about-card__lede{
  color: var(--color-dark);
  font-weight: 600;
  margin-bottom: 12px;
}

.about-card p {
  font-size: 15px;
  color: var(--color-text-secondary);
  margin-bottom: 16px;
}

.about-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.about-list li{
  display: grid;
  grid-template-columns: 20px 1fr;
  align-items: start;
  gap: 8px;
  font-size: 14px;
  color: var(--color-dark);
  line-height: 1.5;
  position: relative;
}

.about-list li::before{
  content: "";
  width: 12px;
  height: 12px;
  margin-top: 5px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-primary), #1b3ea3);
  box-shadow: 0 0 0 3px rgba(15,46,140,0.12);
}

.about-card__ordered{
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 10px;
  color: var(--color-dark);
  line-height: 1.5;
  font-size: 14px;
}

.about-card--list,
.about-card--objectives{
  height: 100%;
  justify-content: flex-start;
  gap: 6px;
}

/* Nueva disposición de beneficios y objetivos */
.about-benefits{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}

.about-feature{
  background: #ffffff;
  border: 1px solid rgba(15,46,140,0.12);
  border-radius: 16px;
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.about-feature__header h5{
  margin: 6px 0 0;
  font-size: 18px;
  color: var(--color-primary);
}

.about-feature__pill{
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(241,233,29,0.82);
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.about-feature__list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.about-feature__list li{
  font-size: 14px;
  color: var(--color-dark);
  line-height: 1.55;
}

.about-feature__list strong{
  color: var(--color-primary);
}

.about-feature__lede{
  margin: 0;
  color: var(--color-dark);
  font-weight: 600;
  line-height: 1.5;
}

.about-feature__ordered{
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 10px;
  color: var(--color-dark);
  line-height: 1.5;
  font-size: 14px;
}

.about-card__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.about-card__list li {
  font-size: 14px;
  color: var(--color-dark);
  line-height: 1.5;
}

.about-card__list strong {
  color: var(--color-primary);
  font-weight: 600;
}

.about-us__stats {
  margin-top: 32px;
  row-gap: 20px;
}

.about-stat {
  background-color: var(--color-bg);
  border-radius: 14px;
  padding: 22px 18px;
  box-shadow: 0px 12px 28px rgba(15, 46, 140, 0.12);
  border: 1px solid rgba(15, 46, 140, 0.08);
  text-align: center;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.about-stat__value {
  display: block;
  font-size: 28px;
  font-weight: 700;
  color: var(--color-secondary);
  margin-bottom: 8px;
}

.about-stat__label {
  display: block;
  font-size: 13px;
  color: var(--color-text-secondary);
  line-height: 1.4;
}

@media (max-width: 1199px) {
  .about-us__cards {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  }
}

@media (max-width: 991px) {
  .about-us__intro {
    padding-right: 0;
    margin-bottom: 40px;
  }

  .about-us__cards {
    grid-template-columns: 1fr;
  }

  .about-us__stats {
    margin-top: 26px;
  }

  .about-stat {
    padding: 20px 16px;
  }
}

@media (max-width: 575px) {
  .about-us__pillars li {
    padding: 16px 18px;
  }

  .about-stat__value {
    font-size: 24px;
  }

  .about-stat__label {
    font-size: 12px;
  }
}

/*
---------------------------------------------
calculator
---------------------------------------------
*/

section.calculator {
  margin-top: 150px;
  background-image: url(../images/calculator-bg.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  width: 100%;
  padding: 80px 0px;
}

section.calculator .left-image {
  margin: -110px 45px -80px 0px;
}

section.calculator .section-heading {
  text-align: left;
}

section.calculator .section-heading h4 {
  color: var(--color-bg);
}

#calculate label {
  color: var(--color-bg);
  font-size: 14px;
  margin-bottom: 5px;
}

#calculate input,
#calculate select {
  background-color: rgba(121,134,151, 0.7);
  border: none;
  border-radius: 5px;
  width: 100%;
  height: 42px;
  color: var(--color-bg);
  font-size: 14px;
  margin-bottom: 30px;
  outline: none;
}

#calculate select {
  cursor: pointer;
}

#calculate button.orange-button {
  font-size: 14px;
  color: var(--color-bg);
  background-color: var(--color-primary);
  padding: 12px 30px;
  display: inline-block;
  border-radius: 5px;
  font-weight: 500;
  text-transform: capitalize;
  letter-spacing: 0.5px;
  border: none;
  transition: all .3s;
}

#calculate button.orange-button:hover {
  opacity: 0.9;
}

/* 
---------------------------------------------
testimonials
--------------------------------------------- 
*/

section.testimonials {
  margin-top: 90px;
}

section.testimonials .section-heading {
  padding-top: 30px;
}

.testimonials .item {
  border-radius: 15px;
  padding: 50px 320px 50px 50px;
  background-color: var(--color-bg);
  position: relative;
  overflow: hidden;
  margin: 15px;
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.1);
  padding-top: 35px;
}

.testimonials .item i {
  width: 70px;
  height: 70px;
  background-color: var(--color-secondary);
  display: inline-block;
  text-align: center;
  line-height: 70px;
  color: var(--color-bg);
  font-size: 44px;
  border-radius: 5px;
  margin-bottom: 30px;
}

.testimonials .item p {
  font-size: 16px;
  font-style: italic;
}

.testimonials .item h4 {
  margin-top: 30px;
  font-size: 22px;
  font-weight: 600;
  position: relative;
}

.testimonials .item span {
  margin-top: 5px;
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-secondary);
}

.testimonials .item img {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  max-width: 300px;
  border-radius: 5px;
}

.testimonials .owl-dots {
  text-align: center;
  margin-top: 30px;
}

.testimonials .owl-dots .owl-dot {
  width: 10px;
  height: 10px;
  background-color: var(--color-accent);
  border-radius: 50%;
  margin: 0px 4px;
}

.testimonials .owl-dots .active {
  background-color: var(--color-primary);
}

/* 
---------------------------------------------
partners
--------------------------------------------- 
*/



section.partners .item {
  margin: 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  display: block;
}

section.partners .item:hover {
  transform: none;
  box-shadow: none;
}

/* Logos: ocupar todo el ancho disponible */
section.partners .item img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}

section.partners .item:hover img {
  transform: none;
}

/* Responsive: mantener proporciones sin recortes */
@media (min-width: 768px) {
  section.partners .item {
    min-height: auto;
    padding: 0;
  }
  section.partners .item img {
    height: auto;
  }
}

/* Espaciado vertical cuando se apilan logos a la izquierda */
section.partners .logo-stack .item + .item {
  margin-top: 16px;
}
@media (min-width: 992px) {
  section.partners .logo-stack .item + .item { margin-top: 24px; }
}

/* TItulos y listas de la seccion */
section.partners .partners__title {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.12em; /* igual que h6 */
  color: var(--color-primary);
  margin-bottom: 12px;
  text-transform: uppercase;
}
section.partners .partners-panel {
  padding: 20px 22px;
}
@media (min-width: 992px) {
  section.partners .partners-panel { padding: 24px 28px; }
}

section.partners .partners-quick-links {
  margin: 0;
  padding: 0;
  list-style: none;
}
section.partners .partners-quick-links li { margin-bottom: 8px; }
section.partners .partners-quick-links a {
  color: var(--color-dark);
  transition: var(--transition-default);
}
section.partners .partners-quick-links a:hover {
  color: var(--color-primary);
}

/* Botones de redes sociales */
section.partners .partners-social {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
/* Usamos estilos de .programs-button --ghost para coherencia */
section.partners .partners-social a.programs-button { border: 0; }

/* Disposicion de logos: MCITT + MEP apilados, UNED al costado */
section.partners .partners-logos-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 16px;
  align-items: center;
}


/* Balance visual de logos */
section.partners .partners-logos-grid .logo-stack .item img {
  width: auto;
  height: 46px;
}
@media (min-width: 992px) {
  section.partners .partners-logos-grid .logo-stack .item img { height: 56px; }
}

section.partners .partners-logos-grid .logo-large img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 140px;
  margin-left: auto;
  margin-right: auto;
}


/* Separadores sutiles entre columnas (desktop) */
@media (min-width: 992px) {
  section.partners .partners-column + .partners-column {
    border-left: 1px solid var(--color-border);
  }
}

/* 
---------------------------------------------
footer 
--------------------------------------------- 
*/

footer.site-footer {
  background-color: var(--color-bg);
  padding: 0;
  position: relative; /* ensure above previous sections */
  z-index: 10;
  clear: both;
}
.partners--footer__wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(20px, 3.4vw, 36px);
  margin: 0 auto;
  padding: clamp(18px, 3vw, 32px) 0;
  max-width: min(1100px, 100%);
}


.partners--footer__info {
  position: relative;
  flex: 1 1 380px;
  min-width: 280px;
  max-width: 440px;
  background: linear-gradient(135deg, #0b4aa5 0%, #072c78 50%, #051d55 100%);
  color: #ffffff;
  border-radius: 14px;
  padding: clamp(22px, 3.6vw, 30px) clamp(26px, 5vw, 34px);
  display: flex;
  align-items: center;
  overflow: hidden;
  box-shadow: 0 22px 36px rgba(8, 28, 88, 0.24);
}

.partners--footer__info::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,0.34) 0%, rgba(255,255,255,0) 55%),
    radial-gradient(circle at 82% 15%, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0) 48%);
  pointer-events: none;
}

.partners--footer__info::after {
  content: "";
  position: absolute;
  top: 0;
  right: -60px;
  width: clamp(220px, 26vw, 320px);
  height: 100%;
  background: linear-gradient(150deg, rgba(255,255,255,0.42) 0%, rgba(255,255,255,0.12) 40%, rgba(255,255,255,0) 74%);
  transform: skewX(-16deg);
  pointer-events: none;
}

.partners--footer__info-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 320px;
}

.partners--footer__title {
  font-size: clamp(18px, 2.1vw, 24px);
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-secondary);
  margin: 0;
}

.partners--footer__subtitle {
  font-size: clamp(13px, 1.2vw, 15px);
  margin: 0;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.88);
  letter-spacing: 0.015em;
  position: relative;
  padding-left: clamp(18px, 3vw, 24px);
}

.partners--footer__subtitle::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(12px, 2vw, 20px);
  height: 2px;
  background: rgba(255,255,255,0.6);
  border-radius: 999px;
}

.partners--footer__quote {
  font-size: clamp(18px, 1.1vw, 20px);
  color: rgba(255, 255, 255, 0.66);
  margin: 0;
  font-style: italic;
}

.partners--footer__logos {
  flex: 1 1 520px;
  min-width: 360px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.partners--footer__row {
  display: flex;
  align-items: center;
}

.partners--footer__row--main {
  justify-content: space-around;
  flex-wrap: wrap;
}

.partners--footer__logo {
  display: block;
  height: 70px;
  width: auto;
  object-fit: contain;
}

.partners--footer__row--institution {
  display: flex;
  align-items: center;
}
@media (max-width: 991.98px) {
  .partners--footer__wrap {
    padding: clamp(18px, 5vw, 28px);
  }

  .partners--footer__info,
  .partners--footer__logos {
    flex: 1 1 100%;
  }

  .partners--footer__logos {
    min-width: 100%;
    gap: clamp(18px, 6vw, 30px);
  }

  .partners--footer__row {
    justify-content: center;
  }

  .partners--footer__row--main {
    flex-wrap: wrap;
    justify-content: center;
    gap: clamp(18px, 6vw, 30px);
  }

  .partners--footer__row--institution {
    justify-content: center;
    gap: clamp(18px, 6vw, 32px);
  }

  .partners--footer__info::after {
    display: none;
  }
}

@media (max-width: 575.98px) {
  .partners--footer__wrap {
    padding: 18px 14px;
    gap: 18px;
  }

  .partners--footer__info {
    border-radius: 10px;
    padding: clamp(18px, 6vw, 26px);
  }

  .partners--footer__logos {
    gap: clamp(16px, 7vw, 24px);
  }

  .partners--footer__row--institution {
    justify-content: center;
    text-align: center;
    gap: clamp(16px, 7vw, 24px);
  }

  .partners--footer__row--main {
    justify-content: center;
    gap: clamp(16px, 7vw, 24px);
  }

  .partners--footer__logo {
    height: 60px;
  }
}
.site-footer__bottom {
  background-color: var(--color-footer-bg);
  padding: 14px 0;
}

.site-footer__bottom-inner {
  align-items: center;
  gap: 6px;
  text-align: center;
  flex-direction: column;
}

@media (min-width: 576px) {
  .site-footer__bottom-inner {
    flex-direction: row;
    justify-content: center;
    gap: 16px;
  }
}

.site-footer__bottom-inner p {
  margin: 0;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 400;
}

.site-footer__link {
  color: var(--color-secondary);
  font-weight: 500;
  text-decoration: none;
  transition: color 0.2s ease;
}

.site-footer__link:hover,
.site-footer__link:focus {
  color: var(--color-secondary-hover);
}

/* 
---------------------------------------------
page heading
--------------------------------------------- 
*/

.page-heading {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 75px 0px 0px 0px;
  text-align: center;
}

.page-heading h2 {
  font-size: 56px;
  color: var(--color-text);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,.18);
}

.page-heading .about-us__lede{
  margin: 12px auto 0;
  color: var(--color-text-secondary);
  line-height: 1.6;
  font-size: 16px;
  text-align: center;
}

.page-heading .div-dec {
  width: 80px;
  height: 6px;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
  box-shadow: 0 8px 20px rgba(15,46,140,.18);
  margin: 20px auto 0 auto;
}

/* 
---------------------------------------------
about us page
--------------------------------------------- 
*/

section.top-section .left-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}

section.top-section .accordions {
  border-radius: 5px;
  padding: 50px 40px;
  background-color: var(--color-bg);
  margin-left: 30px;
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.1);
}
.accordions .accordion {
  border-bottom: 1px solid var(--color-border);
}
.accordions .last-accordion {
  border-bottom: none;
}
.accordion-head {
  padding: 35px 0px !important;  
  font-size: 22px;
  font-weight: 600;
  color: var(--color-dark);
  cursor: pointer;
  transition: color 200ms ease-in-out;
  
}
@media screen and (min-width: 768px) {
  .accordion-head {
    padding: 1rem;
    font-size: 1.2rem;
  }
}
.accordion-head .icon {
  float: right;
  transition: transform 200ms ease-in-out;
}
.accordion-head.is-open {
  color: var(--color-secondary);
  border-bottom: none;
}
.accordion-head.is-open .icon {
  transform: rotate(45deg);
}
.accordion-body {
  padding: 0px;
  overflow: hidden;
  height: 0;
  transition: height 300ms ease-in-out;
  border-bottom: 1px solid var(--color-bg);
}
.accordion-body > .content p {
  padding: 0px 0px 30px 0px;
  padding-top: 0;
}
.accordion-body .content .accordion-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.accordion-body .content .accordion-list li {
  position: relative;
  padding: 12px 16px 12px 42px;
  background: rgba(15, 46, 140, 0.08);
  border-radius: 8px;
  color: var(--color-text);
  font-weight: 500;
  line-height: 1.5;
  transition: var(--transition-default);
}
.accordion-body .content .accordion-list li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(15, 46, 140, 0.18);
}
.accordion-body .content .accordion-list li:hover {
  background: rgba(15, 46, 140, 0.15);
}

section.what-we-do.history-section {
  margin-top: 90px;
  padding: 80px 0 70px;
  background-color: var(--color-accent);
  position: relative;
  overflow: hidden;
}
.ccc-features {
  padding: 90px 0 80px;
  background-color: var(--color-accent);
}
.ccc-features__intro {
  margin-bottom: 38px;
}
.ccc-features__eyebrow {
  display: inline-block;
  font-size: 20px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 16px;
}
.ccc-features__intro h3 {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.32;
  color: var(--color-dark);
  margin-bottom: 0;
}
.ccc-features__card {
  padding: 50px 45px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(15, 46, 140, 0.14);
  box-shadow: 0 24px 48px rgba(15, 46, 140, 0.12);
}
.ccc-features__card::before {
  content: none;
}
.ccc-features__body {
  display: grid;
  gap: 28px;
}
.ccc-features__body p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-text-secondary);
}
.ccc-features__list {
  counter-reset: feature;
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 18px;
}
.ccc-features__list li {
  counter-increment: feature;
  position: relative;
  padding: 18px 22px 18px 78px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(15, 46, 140, 0.12);
  box-shadow: 10px 10px 36px rgba(15, 46, 140, 0.16);
  color: var(--color-text-secondary);
  font-size: 16px;
  line-height: 1.6;
  transition: var(--transition-default);
}
.ccc-features__list li::before {
  content: counter(feature);
  position: absolute;
  left: 26px;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--color-secondary);
  color: var(--color-dark);
  font-weight: 700;
  font-size: 18px;
  display: grid;
  place-items: center;
  box-shadow: 0 0 0 6px rgba(230, 203, 61, 0.25);
}
.ccc-features__list li:hover {
  border-color: rgba(15, 46, 140, 0.28);
  box-shadow: 0 24px 44px rgba(15, 46, 140, 0.16);
}
.faq-section {
  padding: 90px 0 80px;
  background-color: var(--color-bg);
}
.faq-section__intro {
  margin-bottom: 34px;
}
.faq-section__eyebrow {
  display: inline-block;
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 14px;
}
.faq-section__intro h3 {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.32;
  color: var(--color-dark);
  margin-bottom: 0;
}
.faq-accordions {
  display: grid;
  gap: 18px;
}
.faq-accordion {
  border: 1px solid rgba(15, 46, 140, 0.14);
  border-radius: 18px;
  background: var(--color-bg);
  box-shadow: 0 22px 44px rgba(15, 46, 140, 0.08);
  overflow: hidden;
  transition: var(--transition-default);
}
.faq-accordion .accordion-head {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 24px 28px !important;
  font-size: 18px;
  font-weight: 600;
  color: var(--color-dark);
  background-color: transparent;
}
.faq-accordion .accordion-head .icon {
  float: none;
  margin-left: auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(15, 46, 140, 0.12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  transition: var(--transition-default);
}
.faq-accordion .accordion-head .icon .fa {
  transition: transform 200ms ease-in-out;
}
.faq-accordion .accordion-head.is-open {
  color: var(--color-primary);
}
.faq-accordion .accordion-head.is-open .icon {
  background: rgba(230, 203, 61, 0.35);
  color: var(--color-dark);
}
.faq-accordion .accordion-body {
  padding: 0;
  border-top: 1px solid rgba(15, 46, 140, 0.08);
  background: rgba(15, 46, 140, 0.02);
}
.faq-accordion .accordion-body .content {
  padding: 22px 28px 26px;
}
.faq-accordion .accordion-body .content p {
  margin: 0;
  color: var(--color-text-secondary);
  line-height: 1.68;
}
.faq-accordion .accordion-body .content p + p {
  margin-top: 16px;
}
.faq-accordion:hover {
  border-color: rgba(15, 46, 140, 0.26);
  box-shadow: 0 26px 52px rgba(15, 46, 140, 0.14);
}

.history-section__intro {
  margin-bottom: 46px;
}

.history-section__eyebrow {
  display: inline-block;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--color-primary);
  margin-bottom: 18px;
}

.history-section__intro h3 {
  font-size: 32px;
  line-height: 1.32;
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: 20px;
}

.history-section__intro p {
  max-width: 720px;
  margin: 0 auto;
  color: var(--color-text-secondary);
}

.history-section__content {
  margin-top: 20px;
  row-gap: 32px;
}

.history-cards .history-card{
  margin: 0;
}

.history-card__media img{
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}

.history-card__caption{
  margin: 8px 0 0;
  font-size: 13px;
  color: var(--color-text-secondary);
  line-height: 1.4;
}

.history-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 6px;
}

.history-legacy {
  padding: 34px 36px;
  border-radius: 18px;
  background: var(--color-bg);
  box-shadow: 0px 20px 45px rgba(15, 46, 140, 0.14);
  border: 1px solid rgba(15, 46, 140, 0.08);
  position: relative;
  overflow: hidden;
}

.history-legacy::before {
  content: none;
}

.history-legacy h4 {
  font-size: 22px;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 18px;
  position: relative;
  z-index: 1;
}

.history-legacy p {
  color: var(--color-text-secondary);
  position: relative;
  z-index: 1;
}

.history-legacy__list {
  list-style: none;
  padding: 0;
  margin: 28px 0 24px;
  display: grid;
  gap: 12px;
  position: relative;
  z-index: 1;
}

.history-legacy__list li {
  display: flex;
  align-items: flex-start;
  font-size: 15px;
  color: var(--color-dark);
  line-height: 1.5;
}

.history-legacy__list li::before {
  content: "•";
  color: var(--color-secondary);
  font-weight: 700;
  margin-right: 10px;
  line-height: 1;
}

.history-quote {
  border-top: 1px solid rgba(15, 46, 140, 0.1);
  padding-top: 22px;
  margin-top: 20px;
  position: relative;
  z-index: 1;
}

.history-quote blockquote {
  margin: 0 0 10px;
  font-size: 16px;
  font-style: italic;
  color: var(--color-dark);
  line-height: 1.6;
}

.history-quote cite {
  display: block;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(20, 20, 20, 0.7);
}

.history-timeline {
  list-style: none;
  margin: 0;
  padding: 6px 0 0 32px;
  position: relative;
  border-left: 2px solid rgba(15, 46, 140, 0.16);
}

.history-milestone {
  position: relative;
  padding-left: 28px;
  margin-bottom: 28px;
}

.history-milestone:last-child {
  margin-bottom: 0;
}

.history-milestone__marker {
  position: absolute;
  left: -39px;
  top: 6px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color-secondary);
  box-shadow: 0 0 0 6px rgba(241, 233, 29, 0.25);
}

.history-milestone__year {
  display: inline-block;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-bottom: 8px;
}

.history-milestone__body h5 {
  font-size: 20px;
  font-weight: 600;
  color: var(--color-dark);
  margin-bottom: 10px;
}

.history-milestone__body p {
  font-size: 15px;
  color: var(--color-text-secondary);
  margin: 0;
  line-height: 1.6;
}

.history-section__cta {
  margin-top: 38px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 22px;
}

.history-section__cta-link {
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  position: relative;
  padding-left: 28px;
  transition: var(--transition-default);
}

.history-section__cta-link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid var(--color-primary);
  display: inline-block;
  background: transparent;
  transition: var(--transition-default);
}

.history-section__cta-link:hover {
  color: var(--color-primary-hover);
}

.history-section__cta-link:hover::before {
  background: var(--color-primary);
}

/* 
---------------------------------------------
services page
--------------------------------------------- 
*/

.main-services .service-item {
  margin-bottom: 60px;
  padding-bottom: 60px;
  border-bottom: 1px solid var(--color-light);
}

.main-services .last-service {
  border-bottom: none;
  margin-bottom: 0px;
  padding-bottom: 0px;
}

.main-services  .left-image {
  margin-right: 15px;
}

.main-services  .left-image img {
  border-radius: 5px;
}

.main-services  .right-image {
  margin-left: 15px;
}

.main-services  .right-image img {
  border-radius: 5px;
}

.main-services .right-text-content {
  margin-left: 15px;
}

.main-services .left-text-content {
  margin-right: 15px;
}

.main-services .right-text-content i,
.main-services .left-text-content i {
  font-size: 64px;
  color: var(--color-primary);
  background-color: var(--color-light);
  width: 120px;
  height: 120px;
  text-align: center;
  display: inline-block;
  line-height: 120px;
  border-radius: 5px;
}

.main-services .right-text-content h4,
.main-services .left-text-content h4 {
  font-size: 36px;
  font-weight: 700;
  color: var(--color-dark);
  margin-top: 40px;
  margin-bottom: 30px;
}

section.service-details .naccs {
  position: relative;
}

section.service-details .naccs .menu {
  text-align: center;
}

section.service-details .naccs .menu div {
  padding: 15px 30px;
  display: inline-block;
  text-align: center;
  border-radius: 5px !important;
  margin-right: 30px;
  font-size: 18px;
  color: var(--color-dark);
  background-color: var(--color-bg);
  cursor: pointer;
  vertical-align: middle;
  font-weight: 600;
  transition: var(--transition-default);
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.1);
}

section.service-details .naccs .menu div.active {
  color: var(--color-primary);
  box-shadow: 0px 12px 30px rgba(15, 46, 140, 0.15);
  transform: translateY(-4px);
}

section.service-details ul.nacc {
  margin-top: 50px !important;
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
}

section.service-details ul.nacc li {
  background-color: var(--color-bg);
  overflow: hidden;
  opacity: 0;
  transform: translateY(24px);
  position: relative;
  list-style: none;
  border-radius: 10px;
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.1);
  display: none;
  transition: opacity 0.35s ease, transform 0.35s ease;
}

section.service-details ul.nacc li .left-image {
  position: absolute;
  margin-right: 50px;
  top: 50%;
  transform: translateY(-50%);
}

section.service-details ul.nacc li .left-image img {
  border-top-left-radius: 15px;
  border-bottom-left-radius: 15px;
}

section.service-details ul.nacc li .right-content {
  padding: 50px 50px 50px 0px;
  margin-left: 470px;
}

section.service-details ul.nacc li .right-content h4 {
  font-size: 24px;
  color: var(--color-dark);
  margin-bottom: 25px;
  font-weight: 700;
  line-height: 40px;
  margin-right: 120px;
}

section.service-details ul.nacc li .right-content ul {
  margin-top: 20px;
  margin-bottom: 20px;
}

section.service-details ul.nacc li .right-content span {
  display: block;
  font-size: 15px;
  font-weight: 500;
  color: var(--color-dark);
  font-style: italic;
  margin-bottom: 12px;
}

section.service-details ul.nacc li .right-content .last-span {
  margin-bottom: 0px;
}

section.service-details ul.nacc li .right-content p {
  margin-bottom: 30px;
}

section.service-details ul.nacc li.active {
  position: relative;
  z-index: 2;
  opacity: 1;
  transform: translateY(0);
  display: block;
}

section.service-details ul.nacc li.tab-enter {
  animation: tabFadeUp 0.45s ease forwards;
}

/* 
--------------------------------------------- 
contact us page
--------------------------------------------- 
*/

section.contact-overview {
  position: relative;
  padding: 120px 0 80px;
  background: var(--color-bg);
  overflow: hidden;
}

.contact-overview__card {
  position: relative;
  border-radius: 28px;
  background: #ffffff;
  box-shadow: 0 24px 50px rgba(15,46,140,0.12);
  overflow: hidden;
  height: 100%;
}

.contact-overview__card--map {
  padding: 0;
  display: block;
  overflow: hidden;
}

.contact-overview__glow {
  position: absolute;
  top: 18%;
  left: 10%;
  right: 10%;
  bottom: 18%;
  background: radial-gradient(circle at center, rgba(15,46,140,0.18), rgba(15,46,140,0));
  filter: blur(45px);
  opacity: 0.75;
  z-index: 1;
}

.contact-overview__map {
  display: block;
  position: relative;
  z-index: 2;
  border-radius: inherit;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(20,20,20,0.14);
  isolation: isolate;
  height: 100%;
  min-height: 420px;
}

.contact-overview__map::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,46,140,0.12) 0%, rgba(15,46,140,0) 65%);
  pointer-events: none;
  z-index: 3;
}

.contact-overview__map::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255,255,255,0.45);
  border-radius: inherit;
  pointer-events: none;
  z-index: 4;
  mix-blend-mode: screen;
}

.contact-map__pattern {
  position: absolute;
  inset: -40% -15% 35% 10%;
  background:
    radial-gradient(40% 40% at 20% 20%, rgba(241,233,29,0.24) 0%, rgba(241,233,29,0) 62%),
    radial-gradient(30% 30% at 78% 12%, rgba(15,46,140,0.28) 0%, rgba(15,46,140,0) 70%),
    linear-gradient(135deg, rgba(15,46,140,0.12), rgba(15,46,140,0.02));
  filter: blur(0.5px);
  z-index: 1;
  opacity: 0.9;
  pointer-events: none;
}

.contact-map__ring {
  position: absolute;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.25);
  top: 12%;
  right: 8%;
  z-index: 2;
  opacity: 0.6;
  filter: drop-shadow(0 18px 40px rgba(15,46,140,0.3));
  animation: contact-ring 8s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes contact-ring {
  0% { transform: scale(1) rotate(0deg); opacity: 0.4; }
  100% { transform: scale(1.08) rotate(12deg); opacity: 0.75; }
}

.contact-map__frame {
  position: relative;
  z-index: 2;
  border-radius: inherit;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.25);
  backdrop-filter: blur(2px);
  height: 100%;
}

.contact-overview__iframe {
  display: block;
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  min-height: 420px;
  border: none;
}

.contact-map__meta {
  position: absolute;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  z-index: 6;
  left: 22px;
  right: 22px;
  top: 22px;
  bottom: auto;
  max-width: calc(100% - 44px);
}

.contact-map__meta--footer {
  top: auto;
  bottom: 22px;
  justify-content: flex-end;
}

.contact-map__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(12,27,82,0.78);
  color: rgba(255,255,255,0.85);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  box-shadow: 0 12px 24px rgba(9,19,59,0.28);
  border: 1px solid rgba(255,255,255,0.18);
  backdrop-filter: blur(6px);
}

.contact-map__chip i {
  font-size: 14px;
  color: rgba(241,233,29,0.9);
}

.contact-overview__map-badge {
  position: absolute;
  inset: auto auto 22px 22px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  border-radius: 18px;
  background: rgba(255,255,255,0.92);
  color: var(--color-dark);
  box-shadow: 0 16px 28px rgba(15,46,140,0.18);
  z-index: 5;
  pointer-events: none;
}

.contact-overview__map-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: rgba(15,46,140,0.12);
  color: var(--color-primary);
  font-size: 22px;
}

.contact-overview__map-label {
  display: block;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
}

.contact-overview__map-badge strong {
  display: block;
  font-size: 16px;
  font-weight: 700;
}

.contact-overview__map-link {
  position: absolute;
  inset: 22px 22px auto auto;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,0.92);
  color: var(--color-primary);
  font-weight: 600;
  font-size: 13px;
  text-decoration: none;
  box-shadow: 0 12px 24px rgba(15,46,140,0.16);
  transition: transform .3s ease, box-shadow .3s ease, background .3s ease;
}

.contact-overview__map-link:hover {
  transform: translateY(-2px);
  background: rgba(241,233,29,0.92);
  color: var(--color-dark);
  box-shadow: 0 16px 30px rgba(15,46,140,0.2);
}

.contact-overview__card--details {
  padding: 54px 48px;
  background: linear-gradient(150deg, rgba(15,46,140,0.95) 0%, rgba(13,31,89,0.92) 45%, rgba(9,19,59,0.94) 100%);
  color: var(--color-bg);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.contact-overview__card--details h3 {
  color: var(--color-bg);
  font-size: 32px;
  line-height: 1.2;
  margin-bottom: 20px;
}

.contact-overview__card--details p {
  color: rgba(255,255,255,0.78);
  margin-bottom: 30px;
  font-size: 15px;
}

.contact-overview__tiles {
  display: grid;
  gap: 16px;
}

.contact-overview__eyebrow {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--color-secondary);
  font-weight: 600;
  display: inline-block;
  margin-bottom: 18px;
}

.contact-tile {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 18px;
  padding: 18px 22px;
  border-radius: 18px;
  background: rgba(255,255,255,0.08);
  color: var(--color-bg);
  text-decoration: none;
  border: 1px solid rgba(255,255,255,0.12);
  transition: transform .3s ease, background .3s ease, box-shadow .3s ease, border .3s ease;
  position: relative; /* ensure children clip within rounded corners */
  overflow: hidden;   /* prevent CTA arrow from rendering outside */
}

.contact-tile:hover {
  transform: translateY(-4px);
  background: rgba(241,233,29,0.2);
  color: var(--color-bg);
  border-color: rgba(241,233,29,0.4);
  box-shadow: 0 16px 30px rgba(0,0,0,0.18);
}

.contact-tile--static {
  cursor: default;
}

.contact-tile--static:hover {
  transform: none;
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.12);
  box-shadow: none;
}

.contact-tile__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 16px;
  background: rgba(241,233,29,0.18);
  color: var(--color-secondary);
  font-size: 22px;
}

.contact-tile h4 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: inherit;
}

.contact-tile p {
  margin: 2px 0 0;
  font-size: 14px;
  color: rgba(255,255,255,0.75);
}

.contact-tile__cta {
  font-size: 16px;
  color: rgba(255,255,255,0.55);
  transition: transform .3s ease, color .3s ease;
  justify-self: end; /* keep arrow aligned inside grid */
}

.contact-tile:hover .contact-tile__cta {
  transform: translateX(4px);
  color: var(--color-bg);
}

.contact-social-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.contact-tile--compact {
  padding: 14px 18px;
  gap: 14px;
}

.contact-tile--compact .contact-tile__icon {
  width: 46px;
  height: 46px;
  font-size: 20px;
}

.contact-tile--compact h4 {
  font-size: 15px;
}

.contact-tile--compact p {
  font-size: 13px;
}

.contact-tile--facebook .contact-tile__icon {
  background: rgba(59, 89, 152, 0.22);
  color: #3b5998;
}

.contact-tile--instagram .contact-tile__icon {
  background: linear-gradient(135deg, rgba(193,53,132,0.28), rgba(255,221,128,0.24));
  color: #feda75;
}

@media (max-width: 600px) {
  .contact-social-group {
    grid-template-columns: 1fr;
  }
}

.contact-overview__footnote {
  margin-top: 32px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  color: rgba(255,255,255,0.65);
}

.contact-overview__footnote i {
  color: var(--color-secondary);
  font-size: 16px;
}

section.contact-us-form {
  position: relative;
  padding: 110px 0 120px;
  background: var(--color-bg);
  overflow: hidden;
}

.contact-form-card {
  position: relative;
  border-radius: 28px;
  box-shadow: 0 26px 56px rgba(9,19,59,0.32);
  padding: 60px 64px;
  overflow: hidden;
}

.contact-form-card::after { display: none; }

.contact-form-card__intro h3 {
  font-size: 32px;
  line-height: 1.2;
  color: var(--color-bg);
  margin-bottom: 20px;
}

.contact-form-card__intro p {
  font-size: 15px;
  color: rgba(255,255,255,0.78);
  margin-bottom: 24px;
}

.contact-form-card__highlights {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 14px;
}

.contact-form-card__highlights li {
  display: flex;
  gap: 12px;
  font-size: 14px;
  color: rgba(255,255,255,0.7);
  line-height: 1.5;
}

.contact-form-card__highlights i {
  color: var(--color-secondary);
  font-size: 16px;
  margin-top: 3px;
}

.contact-form-card__form fieldset {
  border: none;
  padding: 0;
  margin: 0 0 18px;
}

.contact-form-card__form .col-lg-12:last-child fieldset {
  margin-bottom: 0;
}

#contact input,
#contact textarea {
  width: 100%;
  background: rgba(255,255,255,0.12);
  color: var(--color-bg);
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.22);
  padding: 14px 16px;
  font-size: 15px;
  outline: none;
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

#contact input:hover,
#contact textarea:hover {
  background: rgba(255,255,255,0.16);
  border-color: rgba(255,255,255,0.32);
}

#contact input:focus,
#contact textarea:focus {
  background: rgba(255,255,255,0.18);
  border-color: rgba(255,255,255,0.5);
  box-shadow: 0 0 0 4px rgba(255,255,255,0.16);
}

#contact textarea {
  min-height: 160px;
  max-height: 320px;
  resize: vertical;
}

#contact input::placeholder,
#contact textarea::placeholder {
  color: rgba(255,255,255,0.6);
}

#contact button.orange-button {
  font-size: 15px;
  color: var(--color-dark);
  background: linear-gradient(135deg, var(--color-secondary), #fff38c);
  padding: 14px 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 999px;
  font-weight: 600;
  text-transform: unset;
  letter-spacing: 0.5px;
  border: none;
  transition: transform .3s ease, box-shadow .3s ease, background .3s ease;
  box-shadow: 0 16px 34px rgba(241,233,29,0.26);
}

#contact button.orange-button:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, #fff59f, var(--color-secondary));
  box-shadow: 0 20px 40px rgba(241,233,29,0.32);
}

/* 
---------------------------------------------
responsive
--------------------------------------------- 
*/

body {
  overflow-x: hidden;
}

@media (max-width: 992px) {
  /* Keep last nav item (Contacto) visible on tablets/mobiles */
  .header-area .main-nav .nav li:last-child {
    display: inline-block;
  }
  .header-area .main-nav .nav li ul li:last-child {
    display: inline-block;
  }
  .header-area {
    background-color: var(--color-dark);
  }
  .slide-inner .header-text {
    width: 80%;
  }
  .simple-cta {
    text-align: center;
  }
  section.simple-cta .buttons {
    justify-content: center;
  }
  .ccc-features {
    padding: 70px 0 60px;
  }
  .ccc-features__intro h3 {
    font-size: 28px;
  }
  .ccc-features__card {
    padding: 42px 32px;
  }
  .faq-section {
    padding: 70px 0 60px;
  }
  .faq-section__intro h3 {
    font-size: 28px;
  }
  .faq-accordion .accordion-head {
    padding: 22px 22px !important;
    font-size: 17px;
  }
  .faq-accordion .accordion-body .content {
    padding: 20px 22px 22px;
  }
  section.academic-hero {
    padding: 90px 0 70px;
  }
  .academic-hero__copy h3 {
    font-size: 34px;
  }
  .academic-hero__highlights {
    gap: 18px;
  }
  .academic-highlight {
    min-width: 140px;
    flex: 1 1 calc(50% - 18px);
  }
  section.curriculum-overview {
    padding: 60px 0 50px;
  }
  .curriculum-panel__media img {
    height: 200px;
  }

  .programs-experiences__grid {
    gap: 22px;
  }
  .programs-cta__card {
    padding: 48px 40px;
    flex-direction: column;
    align-items: flex-start;
  }
  section.contact-overview {
    padding: 90px 0 60px;
  }
  .contact-overview__card--details {
    padding: 36px 32px;
  }
  .contact-overview__map,
  .contact-overview__iframe,
  .contact-map__frame {
    min-height: 360px;
  }
  .contact-overview__map-link {
    inset: 18px 18px auto auto;
    padding: 8px 14px;
    font-size: 12px;
  }
  .contact-map__meta--footer {
    bottom: 18px;
    left: 18px;
    right: 18px;
    gap: 8px;
  }
  .contact-map__chip {
    font-size: 11px;
    padding: 7px 12px;
  }
  .events-pagination {
    margin-top: 28px;
  }
  .events-pagination__inner {
    gap: 10px;
  }
  .events-pagination__button {
    min-width: 40px;
    padding: 9px 12px;
    font-size: 13px;
  }
  .contact-overview__map-badge {
    inset: auto auto 18px 18px;
    padding: 14px 16px;
  }
  .contact-overview__map-icon {
    width: 42px;
    height: 42px;
    font-size: 20px;
  }
  .contact-form-card {
    padding: 48px 40px;
  }
  section.service-details .naccs .menu div {
    margin-right: 15px;
    font-size: 15px;
    padding: 15px 20px;
  }
  section.calculator .left-image {
    display: none;
  }
  .testimonials .item img {
    max-width: 200px;
    right: 50px;
  }
  section.partners .item {
    margin:15px; 
  }
  section.top-section .accordions {
    margin-left: 0px;
    margin-top: 45px;
  }
  section.what-we-do.history-section {
    padding: 65px 0 55px;
  }
  .history-section__content {
    row-gap: 26px;
  }
  .history-legacy {
    margin-bottom: 24px;
  }
  .main-services .left-image {
    margin-right: 0px;
    margin-bottom: 30px;
  }
  .main-services .right-text-content {
    margin-left: 0px;
  }
  .main-services .right-image {
    margin-left: 0px;
    margin-top: 30px;
  }
  section.service-details ul.nacc li .left-image {
    position: relative;
    margin-right: 0px;
    transform: translateY(0px);
  }
  section.service-details ul.nacc li .left-image img {
    border-radius: 15px;
  }
  section.service-details ul.nacc li .right-content {
    padding: 50px;
    margin-left: 0px;
  }
  section.service-details ul.nacc li .right-content h4 {
    margin-right: 0px;
  }
  section.service-details ul.nacc li.active {
    display: block;
  }
  section.map .info-item {
    margin-top: 30px;
  }
}

@media (max-width: 767px) {
  .curriculum-panel__list--compact { columns: 1; }
  .header-area .main-nav .logo {
    line-height: 100px;
  }
  .background-header .main-nav .logo {
    line-height: 80px;
  }
  .header-area .main-nav .nav li.has-sub ul.sub-menu {
    display: none;
  }
  .header-area .main-nav .nav li.has-sub.is-open ul.sub-menu {
    display: block;
  }
  .swiper-container {
      position: relative; height: 65vh; min-height: 360px; 
  }
  .swiper-button-next, .swiper-button-prev {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      z-index: 10;
      width: 44px;
      height: 44px;
      margin-top: 0;
      opacity: 0.9;
      color: #fff;
  }
  .slide-inner .header-text h2 { font-size: 34px; line-height: 44px; margin-bottom: 20px; }
  .slide-inner .header-text p { display: none; }
  .slide-inner .header-text {
    text-align: center;
    width: 90%;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .slide-inner .header-text .div-dec {
    margin-left: auto;
    margin-right: auto;
  }
  .slide-inner .header-text .buttons {
    display: inline-flex;
  }
  .slide-inner .header-text .buttons .green-button {
    float: none;
  }
  section.simple-cta h4 { font-size: 24px; line-height: 34px; }
  section.simple-cta .buttons { justify-content: center; flex-wrap: wrap; }
  .services .service-item i {
    margin-bottom: 35px;
  }
  .testimonials .item i {
    margin-bottom: 60px;
  }
  .testimonials .item img {
    max-width: 100px;
    right: 50px;
    top: 35px;
    transform: translateY(0);
  }
  .testimonials .item {
    padding: 50px;
  }
  section.programs-hero {
    padding: 90px 0 70px;
  }
  .programs-hero__copy h3 {
    font-size: 30px;
  }
  .programs-hero__metrics {
    flex-direction: column;
    gap: 16px;
  }
  .programs-metric {
    min-width: 100%;
  }
  .programs-hero__actions {
    width: 100%;
  }
  .programs-button {
    width: 100%;
    justify-content: center;
  }
  .programs-hero__card {
    margin-top: 20px;
  }
  .academic-hero__copy h3 {
    font-size: 30px;
  }
  .academic-hero__highlights {
    flex-direction: column;
  }
  .academic-highlight {
    width: 100%;
  }
  .curriculum-panel__media img {
    height: 180px;
  }
  .academic-section__intro {
    text-align: left;
  }
  .academic-section__intro h3 {
    font-size: 26px;
  }
  .academic-list--pill {
    gap: 10px;
  }
  .academic-list--pill li {
    display: block;
  }
  .ccc-features {
    padding: 60px 0 50px;
  }
  .ccc-features__intro h3 {
    font-size: 26px;
  }
  .ccc-features__card {
    padding: 34px 26px;
  }
  .ccc-features__list li {
    padding: 16px 18px 16px 64px;
  }
  .ccc-features__list li::before {
    width: 34px;
    height: 34px;
    font-size: 16px;
    left: 22px;
  }
  section.programs-curriculum {
    padding: 60px 0 50px;
  }
  .curriculum-card {
    padding: 28px 24px;
  }
  .curriculum-card h4 {
    font-size: 22px;
  }
  section.programs-stats {
    padding: 60px 0 48px;
  }
  .programs-stats__card {
    padding: 30px 24px;
  }
  .faq-section {
    padding: 60px 0 50px;
  }
  .faq-section__intro h3 {
    font-size: 24px;
  }
  .faq-accordions {
    gap: 12px;
  }
  .faq-accordion {
    border-radius: 14px;
  }
  .faq-accordion .accordion-head {
    padding: 18px 18px !important;
    font-size: 16px;
  }
  .faq-accordion .accordion-body .content {
    padding: 16px 18px 18px;
  }
  section.programs-grid {
    padding: 80px 0 90px;
  }
  section.programs-experiences {
    padding: 80px 0;
  }
  .program-experience__media img {
    height: 200px;
  }
  section.programs-panels {
    padding: 80px 0 90px;
  }
  .program-panel__media img {
    height: 200px;
  }
  section.programs-cta {
    padding: 90px 0 110px;
  }
  .programs-cta__card {
    padding: 40px 30px;
    text-align: left;
  }
}

/* ===== Overrides for CCP palette behaviors ===== */

/* Nav link states */
.header-area .main-nav .nav li:hover a { color: var(--color-link-hover) !important; }
.header-area .main-nav .nav li a.active { color: var(--color-link) !important; }
.background-header .main-nav .nav li:hover a { color: var(--color-link-hover) !important; }
.background-header .main-nav .nav li a.active { color: var(--color-link) !important; }
.header-area.header-sticky .nav li a:hover { color: var(--color-link-hover) !important; }
.header-area.header-sticky .nav li a.active { color: var(--color-link) !important; }

/* No cambiar color del botón de login con la regla genérica de hover en li */
.header-area .main-nav .nav li:hover .login-modal-trigger,
.background-header .main-nav .nav li:hover .login-modal-trigger{
  color: #ffffff !important;
}

/* Buttons */
.orange-button a { background-color: var(--color-primary); color: var(--color-bg); }
.orange-button a:hover { background-color: var(--color-primary-hover); }
.green-button a { background-color: var(--color-secondary); color: var(--color-button-text); }
.green-button a:hover { background-color: var(--color-secondary-hover); }

#calculate button.orange-button { background-color: var(--color-primary); color: var(--color-bg); }
#calculate button.orange-button:hover { background-color: var(--color-primary-hover); }

#contact button.orange-button { background: linear-gradient(135deg, var(--color-secondary), #fff38c); color: var(--color-dark); }
#contact button.orange-button:hover { background: linear-gradient(135deg, #fff59f, var(--color-secondary)); }

/* Inputs & surface */
#contact input,
#contact textarea {
  background-color: rgba(255,255,255,0.12);
  color: var(--color-bg);
}
#contact input::placeholder, 
#contact textarea::placeholder {
  color: rgba(255,255,255,0.6);
}

/* Service icon background to surface */
.main-services .right-text-content i,
.main-services .left-text-content i {
  background-color: var(--color-surface);
  color: var(--color-primary);
}

/* Submenu hover styling */
.header-area .main-nav .nav li.has-sub ul li a:hover {
  background: rgba(15,46,140,.45);
  color: var(--color-link-hover) !important;
}

/* ---------------------------------------------
   CCP responsive tweaks
   --------------------------------------------- */

@media (max-width: 767px) {
  .curriculum-card__list--compact { columns: 1; }
  /* Reduce vertical gaps on small screens */
  section { margin-top: 60px; }

  /* Banner: make slider shorter and text legible */
  .swiper-container {
      position: relative; height: 65vh; min-height: 360px; }
  .swiper-button-next, .swiper-button-prev {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      z-index: 10;
      width: 44px;
      height: 44px;
      margin-top: 0;
      opacity: 0.9;
      color: #fff;
  }
  .slide-inner .header-text h2 { font-size: 34px; line-height: 44px; margin-bottom: 20px; }
  .slide-inner .header-text p { margin-right: 0; font-size: 14px; line-height: 24px; }
  .slide-inner .header-text .buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }

  /* CTA section: comfortable text and centered actions */
  section.simple-cta h4 { font-size: 24px; line-height: 34px; }
  section.simple-cta .buttons { justify-content: center; flex-wrap: wrap; }

  /* Historia: apilar contenido y simplificar timeline */
  section.what-we-do.history-section { padding: 56px 0 50px; }
  .history-section__intro { margin-bottom: 32px; }
  .history-section__intro h3 { font-size: 26px; line-height: 1.28; }
  .history-legacy { padding: 26px; }
  .history-legacy__list li { font-size: 14px; }
  .history-timeline { padding-left: 0; border-left: none; }
  .history-milestone { padding-left: 0; margin-bottom: 24px; }
  .history-milestone__marker {
    position: relative;
    left: 0;
    top: 0;
    margin-bottom: 12px;
    box-shadow: 0 0 0 4px rgba(241, 233, 29, 0.2);
  }
  .history-milestone__body h5 { font-size: 18px; }
  .history-section__cta {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin-top: 28px;
  }
  .history-section__cta-link {
    padding-left: 0;
  }
  .history-section__cta-link::before {
    display: none;
  }

  /* Service-details tabs: fix stacking + overlap on mobile */
  section.service-details .naccs .menu { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
  section.service-details .naccs .menu div { margin-right: 0; padding: 10px 14px; font-size: 14px; transform: none; }
  section.service-details .naccs .menu div.active { transform: none; }

  section.contact-overview {
    padding: 80px 0 50px;
  }
  .contact-overview__card {
    border-radius: 22px;
  }
  .contact-overview__card--details {
    padding: 28px 24px;
  }
  .contact-overview__map,
  .contact-overview__iframe,
  .contact-map__frame {
    min-height: 320px;
  }
  .contact-overview__map-link {
    inset: 16px 16px auto auto;
  }
  .contact-map__meta--footer {
    bottom: 16px;
    left: 16px;
    right: 16px;
    gap: 6px;
    flex-direction: column;
    align-items: flex-start;
  }
  .contact-map__chip {
    font-size: 11px;
    padding: 6px 12px;
    width: fit-content;
  }
  .events-pagination {
    margin-top: 24px;
  }
  .events-pagination__inner {
    gap: 8px;
  }
  .events-pagination__button {
    min-width: 38px;
    padding: 8px 11px;
    font-size: 12px;
  }
  .contact-overview__map-badge {
    inset: auto auto 16px 16px;
    gap: 10px;
  }
  .contact-overview__map-icon {
    width: 38px;
    height: 38px;
    font-size: 18px;
  }
  .contact-overview__tiles {
    grid-template-columns: 1fr;
  }
  .contact-tile {
    grid-template-columns: auto 1fr;
  }
  .contact-tile__cta {
    display: none;
  }
  .contact-form-card {
    padding: 36px 26px;
    border-radius: 26px;
  }
  .contact-form-card__intro h3 {
    font-size: 28px;
  }
  .contact-form-card__highlights li {
    font-size: 13px;
  }
}





/* ---------------------------------------------
   Highlights section (fixed broken block)
   --------------------------------------------- */

section.highlights { padding: 60px 0 30px; }

section.highlights .highlight-card {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: linear-gradient(135deg, rgba(15,46,140,.12), rgba(15,46,140,.04));
  border-radius: 24px;
  padding: 36px;
  box-shadow: var(--shadow-light);
  position: relative;
  overflow: hidden;
  transition: var(--transition-default);
}

section.highlights .highlight-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top right, rgba(241,233,29,.22), transparent 55%);
  opacity: 0;
  transition: opacity 0.25s ease;
}

section.highlights .highlight-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-strong);
}

section.highlights .highlight-card:hover::before { opacity: 1; }

section.highlights .highlight-card .icon {
  width: 60px;
  height: 60px;
  border-radius: 18px;
  background: rgba(15,46,140,.16);
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  flex-shrink: 0;
}

section.highlights .highlight-card h4 {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 14px;
  color: var(--color-dark);
}

section.highlights .highlight-card p {
  margin-bottom: 0;
  color: var(--color-text-secondary);
}

section.highlights .highlight-card.border-primary { border-left: 6px solid var(--color-primary); }
section.highlights .highlight-card.border-secondary { border-left: 6px solid var(--color-secondary); }

@media (max-width: 767px) {
  .curriculum-card__list--compact { columns: 1; }
  section.highlights .highlight-card {
    flex-direction: column;
    align-items: flex-start;
    padding: 26px;
  }
  section.highlights .highlight-card .icon {
    width: 52px;
    height: 52px;
    font-size: 22px;
  }
}
/* 
--------------------------------------------- 
programs page
--------------------------------------------- 
*/

section.academic-hero {
  position: relative;
  padding: 120px 0 100px;
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
}

.academic-hero__copy {
  max-width: 640px;
  position: relative;
  z-index: 2;
}

.academic-hero__eyebrow {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-secondary);
  margin-bottom: 16px;
}

.academic-hero__copy h3 {
  font-size: 42px;
  line-height: 1.2;
  margin-bottom: 20px;
  color: var(--color-dark);
}

.academic-hero__copy p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-text-secondary);
  margin-bottom: 32px;
}

.academic-hero__highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
}

.academic-highlight {
  position: relative;
  min-width: 180px;
  padding: 20px 24px;
  border-radius: 18px;
  background: #ffffff;
  border: 1px solid var(--color-border);
  box-shadow: 0 20px 36px rgba(15, 46, 140, 0.1);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.academic-highlight::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 2px solid transparent;
  pointer-events: none;
  transition: border-color .28s ease;
}

.academic-highlight:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 52px rgba(15, 46, 140, 0.16);
  border-color: rgba(15, 46, 140, 0.22);
}

.academic-highlight:hover::after {
  border-color: rgba(230, 203, 61, 0.7);
}

.academic-highlight__value {
  display: block;
  font-size: 34px;
  font-weight: 800;
  color: var(--color-primary);
  line-height: 1;
  margin-bottom: 6px;
}

.academic-highlight__label {
  position: relative;
  z-index: 1;
  font-size: 13px;
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.academic-hero__card {
  position: relative;
  padding: 32px 30px;
  display: grid;
  gap: 18px;
  color: var(--color-dark);
}

.academic-hero__card h4 {
  margin-bottom: 18px;
  font-size: 24px;
}

.academic-hero__card ul {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 10px;
  color: var(--color-text-secondary);
  font-size: 15px;
}

section.curriculum-overview {
  padding: 80px 0 70px;
}

.curriculum-panel {
  background: #ffffff;
  border-radius: 16px;
  border: 1px solid rgba(15,46,140,0.08);
  box-shadow: 0 14px 28px rgba(9,19,59,0.12);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.curriculum-panel:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 44px rgba(9,19,59,0.16);
  border-color: rgba(15,46,140,0.16);
}
/* Compactar espacio superior en tarjetas del currículo */
.curriculum-overview .curriculum-panel__body {
  padding: 22px 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1 1 auto;
}
.curriculum-overview .curriculum-panel__body > * { margin: 0 !important; }
.curriculum-overview .curriculum-panel__eyebrow { margin-bottom: 8px; }
.curriculum-overview .curriculum-panel__body h4 { margin-top: 0; }

.curriculum-panel__media {
  position: relative;
  width: 100%;
  overflow: hidden;
  flex: 0 0 auto;
}

.curriculum-panel__media img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}

.curriculum-panel__body {
  padding: 22px 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: 100%;
}

.curriculum-panel__eyebrow {
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-secondary);
  display: inline-block;
}

.curriculum-panel__body h4 {
  margin: 0;
  font-size: 22px;
  line-height: 1.32;
  color: var(--color-dark);
}

.curriculum-panel__list {
  margin: 0;
  padding-left: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  color: var(--color-text-secondary);
  font-size: 15px;
  line-height: 1.6;
}

.curriculum-panel__list li {
  position: relative;
  padding-left: 18px;
  text-align: justify;
  text-justify: inter-word;
}

.curriculum-panel__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-secondary);
}

.curriculum-panel__list--compact {
  columns: 1;
  column-gap: 0;
}

.curriculum-panel__list--compact li {
  break-inside: avoid;
}

.curriculum-panel__table {
  display: grid;
  gap: 10px;
}

.curriculum-panel__table-head,
.curriculum-panel__table-row {
  display: grid;
  grid-template-columns: 1fr 170px;
  gap: 12px;
  align-items: center;
}

.curriculum-panel__table-head span:nth-child(2),
.curriculum-panel__table-row span:nth-child(2){
  justify-self: center;
  text-align: center;
}

.curriculum-panel__table-head {
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(15,46,140,0.7);
  padding-bottom: 2px;
}

.curriculum-panel__table-row {
  font-size: 14px;
  color: var(--color-text-secondary);
  padding: 4px 0;
}

.curriculum-panel__table-row:last-child {
  border-bottom: 0;
}

.curriculum-panel__footnote {
  border-top: 1px solid rgba(15,46,140,0.12);
  padding-top: 16px;
  display: grid;
  gap: 12px;
  margin-top: auto;
}

.curriculum-panel__footnote--subtle {
  border-top: 1px dashed rgba(15,46,140,0.16);
}

.curriculum-panel__footnote h5 {
  margin: 0;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-dark);
}

.curriculum-panel__footnote ul {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 8px;
  list-style: disc;
  font-size: 14px;
  color: var(--color-text-secondary);
}

.curriculum-panel__footnote-text {
  margin: 0;
  font-size: 14px;
  color: var(--color-text-secondary);
}

.curriculum-panel__summary {
  margin: 0;
  font-size: 15px;
  color: var(--color-text-secondary);
  line-height: 1.6;
}

.academic-section {
  padding: 15px 0 15px;
}

.academic-section--accent {
  background: #ffffff;
}

.academic-section--paa {
  background: #ffffff;
}

.academic-section--tours {
  background: #ffffff;
}

.academic-section--showcase {
  position: relative;
  padding: 80px 0 75px;
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}

.academic-section__intro {
  max-width: 760px;
  margin: 0 auto 30px;
  text-align: left;
}

.academic-section__intro.text-center {
  text-align: center;
}

.academic-section__intro--center {
  margin-bottom: 56px;
}

.academic-section__eyebrow {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-secondary);
  margin-bottom: 14px;
}

.academic-section__intro h3 {
  margin: 0 0 16px;
  font-size: 32px;
  line-height: 1.3;
  color: var(--color-dark);
}

.academic-section__intro p {
  margin: 0;
  font-size: 15px;
  color: var(--color-text-secondary);
  line-height: 1.7;
}

.academic-showcase {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.academic-card {
  position: relative;
  padding: 28px;
  border-radius: 24px;
  background: #ffffff;
  border: 1px solid var(--color-border);
  box-shadow: 0 26px 48px rgba(15, 46, 140, 0.12);
  display: grid;
  gap: 14px;
  overflow: hidden;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.academic-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 4px;
  width: 100%;
  background: var(--color-secondary);
  opacity: 0.6;
  transition: opacity .28s ease;
  border-radius: 24px 24px 0 0;
}

.academic-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 34px 60px rgba(15, 46, 140, 0.16);
  border-color: rgba(15, 46, 140, 0.2);
}

.academic-card:hover::before {
  opacity: 1;
}

.academic-card__title {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
}

.academic-card__description {
  margin: 0;
  font-size: 15px;
  color: var(--color-text-secondary);
  line-height: 1.6;
}

.academic-card__action {
  margin-top: 10px;
}

.academic-card__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid rgba(230,203,61,0.55);
  color: #b19500;
  background: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
}

.academic-card__link:hover {
  background: linear-gradient(135deg, rgba(230,203,61,1), rgba(230,203,61,0.92));
  color: #0b1d66;
  border-color: rgba(230,203,61,0.7);
  box-shadow: 0 10px 22px rgba(230,203,61,0.26);
}

@media (max-width: 991px) {
  .academic-section--showcase {
    padding: 70px 0 60px;
  }
}

@media (max-width: 767px) {
  .academic-showcase {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .academic-card {
    padding: 26px;
    border-radius: 24px;
  }
}

/* Olimpiadas: tarjetas mejoradas */
.olympiad-card {
  position: relative;
  height: 100%;
  padding: 24px 24px 22px;
  border-radius: 20px;
  background: #ffffff;
  border: 1px solid rgba(15,46,140,0.08);
  box-shadow: 0 22px 44px rgba(15,46,140,0.10);
  display: grid;
  gap: 8px;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.olympiad-card::before {
  content: "";
  position: absolute;
  left: 0; top: 16px; bottom: 16px;
  width: 4px;
  border-radius: 4px;
  background: var(--color-primary);
  opacity: .6;
  transition: width .28s ease, opacity .28s ease;
}

.olympiad-card:hover {
  transform: translateY(-4px);
  border-color: rgba(15,46,140,0.18);
  box-shadow: 0 28px 56px rgba(15,46,140,0.14);
}

.olympiad-card:hover::before { width: 6px; opacity: 1; }

.olympiad-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}

.olympiad-card__abbr {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(15,46,140,0.10);
  color: var(--color-primary);
  font-weight: 700;
  font-size: 32px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.olympiad-card__icon {
  flex: 0 0 auto;
  width: 120px; height: 120px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center; justify-content: center;
  background: rgba(15,46,140,0.06);
  box-shadow: inset 0 0 0 1px rgba(15,46,140,0.08);
}

.academic-section--showcase .olympiad-card__abbr{
  background: rgba(230,203,61,0.20);
  color: #b19500;
}

.academic-section--showcase .olympiad-card__icon{
  background: rgba(230,203,61,0.12);
  box-shadow: inset 0 0 0 1px rgba(230,203,61,0.25);
}

.academic-section--showcase .academic-card__title{
  color: #e6cb3d;
}

.olympiad-card__icon img { width: 110px; height: 110px; object-fit: contain; display: block; }
.olympiad-card__icon-text {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--color-primary);
}

.olympiad-card h4 { margin: 0; font-size: 18px; color: var(--color-dark); }
.olympiad-card p { margin: 0; font-size: 14px; color: var(--color-text-secondary); }
.olympiad-card__action {
  margin-top: 12px;
}
.olympiad-card__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid rgba(15, 46, 140, 0.4);
  color: var(--color-primary);
  background: rgba(255, 255, 255, 0.75);
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
}
.olympiad-card__link:hover {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
  box-shadow: 0 8px 18px rgba(5, 12, 45, 0.35);
}

.academic-list {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 10px;
  list-style: disc;
  color: var(--color-text-secondary);
  font-size: 15px;
  line-height: 1.6;
}

.academic-list--pill {
  list-style: none;
  padding-left: 0;
  display: grid;
  gap: 12px;
}

.academic-list--pill li {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 999px;
  background: rgba(15,46,140,0.1);
  color: var(--color-primary);
  font-weight: 600;
}

.academic-stats {
  padding: 60px 0 55px;
}

.academic-stats__card {
  padding: 36px 32px;
  display: grid;
  gap: 28px;
}

.academic-stats__header {
  display: grid;
  gap: 10px;
}

.academic-stats__eyebrow {
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-secondary);
}

.academic-stats__header h3 {
  margin: 0;
  font-size: 28px;
  line-height: 1.34;
}

.academic-stats__table {
  overflow-x: auto;
}

.academic-stats__table table {
  width: 100%;
  border-collapse: collapse;
  min-width: 420px;
}

.academic-stats__table th,
.academic-stats__table td {
  padding: 14px 18px;
  text-align: left;
  font-size: 14px;
  border-bottom: 1px solid rgba(15,46,140,0.12);
}

.academic-stats__table th {
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
  background: rgba(15,46,140,0.06);
}

.academic-stats__table tr:last-child td {
  border-bottom: none;
}

.academic-stats__note {
  margin: 0;
  font-size: 13px;
  color: var(--color-text-secondary);
  line-height: 1.6;
}

section.academic-section.academic-section--profile {
  /* Fondo blanco para perfil de salida */
  background: #ffffff;
}

section.programs-hero {
  position: relative;
  padding: 140px 0 110px;
  /* Fondo sin amarillo, sólo azul/neutral */
  background: linear-gradient(140deg, rgba(15,46,140,0.10) 0%, rgba(9,19,59,0.04) 90%);
  overflow: hidden;
}

.programs-hero__copy {
  max-width: 540px;
}

.programs-hero__eyebrow {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 2px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--color-secondary);
  margin-bottom: 18px;
}

.programs-hero__copy h3 {
  font-size: 40px;
  line-height: 1.2;
  margin-bottom: 20px;
  color: var(--color-dark);
}

.programs-hero__copy p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-text-secondary);
  margin-bottom: 32px;
}

.programs-hero__metrics {
  display: flex;
  gap: 28px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}

.programs-metric {
  min-width: 160px;
}

.programs-metric__value {
  display: block;
  font-size: 38px;
  font-weight: 800;
  color: var(--color-primary);
  line-height: 1;
  margin-bottom: 8px;
}

.programs-metric__label {
  font-size: 14px;
  color: var(--color-text-secondary);
}

.programs-hero__actions {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.programs-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 26px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.4px;
  text-decoration: none;
  transition: transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease;
}

.programs-button--primary {
  /* Botón principal en azul en lugar de degradado amarillo */
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-hover));
  color: var(--color-bg);
  box-shadow: 0 16px 34px rgba(9,19,59,0.22);
}

.programs-button--primary:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, var(--color-primary-hover), #0b1b4d);
  box-shadow: 0 20px 40px rgba(9,19,59,0.3);
}

.programs-button--ghost {
  background: rgba(15,46,140,0.12);
  color: var(--color-primary);
  box-shadow: inset 0 0 0 1px rgba(15,46,140,0.24);
}

.programs-button--ghost:hover {
  transform: translateY(-2px);
  background: rgba(15,46,140,0.18);
  color: var(--color-primary-hover);
}

.programs-hero__card {
  position: relative;
  border-radius: 28px;
  padding: 42px 38px;
  background: linear-gradient(160deg, rgba(15,46,140,0.94) 0%, rgba(9,19,59,0.92) 100%);
  color: var(--color-bg);
  box-shadow: 0 30px 60px rgba(9,19,59,0.35);
  overflow: hidden;
}

.programs-hero__card::after {
  content: "";
  position: absolute;
  inset: 12% -18% 18% 45%;
  /* Resplandor neutro en vez de amarillo */
  background: radial-gradient(circle at center, rgba(255,255,255,0.28), rgba(255,255,255,0));
  opacity: 0.7;
  filter: blur(30px);
  pointer-events: none;
}

.programs-hero__tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  /* Etiqueta con tinte azul suave en lugar de amarillo */
  background: rgba(15,46,140,0.12);
  color: var(--color-primary);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 20px;
}

.programs-hero__card h4 {
  font-size: 30px;
  line-height: 1.2;
  margin-bottom: 16px;
  color: var(--color-bg);
}

.programs-hero__card p {
  color: rgba(255,255,255,0.8);
  margin-bottom: 26px;
  font-size: 15px;
}

.programs-hero__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 18px;
  position: relative;
  z-index: 2;
}

.programs-hero__list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: flex-start;
}

.programs-hero__list i {
  width: 52px;
  height: 52px;
  border-radius: 18px;
  background: rgba(255,255,255,0.12);
  color: var(--color-secondary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
}

.programs-hero__list strong {
  display: block;
  font-weight: 700;
  font-size: 16px;
  color: var(--color-bg);
  margin-bottom: 4px;
}

.programs-hero__list span {
  font-size: 14px;
  color: rgba(255,255,255,0.7);
  line-height: 1.6;
}

section.programs-curriculum {
  padding: 90px 0 80px;
}

.curriculum-card {
  position: relative;
  padding: 36px 34px;
  display: grid;
  gap: 18px;
  border-radius: 24px;
}

.curriculum-card__eyebrow {
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-secondary);
  font-weight: 700;
}

.curriculum-card h4 {
  margin: 0;
  font-size: 24px;
  line-height: 1.35;
  color: var(--color-primary);
}

.curriculum-card__list {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
  list-style: none;
  color: var(--color-text-secondary);
  font-size: 15px;
  line-height: 1.6;
}

.curriculum-card__list li::before {
  content: "•";
  color: var(--color-secondary);
  margin-right: 10px;
  font-weight: 700;
}
.curriculum-card__list--compact {
  columns: 2;
  column-gap: 26px;
}
.curriculum-card__list--compact li {
  break-inside: avoid;
}


.curriculum-card__grid {
  display: grid;
  gap: 20px;
}

.curriculum-card__grid h5 {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 700;
  color: var(--color-dark);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.curriculum-card__grid ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
  color: var(--color-text-secondary);
  font-size: 14px;
}

.curriculum-card__summary {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 14px;
  line-height: 1.6;
}

.curriculum-card__footnote {
  border-top: 1px solid rgba(15,46,140,0.12);
  padding-top: 16px;
  display: grid;
  gap: 12px;
}

.curriculum-card__footnote h5 {
  margin: 0;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-dark);
}

.curriculum-card__footnote ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
  color: var(--color-text-secondary);
  font-size: 14px;
}

section.programs-stats {
  padding: 80px 0 70px;
}

.programs-stats__card {
  padding: 44px 40px;
  display: grid;
  gap: 28px;
}

.programs-stats__header {
  display: grid;
  gap: 10px;
}

.programs-stats__eyebrow {
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-secondary);
}

.programs-stats__header h3 {
  margin: 0;
  font-size: 28px;
  line-height: 1.34;
}

.programs-stats__table {
  overflow-x: auto;
}

.programs-stats__table table {
  width: 100%;
  border-collapse: collapse;
  min-width: 420px;
}

.programs-stats__table th,
.programs-stats__table td {
  padding: 14px 18px;
  text-align: left;
  font-size: 14px;
  border-bottom: 1px solid rgba(15,46,140,0.12);
}

.programs-stats__table th {
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
  background: rgba(15,46,140,0.06);
}

.programs-stats__table tr:last-child td {
  border-bottom: none;
}

.programs-stats__note {
  margin: 0;
  font-size: 13px;
  color: var(--color-text-secondary);
  line-height: 1.6;
}

section.programs-grid {
  padding: 110px 0 120px;
  background: var(--color-bg);
}

.program-card {
  height: 100%;
  border-radius: 22px;
  padding: 32px 30px;
  background: linear-gradient(160deg, rgba(255,255,255,1) 0%, rgba(248,248,248,0.85) 100%);
  box-shadow: 0 22px 44px rgba(15,46,140,0.12);
  transition: transform .35s ease, box-shadow .35s ease;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.program-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 28px 58px rgba(15,46,140,0.18);
}

.program-card__icon {
  width: 56px;
  height: 56px;
  border-radius: 18px;
  background: rgba(15,46,140,0.12);
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
}

.program-card h5 {
  font-size: 20px;
  font-weight: 700;
  margin: 0;
  color: var(--color-dark);
}

.program-card p {
  font-size: 15px;
  color: var(--color-text-secondary);
  margin: 0;
  line-height: 1.6;
}

.program-card__bullets {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.program-card__bullets li {
  font-size: 14px;
  color: var(--color-text-secondary);
  padding-left: 20px;
  position: relative;
}

.program-card__bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-secondary);
}

section.programs-experiences {
  padding: 110px 0;
  background: linear-gradient(160deg, rgba(15,46,140,0.05) 0%, rgba(255,255,255,0.95) 100%);
}

.programs-experiences__intro h3 {
  font-size: 34px;
  line-height: 1.25;
  color: var(--color-dark);
  margin-bottom: 16px;
}

.programs-experiences__intro p {
  font-size: 16px;
  color: var(--color-text-secondary);
  margin-bottom: 40px;
}

.programs-experiences__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 28px;
}

.program-experience {
  background: #ffffff;
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 24px 48px rgba(15,46,140,0.14);
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.program-experience__media img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}

.program-experience__body {
  padding: 30px 26px;
  display: grid;
  gap: 14px;
}

.program-experience__eyebrow {
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-primary);
  font-weight: 600;
}

.program-experience__body h4 {
  font-size: 22px;
  color: var(--color-dark);
  margin: 0;
}

.program-experience__body p {
  margin: 0;
  font-size: 15px;
  color: var(--color-text-secondary);
}

.program-experience__body ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
}

.program-experience__body li {
  font-size: 14px;
  color: var(--color-text-secondary);
  padding-left: 18px;
  position: relative;
  line-height: 1.5;
}

.program-experience__body li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-primary);
}

section.programs-panels {
  padding: 110px 0 120px;
  background: var(--color-bg);
}

.program-panel {
  border-radius: 24px;
  overflow: hidden;
  background: linear-gradient(150deg, rgba(255,255,255,1) 0%, rgba(248,248,248,0.9) 100%);
  box-shadow: 0 20px 40px rgba(15,46,140,0.12);
  transition: transform .3s ease, box-shadow .3s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.program-panel:hover {
  transform: translateY(-6px);
  box-shadow: 0 28px 58px rgba(15,46,140,0.16);
}

.program-panel__media img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}

.program-panel__body {
  padding: 28px 26px 32px;
  display: grid;
  gap: 14px;
}

.program-panel__body h5 {
  font-size: 20px;
  margin: 0;
  color: var(--color-dark);
}

.program-panel__body p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 15px;
}

.program-panel__body ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
}

.program-panel__body li {
  font-size: 14px;
  color: var(--color-text-secondary);
  padding-left: 18px;
  position: relative;
}

.program-panel__body li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-secondary);
}

section.programs-cta {
  padding: 110px 0 140px;
  background: linear-gradient(135deg, rgba(15,46,140,0.08) 0%, rgba(241,233,29,0.04) 80%);
}

.programs-cta__card {
  border-radius: 32px;
  background: linear-gradient(150deg, rgba(15,46,140,0.95) 0%, rgba(9,19,59,0.92) 100%);
  box-shadow: 0 30px 60px rgba(9,19,59,0.32);
  color: var(--color-bg);
  padding: 58px 64px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  flex-wrap: wrap;
}

.programs-cta__eyebrow {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--color-secondary);
  margin-bottom: 16px;
}

.programs-cta__card h3 {
  font-size: 32px;
  margin-bottom: 16px;
  color: var(--color-bg);
}

.programs-cta__card p {
  margin: 0;
  color: rgba(255,255,255,0.78);
  font-size: 15px;
  max-width: 520px;
}

.programs-cta__actions {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

/* ---------------------------------------------
   Login Modal (glassmorphism)
   --------------------------------------------- */

body.ccp-modal-open {
  overflow: hidden;
}

.ccp-login-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
  z-index: 1050;
}

.ccp-login-modal.is-visible {
  opacity: 1;
  visibility: visible;
}

.ccp-login-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(9, 19, 59, 0.6);
  backdrop-filter: blur(9px);
}

.ccp-login-modal__dialog {
  position: relative;
  width: min(420px, 100%);
  padding: 40px 44px 48px;
  border-radius: 28px;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.05));
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow: 0 30px 65px rgba(9, 19, 59, 0.4);
  backdrop-filter: blur(24px);
  color: #ffffff;
  display: flex;
  flex-direction: column;
  gap: 20px;
  z-index: 1101;
}

.ccp-login-modal__title {
  margin: 0;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-align: center;
}

.ccp-login-modal__close {
  position: absolute;
  top: 16px;
  right: 18px;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.24);
  color: #ffffff;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 18px;
  cursor: pointer;
  transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.ccp-login-modal__close:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.26);
  border-color: rgba(255, 255, 255, 0.4);
}

.ccp-login-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.ccp-login-form__group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ccp-login-form__group label {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.78);
}

.ccp-login-form__group input {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 14px;
  padding: 14px 16px;
  color: #ffffff;
  font-size: 15px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.ccp-login-form__group input::placeholder {
  color: rgba(255, 255, 255, 0.6);
}

.ccp-login-form__group input:focus {
  outline: none;
  border-color: rgba(241, 233, 29, 0.85);
  background: rgba(255, 255, 255, 0.2);
  box-shadow: 0 0 0 2px rgba(241, 233, 29, 0.28);
}

.ccp-login-form__actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ccp-login-form__submit,
.ccp-login-form__recover {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 14px 18px;
  border-radius: 30px;
  font-weight: 600;
  font-size: 15px;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
  text-decoration: none;
}

.ccp-login-form__submit {
  border: none;
  background: linear-gradient(135deg, var(--color-secondary), #fff38c);
  color: var(--color-dark);
  box-shadow: 0 14px 32px rgba(241, 233, 29, 0.32);
}

.ccp-login-form__submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 42px rgba(241, 233, 29, 0.36);
  background: linear-gradient(135deg, #fff59f, var(--color-secondary));
}

.ccp-login-form__recover {
  border: 1px solid rgba(255, 255, 255, 0.5);
  background: rgba(15, 46, 140, 0.35);
  color: #ffffff;
}

.ccp-login-form__recover:hover {
  transform: translateY(-1px);
  background: rgba(15, 46, 140, 0.5);
  box-shadow: 0 14px 32px rgba(9, 19, 59, 0.35);
}

.ccp-login-modal__dialog:focus-within {
  border-color: rgba(241, 233, 29, 0.6);
}

@media (max-width: 520px) {
  .ccp-login-modal__dialog {
    padding: 34px 28px 38px;
    border-radius: 24px;
  }

  .ccp-login-modal__title {
    font-size: 24px;
  }
}

.header-area .main-nav .nav .login-modal-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  border-radius: 32px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff !important;
  font-weight: 600;
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.header-area .main-nav .nav .login-modal-trigger:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.48);
  transform: translateY(-2px);
}

.background-header .main-nav .nav .login-modal-trigger {
  /* Mantener mismo look del estado base (sin cambiar por background-header) */
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.32);
}

/* hover nativo neutralizado más abajo; usamos .is-hover para intención */

/* Evita animación de hover del botón al estar desplazando */
.is-scrolling .header-area .main-nav .nav .login-modal-trigger:hover {
  transform: none;
}
/* Neutraliza por completo el estado hover durante scroll (ambos fondos de header) */
.is-scrolling .header-area .main-nav .nav .login-modal-trigger,
.is-scrolling .header-area .main-nav .nav .login-modal-trigger:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.32);
}
.is-scrolling .background-header .main-nav .nav .login-modal-trigger,
.is-scrolling .background-header .main-nav .nav .login-modal-trigger:hover {
  background: rgba(15, 46, 140, 0.12);
  border-color: rgba(15, 46, 140, 0.28);
}
/* Opcional: evita eventos durante el scroll para que no reaccione al ratón */
.is-scrolling .header-area .main-nav .nav .login-modal-trigger { pointer-events: none; }

/* Login button: sustituimos :hover por una clase de intención (.is-hover)
   para evitar activación accidental al hacer scroll. */
/* 1) Neutraliza el :hover nativo del botón (después de las reglas anteriores) */
.header-area .main-nav .nav li .login-modal-trigger:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.32);
  transform: none;
}
.background-header .main-nav .nav li .login-modal-trigger:hover {
  background: rgba(15, 46, 140, 0.12);
  border-color: rgba(15, 46, 140, 0.28);
  transform: none;
}
/* 2) Estilo de hover solo cuando el JS aplica .is-hover */
.header-area .main-nav .nav .login-modal-trigger.is-hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.48);
  transform: translateY(-2px);
}
.background-header .main-nav .nav .login-modal-trigger.is-hover {
  background: rgba(15, 46, 140, 0.2);
  border-color: rgba(15, 46, 140, 0.42);
}
.curriculum-heading h6 {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 12px;
  font-weight: 700;
  color: var(--color-secondary);
  margin-bottom: 10px;
}

.curriculum-heading h4 {
  font-size: 32px;
  margin-bottom: 40px;
  color: var(--color-dark);
}

/* --------------------------------------------------
   Admission page
-------------------------------------------------- */
.ccp-admission-body {
  min-height: 100vh;
  margin: 0;
  font-family: var(--font-family, "Poppins", Arial, sans-serif);
  color: var(--color-text);
  background: radial-gradient(circle at -15% -20%, rgba(241,233,29,0.22) 0%, rgba(241,233,29,0) 55%),
              linear-gradient(135deg, #f7f9ff 0%, #eef2ff 100%);
}

.admission-preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(252,253,255,0.92);
  display: flex;
  align-items: center;
  justify-content: center;
}

.admission-shell {
  min-height: 100vh;
  padding: clamp(48px, 6vw, 96px) clamp(12px, 4vw, 40px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.admission-grid {
  width: 100%;
  max-width: 1400px;
  display: grid;
  grid-template-columns: minmax(320px, 420px) minmax(0, 1fr);
  align-items: start;
  gap: clamp(28px, 5vw, 48px);
}

.page-subtitle {
  text-align: center !important;
}

.admission-overview {
  background: rgba(255,255,255,0.88);
  padding: clamp(28px, 4.5vw, 42px);
  display: grid;
  gap: 22px;
  backdrop-filter: blur(10px);
}

.admission-overview__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: rgba(15,46,140,0.1);
  color: var(--color-primary);
  border-radius: 999px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 11px;
}

.admission-overview__title {
  margin: 0;
  font-size: clamp(26px, 2.6vw, 32px);
  color: var(--color-dark);
  line-height: 1.25;
}

.admission-overview__description {
  margin: 0;
  font-size: 15px;
  color: var(--color-text-secondary);
  line-height: 1.7;
}

.admission-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 16px;
}

.admission-steps li {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 16px 18px;
  border: 1px solid rgba(15,46,140,0.12);
  border-radius: 18px;
  background: rgba(255,255,255,0.72);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.3);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.admission-steps li.is-active {
  border-color: rgba(15,46,140,0.4);
  box-shadow: 0 18px 34px rgba(15,46,140,0.18);
  transform: translateY(-3px);
  background: rgba(15,46,140,0.08);
}

.admission-steps__index {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--color-primary), #2b4ac7);
  color: #ffffff;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
}

.admission-steps li strong {
  display: block;
  font-size: 14px;
  color: var(--color-dark);
}

.admission-steps li p {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.admission-meta {
  border-top: 1px solid rgba(15,46,140,0.14);
  padding-top: 18px;
  display: grid;
  gap: 10px;
}

.admission-meta__title {
  margin: 0;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--color-secondary);
}

.admission-meta__text {
  margin: 0;
  font-size: 14px;
  color: var(--color-text-secondary);
  line-height: 1.6;
}

.admission-meta__text a {
  color: var(--color-primary);
  font-weight: 600;
}

.admission-meta__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border-radius: 14px;
  border: 1px solid rgba(15,46,140,0.18);
  background: rgba(15,46,140,0.08);
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: none;
  width: fit-content;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.admission-meta__cta:hover {
  transform: translateY(-2px);
  background: rgba(15,46,140,0.14);
  box-shadow: 0 14px 28px rgba(15,46,140,0.16);
}

.admission-panel {
  background: #ffffff;
  border-radius: 36px;
  padding: clamp(22px, 5vw, 38px);
  border: 1px solid rgba(15,46,140,0.1);
  box-shadow: 0 36px 74px rgba(9,19,59,0.18);
  display: grid;
  align-content: start;
  gap: 26px;
}

.admission-panel__header {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.admission-panel__step {
  width: 58px;
  height: 58px;
  border-radius: 18px;
  background: linear-gradient(135deg, var(--color-secondary), #fff59f);
  color: var(--color-dark);
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 22px 44px rgba(241,233,29,0.32);
}

.admission-panel__title {
  margin: 0;
  font-size: clamp(24px, 2.6vw, 30px);
  color: var(--color-dark);
  line-height: 1.25;
}

.admission-panel__subtitle {
  margin: 6px 0 0;
  font-size: 14px;
  color: var(--color-text-secondary);
  line-height: 1.6;
}

.admission-confirmation {
  padding: 50px 0 70px;
}

.admission-confirmation__card {
  background: #ffffff;
  border: 1px solid rgba(15,46,140,0.1);
  border-radius: 20px;
  box-shadow: 0 28px 60px rgba(9,19,59,0.16);
  padding: 32px 30px;
  display: grid;
  gap: 16px;
}

.admission-confirmation__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(24,144,65,0.12);
  color: #138a3d;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admission-confirmation__title {
  margin: 8px 0 6px;
  font-size: 26px;
  color: var(--color-dark);
  line-height: 1.3;
}

.admission-confirmation__lead {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 16px;
  line-height: 1.6;
}

.admission-confirmation__body {
  display: grid;
  gap: 12px;
}

.admission-confirmation__list {
  margin: 0;
  padding-left: 18px;
  color: var(--color-text-secondary);
  display: grid;
  gap: 10px;
  font-size: 15px;
  line-height: 1.6;
}

.admission-confirmation__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.admission-confirmation__btn {
  padding: 10px 20px;
  border-radius: 999px;
  font-weight: 600;
}

.admission-confirmation__link {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: none;
}

.admission-confirmation__link:hover {
  text-decoration: underline;
}

.admission-form {
  display: grid;
  gap: 26px;
}

.admission-form__grid {
  display: grid;
  gap: 22px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.admission-form__field {
  display: grid;
  gap: 8px;
}

.admission-form__field--full {
  grid-column: 1 / -1;
}

.admission-form__label {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 12px;
  font-weight: 600;
  color: rgba(15,46,140,0.68);
  margin: 0;
}

.admission-form__input {
  border-radius: 14px;
  border: 1px solid rgba(15,46,140,0.18);
  background: rgba(255,255,255,0.96);
  padding: 12px 14px;
  font-size: 15px;
  line-height: 1.45;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.admission-form__input:focus {
  border-color: rgba(15,46,140,0.45);
  box-shadow: 0 0 0 3px rgba(15,46,140,0.16);
  outline: none;
}

.admission-form__field.is-invalid .admission-form__input {
  border-color: rgba(199,57,57,0.8);
  box-shadow: 0 0 0 3px rgba(199,57,57,0.18);
}

.admission-form__feedback {
  font-size: 13px;
}

.admission-form__hint {
  margin: 4px 0 0;
  font-size: 12px;
  color: var(--color-text-secondary);
}

.admission-form__field .dropify-wrapper {
  border-radius: 18px;
  border-color: var(--color-border);
  background: #f8f9ff;
}

.admission-upload {
  border: 1px dashed rgba(15,46,140,0.28);
  border-radius: 18px;
  padding: 20px 18px;
  background: rgba(15,46,140,0.04);
  display: grid;
  gap: 10px;
}

.admission-upload__label {
  margin: 0;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-dark);
}

.admission-upload__hint {
  margin: 0;
  font-size: 13px;
  color: var(--color-text-secondary);
}

.admission-verification {
  display: grid;
  gap: 10px;
}

.admission-verification__label {
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(15,46,140,0.68);
  margin: 0;
}

.admission-verification__captcha {
  transform: scale(0.88);
  transform-origin: 0 0;
}

.admission-form__footer {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}

.admission-form__note {
  font-size: 13px;
  color: var(--color-text-secondary);
  max-width: 360px;
}

.admission-form__actions {
  display: flex;
  justify-content: flex-end;
}

.admission-form__submit {
  min-width: 220px;
  padding: 13px 22px;
  font-weight: 600;
  border-radius: 16px;
  border: none;
  background: linear-gradient(135deg, var(--color-primary), #2b4ac7);
  color: #ffffff;
  box-shadow: 0 18px 42px rgba(15,46,140,0.22);
  transition: transform .2s ease, box-shadow .2s ease;
}

.admission-form__submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 54px rgba(15,46,140,0.28);
}

.admission-toast-layer {
  min-height: 100vh;
  padding: clamp(60px, 10vw, 120px) clamp(18px, 6vw, 56px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.admission-toast {
  display: grid;
  gap: 10px;
  max-width: 440px;
  padding: 28px 30px;
  border-radius: 26px;
  background: linear-gradient(160deg, rgba(255,255,255,0.98) 0%, rgba(244,248,255,0.94) 100%);
  box-shadow: 0 32px 60px rgba(15,46,140,0.18);
  border: 1px solid rgba(15,46,140,0.12);
}

.admission-toast__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(15,46,140,0.12);
  color: var(--color-primary);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 11px;
}

.admission-toast__title {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-dark);
}

.admission-toast__text {
  margin: 0;
  font-size: 14px;
  color: var(--color-text-secondary);
  line-height: 1.6;
}

.admission-toast__link {
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  width: fit-content;
}

.admission-toast__link:hover {
  text-decoration: underline;
}

@media (max-width: 1024px) {
  .admission-grid {
    grid-template-columns: 1fr;
  }
  .admission-overview {
    order: 2;
  }
  .admission-panel {
    order: 1;
  }
}

@media (max-width: 768px) {
  .admission-shell {
    padding: 56px 18px;
  }
  .admission-panel {
    padding: 30px 26px;
  }
  .admission-panel__header {
    flex-direction: column;
    gap: 12px;
  }
  .admission-form__footer {
    flex-direction: column;
    align-items: stretch;
  }
  .admission-form__submit {
    width: 100%;
  }
  .admission-meta__cta {
    justify-content: center;
  }
}

@media (max-width: 575px) {
  .admission-overview {
    padding: 26px 24px;
  }
  .admission-overview__title {
    font-size: 24px;
  }
  .admission-steps__index {
    width: 34px;
    height: 34px;
    font-size: 13px;
  }
  .admission-panel__step {
    width: 52px;
    height: 52px;
  }
  .admission-toast {
    padding: 24px;
  }
  .admission-toast-layer {
    padding: 48px 18px;
  }
}

/* --------------------------------------------------
   Auth screens
-------------------------------------------------- */
.ccp-auth-body {
  min-height: 100vh;
  margin: 0;
  background: var(--color-surface);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 16px;
  font-family: var(--font-family, "Poppins", Arial, sans-serif);
  color: var(--color-text);
}

.ccp-auth-body.ccp-auth-body--rtl {
  direction: rtl;
}

.auth-layout {
  width: 100%;
  max-width: 440px;
  display: grid;
  gap: 26px;
  text-align: center;
}

.auth-header {
  display: grid;
  gap: 10px;
}

.auth-header__logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-weight: 700;
  font-size: 20px;
  color: var(--color-primary);
  text-decoration: none;
}

.auth-header__logo img {
  height: 52px;
  width: auto;
  object-fit: contain;
}

.auth-header__subtitle {
  margin: 0;
  font-size: 15px;
  color: var(--color-text-secondary);
}

.auth-card {
  padding: 34px 32px;
  text-align: left;
  display: grid;
  gap: 24px;
}

.auth-card__title {
  margin: 0;
  font-size: 26px;
  line-height: 1.35;
  color: var(--color-dark);
}

.auth-card__description {
  margin: 0;
  font-size: 15px;
  color: var(--color-text-secondary);
  line-height: 1.7;
}

.auth-form {
  display: grid;
  gap: 18px;
}

.auth-form .form-label {
  font-weight: 600;
  font-size: 14px;
  color: var(--color-dark);
}

.auth-form .form-control {
  border-radius: 12px;
  border: 1px solid var(--color-border);
  padding: 12px 14px;
  font-size: 15px;
  line-height: 1.4;
  color: var(--color-text);
  background: #ffffff;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.auth-form .form-control:focus {
  border-color: rgba(15,46,140,0.45);
  box-shadow: 0 0 0 3px rgba(15,46,140,0.12);
  outline: none;
}

.auth-form .btn {
  border-radius: 12px;
  padding: 12px 16px;
  font-weight: 600;
  font-size: 15px;
}

.auth-form .btn-primary {
  background: var(--color-primary);
  border-color: var(--color-primary);
}

.auth-form .btn-primary:hover,
.auth-form .btn-primary:focus {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
}

.auth-form .btn-link {
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
}

.auth-form .btn-link:hover {
  color: var(--color-primary-hover);
  text-decoration: underline;
}

.auth-feedback {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
}

.auth-actions {
  display: grid;
  gap: 12px;
}

.auth-actions .btn {
  width: 100%;
}

@media (max-width: 575px) {
  .auth-card {
    padding: 28px 24px;
  }

  .auth-card__title {
    font-size: 24px;
  }
}
.stage-card{
  background: rgba(255,255,255,0.97);
  border-radius:22px;
  border:1px solid rgba(28,33,50,.08);
  padding:1.6rem;
  display:flex;
  flex-direction:column;
  gap:1rem;
  position:relative;
  overflow:hidden;
  color:#0c1c3d;
  box-shadow: 0 20px 45px rgba(10,24,51,.08);
}
.stage-card__body h4{
  color:#1b1b1f;
}
.stage-card__body p{
  color:#1b1b1f;
}

/* Tamaño unificado para etiquetas tipo eyebrow */
.about-us__eyebrow,
.ccc-features__eyebrow,
.faq-section__eyebrow,
.history-section__eyebrow,
.contact-overview__eyebrow,
.academic-hero__eyebrow,
.curriculum-panel__eyebrow,
.academic-section__eyebrow,
.academic-stats__eyebrow,
.programs-hero__eyebrow,
.curriculum-card__eyebrow,
.programs-stats__eyebrow,
.program-experience__eyebrow,
.programs-cta__eyebrow {
  font-size: 20px;
}

/* Sombra desactivada para superficies que no son botones */
body section,
body article,
body aside,
body header,
body footer,
body main,
body nav,
body div,
body figure {
  box-shadow: none !important;
}

.header-area,
.header-meta__bar,
.header-info__social a,
.events-filters,
section.events .event-card,
section.news-grid .news-card,
section.admission-details .detail-card,
section.highlights .highlight-card,
.glass-card,
.surface-card,
[class*="card"],
.programs-hero__card,
.programs-cta__card,
.programs-stats__card,
.program-card,
.academic-hero__card,
.academic-card,
.olympiad-card,
.academic-stats__card,
.auth-card,
.stage-card {
  box-shadow: none !important;
}

[class*="card"]::before,
[class*="card"]::after,
section.events .event-card::before,
section.events .event-card__image::after,
.glass-card::before,
.glass-card::after,
.surface-card::before,
.surface-card::after {
  box-shadow: none !important;
}

.swiper-button-next { right: 16px; }
.swiper-button-prev { left: 16px; }