/* ============================================================
   EDULINK IES — Sitio Web Público v3
   Diseño 2025 — Tipografía editorial, radius ≤7px, SVG puro
   Los colores y variables vienen de web-theme.css (Theme Manager)
   LinkUpTec — Marzo 2026
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html  { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body  { font-family: var(--font); color: var(--text); background: #fff; line-height: 1.6; }
a     { color: var(--primary); text-decoration: none; }
img   { max-width: 100%; height: auto; display: block; }
input, textarea, select, button { font-family: inherit; }

:root {
    --white:      #ffffff;
    --text-l:     #94A3B8;
    --text-muted: #94A3B8;
    --border:     #E2E8F0;
    --border-l:   #F1F5F9;
    --shadow-xs:  0 1px 3px rgba(0,0,0,.06);
    --shadow-sm:  0 2px 8px rgba(0,0,0,.07);
    --shadow:     0 4px 16px rgba(0,0,0,.09);
    --shadow-lg:  0 8px 32px rgba(0,0,0,.12);
    --r:    7px;
    --r-sm: 4px;
    --r-lg: 7px;
}

/* UTILIDADES */
.container    { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.container-sm { max-width: 840px;  margin: 0 auto; padding: 0 24px; }
.text-gradient {
    background: linear-gradient(90deg, var(--primary) 0%, var(--teal) 100%);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

/* ANIMACIONES */
@keyframes fadeUp  { from { opacity:0; transform:translateY(14px) } to { opacity:1; transform:none } }
@keyframes fadeIn  { from { opacity:0 } to { opacity:1 } }
@keyframes pulse   { 0%,100%{opacity:1} 50%{opacity:.5} }
.anim-up   { animation: fadeUp .5s ease both; }
.anim-up-1 { animation: fadeUp .5s .08s ease both; }
.anim-up-2 { animation: fadeUp .5s .16s ease both; }
.anim-up-3 { animation: fadeUp .5s .24s ease both; }

/* TOPBAR */
.web-topbar { background:var(--primary-d); padding:7px 0; font-size:.73rem; color:rgba(255,255,255,.5); }
.web-topbar .container { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.topbar-links { display:flex; gap:16px; align-items:center; }
.topbar-links a { color:rgba(255,255,255,.5); transition:color .12s; }
.topbar-links a:hover { color:rgba(255,255,255,.9); }
.topbar-badge { background:var(--accent); color:#0a1828; font-weight:800; font-size:.68rem; padding:2px 9px; border-radius:var(--r-sm); letter-spacing:.04em; text-transform:uppercase; }

/* HEADER */
.web-header { background:rgba(8,18,36,.95); backdrop-filter:blur(20px) saturate(180%); -webkit-backdrop-filter:blur(20px) saturate(180%); border-bottom:1px solid rgba(255,255,255,.06); position:sticky; top:0; z-index:100; transition:background .25s; }
.web-header.scrolled { background:rgba(5,12,26,.98); box-shadow:0 1px 0 rgba(255,255,255,.05),0 4px 24px rgba(0,0,0,.3); }
.web-header .container { display:flex; align-items:center; justify-content:space-between; min-height:60px; gap:16px; }
.header-brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:white; flex-shrink:0; }
.brand-logo-wrap { width:36px; height:36px; background:var(--primary-l); border-radius:var(--r); display:flex; align-items:center; justify-content:center; flex-shrink:0; overflow:hidden; }
.brand-logo-wrap img { width:100%; height:100%; object-fit:cover; }
.brand-siglas { font-size:.95rem; font-weight:900; color:white; letter-spacing:-.02em; }
.brand-name   { font-size:.58rem; color:rgba(255,255,255,.4); font-weight:500; line-height:1.3; max-width:140px; }

/* NAV */
.web-nav { display:flex; align-items:center; list-style:none; }
.web-nav > li { position:relative; }
.web-nav > li > a { display:flex; align-items:center; gap:4px; padding:0 12px; height:60px; font-size:.78rem; font-weight:600; color:rgba(255,255,255,.6); transition:color .12s; white-space:nowrap; position:relative; text-decoration:none; }
.web-nav > li > a::after { content:''; position:absolute; bottom:0; left:12px; right:12px; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .18s; }
.web-nav > li > a:hover { color:white; }
.web-nav > li > a:hover::after { transform:scaleX(1); }
.web-nav > li.active > a { color:white; }
.web-nav > li.active > a::after { transform:scaleX(1); }
.nav-chevron { width:12px; height:12px; opacity:.5; transition:transform .18s,opacity .18s; flex-shrink:0; }
.web-nav > li:hover .nav-chevron { transform:rotate(180deg); opacity:.8; }

/* DROPDOWN */
.web-nav > li .dropdown { visibility:hidden; opacity:0; position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%) translateY(-6px); background:white; border-radius:var(--r); box-shadow:0 16px 48px rgba(0,0,0,.16),0 0 0 1px rgba(0,0,0,.05); min-width:200px; z-index:300; transition:opacity .15s,transform .15s,visibility .15s; overflow:hidden; }
.web-nav > li:hover .dropdown, .web-nav > li:focus-within .dropdown { visibility:visible; opacity:1; transform:translateX(-50%) translateY(0); }
.web-nav > li .dropdown::after { content:''; position:absolute; top:-10px; left:0; right:0; height:10px; }
.dropdown a { display:flex; align-items:center; gap:8px; padding:10px 16px; font-size:.78rem; font-weight:600; color:#1E293B; border-bottom:1px solid #F1F5F9; transition:background .1s,padding-left .1s; text-decoration:none; }
.dropdown a:last-child { border-bottom:none; }
.dropdown a:hover { background:#F8FAFC; padding-left:20px; }
.dropdown-dot { width:5px; height:5px; border-radius:50%; background:var(--teal); flex-shrink:0; opacity:0; transition:opacity .1s; }
.dropdown a:hover .dropdown-dot { opacity:1; }

/* CTA HEADER */
.btn-cta-header { background:var(--accent); color:#0a1828!important; padding:8px 16px!important; height:auto!important; border-radius:var(--r)!important; font-weight:800!important; font-size:.76rem!important; letter-spacing:.01em; transition:background .12s,transform .12s!important; white-space:nowrap; }
.btn-cta-header:hover { background:var(--accent-l)!important; transform:translateY(-1px)!important; color:#0a1828!important; }
.btn-cta-header::after { display:none!important; }

/* HAMBURGER */
.nav-toggle { display:none; background:none; border:1px solid rgba(255,255,255,.15); cursor:pointer; padding:6px 9px; color:white; border-radius:var(--r); transition:background .12s; }
.nav-toggle:hover { background:rgba(255,255,255,.07); }
.nav-toggle svg { display:block; }

/* SLIDER HTML */
.slider-html-content { position:absolute; inset:0; z-index:2; overflow:hidden; isolation:isolate; }
.slider-html-content > div { width:100%!important; height:100%!important; max-width:100%!important; min-height:100%!important; box-sizing:border-box!important; overflow:hidden!important; }

/* HERO */
.web-hero { position:relative; min-height:560px; background:linear-gradient(135deg,var(--primary-d) 0%,#1A3C5E 50%,#0c3460 100%); display:flex; align-items:center; overflow:hidden; }
.web-hero::before { content:''; position:absolute; inset:0; pointer-events:none; background-image:radial-gradient(circle,rgba(255,255,255,.05) 1px,transparent 1px); background-size:32px 32px; }
.web-hero::after  { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(135deg,transparent 55%,rgba(14,165,233,.04) 100%); }
.hero-blob { display:none; }

.hero-grid { display:grid; grid-template-columns:1fr auto; gap:48px; align-items:center; position:relative; z-index:1; padding:64px 0; }
.hero-tag { display:inline-flex; align-items:center; gap:7px; background:rgba(14,165,233,.1); border:1px solid rgba(14,165,233,.2); color:var(--teal); font-size:.71rem; font-weight:700; padding:5px 12px; border-radius:var(--r-sm); margin-bottom:16px; letter-spacing:.06em; text-transform:uppercase; }
.hero-tag-dot { width:5px; height:5px; background:var(--teal); border-radius:50%; animation:pulse 2s infinite; }
.hero-title { font-size:clamp(1.9rem,3.8vw,2.9rem); font-weight:900; color:white; line-height:1.1; letter-spacing:-.04em; margin-bottom:16px; }
.hero-title .highlight { background:linear-gradient(90deg,var(--accent) 0%,var(--accent-l) 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.hero-desc { font-size:.92rem; color:rgba(255,255,255,.6); margin-bottom:28px; max-width:480px; line-height:1.75; }
.hero-actions { display:flex; gap:10px; flex-wrap:wrap; }
.btn-hero-primary { display:inline-flex; align-items:center; gap:7px; background:var(--accent); color:#0a1828; font-weight:800; font-size:.85rem; padding:12px 22px; border-radius:var(--r); transition:background .12s,transform .12s; }
.btn-hero-primary:hover { background:var(--accent-l); transform:translateY(-1px); color:#0a1828; }
.btn-hero-ghost { display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18); color:white; font-weight:600; font-size:.85rem; padding:11px 20px; border-radius:var(--r); transition:background .12s,transform .12s; }
.btn-hero-ghost:hover { background:rgba(255,255,255,.12); transform:translateY(-1px); color:white; }
.hero-stats { display:flex; gap:28px; margin-top:32px; flex-wrap:wrap; }
.hero-stat-num { font-size:1.5rem; font-weight:900; color:white; line-height:1; }
.hero-stat-lbl { font-size:.68rem; color:rgba(255,255,255,.4); margin-top:2px; }

.hero-card { background:rgba(255,255,255,.06); backdrop-filter:blur(16px); border:1px solid rgba(255,255,255,.1); border-radius:var(--r); padding:20px; min-width:240px; flex-shrink:0; }
.hero-card-title { font-size:.67rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.4); margin-bottom:12px; }
.prog-chip { display:flex; align-items:center; gap:10px; padding:8px 10px; background:rgba(255,255,255,.05); border-radius:var(--r-sm); margin-bottom:6px; border:1px solid rgba(255,255,255,.05); transition:background .12s; }
.prog-chip:hover { background:rgba(255,255,255,.09); }
.prog-chip-ico { width:28px; height:28px; flex-shrink:0; color:var(--teal); }
.prog-chip-nombre { font-size:.76rem; font-weight:700; color:white; }
.prog-chip-sem    { font-size:.63rem; color:rgba(255,255,255,.38); }

/* WAVE */
.wave-sep { display:block; width:100%; overflow:hidden; line-height:0; }
.wave-sep svg { display:block; }

/* SECCIÓN */
.web-section { padding:64px 0; }
.web-section.bg-gray { background:var(--bg); }
.web-section.bg-dark { background:var(--primary-d); }
.section-header { text-align:center; margin-bottom:44px; }
.section-pill { display:inline-flex; align-items:center; gap:5px; background:rgba(14,165,233,.08); border:1px solid rgba(14,165,233,.15); color:var(--teal); font-size:.69rem; font-weight:700; padding:4px 12px; border-radius:var(--r-sm); letter-spacing:.07em; text-transform:uppercase; margin-bottom:10px; }
.section-title { font-size:clamp(1.5rem,2.8vw,2rem); font-weight:900; letter-spacing:-.035em; color:var(--text); line-height:1.15; }
.section-sub { font-size:.88rem; color:var(--text-m); margin-top:10px; max-width:520px; margin-left:auto; margin-right:auto; }
.bg-dark .section-title { color:white; }
.bg-dark .section-sub { color:rgba(255,255,255,.55); }

/* PROGRAMAS */
.grid-programas { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:16px; }
.prog-card { background:white; border-radius:var(--r); border:1px solid var(--border); overflow:hidden; box-shadow:var(--shadow-xs); transition:box-shadow .2s,transform .2s,border-color .2s; display:flex; flex-direction:column; }
.prog-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); border-color:var(--primary); }
.prog-card-header { height:110px; display:flex; align-items:center; justify-content:center; background:var(--bg); border-bottom:1px solid var(--border); overflow:hidden; flex-shrink:0; }
.prog-card-header svg { width:40px; height:40px; color:var(--primary); }
.prog-card-body { padding:16px 18px; flex:1; display:flex; flex-direction:column; }
.prog-card-nombre { font-size:.88rem; font-weight:800; margin-bottom:4px; line-height:1.3; color:var(--text); }
.prog-card-nivel  { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--text-l); margin-bottom:8px; }
.prog-card-desc   { font-size:.78rem; color:var(--text-m); flex:1; line-height:1.6; }
.prog-card-meta   { display:flex; gap:6px; margin-top:12px; padding-top:12px; border-top:1px solid var(--border-l); flex-wrap:wrap; }
.prog-tag { background:var(--bg); color:var(--text-m); font-size:.65rem; font-weight:700; padding:2px 8px; border-radius:var(--r-sm); border:1px solid var(--border); }
.btn-prog-ver { display:flex; align-items:center; justify-content:center; gap:5px; margin-top:12px; padding:9px; border-radius:var(--r); background:var(--primary); color:white; font-weight:700; font-size:.78rem; transition:background .12s; }
.btn-prog-ver:hover { background:var(--primary-l); color:white; }

/* STATS */
.stats-strip { background:var(--primary-d); padding:48px 0; position:relative; overflow:hidden; }
.stats-strip::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(90deg,transparent,transparent 80px,rgba(255,255,255,.02) 80px,rgba(255,255,255,.02) 81px); }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; z-index:1; }
.stat-item { text-align:center; padding:20px; border-right:1px solid rgba(255,255,255,.06); }
.stat-item:last-child { border-right:none; }
.stat-num { font-size:2.6rem; font-weight:900; letter-spacing:-.04em; line-height:1; color:var(--accent); }
.stat-lbl { font-size:.74rem; color:rgba(255,255,255,.45); margin-top:5px; }

/* NOTICIAS */
.grid-noticias { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:16px; }
.noticia-card { background:white; border-radius:var(--r); overflow:hidden; border:1px solid var(--border); box-shadow:var(--shadow-xs); display:flex; flex-direction:column; transition:box-shadow .2s,transform .2s; }
.noticia-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.noticia-img { height:180px; overflow:hidden; background:var(--bg); position:relative; }
.noticia-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.noticia-card:hover .noticia-img img { transform:scale(1.04); }
.noticia-img-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:var(--text-l); }
.noticia-cat { position:absolute; bottom:10px; left:12px; font-size:.63rem; font-weight:800; padding:3px 9px; border-radius:var(--r-sm); color:white; letter-spacing:.04em; }
.noticia-body { padding:16px 18px; flex:1; display:flex; flex-direction:column; }
.noticia-fecha { font-size:.68rem; color:var(--text-l); margin-bottom:7px; display:flex; align-items:center; gap:5px; }
.noticia-titulo { font-size:.87rem; font-weight:800; color:var(--text); line-height:1.4; margin-bottom:7px; flex:1; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.noticia-resumen { font-size:.75rem; color:var(--text-m); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.noticia-link { display:inline-flex; align-items:center; gap:4px; font-size:.75rem; font-weight:700; color:var(--teal); margin-top:10px; transition:gap .12s; }
.noticia-link:hover { gap:8px; color:var(--teal); }

/* ADMISIÓN BANNER */
.admision-banner { background:var(--primary); border-radius:var(--r); padding:40px 44px; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.admision-banner::before { content:''; position:absolute; top:0; right:0; bottom:0; width:40%; pointer-events:none; background:repeating-linear-gradient(135deg,rgba(255,255,255,.03) 0px,rgba(255,255,255,.03) 1px,transparent 1px,transparent 20px); }
.admision-banner-txt { position:relative; z-index:1; }
.admision-banner-txt h2 { font-size:1.6rem; font-weight:900; color:white; margin-bottom:6px; letter-spacing:-.03em; }
.admision-banner-txt p { color:rgba(255,255,255,.65); font-size:.86rem; }
.btn-admision { background:var(--accent); color:#0a1828; font-weight:800; font-size:.85rem; padding:12px 24px; border-radius:var(--r); display:inline-flex; align-items:center; gap:7px; position:relative; z-index:1; transition:background .12s,transform .12s; white-space:nowrap; }
.btn-admision:hover { background:var(--accent-l); transform:translateY(-1px); color:#0a1828; }

/* GALERÍA */
.galeria-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.galeria-item { border-radius:var(--r); overflow:hidden; aspect-ratio:4/3; position:relative; cursor:pointer; }
.galeria-item img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.galeria-item:hover img { transform:scale(1.05); }
.galeria-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 55%); display:flex; align-items:flex-end; padding:12px; opacity:0; transition:opacity .2s; }
.galeria-item:hover .galeria-overlay { opacity:1; }
.galeria-overlay span { color:white; font-size:.75rem; font-weight:700; }

/* BOTONES */
.btn-primary  { display:inline-flex; align-items:center; gap:6px; background:var(--primary); color:white; font-weight:700; font-size:.84rem; padding:10px 20px; border-radius:var(--r); transition:background .12s,transform .12s; }
.btn-primary:hover { background:var(--primary-l); transform:translateY(-1px); color:white; }
.btn-outline  { display:inline-flex; align-items:center; gap:6px; background:transparent; color:var(--primary); font-weight:700; font-size:.84rem; padding:9px 18px; border-radius:var(--r); border:1.5px solid var(--primary); transition:background .12s,color .12s; }
.btn-outline:hover { background:var(--primary); color:white; }
.btn-secondary{ display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.1); color:white; font-weight:700; font-size:.84rem; padding:9px 18px; border-radius:var(--r); border:1px solid rgba(255,255,255,.2); transition:background .12s; }
.btn-secondary:hover { background:rgba(255,255,255,.18); color:white; }
.btn-teal     { background:var(--teal); color:white; font-weight:700; font-size:.84rem; padding:10px 20px; border-radius:var(--r); display:inline-flex; align-items:center; gap:6px; transition:background .12s,transform .12s; }
.btn-teal:hover { background:#0284c7; transform:translateY(-1px); color:white; }

/* PAGE HERO */
.page-hero { background:linear-gradient(135deg,var(--primary-d) 0%,var(--primary) 100%); padding:48px 0 40px; text-align:center; position:relative; overflow:hidden; }
.page-hero::before { content:''; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(-45deg,rgba(255,255,255,.02) 0px,rgba(255,255,255,.02) 1px,transparent 1px,transparent 24px); }
.page-hero h1 { font-size:clamp(1.5rem,3.2vw,2.2rem); font-weight:900; color:white; letter-spacing:-.04em; position:relative; }
.page-hero p  { color:rgba(255,255,255,.6); margin-top:8px; font-size:.87rem; position:relative; }

/* BREADCRUMB */
.web-breadcrumb { background:var(--bg); border-bottom:1px solid var(--border); padding:9px 0; font-size:.73rem; color:var(--text-l); }
.web-breadcrumb .container { display:flex; align-items:center; gap:6px; }
.web-breadcrumb a { color:var(--text-m); font-weight:600; transition:color .12s; }
.web-breadcrumb a:hover { color:var(--teal); }

/* NOTICIA VISTA */
.noticia-hero { height:320px; overflow:hidden; background:var(--primary-d); position:relative; }
.noticia-hero img { width:100%; height:100%; object-fit:cover; filter:brightness(.55); }
.noticia-hero-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.8) 0%,transparent 55%); display:flex; align-items:flex-end; }
.noticia-hero-content { padding:28px 32px; color:white; max-width:800px; }
.noticia-contenido { font-size:.92rem; line-height:1.85; color:var(--text); }
.noticia-contenido h2,.noticia-contenido h3 { color:var(--primary); margin:24px 0 10px; }
.noticia-contenido p { margin-bottom:14px; }
.noticia-contenido ul,.noticia-contenido ol { padding-left:20px; margin-bottom:14px; }

/* FOOTER */
.web-footer { background:var(--footer-bg,#060f1a); color:rgba(255,255,255,.55); padding:56px 0 0; position:relative; overflow:hidden; }
.web-footer::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--teal),transparent); opacity:.3; }
.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.04); }
.footer-brand-name { font-size:.9rem; font-weight:800; color:white; margin-bottom:6px; }
.footer-brand-desc { font-size:.75rem; color:rgba(255,255,255,.38); line-height:1.7; margin-bottom:16px; }
.footer-social { display:flex; gap:7px; }
.social-btn { width:32px; height:32px; background:rgba(255,255,255,.05); border-radius:var(--r-sm); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.45); transition:background .12s,color .12s; }
.social-btn:hover { background:var(--teal); color:white; }
.social-btn svg { width:15px; height:15px; }
.footer-col h4 { font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:var(--accent); margin-bottom:14px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:7px; }
.footer-col ul li a { font-size:.78rem; color:rgba(255,255,255,.45); transition:color .12s,padding-left .1s; display:flex; align-items:center; gap:5px; }
.footer-col ul li a:hover { color:white; padding-left:3px; }
.footer-contact-item { font-size:.78rem; display:flex; align-items:flex-start; gap:7px; margin-bottom:7px; color:rgba(255,255,255,.45); }
.footer-bottom { padding:16px 0; font-size:.71rem; color:rgba(255,255,255,.2); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:7px; }
.footer-bottom a { color:rgba(255,255,255,.3); transition:color .12s; }
.footer-bottom a:hover { color:var(--accent); }

