@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap');

:root {
    --navy:      #1a3558;
    --navy-dark: #0d1f35;
    --navy-mid:  #152a43;
    --teal:      #2ec4b6;
    --accent:    #e8a020;
    --gray-100:  #f1f5f9;
    --gray-200:  #e2e8f0;
    --gray-500:  #64748b;
    --gray-800:  #1e293b;
    --font:      'Outfit', sans-serif;
    --radius:    10px;
    --shadow:    0 2px 16px rgba(0,0,0,.08);
    --shadow-lg: 0 8px 36px rgba(0,0,0,.14);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--gray-800);background:#fff;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:var(--font);cursor:pointer}
ul{list-style:none}

/* ══ TOPBAR ══ */
.topbar{background:var(--navy-dark);height:40px;width:100%}
.topbar-inner{
    max-width:1200px;margin:0 auto;padding:0 28px;
    height:100%;display:flex;align-items:center;justify-content:space-between;
}
.topbar-left{display:flex;align-items:center;gap:22px}
.topbar-right{display:flex;align-items:center;gap:7px}
.topbar-item{display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.82);font-size:12.5px;transition:color .2s}
.topbar-item strong{font-weight:700}
.topbar-item:hover{color:#fff}
.topbar-social{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;color:#fff;transition:opacity .2s}
.topbar-social:hover{opacity:.75}
.topbar-social.fb{background:#1877f2}
.topbar-social.tk{background:#010101}
.topbar-social.ig{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}
.topbar-social.yt{background:#ff0000}
.topbar-flags{display:flex;align-items:center;gap:5px;margin-left:4px}
.flag-btn{display:flex;align-items:center;border-radius:3px;overflow:hidden;opacity:.6;transition:opacity .2s;border:1.5px solid transparent;padding:1px}
.flag-btn:hover,.flag-btn.active{opacity:1;border-color:rgba(255,255,255,.4)}

/* ══ NAVBAR ══ */
.navbar{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--gray-200);transition:box-shadow .3s}
.navbar.scrolled{box-shadow:0 4px 20px rgba(0,0,0,.10)}
.navbar-inner{max-width:1200px;margin:0 auto;padding:0 28px;height:72px;display:flex;align-items:center;gap:8px}
.navbar-logo img{height:58px;width:auto}
.navbar-nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.nav-link{display:flex;align-items:center;gap:4px;padding:7px 12px;border-radius:6px;font-size:13.5px;font-weight:500;color:var(--gray-800);background:none;border:none;transition:color .18s,background .18s;white-space:nowrap}
.nav-link:hover{color:var(--navy);background:var(--gray-100)}
.nav-link.active{color:var(--teal);font-weight:600;background:none}
.nav-dropdown{position:relative}
.nav-drop-btn svg{transition:transform .2s}
.nav-dropdown:hover .nav-drop-btn svg{transform:rotate(180deg)}
.dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:210px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);border:1px solid var(--gray-200);padding:6px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:all .2s;z-index:999}
.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown-item{display:block;padding:8px 12px;border-radius:7px;font-size:13.5px;color:var(--gray-800);transition:background .15s}
.dropdown-item:hover{background:var(--gray-100);color:var(--navy)}
.navbar-hamburger{display:none;flex-direction:column;gap:5px;padding:8px;background:none;border:none;margin-left:auto}
.navbar-hamburger span{display:block;width:24px;height:2px;background:var(--navy);border-radius:2px;transition:all .3s}

/* ══ HERO — FULL WIDTH REAL ══ */
.hero {
    position: relative;
    overflow: hidden;
    /* Romper el contenedor para ir de borde a borde */
    width: 100vw;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    background: var(--navy-dark);
    line-height: 0;
}
.hero-track {
    display: flex;
    transition: transform .65s cubic-bezier(.4,0,.2,1);
    will-change: transform;
}
.hero-slide {
    min-width: 100%;
    flex-shrink: 0;
    line-height: 0;
    overflow: hidden;
}
.hero-slide img {
    width: 100%;
    height: auto;
    display: block;
    /* Sin max-height para respetar la imagen original */
}

/* Flechas */
.hero-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background: rgba(255,255,255,.15);
    border: 1.5px solid rgba(255,255,255,.3);
    color: #fff;
    width: 40px; height: 40px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: all .2s;
    backdrop-filter: blur(4px);
}
.hero-arrow:hover{background:var(--accent);border-color:var(--accent)}
.hero-arrow.prev{left:16px}
.hero-arrow.next{right:16px}

/* Dots */
.hero-dots {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 7px;
    z-index: 10;
}
.hero-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: rgba(255,255,255,.4);
    border: none;
    cursor: pointer;
    transition: all .3s;
}
.hero-dot.active{width:24px;border-radius:4px;background:var(--accent)}

