/* Shared refinements: clear navigation, readable rhythm, and motion with its own space. */
:root{--page-gutter:clamp(22px,5vw,80px);--header-height:84px;--soft-ink:#06111d;--rule-bright:#81ddea;--fade-white:#fff 0%,rgba(255,255,255,.972) 10%,rgba(255,255,255,.896) 20%,rgba(255,255,255,.784) 30%,rgba(255,255,255,.648) 40%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.352) 60%,rgba(255,255,255,.216) 70%,rgba(255,255,255,.104) 80%,rgba(255,255,255,.028) 90%,rgba(255,255,255,0) 100%}
html{scroll-padding-top:calc(var(--header-height) + 24px)}
:is(.has-planet,.has-solution-scene,.has-case-study,.has-editorial-content) .site-header{position:sticky;top:0;height:var(--header-height);background:#030914f2;backdrop-filter:blur(16px);border-bottom:1px solid #a0dcee26}
.site-header .header-actions{gap:14px}
.site-header .button-small{white-space:nowrap}
.site-header .brand{width:clamp(170px,16vw,224px)}
.nav-panel{top:calc(100% - 1px);border-radius:0 0 4px 4px;padding:30px;max-height:calc(100svh - var(--header-height) - 18px);overscroll-behavior:contain}
.nav-panel a{min-height:36px;display:flex;align-items:center;padding:5px 10px;margin:0 -10px;line-height:1.25;border-radius:2px}
.nav-panel a:hover,.nav-panel a:focus-visible{background:#123043;color:#baf2fa}
.nav-panel .nested-nav-link{padding-left:24px;font-size:13px;min-height:30px}
.nav-panel .menu-close{min-height:44px;min-width:60px}
.nav-panel .menu-heading{align-items:center;padding-bottom:10px;margin-bottom:14px}
.nav-panel .menu-heading p{font-size:12px;color:#9de4ed}
.nav-panel .mobile-nav-group{padding:6px 0}
.nav-panel .mobile-nav-group summary{min-height:40px;font-size:16px}
.nav-panel .mobile-nav-group>div{padding:2px 0 6px 12px}
.nav-panel .mobile-nav-group h3{margin-top:10px;font-size:14px}
.nav-panel .mobile-nav-group a{line-height:1.2}
/* 19 oct 2026, a pedido de Catalina: dentro del acordeón del menú móvil, una sección mixta
   (p.ej. "Servicios": "Consultoría y estrategia" CON submenú, junto a "Implementación y
   migración" SIN submenú, ambas al mismo nivel) hacía ver el enlace suelto como si dependiera
   del grupo de arriba -- la regla genérica .nested-nav-link (pensada para el menú de
   escritorio) le daba letra más chica y gris (13px) mientras su hermano <summary> usa 16px en
   blanco. Esta regla, más específica, iguala tamaño/color SOLO dentro de .mobile-nav-group,
   sin tocar el uso de .nested-nav-link en los demás menús (escritorio). */
.nav-panel .mobile-nav-group .nested-nav-link{font-size:16px;color:#f5f8fc;min-height:40px;padding-left:12px}
/* 19 oct 2026, a pedido de Catalina: "Casos de Éxito" es el único elemento de primer nivel
   del menú móvil sin submenú, así que se arma como enlace simple (clase .mobile-nav-link) en
   vez de <details>/<summary>. Pero heredaba el estilo genérico de enlace anidado (más pequeño,
   gris, con el margen/padding de .nav-panel a), y se veía distinto a "Servicios", "Industrias",
   etc. Aquí se iguala al estilo de las cabeceras de sección (<summary>) para que "Casos de
   Éxito" luzca igual que las demás, en vez de verse como un elemento secundario. */
.nav-panel>a.mobile-nav-link{padding:0!important;margin:0;font-size:16px!important;line-height:1.25;color:#f5f8fc;min-height:40px}
.nav-panel .nav-group-title>a,.nav-panel .nav-group-title>span{font-size:14px!important}
.nav-panel .mega-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.nav-panel .mega-grid>div>a:not(.nested-nav-link),.nav-panel .mega-grid>div>span{display:flex;align-items:center;min-height:36px;padding:5px 10px;margin:0 -10px;line-height:1.25;font-size:14px;font-weight:600;color:#d7ecf3;letter-spacing:-.005em}
.nav-panel .mega-grid>div>a:not(.nested-nav-link):hover,.nav-panel .mega-grid>div>a:not(.nested-nav-link):focus-visible{color:#baf2fa;background:#123043;border-radius:2px}
.nav-panel .nav-compact h3{margin:0 0 2px!important}
.nav-panel .nav-compact>div{margin-bottom:0}
.nav-panel .nav-compact a,.nav-panel .nav-compact span{min-height:28px!important;padding:3px 10px!important}
.nav-panel .nav-compact .nested-nav-link{min-height:24px!important;padding-left:22px!important}
.nav-panel .nav-compact>div>a,.nav-panel .nav-compact>div>span{padding-left:22px!important;border-left:1px solid #26465c;font-size:13px!important;min-height:24px!important}
.mobile-toggle{min-width:44px;min-height:44px;line-height:1}
/* 19 oct 2026, a pedido de Catalina: se quitó el botón "Pausar animación" del
   encabezado (ruido visual en escritorio y celular; la página se anima por
   defecto). Las reglas .site-motion-control vivían aquí y ya no se usan --
   el botón ya no se genera (ver scripts/localize.py, shared_design()). */
:is(.section-index,.case-category,.case-chapter-number,.case-outline nav>p){font-size:12px;color:#96c1d2}
.section-top .eyebrow,.contact-content .eyebrow{font-size:12px;color:#95dbe8}
.solution-sources a,.case-source a,.case-source p{font-size:14px;color:#98b8c9}
.rail-controls button{min-width:44px;min-height:44px}
.footer-main a{font-size:14px;line-height:1.7;min-height:36px;display:flex;align-items:center}
.footer-bottom a,.contact-details a{min-height:44px;display:inline-flex;align-items:center}
.case-outline{top:calc(var(--header-height) + 30px);max-height:calc(100svh - var(--header-height) - 60px);overflow-y:auto}
.case-reading,.case-chapter{scroll-margin-top:calc(var(--header-height) + 28px)}
.breadcrumb-current,.breadcrumb-divider{display:inline;overflow-wrap:break-word}
.solution-hero h1,.case-heading h1,.editorial-heading h1{text-wrap:balance;overflow-wrap:normal;word-break:normal}
.logo-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.logo-gallery .product-card{padding:0;border:0;background:none;min-width:0}
.logo-gallery .product-card .source-image{height:126px;min-height:0;padding:24px;margin:0;background:#f3f7fa;border-radius:2px}
.logo-gallery .product-card .source-image img{max-height:78px}
.blog-landing{max-width:1440px;margin:auto;padding:44px 5% 42px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:6%;align-items:center}
.blog-landing .eyebrow{margin-top:36px;font-size:12px}
.blog-landing h1{font-size:clamp(44px,4.7vw,72px);font-weight:400;letter-spacing:-.055em;line-height:1.08;margin-top:20px;text-wrap:balance}
.blog-landing .solution-summary{font-size:17px;line-height:1.75;max-width:610px;margin-top:24px}
.blog-stage-wrap{height:420px;min-width:0}
body.has-blog-index .solution-stage{position:relative;inset:auto;width:100%;height:100%;background:none}
.has-blog-index .scene-caption{left:5%;right:5%;bottom:0}
.has-blog-index .solution-content{padding-top:0}
.has-blog-index .solution-content .inner-section:first-child{padding-top:38px}
.blog-context{max-width:1440px;margin:auto;padding:20px 5% 70px;border-top:1px solid var(--experience-rule)}
.blog-context .solution-intro{padding:0 0 35px}
.blog-context .solution-copy{width:100%;max-width:740px}
.blog-context .solution-intro .solution-copy{border-top:0;padding-bottom:0}
.blog-context .solution-story{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;padding:0}
.blog-context .scene-chapter{width:100%;min-height:0;padding:30px 0 0;border-top:1px solid var(--experience-rule);justify-content:start}
.has-blog-index .blog-context .scene-chapter h2{font-size:30px}
.blog-context .scene-chapter p{font-size:16px;line-height:1.8}
:is(.blog-card,.case-card,.nova-news-card,.nova-vertical-card):focus-visible{outline:2px solid #9debf4;outline-offset:8px}
:is(.blog-card,.nova-news-card):hover h2,:is(.blog-card,.nova-news-card):hover h3{color:#a4edf5}
@media(max-width:1300px){.site-header .desktop-nav{display:none}.site-header .mobile-toggle{display:block}.site-header .header-actions{margin-left:auto}}
@media(max-width:900px){:root{--header-height:84px}.logo-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:749px){
 :root{--header-height:78px;--page-gutter:6vw}
 html[lang] .site-header{height:var(--header-height);gap:10px;padding-inline:6%}
 html[lang] .site-header>.brand{width:clamp(116px,36vw,176px);min-width:100px}
 html[lang] .site-header .header-actions{gap:8px}
 body.menu-is-open{overflow:hidden}
 .site-header .header-actions>.button{display:none}
 .nav-panel{position:absolute;inset:100% 0 auto;height:calc(100dvh - var(--header-height));border:0;border-top:1px solid #284352;max-height:none;padding:20px 6% 45px;border-radius:0;background:#071322}
 .nav-panel .menu-heading{position:sticky;top:-20px;z-index:1;background:#071322;padding-top:8px}
 .mobile-nav-group summary{min-height:52px;font-size:18px;display:flex;align-items:center;justify-content:space-between}
 .mobile-nav-group a{min-height:44px;font-size:15px;line-height:1.6}
 .nav-panel>a.mobile-nav-link{min-height:52px;font-size:18px!important}
 body.has-solution-scene .solution-stage{position:relative;inset:auto;height:320px;width:100%}
 body.has-solution-scene .solution-hero{padding:34px 6% 40px;min-height:0;background:#02060b}
 body.has-solution-scene .solution-hero .eyebrow{margin-top:28px}
 body.has-solution-scene .solution-intro{padding:0 6% 12px}
 body.has-solution-scene .solution-copy{width:100%;max-width:none}
 body.has-vertical-scene .vertical-intro.solution-copy{width:88%}
 body.has-solution-scene .scene-chapter{min-height:0;padding:38px 0 45px;justify-content:start}
 body.has-solution-scene .scene-chapter:before{display:none}
 body.has-solution-scene .scene-chapter h2{font-size:clamp(30px,8.7vw,38px);line-height:1.14}
 .solution-scroll{margin-top:28px}
 .solution-hero .breadcrumb-divider,.solution-hero .breadcrumb-current{display:inline;font-size:13px;line-height:1.8}
 .solution-hero .breadcrumb-divider{margin-inline:8px}
 .logo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .logo-gallery .product-card .source-image{height:110px;padding:18px}
 .logo-gallery .product-card .source-image img{max-height:70px}
 .blog-landing{padding:30px 6% 20px;grid-template-columns:1fr;gap:15px}
 .blog-landing .eyebrow{margin-top:25px}
 .blog-landing h1{font-size:clamp(38px,10.5vw,55px);margin-top:18px}
 .blog-landing .solution-summary{font-size:16px;line-height:1.75;margin-top:22px}
 .blog-stage-wrap{height:230px}
 body.has-blog-index .solution-stage{height:100%}
 .has-blog-index .scene-caption{display:none}
 .has-blog-index .solution-content .inner-section:first-child{padding-top:30px}
 .blog-context{padding:30px 6% 45px}
 body.has-blog-index .blog-context .solution-intro{padding:0 0 26px}
 .blog-context .solution-story{grid-template-columns:1fr;gap:15px}
 body.has-blog-index .blog-context .scene-chapter{padding:25px 0}
 .case-outline{position:static;max-height:none;overflow:visible}
 .contact-content .eyebrow{letter-spacing:.09em}
 .contact-content h2{font-size:clamp(34px,9.6vw,46px);line-height:1.12}
 .contact-actions{gap:18px}.contact-actions .text-link{min-height:44px}
 .footer-main a{min-height:42px}
}

/* A quieter editorial rhythm: strong chapter titles, precise navigation, integrated media. */
.page-breadcrumbs{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:baseline;font-size:13px;line-height:1.6;color:#9fb7c7;max-width:100%;margin:0 0 24px}
.page-breadcrumbs a{display:inline-flex;align-items:center;min-height:30px;flex:none;transition:color .2s}
.page-breadcrumbs a:hover{color:#b1f1fa}
.page-breadcrumbs>span[aria-hidden]{color:#4e6b7d}
.page-breadcrumbs>[aria-current]{color:#d1e0e9;max-width:42ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.breadcrumb-ellipsis{color:#4e6b7d}
@media(min-width:750px){body.has-solution-scene .solution-hero .solution-copy{max-width:760px}}
.case-hero>.page-breadcrumbs{margin-bottom:55px}
.editorial-hero>.page-breadcrumbs{margin-bottom:36px}
body.has-solution-scene:not(.has-blog-index) .solution-hero .eyebrow{margin-top:34px;color:#8de6f1;letter-spacing:.13em}
body.has-solution-scene:not(.has-vertical-scene):not(.has-blog-index) .scene-chapter{min-height:58svh;padding-block:65px}
body.has-solution-scene .vertical-topic h2,body.has-solution-scene .vertical-topic h3{font-size:clamp(30px,2.6vw,39px);line-height:1.22;letter-spacing:-.035em}
body.has-vertical-scene .vertical-story .scene-chapter{min-height:65svh;padding-block:50px 65px}
body.has-solution-scene .scene-caption p{color:#8eaec0}
.solution-feature{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:8%;align-items:center;padding-block:72px;border-bottom:1px solid #9ad2e329}
.solution-feature-copy{min-width:0}
.solution-feature-copy h2{font-size:clamp(30px,3vw,44px);line-height:1.16;letter-spacing:-.045em;margin:20px 0 24px;text-wrap:balance}
.solution-feature-copy p{font-size:17px;line-height:1.85;color:#b0c4d1;max-width:64ch;margin:20px 0}
.solution-feature-copy .article-link{display:inline-flex;gap:24px;align-items:center;min-height:48px;font-size:15px;color:#9beaf4;margin-top:12px}
.feature-index{display:flex;align-items:center;gap:18px;color:#7bdbea;font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:.1em}
.feature-index:after{content:'';height:1px;width:50px;background:#6ec9da66}
.solution-feature>.source-image{width:100%;max-width:none;margin:0;display:flex;align-items:center;justify-content:center}
.solution-feature>.source-image img{max-height:400px;object-fit:contain}
.solution-feature>.solution-feature-art{background:radial-gradient(ellipse,#17394c66,transparent 68%);aspect-ratio:1.1}
.solution-feature>.solution-feature-art img{mix-blend-mode:screen;width:100%;height:100%;max-height:none;object-fit:contain;mask-image:radial-gradient(ellipse,#000 52%,transparent 75%)}
.solution-feature:nth-child(odd)>.source-image{grid-column:1;grid-row:1}
.solution-feature:nth-child(odd)>.solution-feature-copy{grid-column:2;grid-row:1}
.related-page-grid{gap:28px 36px}
body.has-solution-scene .related-page-grid>a{padding-bottom:22px;font-size:19px}
.related-scene-image{aspect-ratio:1.8;max-height:215px;margin-bottom:18px;mix-blend-mode:screen}
.related-page-name{align-items:center}
.related-page-name span{width:36px;height:36px;border:1px solid #8dd9e63d;border-radius:50%;display:grid;place-items:center;transition:background .2s,color .2s}
.related-page-grid a:hover .related-page-name span,.related-page-grid a:focus-visible .related-page-name span{background:#a6edf5;color:#04111b}
@media(max-width:900px){.solution-feature{gap:5%;padding-block:50px}.solution-feature-copy p{font-size:16px}.solution-feature-copy h2{font-size:32px}}
@media(max-width:749px){
 .page-breadcrumbs{font-size:12px;gap:5px 9px;margin-bottom:18px}
 .page-breadcrumbs>[aria-current]{max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .case-hero>.page-breadcrumbs,.editorial-hero>.page-breadcrumbs{margin-bottom:30px}
 body.has-solution-scene:not(.has-blog-index) .solution-stage{height:220px}
 body.has-solution-scene:not(.has-blog-index) .solution-hero{padding-top:22px}
 body.has-solution-scene:not(.has-blog-index) .solution-hero .eyebrow{margin-top:16px}
 body.has-solution-scene .solution-hero h1{margin-top:16px;line-height:1.08}
 body.has-solution-scene .solution-summary{margin-top:22px;line-height:1.7}
 body.has-solution-scene:not(.has-vertical-scene):not(.has-blog-index) .scene-chapter{min-height:0;padding-block:35px 42px}
 body.has-vertical-scene .vertical-story .scene-chapter{min-height:0;padding-block:30px 40px}
 body.has-solution-scene .vertical-topic h2,body.has-solution-scene .vertical-topic h3{font-size:30px}
 .solution-feature{grid-template-columns:1fr;gap:22px;padding-block:36px}
 .solution-feature:nth-child(odd)>.source-image,.solution-feature:nth-child(odd)>.solution-feature-copy{grid-column:auto;grid-row:auto}
 .solution-feature>.source-image{max-height:260px}
 .solution-feature>.solution-feature-art{height:250px;aspect-ratio:auto}
 .solution-feature-copy h2{font-size:30px;margin-top:18px}
 .related-page-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}
 body.has-solution-scene .related-page-grid>a{font-size:16px;padding-bottom:16px}
 .related-page-name{align-items:start;gap:10px}.related-page-name span{width:24px;height:24px;border:0;font-size:16px}
 .related-scene-image{aspect-ratio:1.25;max-height:160px;margin-bottom:8px}
 .has-planet .pillar-grid h2 br{display:initial}
 .has-planet .hero-content{padding-top:285px}
 .has-planet .hero{min-height:955px}
 .has-planet .planet-hud{top:90px;width:190px}
 .has-planet .planet-hud>p{display:none}
}
@media(prefers-reduced-motion:reduce){.page-breadcrumbs a,.related-page-name span{transition:none}}

/* ==========================================================================
   Rediseño 2026 · capa híbrida (oscuro para espectáculo, claro para lectura)
   Se carga al final de design-system.css. Para volver al diseño anterior,
   basta con borrar este bloque completo.
   ========================================================================== */
:root{
  --rd-night:#060C18;--rd-deep:#0B1830;--rd-panel:#0F2140;--rd-cyan:#4FE0F2;
  --rd-white:#FFFFFF;--rd-paper:#F6F8FB;--rd-mist:#EAF0F6;--rd-line:#DCE3EC;
  --rd-ink:#0C1524;--rd-ink2:#3E4A5C;--rd-blue:#1E5EFF;--rd-blue-soft:#E7EEFF;--rd-on-dark:#D2DDE9;
}

/* 1. Legibilidad: nada de párrafos de 12 px sobre negro */
body{font-size:17px}
main p{font-size:max(1em,16px)}
.section-top p,.section-title-row p,.solution-summary,.scene-chapter p,.solution-intro p{font-size:18px;line-height:1.7}
main p,main li{color:var(--rd-on-dark)}

/* 2. Menú principal visible en portátiles (1101–1300 px) */
@media(min-width:1101px) and (max-width:1300px){
  html[lang] .site-header .desktop-nav,.site-header .desktop-nav{display:flex;gap:22px}
  .site-header .help-link{display:none}
  html[lang] .site-header .mobile-toggle,.site-header .mobile-toggle{display:block}
  .site-header .header-actions{margin-left:0}
  .site-header .brand{width:170px}
}

/* 3. Zonas claras de lectura en el Home */
:is(.purpose,.cases,#soluciones,#noticias,.trust,.clients,.nova-partners){
  position:relative;z-index:1;background:var(--rd-paper);color:var(--rd-ink)
}
:is(.cases,#noticias,.clients){background:var(--rd-white)}
:is(.purpose,.cases,#soluciones,#noticias,.trust,.clients,.nova-partners) :is(h2,h3,h4,strong){color:var(--rd-ink)}
:is(.purpose,.cases,#soluciones,#noticias,.trust,.clients,.nova-partners) :is(p,li,span,small){color:var(--rd-ink2)}
:is(.purpose,.cases,#soluciones,#noticias,.trust,.clients,.nova-partners) :is(.eyebrow,.section-index){color:var(--rd-blue)}
:is(.purpose,.cases,#soluciones,#noticias,.trust,.clients,.nova-partners) a:not(.button){color:var(--rd-ink)}
:is(.purpose,.cases,#soluciones,#noticias,.trust,.clients,.nova-partners) .button{background:var(--rd-blue);border-color:var(--rd-blue);color:#fff}
:is(.purpose,.cases,#soluciones,#noticias,.trust,.clients,.nova-partners) :is(article,.case-card,.nova-card){border-color:var(--rd-line)}

/* La tarjeta "Habla con un experto" pasa a azul sobre la zona clara */
#nosotros .purpose-contact{background:var(--rd-blue);border-color:var(--rd-blue)}
#nosotros .purpose-contact :is(h2,h3,h4,strong,p,li,span,small,a){color:#fff}

/* 3b. El pie "01 · Visualización ilustrativa" del hero 3D no comunica nada (Catalina,
   30 sep 2026): se oculta en todas las páginas de solución. El marcado se conserva
   porque solution-scene.js necesita .scene-phase-label/.scene-phase-number para animar. */
body.has-solution-scene .scene-caption{display:none}

/* 4. Páginas internas: el 3D manda en la cabecera y luego deja espacio al contenido */
@media(min-width:750px){
  body.has-solution-scene .solution-stage{position:absolute;top:var(--header-height,100px);bottom:auto;height:calc(100svh - var(--header-height,100px));min-height:620px}
  body.has-solution-scene :is(.solution-intro,.solution-content){position:relative;z-index:1}
  body.has-solution-scene .solution-intro{background:var(--rd-paper);color:var(--rd-ink);padding:88px 5% 72px}
  body.has-solution-scene .solution-intro .solution-copy{width:100%;max-width:1180px;border-top:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px 64px;align-items:start}
  body.has-solution-scene .solution-intro h2{color:var(--rd-ink);margin-top:0}
  body.has-solution-scene .solution-intro p{color:var(--rd-ink2);margin-top:0}
  body.has-solution-scene .solution-logo{display:block;height:54px;width:auto;margin-bottom:22px;object-fit:contain;object-position:left}
  body.has-solution-scene .solution-intro .solution-copy{margin:0 auto}
  body.has-solution-scene .solution-intro .solution-benefits{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:16px;list-style:none;padding:0}
  body.has-solution-scene .solution-intro .solution-benefits li{display:flex;align-items:flex-start;gap:14px;background:#fff;border:1px solid var(--rd-line);border-radius:16px;padding:22px;color:var(--rd-ink);font-size:16px;line-height:1.55;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
  body.has-solution-scene .solution-intro .solution-benefits li:before{display:none}
  body.has-solution-scene .solution-intro .solution-benefits li:hover{border-color:var(--rd-blue);box-shadow:0 10px 22px #0c15240f;transform:translateY(-2px)}
  body.has-solution-scene .solution-benefit-icon{flex:none;display:grid;place-items:center;width:26px;height:26px;color:var(--rd-blue)}
  body.has-solution-scene .solution-story{position:relative;z-index:1;background:var(--rd-mist);box-shadow:0 0 0 100vmax var(--rd-mist);clip-path:inset(0 -100vmax);padding:80px 5%;max-width:1440px;margin-inline:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
  body.has-solution-scene .scene-chapter{width:auto;max-width:none;min-height:0;padding:30px 28px;justify-content:flex-start;border:1px solid var(--rd-line);border-radius:18px;background:#fff;box-shadow:0 1px 3px #0c15240d;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
  body.has-solution-scene .scene-chapter:hover{transform:translateY(-5px);box-shadow:0 18px 32px #0c15241f;border-color:var(--rd-blue)}
  body.has-solution-scene .scene-chapter>span:after{display:none}
  body.has-solution-scene .scene-chapter-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--rd-blue-soft);color:var(--rd-blue)}
  body.has-solution-scene .scene-chapter-index{display:block;margin-top:16px;font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--rd-ink2)}
  body.has-solution-scene .scene-chapter h2{color:var(--rd-ink);font-size:clamp(22px,2vw,27px);margin-top:8px}
  body.has-solution-scene .scene-chapter p{color:var(--rd-ink2);font-size:16px;line-height:1.65;margin-top:12px}
  body.has-solution-scene .solution-content{background:var(--rd-mist);border-top:0}
  body.has-solution-scene .solution-related>h2{color:var(--rd-ink)}
  body.has-solution-scene .related-page-grid>a{background:#fff;border:1px solid var(--rd-line);border-radius:16px;padding:12px 12px 20px;overflow:hidden;color:var(--rd-ink)}
  body.has-solution-scene .related-scene-image{mix-blend-mode:normal;background:var(--rd-deep);border-radius:12px;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
  body.has-solution-scene .related-page-name{padding:16px 10px 0;color:var(--rd-ink)}
  body.has-solution-scene .related-page-grid span{color:var(--rd-blue)}
  body.has-solution-scene .solution-sources a{color:var(--rd-ink2)}

  /* Productos anidados por Unidad (30 sep 2026, piloto DataQuality→SitiData): tarjetas
     expandibles con logo, inspiradas en mapsplatform.google.com/solutions/. */
  body.has-solution-scene .unit-products{position:relative;z-index:1;background:var(--rd-paper);padding:64px 5% 72px;max-width:1180px;margin:0 auto}
  body.has-solution-scene .unit-products>.eyebrow{display:block;margin-bottom:18px;font-size:12px;letter-spacing:.13em;color:var(--rd-blue)}
  body.has-solution-scene .unit-product{background:#fff;border:1px solid var(--rd-line);border-radius:18px;margin-bottom:14px;overflow:hidden}
  body.has-solution-scene .unit-product summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 26px;cursor:pointer}
  body.has-solution-scene .unit-product summary::-webkit-details-marker{display:none}
  body.has-solution-scene .unit-product-logo{height:34px;width:auto;object-fit:contain}
  body.has-solution-scene .unit-product-name{font-weight:600;color:var(--rd-ink)}
  body.has-solution-scene .unit-product-toggle{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--rd-blue-soft);color:var(--rd-blue);transition:transform .25s ease}
  body.has-solution-scene .unit-product[open] .unit-product-toggle{transform:rotate(180deg)}
  body.has-solution-scene .unit-product-body{padding:0 26px 28px;border-top:1px solid var(--rd-line)}
  body.has-solution-scene .unit-spec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}
  body.has-solution-scene .unit-spec{background:var(--rd-mist);border-radius:14px;padding:18px}
  body.has-solution-scene .unit-spec h3{font-size:16px;color:var(--rd-ink);margin:0 0 8px}
  body.has-solution-scene .unit-spec p{font-size:15px;line-height:1.55;color:var(--rd-ink2);margin:0}
  body.has-solution-scene .unit-products .text-link{display:inline-flex;margin-top:20px;color:var(--rd-blue)}
}
/* Base (todas las anchuras): las tarjetas de Producto son claras aunque la página
   siga en modo oscuro en móvil, para que se vean bien sobre cualquier fondo. */
body.has-solution-scene .unit-products{position:relative;z-index:1;padding:32px 6% 45px}
body.has-solution-scene .unit-products>.eyebrow{display:block;margin-bottom:16px;font-size:12px;letter-spacing:.13em;color:#8de6f1}
body.has-solution-scene .unit-product{background:#fff;border:1px solid var(--rd-line);border-radius:18px;margin-bottom:14px;overflow:hidden}
body.has-solution-scene .unit-product summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;cursor:pointer}
body.has-solution-scene .unit-product summary::-webkit-details-marker{display:none}
body.has-solution-scene .unit-product-logo{height:30px;width:auto;object-fit:contain}
body.has-solution-scene .unit-product-name{font-weight:600;color:var(--rd-ink)}
body.has-solution-scene .unit-product-toggle{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--rd-blue-soft);color:var(--rd-blue);transition:transform .25s ease}
body.has-solution-scene .unit-product[open] .unit-product-toggle{transform:rotate(180deg)}
body.has-solution-scene .unit-product-body{padding:0 18px 22px;border-top:1px solid var(--rd-line)}
body.has-solution-scene .unit-spec-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:18px}
body.has-solution-scene .unit-spec{background:var(--rd-mist);border-radius:14px;padding:16px}
body.has-solution-scene .unit-spec h3{font-size:15px;color:var(--rd-ink);margin:0 0 6px}
body.has-solution-scene .unit-spec p{font-size:14px;line-height:1.5;color:var(--rd-ink2);margin:0}
body.has-solution-scene .unit-products .text-link{display:inline-flex;margin-top:18px;color:var(--rd-blue)}

/* 13 oct 2026, a pedido de Catalina (página Censos): cuando una Unidad trae "sections" en vez
   de un "specs" plano, cada Producto se divide en bloques con su propio título de sección
   (ej. "Desafío", "Solución", "Diferenciadores") para que se lea como su propio one-pager, no
   como una sola grilla de tarjetas sueltas. var(--rd-blue) es legible sobre el fondo blanco de
   .unit-product-body en cualquier ancho, así que esta regla no necesita repetirse por media
   query (a diferencia del resto de este bloque, que sí distingue escritorio/base). */
body.has-solution-scene .unit-product-section{margin-top:26px}
body.has-solution-scene .unit-product-section:first-child{margin-top:0}
body.has-solution-scene .unit-section-title{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--rd-blue);font-weight:700;margin:0 0 10px}

/* 2 oct 2026, a pedido de Catalina (DataRutas): la regla "base" de arriba (pensada para
   fondo oscuro en móvil, por eso usa un cian claro en el eyebrow) está fuera de cualquier
   media query y aparece MÁS ABAJO en el archivo que el bloque de escritorio de la línea 218
   -- en pantallas >=750px igual ganaba la cascada y dejaba el eyebrow "Componentes de la
   solución" en azul clarito sobre el fondo claro (--rd-paper), casi ilegible. Se repite
   aquí la versión correcta para escritorio para que siempre gane. */
@media(min-width:750px){
  body.has-solution-scene .unit-products>.eyebrow{color:var(--rd-blue)}
}

/* 4b. Iconos de capítulos/beneficios (30 sep 2026): también deben verse bien en el recorrido
   móvil, donde .scene-chapter conserva el fondo 3D oscuro y no entra en el bloque anterior. */
body.has-solution-scene .scene-chapter-icon:after,body.has-solution-scene .solution-benefit-icon:after{display:none}
body.has-solution-scene .scene-chapter-icon{flex:none}
@media(max-width:749px){
  /* 5 oct 2026, a pedido de Catalina: en móvil el logo del producto quedaba "pegado" a la
     división oscuro/claro de arriba -- ".solution-intro" no tiene relleno propio en móvil
     (pensado para cuando el primer elemento era el título h2, antes de que existiera el logo
     de producto) y el logo solo traía 8px de margen superior. Se sube a 28px, un respiro
     similar al que ya usan otros bloques de esta franja móvil (el propio Hero usa 34px). */
  body.has-solution-scene .solution-logo{display:block;height:32px;width:auto;margin:28px 0 16px;object-fit:contain}
  body.has-solution-scene .scene-chapter{display:flex;flex-direction:column;align-items:flex-start}
  body.has-solution-scene .scene-chapter-icon{width:44px;height:44px;border-radius:12px;background:#ffffff14;color:#fff;display:grid;place-items:center;margin-bottom:4px}
  body.has-solution-scene .scene-chapter-index{font-size:12px;letter-spacing:.08em;color:#9ac2d1;margin-top:10px}
  body.has-solution-scene .solution-intro .solution-benefits{list-style:none;padding:0;display:flex;flex-direction:column;gap:12px;margin-top:18px}
  body.has-solution-scene .solution-intro .solution-benefits li{display:flex;align-items:flex-start;gap:12px;background:#fff;border:1px solid var(--rd-line);border-radius:14px;padding:16px;color:var(--rd-ink);font-size:15px;line-height:1.5}
  body.has-solution-scene .solution-intro .solution-benefits li:before{display:none}
  body.has-solution-scene .solution-benefit-icon{flex:none;width:22px;height:22px;color:var(--rd-blue)}

  /* 2 oct 2026, a pedido de Catalina: en móvil ".solution-intro" (donde va el logo del
     producto, justo arriba) se quedaba con el fondo oscuro de siempre (interiors.css línea 3),
     mientras que en escritorio este mismo bloque pasa a fondo claro "--rd-paper" (línea 221
     de este archivo). El logo de cada producto está pensado para verse sobre fondo claro, así
     que en móvil quedaba oscuro sobre oscuro, casi invisible -- se repite aquí la misma
     estructura clara que ya tiene escritorio, para que ambos se vean igual. */
  body.has-solution-scene .solution-intro{background:var(--rd-paper);color:var(--rd-ink)}
  body.has-solution-scene .solution-intro h2{color:var(--rd-ink)}
  body.has-solution-scene .solution-intro p{color:var(--rd-ink2)}
  body.has-solution-scene .solution-content{background:var(--rd-mist);border-top:0}
}

/* 5. Home según la maqueta: reto, productos propios, banda IA y respaldo */
:is(.rd-retos,.rd-marcas,.rd-ia){position:relative;z-index:1;box-shadow:0 0 0 100vmax var(--rd-bg);clip-path:inset(0 -100vmax);background:var(--rd-bg)}
.rd-retos{--rd-bg:var(--rd-paper)}.rd-marcas{--rd-bg:var(--rd-white)}.rd-ia{--rd-bg:var(--rd-deep)}
:is(.purpose,.cases,#soluciones,#noticias,.trust,.clients,.nova-partners){box-shadow:0 0 0 100vmax var(--rd-paper);clip-path:inset(0 -100vmax)}
:is(.cases,.clients){box-shadow:0 0 0 100vmax var(--rd-white)}
:is(.rd-retos,.rd-marcas) :is(h2,h3,strong){color:var(--rd-ink)}
:is(.rd-retos,.rd-marcas) .section-heading span{color:var(--rd-ink2)}
:is(.rd-retos,.rd-marcas) :is(.eyebrow,.section-index){color:var(--rd-blue)}
:is(.rd-retos,.rd-marcas) p{color:var(--rd-ink2)}
:is(.rd-retos,.rd-marcas) .text-link{color:var(--rd-ink)}
.rd-lead{max-width:440px;font-size:18px;line-height:1.7}
.rd-reto-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:48px}
.rd-reto{display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:190px;padding:28px;background:#fff;border:1px solid var(--rd-line);border-radius:18px;transition:transform .2s,box-shadow .2s,border-color .2s}
.rd-reto:hover{transform:translateY(-3px);border-color:var(--rd-blue);box-shadow:0 14px 36px #0c152414}
.rd-retos .rd-reto strong{font-family:var(--heading);font-weight:500;font-size:21px;line-height:1.35;letter-spacing:-.01em}
.rd-retos .rd-reto span{font-weight:700;font-size:16px;color:var(--rd-blue)}
.rd-retos .rd-reto-cta{background:var(--rd-ink);border-color:var(--rd-ink)}
.rd-retos .rd-reto-cta strong{color:#fff}.rd-retos .rd-reto-cta span{color:var(--rd-cyan)}
.rd-retos>.text-link{margin-top:36px}
.rd-marca-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:48px}
.rd-marca{display:flex;flex-direction:column;gap:20px;min-height:150px;padding:28px;border:1px solid var(--rd-line);border-radius:18px;background:var(--rd-paper);transition:border-color .2s}
a.rd-marca:hover{border-color:var(--rd-blue)}
.rd-marca img{height:40px;width:auto;max-width:100%;object-fit:contain;object-position:left center}
.rd-marcas .rd-wordmark{font-family:var(--heading);font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:40px;color:var(--rd-ink)}
.rd-marcas .rd-marca span{font-size:16px;line-height:1.5;color:var(--rd-ink2)}
.rd-ia{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center}
.rd-ia .section-top{margin-bottom:28px}
.rd-ia-copy>p{max-width:560px;margin-top:24px;font-size:18px;line-height:1.7;color:var(--rd-on-dark)}
.rd-chips{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 8px}
.rd-chips a{padding:9px 16px;border:1px solid #ffffff38;border-radius:999px;color:#fff;font-size:15px;transition:border-color .2s,color .2s}
.rd-chips a:hover{border-color:var(--rd-cyan);color:var(--rd-cyan)}
.rd-ia .button{margin-top:28px}
.rd-ia-art img{display:block;width:100%;height:auto;mix-blend-mode:screen}
@media(min-width:750px){.has-planet .pillar-grid article{min-height:48svh;padding:44px 0}}
@media(max-width:1100px){.rd-reto-grid,.rd-marca-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rd-ia{grid-template-columns:1fr}.rd-ia-art{max-width:560px}}
@media(max-width:749px){.rd-marca-grid{grid-template-columns:1fr;gap:14px;margin-top:32px}.rd-reto-grid{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin-top:32px;padding-bottom:6px;scrollbar-width:none}.rd-reto-grid::-webkit-scrollbar{display:none}.rd-reto{flex:0 0 82%;scroll-snap-align:start;min-height:0;padding:22px}.rd-retos .rd-reto strong{font-size:19px}.rd-marca{min-height:0;padding:22px}.rd-lead{font-size:17px}}
body :is(.rd-retos,.rd-marcas,.cases,.clients,.nova-partners) .section-top :is(.eyebrow,.section-index){color:var(--rd-blue)}

/* 6. Franja de cifras, portafolio en los pilares, industrias y respaldo unido */
.rd-proof{position:relative;z-index:1;padding:44px 5% 52px;background:linear-gradient(180deg,#060c1800,#060c18e6 28%,#060c18);border-top:1px solid #ffffff14}
.rd-proof-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;max-width:1600px;margin:0 auto}
.rd-proof-stats div{display:flex;flex-direction:column;gap:6px;padding-left:18px;border-left:1px solid #ffffff26}
.rd-proof-stats strong{font-family:var(--heading);font-size:clamp(32px,3vw,46px);font-weight:600;letter-spacing:-.03em;line-height:1.1;color:#fff}
.rd-proof-stats span{font-size:15px;line-height:1.5;color:var(--rd-on-dark)}
.rd-marquee{max-width:1600px;margin:40px auto 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.rd-marquee-track{display:flex;width:max-content;animation:rd-marquee 70s linear infinite}
.rd-marquee:hover .rd-marquee-track,.motion-paused .rd-marquee-track{animation-play-state:paused}
.rd-marquee-set{display:flex;gap:8px;padding-right:8px}
.rd-marquee .client-logo{flex:0 0 auto;width:150px;height:70px;border:0;background:transparent}
.rd-marquee .client-logo:last-child{grid-column:auto}
.rd-marquee .client-logo img{max-height:42px;width:78%;opacity:.72}
@keyframes rd-marquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.rd-marquee-track{animation:none}.rd-marquee{overflow-x:auto}}
.has-planet .pillar-grid .text-link{margin-top:24px;align-self:flex-start;font-size:15px}
.rd-industrias{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:36px}
.rd-retos .rd-industrias span{margin-right:6px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rd-ink2)}
.rd-retos .rd-industrias a{padding:8px 15px;border:1px solid var(--rd-line);border-radius:999px;background:#fff;font-size:15px;color:var(--rd-ink);transition:border-color .2s,color .2s}
.rd-retos .rd-industrias a:hover{border-color:var(--rd-blue);color:var(--rd-blue)}
.rd-retos .rd-industrias .rd-industrias-all{border-color:transparent;background:transparent;font-weight:700;color:var(--rd-blue)}
.rd-marcas .section-title-row .rd-lead{margin-top:18px;max-width:560px}
.rd-respaldo-head{padding-bottom:0}
.rd-respaldo .partner-spotlight-heading>div:first-child{display:none}
.rd-respaldo .partner-spotlight{padding-top:36px}
.rd-respaldo .awards{padding-top:28px}
.rd-respaldo .rd-sub{font-family:var(--heading);font-size:26px;font-weight:500;letter-spacing:-.02em;color:#fff}
.rd-aliados>.nova-partners{max-width:none;padding:0 0 44px;box-shadow:none;clip-path:none;background:transparent}
@media(max-width:1100px){.rd-proof-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}}
@media(max-width:749px){.rd-proof{padding:36px 6% 40px}.rd-proof-stats strong{font-size:30px}.rd-marquee .client-logo{width:120px;height:60px}.rd-industrias{gap:8px}}

/* 7. Tipografía de la maqueta (Sora), logo con detalle, Home más corto y escena 3D en la banda IA */
@font-face{font-family:'Sora';src:url('/assets/fonts/sora-latin.woff2') format('woff2');font-weight:100 800;font-style:normal;font-display:swap}
:root{--heading:'Sora','Manrope',sans-serif}
:is(h1,h2,h3,.section-heading){font-family:var(--heading)}
:is(h1,.section-heading,.pillar-grid h2){font-weight:600;letter-spacing:-.035em}
.brand img{filter:none}
@media(min-width:750px){.has-planet .pillar-grid article{min-height:38svh;padding:36px 0}}
@media(min-width:750px){.has-planet .location-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin-top:24px}
.has-planet .location-steps article,.has-planet .location-steps article:first-child{padding:18px 0}
.has-planet .location-steps article:last-child{border-bottom:1px solid var(--line);padding-bottom:18px}
.has-planet .location-steps h3{font-size:21px}.has-planet .location-steps p{font-size:15px}}
.rd-respaldo-head{padding-top:72px}
.rd-respaldo .partner-spotlight-heading{display:none}
.rd-respaldo .partner-spotlight{padding-top:28px;padding-bottom:40px;border-top:0}
.rd-respaldo .awards{padding-top:8px;padding-bottom:40px}
.rd-aliados-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding-top:28px;padding-bottom:64px;border-top:1px solid #ffffff1a}
.rd-aliados-row>span{margin-right:8px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rd-cyan)}
.rd-aliados-row b{padding:8px 15px;border:1px solid #ffffff2e;border-radius:999px;font-weight:500;font-size:15px;color:#fff}
.rd-aliados-row .text-link{margin:0 0 0 auto;color:var(--rd-cyan)}
.rd-ia-art{position:relative}
.rd-ia-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .8s ease}
.rd-ia-art.is-live .rd-ia-canvas{opacity:1}
.rd-ia-art.is-live img{opacity:0;transition:opacity .8s ease}
@media(max-width:749px){.rd-aliados-row .text-link{margin-left:0}}

/* 8. Botones redondeados de la maqueta, sellos del premio en el hero y productos por unidad de negocio */
.button{border-radius:999px;padding:14px 26px;gap:14px;font-weight:700}
.site-header .button{padding:12px 22px}
.rd-button-ghost{background:transparent;border:1px solid #ffffff59;color:#fff}
.rd-button-ghost:hover{background:#ffffff14;border-color:#fff}
.hero-buttons{display:flex;flex-wrap:wrap;gap:14px}
.rd-hero-award{flex-direction:column;align-items:flex-start;gap:12px}
.rd-hero-award .rd-badges{display:flex;gap:8px}
.rd-hero-award .rd-badges img{height:72px;width:auto;border-radius:6px;box-shadow:0 8px 24px #0006}
.rd-hero-award div>span{font-size:15px;font-weight:600;line-height:1.35;color:#fff}
.rd-hero-award strong{font-size:13px}
.rd-unidad-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:48px}
.rd-unidad{display:flex;flex-direction:column;gap:14px;padding:28px;border:1px solid var(--rd-line);border-radius:18px;background:var(--rd-paper);transition:border-color .2s,transform .2s}
.rd-unidad:hover{border-color:var(--rd-blue);transform:translateY(-2px)}
.rd-marcas .rd-unidad-name{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rd-blue)}
.rd-unidad-logos{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;min-height:40px}
.rd-unidad-logos img{height:34px;width:auto;max-width:100%}
.rd-marcas .rd-unidad-products{font-size:14px;font-weight:600;line-height:1.5;color:var(--rd-ink)}
.rd-marcas .rd-unidad p:last-child{font-size:16px;line-height:1.55;color:var(--rd-ink2)}
.rd-unidad-cta{margin-top:auto;padding-top:4px;font-size:14px;font-weight:700;color:var(--rd-blue)}
.rd-unidad:hover .rd-unidad-cta{text-decoration:underline}
@media(max-width:1100px){.rd-unidad-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:749px){.rd-unidad-grid{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin-top:32px;padding-bottom:6px;scrollbar-width:none}.rd-unidad-grid::-webkit-scrollbar{display:none}.rd-unidad{flex:0 0 82%;scroll-snap-align:start;padding:22px}.rd-unidad-logos img{height:28px}}

/* 9. Ajustes de revisión (24 sep): hero en una sola vista, títulos Sora 600 como la maqueta,
   interlineado más corto, botones en píldora con prioridad sobre el tema anterior, footer más bajo */
body .button.button.button{border-radius:999px;padding:14px 26px;font-weight:700}
body .site-header .button.button.button{padding:12px 22px}
body.has-planet .hero .button.rd-button-ghost{background:transparent;border:1px solid #ffffff66;color:#fff}
body.has-planet .hero .button.rd-button-ghost:hover{background:#ffffff14;border-color:#fff}
body.has-planet .hero h1{font-size:clamp(50px,5.3vw,86px);line-height:1.02;font-weight:600;letter-spacing:-.035em}
body.has-planet .hero .hero-description{font-size:18px;line-height:1.55;max-width:560px}
body .section-heading.section-heading{font-weight:600;letter-spacing:-.03em;line-height:1.08}
body.has-planet .section-heading.section-heading{font-size:clamp(34px,3.4vw,54px)}
body.has-planet .pillar-grid article h2{font-size:clamp(32px,3vw,46px);line-height:1.1;font-weight:600;letter-spacing:-.03em}
body.has-planet .pillar-grid article p{font-size:17px;line-height:1.6}
body main p,body .section-top p,body .section-title-row p,body .rd-lead{line-height:1.6}
body :is(.rd-retos,.rd-marcas,.cases) .section-heading span{color:var(--rd-ink)}
body :is(.rd-ia,.rd-respaldo-head,.location-section) .section-heading span{color:var(--rd-cyan)}
body .rd-retos .rd-reto strong{font-family:'DM Sans',sans-serif;font-weight:500;font-size:22px;line-height:1.4;letter-spacing:0}
body.has-planet .location-heading{padding-top:0}
body.has-planet .location-heading .section-heading.section-heading{font-size:clamp(34px,3.4vw,54px);margin-top:0}
body.has-planet .location-section>.section{padding-top:64px;padding-bottom:64px}
body .cases .section-title-row .text-link{padding:12px 22px;border:1.5px solid var(--rd-blue);border-radius:999px;color:var(--rd-blue);font-weight:700;font-size:15px}
body .cases .section-title-row .text-link:hover{background:var(--rd-blue);color:#fff}
@media(min-width:1101px){body.has-planet .hero-award.rd-hero-award{flex-direction:row;align-items:center;gap:16px;width:auto;top:24px;bottom:auto;left:auto;right:calc(100% - 90vw);padding:14px 20px 14px 14px;border:1px solid #ffffff26;border-radius:16px;background:#060c18b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
body.has-planet .rd-hero-award .rd-badges img{height:64px}
body.has-planet .rd-hero-award>div:last-child{max-width:260px}}
body #site-footer{padding-top:48px}
body #site-footer .footer-main>div>a:not(.brand){margin-top:4px;line-height:1.5}
body #site-footer .footer-main h3{margin-bottom:8px}
body #site-footer .footer-brand p{line-height:1.55;margin-top:16px}
body #site-footer .footer-bottom{margin-top:32px;padding-top:18px}

/* 10. Insignias abajo a la derecha (como la maqueta), indicador del globo arriba,
   logos de productos con el mismo peso visual y footer compacto */
body .rd-hero-award .rd-badges{flex-direction:row}
@media(min-width:1101px){body.has-planet .hero-award.rd-hero-award{top:auto;bottom:0}
body.has-planet .planet-hud{top:calc(var(--header-height,100px) + 32px);bottom:auto}}
body .rd-unidad-logos img{height:34px;width:auto}
body .rd-unidad-logos img[src*="sitidata"]{height:36px}
body .rd-unidad-logos img[src*="datarutas"]{height:25px}
body .rd-unidad-logos img[src*="geomarketing"]{height:33px}
body .rd-unidad-logos img[src*="infocomercio"]{height:32px}
body .rd-unidad-logos img[src*="servipunto"]{height:31px}
body .rd-unidad-logos img[src*="bycerebro"]{height:42px}
body #site-footer .footer-main a{min-height:28px;line-height:1.4}
body #site-footer .footer-main>div>a:not(.brand){margin-top:2px}

/* 11. Páginas internas: el cuerpo quedó sobre fondo claro, así que su texto pasa a tinta oscura */
body.has-solution-scene .solution-content{color:var(--rd-ink)}
body.has-solution-scene .solution-content :is(h1,h2,h3,h4,h5,strong,b,th,dt,blockquote):not(.button *){color:var(--rd-ink)}
body.has-solution-scene .solution-content :is(p,li,td,dd,span,small,time,figcaption,label,em):not(.button *){color:var(--rd-ink2)}
body.has-solution-scene .solution-content a:not(.button){color:var(--rd-blue)}
body.has-solution-scene .solution-content a:not(.button) :is(h2,h3,h4,strong){color:var(--rd-ink)}
body.has-solution-scene .solution-content :is(.eyebrow,.section-index){color:var(--rd-blue)}
body.has-solution-scene .solution-content .product-card{background:#fff;border:1px solid var(--rd-line);border-radius:16px}

/* 12. Revisión del 25 sep (reunión CTAs): acento violeta de IA, Servi Impact en lugar de
   "Reconocidos por Google", aliados en carrusel, redes sociales y premios 3D en Partners */
:root{--rd-violet:#7C3AED;--rd-violet-deep:#5B21B6;--rd-violet-soft:#F3EEFF;--rd-violet-light:#C4B5FD}

/* 12.1 Tarjetas de retos: al pasar el cursor el cambio se nota (fondo, borde y enlace en violeta) */
body .rd-retos .rd-reto{transition:transform .25s,box-shadow .25s,border-color .25s,background-color .25s}
body .rd-retos .rd-reto:is(:hover,:focus-visible){transform:translateY(-4px);background:var(--rd-violet-soft);border-color:var(--rd-violet);box-shadow:0 0 0 1px var(--rd-violet),0 18px 40px #7c3aed2e}
body .rd-retos .rd-reto:is(:hover,:focus-visible) span{color:var(--rd-violet)}
body .rd-retos .rd-reto:focus-visible{outline:2px solid var(--rd-violet);outline-offset:3px}
body .rd-retos .rd-reto-cta:is(:hover,:focus-visible){background:var(--rd-violet-deep);border-color:var(--rd-violet-deep);box-shadow:0 18px 40px #5b21b64d}
body .rd-retos .rd-reto-cta:is(:hover,:focus-visible) span{color:#fff}
body .rd-retos .rd-industrias a:not(.rd-industrias-all):is(:hover,:focus-visible){border-color:var(--rd-violet);color:var(--rd-violet);background:var(--rd-violet-soft)}

/* 12.2 Banda de IA con el violeta */
body .rd-ia .section-top :is(.eyebrow,.section-index){color:var(--rd-violet-light)}
body .rd-ia .section-heading span{color:var(--rd-violet-light)}
body .rd-ia .rd-chips a:is(:hover,:focus-visible){border-color:var(--rd-violet-light);color:#fff;background:#7c3aed40}

/* 12.3 Servi Impact (como la maqueta), sobre fondo blanco */
body :is(.rd-impact,.rd-aliados){position:relative;z-index:1;--rd-bg:var(--rd-white);background:var(--rd-bg);box-shadow:0 0 0 100vmax var(--rd-bg);clip-path:inset(0 -100vmax)}
.rd-impact{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:56px;align-items:center}
body .rd-impact .eyebrow{color:var(--rd-blue)}
body .rd-impact .section-heading,body .rd-impact .section-heading span{color:var(--rd-ink)}
body .rd-impact .rd-impact-copy>p:not(.eyebrow){margin-top:20px;max-width:440px;font-size:18px;line-height:1.6;color:var(--rd-ink2)}
body .rd-impact .text-link{margin-top:24px;font-weight:700;color:var(--rd-blue)}
.rd-impact-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;height:448px}
.rd-impact-photo{position:relative;margin:0;display:flex;align-items:flex-end;padding:20px;border-radius:20px;overflow:hidden;background:repeating-linear-gradient(135deg,#EAF0F6 0 18px,#E2E9F1 18px 36px)}
.rd-impact-photo--green{margin-top:48px;background:repeating-linear-gradient(135deg,#E4F2EA 0 18px,#DAEBE1 18px 36px)}
.rd-impact-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.rd-impact-photo:has(img)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:65%;background:linear-gradient(0deg,rgba(6,17,29,.7),rgba(6,17,29,0));pointer-events:none;z-index:0}
body .rd-impact-photo figcaption{position:relative;z-index:1;font-size:14px;line-height:1.45;color:var(--rd-ink2)}
body .rd-impact-photo:has(img) figcaption{color:#fff}
.rd-impact-photo--quote{background:#0B1830}
.rd-impact-photo--quote::after{content:none}
.rd-quote-bg{position:absolute;inset:0;z-index:0;opacity:0;animation:rd-quote-cycle 18s ease-in-out infinite}
.rd-quote-bg--1{background:linear-gradient(135deg,#0B1830 0%,#142744 100%)}
.rd-quote-bg--2{background:linear-gradient(135deg,#06111d 0%,#16203a 100%);animation-delay:6s}
.rd-quote-bg--3{background:linear-gradient(135deg,#081f2b 0%,#123646 100%);animation-delay:12s}
body .rd-impact-photo--quote figcaption{position:relative;z-index:1;color:#fff;width:100%;display:flex;flex-direction:column}
.rd-quote-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.75}
.rd-quote-rotator{position:relative;min-height:168px;margin-top:10px}
.rd-quote-slide{position:absolute;inset:0;opacity:0;margin:0;animation:rd-quote-cycle 18s ease-in-out infinite}
.rd-quote-slide:nth-child(2){animation-delay:6s}
.rd-quote-slide:nth-child(3){animation-delay:12s}
.rd-quote-slide p{margin:0;font-size:16px;line-height:1.5;font-weight:500;color:#fff}
.rd-quote-slide cite{display:block;margin-top:12px;font-size:13px;font-weight:600;font-style:normal;color:#cfe3ec}
.rd-quote-slide cite span{font-weight:400;color:#9fbdca}
@keyframes rd-quote-cycle{0%,100%{opacity:0}4%{opacity:1}28%{opacity:1}33%{opacity:0}}
@media(prefers-reduced-motion:reduce){.rd-quote-slide,.rd-quote-bg{animation:none;opacity:0}.rd-quote-slide:first-child,.rd-quote-bg--1{opacity:1}}
@media(max-width:1100px){.rd-impact{grid-template-columns:1fr;gap:36px}.rd-impact-photos{height:360px}}
@media(max-width:749px){.rd-impact-photos{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;height:auto;gap:14px;padding-bottom:6px;scrollbar-width:none}.rd-impact-photos::-webkit-scrollbar{display:none}.rd-impact-photo{flex:0 0 82%;scroll-snap-align:start;aspect-ratio:3/4}.rd-impact-photo--green{margin-top:0}.rd-quote-rotator{min-height:190px}}

/* 12.4 Aliados tecnológicos en carrusel (logos en gris que se colorean al pasar el cursor) */
.rd-aliados{padding-top:0;padding-bottom:72px}
.rd-aliados-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding-top:36px;border-top:1px solid var(--rd-line)}
body .rd-aliados .eyebrow{margin:0;color:var(--rd-ink2)}
body .rd-aliados .text-link{margin:0;font-weight:700;color:var(--rd-blue)}
/* 27 oct 2026, a pedido de Catalina (Partners y Tecnologías): título opcional (campo "title"
   en alliesMarquee, ver build-interiors.py) -- las demás páginas que usan este carrusel no lo
   pasan y no cambian. */
body .rd-aliados-head+h2{margin:20px 0 0;font-size:clamp(24px,2.6vw,34px);line-height:1.25;font-weight:450;color:var(--rd-ink)}
body .rd-aliados-intro{margin:18px 0 0;max-width:640px;font-size:17px;line-height:1.7;color:var(--rd-ink2)}
.rd-aliados-marquee{margin-top:32px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.rd-aliados-track{display:flex;width:max-content;animation:rd-marquee 60s linear infinite}
.rd-aliados-marquee:hover .rd-aliados-track,.motion-paused .rd-aliados-track{animation-play-state:paused}
.rd-aliados-set{display:flex;align-items:center;gap:64px;margin:0;padding:0 64px 0 0;list-style:none}
.rd-aliados-set li{flex:0 0 auto;display:flex;align-items:center;height:64px}
body .rd-aliados-set img{display:block;width:auto;height:34px;max-width:none;filter:grayscale(1);opacity:.62;transition:filter .3s,opacity .3s}
body .rd-aliados-set li:hover img{filter:none;opacity:1}
body .rd-aliados-set img[src*="/google-cloud."]{height:32px}
body .rd-aliados-set img[src*="/carto."]{height:39px}
body .rd-aliados-set img[src*="/google-maps."]{height:27px}
body .rd-aliados-set img[src*="/google-workspace."]{height:28px}
body .rd-aliados-set img[src*="/looker."]{height:40px}
body .rd-aliados-set img[src*="/chrome-enterprise."]{height:29px}
body .rd-aliados-set img[src*="/palo-alto."]{height:33px}
body .rd-aliados-set img[src*="/fortinet."]{height:26px}
body .rd-aliados-set img[src*="/f5."]{height:46px}
body .rd-aliados-set img[src*="/c3-ai."]{height:46px}
body .rd-aliados-set img[src*="/automation-anywhere."]{height:46px}
body .rd-aliados-set img[src*="/planet."]{height:46px}
body .rd-aliados-set img[src*="/precisely."]{height:39px}
body .rd-aliados-set img[src*="/gitlab."]{height:42px}
body .rd-aliados-set img[src*="/veeam."]{height:46px}
body .rd-aliados-set img[src*="/crowdstrike."]{height:46px}
@media(prefers-reduced-motion:reduce){.rd-aliados-track{animation:none}.rd-aliados-marquee{overflow-x:auto}}
@media(max-width:749px){.rd-aliados{padding-bottom:48px}.rd-aliados-set{gap:40px;padding-right:40px}.rd-aliados-set li{height:52px}body .rd-aliados-set img{transform:scale(.8)}}

/* 12.5 Redes sociales en el pie */
.rd-social{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0;padding:0;list-style:none}
body #site-footer .rd-social a{display:grid;place-items:center;width:44px;height:44px;min-height:44px;margin:0;border:1px solid #ffffff33;border-radius:50%;color:#fff;transition:background-color .2s,border-color .2s}
body #site-footer .rd-social a:is(:hover,:focus-visible){background:var(--rd-violet);border-color:var(--rd-violet)}
.rd-social svg{display:block}

/* 12.6 Premios 3D en la página de Partners (antes en el Home) */
/* A gallery of individual sculptural award renders, with readable source captions. */
.award-rail:has(.award-card--render){gap:32px;margin-top:46px;align-items:stretch;padding:0 0 24px;scroll-padding-inline:1px}
.award-card--render{flex:0 0 calc((100% - 64px)/3);min-width:260px;border:0;border-radius:0;background:transparent;display:flex;flex-direction:column;overflow:visible}
.award-visual{position:relative;overflow:hidden;aspect-ratio:1;background:#030a13;border-bottom:1px solid #8ccee729}
.award-visual img{width:100%;height:100%;object-fit:contain;transition:transform .65s cubic-bezier(.2,.7,.2,1);transform-origin:50% 65%}
.award-card--render:hover .award-visual img{transform:scale(1.045) translateY(-3px)}
.award-copy{padding:24px 4px 0;display:flex;flex-direction:column;align-items:flex-start;flex:1}
.award-meta{display:flex;justify-content:space-between;gap:16px;width:100%;color:#819bab;font-size:12px;line-height:1.5;letter-spacing:.04em;text-transform:uppercase}
.award-meta time{font-variant-numeric:tabular-nums;color:#91e9f4;font-size:14px;letter-spacing:.06em}
.award-copy h3{font-size:25px;line-height:1.25;letter-spacing:-.025em;margin-top:15px;font-weight:500;color:#ecf5fa}
.award-category{font-size:16px;line-height:1.55;color:#c2d4df;margin-top:12px}
.award-project{font-size:14px;line-height:1.6;color:#7f9aaf;margin-top:8px}
.award-source{display:inline-flex;align-items:center;gap:26px;font-size:13px;color:#87c7dc;padding-top:24px;margin-top:auto;line-height:1.5;text-underline-offset:5px}
.award-source:hover{text-decoration:underline;color:#d9faff}
@media(max-width:1050px){.award-card--render{flex-basis:calc((100% - 28px)/2)}.award-rail:has(.award-card--render){gap:28px}}
@media(max-width:600px){.award-rail:has(.award-card--render){gap:22px;margin-right:-6.8%;padding-right:6.8%}.award-card--render{flex-basis:87%;min-width:0}.award-copy{padding-top:21px}.award-copy h3{font-size:24px}.award-source{min-height:44px}.award-meta{font-size:12px}}
@media(prefers-reduced-motion:reduce){.award-visual img{transition:none}.award-card--render:hover .award-visual img{transform:none}}
.award-visual canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;transition:opacity .25s}.award-ready canvas{opacity:1}.award-ready img{opacity:0}.award-rotate{position:absolute;right:14px;bottom:14px;display:grid;place-items:center;width:44px;height:44px;border:1px solid #68bdd850;border-radius:50%;color:#acdfeb;background:#030a13b0;font-size:25px;line-height:1}.award-rotate[hidden]{display:none}.award-rotate:hover{background:#123040;color:#fff}.award-card--render:has(.award-ready):hover img{transform:none}@media(prefers-reduced-motion:reduce){.award-visual canvas{transition:none}}
body.has-solution-scene .solution-content .rd-trofeos{margin-top:56px;max-width:1440px;margin-left:auto;margin-right:auto;padding:40px 5% 24px;border-top:1px solid var(--rd-line);overflow:hidden}
body.has-solution-scene .solution-content .rd-trofeos .section-title-row{display:flex;justify-content:space-between;align-items:end;gap:20px}
body.has-solution-scene .solution-content .rd-trofeos .rd-sub{margin:0;font-family:var(--heading);font-size:clamp(26px,2.4vw,34px);font-weight:600;letter-spacing:-.02em}
body.has-solution-scene .solution-content .rd-trofeos .rail-controls button{border-color:var(--rd-line);background:#fff;color:var(--rd-ink)}
body.has-solution-scene .solution-content .rd-trofeos .rail-controls button:hover{background:var(--rd-violet);border-color:var(--rd-violet);color:#fff}
body.has-solution-scene .solution-content .rd-trofeos .award-visual{border-radius:16px}
/* 27 oct 2026, a pedido de Catalina (Partners y Tecnologías): este riel de premios se movió
   aquí desde el Home (25 sep 2026, ver build-interiors.py), pero styles.css (que trae las
   reglas base .awards/.award-rail/.award-card de la portada: display:flex, overflow-x:auto,
   el ancho de cada tarjeta) solo se carga en el Home -- aquí nunca tuvo esas reglas base, por
   eso las tarjetas se veían desbordadas, sin márgenes ni scroll horizontal contenido. Se
   repiten aquí, con los mismos valores que usa styles.css, en vez de cargar ese archivo
   completo solo para esto. */
body.has-solution-scene .solution-content .rd-trofeos .award-rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-color:#dce3ec transparent;scrollbar-width:thin}
@media(max-width:1050px){body.has-solution-scene .solution-content .rd-trofeos .award-card--render{flex-basis:calc((100% - 28px)/2)}}
@media(max-width:749px){body.has-solution-scene .solution-content .rd-trofeos{padding:32px 6% 20px}body.has-solution-scene .solution-content .rd-trofeos .award-card--render{flex-basis:87%;min-width:0}}

/* 12.7 Franja de cifras con tres datos (el premio ya está en el hero) y ajustes finos */
@media(min-width:1101px){body .rd-proof-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
body .rd-aliados .eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:13px;font-weight:700}
body .rd-impact .eyebrow{margin-bottom:18px}

/* 12.8 Logos de Google actualizados (carpeta Identidades de Marca / Google) */
body .rd-aliados-set img[src*="/google-cloud."]{height:31px}
body .rd-aliados-set img[src*="/google-maps."]{height:27px}
body .rd-aliados-set img[src*="/google-workspace."]{height:28px}
body .rd-aliados-set img[src*="/google-security."]{height:46px}

/* 12.9 Insignias del hero un poco más grandes y legibles (64 → 80 px, texto 15 → 17 px) */
@media(min-width:1101px){
body.has-planet .hero-award.rd-hero-award{gap:18px;padding:16px 24px 16px 16px}
body.has-planet .rd-hero-award .rd-badges{gap:10px}
body.has-planet .rd-hero-award .rd-badges img{height:80px}
body.has-planet .rd-hero-award>div:last-child{max-width:300px}
body.has-planet .rd-hero-award div>span{font-size:17px;line-height:1.3}
body.has-planet .rd-hero-award strong{font-size:14px;line-height:1.45;color:#D2DDE9}}

/* 12.10 Transiciones entre zonas oscuras y claras: en vez de un corte seco, el tono se funde
   en una franja de unos 100 px. Servi Impact y los aliados pasan a un gris azulado suave para
   separarse de los casos (blanco) sin depender de una línea */
body .rd-impact{--rd-bg:#EEF3F8}
body .rd-aliados-head{border-top-color:#D5DEE8}
body :is(.rd-ia,.rd-impact,.contact-section){position:relative}
body :is(.rd-ia,.rd-impact)>*,body .contact-section>.section{position:relative;z-index:1}
body .rd-ia::after,body .rd-impact::before,body .contact-section::before{content:"";position:absolute;left:50%;width:100vw;transform:translateX(-50%);height:96px;pointer-events:none;z-index:0}
body .rd-ia::after{bottom:0;background:linear-gradient(0deg,var(--fade-white))}
body .rd-impact::before{top:0;background:linear-gradient(180deg,var(--fade-white))}
body .contact-section::before{display:none}
body .rd-ia{padding-top:132px;padding-bottom:132px}
@media(max-width:749px){body .rd-ia::after,body .rd-impact::before{height:90px}body .contact-section::before{height:100px}body .rd-ia{padding-top:110px;padding-bottom:110px}}
body :is(.rd-ia,.cases,.rd-impact,.rd-aliados,.contact-section){border-top:0;border-bottom:0}

/* 12.11 Revisión 25 sep (tarde): aliados en blanco con logos más presentes, botón de casos
   sin azul intenso y banda de IA con recorrido por capítulos al hacer scroll */
body .rd-aliados{--rd-bg:var(--rd-white)}
body .rd-aliados::before{content:"";position:absolute;left:50%;top:0;width:100vw;height:96px;transform:translateX(-50%);pointer-events:none;background:linear-gradient(180deg,#EEF3F8 0%,rgba(238,243,248,.6) 40%,rgba(238,243,248,0) 100%)}
body .rd-aliados>*{position:relative;z-index:1}
body .rd-aliados-head{border-top:0;padding-top:56px}
body .rd-aliados-set img{opacity:.8}
body .rd-aliados-set img[src*="/google-cloud."]{height:32px}
body .rd-aliados-set img[src*="/google-maps."]{height:28px}
body .rd-aliados-set img[src*="/google-workspace."]{height:28px}
/* "Ver los 69 casos" es un enlace, no un botón: se ve como los enlaces de las tarjetas de retos */
body #casos.cases .section-title-row .text-link{padding:0;border:0;border-radius:0;background:transparent;color:var(--rd-blue);font-weight:700;font-size:17px;gap:10px;transition:color .2s}
body #casos.cases .section-title-row .text-link:is(:hover,:focus-visible){background:transparent;color:var(--rd-violet)}
.rd-ia-steps{list-style:none;margin:40px 0 8px;padding:0;display:flex;flex-direction:column;gap:12px}
.rd-ia-step{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 16px;padding:22px 0 22px 20px;border-left:2px solid #ffffff24;transition:opacity .45s ease,border-color .45s ease}
body .rd-ia .rd-ia-step-n{font-family:var(--heading);font-size:14px;font-weight:600;letter-spacing:.08em;line-height:2.1;color:var(--rd-violet-light)}
body .rd-ia .rd-ia-step h3{margin:0;font-family:var(--heading);font-size:clamp(22px,1.8vw,28px);font-weight:600;letter-spacing:-.02em;color:#fff}
body .rd-ia .rd-ia-step p{max-width:520px;margin:10px 0 0;font-size:17px;line-height:1.6;color:var(--rd-on-dark)}
.rd-ia-step .rd-chips{margin:16px 0 0}
@media(min-width:1101px){
body .rd-ia--story{align-items:start}
body .rd-ia--story .rd-ia-art{position:sticky;top:calc(var(--header-height,96px) + 4vh);height:calc(100svh - var(--header-height,96px) - 8vh);min-height:460px;display:flex;align-items:center}
body .rd-ia--story .rd-ia-art img{width:100%;height:100%;object-fit:contain}
body .rd-ia--story .rd-ia-step{min-height:44svh;align-content:center}
body .rd-ia--story.is-staged .rd-ia-step{opacity:.32}
body .rd-ia--story.is-staged .rd-ia-step.is-active{opacity:1;border-left-color:var(--rd-violet-light)}
}
@media(prefers-reduced-motion:reduce){.rd-ia-step{transition:none}}

/* Keep the culture entry beside the existing impact destination. */
body .rd-impact-links{display:flex;flex-wrap:wrap;gap:8px 28px}