/* FAB */
.fab-group { position:fixed; right:18px; bottom:72px; display:flex; flex-direction:column; gap:8px; z-index:50; }
.fab { width:42px; height:42px; border-radius:var(--r); display:flex; align-items:center; justify-content:center; background:var(--primary); color:white; box-shadow:var(--shadow); transition:background .15s,transform .15s; position:relative; }
.fab:hover { background:var(--teal); transform:scale(1.06) translateX(-3px); color:white; }
.fab svg { width:18px; height:18px; }
.fab-tooltip { position:absolute; right:50px; background:var(--primary-d); color:white; font-size:.68rem; font-weight:700; padding:4px 10px; border-radius:var(--r-sm); white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .12s; }
.fab:hover .fab-tooltip { opacity:1; }
.scroll-top { position:fixed; right:18px; bottom:20px; width:38px; height:38px; background:var(--primary); color:white; border-radius:var(--r); display:none; align-items:center; justify-content:center; cursor:pointer; border:none; box-shadow:var(--shadow); z-index:50; transition:background .12s,transform .12s; }
.scroll-top.visible { display:flex; }
.scroll-top:hover { background:var(--teal); transform:translateY(-2px); }
.scroll-top svg { width:16px; height:16px; }

/* NOTIF */
.notif-bar { background:var(--primary); padding:8px 0; font-size:.77rem; color:white; font-weight:600; text-align:center; }