/* ══ SECCIONES ══ */
.section{padding:72px 0}
.section-gray{background:var(--gray-100)}
.container{max-width:1200px;margin:0 auto;padding:0 28px}
.section-tag{display:inline-flex;align-items:center;gap:8px;font-size:10.5px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.section-tag::before{content:'';width:18px;height:2px;background:var(--accent);border-radius:2px;display:block}
.section-title{font-size:clamp(1.7rem,2.8vw,2.4rem);font-weight:700;color:var(--navy);margin-bottom:12px;line-height:1.15}
.section-lead{font-size:.975rem;color:var(--gray-500);max-width:520px;line-height:1.75}

/* ══ CARDS ══ */
.cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}
.card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--gray-200);display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.card-img{height:190px;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card:hover .card-img img{transform:scale(1.05)}
.card-body{padding:16px 18px;flex:1}
.card-title{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:4px}
.card-text{font-size:13px;color:var(--gray-500);line-height:1.55}
.card-foot{padding:14px 18px;border-top:1px solid var(--gray-100)}

/* ══ BTN ══ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 22px;border-radius:7px;font-weight:600;font-size:13.5px;transition:all .2s;border:2px solid transparent}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:#2d5a8e}
.btn-sm{padding:9px 18px;font-size:13px}
.btn-full{width:100%}

/* ══ STATS ══ */
.stats-band{background:var(--navy);padding:52px 0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;max-width:1200px;margin:0 auto;padding:0 28px}
.stat-num{font-size:2.8rem;font-weight:800;color:var(--accent);line-height:1;margin-bottom:6px}
.stat-lbl{font-size:11.5px;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:1px}

/* ══ FOOTER ══ */
.site-footer{background:var(--navy-dark);color:rgba(255,255,255,.75)}
.footer-intl{padding:28px 0;display:flex;align-items:center;justify-content:center}
.footer-intl-inner{display:flex;align-items:center;justify-content:center}
.footer-intl-img{height:64px;width:auto}
.footer-line{height:2px;background:linear-gradient(90deg,transparent 0%,var(--teal) 15%,var(--teal) 85%,transparent 100%);opacity:.45;margin:0 28px}
.footer-main{padding:48px 0 40px}
.footer-grid{max-width:1200px;margin:0 auto;padding:0 28px;display:grid;grid-template-columns:1fr 1.4fr 1fr 1.2fr;gap:40px}
.footer-heading{font-size:11.5px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;margin-bottom:20px}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-links a{font-size:13.5px;color:rgba(255,255,255,.55);transition:color .18s;display:inline-block}
.footer-links a:hover{color:#fff}
.footer-contact-list{display:flex;flex-direction:column;gap:9px}
.footer-contact-list li{font-size:13.5px;color:rgba(255,255,255,.55);line-height:1.5}
.footer-contact-list a{color:rgba(255,255,255,.55);transition:color .18s}
.footer-contact-list a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding:18px 28px;text-align:center}
.footer-bottom p{font-size:12.5px;color:rgba(255,255,255,.35)}
.footer-bottom strong{color:rgba(255,255,255,.55);font-weight:600}

/* ══ RESPONSIVE ══ */
@media(max-width:1024px){
    .cards-grid{grid-template-columns:repeat(2,1fr)}
    .footer-grid{grid-template-columns:1fr 1fr;gap:28px}
    .stats-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
    .navbar-nav{display:none;position:fixed;top:112px;left:0;right:0;bottom:0;background:#fff;flex-direction:column;align-items:stretch;padding:12px;gap:2px;overflow-y:auto;z-index:99}
    .navbar-nav.open{display:flex}
    .navbar-hamburger{display:flex}
    .nav-dropdown{position:static}
    .dropdown-menu{position:static;box-shadow:none;border:none;background:var(--gray-100);opacity:1;visibility:visible;transform:none;display:none;margin-top:4px}
    .nav-dropdown.open .dropdown-menu{display:block}
    .topbar-left{display:none}
    .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
    .cards-grid{grid-template-columns:1fr}
    .footer-grid{grid-template-columns:1fr}
    .stats-grid{grid-template-columns:1fr 1fr}
}

/* ══════════════════════════════════════
   PAGE HEADER (páginas internas)
   ══════════════════════════════════════ */
.page-header {
    background: var(--navy-dark);
    padding: 48px 0 40px;
    position: relative;
    overflow: hidden;
    text-align: center;
}
.page-header::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 120%, rgba(46,196,182,.08) 0%, transparent 60%);
    pointer-events: none;
}
.page-header-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 28px;
    position: relative;
    z-index: 1;
}
.breadcrumb {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 13px;
    color: rgba(255,255,255,.5);
    margin-bottom: 14px;
}
.breadcrumb a { color: rgba(255,255,255,.5); transition: color .2s; }
.breadcrumb a:hover { color: var(--accent); }
.breadcrumb-sep { color: rgba(255,255,255,.25); }
.page-header h1 {
    font-size: clamp(1.1rem, 2vw, 1.5rem);
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
}

