:root{
    /* Colores Base */
    --navy-950:#041426;
    --navy-900:#071c34;
    --navy-850:#0a294a;
    --navy-800:#0d355f;
    --navy-700:#154674;

    /* Colores Institucionales Nuevos */
    --red-institucional: #B90F36; 
    --gold-institucional: #D4AF37; 
    --gold-light: #F3E5AB; 

    --ink:#10213b;
    --muted:#73839a;
    --line:#dce5ef;
    --paper:#fff;
    --surface:#f4f7fb;
    --surface-2:#eef3f9;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:90px;}
body{
    margin:0;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--ink);
    background:#f2f6fb;
}
a{color:inherit}
button,a{-webkit-tap-highlight-color:transparent}

/* Accesibilidad */
a:focus-visible, button:focus-visible{outline:3px solid var(--gold-institucional); outline-offset:3px;}
.skip-link{position:absolute; left:12px; top:-120px; z-index:200; padding:11px 18px; border-radius:10px; background:var(--gold-light); color:var(--navy-950); text-decoration:none; font-size:13px; font-weight:900; transition:top .2s ease;}
.skip-link:focus{top:12px;}

/* --- HEADER --- */
.site-header{position:sticky; top:0; z-index:60; border-bottom:1px solid rgba(255,255,255,.08); background:rgba(4,20,38,.94); backdrop-filter:blur(14px);}
.header-inner{width:min(1240px,calc(100% - 28px)); min-height:74px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:20px;}

/* LOGO */
.brand{display:flex; align-items:center; text-decoration:none;}
.brand-logo{height:58px; width:auto; border-radius:50%; box-shadow:0 4px 10px rgba(0,0,0,0.3); transition:transform 0.3s ease;}
.brand:hover .brand-logo{transform:scale(1.05);}

