:root {
  --blue: #143c75;
  --cyan: #00a7c8;
  --logo-cyan: #00c8d0;
  --logo-red: #f83000;
  --logo-yellow: #ffb000;
  --logo-magenta: #e80080;
  --green: #4d8d64;
  --orange: #f28b2e;
  --red: #d94b42;
  --ink: #1d2935;
  --muted: #677482;
  --paper: #f6f7f5;
  --soft: #e9f1ef;
  --white: #fff;
  --line: rgba(29,41,53,.13);
  --shadow: 0 22px 58px rgba(25,43,55,.12);
  --ease: cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Poppins,Arial,sans-serif;color:var(--ink);background:#f7f8f6;line-height:1.65}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
.topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;min-height:118px;padding:14px clamp(18px,5vw,70px);background:rgba(255,255,255,.98);border-bottom:0;box-shadow:0 10px 26px rgba(10,35,69,.1)}
.brand{display:flex;align-items:center;color:var(--blue);font-weight:800;letter-spacing:-.02em}
.brand img{width:86px;height:86px;object-fit:contain;padding:0;border-radius:0;background:transparent;filter:none}
.menu{display:flex;align-items:center;justify-content:center;gap:28px;font-size:15px;font-weight:800;color:#0f315f}
.menu a{opacity:.95}.menu a:hover{opacity:1;color:var(--logo-cyan)}
.header-program{display:flex;align-items:center;justify-content:center;min-width:220px;padding:0;background:transparent;box-shadow:none;border:0}
.header-program img{width:220px;height:86px;object-fit:contain}
.menu-toggle{display:none;width:46px;height:46px;border:1px solid rgba(20,60,117,.18);border-radius:8px;background:#fff}
.menu-toggle span{display:block;width:19px;height:2px;margin:5px auto;background:var(--blue)}
.hero{position:relative;display:grid;grid-template-columns:minmax(320px,.82fr) minmax(360px,1.18fr);gap:clamp(26px,4.5vw,64px);align-items:center;height:calc(100vh - 123px);min-height:560px;padding:clamp(24px,4vw,42px) clamp(18px,5vw,70px) clamp(24px,4vw,42px);background:radial-gradient(circle at 74% 34%,rgba(0,200,208,.24),transparent 31%),radial-gradient(circle at 88% 78%,rgba(232,0,128,.13),transparent 26%),linear-gradient(90deg,#f1fbfa 0%,#fff 52%,#edfafa 100%);overflow:hidden}
.hero::before{content:"";position:absolute;left:0;top:0;width:8px;height:100%;background:linear-gradient(180deg,var(--logo-red),var(--logo-cyan),var(--logo-yellow),var(--logo-magenta))}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 8% 24%,rgba(0,200,208,.14),transparent 26%),radial-gradient(circle at 92% 82%,rgba(232,0,128,.08),transparent 24%),linear-gradient(90deg,rgba(255,255,255,.78),rgba(255,255,255,.34));pointer-events:none}
.hero>*{position:relative;z-index:1}
.hero-logo{width:min(135px,34vw);margin-bottom:14px}
.eyebrow{margin:0 0 13px;color:var(--cyan);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
h1,h2,h3,p{margin-top:0}
h1{margin-bottom:18px;font-size:clamp(32px,3.8vw,58px);line-height:1.02;letter-spacing:-.045em;color:var(--blue)}
h2{margin-bottom:16px;font-size:clamp(26px,3vw,44px);line-height:1.08;letter-spacing:-.038em;color:var(--blue)}
h3{font-size:clamp(20px,2vw,30px);line-height:1.12;letter-spacing:-.03em}
.hero-copy{padding:18px 0 18px 22px;border-left:7px solid var(--logo-red)}
.hero-copy>p:not(.eyebrow){max-width:680px;color:#425667;font-size:16px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border:1px solid rgba(20,60,117,.22);border-radius:8px;background:var(--white);color:var(--blue);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.btn.primary{background:var(--blue);color:var(--white);border-color:var(--blue)}
.hero-feature{position:relative;height:clamp(360px,58vh,500px);min-height:0}
.hero-feature::before{content:"";position:absolute;inset:-24px;border-radius:28px;background:linear-gradient(135deg,rgba(248,48,0,.16),rgba(0,200,208,.28),rgba(232,0,128,.16));filter:blur(14px);z-index:0}
.hero-slide{position:absolute;inset:0;margin:0;overflow:hidden;border-radius:14px;box-shadow:0 26px 70px rgba(20,60,117,.22);opacity:0;transform:scale(.985);transition:opacity .7s var(--ease),transform .9s var(--ease);background:#d9e3df;z-index:1}
.hero-slide.is-active{opacity:1;transform:scale(1)}
.hero-slide img{width:100%;height:100%;object-fit:cover;filter:saturate(1.08) contrast(1.03);transform:scale(1.02)}
.hero-slide.is-active img{animation:heroDrift 7s ease-in-out forwards}
.hero-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,60,117,0) 45%,rgba(20,60,117,.58) 100%)}
.float-card{position:absolute;z-index:4;border-radius:12px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.55);box-shadow:0 22px 60px rgba(25,43,55,.18);backdrop-filter:blur(14px)}
.float-card-main{left:-28px;bottom:58px;width:min(360px,78%);padding:24px;transform:rotate(-1.6deg)}
.float-card-main span{display:block;margin-bottom:8px;color:var(--logo-cyan);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.float-card-main strong{display:block;color:var(--blue);font-size:24px;line-height:1.1;letter-spacing:-.035em}
.float-card-small{right:-14px;top:-22px;width:202px;padding:12px 15px;background:linear-gradient(135deg,#143c75 0%,var(--logo-cyan) 72%,var(--logo-magenta) 145%);color:#fff;transform:rotate(2deg);transition:transform .35s var(--ease)}
.float-card-small.is-changing{transform:rotate(2deg) scale(1.06)}
.float-card-small strong{display:block;font-size:46px;line-height:.85;letter-spacing:-.05em}
.float-card-small span{display:block;margin-top:8px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.hero-dots{position:absolute;z-index:5;right:24px;bottom:24px;display:flex;gap:8px}
.hero-dots button{width:12px;height:12px;border:0;border-radius:50%;background:rgba(255,255,255,.62);cursor:pointer}
.hero-dots button.is-active{width:28px;border-radius:999px;background:var(--logo-yellow)}
.impact-band{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}
.impact-band article{padding:16px clamp(16px,2.6vw,30px);border-right:1px solid var(--line);transition:transform .25s var(--ease),background .25s var(--ease)}
.impact-band article:hover{transform:translateY(-4px);background:#fbf8f3}
.impact-band article:nth-child(1) strong{color:var(--logo-red)}
.impact-band article:nth-child(2) strong{color:var(--logo-cyan)}
.impact-band article:nth-child(3) strong{color:var(--logo-magenta)}
.impact-band article:nth-child(4) strong{color:var(--logo-yellow)}
.impact-band strong{display:block;font-size:clamp(30px,3.5vw,48px);line-height:.9;letter-spacing:-.05em}
.impact-band span{display:block;margin-top:6px;color:#536374;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
section{padding:clamp(46px,6vw,86px) clamp(18px,5vw,70px)}
.section-title{max-width:900px;margin-bottom:28px}
.section-title p:not(.eyebrow){color:var(--muted)}
.intro-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:32px;align-items:start;background:var(--white)}
.intro-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.intro-gallery img{width:100%;height:250px;object-fit:cover;border-radius:10px}
.intro-gallery img:first-child{grid-row:span 2;height:512px}
.intro-copy{grid-column:2;padding:24px 0 0;max-width:760px;color:#536374;font-size:17px}
.barrios{background:var(--paper)}
.barrios-stack{display:grid;gap:22px}
.barrio-feature{display:grid;grid-template-columns:minmax(320px,1fr) minmax(320px,.9fr);gap:0;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;overflow:hidden;transition:transform .28s var(--ease),box-shadow .28s var(--ease)}
.barrio-feature:hover{transform:translateY(-5px);box-shadow:0 28px 72px rgba(25,43,55,.17)}
.barrio-feature.reverse{grid-template-columns:minmax(320px,.9fr) minmax(320px,1fr)}
.barrio-feature.reverse .barrio-photo{order:2}
.barrio-photo img{width:100%;height:100%;min-height:440px;object-fit:cover}
.barrio-info{padding:clamp(24px,3.5vw,42px);border-top:8px solid var(--accent)}
.barrio-info p{color:#556676}
.barrio-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}
.barrio-numbers span{padding:14px;border-radius:8px;background:color-mix(in srgb,var(--accent) 11%,#fff);font-size:11px;font-weight:800;text-transform:uppercase;color:#52606e}
.barrio-numbers strong{display:block;color:var(--accent);font-size:36px;line-height:1;letter-spacing:-.05em}
.plan-card{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f8faf9}
.plan-card>img{width:150px;height:105px;object-fit:contain;background:#eef3f2;border-radius:7px}
.plan-card strong{display:block;color:var(--blue)}
.plan-card p{margin:4px 0 8px;font-size:13px}
.plan-card a{color:var(--accent);font-size:12px;font-weight:800;text-transform:uppercase}
.noticias{background:linear-gradient(180deg,#fff 0%,rgba(0,200,208,.1) 100%)}
.regularizacion{background:linear-gradient(135deg,#fff 0%,rgba(255,176,0,.16) 100%)}
.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.news-grid{grid-template-columns:repeat(3,1fr)}
.story-grid.compact{grid-template-columns:repeat(4,1fr);margin-top:18px}
.story-card{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 16px 42px rgba(25,43,55,.08);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.story-card:hover{transform:translateY(-5px);box-shadow:0 24px 64px rgba(25,43,55,.14)}
.story-image img{width:100%;height:260px;object-fit:cover}
.compact .story-image img{height:190px}
.story-copy{padding:24px}
.story-copy>p{color:#5b6a78}
.story-open{margin-top:14px;border:0;border-radius:8px;background:var(--blue);color:#fff;padding:12px 15px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;cursor:pointer}
.story-open:hover{background:#0f8c9b}
.story-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:clamp(16px,4vw,44px)}
.story-modal[hidden]{display:none}
.story-modal-backdrop{position:absolute;inset:0;background:rgba(12,27,43,.62);backdrop-filter:blur(9px)}
.story-modal-card{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(980px,94vw);max-height:90vh;overflow:hidden;border-radius:16px;background:#fff;box-shadow:0 32px 110px rgba(0,0,0,.35)}
.story-modal-card>img{width:100%;height:clamp(190px,28vh,300px);min-height:0;object-fit:cover}
.story-modal-copy{min-height:0;overflow:auto;padding:clamp(24px,3.6vw,44px)}
.story-modal-copy h2{font-size:clamp(28px,3vw,46px)}
.story-modal-copy>p{color:#526374;font-size:17px}
.story-modal-copy #storyModalBody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;color:#4d5d6c;font-size:15px}
.story-modal-copy #storyModalBody p{break-inside:avoid;margin-bottom:15px}
.story-modal-close{position:absolute;right:16px;top:16px;z-index:3;border:0;border-radius:999px;background:var(--blue);color:#fff;padding:10px 14px;font-weight:800;cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.program-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.program-grid article{padding:28px;border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:0 16px 42px rgba(25,43,55,.08)}
.program-grid strong{display:block;color:var(--blue);font-size:24px;line-height:1.1;letter-spacing:-.035em}
.program-grid p{margin:12px 0 0;color:#536374}
.recorridas{background:linear-gradient(180deg,#fff 0%,#f7f0e8 100%)}
.editorial-row{display:grid;grid-template-columns:1.15fr 1fr;gap:28px;align-items:center;margin-bottom:28px}
.editorial-row>img{width:100%;height:470px;object-fit:cover;border-radius:12px;box-shadow:var(--shadow)}
.editorial-row p{color:#536374;font-size:17px}
.editorial-row>div{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.editorial-row h3{grid-column:1/-1}
.editorial-row p{margin:0}
.photo-strip{grid-column:1/-1}
.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.photo-strip img{height:140px;width:100%;object-fit:cover;border-radius:8px}
.modelos{background:#f5f7f0}
.model-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.model-card{display:grid;gap:9px;padding:10px;background:var(--white);border:1px solid var(--line);border-radius:10px;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.model-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(25,43,55,.12)}
.model-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:7px}
.model-card span{color:var(--cyan);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.model-card strong{font-size:16px;color:var(--blue)}
.catalog-link{margin-top:24px}
.catalog-panel{position:fixed;inset:5%;z-index:50;overflow:auto;padding:28px;background:rgba(255,255,255,.98);border-radius:16px;box-shadow:0 30px 100px rgba(0,0,0,.28)}
.catalog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.catalog-head button,.models-toolbar button{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 14px;font-weight:800;color:var(--blue)}
.models-toolbar{display:flex;gap:8px;overflow:auto;margin-bottom:18px}
.models-toolbar button.is-active{background:var(--blue);color:#fff}
.models-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tramites{background:radial-gradient(circle at 82% 20%,rgba(242,139,46,.38),transparent 28%),linear-gradient(135deg,#123b74,#0f8c9b);color:#fff}
.tramites h2{color:#fff}
.tramites .eyebrow{color:#bcebf3}
.tramite-panel{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:center}
.tramite-panel p{color:rgba(255,255,255,.82)}
.tramite-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.tramite-steps article{padding:20px;border-radius:10px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18)}
.tramite-steps strong{display:block;color:#fff;font-size:32px}
.tramite-steps span{font-weight:800}
.footer{display:flex;align-items:center;gap:16px;padding:28px clamp(18px,5vw,70px);background:#101820;color:#fff}
.footer img{width:58px;height:58px;object-fit:contain}.footer strong,.footer span{display:block}.footer span{color:rgba(255,255,255,.62)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
@keyframes heroDrift{from{transform:scale(1.03) translateX(0)}to{transform:scale(1.08) translateX(-12px)}}
@media(max-width:1100px){
  .topbar{display:flex;min-height:102px;padding-top:14px;padding-bottom:14px}.brand img{width:72px;height:72px}.header-program{margin-left:auto;min-width:168px;padding:0}.header-program img{width:168px;height:64px}
  .menu{position:fixed;right:18px;top:100px;display:none;flex-direction:column;align-items:flex-end;padding:18px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}
  .menu a{color:var(--blue)}
  .menu.is-open{display:flex}.menu-toggle{display:block}
  .hero{height:auto;min-height:0;padding-top:20px;padding-bottom:26px}
  .hero,.intro-split,.barrio-feature,.barrio-feature.reverse,.editorial-row,.tramite-panel{grid-template-columns:1fr}
  h1{font-size:clamp(28px,4.8vw,36px)}
  .hero-feature{order:-1;height:198px}.float-card-main{left:18px;bottom:28px;width:min(300px,64%);padding:17px}.float-card-main strong{font-size:20px}.float-card-small{right:16px;top:10px;width:154px;padding:10px 12px}.float-card-small strong{font-size:34px}.float-card-small span{font-size:9px;line-height:1.18}
  .hero-logo{display:none}.hero-copy{padding-top:10px;padding-bottom:10px}.hero-copy>p:not(.eyebrow){font-size:14px}.hero-actions{margin-top:14px}
  .story-modal-card>img{height:230px}.story-modal-copy #storyModalBody{grid-template-columns:1fr}
  .barrio-feature.reverse .barrio-photo{order:0}
  .story-grid,.story-grid.compact,.program-grid,.model-preview,.models-grid{grid-template-columns:repeat(2,1fr)}
  .intro-copy{grid-column:auto}
}
@media(max-width:720px){
  .topbar{min-height:88px;padding-top:10px;padding-bottom:10px}.brand{gap:10px}.brand img{width:58px;height:58px}.header-program{min-width:126px;padding:0}.header-program img{width:126px;height:48px}
  h1{font-size:clamp(30px,9vw,42px)}h2{font-size:clamp(24px,7vw,34px)}
  .hero{padding-top:16px}.hero-feature{height:300px}.float-card-main{left:12px;right:auto;bottom:18px;width:min(252px,70%);padding:14px;transform:rotate(-1deg)}.float-card-main span{margin-bottom:5px;font-size:10px}.float-card-main strong{font-size:17px;line-height:1.12}.float-card-small{display:none}.hero-dots{left:auto;right:16px;bottom:16px}
  .story-modal{padding:10px}.story-modal-card{max-height:94vh}.story-modal-copy{padding:22px}.story-modal-card>img{height:170px}
  .impact-band,.barrio-numbers,.story-grid,.story-grid.compact,.program-grid,.model-preview,.models-grid,.tramite-steps{grid-template-columns:1fr}
  .intro-gallery{grid-template-columns:1fr}.intro-gallery img,.intro-gallery img:first-child{height:auto;aspect-ratio:4/3}
  .barrio-photo img,.editorial-row>img{min-height:0;height:auto;aspect-ratio:4/3}
  .plan-card{grid-template-columns:1fr}.plan-card>img{width:100%}
  .catalog-panel{inset:2%;padding:18px}
}