/* ══════════════════════════════════════
   PÁGINA HISTORIA
   ══════════════════════════════════════ */
.historia-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 64px;
    align-items: center; /* centrado verticalmente */
}

.historia-titulo {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--navy-dark);
    margin-bottom: 28px;
    padding-bottom: 16px;
    border-bottom: 3px solid var(--teal);
    display: inline-block;
}

.historia-texto p {
    font-size: 14.5px;
    line-height: 1.85;
    color: var(--gray-800);
    margin-bottom: 20px;
    text-align: justify;
}

.historia-texto p:last-child { margin-bottom: 0; }

/* Director */
.historia-director {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.director-foto-wrap {
    width: 100%;
    max-width: 340px;
    border-radius: var(--radius);
    overflow: hidden;
    background: #f8fafc;
}

.director-foto {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.director-info {
    background: var(--navy-dark);
    width: 100%;
    max-width: 340px;
    padding: 16px 20px;
    text-align: center;
    border-radius: 0 0 var(--radius) var(--radius);
}

.director-nombre {
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 4px;
}

.director-cargo {
    font-size: 12.5px;
    color: rgba(255,255,255,.65);
    font-weight: 400;
}

@media (max-width: 900px) {
    .historia-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .historia-director {
        align-items: center;
    }
}

/* ══════════════════════════════════════
   PÁGINA MISIÓN Y VISIÓN
   ══════════════════════════════════════ */
.mv-grid {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 72px;
    align-items: center;
}

/* Bloque de cada sección */
.mv-bloque {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.mv-icono {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 4px;
}
.mv-icono--mision  { background: rgba(26,53,88,.1);  color: var(--navy); }
.mv-icono--vision  { background: rgba(46,196,182,.1); color: var(--teal); }
.mv-icono--valores { background: rgba(232,160,32,.12); color: var(--accent); }

.mv-titulo {
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--navy-dark);
    margin-bottom: 12px;
}

.mv-texto {
    font-size: 14.5px;
    line-height: 1.85;
    color: var(--gray-800);
    text-align: justify;
}

.mv-divisor {
    height: 1px;
    background: var(--gray-200);
    margin: 28px 0;
}

/* Valores lista */
.mv-valores {
    display: flex;
    flex-direction: column;
    gap: 10px;
    list-style: none;
}
.mv-valores li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14.5px;
    color: var(--gray-800);
    font-weight: 500;
}
.mv-valor-bullet {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--teal);
    flex-shrink: 0;
}

