/* Visual theme: continuous dark narrative, full-width media and restrained red accents.
   Component structure, native fallbacks and layout primitives live in styles.css. */
:root,[data-theme="dark"] {
  color-scheme:dark;
  --paper:#0b0b0b;--surface:#141414;--wash:#191919;--ink:#f5f5f4;--muted:#b5b5b5;--line:#343434;
  --navy:#101010;--navy-deep:#080808;--on-navy:#f5f5f4;--on-navy-muted:#c4c4c4;
  --accent:#cb303c;--lime:#f5f5f4;--teal:#ed777f;--error:#ffa4a4;
  --display:"Aptos Display","Segoe UI",Arial,sans-serif;--font:"Aptos","Segoe UI",Arial,sans-serif;
  --radius:999px;--max:1320px;--gutter:clamp(1.25rem,6.8vw,7.5rem);--section-space:clamp(5rem,10vw,10rem);
  --header-height:76px;--shadow:0 22px 80px #0006;
}
[data-theme="light"] {
  color-scheme:light;--paper:#f5f5f5;--surface:#fff;--wash:#e9e9e9;--ink:#171717;--muted:#545454;
  --line:#d1d1d1;--accent:#b32330;--teal:#a72531;--error:#a81f2a;
}
body{background:var(--paper);font-size:1rem;line-height:1.6}
h1,h2,h3,h4{font-weight:500;letter-spacing:-.035em}
h2{font-size:clamp(2.1rem,4.2vw,3.9rem);line-height:1.12;max-width:24ch}
h3{line-height:1.25}
.section-subtitle{font-weight:500;line-height:1.5}
.eyebrow{display:inline-flex;max-width:100%;width:fit-content;border:1px solid var(--line);border-radius:999px;padding:8px 15px;font:400 .875rem/1.4 var(--font);letter-spacing:0;text-transform:none;color:var(--ink);margin-bottom:28px;background:var(--surface)}
.eyebrow::before{width:7px;height:7px;border-radius:50%;background:var(--accent)}
.reading-progress{position:fixed;inset:0 0 auto;height:2px;z-index:45;pointer-events:none}
.reading-progress span{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;will-change:transform}
.site-header{border-bottom:0;background:var(--paper)}
.nav{padding:0 clamp(18px,3vw,48px);min-height:var(--header-height);max-width:1720px;gap:24px;flex-wrap:nowrap}
.brand-logo{width:102px}.brand-nec{width:57px}.brand-divider{background:#ffffff40}
.brand-logo,.brand-nec{filter:brightness(0) invert(1)}
[data-theme="light"] .brand-logo,[data-theme="light"] .brand-nec{filter:none}
.nav-primary{gap:26px}
.nav-primary a{font-size:.875rem;color:var(--muted);border-bottom:0;padding:22px 0}
.nav-primary a:hover,.nav-primary a[aria-current]{color:var(--ink)}
.nav-actions{gap:8px}
.segmented a{min-width:32px;min-height:44px;font:.75rem var(--font)}
.icon-button{border-color:var(--line);transition:background .2s,border-color .2s}
.icon-button:hover{border-color:var(--muted)}
.nav-demo{font-size:.8125rem!important;padding:12px 19px!important}
.nav-menu{padding:30px var(--gutter) 48px;background:var(--paper);box-shadow:0 25px 50px #0005}
.nav-menu a{font-size:1.05rem;line-height:1.3;padding:20px 0;color:var(--ink)}
.button{font-size:.9375rem;font-weight:500;min-height:50px;padding:15px 24px;border-radius:999px;gap:22px}
.button.primary,.button.light,[data-theme="dark"] .button.primary{background:var(--accent);color:#fff;border:1px solid #ffffff18}
.button.primary:hover,.button.light:hover{background:#d33340;filter:none;transform:translateY(-2px)}
.nav-menu a:hover,details > summary:hover h3{color:var(--teal)}
:focus-visible{outline-color:var(--teal)}
.hero{isolation:isolate;position:relative;display:flex;flex-direction:column;justify-content:center;min-height:660px;padding:62px 26px 24px;margin:0 10px;border-radius:20px;overflow:hidden;background:#111;color:#fff}
.hero-visual{position:absolute;z-index:-2;inset:0;min-height:0;display:block;align-self:auto}
.hero-visual picture{position:absolute;inset:0;width:100%;height:100%;min-height:0;display:block;overflow:hidden}
.hero-visual picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%;filter:saturate(.5) brightness(.7);transform:scale(1.06)}
.hero::before{display:none}
.hero-visual picture::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.94) 0%,rgba(5,5,5,.85) 34%,rgba(5,5,5,.34) 78%),linear-gradient(0deg,#080808 0%,transparent 65%);pointer-events:none}
.hero-content{padding:0;max-width:800px;width:100%;position:relative}
.hero .hero-eyebrow{border-color:#ffffff35;background:#202020d9;color:#e5e5e5;font-size:.75rem;padding:9px 13px;margin-bottom:25px}
.hero h1{font-size:clamp(2.2rem,5vw,4.75rem);font-weight:600;letter-spacing:-.04em;line-height:1.03;text-transform:uppercase;text-wrap:balance;max-width:19ch;margin-bottom:26px}
.hero h1 > span{display:inline}
.hero-title-accent{color:inherit}
.hero h1::after{content:"";display:inline-block;width:.12em;height:.12em;margin-left:.07em;background:#e3414d}
.hero-lede{font-size:1rem;color:#d2d2d2;max-width:48ch;line-height:1.55;margin-bottom:30px}
.hero-cta{margin-top:24px;gap:20px;align-items:center}
.hero-demo{border:0;color:#e5e5e5;font-size:.875rem}
.hero-visual figcaption{position:absolute;right:25px;bottom:25px;display:none;background:none;padding:0;color:#ccc;font-size:.75rem;max-width:29ch;text-align:right;min-height:0}
.hero-bottom{width:100%;max-width:none;position:relative;margin:45px 0 0;padding:0;gap:20px;align-items:center}
.hero-bottom p{font-size:.8125rem;max-width:45ch;line-height:1.5;color:#bdbdbd}
.hero-bottom .scroll-link{border-color:#ffffff50;width:46px;height:46px;flex-shrink:0}
.manifesto{padding-top:clamp(70px,12vw,170px);padding-bottom:clamp(65px,10vw,130px)}
.manifesto h2{max-width:28ch;font-size:clamp(2.2rem,4.8vw,4.6rem);font-weight:500;line-height:1.2;letter-spacing:-.04em;margin-bottom:34px}
[data-story-line]{color:var(--muted);transition:color .6s ease}
[data-story-line].is-read{color:var(--ink)}
.manifesto-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;max-width:1040px}
.manifesto-foot p{font-size:1rem;color:var(--muted);margin:0}
.text-link{font-size:.9375rem;color:var(--teal)}
.chapter-nav{padding:0 var(--gutter);max-width:calc(var(--max) + 2*var(--gutter));border:0}
.chapter-nav a{font-size:.875rem;gap:12px;border-color:var(--line);color:var(--muted)}
.chapter-nav a>span:first-child{font-size:.75rem;color:var(--muted)}
.chapter-nav a[aria-current="step"]{color:var(--ink);border-bottom-color:var(--accent)}
.chapter-nav a[aria-current="step"]>span:first-child{color:var(--teal)}
.section.band{background:var(--paper)}
.section-grid{gap:42px}
.section-heading p:not(.eyebrow){font-size:1rem}
.index-row summary{min-height:74px;padding:23px 0;gap:16px}
.index-row h3{font-size:1.0625rem;line-height:1.4}
.index-num{font-size:.75rem}
.index-row[open] > summary h3{color:var(--ink)}
.index-row[open] .disclosure{color:var(--teal)}
.row-body p{font-size:1rem;line-height:1.65}
.row-body{padding:0 24px 26px 44px}
#oportunidades{border-top:0}
#smart-cities{background:var(--paper);padding-top:0;padding-bottom:var(--section-space);color:var(--ink)}
.platform-stage{position:relative;isolation:isolate;overflow:hidden;border-radius:22px;min-height:490px;padding:40px 25px;display:flex;align-items:flex-start;margin-bottom:55px;background:#151515;color:#fff}
.platform-image{position:absolute;inset:0;z-index:-2}
.platform-image picture,.platform-image img{width:100%;height:100%;object-fit:cover}
.platform-image img{filter:saturate(.55) brightness(.65)}
.platform-stage::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#080808e8,#08080870),linear-gradient(0deg,#080808,transparent 75%)}
.platform-stage .section-heading{margin:0;max-width:670px}
#smart-cities .platform-stage h2{font-size:clamp(2.4rem,5vw,4.5rem);max-width:15ch;margin-bottom:24px}
#smart-cities .platform-stage .section-subtitle{color:#e4e4e4;max-width:37ch;font-size:1rem;line-height:1.55}
#smart-cities .eyebrow{color:#fff;border-color:#ffffff40;background:#222b}
.platform-metrics{margin:0 0 65px;padding:28px 0;border-color:var(--line)}
.platform-metrics strong{font-weight:400;font-size:clamp(2.6rem,5.5vw,5.2rem);color:var(--ink)}
.platform-metrics span{color:var(--muted);font-size:.8125rem}
.platform-metrics div{gap:14px}
.prose{color:var(--muted);font-size:1rem}
.prose strong{color:var(--ink)}
.sc-diagram{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:28px 18px}
.sc-chip{font-size:.8125rem}
.sc-chip svg{color:var(--teal)}
.sc-diagram-core{border-color:var(--line);background:var(--wash);border-radius:16px}
.sc-diagram-core strong{letter-spacing:.02em;font-weight:500}
.sc-diagram-core span{font-size:.75rem;line-height:1.5;color:var(--teal);text-align:center}
.sc-diagram-link{background:var(--muted)}
.sc-diagram-link::after{border-color:var(--teal)}
.sc-diagram-caption{font:400 .8125rem var(--font);color:var(--muted)}
#casos-uso{background:var(--paper);border-top:var(--border)}
#por-que-elegirnos .section-heading,#casos-uso .section-heading,#ecosistema .section-heading{position:static;margin-bottom:48px}
.catalog-tools{max-width:450px;margin-bottom:28px}
.catalog-search > span{font:400 .875rem var(--font);letter-spacing:0;margin-bottom:12px}
.catalog-search input{border:1px solid #777;border-radius:999px;background:var(--surface);padding:14px 22px;font-size:1rem}
.catalog-search input:focus{border-color:var(--muted)}
.catalog-label{font:400 .8125rem var(--font);letter-spacing:0;text-transform:none}
.catalog-options{border-top:0;border-radius:16px;padding-right:6px;gap:4px;max-height:250px}
.catalog-option{font-size:.9375rem;padding:15px 14px;min-height:52px;border:0;border-radius:10px}
.catalog-option > span:first-child{font-size:.75rem}
.catalog-option[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:inset 3px 0 var(--accent)}
.catalog-option[aria-pressed="true"] > span:first-child,.catalog-option[aria-pressed="true"] .catalog-arrow{color:var(--teal)}
.catalog-panels{background:var(--surface);border:var(--border);border-radius:20px;padding:26px 18px}
.case-panel-heading h3{font-size:clamp(1.75rem,2.4vw,2.75rem)}
.case-panel-heading > .index-num{color:var(--teal);font-size:.8125rem}
.case-panel-heading p{font-size:1rem}
.use-case-thumbnail{padding:0;border-radius:12px;overflow:hidden}
.image-expand{background:#161616;color:#fff}
.case-panel-actions{gap:18px}
.media-language{font:400 .8125rem var(--font)}
.catalog-pagination [data-case-position]{font:400 .8125rem var(--font)}
.catalog-empty{font-size:.9375rem}
.ecosystem-grid{gap:36px}
.ecosystem-item p{font-size:1rem}
.ecosystem-item h3{font-size:1.25rem}
.project-grid{gap:30px}
.project-item{background:var(--surface);border:1px solid transparent;border-radius:22px;overflow:hidden;transition:border-color .3s}
.project-item:hover{border-color:var(--line)}
.project-image{padding:0;border:0;background:var(--surface);border-radius:0;overflow:hidden}
.project-image img{aspect-ratio:16/11;object-fit:cover;filter:saturate(.45) brightness(.85)}
.project-item summary:hover .project-image img{filter:saturate(.9) brightness(1);transform:scale(1.04)}
.project-number{background:#171717;border:1px solid #ffffff30;color:#fff;border-radius:999px;left:18px;top:18px;padding:7px 12px;font-size:.75rem}
.project-caption{padding:25px 22px 28px;gap:15px;min-height:148px}
.project-category{font:400 .8125rem var(--font);color:var(--muted)}
.project-caption h3{font-size:1.35rem;line-height:1.22}
.project-arrow{border-color:var(--line)}
.project-description{padding:0 22px 28px;font-size:1rem}
.world-signature{border-color:var(--line)}
.world-signature > span{font-size:.9375rem}
.news-item time{font:400 .875rem var(--font);color:var(--muted)}
.news-item summary{padding:28px 0}
.news-item h3{font-size:clamp(1.2rem,2vw,1.65rem);line-height:1.35}
.news-inline{font-size:1rem}
#contacto{border-top:0}
.contact-copy{min-width:0;overflow-wrap:anywhere}
#contacto h2{text-transform:uppercase;font-size:clamp(2.3rem,4.4vw,4.4rem);max-width:20ch}
.contact-form{padding:28px 22px!important;background:var(--surface);border:var(--border);border-radius:22px}
.contact-form > p.full{font-size:.9375rem}
.contact-form label{font-size:.875rem}
.contact-form input,.contact-form textarea{border:1px solid #777;background:var(--paper);padding:13px 15px;border-radius:12px;min-height:52px}
.contact-form .button{margin-top:8px}
.form-status{color:var(--teal);font-size:.9375rem}
#demo{background:var(--paper);border-top:var(--border)}
#acceso{border-top:var(--border)}
.footer{background:#101010;border-radius:24px 24px 0 0;margin:0 10px;color:#f5f5f4}
.footer-main p{font-size:1rem;color:#bdbdbd}
.footer-logo{width:210px}
.footer-bottom a,.footer-bottom p{font-size:.8125rem}
.back-top{font-size:.875rem}
dialog{border:var(--border);border-radius:20px;background:var(--surface);color:var(--ink)}
dialog::backdrop{background:#000d}
.news-summary,.case-detail p,.case-detail li{font-size:1rem}
.case-detail h3{font:500 .875rem var(--font);letter-spacing:0;text-transform:none}
.case-thumbnail{border-radius:10px;overflow:hidden}
.image-viewer{background:#101010;color:#fff;border:1px solid #333}
.image-viewer figcaption,.image-viewer [data-video-description]{font-size:.9375rem;color:#c6c6c6}
.image-viewer-close{background:#171717}
.image-viewer-close:focus-visible{outline-color:#f1888f}
.media-error{font-size:.9375rem}
.not-found{min-height:85vh}
@media(min-width:640px){
  .hero{padding:70px 60px 30px;min-height:650px}
  .hero h1{font-size:clamp(3rem,5vw,4.75rem)}
  .hero .hero-eyebrow{font-size:.875rem}
  .hero-visual figcaption{display:block;right:32px;bottom:34px}
  .hero-bottom{padding-right:210px;margin-top:56px}
  .manifesto h2{max-width:25ch}
  .chapter-nav a{padding:24px 22px}
  .platform-stage{padding:60px 48px;min-height:580px;align-items:center}
  .catalog-panels{padding:32px}
  .case-panel-actions .button{font-size:.9375rem}
  .contact-form{padding:36px!important}
  .world-signature > span:last-child{font-size:.8125rem}
}
@media(min-width:1000px){
  .nav{gap:30px}.nav-actions{margin-left:10px}
  .hero{margin:0 12px;min-height:calc(100svh - 94px);max-height:none;padding:85px clamp(70px,8vw,140px) 35px;border-radius:24px}
  .hero-content{max-width:820px;padding:0}
  .hero h1{font-size:clamp(3.4rem,4.7vw,5rem);max-width:20ch;font-weight:600}
  .hero-lede{font-size:1.125rem;max-width:46ch}
  .hero-cta{margin-top:32px;gap:30px}
  .hero-visual{min-height:0;display:block}
  .hero-visual picture{height:100%;min-height:0;position:absolute}
  .hero-visual figcaption{font-size:.8125rem;min-height:0;bottom:38px;right:35px}
  .hero-bottom{margin-top:64px;padding:0 190px 0 0;max-width:1150px}
  .hero-bottom p{font-size:.875rem}
  .section-grid{gap:80px}
  .section-grid .rail{top:calc(var(--header-height) + 40px)}
  #smart-cities{padding-left:12px;padding-right:12px;max-width:none}
  #smart-cities > .section-inner{max-width:none}
  .platform-stage{min-height:630px;padding:80px clamp(70px,8vw,140px);max-width:1720px;margin:0 auto 65px}
  .platform-metrics,.sc-grid{max-width:var(--max);margin-left:auto;margin-right:auto;width:calc(100% - 2*var(--gutter))}
  .sc-grid{gap:70px}.sc-diagram{padding:34px 26px}
  .catalog{gap:40px;grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr)}
  .catalog-options{max-height:710px}
  .catalog-panels{padding:34px;top:calc(var(--header-height) + 28px)}
  .case-panel-heading{min-height:0}
  .catalog-tools{max-width:31%}
  #por-que-elegirnos .section-heading,#casos-uso .section-heading,#ecosistema .section-heading{column-gap:70px}
  .project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .project-caption{min-height:170px}
  .contact{gap:75px}
  .footer{padding-top:90px}
}
@media(min-width:1380px){
  .hero-content .eyebrow{margin-bottom:30px}
  .hero-visual{min-height:0}
  .hero-visual picture{min-height:0}
  .hero-visual figcaption{font-size:.8125rem}
  .hero-lede{font-size:1.125rem}
  .hero-cta{margin-top:34px}
}
@media(max-width:374px){
  .nav{padding:0 14px;gap:10px}.brand-logo{width:85px}.nav-actions{gap:5px}
  .segmented a{min-width:28px}
  .hero{padding:44px 21px 22px;min-height:645px}
  .hero h1{font-size:2.15rem}
  .hero .button{padding:14px 20px}
  .hero-cta{gap:16px}
  .hero-visual figcaption{display:none}
  .eyebrow{font-size:.8125rem}
  #contacto h2{font-size:1.85rem}
  .platform-stage{padding:32px 22px;min-height:480px}
  .sc-diagram{padding:24px 14px}
}
@media(prefers-reduced-motion:reduce){
  [data-story-line]{color:var(--ink);transition:none}
  .hero-visual picture img{transform:none!important}
  .reading-progress{display:none}
}
@media print{
  .reading-progress,.hero-visual,.platform-image{display:none}
  .hero,.platform-stage{background:#fff!important;color:#000!important;min-height:0;margin:0;padding:20px 0;border-radius:0}
  .hero::before,.platform-stage::before{display:none}
  .hero-lede,.hero-bottom p,.platform-stage .section-subtitle{color:#222!important}
  .manifesto{padding:24px 0}
}
