/* GENERADO por tools/port-concept-css.py desde concept/assets/style.css — no editar a mano. */
/* CSS exclusivo de la portada. Se carga solo en la página de inicio. */
[hidden]:not([hidden=until-found]){display:none!important}
.topbar-item{display:flex; align-items:center; gap:7px; opacity:.92; white-space:nowrap; text-decoration:none; color:inherit;}
@media (max-width:640px){
.topbar-item{padding:6px; margin:-6px; border-radius:10px;}
}
nav.links a:hover{color:var(--blue);}
.nav-dropdown-sections{margin:2px 12px 6px; font-size:.82rem; line-height:1.5; color:var(--ink-faint); font-style:italic;}
.hero{position:relative; overflow:hidden; min-height:clamp(660px, 88vh, 820px); display:flex; align-items:center;
    color:#fff; touch-action:pan-y;}
.hero-slide{position:absolute; inset:0; z-index:0; opacity:0; transition:opacity .7s ease;}
.hero-slide.is-active{opacity:1; z-index:1;}
@media (prefers-reduced-motion: reduce){
.hero-slide{transition:none;}
}
.hero-copy .eyebrow, .hero-copy h1, .hero-copy .hero-lede, .hero-copy .hero-ctas{opacity:0;}
@keyframes heroFadeUp{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:translateY(0); } }
.hero-slide.animate-in .hero-copy .eyebrow{animation:heroFadeUp .6s ease both; animation-delay:.05s;}
.hero-slide.animate-in .hero-copy h1{animation:heroFadeUp .65s ease both; animation-delay:.16s;}
.hero-slide.animate-in .hero-copy .hero-lede{animation:heroFadeUp .6s ease both; animation-delay:.32s;}
.hero-slide.animate-in .hero-copy .hero-ctas{animation:heroFadeUp .6s ease both; animation-delay:.46s;}
@media (prefers-reduced-motion: reduce){
.hero-copy .eyebrow, .hero-copy h1, .hero-copy .hero-lede, .hero-copy .hero-ctas{opacity:1 !important; animation:none !important; transform:none !important;}
}
.hero-dots{position:absolute; z-index:2; bottom:22px; left:50%; translate:-50% 0; display:flex; gap:9px;}
.hero-dots .dot{width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.4); border:1px solid rgba(255,255,255,.6); padding:0; cursor:pointer;}
.hero-dots .dot.is-active{background:var(--gold); border-color:var(--gold);}
.hero-dots .dot{position:relative;}
.hero-dots .dot::before{content:""; position:absolute; inset:-8px;}
.hero-dots{bottom:104px;}
@media (max-width:900px){
.hero-dots{bottom:80px;}
}
@media (max-width:520px){
.hero-dots{bottom:64px;}
}
@media (max-width:640px){
.topbar-item{min-width:36px; min-height:36px; justify-content:center;}
}
.hero-arrow{position:absolute; top:50%; translate:0 -50%; width:52px; height:52px; border-radius:50%;
    background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.4); color:#fff;
    display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:2;}