/* Imagen equipo */
.mv-imagen {
    display: flex;
    justify-content: center;
    align-items: center;
}
.mv-foto {
    width: 100%;
    max-width: 420px;
    height: auto;
    display: block;
    /* Elimina el fondo negro de la imagen */
    mix-blend-mode: multiply;
}

@media (max-width: 900px) {
    .mv-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .mv-imagen { order: -1; }
    .mv-foto { max-width: 320px; margin: 0 auto; }
}

/* ══════════════════════════════════════
   PÁGINA SEDE
   ══════════════════════════════════════ */

/* Grid 3 columnas de contacto */
.sede-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    text-align: center;
    padding: 20px 0;
}

.sede-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    padding: 36px 24px;
    border-radius: var(--radius);
    background: #fff;
    border: 1px solid var(--gray-200);
    box-shadow: var(--shadow);
    transition: transform .25s, box-shadow .25s;
}
.sede-item:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.sede-icono {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--gray-100);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--navy);
    flex-shrink: 0;
}

.sede-label {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--navy-dark);
}

.sede-dato {
    font-size: 14px;
    color: var(--gray-500);
    line-height: 1.6;
    text-align: center;
}
.sede-dato a {
    color: var(--teal);
    transition: color .2s;
}
.sede-dato a:hover { color: var(--navy); }

/* Mapa */
.sede-mapa-section { padding: 0 0 48px; }
.sede-mapa-wrap {
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 1px solid var(--gray-200);
}

/* Formulario + info */
.sede-form-wrap {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 56px;
    align-items: start;
}

.sede-form-info .section-title { margin-bottom: 12px; }
.sede-form-info .section-lead  { margin-bottom: 28px; }

.sede-form-contact {
    display: flex;
    flex-direction: column;
    gap: 14px;
    list-style: none;
}
.sede-form-contact li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    color: var(--gray-800);
    line-height: 1.5;
}
.sede-form-contact li svg { flex-shrink: 0; margin-top: 2px; color: var(--teal); }
.sede-form-contact a { color: var(--navy); transition: color .2s; }
.sede-form-contact a:hover { color: var(--teal); }

/* Form */
.sede-form {
    background: #fff;
    border-radius: var(--radius);
    padding: 36px;
    box-shadow: var(--shadow);
    border: 1px solid var(--gray-200);
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.form-group label {
    font-size: 13px;
    font-weight: 600;
    color: var(--gray-800);
}
.form-group input,
.form-group select,
.form-group textarea {
    padding: 10px 14px;
    border: 1.5px solid var(--gray-200);
    border-radius: 8px;
    font-size: 14px;
    font-family: var(--font);
    color: var(--gray-800);
    background: #fff;
    outline: none;
    transition: border-color .2s;
    resize: none;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--teal);
}
.form-group select {
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 36px;
}

@media (max-width: 900px) {
    .sede-grid { grid-template-columns: 1fr; }
    .sede-form-wrap { grid-template-columns: 1fr; }
    .form-row { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .sede-grid { grid-template-columns: 1fr; }
    .sede-form { padding: 24px; }
}

/* ══════════════════════════════════════
   PÁGINA AUTORIDADES
   ══════════════════════════════════════ */
.autoridades-section { background: var(--gray-100); }

.aut-intro {
    text-align: center;
    max-width: 620px;
    margin: 0 auto 56px;
}
.aut-intro .section-tag  { justify-content: center; }
.aut-intro .section-lead { max-width: 100%; }

/* ── Director destacado centrado ── */
.aut-director-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 56px;
}
.aut-card--director {
    max-width: 280px;
    width: 100%;
}
.aut-card--director .aut-foto-wrap {
    width: 200px;
    height: 200px;
    margin: 0 auto 0;
}
.aut-card--director .aut-foto {
    border: 4px solid var(--accent);
    box-shadow: 0 0 0 6px rgba(232,160,32,.15), var(--shadow-lg);
}
.aut-card--director .aut-nombre { font-size: 1rem; }