.nav{display:flex; align-items:center; gap:23px;}
.nav a{position:relative; padding:27px 0 24px; color:rgba(255,255,255,.82); text-decoration:none; font-size:12px; font-weight:750;}
.nav a:hover{color:#fff}
.nav a::after{content:""; position:absolute; height:2px; left:50%; right:50%; bottom:17px; background:var(--gold-institucional); transition:left .18s ease,right .18s ease;}
.nav a:hover::after{left:0; right:0;}

.access-top{min-height:42px; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:0 17px; border:1px solid var(--gold-institucional); border-radius:999px; background:rgba(212, 175, 55, 0.05); color:var(--gold-light); text-decoration:none; font-size:11px; font-weight:950; transition:background .18s ease,transform .18s ease;}
.access-top:hover{background:rgba(212, 175, 55, 0.15); transform:translateY(-1px);}
.menu-btn{display:none;}

/* --- NUEVO HERO --- */
.hero{position:relative; overflow:hidden; color:#fff; background:linear-gradient(135deg, var(--navy-950) 0%, var(--navy-850) 100%); border-bottom:3px solid var(--red-institucional);}
.hero-bg-decor{position:absolute; top:0; left:0; right:0; bottom:0; background:radial-gradient(circle at 80% 20%, rgba(185, 15, 54, 0.15) 0%, transparent 40%), radial-gradient(circle at 20% 80%, rgba(212, 175, 55, 0.08) 0%, transparent 40%); z-index:1; pointer-events:none;}
.hero-inner{position:relative; z-index:2; width:min(1240px, calc(100% - 28px)); margin:0 auto; min-height:530px; display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(380px, 0.9fr); align-items:center; gap:42px; padding:60px 0 80px;}
.hero-kicker{color:var(--gold-light); font-size:10px; font-weight:950; letter-spacing:.15em; text-transform:uppercase;}
.hero h1{max-width:700px; margin:11px 0 0; font-family:Georgia,serif; font-size:clamp(42px,5vw,69px); line-height:.98; letter-spacing:-.045em; font-weight:500;}
.hero h1 span{color:var(--gold-light);}
.hero p{max-width:650px; margin:20px 0 0; color:rgba(255,255,255,.79); font-size:14px; line-height:1.7;}
.hero-text strong{color:var(--gold-light); font-weight:700;}
.hero-actions{margin-top:25px; display:flex; flex-wrap:wrap; gap:10px;}

.btn{min-height:46px; display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:0 17px; border-radius:999px; text-decoration:none; font-size:11px; font-weight:950; transition:transform .18s ease,box-shadow .18s ease,background .18s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-gold{background:linear-gradient(145deg,#f1d486,var(--gold-institucional)); color:#3e2b08; box-shadow:0 11px 24px rgba(212, 175, 55, 0.25);}
.btn-ghost{border:1px solid var(--red-institucional); background:rgba(185, 15, 54, 0.1); color:#fff;}
.btn-ghost:hover{background:rgba(185, 15, 54, 0.3);}

/* Tarjeta Institucional */
.hero-art{display:flex; justify-content:center; align-items:center;}
.institutional-card{position:relative; background:rgba(255, 255, 255, 0.03); border:1px solid rgba(212, 175, 55, 0.4); border-radius:20px; padding:40px 30px; text-align:center; backdrop-filter:blur(10px); box-shadow:0 20px 40px rgba(0, 0, 0, 0.3); max-width:380px; width:100%;}
.card-decor-line{position:absolute; top:0; left:50%; transform:translateX(-50%); width:60%; height:2px; background:linear-gradient(90deg, transparent, var(--gold-institucional), transparent);}
.institutional-card h3{margin:0; font-family:Georgia,serif; font-size:24px; color:var(--gold-light); letter-spacing:0.05em;}
.card-subtitle{margin:8px 0 25px; font-size:11px; text-transform:uppercase; letter-spacing:0.15em; color:rgba(255, 255, 255, 0.7);}
.salesian-quote{margin:0; padding:20px 0; font-family:Georgia,serif; font-size:20px; line-height:1.4; font-style:italic; color:#fff; border-top:1px solid rgba(255, 255, 255, 0.1); border-bottom:1px solid rgba(255, 255, 255, 0.1);}
.card-footer-text{margin-top:25px; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:var(--red-institucional);}

/* --- ACCESOS (HUB) --- */
.access-hub{position:relative; z-index:6; width:min(1140px,calc(100% - 28px)); margin:-43px auto 0; padding:20px; border:1px solid rgba(212, 175, 55, 0.62); border-radius:26px; background:linear-gradient(145deg,#071d35,#0a2948); box-shadow:0 24px 54px rgba(4,20,38,.23);}
.hub-title{display:flex; align-items:center; justify-content:center; gap:11px; margin-bottom:15px; color:#fff; text-align:center;}
.hub-title::before,.hub-title::after{content:""; flex:1; height:1px; background:linear-gradient(90deg,transparent,rgba(212, 175, 55, 0.72));}
.hub-title::after{background:linear-gradient(90deg,rgba(212, 175, 55, 0.72),transparent);}
.hub-title span{color:var(--gold-light); font-size:9.5px; font-weight:950; letter-spacing:.14em; text-transform:uppercase; white-space:nowrap;}
.levels{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;}
.level-card{position:relative; overflow:hidden; min-height:188px; display:grid; grid-template-columns:76px minmax(0,1fr) 44px; align-items:center; gap:17px; padding:24px; border:1px solid rgba(255,255,255,.11); border-radius:20px; color:#fff; text-decoration:none; background:radial-gradient(circle at 8% 10%,rgba(255,255,255,.08),transparent 25%), linear-gradient(145deg,#0c3156,#092541); transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;}
.level-card:hover{transform:translateY(-3px); border-color:var(--gold-institucional); box-shadow:0 16px 30px rgba(185, 15, 54, 0.2);}
.level-card::after{content:""; position:absolute; width:160px; height:160px; right:-70px; top:-70px; border-radius:50%; background:rgba(255,255,255,.035);}
.level-icon{width:76px; height:76px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--gold-institucional); background:rgba(255,255,255,.035); color:var(--gold-light); box-shadow:inset 0 0 0 7px rgba(212, 175, 55, 0.05);}
.level-card.secondary .level-icon{border-color:rgba(255,255,255,.25); color:#dce5ef;}
.level-icon svg{width:38px; height:38px;}
.level-kicker{display:block; color:var(--gold-light); font-size:9px; font-weight:950; letter-spacing:.13em; text-transform:uppercase;}
.level-card.secondary .level-kicker{color:#aebdd0;}
.level-name{display:block; margin-top:5px; font-family:Georgia,serif; font-size:30px; line-height:.96; letter-spacing:-.025em;}
.level-name small{display:block; margin-top:4px; color:var(--gold-light); font-family:inherit; font-size:19px; font-weight:400; letter-spacing:.05em;}
.level-card.secondary .level-name small{color:#aebdd0;}
.level-meta{display:block; margin-top:10px; color:rgba(255,255,255,.70); font-size:10px;}
.level-arrow{width:40px; height:40px; position:relative; z-index:2; display:grid; place-items:center; border-radius:50%; border:1px solid var(--gold-institucional); color:var(--gold-light); font-size:21px;}

/* --- SECCIONES GENERALES --- */
.section{padding:70px 0;}
.section-inner{width:min(1180px,calc(100% - 28px)); margin:0 auto;}
.section-head{max-width:760px; margin-bottom:25px;}
.eyebrow{color:var(--red-institucional); font-size:9.5px; font-weight:950; letter-spacing:.14em; text-transform:uppercase;}
.section-head h2{margin:7px 0 0; font-family:Georgia,serif; font-size:clamp(31px,4vw,46px); line-height:1; font-weight:500; letter-spacing:-.035em;}
.section-head p{margin:11px 0 0; color:var(--muted); font-size:13px; line-height:1.65;}

/* Servicios */
.services{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.service{position:relative; overflow:hidden; min-height:245px; padding:23px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 12px 28px rgba(16,33,59,.07); text-decoration:none; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;}
.service:hover{transform:translateY(-4px); box-shadow:0 18px 38px rgba(16,33,59,.12); border-color:#c8d6e6;}
.service::after{content:""; position:absolute; width:130px; height:130px; right:-45px; top:-48px; border-radius:50%; background:var(--surface);}
.service-icon{position:relative; z-index:2; width:48px; height:48px; display:grid; place-items:center; border-radius:15px; background:var(--navy-900); color:#fff; box-shadow:0 9px 20px rgba(4,20,38,.14);}
.service-icon.red{background:linear-gradient(145deg,var(--red-institucional),#741122);}
.service-icon.gold{background:linear-gradient(145deg,var(--gold-institucional),#8c681f);}
.service-icon svg{width:25px; height:25px;}
.service h3{position:relative; z-index:2; margin:16px 0 0; font-size:19px; line-height:1.1; letter-spacing:-.02em;}
.service p{position:relative; z-index:2; margin:9px 0 0; color:var(--muted); font-size:11px; line-height:1.55;}
.service-link{position:absolute; z-index:3; left:23px; bottom:22px; color:var(--red-institucional); font-size:10px; font-weight:950;}

/* Banda Institucional */
.info-band{color:#fff; background:radial-gradient(circle at 10% 10%,rgba(255,255,255,.06),transparent 24%), linear-gradient(145deg,var(--navy-950),var(--navy-850));}
.info-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:42px; align-items:start;}
.info-band .eyebrow{color:var(--gold-institucional);}
.info-band .section-head h2{color:#fff;}
.info-band .section-head p{color:rgba(255,255,255,.68);}
.notice-list{display:grid; gap:10px;}
.notice{display:grid; grid-template-columns:38px minmax(0,1fr); gap:12px; align-items:start; padding:15px; border:1px solid rgba(255,255,255,.10); border-radius:16px; background:rgba(255,255,255,.045);}
.notice-num{width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:rgba(212, 175, 55, 0.12); color:var(--gold-light); font-size:10px; font-weight:950;}
.notice strong{display:block; color:#fff; font-size:12px;}
.notice span{display:block; margin-top:4px; color:rgba(255,255,255,.66); font-size:10.5px; line-height:1.45;}

/* Noticias */
.news-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.news{min-height:206px; padding:21px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:0 11px 26px rgba(16,33,59,.06); text-decoration:none; transition:transform .2s ease,box-shadow .2s ease;}
.news:hover{transform:translateY(-3px); box-shadow:0 17px 34px rgba(16,33,59,.11);}
.news-date{color:var(--red-institucional); font-size:9px; font-weight:950; letter-spacing:.1em; text-transform:uppercase;}
.news h3{margin:10px 0 0; font-family:Georgia,serif; font-size:21px; line-height:1.12; font-weight:500;}
.news p{margin:8px 0 0; color:var(--muted); font-size:10.5px; line-height:1.5;}
.news-more{margin-top:auto; padding-top:18px; color:var(--navy-800); font-size:10px; font-weight:950;}

/* Contactos */
.contacts{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;}
.contact-card{min-height:190px; padding:21px; border:1px solid var(--line); border-radius:20px; background:#fff;}
.contact-badge{display:inline-flex; align-items:center; min-height:26px; padding:0 9px; border-radius:999px; background:var(--surface-2); color:var(--navy-800); font-size:8.5px; font-weight:950; letter-spacing:.06em; text-transform:uppercase;}
.contact-card h3{margin:14px 0 0; font-size:17px;}
.contact-line{margin-top:7px; color:var(--muted); font-size:10.5px; line-height:1.45;}
.contact-actions{display:flex; flex-wrap:wrap; gap:7px; margin-top:16px;}
.mini-btn{min-height:36px; display:inline-flex; align-items:center; justify-content:center; padding:0 11px; border:1px solid var(--line); border-radius:11px; background:#fff; color:var(--navy-800); text-decoration:none; font-size:9px; font-weight:950;}
.mini-btn.primary{border-color:transparent; background:var(--navy-900); color:#fff;}

/* --- FOOTER --- */
.site-footer{position:relative; overflow:hidden; color:#fff; background:var(--navy-950); border-top:3px solid var(--red-institucional);}
.footer-inner{width:min(1180px,calc(100% - 28px)); margin:0 auto; padding:35px 0 25px; display:grid; grid-template-columns:1.1fr .9fr .9fr; gap:32px;}
.footer-brand{display:flex; align-items:center; gap:15px;}
.footer-logo{height:70px; width:auto; border-radius:50%; box-shadow:0 4px 10px rgba(0,0,0,0.5);}
.footer-title{font-family:Georgia,serif; font-size:22px; letter-spacing:.04em;}
.footer-title span{display:block; margin-top:3px; color:var(--gold-light); font-family:Inter,sans-serif; font-size:9px; font-weight:950; letter-spacing:.20em;}
.footer-quote{margin-top:15px; color:rgba(255,255,255,.64); font-family:Georgia,serif; font-size:13px; font-style:italic; line-height:1.5;}
.footer-col strong{display:block; margin-bottom:10px; color:var(--gold-institucional); font-size:9px; font-weight:950; letter-spacing:.12em; text-transform:uppercase;}
.footer-col a,.footer-col span{display:block; margin-top:7px; color:rgba(255,255,255,.66); text-decoration:none; font-size:10px; line-height:1.4;}
.footer-col a:hover{color:#fff;}
.footer-bottom{width:min(1180px,calc(100% - 28px)); margin:0 auto; padding:15px 0 20px; display:flex; justify-content:space-between; gap:12px; border-top:1px solid rgba(255,255,255,.08); color:rgba(255,255,255,.40); font-size:8.8px;}

/* --- RESPONSIVE --- */
@media(max-width:980px){
    .nav{display:none;}
    .menu-btn{display:inline-flex; width:42px; height:42px; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.15); border-radius:12px; background:rgba(255,255,255,.05); color:#fff; cursor:pointer;}
    .nav.mobile-open{position:absolute; display:grid; top:74px; left:14px; right:14px; gap:0; padding:8px; border:1px solid rgba(255,255,255,.10); border-radius:16px; background:var(--navy-950); box-shadow:0 20px 35px rgba(0,0,0,.24);}
    .nav.mobile-open a{padding:13px 12px; border-radius:10px;}
    .nav.mobile-open a:hover{background:rgba(255,255,255,.05);}
    .nav.mobile-open a::after{display:none;}
    
    .hero-inner{grid-template-columns:1fr; text-align:center; padding:58px 0 110px;}
    .hero-art{display:none;}
    .hero-actions{justify-content:center;}
    
    .levels{grid-template-columns:1fr;}
    .services,.news-grid,.contacts{grid-template-columns:1fr;}
    .info-grid{grid-template-columns:1fr;}
    .footer-inner{grid-template-columns:1fr 1fr;}
}

@media(max-width:680px){
    .header-inner{min-height:68px; width:min(100% - 20px,1240px);}
    .brand-logo{height:46px;}
    .access-top{display:none;}
    .nav.mobile-open{top:68px; left:10px; right:10px;}
    
    .hero-inner{width:min(100% - 24px,1240px); padding:44px 0 105px;}
    .hero h1{font-size:41px;}
    .hero p{font-size:12px;}
    .hero-actions{display:grid; grid-template-columns:1fr;}
    .btn{width:100%;}
    
    .access-hub{width:min(100% - 20px,1140px); margin-top:-58px; padding:12px; border-radius:21px;}
    .hub-title span{white-space:normal; text-align:center; line-height:1.3;}
    .level-card{min-height:0; grid-template-columns:56px minmax(0,1fr) 34px; gap:11px; padding:17px; border-radius:17px;}
    .level-icon{width:56px; height:56px;}
    .level-icon svg{width:28px; height:28px;}
    .level-name{font-size:22px;}
    .level-name small{font-size:14px;}
    .level-meta{font-size:9px;}
    .level-arrow{width:32px; height:32px; font-size:17px;}
    
    .section{padding:50px 0;}
    .section-inner{width:min(100% - 24px,1180px);}
    .section-head h2{font-size:33px;}
    
    .footer-inner{width:min(100% - 24px,1180px); grid-template-columns:1fr;}
    .footer-bottom{width:min(100% - 24px,1180px); flex-direction:column; text-align:center;}
}

@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{scroll-behavior:auto!important; animation:none!important; transition:none!important;}
}