:root{--navy:#022744;--navy2:#063657;--gold:#c58a24;--gold2:#e5aa41;--text:#0d1b2a;--muted:#64748b;--light:#f5f7fa;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:#fff}a{text-decoration:none;color:inherit}.site-header{height:78px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 8px 30px #00101f20}.brand{display:flex;align-items:center}.brand img{display:block;width:auto;height:54px;max-width:300px;object-fit:contain;background:transparent}.site-header nav{display:flex;align-items:center;gap:23px;font-size:14px}.site-header nav>a:not(.btn){position:relative}.site-header nav>a:not(.btn):after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:2px;background:var(--gold);transition:.2s}.site-header nav>a:not(.btn):hover:after{right:0}.nav-campus{color:#f2c46e}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:7px;font-weight:700}.btn-gold{background:linear-gradient(135deg,#d69b34,#a66b0b);color:#fff;box-shadow:0 8px 24px #c58a2430}.btn-outline{border:1px solid #d8e1e9;color:#fff}.menu-btn{display:none;background:none;border:0;color:#fff;font-size:26px}.hero{min-height:620px;color:#fff;display:grid;align-items:center;padding:7% 6%;background:linear-gradient(90deg,rgba(2,25,44,.97),rgba(2,39,68,.62)),url('https://images.unsplash.com/photo-1487958449943-2429e8be8625?auto=format&fit=crop&w=1800&q=85') center/cover}.hero-content{max-width:690px}.eyebrow{color:#efbd62;text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:800}.eyebrow.dark{color:#a66b0b}.hero h1{font-size:64px;line-height:1.02;margin:16px 0;letter-spacing:-1.8px}.gold{color:#d39a32}.hero p{font-size:18px;line-height:1.7;color:#e2e8f0;max-width:620px}.actions{display:flex;gap:12px;margin-top:28px}.features{margin:-48px auto 0;position:relative;z-index:2;max-width:1160px;background:var(--navy);color:#fff;display:grid;grid-template-columns:repeat(4,1fr);padding:28px;border-radius:12px;box-shadow:0 22px 50px #001a2d35}.feature{padding:0 22px;border-right:1px solid #27415b}.feature:last-child{border:0}.feature b{display:block;margin-bottom:8px}.feature p{color:#bdcad6;font-size:13px;line-height:1.5}.section{padding:84px 6%;max-width:1400px;margin:auto}.section-head{text-align:center;max-width:730px;margin:0 auto 40px}.section-head h2{font-size:40px;margin:8px 0 10px;letter-spacing:-1px}.section-head p{color:var(--muted);line-height:1.7}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.card{background:#fff;border:1px solid #e7ebf0;border-radius:12px;padding:25px;box-shadow:0 12px 30px rgba(15,23,42,.06);transition:.25s}.card:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(15,23,42,.09)}.card-icon{font-size:31px;color:var(--gold)}.card p{color:var(--muted);line-height:1.6}.project-card{padding:0;overflow:hidden}.project-card img{width:100%;height:230px;object-fit:cover}.project-card .body{padding:20px}.projects-section{background:#f5f7fa;max-width:none}.education-band{max-width:1160px;margin:10px auto 20px;padding:42px 48px;border-radius:16px;background:linear-gradient(120deg,#022744,#0a456d);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:35px;box-shadow:0 20px 55px #02274425}.education-band h2{font-size:36px;margin:8px 0 10px}.education-band p{color:#cbd9e5;line-height:1.7;max-width:780px}.brands-section{padding-top:70px}.public-brand-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}.public-brand{min-height:130px;border:1px solid #e5e9ee;border-radius:13px;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:18px;box-shadow:0 8px 24px #0f172a0a;transition:.2s}.public-brand:hover{transform:translateY(-3px)}.public-brand img{width:100%;height:70px;object-fit:contain}.public-brand span{font-size:12px;color:#607184;margin-top:10px;text-align:center}.page-hero{padding:90px 6%;background:linear-gradient(90deg,var(--navy),#163c5e);color:#fff}.page-hero h1{font-size:48px;margin:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.two-col img{width:100%;border-radius:12px}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px}.form-card{background:#fff;padding:28px;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 15px 40px #0f172a10}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{display:flex;flex-direction:column;gap:7px}.form-group>span{font-size:13px;font-weight:700}.form-group.full{grid-column:1/-1}input,textarea,select{width:100%;padding:13px;border:1px solid #d7dde5;border-radius:8px;font:inherit}textarea{min-height:150px;resize:vertical}.flash{position:fixed;top:90px;right:20px;z-index:100;padding:14px 18px;border-radius:8px;background:#dcfce7;color:#166534;box-shadow:0 8px 30px #0002}.flash.error{background:#fee2e2;color:#991b1b}.flash.warning{background:#fff3cd;color:#795000}footer{background:var(--navy);color:#fff;padding:50px 6%;display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}footer p{color:#b9c5d1;line-height:1.7}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#001a2d,#07385a);padding:25px}.login-box{width:min(450px,100%);background:#fff;padding:38px;border-radius:18px;box-shadow:0 25px 70px #0005}.login-logo{display:block;width:min(300px,92%);height:auto;margin:0 auto 24px;background:transparent}.login-box h1{margin:0;text-align:center;font-size:30px}.login-intro{text-align:center;color:var(--muted);margin:10px 0 24px}.login-box .form-group{margin:15px 0}.login-links{display:grid;gap:10px;margin-top:20px;text-align:center;font-size:13px;color:#315875}.login-links a:hover{text-decoration:underline}@media(max-width:1050px){.public-brand-grid{grid-template-columns:repeat(4,1fr)}.site-header nav{gap:15px}.site-header{padding:0 3%}}@media(max-width:900px){.menu-btn{display:block}.site-header nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--navy);padding:25px;flex-direction:column;box-shadow:0 20px 30px #0003}.site-header nav.open{display:flex}.hero h1{font-size:46px}.features,.cards{grid-template-columns:1fr 1fr}.two-col,.contact-grid{grid-template-columns:1fr}.education-band{margin:0;border-radius:0;flex-direction:column;align-items:flex-start}.public-brand-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.brand img{height:46px;max-width:210px}.features,.cards,.form-grid,footer,.public-brand-grid{grid-template-columns:1fr}.features{margin:0;border-radius:0}.feature{border-right:0;border-bottom:1px solid #27415b}.hero{min-height:560px;padding:60px 7%}.hero h1{font-size:39px}.actions{flex-direction:column}.page-hero h1{font-size:38px}.section{padding:62px 6%}.section-head h2{font-size:32px}.education-band{padding:36px 7%}.education-band h2{font-size:30px}.public-brand{min-height:110px}}

/* ===== v6: proyectos, convenios, acceso seguro y mejoras responsive ===== */
body{padding-bottom:env(safe-area-inset-bottom)}
img{max-width:100%}
.site-header nav>a.active:not(.btn):after{right:0}
.menu-btn{width:44px;height:44px;padding:10px;cursor:pointer;flex-direction:column;justify-content:center;gap:5px;border-radius:8px}
.menu-btn span{display:block;height:2px;background:#fff;border-radius:2px;transition:.25s}
.menu-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.btn-dark{background:var(--navy);color:#fff}
.btn-dark:hover{background:var(--navy2)}
.btn-light{background:#eef2f6;color:var(--text);border:0;cursor:pointer;font:inherit;font-weight:700}
.btn-outline-dark{border:1px solid #cfd8e3;color:var(--navy);background:#fff}
.btn-sm{padding:9px 14px;font-size:14px}
.btn-block{width:100%;border:0;cursor:pointer;font:inherit;font-weight:700;font-size:16px;min-height:48px}
button.btn{border:0;cursor:pointer;font:inherit;font-weight:700}
.hero h1{font-size:clamp(36px,6vw,64px)}
.section-head h2{font-size:clamp(28px,4vw,40px)}
.section-cta{text-align:center;margin:34px 0 0}
.project-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.project-card{display:flex;flex-direction:column}
.project-media{position:relative;overflow:hidden}
.project-media img{display:block;transition:transform .5s}
.project-card:hover .project-media img{transform:scale(1.04)}
.project-tag{position:absolute;left:14px;top:14px;background:#022744e0;color:#fff;font-size:12px;font-weight:700;padding:6px 10px;border-radius:20px}
.project-meta{display:block;color:#8a6a2c;font-weight:600;margin-top:4px}
.project-facts{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:4px;font-size:14px;color:var(--muted)}
.project-facts b{color:var(--text)}
.filter-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:28px}
.chip{border:1px solid #d7dde5;background:#fff;border-radius:30px;padding:9px 16px;font:inherit;font-size:14px;cursor:pointer;min-height:40px}
.chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.empty-public{text-align:center;padding:50px 20px;border:1px dashed #cbd5e1;border-radius:14px;color:var(--muted)}
.agreements-section{background:linear-gradient(180deg,#fff,#f7f9fb);max-width:none}
.agreements-section>*{max-width:1400px;margin-left:auto;margin-right:auto}
.agreement-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.agreement-card{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid #e7ebf0;border-radius:14px;padding:20px;box-shadow:0 10px 28px #0f172a0b;transition:.25s}
.agreement-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px #0f172a14}
.agreement-card h3{margin:4px 0 6px;font-size:18px}
.agreement-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.agreement-logo{flex:0 0 76px;height:76px;border-radius:12px;background:#f5f7fa;border:1px solid #edf0f4;display:grid;place-items:center;overflow:hidden;padding:8px}
.agreement-logo img{width:100%;height:100%;object-fit:contain}
.agreement-logo span{font-weight:800;font-size:22px;color:var(--navy)}
.agreement-logo.lg{flex-basis:140px;height:140px}
.agreement-type{display:inline-block;font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#a66b0b}
.agreement-list{display:grid;gap:22px;max-width:1000px;margin:auto}
.agreement-detail{display:flex;gap:28px;background:#fff;border:1px solid #e7ebf0;border-radius:16px;padding:28px;box-shadow:0 12px 32px #0f172a0b}
.agreement-body{flex:1;min-width:0}
.agreement-body h2{margin:6px 0 10px}
.agreement-body p{color:var(--muted);line-height:1.7}
.benefit-list{list-style:none;padding:0;margin:14px 0;display:grid;gap:8px}
.benefit-list li{padding-left:26px;position:relative}
.benefit-list li:before{content:"✔";position:absolute;left:0;color:var(--gold);font-weight:800}
.agreement-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;color:var(--muted)}
footer{padding-bottom:calc(30px + env(safe-area-inset-bottom))}
.footer-bottom{grid-column:1/-1;border-top:1px solid #1b4466;padding-top:18px;color:#8fa3b6;font-size:13px}
footer a:hover{color:#f2c46e}
/* Acceso y verificación */
.login-page{padding:max(20px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom))}
.login-logo.small{width:min(200px,70%);margin-bottom:14px}
.flash.inline{position:static;margin:0 0 15px;box-shadow:none}
.password-field{position:relative;display:block}
.password-field input{padding-right:48px}
.toggle-pass{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:none;font-size:18px;width:42px;height:42px;cursor:pointer;opacity:.6}
.secure-note{text-align:center;color:var(--muted);font-size:12px;margin:14px 0 0}
.verify-box h1{font-size:26px}
.verify-icon{font-size:44px;text-align:center;margin-bottom:6px}
.code-input{font-size:28px!important;letter-spacing:10px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.steps{padding-left:20px;color:#334155;line-height:1.6;font-size:14px}
.qr-box{width:220px;max-width:80%;margin:14px auto;background:#fff;padding:8px;border:1px solid #e5e7eb;border-radius:12px}
.qr-box svg{display:block;width:100%;height:auto}
.manual-key{text-align:center;font-size:13px;color:var(--muted)}
.manual-key code{display:inline-block;margin-top:6px;font-size:15px;letter-spacing:1px;background:#f1f5f9;padding:8px 10px;border-radius:8px;color:var(--text);word-break:break-all}
.recovery-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}
.recovery-grid code{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:10px;text-align:center;font-size:16px;letter-spacing:1px}
.actions-inline{display:flex;gap:10px;justify-content:center;margin-bottom:12px}
.check-line{display:flex;gap:10px;align-items:center;margin:14px 0;font-size:14px}
.check-line input{width:20px;height:20px;flex:0 0 20px}
.trust-info{background:#f5f8fb;border:1px solid #e3eaf1;border-radius:12px;padding:6px 16px;margin-bottom:16px;font-size:14px;line-height:1.6}
.trust-actions{display:grid;gap:10px}
.trust-actions .btn{min-height:50px;font-size:15px}
.help-details{margin-top:16px;font-size:14px;color:#334155}
.help-details summary{cursor:pointer;color:#315875;font-weight:600}
.muted{color:var(--muted)}
.mobile-only{display:none}
@media(hover:none) and (pointer:coarse){.mobile-only{display:flex;margin:6px 0 10px}}
@media print{.login-page{background:#fff}.login-box{box-shadow:none}.actions-inline,form,.login-links{display:none}}
@media(max-width:1050px){footer{grid-template-columns:1fr 1fr}}
@media(max-width:900px){
  .menu-btn{display:flex}
  .site-header{height:68px}
  .site-header nav{top:68px;padding:12px 20px 24px;gap:0;max-height:calc(100vh - 68px);max-height:calc(100dvh - 68px);overflow-y:auto;align-items:stretch}
  .site-header nav>a:not(.btn){padding:15px 4px;border-bottom:1px solid #ffffff14;font-size:16px}
  .site-header nav>a:not(.btn):after{display:none}
  .site-header nav>a.active{color:#f2c46e}
  .site-header nav .btn{margin-top:16px;min-height:48px}
  body.menu-open{overflow:hidden}
  .hero{min-height:auto;padding:80px 6% 100px}
}
@media(max-width:600px){
  .site-header{padding:0 16px}
  input,select,textarea{font-size:16px}
  .hero{padding:56px 20px 70px}
  .hero p{font-size:16px}
  .section{padding:52px 16px}
  .page-hero{padding:56px 20px}
  .page-hero h1{font-size:32px}
  .project-card img{height:200px}
  .agreement-detail{flex-direction:column;padding:20px}
  .agreement-logo.lg{flex-basis:auto;width:110px;height:110px}
  .agreement-card{padding:16px}
  .login-box{padding:26px 20px;border-radius:16px}
  .login-box h1{font-size:24px}
  .education-band{padding:32px 20px}
  footer{grid-template-columns:1fr;gap:22px;padding:40px 20px}
  .flash{left:16px;right:16px;top:80px}
  .btn{min-height:46px}
  .actions .btn{width:100%}
}

/* v6.1 ajustes */
.project-grid{grid-template-columns:repeat(auto-fit,minmax(250px,320px));justify-content:center}
.agreement-grid{grid-template-columns:repeat(auto-fit,minmax(280px,380px));justify-content:center}
.project-media{background:#e9eef4}
.project-media img{width:100%;height:230px;object-fit:cover}
@media(max-width:600px){
  .project-grid,.agreement-grid{grid-template-columns:1fr}
  .project-media img{height:200px}
}

/* v6.2: rejilla flexible centrada (4 por fila en laptop, centrada si hay pocos) */
.project-grid,.agreement-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:22px}
.project-grid>.project-card{flex:1 1 250px;max-width:340px}
.agreement-grid>.agreement-card{flex:1 1 300px;max-width:420px}
.project-card[hidden],.agreement-card[hidden]{display:none}
@media(max-width:600px){
  .project-grid>.project-card,.agreement-grid>.agreement-card{flex-basis:100%;max-width:none}
}