/* ── Divisor con texto ── */
.aut-divisor {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 48px;
    color: var(--gray-500);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.aut-divisor::before,
.aut-divisor::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--gray-200);
}

/* ── Grid 4 tarjetas ── */
.aut-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
    justify-items: center;
}
/* Centrar la última fila si hay menos de 4 */
.aut-grid .aut-card:last-child:nth-child(4n - 3),
.aut-grid .aut-card:last-child:nth-child(4n - 2) {
    grid-column: auto;
}

/* ── Tarjeta base ── */
.aut-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 1px solid var(--gray-200);
    transition: transform .3s, box-shadow .3s;
    width: 100%;
    text-align: center;
}
.aut-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 48px rgba(26,53,88,.18);
}

/* Foto circular con overlay */
.aut-foto-wrap {
    position: relative;
    width: 160px;
    height: 160px;
    margin: 28px auto 0;
    border-radius: 50%;
    overflow: hidden;
}
.aut-foto {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
    transition: transform .4s;
    border-radius: 50%;
    border: 3px solid var(--teal);
    box-shadow: 0 4px 20px rgba(46,196,182,.25);
}
.aut-card:hover .aut-foto { transform: scale(1.06); }

.aut-overlay {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) translateY(100%);
    transition: transform .3s;
    white-space: nowrap;
}
.aut-card:hover .aut-overlay { transform: translateX(-50%) translateY(0); }

.aut-cargo-badge {
    display: inline-block;
    background: var(--navy);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 20px;
    letter-spacing: .5px;
    white-space: nowrap;
}

/* Info */
.aut-info {
    padding: 16px 18px 24px;
}
.aut-nombre {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--navy-dark);
    margin-bottom: 6px;
    line-height: 1.35;
}
.aut-cargo {
    font-size: 12.5px;
    color: var(--teal);
    font-weight: 600;
    line-height: 1.5;
}
.aut-cargo small {
    display: block;
    color: var(--gray-500);
    font-weight: 400;
    font-size: 11.5px;
    margin-top: 2px;
}

/* Fila de 5 centrada */
.aut-grid-center {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 28px;
}
.aut-grid-center .aut-card { width: calc(25% - 21px); min-width: 200px; }

@media (max-width: 1024px) {
    .aut-grid { grid-template-columns: repeat(3, 1fr); }
    .aut-grid-center .aut-card { width: calc(33% - 19px); }
}
@media (max-width: 768px) {
    .aut-grid { grid-template-columns: repeat(2, 1fr); }
    .aut-grid-center .aut-card { width: calc(50% - 14px); }
    .aut-card--director .aut-foto-wrap { width: 160px; height: 160px; }
}
@media (max-width: 480px) {
    .aut-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
    .aut-grid-center .aut-card { width: 100%; }
}

/* ══════════════════════════════════════
   AUTORIDADES — diseño original
   ══════════════════════════════════════ */
.aut-section { background: #fff; }

/* Director solo centrado */
.aut-top {
    display: flex;
    justify-content: center;
    margin-bottom: 48px;
}

/* Filas de 3 */
.aut-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    justify-items: center;
    margin-bottom: 40px;
}

/* Cada persona */
.aut-persona {
    text-align: center;
    max-width: 220px;
    width: 100%;
}

/* Círculo de foto */
.aut-circle {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto 14px;
    border: 3px solid var(--gray-200);
    background: var(--gray-100);
}
.aut-circle img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
}

/* Texto */
.aut-rol {
    font-size: 12.5px;
    color: var(--gray-500);
    line-height: 1.5;
    margin-bottom: 2px;
}
.aut-rol--bold {
    font-weight: 700;
    color: var(--gray-800);
}
.aut-nom {
    font-size: 13px;
    font-weight: 700;
    color: var(--navy-dark);
    margin-top: 4px;
    line-height: 1.4;
}