.hero-arrow svg{width:20px; height:20px;}
.hero-arrow.prev{left:clamp(10px,2vw,34px);}
.hero-arrow.next{right:clamp(10px,2vw,34px);}
@media (max-width:720px){
.hero-arrow{display:none;}
}
.hero-inner{position:relative; z-index:1; width:100%; padding-block:64px 228px;}
@media (max-width:640px){
.hero-inner{padding-block:40px 110px;}
}
.hero-copy{max-width:720px;}
@media (min-width:721px){
.hero-arrow{width:44px; height:44px;}
.hero-arrow svg{width:18px; height:18px;}
.hero-arrow.prev{left:clamp(8px,1.2vw,20px);}
.hero-arrow.next{right:clamp(8px,1.2vw,20px);}
.hero-copy{margin-left:max(0px, calc(100px - clamp(20px,4vw,64px) - max(0px, (100% - var(--maxw))/2))); max-width:min(720px, calc(100vw - 200px));}
}
.hero-eyebrow{color:var(--gold);}
.hero h1{font-size:clamp(2.1rem, 1.3rem + 3vw, 3.6rem); margin-top:16px; color:#fff;}
.hero h1 em{font-style:italic; color:var(--gold);}
.hero-lede{margin-top:20px; font-size:1.08rem; color:#D7DFF6; max-width:52ch;}
.hero-lede sup{font-family:'Poppins',sans-serif; font-size:.6em; color:var(--gold); cursor:help;}
.hero-ctas{margin-top:34px; display:flex; gap:16px; flex-wrap:wrap;}
.project-list{margin-top:40px; display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.project-item{position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start; gap:14px;
    background:var(--bg-panel); border-radius:18px; padding:24px 20px 24px 26px; box-shadow:var(--shadow);
    transition:transform .25s ease, box-shadow .25s ease;}
.project-item::before{content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--blue); transition:background .25s ease;}
.project-item:hover{transform:translateY(-3px); box-shadow:0 20px 44px -22px rgba(7,26,61,.35);}
.project-item:hover::before{background:var(--gold);}
.project-item{transition:transform .25s ease, box-shadow .25s ease, background-color .3s ease;}
.project-item :is(h4, p){transition:color .3s ease;}
.project-item:nth-child(8n+1){--hc:#6B3FA0;}
.project-item:nth-child(8n+2){--hc:#C2185B;}
.project-item:nth-child(8n+3){--hc:#0B44A8;}
.project-item:nth-child(8n+4){--hc:#2E7D32;}
.project-item:nth-child(8n+5){--hc:#0F766E;}
.project-item:nth-child(8n+6){--hc:#C2410C;}
.project-item:nth-child(8n+7){--hc:#B91C1C;}
.project-item:nth-child(8n+8){--hc:#7A4E12;}
.project-item:hover{background:var(--hc);}
.project-item:hover :is(h4, p){color:#fff;}
.project-item:hover .project-ic{background:rgba(255,255,255,.18); color:#fff;}
.project-ic{width:54px; height:54px; border-radius:16px; flex:none; background:#E4ECFB; color:var(--blue);
    display:flex; align-items:center; justify-content:center; transition:background .25s ease, color .25s ease;}
.project-ic svg{width:26px; height:26px; stroke-width:1.7;}
.project-body{min-width:0;}
.project-body h4{font-family:'Poppins',sans-serif; font-weight:700; font-size:1.05rem; line-height:1.25; color:var(--ink);}
.project-body p{margin-top:6px; font-size:.92rem; line-height:1.6; color:var(--ink-soft);}
@media (max-width:1000px){
.project-list{grid-template-columns:1fr 1fr; gap:16px 18px;}
.project-item{flex-direction:row; gap:16px; padding:20px 20px 20px 26px;}
.project-body{padding-right:0;}
}
@media (max-width:760px){
.project-list{grid-template-columns:1fr; gap:12px;}
}
@media (max-width:520px){
.project-item{gap:14px; padding:16px 16px 16px 20px; border-radius:16px;}
.project-ic{width:44px; height:44px; border-radius:13px;}
.project-ic svg{width:22px; height:22px;}
.project-body h4{font-size:1rem;}
.project-body p{font-size:.9rem;}
}
@media (prefers-reduced-motion:reduce){
.project-item, .project-ic, .project-item::before, .project-item :is(h4, p){transition:none;}
.project-item:hover{transform:none;}
}
.seal-row{position:relative; z-index:2; margin-top:-80px; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; max-width:1100px; margin-inline:auto;}
@media (max-width:900px){
.seal-row{grid-template-columns:1fr 1fr; margin-top:-56px;}
}
@media (max-width:520px){
.seal-row{gap:10px; margin-top:-40px;}
}
.seal{background:var(--bg-panel); border-radius:40px 40px 40px 0; box-shadow:var(--shadow-lg);
    padding:24px 24px 28px; display:flex; flex-direction:column; align-items:flex-start; gap:10px;
    position:relative; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease;}
.seal:hover{transform:translateY(-5px); box-shadow:0 26px 60px -24px rgba(7,26,61,.45);}
.seal-mark{width:60px; height:60px; border-radius:50%; flex:none; margin-bottom:4px;
    background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 18px -8px rgba(18,77,176,.55); transition:background .25s ease, color .25s ease;}
.seal-mark svg{width:27px; height:27px; stroke-width:1.6;}
.seal:hover .seal-mark{background:var(--gold); color:var(--gold-ink); box-shadow:0 10px 18px -8px rgba(252,228,0,.7);}
.seal-num{position:absolute; top:18px; right:22px; font-family:'Poppins',sans-serif; font-weight:700; font-size:2.3rem; line-height:1;
    color:transparent; -webkit-text-stroke:1.5px var(--blue); user-select:none; opacity:.85;}
@supports not (-webkit-text-stroke: 1px black){
.seal-num{color:var(--blue); opacity:.25; -webkit-text-stroke:0;}
}
.seal-label{font-family:'Poppins',sans-serif; font-weight:700; font-size:1.12rem; line-height:1.2; color:var(--ink);}
.seal-sub{font-size:.88rem; line-height:1.6; color:var(--ink-soft);}
@media (max-width:900px){
.seal{padding:20px 18px 22px; border-radius:32px 32px 32px 0; gap:8px;}
.seal-mark{width:52px; height:52px;}
.seal-mark svg{width:24px; height:24px;}
.seal-num{font-size:1.9rem; top:14px; right:16px;}
.seal-label{font-size:1.02rem;}
}
@media (max-width:520px){
.seal{padding:16px 14px 18px; border-radius:26px 26px 26px 0; gap:6px;}
.seal-mark{width:44px; height:44px;}
.seal-mark svg{width:20px; height:20px;}
.seal-num{font-size:1.5rem; top:12px; right:12px;}
.seal-label{font-size:.94rem;}
.seal-sub{font-size:.8rem;}
}
@media (prefers-reduced-motion:reduce){
.seal, .seal-mark{transition:none;}
.seal:hover{transform:none;}
}
.about{padding-top:160px;}
@media (max-width:900px){
.about{padding-top:96px;}
}
@media (max-width:640px){
.about{padding-top:64px;}
}
.values-wrap{min-width:0;}
.values-pyr{--pill:clamp(150px, 50%, 236px); --rowh:clamp(36px, 5.6vw, 46px);
    position:relative; width:min(100%, 520px); margin-inline:auto; display:flex; flex-direction:column; gap:3px;}
@media (max-width:900px){
.values-pyr{--pill:clamp(182px, 56%, 236px);}
}
.vp-row{--t:calc(var(--i) / 11); --b:calc((var(--i) + 1) / 11);
    position:relative; display:block; width:100%; height:var(--rowh); padding:0; border:0; background:none;
    font:inherit; color:inherit; cursor:pointer; transition:transform .25s ease;}
.vp-band{position:absolute; inset:0; background:var(--c); transition:opacity .25s ease, filter .25s ease;
    clip-path:polygon(calc(50% - 50% * var(--t)) 0, calc(50% + 50% * var(--t)) 0, calc(50% + 50% * var(--b)) 100%, calc(50% - 50% * var(--b)) 100%);}
.vp-pill{position:absolute; top:50%; translate:0 -50%; height:80%; width:var(--pill);
    left:min(calc(50% + 50% * (var(--i) + .5) / 11 - 14px), calc(100% - var(--pill)));
    display:flex; align-items:center; gap:10px; padding:0 12px 0 5px; border-radius:11px;
    background:var(--pc); color:var(--tc); box-shadow:0 6px 16px -8px rgba(10,20,50,.45), inset 0 0 0 1px rgba(10,20,50,.12);
    font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(.74rem, .56rem + .9vw, .98rem); white-space:nowrap;}
.vp-ic{position:relative; flex:none; width:calc(var(--rowh) * .66); aspect-ratio:1; border-radius:50%; overflow:hidden;
    display:grid; place-items:center; background:rgba(255,255,255,.22); box-shadow:0 0 0 2px rgba(255,255,255,.35);
    transition:transform .25s ease, box-shadow .25s ease;}
.vp-ic svg{width:62%; height:62%;}
.vp-ic img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .25s ease;}
.vp-row:is(:hover, :focus-visible, .is-active){z-index:3;}
.vp-row:is(:hover, :focus-visible, .is-active) .vp-ic{transform:scale(var(--zoom, 4.4)); transform-origin:100% 50%; z-index:2; box-shadow:0 0 0 1px #fff, 0 6px 14px -4px rgba(10,20,50,.45);}
.vp-row:is(:hover, :focus-visible, .is-active) .vp-ic img{opacity:1;}
@media (max-width:900px){
.values-pyr{--zoom:4.8;}
}
@media (max-width:520px){
.values-pyr{--zoom:5;}
}
.vp-row:focus-visible{outline:none;}
.vp-row:focus-visible .vp-pill{outline:3px solid var(--gold); outline-offset:2px;}
.values-pyr:has(.vp-row:is(:hover, .is-active)) .vp-row:not(:hover, .is-active, .vp-base) .vp-band{opacity:.45; filter:saturate(.6);}
.vp-base{height:calc(var(--rowh) * 1.55); cursor:default;}
.vp-base-label{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1;
    font-family:'Poppins',sans-serif; font-weight:800; font-size:clamp(1.2rem, .8rem + 2vw, 1.9rem); color:var(--ink);}
.vp-base-label small{margin-top:4px; font-size:.42em; letter-spacing:.3em; color:var(--blue); font-weight:800;}
.vp-hint{margin-top:14px; text-align:center; font-size:.86rem; color:var(--ink-faint);}
.vp-hint-touch{display:none;}
@media (hover:none){
.vp-hint-hover{display:none;}
.vp-hint-touch{display:inline;}
}
@media (prefers-reduced-motion: reduce){
.vp-row, .vp-ic, .vp-ic img, .vp-band{transition:none;}
}
.about-ctas{margin-top:32px; display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
@media (max-width:900px){
.about .body-copy{margin-top:14px;}
.about .quote-box{margin-top:20px; padding:16px 18px; font-size:.78rem;}
.about .about-ctas{margin-top:24px; gap:16px;}
.about .call-chip .ic{width:38px; height:38px;}
.about .call-chip .ic svg{width:17px; height:17px;}
}
.call-chip{display:flex; align-items:center; gap:12px;}
.call-chip .ic{width:46px; height:46px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; flex:none;}
.call-chip .ic svg{width:20px; height:20px;}
.call-chip .lbl{font-size:.8rem; color:var(--ink-faint);}
.call-chip .num{font-weight:700;}
.call-chip a{text-decoration:none;}
.video-stats{padding-block:0;}
.vs-top{background:#F4F5FB; padding-top:96px; padding-bottom:280px;}
@media (max-width:900px){
.vs-top{padding-top:56px; padding-bottom:260px;}
}
@media (max-width:640px){
.vs-top{padding-top:32px;}
}
@media (max-width:520px){
.vs-top{padding-bottom:170px;}
}
.vs-bottom{position:relative; display:flow-root; color:#fff;
    background: linear-gradient(120deg, #071A3D, #0B2E80);
    border-radius:20px 20px 0 0;
    padding-bottom:96px;}
@media (max-width:720px){
.vs-bottom{padding-bottom:56px;}
}
@media (max-width:520px){
.vs-bottom{border-radius:8px 8px 0 0;}
}
.video-frame-shell{max-width:900px; margin-inline:auto;}
.video-frame{position:relative; display:block; aspect-ratio:16/9; margin-top:-28.125%;
    border-radius:var(--radius-panel); overflow:hidden; box-shadow:var(--shadow-lg); cursor:pointer;}
.video-frame img{width:100%; height:100%; object-fit:cover;}
.video-frame::after{content:""; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(180deg, rgba(7,26,61,.1) 40%, rgba(7,26,61,.65) 100%);}
.video-play{position:absolute; top:50%; left:50%; translate:-50% -50%; z-index:1; width:74px; height:74px; border-radius:50%;
    background:var(--gold); color:var(--gold-ink); display:flex; align-items:center; justify-content:center;
    box-shadow:0 14px 30px -8px rgba(252,228,0,.6); transition:transform .15s ease; border:0; padding:0; cursor:pointer;}
.video-frame:hover .video-play{transform:translate(-50%,-50%) scale(1.07);}
.video-play svg{width:28px; height:28px; margin-left:3px;}
.video-caption{position:absolute; left:24px; right:24px; bottom:18px; z-index:1; color:#fff; pointer-events:none;}
.video-caption b{display:block; font-family:'Poppins',sans-serif; font-weight:700; font-size:1.05rem;}
.video-caption span{font-size:.88rem; color:#D7DFF6;}
.video-frame iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.stats-grid{margin-top:56px; display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
@media (max-width:860px){
.stats-grid{gap:16px;}
}
@media (max-width:640px){
.stats-grid{grid-template-columns:1fr 1fr; gap:28px;}
}
@media (max-width:520px){
.stats-grid{margin-top:40px; gap:18px;}
}
.stat{text-align:center; display:flex; flex-direction:column; align-items:center; gap:14px;}
@media (max-width:520px){
.stat{gap:8px;}
}
.stat .badge{width:74px; height:74px; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.24);
    display:flex; align-items:center; justify-content:center; color:var(--gold);}
@media (max-width:900px){
.stat .badge{width:60px; height:60px;}
}
@media (max-width:520px){
.stat .badge{width:48px; height:48px;}
}
.stat .badge svg{width:32px; height:32px;}
@media (max-width:900px){
.stat .badge svg{width:26px; height:26px;}
}
@media (max-width:520px){
.stat .badge svg{width:22px; height:22px;}
}
.stat .num{font-family:'Poppins',sans-serif; font-weight:700; font-size:2.1rem;}
@media (max-width:900px){
.stat .num{font-size:1.8rem;}
}
@media (max-width:520px){
.stat .num{font-size:1.4rem;}
}
.stat .lbl{font-size:.88rem; color:#C4D0F2; max-width:18ch;}
@media (max-width:520px){
.stat .lbl{font-size:.82rem;}
}
.level-grid{margin-top:48px; display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media (max-width:860px){
.level-grid{gap:18px;}
}
@media (max-width:640px){
.level-grid{grid-template-columns:1fr; gap:26px;}
}
.level-card{background:var(--bg-panel); border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow); transition:transform .15s ease, box-shadow .15s ease;}
.level-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg);}
.level-card{border-radius:28px 28px 28px 0;}
.level-photo::after{content:""; position:absolute; left:0; right:0; bottom:0; height:4px;
    background:linear-gradient(90deg, var(--blue) 0 78%, var(--gold) 78% 100%);}
.level-photo{overflow:hidden;}
.level-photo img{transition:transform .5s ease;}
.level-card:hover .level-photo img{transform:scale(1.04);}
.level-foot .inline-link svg{transition:transform .25s ease;}
.level-card:hover .level-foot .inline-link svg{transform:translateX(4px);}
@media (max-width:640px){
.level-card{border-radius:22px 22px 22px 0;}
}
@media (prefers-reduced-motion:reduce){
.level-photo img, .level-foot .inline-link svg{transition:none;}
.level-card:hover .level-photo img, .level-card:hover .level-foot .inline-link svg{transform:none;}
}
.level-photo{position:relative; aspect-ratio:16/10;}
.level-photo img{width:100%; height:100%; object-fit:cover;}
.level-pill{position:absolute; top:14px; left:14px; background:var(--gold); color:var(--gold-ink);
    font-family:'Poppins',sans-serif; font-weight:700; font-size:.72rem; letter-spacing:.05em;
    padding:6px 12px; border-radius:var(--radius-chip);}
.level-badge2{position:absolute; top:14px; right:14px; background:rgba(7,26,61,.82); color:#fff; backdrop-filter:blur(2px);
    font-family:'Poppins',sans-serif; font-weight:600; font-size:.72rem; padding:6px 10px; border-radius:8px;}
@media (max-width:1100px) and (min-width:641px){
.level-badge2{top:auto; right:auto; left:14px; bottom:18px;}
}
.level-body{padding:22px 22px 24px;}
.level-body h3{font-size:1.12rem;}
.level-body p{margin-top:10px; color:var(--ink-soft); font-size:.92rem;}
.level-foot{margin-top:16px; display:flex; align-items:center; justify-content:space-between; padding-top:14px; border-top:1px solid var(--border);}
@media (min-width:641px) and (max-width:900px){
.level-foot{flex-direction:column; align-items:flex-start; gap:8px;}
}
.level-foot .inline-link{font-size:.86rem; font-weight:700;}
.testi-head{display:grid; grid-template-columns:1fr 1fr; gap:24px 48px; align-items:end;}
.testi-head .section-head h2{margin-top:12px;}
.testi-head-r .body-copy{margin-top:0;}
.testi-head-r .inline-link{margin-top:14px;}
@media (max-width:900px){
.testi-head{grid-template-columns:1fr;}
}
.testi-grid{margin-top:48px; display:grid; grid-template-columns:repeat(5,1fr); gap:20px;}
.testi{position:relative; display:block; aspect-ratio:9/16; border-radius:22px; overflow:hidden;
    background:linear-gradient(165deg, #173C9C 0%, var(--blue-mid) 58%, #08236A 100%);
    color:#fff; text-decoration:none; box-shadow:var(--shadow);
    transition:transform .2s ease, box-shadow .2s ease;}
.testi:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg), 0 0 0 3px var(--gold);}
.testi:focus-visible{outline:none; box-shadow:0 0 0 3px var(--gold), var(--shadow-lg);}
.testi-v{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.testi-ph{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:12px; padding:24px; text-align:center;}
.testi-ph::before{/* comillas grandes de fondo, decorativas */
    content:'\201C'; position:absolute; top:6%; left:50%; translate:-50% 0;
    font:700 9rem/1 'Poppins', system-ui, sans-serif; color:rgba(255,255,255,.08);}
.testi-play{width:58px; height:58px; border-radius:50%; display:grid; place-items:center;
    border:2px solid var(--gold); color:var(--gold); background:rgba(7,26,61,.35);}
.testi-play svg{width:22px; height:22px; margin-left:3px;}
.testi-ph small{font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#AEBBE0;}
.testi-ig{position:absolute; top:14px; left:14px; z-index:2; width:36px; height:36px; border-radius:11px;
    display:grid; place-items:center; background:rgba(7,26,61,.45); color:#fff;}
.testi-ig svg{width:18px; height:18px;}
.testi-foot{position:absolute; left:0; right:0; bottom:0; z-index:2; padding:48px 66px 18px 18px;
    background:linear-gradient(0deg, rgba(7,26,61,.88), rgba(7,26,61,0));}
.testi-foot b{display:block; font-family:'Poppins', system-ui, sans-serif; font-size:.92rem; line-height:1.25;}
.testi-foot span{display:block; margin-top:3px; font-size:.76rem; color:#C7D2F2;}
.testi-go{position:absolute; right:14px; bottom:16px; z-index:3; width:42px; height:42px; border-radius:50%;
    display:grid; place-items:center; background:var(--gold); color:var(--gold-ink);
    transition:transform .2s ease;}
.testi-go svg{width:18px; height:18px;}
.testi:hover .testi-go{transform:translate(2px,-2px);}
@media (max-width:900px){
.testi-grid{display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain;
      margin-inline:calc(-1 * clamp(20px,4vw,64px)); padding:4px clamp(20px,4vw,64px) 14px;
      scroll-padding-inline:clamp(20px,4vw,64px); scrollbar-width:none;}
.testi-grid::-webkit-scrollbar{display:none;}
.testi{flex:0 0 38%; scroll-snap-align:start;}
.testi:hover{transform:none;}
}
@media (max-width:640px){
.testi{flex-basis:64%;}
}
.bulletin{background:var(--bg-panel-alt);}
.bulletin-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; margin-top:44px; align-items:start;}
@media (max-width:900px){
.bulletin-grid{grid-template-columns:1fr; gap:32px;}
}
.agenda-item{display:flex; gap:18px; padding-block:16px; border-bottom:1px solid var(--border);}
.agenda-item:first-child{padding-top:0;}
.date-badge{flex:none; width:46px; text-align:center; background:var(--blue); color:#fff; border-radius:9px; padding:8px 0;}
.date-badge .d{font-family:'Poppins',sans-serif; font-weight:700; font-size:1.15rem; line-height:1;}
.date-badge .m{width:16px; height:3px; background:currentColor; border-radius:2px; opacity:.85;}
.agenda-item h4{font-family:'Poppins',sans-serif; font-weight:700; font-size:.95rem;}
.news-note{font-size:.88rem; color:var(--ink-faint); margin-top:18px;}
.agenda--photo .agenda-item{align-items:stretch;}
.agenda-photo{flex:none; width:92px; height:92px; border-radius:14px; overflow:hidden;}
.faq-list{margin-top:40px; max-width:78ch;}
details.faq summary{cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:flex-start; gap:16px; font-weight:700; font-size:1rem; font-family:'Poppins',sans-serif; line-height:1.4;}
@media (max-width:560px){
.faq-list{margin-top:26px;}
details.faq summary{font-size:.9rem; gap:10px;}
}
.admissions{background:linear-gradient(160deg, var(--blue-deep), var(--blue-mid)); color:#fff; border-radius:28px;}
.admissions .wrap{padding-block:64px; max-width:calc(var(--maxw) - 48px);}
@media (max-width:640px){
.admissions .wrap{padding-block:40px;}
}
.admissions-top{display:flex; justify-content:space-between; gap:32px; flex-wrap:wrap; align-items:flex-end;}
.admissions h2{color:#fff; font-size:clamp(1.7rem,1.2rem + 1.6vw,2.5rem); margin-top:12px;}
@media (max-width:640px){
.admissions h2{font-size:1.4rem;}
}
.admissions .body-copy{color:#C7D2F2;}
.route-step{--y:56px; position:relative; padding-top:var(--track); text-align:center;}
.route-ic{position:absolute; left:50%; top:calc(var(--y) - 34px); translate:-50% 0; width:68px; height:68px; border-radius:50%;
    display:grid; place-items:center; background:#fff; color:var(--ic); box-shadow:0 14px 28px -10px rgba(0,0,0,.55);}
.route-ic{transition:transform .4s cubic-bezier(.3,1.4,.5,1), box-shadow .4s ease;}
.route-step p{transition:color .3s ease;}
.route-step{outline:none; cursor:default;}
@media (prefers-reduced-motion: reduce){
.route-ic{transition:none;}
}
.route-step p{margin-top:14px; font-size:.9rem; line-height:1.45; color:#E4E9FA;}
@media (max-width:1100px){
.route-step p{font-size:.84rem;}
.route-ic{width:60px; height:60px; top:calc(var(--y) - 30px);}
}
@media (max-width:900px){
.route-step{padding:0 0 0 70px; min-height:48px; text-align:left; display:flex; align-items:center;}
.route-ic, .route-step.is-low .route-ic{left:0; top:0; translate:none; width:48px; height:48px;}
.route-step p{margin-top:0; font-size:.92rem; line-height:1.65;}
}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; margin-top:44px;}
@media (max-width:900px){
.contact-grid{grid-template-columns:1fr;}
}
.info-list{display:flex; flex-direction:column; gap:22px;}
.info-row{display:flex; gap:14px; align-items:flex-start;}
.info-row .ic{width:22px; height:22px; color:var(--accent-ink); flex:none; margin-top:2px;}
.info-row h4{font-family:'Poppins',sans-serif; font-size:.86rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-faint);}
.info-row p{margin-top:4px; font-size:.98rem; line-height:1.4;}
.info-row a{text-decoration:none;}
.info-row a:hover{text-decoration:underline;}
@media (max-width:640px){
.info-list{gap:14px;}
.info-row{gap:10px;}
.info-row .ic{width:17px; height:17px; margin-top:1px;}
.info-row h4{font-size:.74rem; letter-spacing:.04em;}
.info-row p{margin-top:2px; font-size:.9rem; line-height:1.3;}
}
.map-slot{aspect-ratio:1/1; border-radius:var(--radius-panel); overflow:hidden; box-shadow:var(--shadow);
    position:relative; display:block; text-decoration:none;}
.map-slot img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .2s ease;}
.map-slot:hover img{transform:scale(1.03);}
.map-slot-badge{position:absolute; left:16px; bottom:16px; z-index:1; background:var(--blue-deep); color:#fff;
    font-family:'Poppins',sans-serif; font-weight:700; font-size:.8rem; padding:10px 16px;
    border-radius:var(--radius-chip); box-shadow:var(--shadow-lg); display:inline-flex; align-items:center; gap:8px;}
.map-slot-badge svg{width:16px; height:16px; color:var(--gold);}
.preview-toolbar{display:flex;
    position:fixed; left:50%; translate:-50% 0; bottom:20px; z-index:900;
    align-items:center; gap:4px; padding:5px;
    background:var(--bg-panel); border:1px solid var(--border); border-radius:var(--radius-chip); box-shadow:var(--shadow-lg);}
.preview-toolbar{display:none;}
@media (max-width:700px){
.preview-toolbar{display:none;}
}
@media (max-width:640px){
.hero-lede, .page-head .lede{font-size:1rem;}
.proj-card p, .doc-card p, .doc-card span, .doc-card strong, .feat-item p,
    .level-card p, .route-step p, .article-card p, .agenda-item p,
    details.faq .a, .mr-desc, .news-note, #contacto p, .proj-card--full p, #promesa .doc-card p{font-size:.9375rem; line-height:1.6;}
details.faq summary{font-size:1rem;}
.proj-card h4, .doc-card h4, .article-card h4, .agenda-item h4, .feat-item h4, .mr-title{font-size:1.0625rem;}
.eyebrow, .project-panel .eyebrow, .route-chip, .level-pill, .level-badge2, .footer-motto, .footer-cert span{font-size:.75rem;}
.brand-name small, .vp-base-label small{font-size:.625rem;}
}