/* FORMS */
.form-control { display:block; width:100%; padding:9px 12px; border:1.5px solid var(--border); border-radius:var(--r); font-size:.85rem; color:var(--text); background:white; transition:border-color .12s; outline:none; }
.form-control:focus { border-color:var(--primary); }
.form-label { display:block; font-size:.71rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-m); margin-bottom:4px; }

/* CMS CONTENT */
.cms-content { font-size:.92rem; line-height:1.85; color:var(--text); }
.cms-content h2,.cms-content h3 { color:var(--primary); margin:24px 0 10px; font-weight:800; }
.cms-content p { margin-bottom:14px; }
.cms-content ul,.cms-content ol { padding-left:20px; margin-bottom:14px; }
.cms-content li { margin-bottom:4px; }
.cms-content table { width:100%; border-collapse:collapse; margin:14px 0; }
.cms-content td,.cms-content th { border:1px solid var(--border); padding:8px 12px; }
.cms-content th { background:var(--primary); color:white; font-weight:700; }
.cms-content blockquote { border-left:3px solid var(--primary); margin:16px 0; padding:10px 16px; background:var(--bg); border-radius:0 var(--r) var(--r) 0; }
.cms-content img { border-radius:var(--r); margin:12px 0; }

/* RESPONSIVE */
@media (max-width:1024px) { .footer-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:768px) {
    .web-nav { display:none; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:rgba(5,12,26,.98); backdrop-filter:blur(20px); padding:6px 0 14px; z-index:200; border-bottom:1px solid rgba(255,255,255,.06); }
    .web-nav.open { display:flex; animation:fadeIn .18s; }
    .web-nav > li > a { padding:10px 20px; height:auto; border-bottom:1px solid rgba(255,255,255,.04); }
    .web-nav > li > a::after { display:none; }
    .web-nav > li .dropdown { visibility:visible!important; opacity:1!important; position:static; transform:none!important; background:rgba(255,255,255,.04); box-shadow:none; border-radius:0; display:none; }
    .web-nav > li.open .dropdown { display:block; }
    .web-nav > li .dropdown::before,.web-nav > li .dropdown::after { display:none; }
    .dropdown a { color:rgba(255,255,255,.6); padding-left:32px; }
    .dropdown a:hover { color:white; background:rgba(255,255,255,.04); }
    .web-header .container { position:relative; }
    .nav-toggle { display:flex; }
    .hero-grid { grid-template-columns:1fr; }
    .hero-card { display:none; }
    .hero-title { font-size:1.8rem; }
    .stats-grid { grid-template-columns:1fr 1fr; }
    .stat-item { border-right:none; border-bottom:1px solid rgba(255,255,255,.05); }
    .admision-banner { padding:24px 20px; }
    .admision-banner-txt h2 { font-size:1.3rem; }
    .galeria-grid { grid-template-columns:1fr 1fr; }
    .footer-grid { grid-template-columns:1fr; gap:24px; }
    .web-topbar .topbar-links:first-child { display:none; }
    .page-hero { padding:36px 0 32px; }
    .web-section { padding:44px 0; }
}
@media (max-width:480px) {
    .grid-programas,.grid-noticias { grid-template-columns:1fr; }
    .galeria-grid { grid-template-columns:1fr; }
    .stats-grid { grid-template-columns:1fr 1fr; }
    .hero-actions { flex-direction:column; }
    .btn-hero-primary,.btn-hero-ghost { justify-content:center; }
}