/* Director más grande */
.aut-top .aut-circle {
    width: 190px;
    height: 190px;
}
.aut-top .aut-rol {
    font-size: 13px;
    color: var(--gray-500);
}
.aut-top .aut-nom {
    font-size: 14px;
}

@media (max-width: 768px) {
    .aut-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .aut-row { grid-template-columns: 1fr; }
}

/* ══ COLABORADORES ══ */
.colab-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    justify-items: center;
    margin-bottom: 40px;
}
.colab-row--center {
    grid-template-columns: repeat(4, 1fr);
    /* Las 2 personas se centran ocupando las columnas del medio */
}
.colab-row--center .aut-persona:first-child { grid-column: 2; }
.colab-row--center .aut-persona:last-child  { grid-column: 3; }

.aut-sede {
    font-size: 12.5px;
    color: var(--teal);
    font-weight: 500;
    margin-top: 4px;
}

@media (max-width: 900px) {
    .colab-row { grid-template-columns: repeat(3, 1fr); }
    .colab-row--center { grid-template-columns: repeat(2, 1fr); }
    .colab-row--center .aut-persona:first-child { grid-column: 1; }
    .colab-row--center .aut-persona:last-child  { grid-column: 2; }
}
@media (max-width: 600px) {
    .colab-row { grid-template-columns: repeat(2, 1fr); }
}

/* ══ CONTACTO ══ */
.contacto-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
.contacto-form-wrap {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.contacto-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.contacto-mapa {
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 1px solid var(--gray-200);
    min-height: 480px;
}
.contacto-mapa iframe { display: block; }

.contacto-alert {
    padding: 14px 18px;
    border-radius: 8px;
    font-size: 14px;
    margin-bottom: 20px;
    line-height: 1.5;
}
.contacto-alert--ok  { background: #f0fdf4; border: 1px solid #bbf7d0; color: #16a34a; }
.contacto-alert--err { background: #fef2f2; border: 1px solid #fecaca; color: #dc2626; }

.char-counter {
    font-size: 11.5px;
    color: var(--gray-500);
    text-align: right;
    margin-top: 4px;
    display: block;
}

@media (max-width: 900px) {
    .contacto-grid { grid-template-columns: 1fr; }
    .contacto-mapa { min-height: 300px; }
}

/* ══════════════════════════════════════
   CURSOS AUXILIARES
   ══════════════════════════════════════ */
.cursos-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.curso-card {
    background: #fff;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--gray-200);
    box-shadow: var(--shadow);
    display: flex;
    flex-direction: column;
    transition: transform .25s, box-shadow .25s;
}
.curso-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.curso-img {
    width: 100%;
    aspect-ratio: 3/4;
    overflow: hidden;
    background: var(--gray-100);
}
.curso-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
    transition: transform .4s;
}
.curso-card:hover .curso-img img { transform: scale(1.04); }

.curso-body {
    padding: 14px 16px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
    flex: 1;
}

.curso-nombre {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--navy-dark);
    line-height: 1.4;
    margin: 0;
}

.curso-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 24px;
    background: var(--navy);
    color: #fff;
    border-radius: 50px;
    font-size: 13px;
    font-weight: 700;
    transition: background .2s, transform .2s;
    white-space: nowrap;
}
.curso-btn:hover {
    background: #2d5a8e;
    transform: translateY(-1px);
}

@media (max-width: 1024px) {
    .cursos-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .cursos-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .cursos-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
}

/* ══ CURSOS DE FORMACIÓN — 3 columnas ══ */
.formacion-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.formacion-card {
    background: #fff;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--gray-200);
    box-shadow: var(--shadow);
    display: flex;
    flex-direction: column;
    transition: transform .25s, box-shadow .25s;
}
.formacion-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}
/* La imagen ocupa todo el ancho con proporción 4:5 */
.formacion-img {
    width: 100%;
    aspect-ratio: 4/5;
    overflow: hidden;
    background: var(--gray-100);
}
.formacion-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
    transition: transform .4s;
}
.formacion-card:hover .formacion-img img { transform: scale(1.04); }
.formacion-body {
    padding: 14px 16px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
    flex: 1;
}
.formacion-nombre {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--navy-dark);
    line-height: 1.4;
    margin: 0;
}

