/* Reference-inspired institutional presentation, using San Salvador assets. */
.public-body{font-size:16px;background:#fff}
.compact-ribbon{background:#073746}
.compact-header{box-shadow:0 2px 12px #0737460b}
.public-body .section-space{padding-top:80px;padding-bottom:80px}
.public-section-heading{justify-content:center;text-align:center;flex-direction:column;align-items:center;gap:18px;margin-bottom:40px}
.public-section-heading h2{font-size:clamp(28px,3vw,42px);font-weight:800;letter-spacing:-1px;line-height:1.2;margin:12px 0 18px}
.public-section-heading h2:after{content:'';display:block;width:64px;height:4px;background:var(--accent);border-radius:4px;margin:20px auto 0}
.public-section-heading p{font-size:16px;line-height:1.75;max-width:720px;margin:auto;color:#61717e}
.public-body .eyebrow{font-size:11px;letter-spacing:2px;font-weight:750}
.hero{height:clamp(580px,75vh,820px)}
.hero-content{height:100%;display:flex;flex-direction:column;justify-content:center;padding:60px 45px 100px}
.hero h1{font-size:clamp(42px,5.1vw,78px);max-width:1000px;line-height:1.12;font-weight:800;letter-spacing:-2px}
.hero-content>p{font-size:clamp(16px,1.5vw,21px);max-width:720px;line-height:1.75;color:#edf3f7;margin-bottom:32px}
.hero-overlay{background:linear-gradient(90deg,#062a45df,#10365091 65%,#10365055)}
.hero-tag,.hero-caption,.hero-seal{display:none}
.hero-actions .button{border:2px solid #ffffffb3;background:#ffffff14;color:white;border-radius:8px;font-size:16px;padding:15px 23px;backdrop-filter:blur(5px)}
.hero-actions .button:hover{background:var(--accent);border-color:var(--accent);color:#073746}
.hero-secondary{font-size:14px;color:#fff}
.hero-controls{position:absolute;inset:0;pointer-events:none;z-index:5;display:block}
.hero-controls button{pointer-events:auto}
.hero-controls .hero-prev,.hero-controls .hero-next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:#ffffff26;border:1px solid #ffffff66;font-size:24px;backdrop-filter:blur(5px)}
.hero-controls .hero-prev{left:18px}.hero-controls .hero-next{right:18px}
.hero-controls .swiper-pagination{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);width:auto;display:flex;gap:7px;pointer-events:auto}
.hero-controls .hero-playback{position:absolute;bottom:17px;right:25px}
.hero-controls .swiper-pagination-bullet{background:white;opacity:.6;width:10px;height:10px}
.hero-controls .swiper-pagination-bullet-active{background:var(--accent);opacity:1;width:26px;border-radius:10px}
.intro-strip{padding:24px 0;border-bottom:1px solid #e3eaf0}.intro-strip>span{font-size:13px}
.content-card{border:1px solid #e1e8ed;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 8px 24px #0737460a;transition:transform .2s,box-shadow .2s}
.content-card:hover{transform:translateY(-5px);box-shadow:0 16px 32px #07374618}
.card-copy{padding:28px}.card-copy h3{font-size:23px;line-height:1.35}.card-copy p{font-size:15px;line-height:1.75}.card-image{aspect-ratio:16/10}.image-badge{background:var(--accent);color:#073746;border-radius:6px;font-weight:700}
.card-bottom{font-size:13px;padding-top:20px;border-top:1px solid #e7edf0}.card-bottom a{background:var(--primary);color:#fff;border-radius:50%}
.soft-section{background:#f3f7fa}.services-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.service-card{border:1px solid #e0e8ef;border-radius:16px;background:white;padding:32px;box-shadow:0 5px 20px #07374608}
.service-card h3{font-size:20px;line-height:1.35}.service-card p{font-size:14px;line-height:1.75}.service-icon{background:#eaf5fa;color:var(--primary);border-radius:14px;padding:12px;font-size:28px}
.numbers-section{background:#073746;color:white;padding:65px 0}.numbers-section>.site-container{display:block;text-align:center}.numbers-section h2{color:white;font-size:36px;max-width:740px;margin:12px auto 35px}.numbers-section .eyebrow{color:var(--accent)}.public-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.public-stats strong{color:var(--accent);font-size:52px}.public-stats p{font-size:14px;color:#d5e7ed}
.event-card{border:1px solid #e0e8ef;border-radius:14px;padding:25px;background:#fff}.event-card h3{font-size:18px}.contact-banner{border-radius:20px;background:#073746;padding:48px}.contact-banner h2{font-size:36px}.contact-banner p{font-size:15px}
.institution-footer{background:#073746;color:#dceaf0;border-top:4px solid var(--accent)}.institution-footer h3{color:white}.footer-about p,.footer-about>p,.footer-link-columns a,.footer-newsletter>p,.newsletter-form small,.institution-footer .footer-bottom{color:#c3d8e1}.footer-about h3,.footer-link-columns a:hover{color:var(--accent)}.footer-institution-logo{background:white;border-radius:12px;padding:10px}.footer-partners{background:#fff;border-radius:12px;padding:20px;margin-bottom:30px;border:0}.institution-footer .footer-bottom{border-top:1px solid #ffffff26}.newsletter-feedback{color:#fff}
@media(max-width:950px){.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-content{padding-left:30px;padding-right:30px}.hero-controls .hero-prev{left:8px}.hero-controls .hero-next{right:8px}}
@media(max-width:680px){.public-body .section-space{padding-top:48px;padding-bottom:48px}.hero{height:620px}.hero-content{padding:40px 10px 100px}.hero h1{font-size:40px;letter-spacing:-1px}.hero-content>p{font-size:16px}.hero-actions{gap:18px}.hero-actions .button{font-size:14px}.hero-controls .hero-prev,.hero-controls .hero-next{top:auto;bottom:15px;transform:none;width:40px;height:40px}.hero-controls .hero-prev{left:18px}.hero-controls .hero-next{left:68px;right:auto}.hero-controls .swiper-pagination{left:55%;bottom:30px}.services-grid{grid-template-columns:1fr}.service-card{padding:25px}.public-section-heading p{font-size:14px}.public-stats{gap:12px}.public-stats strong{font-size:34px}.public-stats p{font-size:12px}.numbers-section h2{font-size:28px}.contact-banner{padding:28px}.contact-banner h2{font-size:28px}.footer-partners{padding:15px}.card-copy p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.content-card{transition:none}.content-card:hover{transform:none}}
/* Director's welcome immediately after the main slider. */
.director-welcome{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,1.5fr);gap:65px;align-items:center;padding-top:80px;padding-bottom:80px}
.director-portrait{position:relative;background:#f1f7f9;border:1px solid #deeaee;border-radius:22px;padding:40px;box-shadow:14px 14px 0 -7px var(--accent)}
.director-portrait img{display:block;width:100%;height:360px;object-fit:contain}.director-portrait>span{display:block;background:var(--primary);color:white;border-radius:10px;padding:13px 18px;width:max-content;margin:24px 0 -54px auto;font-size:13px;font-weight:650}
.director-kicker{display:inline-flex;gap:8px;align-items:center;padding:9px 16px;border:1px solid #dce8ee;background:#f1f7fa;border-radius:30px;color:var(--primary);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.8px}
.director-message h2{font-size:clamp(28px,3vw,44px);line-height:1.2;font-weight:800;letter-spacing:-1px;margin:22px 0 27px}.director-message h2 em{font-style:normal;color:var(--primary)}
.director-introduction{border-left:3px solid var(--accent);padding-left:23px;color:#596f78;font-size:16px;line-height:1.85}.director-introduction p:last-child{margin-bottom:0}
.director-signature{display:flex;flex-direction:column;gap:6px;margin-top:28px}.director-signature:before{content:'';width:65px;height:3px;background:var(--accent);margin-bottom:14px}.director-signature strong{font-size:20px}.director-signature span{color:var(--primary);font-weight:650;font-size:15px}.director-signature small{font-size:13px;color:#687c85}
.director-values{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}.director-values>div{display:flex;align-items:center;gap:10px;background:#f3f7fa;border:1px solid #e8eef2;border-radius:10px;padding:16px 12px}.director-values i{color:var(--primary);font-size:22px}.director-values strong,.director-values small{display:block}.director-values strong{font-size:13px}.director-values small{font-size:11px;color:#637983;margin-top:4px}
@media(max-width:950px){.director-welcome{gap:35px;grid-template-columns:1fr 1.5fr}.director-portrait{padding:20px}.director-portrait img{height:280px}.director-values{grid-template-columns:1fr}}
@media(max-width:680px){.director-welcome{grid-template-columns:1fr;padding-top:45px;padding-bottom:45px;gap:42px}.director-portrait{max-width:280px;width:100%;margin:auto}.director-portrait img{height:230px}.director-portrait>span{margin-bottom:-35px}.director-introduction{font-size:15px;padding-left:17px}.director-signature strong{font-size:18px}.director-values{grid-template-columns:1fr}.director-message h2{font-size:30px}}
/* News cards with equal heights and locally scoped carousel controls. */
.home-news{background:#f6f7fa}.news-carousel{padding-top:72px}.news-navigation{position:absolute;right:0;top:0;display:flex;gap:12px}.news-navigation button{width:46px;height:46px;border:1px solid #d9e1e9;border-radius:50%;background:#fff;color:var(--primary);font-size:25px;display:grid;place-items:center}.news-navigation button:disabled{opacity:.35;cursor:default}.news-carousel .swiper-wrapper{align-items:stretch}.news-tile{height:auto;display:flex;flex-direction:column;border:1px solid #e8ecf1;border-radius:18px;overflow:hidden;background:white}.news-photo{display:block;height:245px;overflow:hidden;background:#edf2f5}.news-photo img{width:100%;height:100%;object-fit:cover;object-position:top}.news-photo .pdf-thumbnail{height:100%}.news-copy{padding:25px;display:flex;flex-direction:column;flex:1;min-height:285px}.news-copy time{font-size:13px;color:#758399;margin-bottom:14px}.news-copy h3{font-size:21px;font-weight:750;line-height:1.35;margin:0 0 15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.news-copy h3 a{color:#172c39}.news-copy p{font-size:15px;color:#6b7785;line-height:1.75;margin:0 0 22px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.news-read{border-top:1px solid #edf0f4;padding-top:18px;margin-top:auto;color:var(--primary);font-size:15px;font-weight:700}.news-read span{margin-left:7px}.news-all{text-align:center;margin-top:30px}.news-empty{text-align:center;color:#687782}.news-photo:focus-visible,.news-read:focus-visible{outline-offset:-4px}
@media(max-width:680px){.news-photo{height:220px}.news-copy{padding:22px;min-height:270px}.news-copy h3{font-size:20px}.news-carousel{padding-top:62px}}
/* Keep desktop navigation visible as zoom reduces the available width. */
@media(min-width:951px){
 .compact-header .public-nav{width:calc(100% - 40px);max-width:1920px;gap:14px;padding-top:10px;padding-bottom:10px}
 .compact-header #public-menu{flex:1;min-width:0}
 .compact-header .main-menu{justify-content:space-between;flex-wrap:wrap;gap:3px}
 .compact-header .main-menu>li>a{font-size:clamp(14px,.95vw,17px);padding:16px 8px;gap:6px;text-transform:none;border-radius:8px;line-height:1.5}
 .compact-header .main-menu>li>a:after{left:10px;right:10px;bottom:6px;height:3px;border-radius:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
 .compact-header .main-menu>li:hover>a:after,.compact-header .main-menu>li:focus-within>a:after,.compact-header .main-menu>li>a.is-current:after{transform:scaleX(1)}
 .compact-header .main-menu>li:hover>a,.compact-header .main-menu>li:focus-within>a{background:#eef7fa;color:var(--primary)}
 .compact-header .submenu{border:1px solid #e0e9ee;border-top:3px solid var(--accent);border-radius:10px;box-shadow:0 16px 40px #07374620;padding:8px;animation:menu-reveal .18s ease-out}
 .compact-header .submenu a{font-size:14px;transition:background .18s,color .18s,transform .18s}
 .compact-header .submenu a:hover,.compact-header .submenu a:focus-visible{background:#eef7fa;color:var(--primary);transform:translateX(3px)}
}
@media(min-width:951px) and (max-width:1399px){
 .compact-header .public-nav{display:grid;grid-template-columns:minmax(245px,1fr) auto auto;gap:8px 18px}
 .compact-header #public-menu{grid-column:1/-1;grid-row:2;border-top:1px solid #edf1f4;padding-top:5px}
 .compact-header .header-admission{grid-column:2;grid-row:1}
 .compact-header .nav-tools{grid-column:3;grid-row:1}
 .compact-header .main-menu>li>a{font-size:15px;padding:12px 7px}
}
@keyframes menu-reveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.compact-header .submenu{animation:none}.compact-header .submenu a,.compact-header .main-menu>li>a:after{transition:none}}
/* Tighter transition between the welcome, institutional highlights and programs. */
.director-welcome{padding-bottom:30px}
.director-welcome + .intro-strip{padding-top:16px;padding-bottom:16px;gap:24px}
.intro-strip + .section-space{padding-top:36px}
@media(max-width:680px){.director-welcome{padding-bottom:24px}.director-welcome + .intro-strip{padding-top:12px;padding-bottom:12px;gap:12px}.intro-strip + .section-space{padding-top:30px}}
/* Compact spacing between the study programs and announcements. */
.public-body .home-section-programs{padding-bottom:28px}
.public-body .home-section-programs + .home-section-announcements{padding-top:28px}
@media(max-width:680px){.public-body .home-section-programs{padding-bottom:20px}.public-body .home-section-programs + .home-section-announcements{padding-top:24px}}
/* Compact transition from services to news. */
.public-body .home-section-services{padding-bottom:28px}
.public-body .home-section-services + .home-news{padding-top:28px}
@media(max-width:680px){.public-body .home-section-services{padding-bottom:20px}.public-body .home-section-services + .home-news{padding-top:24px}}
/* Balanced logo and institutional wordmark alignment. */
.compact-header .masthead-brand{align-items:center;gap:12px;align-self:center}
.compact-header .masthead-brand img{display:block;flex:0 0 56px;width:56px;height:84px;max-height:84px;object-fit:contain;object-position:center;margin:0}
.compact-header .masthead-wordmark{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0}
.compact-header .masthead-wordmark .brand-kicker,.compact-header .masthead-wordmark strong,.compact-header .masthead-wordmark .brand-location{margin:0}
@media(max-width:680px){.compact-header .masthead-brand{gap:10px}.compact-header .masthead-brand img{flex-basis:44px;width:44px;height:70px;max-height:70px}.compact-header .masthead-wordmark{gap:5px}.compact-header .public-nav{padding-top:10px;padding-bottom:10px}}
/* Keep the institutional identity to the left of the navigation. */
@media(min-width:951px){
 .compact-header .public-nav{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:16px}
 .compact-header .masthead-brand{order:0;flex:0 0 245px;margin:0;align-self:center}
 .compact-header #public-menu{order:1;flex:1 1 auto;min-width:0;border-top:0;padding-top:0}
 .compact-header .main-menu{justify-content:center;flex-wrap:wrap;gap:2px 6px}
 .compact-header .main-menu>li>a{padding:12px 7px;font-size:15px}
 .compact-header .header-admission{order:2;flex:none;margin-left:0}
 .compact-header .nav-tools{order:3;flex:none}
}
@media(min-width:951px) and (max-width:1199px){.compact-header .public-nav{gap:10px}.compact-header .header-admission{padding:11px 12px}.compact-header .main-menu>li>a{padding:9px 6px;font-size:14px}}
@media(min-width:1700px){.compact-header .main-menu{justify-content:space-evenly}.compact-header .main-menu>li>a{font-size:16px}}
/* Banner image presentation, selected per banner in administration. */
.hero-background[data-image-fit="Ajustar"] img{object-fit:contain;object-position:center}
.hero-background[data-image-fit="Expandir"] img{object-fit:fill;object-position:center}
.hero-background[data-image-fit="Repetir"]{background-repeat:repeat;background-position:center;background-size:auto}
.hero-background[data-image-fit="Repetir"].repeat-ready img{opacity:0}
/* Preserve the complete photo while filling unused space with a blurred backdrop. */
.hero-background[data-image-fit="Imagen completa con fondo difuminado"]{isolation:isolate;overflow:hidden}
.hero-background[data-image-fit="Imagen completa con fondo difuminado"]:before{content:'';position:absolute;inset:-25px;background-image:var(--banner-backdrop);background-size:cover;background-position:center;filter:blur(20px);opacity:.75;z-index:-1}
.hero-background[data-image-fit="Imagen completa con fondo difuminado"] img{object-fit:contain;object-position:center}
.announcement-figure{width:100%;max-width:var(--announcement-width,640px);margin-top:0;margin-bottom:28px}.announcement-center{margin-left:auto;margin-right:auto}.announcement-left{margin-left:0;margin-right:auto}.announcement-right{margin-left:auto;margin-right:0}.announcement-image{display:block;background:#f3f7fa;border:1px solid #e0e8ed;border-radius:12px;overflow:hidden}.announcement-image img{display:block;width:100%;height:auto;max-width:100%}.announcement-image-cover{aspect-ratio:4/3}.announcement-image-cover img{height:100%;object-fit:cover}.announcement-figure figcaption{font-size:13px;text-align:center;padding:10px}.announcement-figure figcaption a{color:var(--primary)}
.announcement-document{width:100%;max-width:var(--document-width,640px);border:1px solid #dce6ed;border-radius:14px;overflow:hidden;background:#fff;margin-top:25px;margin-bottom:30px}.announcement-document header{display:flex;gap:14px;align-items:center;padding:18px;background:#f1f7fa}.announcement-document header>i{font-size:28px;color:var(--primary)}.announcement-document header strong{display:block;font-size:16px;overflow-wrap:anywhere}.announcement-document header small{display:block;color:#627983;font-size:12px;margin-top:5px}.announcement-pdf-preview{display:block;padding:14px;background:#eaf0f3}.announcement-pdf-preview .pdf-thumbnail{height:auto;overflow:visible}.announcement-pdf-preview .pdf-placeholder{min-height:230px}.announcement-pdf-preview canvas{max-width:100%;height:auto}.announcement-document-note{padding:12px 18px;margin:0;font-size:13px;color:#627983}.announcement-document-actions{display:flex;gap:12px;flex-wrap:wrap;padding:18px}.announcement-document-actions .button{font-size:14px}