/* Imagen faltante — placeholder gris con ícono */
.formacion-img img[src$=".png"]:not([src*="data:"]) {
    background: var(--gray-100);
}

@media (max-width: 900px) { .formacion-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .formacion-grid { grid-template-columns: 1fr; } }

/* Grid de 3 centrado para formación */
.formacion-grid--3 {
    grid-template-columns: repeat(3, 1fr) !important;
    max-width: 900px;
    margin: 0 auto;
}

/* ══════════════════════════════════════
   PÁGINAS PROSPECTO (detalle de curso)
   ══════════════════════════════════════ */

/* Layout: imagen+barra izq | sidebar der */
.prospecto-top {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 28px;
    align-items: start;
    margin-bottom: 48px;
}

.prospecto-left {
    display: flex;
    flex-direction: column;
}

/* Imagen del curso */
.prospecto-img {
    border-radius: var(--radius) var(--radius) 0 0;
    overflow: hidden;
}
.prospecto-img img {
    width: 100%;
    height: auto;
    display: block;
    max-height: 380px;
    object-fit: cover;
    object-position: center top;
}

/* Barra modalidad/duración/fechas — pegada debajo de la imagen */
.prospecto-info-bar {
    display: grid;
    grid-template-columns: 1fr 1.5fr 1fr;
    border: 1px solid var(--gray-200);
    border-top: none;
    border-radius: 0 0 var(--radius) var(--radius);
}
.info-bar-item {
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    border-right: 1px solid var(--gray-200);
}
.info-bar-item:last-child { border-right: none; }
.info-bar-item--center {
    text-align: center;
    align-items: center;
}
.info-bar-label {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--gray-500);
}
.info-bar-val {
    font-size: 13px;
    font-weight: 600;
    color: var(--navy-dark);
}
.info-bar-sub {
    font-size: 11.5px;
    color: var(--gray-500);
    line-height: 1.4;
}

/* Sidebar — alineado al tope junto a la imagen */
.prospecto-sidebar {
    position: sticky;
    top: 80px;
}
.sidebar-box {
    border: 2px solid var(--navy);
    border-radius: var(--radius);
    overflow: hidden;
}
.sidebar-title {
    background: var(--navy);
    color: #fff;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .5px;
    text-align: center;
    padding: 12px 14px;
}
.sidebar-list {
    list-style: disc;
    padding: 16px 16px 8px 32px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.sidebar-list li {
    font-size: 13.5px;
    color: var(--gray-800);
    line-height: 1.4;
}
.sidebar-btn {
    display: block;
    margin: 10px 14px 14px;
    padding: 11px 14px;
    background: var(--navy);
    color: #fff;
    text-align: center;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    transition: background .2s;
}
.sidebar-btn:hover { background: #2d5a8e; }

/* Contenido inferior */
.prospecto-content { max-width: 780px; }
.prospecto-section { margin-bottom: 32px; }
.prospecto-section-title {
    font-size: 13.5px;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--navy-dark);
    margin-bottom: 12px;
    padding-bottom: 6px;
    border-bottom: 2px solid var(--gray-200);
}
.prospecto-section p {
    font-size: 13.5px;
    color: var(--gray-800);
    line-height: 1.8;
    text-align: justify;
}
.prospecto-list {
    list-style: disc;
    padding-left: 20px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.prospecto-list li {
    font-size: 13.5px;
    color: var(--gray-800);
    line-height: 1.5;
}

@media (max-width: 900px) {
    .prospecto-top { grid-template-columns: 1fr; }
    .prospecto-sidebar { position: static; }
    .prospecto-info-bar { grid-template-columns: 1fr; }
    .info-bar-item { border-right: none; border-bottom: 1px solid var(--gray-200); }
    .info-bar-item:last-child { border-bottom: none; }
}
