:root {
  --font-principal: 'Inter', sans-serif;
  --font-titulos: 'Poppins', sans-serif;
}


/* ======================== */
/* 1. VARIABLES Y GLOBALES  */
/* ======================== */
:root {
    --color-fondo: #121212;
    --color-fondo-rgb: 18, 18, 18; /* RGB para fondos transparentes */
    --color-superficie: #1E1E1E;
    --color-texto: #E0E0E0;
    --color-texto-sec: #A0A0A0;
    --color-acento: #00E0FF;        /* Cian eléctrico */
    --color-acento-rgb: 0, 224, 255; /* Versión RGB para sombras */
    --color-error: #FF5555;
}

/* Reseteo básico */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

:focus-visible {
    outline: 3px solid rgba(var(--color-acento-rgb), 0.9);
    outline-offset: 4px;
}

.skip-link {
    position: fixed;
    z-index: 10000;
    top: .75rem;
    left: .75rem;
    padding: .8rem 1rem;
    border: 2px solid #071012;
    background: var(--color-acento);
    color: #071012;
    font-weight: 800;
    text-decoration: none;
    transform: translateY(-160%);
    transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }
[aria-disabled="true"] { cursor: not-allowed; opacity: .55; }
.language-switch {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 10000;
    display: grid;
    place-items: center;
    min-width: 42px;
    height: 42px;
    padding: 0 10px;
    border: 1px solid rgba(127,127,127,.35);
    border-radius: 999px;
    background: rgba(15,15,18,.88);
    color: #fff !important;
    font: 700 12px/1 system-ui,sans-serif;
    letter-spacing: .08em;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
    backdrop-filter: blur(10px);
}
.language-switch:focus-visible { outline: 3px solid #66a3ff; outline-offset: 3px; }
.language-switch.language-switch--nav {
    position: static;
    z-index: auto;
    flex: 0 0 auto;
    min-width: 44px;
    height: 44px;
    margin-left: 1rem;
    box-shadow: none;
}
.legacy-nav-backdrop {
    position: fixed;
    inset: 0;
    z-index: 998;
    display: none;
    border: 0;
    background: rgba(0, 0, 0, .66);
    backdrop-filter: blur(3px);
}
body.menu-open { overflow: hidden; }
.nav-toggle,
.video-carousel-button,
.flyer-carousel-button,
.modeling-carousel-controls button { min-width: 44px; min-height: 44px; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

body {
    background-color: var(--color-fondo);
    color: var(--color-texto);
    font-family: var(--font-principal);
    line-height: 1.6;
    overflow-x: hidden; /* Previene scroll horizontal */
}

.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 2rem;
}

h1, h2, h3 {
    font-family: var(--font-titulos);
    font-weight: 600;
    color: #FFFFFF;
    margin-bottom: 1rem;
}

h2 {
    font-size: 2.5rem;
    text-align: center;
    margin-bottom: 1.5rem;
}

section {
    padding: 6rem 0;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Keep content available when the optional AOS CDN cannot initialize. */
[data-aos]:not(.aos-init) {
    opacity: 1 !important;
    transform: none !important;
}

.accent {
    color: var(--color-acento);
    font-weight: 700;
}

/* ======================== */
/* 2. COMPONENTES           */
/* ======================== */

.cta-button {
    display: inline-block;
    background-color: var(--color-acento);
    color: var(--color-fondo);
    font-family: var(--font-titulos);
    font-weight: 600;
    text-decoration: none;
    padding: 0.8rem 2rem;
    border-radius: 5px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.cta-button:hover {
    transform: scale(1.05);
    box-shadow: 0 5px 20px -5px rgba(var(--color-acento-rgb), 0.4);
}

.cta-button.secondary {
    background-color: transparent;
    color: var(--color-acento);
    border: 2px solid var(--color-acento);
}
.cta-button.secondary:hover {
    background-color: rgba(var(--color-acento-rgb), 0.1);
}

/* ================================================= */
/* 3. LAYOUT & SECCIONES (DESKTOP)                   */
/* ================================================= */

/* --- Barra de Navegación --- */
.navbar {
    padding: 1rem 0;
    min-height: 70px;
    display: flex;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background-color: rgba(var(--color-fondo-rgb), 0.85);
    backdrop-filter: blur(10px);
    z-index: 999;
    border-bottom: 1px solid var(--color-superficie);
}

.navbar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 100%;
}

.nav-logo {
    font-family: var(--font-titulos);
    font-size: 1.5rem;
    color: #FFFFFF;
    text-decoration: none;
    font-weight: 600;
    white-space: nowrap;
    flex: 0 0 auto;
}

.navbar nav ul {
    list-style: none;
    display: flex;
}

.navbar nav li {
    margin-left: 1.5rem;
}

.navbar nav a {
    color: var(--color-texto-sec);
    text-decoration: none;
    font-weight: 700;
    transition: color 0.2s ease;
}

.navbar nav a:hover {
    color: var(--color-acento);
}

.navbar a.accent {
    color: var(--color-acento);
}

/* --- Botón Hamburguesa (Oculto en Desktop) --- */
.nav-toggle {
    display: none;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    z-index: 1001;
    position: relative;
}

.hamburger-line {
    display: block;
    width: 24px;
    height: 3px;
    background-color: var(--color-texto);
    margin: 5px 0;
    transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
}

/* --- Hero (Portada Home y Creatives) --- */
.hero {
    min-height: 90vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    padding-top: 70px;
}
.hero-kicker {
    color: var(--color-acento);
    font-family: var(--font-titulos);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 1rem;
    text-transform: uppercase;
}
.hero-titulo {
    font-size: 4rem;
    background: linear-gradient(90deg, #FFFFFF, var(--color-acento));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 1.5rem;
}
.hero-subtitulo {
    font-size: 1.5rem;
    color: var(--color-texto-sec);
    max-width: 700px;
    margin: 0 auto 2.5rem auto;
}

/* Shared software-stack system */
.case-software-stack {
    padding: 6rem 0;
    border-top: 1px solid rgba(255,255,255,.1);
    background: #0d0f11;
}
.case-software-heading {
    display: grid;
    grid-template-columns: 150px minmax(0,1fr);
    gap: 2rem;
    align-items: end;
    margin-bottom: 2.5rem;
}
.case-software-heading > span,
.software-marquee-heading > span {
    color: var(--color-acento);
    font: 700 .7rem var(--font-titulos);
    letter-spacing: .13em;
    text-transform: uppercase;
}
.case-software-heading h2,
.software-marquee-heading h2 {
    margin: 0;
    text-align: left;
    font-size: clamp(2.5rem,5vw,5rem);
    line-height: .92;
    letter-spacing: -.05em;
}
.case-software-grid { display: flex; flex-wrap: wrap; gap: .8rem; }
.case-end-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 4rem;
    padding-top: 3rem;
    border-top: 1px solid rgba(255,255,255,.12);
}
.case-end-actions p { max-width: 620px; margin: 0 0 1.35rem; color: #c9cdd1; font-size: clamp(1.15rem,2vw,1.55rem); }
.case-contact-cta {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    min-height: 50px;
    padding: .9rem 1.25rem;
    background: var(--color-acento);
    color: #071012;
    font: 700 .82rem var(--font-titulos);
    letter-spacing: .06em;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform .22s ease, filter .22s ease;
}
.case-contact-cta:hover { filter: brightness(1.08); transform: translateY(-2px); }
.case-contact-cta:focus-visible,.case-back-link:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.case-back-link { margin-top: 1rem; color: #8f969d; font-size: .72rem; text-decoration: none; }
.case-back-link:hover { color: #fff; text-decoration: underline; text-underline-offset: .3em; }
.software-logo-card {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    gap: .8rem;
    min-width: 170px;
    padding: .8rem 1rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;
    background: rgba(255,255,255,.035);
    color: #e8ebed;
}
.software-logo-card img { width: 34px; height: 34px; object-fit: contain; }
.software-logo-card b { font: 600 .78rem var(--font-titulos); white-space: nowrap; }
.software-marquee-section {
    padding: 7rem 0;
    overflow: hidden;
    border-block: 1px solid rgba(255,255,255,.1);
    background: radial-gradient(circle at 50% 20%,rgba(var(--color-acento-rgb),.08),transparent 32%),#0d0f11;
}
.software-marquee-heading { margin-bottom: 3.5rem; }
.software-marquee-heading h2 { margin: .75rem 0 1rem; }
.software-marquee-heading p { max-width: 620px; color: var(--color-texto-sec); }
.software-marquee-row + .software-marquee-row { margin-top: 2.4rem; }
.software-marquee-row-label {
    display: grid;
    grid-template-columns: 150px minmax(0,760px);
    gap: 2rem;
    align-items: baseline;
    margin-bottom: .8rem;
}
.software-marquee-row-label h3 {
    margin: 0;
    color: var(--color-acento);
    font: 700 .78rem var(--font-titulos);
    letter-spacing: .13em;
    text-transform: uppercase;
}
.software-marquee-row-label p { margin: 0; color: #9da3aa; font-size: .88rem; }
.software-marquee { width: 100vw; margin-left: calc(50% - 50vw); overflow: hidden; padding: .45rem 0; }
.software-marquee-track { display: flex; width: max-content; min-width: 100vw; gap: .75rem; will-change: transform; }
[data-software-row="data"] .software-marquee { margin-left: calc(50% - 50vw); }
[data-software-row="data"] .software-marquee-track { justify-content: flex-start; }
.software-marquee-track .software-logo-card { min-width: max-content; background: #15191d; }
.software-marquee-forward { animation: software-scroll-left 42s linear infinite; }
.software-marquee-reverse { animation: software-scroll-right 46s linear infinite; }
.software-marquee:hover .software-marquee-track { animation-play-state: paused; }
@keyframes software-scroll-left { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes software-scroll-right { from{transform:translateX(-50%)} to{transform:translateX(0)} }
@media(max-width:700px){
    .case-software-stack,.software-marquee-section{padding:4.5rem 0}
    .case-software-heading{grid-template-columns:1fr}
    .software-marquee-row-label{grid-template-columns:1fr;gap:.35rem}
    .software-logo-card{min-width:145px}
    .software-marquee-forward{animation-duration:30s}
    .software-marquee-reverse{animation-duration:34s}
}

/* Creatives uses a compact introduction instead of the full-screen home hero. */
.creatives-hero {
    min-height: 0;
    padding: 9rem 0 2rem;
}
.creatives-hero .hero-titulo { margin-bottom: .75rem; }
.creatives-hero .hero-subtitulo { margin-bottom: 0; }
.gallery-filter-bar { padding: 1rem 0 2.5rem; }
.gallery-filter-bar .gallery-controls { margin-bottom: 0; }
.portfolio-gallery-section { padding-top: 0; }
.portfolio-gallery-section[hidden] { display: none; }
.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin-bottom: 2.5rem;
}
.hero-proof {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    max-width: 820px;
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid rgba(var(--color-acento-rgb), 0.18);
    border-radius: 8px;
    background-color: rgba(var(--color-acento-rgb), 0.18);
}
.hero-proof div {
    background-color: rgba(var(--color-fondo-rgb), 0.72);
    padding: 1rem 1.25rem;
}
.hero-proof dt {
    color: var(--color-texto-sec);
    font-family: var(--font-principal);
    font-size: 0.82rem;
    margin-bottom: 0.25rem;
}
.hero-proof dd {
    color: #FFFFFF;
    font-family: var(--font-titulos);
    font-size: 1.05rem;
    font-weight: 700;
}

/* --- Hero (Páginas Interiores - Ecommerce) --- */
.page-hero {
    padding-top: 10rem;
    padding-bottom: 6rem;
    background-color: var(--color-superficie);
}
.page-hero h1 {
    font-size: 3.5rem;
    text-align: left;
    background: linear-gradient(90deg, #FFFFFF, var(--color-acento));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.page-hero p {
    font-size: 1.25rem;
    color: var(--color-texto-sec);
    max-width: 600px;
    text-align: left;
}

/* --- Hero (Página Sobre Mí) --- */
.about-hero {
    padding: 10rem 0 6rem 0;
    background-color: var(--color-superficie);
    border-bottom: 1px solid var(--color-fondo);
}
.about-hero .container {
    display: grid;
    grid-template-columns: 2fr 1fr;
    align-items: center;
    gap: 3rem;
}
.about-hero h1 {
    font-size: 3.5rem;
    margin-bottom: 0.5rem;
    background: linear-gradient(90deg, #FFFFFF, var(--color-acento));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.about-hero p {
    font-size: 1.25rem;
    color: var(--color-texto-sec);
    max-width: 500px;
}
.about-hero-img {
    width: 100%;
    max-width: 300px;
    height: auto;
    border-radius: 8px;
    border: 2px solid var(--color-superficie);
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    justify-self: end;
}

/* --- Layout Principal (Sobre Mí) --- */
.about-layout {
    display: grid;
    grid-template-columns: 2.5fr 1fr;
    gap: 4rem;
    padding: 6rem 0 6rem 0;
}
.about-main-content {
    line-height: 1.7;
    font-size: 1.1rem;
    color: var(--color-texto-sec);
}
.about-main-content p {
    margin-bottom: 1.5rem;
    color: var(--color-texto-sec);
}
.about-main-content > h2 {
    font-size: 2.5rem;
    color: #FFFFFF;
    margin-bottom: 1.5rem;
    text-align: left;
}

/* --- Sidebar (Sobre Mí) --- */
.sidebar {
    background-color: var(--color-superficie);
    padding: 2rem;
    border-radius: 10px;
    border: 1px solid rgba(var(--color-acento-rgb), 0.2);
    height: fit-content;
}
.sidebar h3 {
    color: var(--color-acento);
    font-size: 1.2rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 1rem;
}
.sidebar-item {
    margin-bottom: 1.5rem;
}
.sidebar-item strong {
    display: block;
    color: var(--color-texto);
    font-size: 1.05rem;
    margin-bottom: 0.35rem;
}
.sidebar-item span {
    color: var(--color-texto-sec);
    font-size: 0.95rem;
    line-height: 1.4;
}
.sidebar .cta-button {
    display: block;
    text-align: center;
    margin-bottom: 1rem;
}
.sidebar .sidebar-item:last-of-type {
    margin-bottom: 2rem;
}


/* --- Sección "Stack" (Sobre Mí) --- */
.stack-section {
    padding: 0 0 6rem 0;
    background-color: var(--color-fondo);
}
.stack-section h2 {
    text-align: left;
    margin-bottom: 3rem;
}
.stack-card {
    background-color: var(--color-superficie);
    padding: 2rem;
    border-radius: 10px;
    border: 1px solid var(--color-superficie);
    height: 100%; /* Asegura misma altura en carrusel */
}
.stack-card h3 {
    color: var(--color-acento);
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
}
.stack-card ul {
    list-style: none;
    padding-left: 0;
}
.stack-card li {
    color: var(--color-texto-sec);
    margin-bottom: 0.75rem;
    font-size: 1rem;
    font-family: var(--font-principal);
}

/* --- Sección "Qué Hago Hoy" (Sobre Mí) --- */
.expertise-section {
    padding: 6rem 0;
    background-color: var(--color-superficie);
}
.expertise-section h2 {
    text-align: left;
    margin-bottom: 3rem;
}
.expertise-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
.expertise-card {
    background-color: var(--color-fondo);
    padding: 2rem;
    border-radius: 10px;
    border: 1px solid transparent;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.expertise-card:hover {
    transform: scale(1.03);
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.4);
    border-color: rgba(var(--color-acento-rgb), 0.3);
}
.expertise-card h3 {
    color: var(--color-acento);
    font-size: 1.5rem;
}
.expertise-card ul {
    list-style: none;
    padding-left: 0;
}
.expertise-card li {
    color: var(--color-texto-sec);
    margin-bottom: 0.5rem;
    position: relative;
    padding-left: 1.5rem;
}
.expertise-card li::before {
    content: '✓';
    color: var(--color-acento);
    position: absolute;
    left: 0;
}

/* --- Sección "Líneas que exploro" (Sobre Mí) --- */
.research-section {
    background-color: var(--color-fondo);
    padding: 6rem 0;
}
.research-section h2 {
    text-align: left;
    margin-bottom: 3rem;
}
.research-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
}
.research-block {
    background-color: var(--color-superficie);
    padding: 2.5rem;
    border-radius: 10px;
}
.research-block h3 {
    font-size: 1.75rem;
}
.research-block p {
    color: var(--color-texto-sec);
    font-size: 1.1rem;
}

/* --- Sección "Formación" (Sobre Mí) --- */
.formacion-section {
    padding: 6rem 0;
    background-color: var(--color-superficie);
}
.formacion-section h2 {
    text-align: left;
    margin-bottom: 3rem;
}
.formacion-card {
    background-color: var(--color-fondo);
    padding: 2rem;
    border-radius: 10px;
    border: 1px solid transparent;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    text-align: center;
}
.formacion-card:hover {
    transform: scale(1.03);
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.4);
    border-color: rgba(var(--color-acento-rgb), 0.3);
}
.formacion-logo-wrapper {
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
}
.formacion-logo-wrapper img {
    max-height: 100%;
    max-width: 150px;
    object-fit: contain;
}
.formacion-card h3 {
    color: var(--color-acento);
    font-size: 1.5rem;
}
.formacion-card ul {
    list-style: none;
    padding-left: 0;
    text-align: left;
}
.formacion-card li {
    color: var(--color-texto-sec);
    margin-bottom: 0.5rem;
    position: relative;
    padding-left: 1.5rem;
}
.formacion-card li::before {
    content: '✓';
    color: var(--color-acento);
    position: absolute;
    left: 0;
}


/* --- Grid de Metodología (Ecommerce) --- */
.method-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
.method-card {
    background-color: var(--color-superficie);
    padding: 2rem;
    border-radius: 10px;
    border: 1px solid var(--color-superficie);
}
.method-card h3 {
    color: var(--color-acento);
    font-size: 1.5rem;
    text-align: left;
}
.method-card p {
    color: var(--color-texto-sec);
    font-size: 0.95rem;
}

/* --- Casos de Estudio (Compartido) --- */
.casos-estudio .seccion-descripcion {
    text-align: center;
    font-size: 1.1rem;
    color: var(--color-texto-sec);
    margin-bottom: 4rem;
}
.caso-card-link { text-decoration: none; color: inherit; display: block; }
.caso-card {
    display: block;
    background-color: var(--color-superficie);
    padding: 2.5rem 3rem;
    border-radius: 10px;
    margin-bottom: 3rem;
    border: 1px solid transparent;
    transition: transform 0.3s ease-out,
                box-shadow 0.3s ease-out,
                border-color 0.3s ease-out;
}
.caso-card:not(:hover) {
    background-color: var(--color-fondo);
}
.page-hero + #metodo + .casos-estudio .caso-card {
    background-color: var(--color-fondo);
}
.caso-card:hover {
    transform: scale(1.02);
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.4);
    border-color: rgba(var(--color-acento-rgb), 0.3);
    background-color: var(--color-superficie);
}
.caso-categoria {
    display: inline-block;
    font-family: var(--font-titulos);
    color: var(--color-acento);
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}
.caso-card h2,
.caso-card h3 {
    font-size: 2.1rem;
    margin-bottom: 1.5rem;
    margin-top: 0;
    text-align: left;
}
.caso-card-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem 3rem;
    align-items: start;
}
.caso-card-grid > * { min-width: 0; }
.caso-contenido { overflow-wrap: anywhere; }
.caso-contenido p { color: var(--color-texto-sec); margin-bottom: 1.5rem; }
.caso-metricas { list-style: none; padding-left: 0; }
.caso-metricas li { font-size: 1.1rem; margin-bottom: 0.5rem; font-weight: 700; }
.caso-visual img { border-radius: 5px; margin-bottom: 1rem; }
.caso-card.reverse .caso-card-grid { direction: rtl; }
.caso-card.reverse .caso-card-grid > * { direction: ltr; }

/* --- Carousel (Home) y Carrusel Testimonios (Ecommerce) --- */
.carousel-wrapper {
    position: relative;
}
.carousel {
    display: flex;
    gap: 1.5rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding: 0.5rem 0.5rem 1.5rem 0.5rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-color: var(--color-acento) var(--color-superficie);
}
.carousel::-webkit-scrollbar { height: 8px; }
.carousel::-webkit-scrollbar-track { background: var(--color-superficie); border-radius: 4px; }
.carousel::-webkit-scrollbar-thumb { background: var(--color-acento); border-radius: 4px; }

.carousel-item,
.carousel .testimonio-card,
.carousel .stack-card { /* <--- AÑADIDO .stack-card */
    scroll-snap-align: start;
    flex-shrink: 0;
    background-color: var(--color-superficie);
    border-radius: 8px;
    border: 1px solid var(--color-superficie);
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.carousel-item,
.carousel .stack-card { /* <--- AÑADIDO .stack-card */
    flex-basis: 32%;
    min-width: 300px;
}
.carousel .testimonio-card {
    flex-basis: 48%;
    min-width: 320px;
    padding: 2.5rem;
}
.carousel-item:hover,
.carousel .testimonio-card:hover,
.carousel .stack-card:hover { /* <--- AÑADIDO .stack-card */
    transform: scale(1.03);
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.4);
    border-color: rgba(var(--color-acento-rgb), 0.3);
}
.carousel-item a { text-decoration: none; color: inherit; display: block; }
.carousel-item img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-bottom: 2px solid var(--color-fondo);
}
.carousel-item-label {
    padding: 1rem 1.25rem;
    margin: 0;
    font-family: var(--font-titulos);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-texto);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.carousel-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background-color: rgba(30, 30, 30, 0.8);
    backdrop-filter: blur(5px);
    border: 1px solid var(--color-texto-sec);
    color: var(--color-acento);
    border-radius: 50%;
    width: 44px;
    height: 44px;
    cursor: pointer;
    font-size: 1.8rem;
    font-family: var(--font-principal);
    line-height: 44px;
    text-align: center;
    transition: background-color 0.2s ease, transform 0.2s ease;
}
.carousel-arrow:hover {
    background-color: var(--color-superficie);
    transform: translateY(-50%) scale(1.1);
}
.carousel-prev { left: -22px; }
.carousel-next { right: -22px; }

/* --- Testimonios (Grid por defecto) --- */
.testimonios-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}
.testimonio-card {
    background-color: var(--color-superficie);
    padding: 2.5rem;
    margin: 0;
    border-radius: 10px;
    border: 1px solid transparent;
    transition: border-color 0.3s ease;
}
.testimonio-card:hover {
    border-color: rgba(var(--color-acento-rgb), 0.3);
}
.testimonio-card blockquote {
    font-size: 1.1rem;
    font-style: italic;
    color: var(--color-texto);
    border-left: 4px solid var(--color-acento);
    padding-left: 1.5rem;
    margin: 0 0 1.5rem 0;
}
.testimonio-card cite {
    font-style: normal;
    font-weight: 700;
    color: var(--color-texto-sec);
}
.testimonio-card cite span {
    display: block;
    color: var(--color-acento);
    font-size: 0.9rem;
}

/* --- Galería Creatives (Filtros y Grid) --- */
.gallery-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
    margin: 1rem 0 3rem;
}
.filter-chip {
    border: 1px solid var(--color-acento);
    background: transparent;
    color: var(--color-acento);
    padding: 0.4rem 0.9rem;
    border-radius: 999px;
    cursor: pointer;
    font-weight: 700;
    font-family: var(--font-titulos);
    transition: background-color 0.2s ease;
}
.filter-chip.is-active,
.filter-chip:hover {
    background: rgba(var(--color-acento-rgb), 0.12);
}
.grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
}
.grid-item {
    cursor: zoom-in;
    text-decoration: none;
}
.grid-item figcaption {
    color: var(--color-texto-sec);
    font-size: 0.95rem;
    margin-top: 0.75rem;
    font-family: var(--font-principal);
}
.ratio-box {
    position: relative;
    width: 100%;
    padding-bottom: calc(100% / (var(--ratio, 4/3)));
    overflow: hidden;
    border-radius: 8px;
    background: var(--color-superficie);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    border: 1px solid var(--color-superficie);
}
.ratio-box .thumb {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.grid-item:hover .ratio-box {
    transform: scale(1.03);
    box-shadow: 0 10px 30px -12px rgba(0,0,0,.5);
    border-color: rgba(var(--color-acento-rgb), .3);
}

/* --- Video editing showcase --- */
.video-showcase {
    margin-bottom: 5rem;
    padding: clamp(2rem, 5vw, 4rem);
    border: 1px solid rgba(255,255,255,.12);
    background: linear-gradient(145deg, rgba(var(--color-acento-rgb), .07), transparent 42%), var(--color-superficie);
}
.video-showcase[hidden] { display: none; }
.modeling-lab[hidden] { display: none; }
.flyer-showcase[hidden] { display: none; }
.icon-system-showcase[hidden] { display: none; }
.voc-ai-showcase[hidden] { display: none; }
.video-showcase-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(260px, .7fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    margin-bottom: 2.5rem;
}
.video-showcase-kicker,
.video-project-copy > span {
    color: var(--color-acento);
    font: 700 .7rem var(--font-titulos);
    letter-spacing: .12em;
    text-transform: uppercase;
}
.video-showcase-heading h2 {
    margin: .6rem 0 0;
    text-align: left;
    font-size: clamp(2.3rem, 5vw, 4.8rem);
    line-height: .95;
    letter-spacing: -.045em;
}
.video-showcase-heading p { color: var(--color-texto-sec); }
.video-carousel-shell {
    position: relative;
    padding-inline: 3rem;
}
.video-showcase-grid {
    position: relative;
    overflow: hidden;
    border: 0;
    background: #0a0b0c;
}
.video-project {
    display: none;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, .65fr);
    min-height: 520px;
    color: inherit;
    text-decoration: none;
    background: #121416;
}
.video-project.is-active { display: grid; animation: video-slide-in .55s ease both; }
@keyframes video-slide-in {
    from { opacity: 0; transform: translateX(24px); }
    to { opacity: 1; transform: translateX(0); }
}
.video-carousel-button {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
    background: #121416;
    color: #fff;
    cursor: pointer;
    transform: translateY(-50%);
    transition: border-color .2s, color .2s, transform .2s;
}
.video-carousel-button:hover {
    border-color: var(--color-acento);
    color: var(--color-acento);
    transform: translateY(-50%) scale(1.06);
}
.video-carousel-prev { left: 0; }
.video-carousel-next { right: 0; }
.video-project-media {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    background: #08090a;
}
.video-project video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #08090a;
}
.video-project-index,
.video-project-open {
    position: absolute;
    z-index: 1;
    padding: .55rem .75rem;
    background: rgba(8,9,10,.78);
    color: #fff;
    font: 700 .68rem var(--font-titulos);
    letter-spacing: .08em;
    text-transform: uppercase;
    backdrop-filter: blur(8px);
}
.video-project-index { top: 1rem; left: 1rem; }
.video-project-open { right: 1rem; bottom: 1rem; color: var(--color-acento); }
.video-project-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 4vw, 4rem); }
.video-project-copy h3 { margin: .85rem 0 1rem; color: #fff; font-size: clamp(2rem, 4vw, 4rem); line-height: .95; letter-spacing: -.045em; }
.video-project-copy p { color: var(--color-texto-sec); font-size: 1rem; line-height: 1.7; }
.video-project:hover .video-project-open { background: var(--color-acento); color: #071012; }

@media (max-width: 760px) {
    .video-showcase-heading { grid-template-columns: 1fr; }
    .video-showcase { padding: 1.25rem; }
    .video-carousel-shell { padding-inline: 0; }
    .video-project,
    .video-project.is-active { grid-template-columns: 1fr; min-height: 0; }
    .video-project-media { min-height: 0; aspect-ratio: 16 / 10; }
    .video-project-copy { padding: 1.5rem; }
    .video-carousel-button { top: 32%; width: 34px; height: 34px; }
    .video-carousel-prev { left: .5rem; }
    .video-carousel-next { right: .5rem; }
}

@media (min-width: 761px) and (max-width: 1100px) {
    .video-project { grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); }
}

/* --- Automotive listing transformation card --- */
.revolution-showcase {
    position: relative;
    display: grid;
    grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr);
    min-height: 620px;
    margin-bottom: 5rem;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.12);
    color: inherit;
    text-decoration: none;
    background:
        radial-gradient(circle at 88% 10%, rgba(224,35,48,.2), transparent 30%),
        linear-gradient(145deg,#1d2023,#101214 62%);
    transform: scale(1);
    transform-origin: center;
    transition: transform .5s cubic-bezier(.2,.75,.2,1), border-color .35s ease, box-shadow .5s ease;
}
.revolution-showcase:hover {
    z-index: 2;
    border-color: rgba(239,62,77,.42);
    box-shadow: 0 30px 75px rgba(0,0,0,.34), 0 0 42px rgba(239,62,77,.08);
    transform: scale(1.018);
}
.revolution-showcase[hidden] { display: none; }
.revolution-showcase::after {
    content: "AUTOMOTIVE";
    position: absolute;
    left: -.5rem;
    bottom: -2.4rem;
    color: rgba(255,255,255,.025);
    font: 800 clamp(4rem,10vw,9rem) var(--font-titulos);
    letter-spacing: -.06em;
    pointer-events: none;
}
.revolution-showcase-copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: clamp(2rem,5vw,4rem);
}
.revolution-showcase-copy > span {
    color: #ef3e4d;
    font: 700 .7rem var(--font-titulos);
    letter-spacing: .12em;
    text-transform: uppercase;
}
.revolution-showcase-copy h2 {
    margin: 1rem 0 1.25rem;
    text-align: left;
    font-size: clamp(2.4rem,4.7vw,4.8rem);
    line-height: .92;
    letter-spacing: -.055em;
}
.revolution-showcase-copy p { max-width: 540px; color: #a5abb1; font-size: 1rem; line-height: 1.7; }
.revolution-showcase-tags { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.6rem; }
.revolution-showcase-tags span { padding: .35rem .55rem; border: 1px solid rgba(255,255,255,.15); color: #aeb4ba; font-size: .64rem; text-transform: uppercase; letter-spacing: .06em; }
.revolution-showcase-cta { margin-top: 2.2rem; color: #fff; font: 700 .75rem var(--font-titulos); letter-spacing: .08em; text-transform: uppercase; }
.revolution-showcase-cta b { display: inline-grid; place-items: center; width: 30px; height: 30px; margin-left: .6rem; border-radius: 50%; background: #ef3e4d; color: #fff; transition: transform .25s; }
.revolution-showcase:hover .revolution-showcase-cta b { transform: translate(4px,-4px); }
.revolution-showcase-visual { position: relative; min-width: 0; min-height: 620px; overflow: hidden; }
.revolution-visual-card { position: absolute; width: 48%; padding: .55rem; border: 1px solid rgba(255,255,255,.17); background: #0b0c0e; box-shadow: 0 24px 60px rgba(0,0,0,.38); transition: transform .45s ease; }
.revolution-visual-card small { display: block; padding: .15rem .2rem .55rem; color: #7c848b; font: .65rem monospace; letter-spacing: .1em; text-transform: uppercase; }
.revolution-visual-card img { width: 100%; aspect-ratio: 1/1; object-fit: contain; background: #fff; }
.revolution-visual-before { left: 4%; top: 15%; transform: rotate(-5deg); }
.revolution-visual-after { right: 4%; top: 8%; z-index: 1; transform: rotate(4deg); }
.revolution-showcase:hover .revolution-visual-before { transform: translate(-10px,6px) rotate(-7deg) scale(1.055); }
.revolution-showcase:hover .revolution-visual-after { transform: translate(11px,-8px) rotate(6deg) scale(1.055); }
.revolution-visual-line { position: absolute; right: 2rem; bottom: 1.5rem; color: #ef3e4d; font: .65rem monospace; letter-spacing: .09em; text-transform: uppercase; }

@media(max-width:850px){
    .revolution-showcase { grid-template-columns: 1fr; }
    .revolution-showcase-visual { min-height: 480px; order: -1; }
    .revolution-showcase-copy { padding: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
    .revolution-showcase,
    .revolution-visual-card,
    .revolution-showcase-cta b { transition: none; }
    .revolution-showcase:hover { transform: none; }
    .revolution-showcase:hover .revolution-visual-before { transform: rotate(-5deg); }
    .revolution-showcase:hover .revolution-visual-after { transform: rotate(4deg); }
}
@media(max-width:520px){
    .revolution-showcase-visual { min-height: 360px; }
    .revolution-visual-card { width: 58%; }
}

.flyer-showcase {
    position: relative;
    margin-bottom: 5rem;
    padding: clamp(2rem, 5vw, 4rem);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.12);
    background:
        radial-gradient(circle at 92% 8%, rgba(245, 93, 23, .2), transparent 26%),
        linear-gradient(135deg, #171717, #0b0b0b);
}
.flyer-showcase::before {
    content: "UNIMAC / CAMPAIGN";
    position: absolute;
    right: -1rem;
    bottom: -1.4rem;
    color: rgba(255,255,255,.025);
    font: 800 clamp(3.5rem, 9vw, 8rem) var(--font-titulos);
    white-space: nowrap;
    pointer-events: none;
}
.flyer-showcase::after {
    content: "";
    position: absolute;
    z-index: 0;
    width: clamp(260px, 38vw, 520px);
    aspect-ratio: 1;
    right: 6%;
    bottom: -45%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,106,20,.32) 0, rgba(241,90,36,.14) 34%, transparent 70%);
    filter: blur(18px);
    pointer-events: none;
    animation: unimac-heat-glow 4.8s ease-in-out infinite alternate;
}
@keyframes unimac-heat-glow {
    0% { opacity: .42; transform: translate3d(-8%, 8%, 0) scale(.86); }
    55% { opacity: .8; transform: translate3d(5%, -5%, 0) scale(1.08); }
    100% { opacity: .58; transform: translate3d(-3%, -12%, 0) scale(.96); }
}
.flyer-showcase-heading {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, .65fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    margin-bottom: 2.75rem;
}
.flyer-showcase-kicker,
.flyer-showcase-intro span {
    color: #f15a24;
    font: 700 .7rem var(--font-titulos);
    letter-spacing: .12em;
    text-transform: uppercase;
}
.flyer-showcase-heading h2 {
    margin: .6rem 0 0;
    color: #fff;
    text-align: left;
    font-size: clamp(2.3rem, 5vw, 4.8rem);
    line-height: .92;
    letter-spacing: -.05em;
}
.flyer-showcase-intro p { margin-bottom: 1rem; color: #aaa; }
.flyer-case-link { display: inline-flex; align-items: center; gap: .55rem; margin-top: 1.25rem; color: #fff; font: 700 .72rem var(--font-titulos); letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.flyer-case-link b { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #f15a24; color: #111; transition: transform .25s; }
.flyer-case-link:hover b { transform: translate(3px,-3px); }
.flyer-carousel-shell { position: relative; z-index: 1; padding-inline: 3rem; }
.flyer-carousel {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.flyer-carousel::-webkit-scrollbar { display: none; }
.flyer-panel {
    flex: 0 0 calc((100% - 3rem) / 4);
    min-width: 0;
    margin: 0;
    scroll-snap-align: start;
    border: 1px solid rgba(255,255,255,.13);
    background: #111;
    transition: transform .25s, border-color .25s;
}
.flyer-panel:hover { transform: translateY(-5px); border-color: rgba(241,90,36,.65); }
.flyer-panel:hover img { filter: saturate(1.12) drop-shadow(0 0 12px rgba(241,90,36,.18)); }
.flyer-panel img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    background: #050505;
    transition: filter .35s ease;
}
.flyer-panel figcaption {
    display: flex;
    gap: .75rem;
    align-items: center;
    padding: 1rem;
    color: #fff;
    font-size: .78rem;
}
.flyer-panel figcaption span { color: #f15a24; font: 700 .68rem monospace; }
.flyer-panel figcaption strong { font-family: var(--font-titulos); letter-spacing: .02em; }
.flyer-carousel-button {
    position: absolute;
    top: 45%;
    z-index: 2;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(241,90,36,.7);
    border-radius: 50%;
    background: #111;
    color: #f15a24;
    cursor: pointer;
    transform: translateY(-50%);
}
.flyer-carousel-button:hover { background: #f15a24; color: #111; }
.flyer-carousel-prev { left: 0; }
.flyer-carousel-next { right: 0; }

@media (max-width: 760px) {
    .flyer-showcase { padding: 1.25rem; }
    .flyer-showcase-heading { grid-template-columns: 1fr; }
    .flyer-carousel-shell { padding-inline: 0; }
    .flyer-panel { flex-basis: 76%; }
    .flyer-carousel-button { display: none; }
}

@media (min-width: 761px) and (max-width: 1100px) {
    .flyer-panel { flex-basis: calc((100% - 1rem) / 2); }
}

/* --- Corporate communication icon system --- */
.icon-system-showcase {
    position: relative;
    display: grid;
    grid-template-columns: minmax(320px,.95fr) minmax(0,1.05fr);
    min-height: 620px;
    margin-bottom: 5rem;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.13);
    background: radial-gradient(circle at 82% 18%,rgba(79,210,171,.16),transparent 30%),linear-gradient(145deg,#17201f,#0c1011 64%);
    color: inherit;
    text-decoration: none;
    transform: scale(1);
    transition: transform .5s cubic-bezier(.2,.75,.2,1),border-color .35s,box-shadow .5s;
}
.icon-system-showcase:hover { z-index:2; transform:scale(1.018); border-color:rgba(79,210,171,.46); box-shadow:0 30px 75px rgba(0,0,0,.34),0 0 42px rgba(79,210,171,.08); }
.icon-system-showcase::after { content:"ICON / SYSTEM"; position:absolute; left:-.6rem; bottom:-2rem; color:rgba(255,255,255,.025); font:800 clamp(4rem,10vw,9rem) var(--font-titulos); letter-spacing:-.07em; white-space:nowrap; pointer-events:none; }
.icon-system-showcase-copy { position:relative; z-index:2; min-width:0; display:flex; flex-direction:column; justify-content:center; padding:clamp(2rem,4vw,4rem); }
.icon-system-showcase-copy>span { color:#4fd2ab; font:700 .7rem var(--font-titulos); letter-spacing:.12em; text-transform:uppercase; }
.icon-system-showcase-copy h2 { width:100%; margin:1rem 0 1.25rem; text-align:left; font-size:clamp(2.35rem,3.4vw,3.75rem); line-height:.94; letter-spacing:-.045em; }
.icon-system-showcase-copy p { max-width:560px; color:#a8b2b0; line-height:1.7; }
.icon-system-tags { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:1.5rem; }
.icon-system-tags span { padding:.35rem .55rem; border:1px solid rgba(255,255,255,.15); color:#b5bfbd; font-size:.64rem; text-transform:uppercase; letter-spacing:.06em; }
.icon-system-showcase-copy>strong { margin-top:2rem; color:#fff; font:.75rem var(--font-titulos); letter-spacing:.08em; text-transform:uppercase; }
.icon-system-showcase-copy>strong b { color:#4fd2ab; }
.icon-system-showcase-visual { position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; align-content:center; padding:clamp(2rem,5vw,5rem); background:rgba(255,255,255,.045); }
.icon-system-showcase-visual img { width:100%; aspect-ratio:1; padding:24%; object-fit:contain; background:#151b1c; transition:transform .45s,background .35s; }
.icon-system-showcase:hover .icon-system-showcase-visual img { transform:scale(1.07); background:#192321; }
.icon-system-showcase-visual img:nth-child(3n+2) { background:#101516; }

.icon-case-page { --icon-green:#4fd2ab; background:#0b0f10; }
.icon-case-page .navbar .container { display:flex; justify-content:space-between; align-items:center; }
.icon-case-back { color:#9ba7a5; font-size:.78rem; text-decoration:none; }.icon-case-back:hover{color:var(--icon-green)}
.icon-case-kicker { color:var(--icon-green); font:700 .72rem var(--font-titulos); letter-spacing:.13em; text-transform:uppercase; }
.icon-case-hero { position:relative; min-height:92vh; display:grid; align-items:center; padding:10rem 0 7rem; overflow:hidden; background:radial-gradient(circle at 75% 34%,rgba(79,210,171,.16),transparent 34%),#0b0f10; }
.icon-case-hero .container { position:relative; z-index:2; }
.icon-case-hero h1 { max-width:1000px; margin:1.2rem 0 1.8rem; font-size:clamp(4rem,9vw,9rem); line-height:.84; letter-spacing:-.07em; }.icon-case-hero h1 em{color:var(--icon-green);font-style:normal;font-weight:400}
.icon-case-hero .container>p { max-width:720px; color:#aab4b2; font-size:clamp(1rem,1.8vw,1.3rem); line-height:1.7; }
.icon-case-stats { display:flex; gap:1px; width:min(700px,100%); margin-top:3rem; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.14); }.icon-case-stats div{flex:1;padding:1.25rem;background:#101516}.icon-case-stats b,.icon-case-stats span{display:block}.icon-case-stats b{color:#fff;font:700 2rem var(--font-titulos)}.icon-case-stats span{color:#75817f;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}
.icon-case-orbit { position:absolute; right:-4%; top:19%; width:min(44vw,650px); aspect-ratio:1; border:1px solid rgba(79,210,171,.16); border-radius:50%; animation:icon-orbit 28s linear infinite; }.icon-case-orbit img{position:absolute;width:14%;aspect-ratio:1;object-fit:contain}.icon-case-orbit img:nth-child(1){left:43%;top:-7%}.icon-case-orbit img:nth-child(2){right:2%;top:19%}.icon-case-orbit img:nth-child(3){right:3%;bottom:18%}.icon-case-orbit img:nth-child(4){left:43%;bottom:-7%}.icon-case-orbit img:nth-child(5){left:2%;bottom:18%}.icon-case-orbit img:nth-child(6){left:2%;top:19%}@keyframes icon-orbit{to{transform:rotate(360deg)}}
.icon-case-purpose,.icon-case-principles,.icon-case-library { padding:8rem 0; }
.icon-case-purpose { background:#161b1c; }.icon-case-purpose-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(3rem,9vw,9rem)}.icon-case-purpose h2,.icon-case-principles h2,.icon-library-heading h2{margin:.8rem 0 0;text-align:left;font-size:clamp(3rem,6vw,6.5rem);line-height:.9;letter-spacing:-.06em}.icon-case-purpose-copy p{color:#b1bab8;font-size:1.05rem;line-height:1.8}.icon-case-purpose-copy p+p{margin-top:1.5rem}
.icon-case-principles { background:#0f1314; }.icon-case-principles> .container>h2{max-width:900px;margin-bottom:4rem}.icon-principle-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.13);gap:1px}.icon-principle-grid article{min-height:280px;padding:2rem;background:#151a1b}.icon-principle-grid b{color:var(--icon-green);font:.7rem monospace}.icon-principle-grid h3{margin:3rem 0 .8rem;color:#fff;font-size:1.35rem}.icon-principle-grid p{color:#8f9997;font-size:.88rem;line-height:1.65}
.icon-case-library { overflow:hidden;background:#171c1d}.icon-library-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.55fr);gap:4rem;align-items:end;margin-bottom:4rem}.icon-library-heading p{color:#929d9a}.icon-library-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:1px;width:100%;background:rgba(255,255,255,.1);border-block:1px solid rgba(255,255,255,.1)}.icon-library-item{min-width:0;margin:0;padding:1rem .65rem;background:#101516;transition:background .25s,transform .25s}.icon-library-item:hover{position:relative;z-index:1;background:#1c2725;transform:scale(1.06)}.icon-library-item img{width:100%;aspect-ratio:1;object-fit:contain;padding:16%}.icon-library-item figcaption{margin-top:.65rem;text-align:center}.icon-library-item b,.icon-library-item span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-library-item b{color:#d9dfdd;font-size:.62rem}.icon-library-item span{margin-top:.2rem;color:#8d9996;font-size:.55rem;text-transform:uppercase;letter-spacing:.06em}
.icon-case-page .case-contact-cta{background:var(--icon-green)}.icon-case-page .case-software-heading>span{color:var(--icon-green)}
@media(max-width:900px){.icon-system-showcase{grid-template-columns:1fr}.icon-system-showcase-visual{order:-1;grid-template-columns:repeat(6,1fr)}.icon-case-orbit{opacity:.25;right:-25%;width:80vw}.icon-case-purpose-grid,.icon-library-heading{grid-template-columns:1fr}.icon-principle-grid{grid-template-columns:1fr 1fr}.icon-library-grid{grid-template-columns:repeat(6,1fr)}}
@media(max-width:560px){.icon-system-showcase-visual{grid-template-columns:repeat(4,1fr);padding:1.25rem}.icon-case-hero{min-height:auto;padding:8rem 0 5rem}.icon-case-hero h1{font-size:3.8rem}.icon-case-stats{flex-direction:column}.icon-case-orbit{display:none}.icon-case-purpose,.icon-case-principles,.icon-case-library{padding:5rem 0}.icon-principle-grid{grid-template-columns:1fr}.icon-library-grid{grid-template-columns:repeat(3,1fr)}.icon-library-item{padding:.75rem .4rem}}
@media(prefers-reduced-motion:reduce){.icon-case-orbit{animation:none}.icon-system-showcase,.icon-system-showcase-visual img,.icon-library-item{transition:none}.icon-system-showcase:hover,.icon-system-showcase:hover .icon-system-showcase-visual img,.icon-library-item:hover{transform:none}}

/* --- Shulex VOC AI: research-to-creative showcase --- */
.voc-ai-showcase{position:relative;display:grid;grid-template-columns:minmax(320px,.92fr) minmax(0,1.08fr);min-height:590px;margin-bottom:5rem;overflow:hidden;border:1px solid rgba(19,196,201,.25);background:radial-gradient(circle at 82% 18%,rgba(19,196,201,.18),transparent 34%),linear-gradient(145deg,#132124,#091112 65%);color:inherit;text-decoration:none;transform:scale(1);transition:transform .5s cubic-bezier(.2,.75,.2,1),border-color .35s,box-shadow .5s}
.voc-ai-showcase:hover{z-index:2;transform:scale(1.018);border-color:rgba(19,196,201,.6);box-shadow:0 30px 75px rgba(0,0,0,.36),0 0 46px rgba(19,196,201,.1)}
.voc-ai-showcase-copy{position:relative;z-index:2;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,4vw,4rem)}
.voc-ai-showcase-copy>span{color:#13c4c9;font:700 .7rem var(--font-titulos);letter-spacing:.12em;text-transform:uppercase}
.voc-ai-showcase-copy h2{width:100%;margin:1rem 0 1.25rem;text-align:left;font-size:clamp(2.5rem,4vw,4.25rem);line-height:.92;letter-spacing:-.05em}
.voc-ai-showcase-copy p{max-width:570px;color:#a9b9b8;line-height:1.7}
.voc-ai-showcase-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.5rem}.voc-ai-showcase-tags span{padding:.35rem .55rem;border:1px solid rgba(19,196,201,.25);color:#bce4e2;font-size:.64rem;text-transform:uppercase;letter-spacing:.06em}
.voc-ai-showcase-copy>strong{margin-top:2rem;color:#fff;font:.75rem var(--font-titulos);letter-spacing:.08em;text-transform:uppercase}.voc-ai-showcase-copy>strong b{color:#13c4c9}
.voc-ai-showcase-visual{display:grid;grid-template-columns:1fr 1fr;gap:1px;padding:clamp(1.2rem,3vw,2.4rem);background:rgba(255,255,255,.035)}
.voc-ai-showcase-visual img{width:100%;height:100%;min-height:0;object-fit:cover;background:#fff;transition:transform .5s cubic-bezier(.2,.75,.2,1),filter .35s}.voc-ai-showcase:hover .voc-ai-showcase-visual img{transform:scale(1.035);filter:saturate(1.06)}
.voc-ai-card-visual{position:relative;display:grid!important;grid-template-columns:1fr 1fr;gap:1px;min-height:360px;overflow:hidden;background:#0b1517!important}.voc-ai-card-visual img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.voc-ai-ecommerce-card:hover .voc-ai-card-visual img{transform:scale(1.045)}.voc-ai-card-visual span{position:absolute;right:1rem;bottom:1rem;padding:.65rem .8rem;background:#13c4c9;color:#061012;font:700 .68rem var(--font-titulos);letter-spacing:.06em;text-transform:uppercase}
@media(max-width:900px){.voc-ai-showcase{grid-template-columns:1fr}.voc-ai-showcase-visual{order:-1;min-height:460px}.voc-ai-card-visual{min-height:300px}}
@media(max-width:560px){.voc-ai-showcase-visual{min-height:360px;padding:1rem}.voc-ai-showcase-copy h2{font-size:2.7rem}.voc-ai-card-visual{min-height:250px}}
@media(prefers-reduced-motion:reduce){.voc-ai-showcase,.voc-ai-showcase-visual img,.voc-ai-card-visual img{transition:none}.voc-ai-showcase:hover,.voc-ai-showcase:hover .voc-ai-showcase-visual img,.voc-ai-ecommerce-card:hover .voc-ai-card-visual img{transform:none}}

/* --- Ecommerce conversion video system --- */
.ecommerce-video-showcase{background:linear-gradient(145deg,rgba(76,214,168,.11),transparent 46%),#141817;border-color:rgba(76,214,168,.24)}
.ecommerce-video-showcase .video-showcase-kicker,.ecommerce-video-showcase .video-project-copy>span,.ecommerce-video-showcase .video-project-open{color:#4cd6a8}
.ecommerce-video-showcase .video-carousel-button:hover{border-color:#4cd6a8;color:#4cd6a8}
.ecommerce-video-showcase .video-project:hover .video-project-open{background:#4cd6a8;color:#07120e}
.ecommerce-video-case-link{display:flex;width:max-content;max-width:100%;margin:2rem 3rem 0 auto;padding:.85rem 1rem;border-bottom:1px solid #4cd6a8;color:#dffbf1;font:700 .72rem var(--font-titulos);letter-spacing:.08em;text-decoration:none;text-transform:uppercase;transition:color .2s,transform .2s}
.ecommerce-video-case-link:hover{color:#4cd6a8;transform:translateX(4px)}
.commerce-video-case-page{--commerce-green:#4cd6a8;background:#0a0e0d}
.commerce-video-case-page .case-contact-cta{background:var(--commerce-green);color:#07110e}.commerce-video-case-page .case-software-heading>span{color:var(--commerce-green)}
.commerce-video-hero{min-height:92vh;display:flex;align-items:center;padding:10rem 0 7rem;background:radial-gradient(circle at 78% 35%,rgba(76,214,168,.19),transparent 32%),linear-gradient(135deg,#0b1110,#101b18 55%,#080b0a)}
.commerce-video-hero .container>span{color:var(--commerce-green);font:700 .72rem var(--font-titulos);letter-spacing:.13em;text-transform:uppercase}
.commerce-video-hero h1{max-width:1100px;margin:1rem 0 1.6rem;text-align:left;font-size:clamp(4.2rem,9vw,9rem);line-height:.84;letter-spacing:-.07em}.commerce-video-hero h1 em{color:var(--commerce-green);font-style:normal;font-weight:400}
.commerce-video-hero p{max-width:800px;color:#aab7b2;font-size:clamp(1rem,1.6vw,1.22rem);line-height:1.75}
.commerce-video-proof{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;width:min(900px,100%);margin-top:3.5rem;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.07)}.commerce-video-proof b,.commerce-video-proof span{padding:1.15rem}.commerce-video-proof b{color:#fff;font:700 1.8rem var(--font-titulos)}.commerce-video-proof span{align-self:center;border-right:1px solid rgba(255,255,255,.13);color:#73817c;font-size:.67rem;text-transform:uppercase;letter-spacing:.07em}.commerce-video-proof span:last-child{border-right:0}
.commerce-video-strategy,.commerce-video-series{padding:8rem 0}.commerce-video-strategy{background:#151b19}.commerce-video-strategy h2,.commerce-video-series h2{max-width:1050px;margin:1rem 0 4rem;text-align:left;font-size:clamp(3rem,7vw,6.5rem);line-height:.9;letter-spacing:-.06em}.commerce-video-strategy .animation-section-number,.commerce-video-series .animation-section-number{color:var(--commerce-green)}
.commerce-strategy-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.13);gap:1px;background:rgba(255,255,255,.13)}.commerce-strategy-grid article{min-height:280px;padding:2rem;background:#101513}.commerce-strategy-grid b{color:var(--commerce-green);font:.72rem monospace}.commerce-strategy-grid h3{margin:3rem 0 1rem;color:#fff;font-size:1.35rem}.commerce-strategy-grid p{color:#8d9a95;font-size:.9rem;line-height:1.65}
.commerce-video-series{background:#0e1311}.commerce-series-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.commerce-series-grid a{display:block;overflow:hidden;padding-bottom:1.5rem;background:#171d1a;color:inherit;text-decoration:none;transition:transform .35s,background .3s}.commerce-series-grid a:hover{z-index:1;transform:scale(1.018);background:#1b2521}.commerce-series-grid a:last-child{grid-column:1/-1}.commerce-series-grid video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#050806;transition:transform .45s}.commerce-series-grid a:hover video{transform:scale(1.04)}.commerce-series-grid span,.commerce-series-grid h3{display:block;margin-inline:1.5rem}.commerce-series-grid span{margin-top:1.3rem;color:var(--commerce-green);font:.68rem var(--font-titulos);letter-spacing:.1em;text-transform:uppercase}.commerce-series-grid h3{margin-top:.55rem;color:#fff;font-size:clamp(1.5rem,3vw,2.5rem)}
.commerce-individual-page{--color-acento:#4cd6a8;--color-acento-rgb:76,214,168}.commerce-individual-page .animation-case-hero{background:radial-gradient(circle at 50% 12%,rgba(76,214,168,.13),transparent 36%)}
.ecommerce-video-card-visual{position:relative;overflow:hidden}.ecommerce-video-card-visual video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#080b0a;transition:transform .45s}.ecommerce-video-case-card:hover video{transform:scale(1.045)}.ecommerce-video-card-visual span{position:absolute;right:1rem;bottom:1rem;padding:.7rem .85rem;background:#4cd6a8;color:#07110e;font:700 .68rem var(--font-titulos);letter-spacing:.08em;text-transform:uppercase}
@media(max-width:850px){.commerce-video-proof{grid-template-columns:auto 1fr}.commerce-video-proof span{border-right:0}.commerce-strategy-grid{grid-template-columns:1fr 1fr}.commerce-series-grid{grid-template-columns:1fr}.commerce-series-grid a:last-child{grid-column:auto}}
@media(max-width:560px){.ecommerce-video-case-link{margin:1.5rem 0 0;font-size:.64rem}.commerce-video-hero{min-height:auto;padding:8rem 0 5rem}.commerce-video-hero h1{font-size:3.7rem}.commerce-video-strategy,.commerce-video-series{padding:5rem 0}.commerce-strategy-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.commerce-series-grid a,.commerce-series-grid video,.ecommerce-video-card-visual video{transition:none}.commerce-series-grid a:hover,.commerce-series-grid a:hover video,.ecommerce-video-case-card:hover video{transform:none}}

/* --- Voice of Customer research case --- */
.voc-case-page{--voc:#43d6a2;background:#0b100e}.voc-case-page .case-contact-cta{background:var(--voc);color:#07110d}.voc-case-page .case-software-heading>span{color:var(--voc)}.voc-back{color:#91a09a;font-size:.78rem;text-decoration:none}.voc-back:hover{color:var(--voc)}
.voc-hero{min-height:88vh;display:flex;align-items:center;padding:10rem 0 7rem;background:radial-gradient(circle at 82% 22%,rgba(67,214,162,.18),transparent 32%),linear-gradient(135deg,#0a0f0d,#111c18)}.voc-hero .container>span,.voc-kicker{color:var(--voc);font:700 .72rem var(--font-titulos);letter-spacing:.12em;text-transform:uppercase}.voc-hero h1{max-width:1100px;margin:1rem 0 1.7rem;text-align:left;font-size:clamp(4rem,9vw,8.8rem);line-height:.85;letter-spacing:-.07em}.voc-hero h1 em{color:var(--voc);font-style:normal;font-weight:400}.voc-hero p{max-width:830px;color:#aab6b1;font-size:clamp(1rem,1.6vw,1.2rem);line-height:1.75}.voc-disclosure{width:max-content;max-width:100%;margin-top:2.5rem;padding:.65rem .8rem;border:1px solid rgba(67,214,162,.28);color:#81918a;font-size:.66rem;letter-spacing:.05em;text-transform:uppercase}
.voc-evidence,.voc-method,.voc-tensions,.voc-brief,.voc-guardrail{padding:8rem 0}.voc-evidence,.voc-tensions{background:#161c19}.voc-method,.voc-brief{background:#0e1411}.voc-guardrail{background:#15251f}.voc-evidence h2,.voc-method h2,.voc-tensions h2,.voc-brief h2,.voc-guardrail h2{max-width:1100px;margin:.9rem 0 3rem;text-align:left;font-size:clamp(3rem,6.5vw,6.2rem);line-height:.91;letter-spacing:-.06em}.voc-section-lead{max-width:850px;margin:-1rem 0 3.5rem;color:#929f99;line-height:1.7}
.voc-metric-grid,.voc-method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.13)}.voc-metric-grid article,.voc-method-grid article{min-height:270px;padding:2rem;background:#101613}.voc-metric-grid b{display:block;color:var(--voc);font:700 clamp(3rem,5vw,5rem) var(--font-titulos)}.voc-metric-grid span{display:block;min-height:2.6em;margin:.5rem 0 1.3rem;color:#fff;font-weight:700}.voc-metric-grid p,.voc-method-grid p{color:#87948e;font-size:.88rem;line-height:1.65}.voc-method-grid b{color:var(--voc);font:.72rem monospace}.voc-method-grid h3{margin:3rem 0 1rem;color:#fff;font-size:1.35rem}
.voc-tension-table{border:1px solid rgba(255,255,255,.14)}.voc-tension-table>[role=row]{display:grid;grid-template-columns:1fr 1fr 1.25fr}.voc-tension-table b,.voc-tension-table span{padding:1.3rem 1.5rem;border-right:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}.voc-tension-table b:last-child,.voc-tension-table span:last-child{border-right:0}.voc-tension-table b{color:var(--voc);font:.72rem var(--font-titulos);letter-spacing:.08em;text-transform:uppercase}.voc-tension-table span{color:#aab5b0;font-size:.9rem}.voc-tension-table>[role=row]:last-child span{border-bottom:0}
.voc-brief ol{display:grid;grid-template-columns:repeat(2,1fr);margin:0;padding:0;list-style:none;border:1px solid rgba(255,255,255,.13);gap:1px;background:rgba(255,255,255,.13)}.voc-brief li{min-height:220px;padding:2rem;background:#151b18}.voc-brief b{color:#fff}.voc-brief p{margin-top:1rem;color:#8c9892;line-height:1.7}.voc-guardrail .container{max-width:1050px}.voc-guardrail h2{text-align:center;margin-inline:auto}.voc-guardrail .voc-kicker{display:block;text-align:center}.voc-guardrail p{max-width:830px;margin:0 auto;color:#b4c0bb;font-size:1.05rem;line-height:1.8;text-align:center}
@media(max-width:850px){.voc-metric-grid,.voc-method-grid{grid-template-columns:1fr 1fr}.voc-tension-table>[role=row]{grid-template-columns:1fr}.voc-tension-table b,.voc-tension-table span{border-right:0}.voc-tension-table>[role=row]:not(:first-child) span:first-child{color:#fff;font-weight:700}.voc-tension-table>[role=row]:first-child{display:none}}
@media(max-width:560px){.voc-hero{min-height:auto;padding:8rem 0 5rem}.voc-hero h1{font-size:3.65rem}.voc-evidence,.voc-method,.voc-tensions,.voc-brief,.voc-guardrail{padding:5rem 0}.voc-metric-grid,.voc-method-grid,.voc-brief ol{grid-template-columns:1fr}.voc-disclosure{font-size:.58rem;line-height:1.5}}

/* --- Amazon lifecycle operating system --- */
.lifecycle-case-page{--life:#718cff;background:#090b12}.lifecycle-case-page .case-contact-cta{background:var(--life)}.lifecycle-case-page .case-software-heading>span{color:var(--life)}.lifecycle-back{color:#9197aa;font-size:.78rem;text-decoration:none}.lifecycle-back:hover{color:var(--life)}
.lifecycle-hero{min-height:92vh;display:flex;align-items:center;padding:10rem 0 7rem;overflow:hidden;background:radial-gradient(circle at 82% 25%,rgba(113,140,255,.22),transparent 33%),linear-gradient(135deg,#0a0c14,#12182a)}.lifecycle-hero .container>span,.lifecycle-kicker{color:var(--life);font:700 .72rem var(--font-titulos);letter-spacing:.12em;text-transform:uppercase}.lifecycle-hero h1{max-width:1120px;margin:1rem 0 1.7rem;text-align:left;font-size:clamp(4.2rem,9vw,9rem);line-height:.84;letter-spacing:-.07em}.lifecycle-hero h1 em{color:var(--life);font-style:normal;font-weight:400}.lifecycle-hero p{max-width:830px;color:#aab0c1;font-size:clamp(1rem,1.6vw,1.2rem);line-height:1.75}.lifecycle-stage-line{display:flex;align-items:center;width:min(920px,100%);margin-top:3.5rem}.lifecycle-stage-line b{color:#fff;font:700 .78rem var(--font-titulos);white-space:nowrap}.lifecycle-stage-line small{display:block;margin-top:.35rem;color:#737a91;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase}.lifecycle-stage-line i{flex:1;height:1px;margin:0 1rem;background:linear-gradient(90deg,var(--life),rgba(113,140,255,.18))}
.lifecycle-thesis,.lifecycle-map,.lifecycle-gates,.lifecycle-diagnostic,.lifecycle-learning,.lifecycle-outcome{padding:8rem 0}.lifecycle-thesis,.lifecycle-diagnostic{background:#171a24}.lifecycle-map,.lifecycle-learning{background:#0d1019}.lifecycle-gates{background:#121622}.lifecycle-outcome{background:#18213d}.lifecycle-thesis h2,.lifecycle-map h2,.lifecycle-gates h2,.lifecycle-diagnostic h2,.lifecycle-learning h2,.lifecycle-outcome h2{max-width:1100px;margin:.9rem 0 3.5rem;text-align:left;font-size:clamp(3rem,6.5vw,6.4rem);line-height:.9;letter-spacing:-.06em}.lifecycle-thesis p,.lifecycle-outcome p{max-width:920px;color:#b0b6c8;font-size:clamp(1.15rem,2vw,1.6rem);line-height:1.6}
.lifecycle-stage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.13)}.lifecycle-stage-grid article{min-height:520px;padding:2rem;background:#151925}.lifecycle-stage-grid article>b{color:var(--life);font:.72rem monospace}.lifecycle-stage-grid article>span{display:block;margin-top:2.5rem;color:#8a93ad;font:.68rem var(--font-titulos);letter-spacing:.08em;text-transform:uppercase}.lifecycle-stage-grid h3{margin:.65rem 0 1rem;color:#fff;font-size:1.45rem}.lifecycle-stage-grid p{min-height:11em;color:#9098ac;font-size:.87rem;line-height:1.65}.lifecycle-stage-grid ul{margin:1.5rem 0 0;padding:0;list-style:none}.lifecycle-stage-grid li{padding:.48rem 0;border-top:1px solid rgba(255,255,255,.1);color:#c4c8d3;font-size:.75rem}
.lifecycle-gate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.12)}.lifecycle-gate-grid article{min-height:210px;padding:2rem;background:#0f121c}.lifecycle-gate-grid b{color:var(--life);font:.75rem var(--font-titulos);letter-spacing:.09em;text-transform:uppercase}.lifecycle-gate-grid p{margin-top:2.5rem;color:#9299ab;font-size:.9rem;line-height:1.65}
.lifecycle-equation{display:flex;align-items:center;justify-content:center;gap:1.1rem;margin:0 0 4rem;padding:2rem;border:1px solid rgba(113,140,255,.28);background:#101522}.lifecycle-equation span{color:#fff;font:700 clamp(1.2rem,3vw,2.5rem) var(--font-titulos)}.lifecycle-equation b{color:var(--life);font-size:1.5rem}.lifecycle-diagnostic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.lifecycle-diagnostic-grid article{padding:2rem;background:#0d1018}.lifecycle-diagnostic-grid h3{color:#fff;font-size:1.45rem}.lifecycle-diagnostic-grid p{min-height:8em;margin:1rem 0;color:#9299aa;line-height:1.65}.lifecycle-diagnostic-grid strong{color:var(--life);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}
.lifecycle-loop{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.12)}.lifecycle-loop div{position:relative;min-height:260px;padding:1.8rem;background:#151925}.lifecycle-loop div:not(:last-child)::after{content:'→';position:absolute;right:-9px;top:50%;z-index:2;color:var(--life)}.lifecycle-loop b,.lifecycle-loop span{display:block}.lifecycle-loop b{color:var(--life);font:.7rem monospace}.lifecycle-loop span{margin-top:3rem;color:#fff;font:700 1.15rem var(--font-titulos)}.lifecycle-loop p{margin-top:.8rem;color:#8b93a7;font-size:.85rem;line-height:1.6}.lifecycle-outcome .container{max-width:1050px}.lifecycle-outcome .lifecycle-kicker{display:block;text-align:center}.lifecycle-outcome h2,.lifecycle-outcome p{margin-inline:auto;text-align:center}
.lifecycle-card-visual{display:flex!important;align-items:center;justify-content:center;gap:.55rem;min-height:340px!important;padding:2rem;background:radial-gradient(circle at 50% 50%,rgba(113,140,255,.18),transparent 52%),#0d1019}.lifecycle-card-visual div{min-width:105px;padding:1rem;border:1px solid rgba(113,140,255,.35);background:#151a29}.lifecycle-card-visual span,.lifecycle-card-visual b{display:block}.lifecycle-card-visual span{color:#718cff;font-size:.58rem;letter-spacing:.08em}.lifecycle-card-visual b{margin-top:.35rem;color:#fff;font-size:.75rem}.lifecycle-card-visual i{color:#718cff;font-style:normal}.lifecycle-case-card:hover .lifecycle-card-visual div{transform:scale(1.04)}.lifecycle-card-visual div{transition:transform .35s}
@media(max-width:950px){.lifecycle-stage-grid{grid-template-columns:1fr 1fr}.lifecycle-stage-grid p{min-height:0}.lifecycle-gate-grid{grid-template-columns:1fr 1fr}.lifecycle-loop{grid-template-columns:1fr}.lifecycle-loop div{min-height:0}.lifecycle-loop div:not(:last-child)::after{content:'↓';right:2rem;top:auto;bottom:-11px}.lifecycle-card-visual{flex-wrap:wrap}}
@media(max-width:650px){.lifecycle-hero{min-height:auto;padding:8rem 0 5rem}.lifecycle-hero h1{font-size:3.7rem}.lifecycle-stage-line{align-items:flex-start}.lifecycle-stage-line i{margin-top:.5rem}.lifecycle-stage-line small{font-size:.52rem}.lifecycle-thesis,.lifecycle-map,.lifecycle-gates,.lifecycle-diagnostic,.lifecycle-learning,.lifecycle-outcome{padding:5rem 0}.lifecycle-stage-grid,.lifecycle-gate-grid,.lifecycle-diagnostic-grid{grid-template-columns:1fr}.lifecycle-equation{flex-wrap:wrap}.lifecycle-diagnostic-grid p{min-height:0}}
@media(prefers-reduced-motion:reduce){.lifecycle-card-visual div{transition:none}.lifecycle-case-card:hover .lifecycle-card-visual div{transform:none}}

/* --- Amazon content architecture --- */
.content-architecture-page{--content:#e55bbd;background:#0e0910}.content-architecture-page .case-contact-cta{background:var(--content)}.content-architecture-page .case-software-heading>span{color:var(--content)}.content-architecture-back{color:#a18e9e;font-size:.78rem;text-decoration:none}.content-architecture-back:hover{color:var(--content)}
.content-architecture-hero{min-height:92vh;display:flex;align-items:center;padding:10rem 0 7rem;background:radial-gradient(circle at 80% 30%,rgba(229,91,189,.2),transparent 34%),linear-gradient(135deg,#100a12,#251326)}.content-architecture-hero .container>span,.content-kicker{color:var(--content);font:700 .72rem var(--font-titulos);letter-spacing:.12em;text-transform:uppercase}.content-architecture-hero h1{max-width:1120px;margin:1rem 0 1.7rem;text-align:left;font-size:clamp(4.1rem,8.8vw,8.7rem);line-height:.85;letter-spacing:-.07em}.content-architecture-hero h1 em{color:var(--content);font-style:normal;font-weight:400}.content-architecture-hero p{max-width:830px;color:#b7a8b4;font-size:clamp(1rem,1.6vw,1.2rem);line-height:1.75}.content-question-strip{display:flex;flex-wrap:wrap;gap:1px;margin-top:3.5rem}.content-question-strip b{padding:.9rem 1.1rem;border:1px solid rgba(229,91,189,.26);color:#d4c9d1;background:rgba(255,255,255,.035);font-size:.7rem}
.content-thesis,.content-layers,.content-gallery-plan,.content-matrix,.content-experiment,.content-outcome{padding:8rem 0}.content-thesis,.content-matrix{background:#1c151d}.content-layers,.content-experiment{background:#110d13}.content-gallery-plan{background:#1a101b}.content-outcome{background:#341633}.content-thesis h2,.content-layers h2,.content-gallery-plan h2,.content-matrix h2,.content-experiment h2,.content-outcome h2{max-width:1100px;margin:.9rem 0 3.5rem;text-align:left;font-size:clamp(3rem,6.5vw,6.3rem);line-height:.9;letter-spacing:-.06em}.content-thesis p,.content-outcome p{max-width:920px;color:#c1b2bd;font-size:clamp(1.15rem,2vw,1.55rem);line-height:1.65}
.content-layer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.12)}.content-layer-grid article{min-height:420px;padding:1.8rem;background:#18121a}.content-layer-grid b{color:var(--content);font:.67rem var(--font-titulos);letter-spacing:.06em}.content-layer-grid h3{margin:2.8rem 0 1rem;color:#fff;font-size:1.5rem}.content-layer-grid p{min-height:11em;color:#9d8f9a;font-size:.86rem;line-height:1.65}.content-layer-grid strong{display:block;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);color:#d5c8d2;font-size:.72rem;line-height:1.5}
.content-gallery-track{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.12)}.content-gallery-track article{min-height:250px;padding:1.5rem;background:#110c13}.content-gallery-track span{color:var(--content);font:.7rem monospace}.content-gallery-track b{display:block;margin:3rem 0 .8rem;color:#fff}.content-gallery-track p{color:#958691;font-size:.8rem;line-height:1.6}
.content-ownership{border:1px solid rgba(255,255,255,.13)}.content-ownership>[role=row]{display:grid;grid-template-columns:.7fr 1fr 1.2fr}.content-ownership b,.content-ownership span{padding:1.25rem 1.5rem;border-right:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}.content-ownership b:last-child,.content-ownership span:last-child{border-right:0}.content-ownership b{color:var(--content);font:.7rem var(--font-titulos);text-transform:uppercase;letter-spacing:.08em}.content-ownership span{color:#b5a8b2;font-size:.9rem}.content-ownership>[role=row]:last-child span{border-bottom:0}
.content-experiment-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.12)}.content-experiment-grid article{min-height:275px;padding:2rem;background:#1a141c}.content-experiment-grid b{color:var(--content);font:.7rem monospace}.content-experiment-grid h3{margin:3rem 0 1rem;color:#fff;font-size:1.35rem}.content-experiment-grid p{color:#998c96;font-size:.88rem;line-height:1.65}.content-outcome .container{max-width:1050px}.content-outcome .content-kicker{display:block;text-align:center}.content-outcome h2,.content-outcome p{margin-inline:auto;text-align:center}
.content-architecture-visual{display:grid!important;grid-template-columns:repeat(5,1fr);align-items:stretch;gap:1px;min-height:340px!important;padding:2rem;background:radial-gradient(circle at 50% 50%,rgba(229,91,189,.18),transparent 52%),#160f18}.content-architecture-visual div{display:flex;flex-direction:column;justify-content:center;padding:1rem;border:1px solid rgba(229,91,189,.24);background:#211724;transition:transform .35s,background .3s}.content-architecture-visual span{color:var(--content);font-size:.58rem;letter-spacing:.08em}.content-architecture-visual b{margin-top:.45rem;color:#fff;font-size:.72rem}.content-architecture-card:hover .content-architecture-visual div{transform:scale(1.045);background:#2c1b2d}
@media(max-width:950px){.content-layer-grid{grid-template-columns:1fr 1fr}.content-layer-grid article:last-child{grid-column:1/-1}.content-layer-grid p{min-height:0}.content-gallery-track{grid-template-columns:repeat(3,1fr)}.content-architecture-visual{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.content-architecture-hero{min-height:auto;padding:8rem 0 5rem}.content-architecture-hero h1{font-size:3.6rem}.content-thesis,.content-layers,.content-gallery-plan,.content-matrix,.content-experiment,.content-outcome{padding:5rem 0}.content-layer-grid,.content-gallery-track,.content-experiment-grid{grid-template-columns:1fr}.content-layer-grid article:last-child{grid-column:auto}.content-ownership>[role=row]{grid-template-columns:1fr}.content-ownership>[role=row]:first-child{display:none}.content-ownership b,.content-ownership span{border-right:0}.content-ownership>[role=row]:not(:first-child) span:first-child{color:#fff;font-weight:700}}
@media(max-width:650px){.content-architecture-visual{grid-template-columns:1fr 1fr;padding:1rem}.content-architecture-visual div:last-child{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.content-architecture-visual div{transition:none}.content-architecture-card:hover .content-architecture-visual div{transform:none}}

/* --- Individual animation cases --- */
.animation-case-page { background: #0b0d0f; }
.animation-case-page .navbar .container { display: flex; justify-content: space-between; align-items: center; }
.animation-back { color: var(--color-texto-sec); font-size: .8rem; text-decoration: none; }
.animation-back:hover { color: var(--color-acento); }
.animation-case-hero { min-height: 0; padding: 9rem 0 7rem; background: radial-gradient(circle at 50% 12%, rgba(var(--color-acento-rgb),.11), transparent 34%); }
.animation-case-grid { display: flex; flex-direction: column; align-items: center; gap: clamp(2.5rem,5vw,4.5rem); }
.animation-case-label,.animation-section-number { color: var(--color-acento); font: 700 .72rem var(--font-titulos); letter-spacing: .13em; text-transform: uppercase; }
.animation-case-copy { width: 100%; max-width: 1080px; margin-inline: auto; text-align: center; }
.animation-case-copy h1 { width: 100%; margin: 1rem auto 1.5rem; color: #fff; text-align: center; font-size: clamp(4rem,9vw,8.5rem); line-height: .88; letter-spacing: -.065em; }
.animation-case-lead { max-width: 900px; margin-inline: auto; color: #abb1b8; font-size: clamp(1rem,1.5vw,1.2rem); line-height: 1.75; }
.animation-skill-list { display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem; margin-top: 2rem; }
.animation-skill-list span { padding: .45rem .65rem; border: 1px solid rgba(255,255,255,.16); color: #c9ced3; font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.animation-case-player { position: relative; flex: 0 0 auto; width: min(1240px,calc(100vw - 3rem)); overflow: hidden; border: 1px solid rgba(255,255,255,.15); background: #050607; box-shadow: 0 30px 80px rgba(0,0,0,.4); }
.animation-case-player video { display: block; width: 100%; aspect-ratio: 16/9; object-fit: contain; background: #000; }
.animation-case-player small { display: block; padding: .85rem 1rem; color: #7e8790; font: .65rem monospace; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.animation-breakdown { padding: 7rem 0; border-top: 1px solid rgba(255,255,255,.1); background: #14171a; }
.animation-breakdown .animation-section-number { display: block; text-align: center; }
.animation-breakdown h2 { max-width: 1050px; margin: 1rem auto 4rem; color: #fff; text-align: center; font-size: clamp(2.8rem,6vw,6rem); line-height: .95; letter-spacing: -.05em; }
.animation-case-page .case-software-heading { display: block; text-align: center; }
.animation-case-page .case-software-heading > span { display: block; margin-bottom: 1rem; }
.animation-case-page .case-software-heading h2 { max-width: 1000px; margin-inline: auto; text-align: center; }
.animation-case-page .case-software-grid { justify-content: center; }
.animation-case-page .case-end-actions { align-items: center; text-align: center; }
.animation-notes { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid rgba(255,255,255,.13); }
.animation-notes article { padding: 2rem; border-right: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); }
.animation-notes article:nth-child(even) { border-right: 0; }
.animation-notes article:nth-last-child(-n+2) { border-bottom: 0; }
.animation-notes b { color: var(--color-acento); font: .7rem monospace; }
.animation-notes h3 { margin: 1.4rem 0 .75rem; color: #fff; font-size: 1.4rem; }
.animation-notes p { color: #8e969e; font-size: .9rem; line-height: 1.65; }
@media(max-width:850px){.animation-case-hero{padding:7rem 0 5rem}.animation-case-copy h1{font-size:clamp(3.4rem,15vw,5.5rem)}.animation-case-player{width:100%}.animation-notes{grid-template-columns:1fr}.animation-notes article,.animation-notes article:nth-child(even),.animation-notes article:nth-last-child(-n+2){border-right:0;border-bottom:1px solid rgba(255,255,255,.13)}.animation-notes article:last-child{border-bottom:0}}

/* --- UNIMAC case study --- */
.unimac-case-page { background: #0d0b0a; }
.unimac-case-page .navbar .container { display: flex; justify-content: space-between; align-items: center; }
.unimac-back { color: #b8aaa4; font-size: .8rem; text-decoration: none; }
.unimac-back:hover { color: #ff6a24; }
.unimac-case-hero { position: relative; min-height: 96vh; display: grid; align-items: center; padding: 10rem 0 6rem; overflow: hidden; background: linear-gradient(120deg,#110d0b,#21110c 58%,#100b09); }
.unimac-case-hero::before { content:"INDUSTRIAL HEAT"; position:absolute; left:-1rem; bottom:-4rem; color:rgba(255,255,255,.025); font:800 clamp(5rem,15vw,14rem) var(--font-titulos); letter-spacing:-.08em; white-space:nowrap; }
.unimac-heat-orb { position:absolute; right:8%; top:18%; width:clamp(280px,42vw,650px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(255,87,16,.48),rgba(179,25,6,.17) 38%,transparent 70%); filter:blur(25px); animation:unimac-case-heat 5s ease-in-out infinite alternate; }
@keyframes unimac-case-heat { from{opacity:.55;transform:scale(.88) translateY(4%)} to{opacity:.95;transform:scale(1.08) translateY(-4%)} }
.unimac-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr); gap:clamp(3rem,8vw,8rem); align-items:center; }
.unimac-eyebrow,.unimac-section-heading>span,.unimac-system-copy>span,.unimac-integrity-grid>div>span,.unimac-conclusion span { color:#ff6827; font:700 .72rem var(--font-titulos); letter-spacing:.13em; text-transform:uppercase; }
.unimac-hero-copy h1 { margin:1rem 0 1.5rem; font-size:clamp(3.8rem,7.8vw,8.2rem); line-height:.84; letter-spacing:-.07em; }
.unimac-hero-copy>p { max-width:680px; color:#c0b7b2; font-size:clamp(1rem,1.5vw,1.22rem); line-height:1.75; }
.unimac-hero-meta { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:2rem; }
.unimac-hero-meta span { padding:.42rem .65rem; border:1px solid rgba(255,106,36,.3); color:#d4c3bb; font-size:.66rem; text-transform:uppercase; letter-spacing:.07em; }
.unimac-hero-product { position:relative; display:grid; place-items:center; min-height:560px; }
.unimac-hero-product img { position:relative; z-index:2; width:min(78%,440px); filter:drop-shadow(0 35px 32px rgba(0,0,0,.5)); animation:unimac-product-float 4s ease-in-out infinite alternate; }
@keyframes unimac-product-float { to{transform:translateY(-12px) rotate(1deg)} }
.unimac-product-ring { position:absolute; width:78%; aspect-ratio:1; border:1px solid rgba(255,105,36,.28); border-radius:50%; box-shadow:0 0 80px rgba(255,67,9,.12) inset; }
.unimac-product-ring::after { content:""; position:absolute; inset:10%; border:1px dashed rgba(255,255,255,.12); border-radius:50%; animation:unimac-ring-spin 18s linear infinite; }
@keyframes unimac-ring-spin { to{transform:rotate(360deg)} }
.unimac-product-spec { position:absolute; right:2%; bottom:10%; z-index:3; padding:1rem 1.2rem; border-left:3px solid #ff5a1f; background:rgba(10,8,7,.82); backdrop-filter:blur(10px); }
.unimac-product-spec b,.unimac-product-spec small { display:block; }.unimac-product-spec b{color:#fff;font:700 2rem var(--font-titulos)}.unimac-product-spec small{color:#a99c96;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}
.unimac-strategy,.unimac-story,.unimac-process { padding:8rem 0; }
.unimac-condensed-summary[hidden] { display:none; }
.unimac-rationale-reader { padding:8rem 0; background:#110d0b; }
.unimac-rationale-layout { display:grid; grid-template-columns:270px minmax(0,760px); gap:clamp(3rem,9vw,9rem); align-items:start; }
.unimac-rationale-index { position:sticky; top:110px; }
.unimac-rationale-index>span { color:#ff6827; font:700 .7rem var(--font-titulos); letter-spacing:.13em; text-transform:uppercase; }
.unimac-rationale-index h2 { margin:1rem 0 2rem; text-align:left; font-size:2.3rem; line-height:.98; letter-spacing:-.045em; }
.unimac-rationale-index nav { display:grid; border-top:1px solid rgba(255,255,255,.14); }
.unimac-rationale-index nav a { padding:.75rem 0; border-bottom:1px solid rgba(255,255,255,.1); color:#918680; font-size:.75rem; text-decoration:none; }
.unimac-rationale-index nav a:hover { color:#ff6827; }
.unimac-rationale-content { min-width:0; }
.unimac-rationale-content>p { margin:0 0 1.35rem; color:#b9aea8; font-size:1rem; line-height:1.82; white-space:pre-line; }
.unimac-rationale-heading { margin:6rem 0 2rem; padding-top:2rem; border-top:1px solid rgba(255,98,32,.35); }
.unimac-rationale-heading:first-child { margin-top:0; }
.unimac-rationale-heading h2 { margin:0; text-align:left; font-size:clamp(2.6rem,5vw,4.8rem); line-height:.94; letter-spacing:-.05em; }
.unimac-rationale-panel { display:grid; grid-template-columns:minmax(0,1fr) 210px; gap:2rem; align-items:end; margin:5rem 0 2rem; padding:1.5rem; border-left:3px solid #ff5d20; background:linear-gradient(100deg,rgba(255,87,22,.11),transparent); }
.unimac-rationale-panel h3 { margin:0; font-size:clamp(1.7rem,3.2vw,2.7rem); line-height:1; }
.unimac-rationale-panel img { width:100%; aspect-ratio:1; object-fit:contain; background:#050505; border:1px solid rgba(255,255,255,.13); }
.unimac-rationale-loading { color:#ff6827!important; }
.unimac-section-heading { display:grid; grid-template-columns:150px minmax(0,760px); gap:2rem; margin-bottom:4rem; }
.unimac-section-heading h2 { margin:0; text-align:left; font-size:clamp(2.8rem,5vw,5.5rem); line-height:.94; letter-spacing:-.055em; }
.unimac-section-heading p { grid-column:2; color:#a99d97; font-size:1.05rem; }
.unimac-question-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #3b2922; background:#3b2922; gap:1px; }
.unimac-question-grid article { min-height:190px; padding:2rem; background:#17100d; transition:background .25s,transform .25s; }.unimac-question-grid article:hover{background:#23120d;transform:translateY(-3px)}
.unimac-question-grid b { color:#ff6a24; font:600 1.25rem var(--font-titulos); }.unimac-question-grid p{margin-top:1.3rem;color:#a99d97;font-size:.9rem}
.unimac-visual-system { padding:8rem 0; background:linear-gradient(120deg,#23110b,#120d0b); }
.unimac-system-grid { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:clamp(3rem,8vw,8rem); align-items:center; }
.unimac-system-copy h2 { margin:1rem 0 1.5rem; text-align:left; font-size:clamp(3rem,6vw,6.5rem); line-height:.9; letter-spacing:-.06em; }.unimac-system-copy p{color:#b3a39c;line-height:1.75}
.unimac-palette { display:flex; gap:.65rem; margin-top:2rem; }.unimac-palette i{width:42px;height:42px;border:1px solid rgba(255,255,255,.18);border-radius:50%}.unimac-palette .orange{background:#f15a24}.unimac-palette .red{background:#a91e0d}.unimac-palette .black{background:#0a0a0a}.unimac-palette .white{background:#f3f1ed}
.unimac-system-images { position:relative; min-height:620px; }.unimac-system-images img{position:absolute;width:47%;padding:.55rem;background:#090807;border:1px solid rgba(255,255,255,.14);box-shadow:0 28px 60px rgba(0,0,0,.45)}.unimac-system-images img:first-child{left:4%;top:4%;transform:rotate(-5deg)}.unimac-system-images img:last-child{right:4%;bottom:4%;transform:rotate(5deg)}
.unimac-story { background:#110d0b; }.unimac-story-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.unimac-story-card{display:grid;grid-template-columns:210px 1fr;min-height:280px;border:1px solid rgba(255,255,255,.12);background:#181310;overflow:hidden}.unimac-story-card img{width:100%;height:100%;object-fit:contain;background:#050505}.unimac-story-card>div{padding:2rem;align-self:center}.unimac-story-card span{color:#ff6324;font:.68rem monospace;text-transform:uppercase;letter-spacing:.08em}.unimac-story-card h3{margin:.8rem 0;color:#fff;font-size:1.5rem;line-height:1.1}.unimac-story-card p{color:#9f948e;font-size:.88rem}.unimac-story-wide{grid-column:1/-1;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr)}.unimac-story-wide img{max-height:480px}.unimac-story-dark{background:#090909}
.unimac-process { background:#1d100c; }.unimac-process-list{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.14)}.unimac-process-list li{display:grid;grid-template-columns:80px minmax(0,1fr);gap:2rem;padding:2rem 0;border-bottom:1px solid rgba(255,255,255,.14)}.unimac-process-list li>b{color:#ff6424;font:700 .75rem monospace}.unimac-process-list h3{margin:0 0 .5rem;font-size:1.45rem}.unimac-process-list p{max-width:760px;color:#a99b94}
.unimac-integrity { padding:8rem 0;background:#e84e1b;color:#180a06}.unimac-integrity-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(3rem,8vw,8rem)}.unimac-integrity-grid>div>span{color:#4a1306}.unimac-integrity h2{margin-top:1rem;color:#190a06;text-align:left;font-size:clamp(3rem,6vw,6rem);line-height:.9;letter-spacing:-.06em}.unimac-integrity-points p{padding:1.4rem 0;border-bottom:1px solid rgba(30,8,2,.28);font-size:1rem}.unimac-integrity-points b{display:block;margin-bottom:.3rem;font-family:var(--font-titulos)}
.unimac-conclusion { padding:9rem 0;text-align:center;background:radial-gradient(circle at 50% 70%,rgba(229,61,13,.22),transparent 38%),#0d0b0a}.unimac-conclusion h2{max-width:950px;margin:1rem auto 1.5rem;font-size:clamp(3rem,6vw,6.5rem);line-height:.9;letter-spacing:-.06em}.unimac-conclusion p{max-width:680px;margin:0 auto;color:#a99d97}.unimac-conclusion a{display:inline-block;margin-top:2.5rem;padding:.85rem 1.2rem;background:#f15a24;color:#170a06;font-weight:700;text-decoration:none}
@media(max-width:850px){.unimac-hero-grid,.unimac-system-grid,.unimac-integrity-grid{grid-template-columns:1fr}.unimac-hero-product{min-height:430px}.unimac-section-heading{grid-template-columns:1fr}.unimac-section-heading p{grid-column:1}.unimac-question-grid{grid-template-columns:1fr 1fr}.unimac-system-images{min-height:520px}.unimac-story-card,.unimac-story-wide{grid-template-columns:170px 1fr}.unimac-story-wide{grid-column:auto}.unimac-rationale-layout{grid-template-columns:1fr}.unimac-rationale-index{position:static}.unimac-rationale-index nav{display:none}}
@media(max-width:560px){.unimac-case-hero{padding-top:8rem}.unimac-hero-copy h1{font-size:3.4rem}.unimac-question-grid,.unimac-story-grid{grid-template-columns:1fr}.unimac-story-card,.unimac-story-wide{grid-template-columns:1fr}.unimac-story-card img{height:auto;max-height:340px}.unimac-system-images{min-height:390px}.unimac-process-list li{grid-template-columns:42px 1fr}.unimac-back{font-size:.7rem}.unimac-rationale-reader{padding:5rem 0}.unimac-rationale-panel{grid-template-columns:1fr}.unimac-rationale-panel img{max-width:260px}}

/* --- Lightbox (Modal Creatives) --- */
.lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.85);
    backdrop-filter: blur(8px);
    display: grid;
    place-items: center;
    z-index: 9999;
    transition: opacity .25s ease;
    opacity: 0;
    pointer-events: none;
    padding: 1rem;
}
.lightbox[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
}
.lightbox-content {
    position: relative;
    max-width: min(1200px, 92vw);
    max-height: 90vh;
    width: 100%;
}
.lightbox-content img,
.lightbox-content .video-embed {
    width: 100%;
    height: auto;
    display: block;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 10px;
}
.video-embed {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
}
.video-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.lightbox-close {
    position: absolute;
    top: -44px;
    right: 0;
    background: var(--color-superficie);
    color: var(--color-texto);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 999px;
    width: 38px;
    height: 38px;
    cursor: pointer;
    font-size: 24px;
    line-height: 38px;
    transition: transform 0.2s ease, background-color 0.2s ease;
}
.lightbox-close:hover {
    transform: scale(1.1);
    background-color: var(--color-acento);
    color: var(--color-fondo);
}

/* --- Página de Chat (SEO) --- */
#chat-page-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 20px;
    padding-top: 8rem;
}
#chat-container {
    width: 100%;
    max-width: 800px;
    height: 75vh;
    max-height: 700px;
    background-color: var(--color-superficie);
    border: 1px solid rgba(0, 224, 255, 0.2);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.5);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
#chat-historial { flex-grow: 1; overflow-y: auto; padding-right: 10px; }
#empty-state { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100%; text-align: center; }
#empty-state h1 { font-family: var(--font-titulos); font-size: 2.5rem; color: #FFFFFF; margin-bottom: 0.5rem; }
#empty-state .accent { color: var(--color-acento); font-weight: 700; }
.suggestion-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 1.5rem;
    padding: 0 1rem;
}
.suggestion-chip {
    background-color: var(--color-fondo);
    border: 1px solid rgba(var(--color-acento-rgb), 0.5);
    color: var(--color-acento);
    padding: 0.5rem 1rem;
    border-radius: 8px;
    cursor: pointer;
    font-family: var(--font-principal);
    font-weight: 600;
    font-size: 0.9rem;
    transition: background-color 0.2s ease;
}
.suggestion-chip:hover {
    background-color: rgba(var(--color-acento-rgb), 0.1);
}
.message-bubble { display: flex; align-items: flex-start; margin-bottom: 15px; max-width: 90%; }
.message-icon { width: 32px; height: 32px; border-radius: 50%; background-color: var(--color-fondo); display: flex; align-items: center; justify-content: center; font-family: var(--font-titulos); font-weight: 600; color: var(--color-acento); margin-right: 12px; flex-shrink: 0; }
.message-content { background-color: var(--color-fondo); padding: 12px 16px; border-radius: 10px; font-size: 0.95rem; white-space: pre-wrap; word-wrap: break-word; }
.message-bubble.user { margin-left: auto; flex-direction: row-reverse; }
.message-bubble.user .message-icon { margin-left: 12px; margin-right: 0; background-color: var(--color-acento); color: var(--color-fondo); }
.message-bubble.user .message-content { background-color: var(--color-acento); color: var(--color-fondo); font-weight: 500; }
.message-content .accent { color: var(--color-acento); font-weight: 700; }
.message-content .secondary { color: var(--color-texto-sec); }
.message-content .highlight { color: #FFFFFF; font-weight: 700; }
.message-content .error { color: var(--color-error); }
.message-content ul { list-style: none; padding-left: 15px; margin: 5px 0; }
.message-content li { margin-bottom: 4px; position: relative; padding-left: 15px; }
.message-content li::before { content: '-'; position: absolute; left: 0; top: 0; color: var(--color-acento); }
#chat-historial::-webkit-scrollbar { width: 8px; }
#chat-historial::-webkit-scrollbar-track { background: var(--color-superficie); }
#chat-historial::-webkit-scrollbar-thumb { background: var(--color-acento); border-radius: 10px; }
#chat-form { display: flex; align-items: center; margin-top: 15px; gap: 10px; flex-shrink: 0; }
#chat-input { flex-grow: 1; background-color: var(--color-fondo); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 8px; padding: 12px 15px; color: var(--color-texto); font-family: var(--font-principal); font-size: 1rem; outline: none; transition: border-color 0.2s ease; }
#chat-input:focus { border-color: var(--color-acento); }
#chat-form button { background-color: var(--color-acento); border: none; border-radius: 8px; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: transform 0.2s ease; flex-shrink: 0; }
#chat-form button:hover { transform: scale(1.05); }
#chat-form button svg { width: 24px; height: 24px; stroke: var(--color-fondo); stroke-width: 2.5; }
#chat-footer-hint { font-size: 0.8rem; color: var(--color-texto-sec); text-align: center; padding-top: 10px; flex-shrink: 0; }
#chat-footer-hint .accent { color: var(--color-acento); font-weight: 500; font-family: var(--font-principal); }

/* --- Contacto y Footer (Compartido) --- */
.contacto { text-align: center; }
.contacto h2 { font-size: 3rem; }
.contacto p { font-size: 1.2rem; color: var(--color-texto-sec); margin-bottom: 2.5rem; }
.contacto .link-social {
    display: inline-block;
    margin: 2rem 1rem 0 1rem;
    color: var(--color-texto-sec);
    text-decoration: none;
    font-weight: 700;
    transition: color 0.2s ease;
}
.contacto .link-social:hover { color: var(--color-acento); }

footer {
    text-align: center;
    padding: 2.5rem 0;
    margin-top: 4rem;
    border-top: 1px solid var(--color-superficie);
}
footer p { color: var(--color-texto-sec); font-size: 0.9rem; }

/* ================================================= */
/* 4. RESPONSIVE (MÓVIL Y TABLET)                    */
/* ================================================= */

/* --- Breakpoint Mediano (Tablets) --- */
@media (max-width: 992px) {
    .grid { grid-template-columns: repeat(3, 1fr); }
    .method-grid { grid-template-columns: 1fr; }
    .testimonios-grid { grid-template-columns: 1fr; }

    /* --- Responsive Sobre Mí --- */
    .about-layout {
        grid-template-columns: 1fr; /* Apila texto y sidebar */
    }
    .sidebar {
        position: relative;
        top: 0;
        margin-top: 4rem;
    }
    .expertise-grid {
        grid-template-columns: 1fr;
    }
}


/* --- Breakpoint Principal: Tablet y Móvil (Vertical) --- */
@media (max-width: 1050px) {
    .navbar .container { justify-content: flex-start; gap: .75rem; }
    .navbar .language-switch--nav { margin-left: auto; }
    .nav-toggle { display: block; }
    .nav-menu {
        display: block;
        position: fixed;
        top: 0;
        right: 0;
        width: min(82vw, 380px);
        height: 100dvh;
        overflow-y: auto;
        background-color: var(--color-superficie);
        z-index: 1000;
        transform: translateX(100%);
        transition: transform 0.3s ease-in-out;
        padding: 6rem 1.5rem 2rem;
        box-shadow: -10px 0 30px rgba(0,0,0,0.3);
    }
    .nav-menu ul,
    .navbar nav ul {
        flex-direction: column;
        align-items: stretch;
        gap: .5rem;
        width: 100%;
    }
    .nav-menu ul li,
    .navbar nav li { margin-left: 0; }
    .nav-menu ul li a,
    .navbar nav li a {
        display: block;
        padding: .7rem .85rem;
        font-size: 1.1rem;
        line-height: 1.25;
    }
    .navbar.nav-open .nav-menu { transform: translateX(0); }
    .navbar.nav-open + .legacy-nav-backdrop { display: block; }
    .navbar.nav-open .nav-toggle .hamburger-line:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
        background-color: var(--color-acento);
    }
    .navbar.nav-open .nav-toggle .hamburger-line:nth-child(2) { opacity: 0; }
    .navbar.nav-open .nav-toggle .hamburger-line:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
        background-color: var(--color-acento);
    }
}

@media (max-width: 768px) {
    h1 { font-size: 3rem; }
    h2 { font-size: 2rem; }

    /* --- Responsive Heros --- */
    .hero { padding-top: 92px; padding-bottom: 3.5rem; min-height: auto; }
    .hero-kicker {
        font-size: 0.78rem;
        line-height: 1.4;
    }
    .hero-titulo { font-size: clamp(2rem, 9.5vw, 2.5rem); overflow-wrap: anywhere; }
    .hero-subtitulo { font-size: 1.1rem; }
    .hero > .container > .cta-button {
        display: block;
        width: min(100%, 260px);
        margin: 0 auto 0.85rem !important;
        text-align: center;
    }
    .hero-actions {
        align-items: stretch;
        flex-direction: column;
        margin-bottom: 1.5rem;
    }
    .hero-actions .cta-button {
        width: 100%;
        text-align: center;
    }
    .hero-proof {
        grid-template-columns: 1fr;
        text-align: left;
    }
    .hero-proof div {
        padding: 0.85rem 1rem;
    }
    .page-hero h1 { font-size: 2.5rem; }
    .page-hero p { font-size: 1.1rem; }

    /* --- Estilos del Menú Hamburguesa --- */
    .nav-toggle { display: block; }
    .nav-menu {
        display: block;
        position: fixed;
        top: 0;
        right: 0;
        width: 80%;
        max-width: 350px;
        height: 100vh;
        background-color: var(--color-superficie);
        z-index: 1000;
        transform: translateX(100%);
        transition: transform 0.3s ease-in-out;
        padding-top: 6rem;
        box-shadow: -10px 0 30px rgba(0,0,0,0.3);
    }
    .nav-menu ul {
        flex-direction: column;
        align-items: center;
        gap: 1.5rem;
        width: 100%;
    }
    .nav-menu ul li { margin-left: 0; }
    .nav-menu ul li a {
        font-size: 1.25rem;
        font-weight: 600;
        padding: 0.5rem 1rem;
    }
    .navbar.nav-open .nav-menu { transform: translateX(0); }
    .navbar.nav-open .nav-toggle .hamburger-line:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
        background-color: var(--color-acento);
    }
    .navbar.nav-open .nav-toggle .hamburger-line:nth-child(2) { opacity: 0; }
    .navbar.nav-open .nav-toggle .hamburger-line:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
        background-color: var(--color-acento);
    }

    /* --- Responsive de Contenido --- */
    .caso-card,
    .caso-card.reverse { padding: 2rem; }
    .caso-card-grid,
    .caso-card.reverse .caso-card-grid {
        grid-template-columns: 1fr;
        direction: ltr;
    }
    .caso-card .caso-visual { grid-row: 1; }
    .caso-card h2,
    .caso-card h3 { font-size: 1.8rem; }

    /* --- Grid "Tipo Instagram" (Creatives) --- */
    .grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 0.25rem;
    }
    .grid-item figcaption { display: none; }
    .grid-item .ratio-box {
        --ratio: 1/1;
        border-radius: 0;
        border: none;
    }
    .grid-item:hover .ratio-box {
        transform: none;
        box-shadow: none;
        border-color: transparent;
    }

    /* --- Carousel Responsive (Home y Testimonios) --- */
    .carousel-item,
    .carousel .testimonio-card,
    .carousel .stack-card { /* <--- AÑADIDO .stack-card */
        flex-basis: 80%;
        min-width: 0;
    }
    .carousel-arrow { display: none; }

    /* --- Testimonios (Grid) --- */
    .testimonios-grid { grid-template-columns: 1fr; }
    .testimonio-card { padding: 2rem; }

    /* --- Responsive Sobre Mí --- */
    .about-hero .container {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .about-hero-img {
        justify-self: center;
        order: -1;
        margin-bottom: 2rem;
    }
    .about-hero h1 { font-size: 2.5rem; }
    .about-hero p { font-size: 1.1rem; }
    .research-grid {
        grid-template-columns: 1fr;
    }

    /* --- Responsive Chat (SEO) --- */
    body.chat-page-active { /* Clase especial para la pág de chat */
        background-color: var(--color-superficie);
    }
    #chat-page-wrapper {
        padding: 0;
        padding-top: 70px;
    }
    #chat-container {
        border: none;
        box-shadow: none;
        border-radius: 0;
        padding: 1rem;
        height: calc(100vh - 70px);
        max-height: none;
    }
    #chat-historial {
        padding-right: 0;
    }
    #empty-state h1 {
        font-size: 2rem;
    }
    .suggestion-chip {
        font-size: 0.85rem;
        padding: 0.4rem 0.8rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}


/* --- Breakpoint Específico: Móvil (Horizontal) --- */
@media (max-width: 900px) and (max-height: 500px) and (orientation: landscape) {

    .hero { min-height: 100vh; padding-top: 80px; }
    .hero-titulo { font-size: 2.2rem; margin-bottom: 1rem; }
    .hero-subtitulo { font-size: 1rem; margin-bottom: 1.5rem; }

    .page-hero { padding-top: 8rem; padding-bottom: 4rem; }
    .page-hero h1 { font-size: 2.2rem; }

    .nav-menu {
        padding-top: 3.5rem;
        overflow-y: auto;
    }
    .nav-menu ul { gap: 1rem; }
    .nav-menu ul li a { font-size: 1.1rem; }

    /* Ajusta el chat en horizontal */
    #chat-page-wrapper {
        padding-top: 70px;
    }
    #chat-container {
        height: calc(100vh - 70px);
    }
}

/* 3D MODELING LAB */
.modeling-lab{padding:8rem 0;overflow:hidden;background:radial-gradient(circle at 20% 15%,rgba(0,224,255,.1),transparent 28%),#101214}.modeling-lab-heading{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:4rem;align-items:end;margin-bottom:3rem}.modeling-lab-kicker{color:var(--color-acento);font:700 .74rem var(--font-titulos);letter-spacing:.13em;text-transform:uppercase}.modeling-lab-heading h2{margin:.65rem 0 0;text-align:left;font-size:clamp(3rem,7vw,6.5rem);line-height:.9;letter-spacing:-.055em}.modeling-lab-heading p{color:var(--color-texto-sec);font-size:1.02rem}.modeling-lab-shell{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.65fr);min-height:660px;border:1px solid rgba(255,255,255,.14);background:#171a1e}.modeling-lab-stage{position:relative;min-height:660px;overflow:hidden;touch-action:pan-y;background:radial-gradient(circle at 50% 50%,#27323a 0,#181d22 44%,#0d0f11 100%)}.modeling-lab-stage:before{content:"";position:absolute;inset:7%;border:1px solid rgba(255,255,255,.055);border-radius:50%;pointer-events:none}.modeling-lab-stage:after{content:"REAL-TIME / WEBGL";position:absolute;left:1.5rem;top:1.35rem;color:rgba(255,255,255,.35);font:10px monospace;letter-spacing:.15em;pointer-events:none}#modeling-lab-canvas{position:absolute;inset:0;width:100%;height:100%;cursor:grab}#modeling-lab-canvas:active{cursor:grabbing}.modeling-stage-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.7rem;z-index:3;background:#15191d;color:#aeb5bd;font-size:.8rem;transition:opacity .35s}.modeling-stage-status.is-hidden{opacity:0;pointer-events:none}.modeling-stage-status i{width:8px;height:8px;border-radius:50%;background:var(--color-acento);box-shadow:0 0 18px var(--color-acento);animation:modeling-pulse 1s ease-in-out infinite alternate}@keyframes modeling-pulse{to{opacity:.25;transform:scale(.65)}}.modeling-open-button{position:absolute;z-index:2;left:50%;bottom:2rem;transform:translateX(-50%);min-width:180px;padding:.9rem 1.3rem;border:1px solid rgba(0,224,255,.65);background:rgba(9,13,16,.82);color:#fff;backdrop-filter:blur(12px);cursor:pointer;transition:opacity .3s,transform .3s,background .2s}.modeling-open-button:hover{background:rgba(0,224,255,.13);transform:translateX(-50%) translateY(-2px)}.modeling-open-button span,.modeling-open-button small{display:block}.modeling-open-button span{font:700 .82rem var(--font-titulos);letter-spacing:.08em;text-transform:uppercase}.modeling-open-button small{margin-top:.18rem;color:#8d969f;font-size:.66rem}.modeling-open-button.is-hidden{opacity:0;pointer-events:none;transform:translateX(-50%) translateY(10px)}.modeling-drag-hint{position:absolute;left:50%;bottom:1.4rem;z-index:2;opacity:0;transform:translate(-50%,8px);color:#9ea6ae;font-size:.68rem;letter-spacing:.06em;pointer-events:none;transition:.35s}.modeling-drag-hint.is-visible{opacity:1;transform:translate(-50%,0)}.modeling-lab-panel{display:flex;flex-direction:column;padding:2.2rem;border-left:1px solid rgba(255,255,255,.14);background:#121519}.modeling-model-count{color:#656e77;font:12px monospace}.modeling-model-count span{color:var(--color-acento)}.modeling-model-copy{margin:auto 0}.modeling-model-copy>span{color:var(--color-acento);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}.modeling-model-copy h3{margin:.7rem 0 .8rem;color:#fff;font-size:clamp(2rem,4vw,3.5rem);line-height:.95;letter-spacing:-.045em}.modeling-model-copy p{color:#929aa3;font-size:.88rem}.modeling-carousel-controls{display:grid;grid-template-columns:42px 1fr 42px;gap:1rem;align-items:center;margin-bottom:1.7rem}.modeling-carousel-controls button{width:42px;height:42px;border:1px solid rgba(255,255,255,.18);background:transparent;color:#fff;font-size:1.15rem;cursor:pointer}.modeling-carousel-controls button:hover{border-color:var(--color-acento);color:var(--color-acento)}.modeling-progress{height:1px;overflow:hidden;background:rgba(255,255,255,.16)}.modeling-progress i{display:block;width:20%;height:100%;background:var(--color-acento);transition:transform .45s;transform-origin:left}.modeling-model-list{display:flex;gap:.45rem}.modeling-model-list button{flex:1;height:4px;padding:0;border:0;background:#343a40;cursor:pointer}.modeling-model-list button[aria-selected=true]{height:8px;background:var(--color-acento)}.modeling-notes{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:2rem;align-items:start;padding:2rem;border:1px solid rgba(255,255,255,.14);border-top:0;background:#202328}.modeling-notes-label span,.modeling-notes-label small{display:block}.modeling-notes-label span{color:var(--color-acento);font:700 .72rem var(--font-titulos);letter-spacing:.12em;text-transform:uppercase}.modeling-notes-label small{margin-top:.35rem;color:#68717a;font:10px monospace}.modeling-notes>p{max-width:720px;color:#c0c5ca;font-size:.92rem}.modeling-notes-tech{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem}.modeling-notes-tech span{padding:.35rem .55rem;border:1px solid rgba(255,255,255,.15);color:#9da4ab;font-size:.64rem;white-space:nowrap}.modeling-lab-statement{max-width:940px;margin:4rem auto 0;color:#aeb5bd;font-size:clamp(1.2rem,2.5vw,2rem);line-height:1.35;text-align:center}.modeling-lab-statement strong{color:#fff}@media(max-width:900px){.modeling-lab-shell{grid-template-columns:1fr}.modeling-lab-panel{min-height:330px;border-left:0;border-top:1px solid rgba(255,255,255,.14)}.modeling-lab-stage{min-height:560px}.modeling-notes{grid-template-columns:100px 1fr}.modeling-notes-tech{grid-column:2;justify-content:flex-start}}@media(max-width:620px){.modeling-lab{padding:5rem 0}.modeling-lab-heading{grid-template-columns:1fr;gap:1.5rem}.modeling-lab-shell{min-height:0}.modeling-lab-stage{min-height:460px}.modeling-lab-panel{min-height:300px;padding:1.5rem}.modeling-notes{grid-template-columns:1fr;gap:1rem;padding:1.5rem}.modeling-notes-tech{grid-column:1}.modeling-lab-statement{margin-top:3rem}}

/* Keep all three creative disciplines inside the same showcase-card system. */
.video-carousel-shell { padding-inline: 0; }
.video-carousel-prev { left: .75rem; }
.video-carousel-next { right: .75rem; }
.video-project { grid-template-columns: 1fr; }
.video-project.is-active { display: block; }
.video-project-media { min-height: 0; aspect-ratio: 16 / 9; }
.video-project-copy { min-width: 0; overflow: hidden; }
.video-project-copy {
    display: grid;
    grid-template-columns: minmax(230px,.72fr) minmax(0,1.28fr);
    grid-template-rows: auto 1fr;
    gap: .65rem clamp(2rem,6vw,6rem);
    align-items: start;
    padding: clamp(1.75rem,3vw,2.75rem);
}
.video-project-copy > span { grid-column: 1; grid-row: 1; }
.video-project-copy h3 {
    grid-column: 1;
    grid-row: 2;
    max-width: 100%;
    margin: .35rem 0 0;
    font-size: clamp(2rem, 3.2vw, 3.25rem);
    overflow-wrap: anywhere;
}
.video-project-copy p {
    grid-column: 2;
    grid-row: 1 / span 2;
    max-width: 620px;
    margin: 0;
    font-size: 1rem;
    line-height: 1.75;
}

.modeling-lab {
    padding: 0 0 5rem;
    background: transparent;
}
.modeling-lab > .container {
    position: relative;
    padding: clamp(2rem, 5vw, 4rem);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.12);
    background: linear-gradient(145deg, rgba(var(--color-acento-rgb),.07), transparent 42%), var(--color-superficie);
}
.modeling-lab > .container::before {
    content: "3D / REAL-TIME";
    position: absolute;
    right: -1rem;
    bottom: -1.4rem;
    color: rgba(255,255,255,.025);
    font: 800 clamp(3.5rem,9vw,8rem) var(--font-titulos);
    white-space: nowrap;
    pointer-events: none;
}
.modeling-lab-heading {
    position: relative;
    z-index: 1;
    grid-template-columns: minmax(0,1.1fr) minmax(260px,.7fr);
    gap: clamp(2rem,6vw,6rem);
    margin-bottom: 2.5rem;
}
.modeling-lab-heading h2 { font-size: clamp(2.3rem,5vw,4.8rem); line-height: .95; }
.modeling-lab-shell {
    position: relative;
    z-index: 1;
    min-height: 520px;
    grid-template-columns: minmax(0,1.55fr) minmax(0,.75fr);
}
.modeling-lab-stage { min-height: 520px; }
.modeling-lab-panel { min-width: 0; }
.modeling-model-copy h3 { font-size: clamp(2rem,3.25vw,3.4rem); overflow-wrap: anywhere; }
.modeling-notes { position: relative; z-index: 1; }
.modeling-lab-statement {
    position: relative;
    z-index: 1;
    max-width: 780px;
    margin-top: 2.5rem;
    font-size: clamp(1.05rem,1.8vw,1.5rem);
}

@media(max-width:900px){
    .video-project { grid-template-columns: 1fr; }
    .video-project-media { min-height: 0; aspect-ratio: 16/10; }
    .video-project-copy { grid-template-columns: 1fr; }
    .video-project-copy > span,.video-project-copy h3,.video-project-copy p { grid-column: 1; grid-row: auto; }
    .modeling-lab-shell { grid-template-columns: 1fr; }
    .modeling-lab-stage { min-height: 480px; }
}
@media(max-width:620px){
    .modeling-lab { padding: 0 0 4rem; }
    .modeling-lab > .container { padding: 1.25rem; }
    .modeling-lab-heading { grid-template-columns: 1fr; }
    .modeling-lab-stage { min-height: 420px; }
}

/* Layered hover treatment for the main Creatives cards. */
.video-showcase,
.flyer-showcase,
.modeling-lab > .container {
    transform: scale(1);
    transform-origin: center;
    transition: transform .5s cubic-bezier(.2,.75,.2,1), border-color .35s ease, box-shadow .5s ease;
}
.video-showcase:hover,
.modeling-lab > .container:hover {
    z-index: 2;
    border-color: rgba(var(--color-acento-rgb),.38);
    box-shadow: 0 30px 75px rgba(0,0,0,.3), 0 0 42px rgba(var(--color-acento-rgb),.06);
    transform: scale(1.018);
}
.flyer-showcase:hover {
    z-index: 2;
    border-color: rgba(241,90,36,.42);
    box-shadow: 0 30px 75px rgba(0,0,0,.32), 0 0 42px rgba(241,90,36,.07);
    transform: scale(1.018);
}
.video-project video,
.flyer-panel img,
#modeling-lab-canvas {
    transform: scale(1);
    transition: transform .55s cubic-bezier(.2,.75,.2,1), filter .35s ease;
}
.video-showcase:hover .video-project.is-active video,
.flyer-showcase:hover .flyer-panel img,
.modeling-lab > .container:hover #modeling-lab-canvas { transform: scale(1.045); }

@media (prefers-reduced-motion: reduce) {
    .video-showcase,
    .flyer-showcase,
    .modeling-lab > .container,
    .video-project video,
    .flyer-panel img,
    #modeling-lab-canvas { transition: none; }
    .video-showcase:hover,
    .flyer-showcase:hover,
    .modeling-lab > .container:hover,
    .video-showcase:hover .video-project.is-active video,
    .flyer-showcase:hover .flyer-panel img,
    .modeling-lab > .container:hover #modeling-lab-canvas { transform: none; }
}

/* ======================== */
/* REPOSITORIO DE INFORMES  */
/* ======================== */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.repository-page { padding-top: 70px; }
.repository-hero {
    padding: 7rem 0 5.5rem;
    background:
        radial-gradient(circle at 82% 12%, rgba(var(--color-acento-rgb), .14), transparent 30%),
        var(--color-superficie);
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.repository-eyebrow,
.repository-kicker {
    display: block;
    color: var(--color-acento);
    font-family: var(--font-titulos);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.repository-hero h1 {
    max-width: 850px;
    margin: 1rem 0 1.25rem;
    font-size: clamp(3rem, 7vw, 5.75rem);
    line-height: .98;
    letter-spacing: -.045em;
}
.repository-hero > .container > p {
    max-width: 700px;
    color: var(--color-texto-sec);
    font-size: 1.15rem;
}
.repository-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    margin-top: 3rem;
    color: var(--color-texto-sec);
}
.repository-meta span { display: flex; align-items: baseline; gap: .5rem; }
.repository-meta strong { color: #fff; font-family: var(--font-titulos); font-size: 1.35rem; }
.repository-section { padding: 5rem 0 7rem; }
.repository-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2rem;
}
.repository-heading h2 {
    margin: .45rem 0 0;
    text-align: left;
    font-size: clamp(1.9rem, 4vw, 2.7rem);
}
.repository-search { width: min(100%, 330px); }
.repository-search input {
    width: 100%;
    padding: .9rem 1rem;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 6px;
    outline: none;
    background: var(--color-superficie);
    color: var(--color-texto);
    font: inherit;
}
.repository-search input:focus { border-color: var(--color-acento); box-shadow: 0 0 0 3px rgba(var(--color-acento-rgb), .12); }
.document-list { border-top: 1px solid rgba(255,255,255,.14); }
.document-row {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.25rem;
    padding: 1.55rem .5rem;
    border-bottom: 1px solid rgba(255,255,255,.14);
    color: inherit;
    text-decoration: none;
    transition: background .2s ease, padding .2s ease;
}
.document-row:hover,
.document-row:focus-visible {
    padding-left: 1rem;
    padding-right: 1rem;
    background: var(--color-superficie);
}
.document-row:focus-visible { outline: 2px solid var(--color-acento); outline-offset: -2px; }
.document-index {
    color: var(--color-texto-sec);
    font-family: var(--font-titulos);
    font-size: .8rem;
    letter-spacing: .08em;
}
.document-info { display: flex; min-width: 0; flex-direction: column; gap: .3rem; }
.document-info strong {
    color: #fff;
    font-family: var(--font-titulos);
    font-size: 1.08rem;
    line-height: 1.35;
}
.document-info small { color: var(--color-texto-sec); font-size: .84rem; }
.document-action { color: var(--color-acento); font-size: .9rem; font-weight: 700; white-space: nowrap; }
.repository-empty { padding: 3rem 0; color: var(--color-texto-sec); text-align: center; }

/* ======================== */
/* LECTOR DE DOCUMENTOS     */
/* ======================== */
.document-page { min-height: 100vh; }
.document-header {
    border-bottom: 1px solid rgba(255,255,255,.1);
    background: var(--color-superficie);
}
.document-header-inner {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}
.document-back,
.document-brand {
    color: var(--color-texto);
    text-decoration: none;
    font-weight: 700;
}
.document-back { color: var(--color-acento); font-size: .9rem; }
.document-brand { font-family: var(--font-titulos); }
.document-reader { padding: 3.5rem 0 5rem; }
.document-titlebar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2rem;
}
.document-titlebar h1 {
    max-width: 850px;
    margin: .55rem 0 0;
    font-size: clamp(2rem, 5vw, 3.7rem);
    line-height: 1.08;
    letter-spacing: -.035em;
}
.document-download {
    flex: 0 0 auto;
    padding: .75rem 1rem;
    border: 1px solid var(--color-acento);
    border-radius: 5px;
    color: var(--color-acento);
    text-decoration: none;
    font-weight: 700;
}
.document-download:hover { background: rgba(var(--color-acento-rgb), .1); }
.pdf-frame-wrap {
    height: calc(100vh - 230px);
    min-height: 620px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 8px;
    background: #2b2b2b;
}
.pdf-frame { width: 100%; height: 100%; border: 0; }
.document-error {
    padding: 4rem 2rem;
    color: var(--color-texto-sec);
    text-align: center;
}

@media (max-width: 768px) {
    .repository-hero { padding: 5rem 0 4rem; }
    .repository-heading,
    .document-titlebar { align-items: stretch; flex-direction: column; }
    .repository-search { width: 100%; }
    .document-row { grid-template-columns: 34px minmax(0, 1fr); gap: .8rem; }
    .document-action { display: none; }
    .document-reader { padding-top: 2.25rem; }
    .document-download { align-self: flex-start; }
    .pdf-frame-wrap { min-height: 70vh; height: 70vh; }
}

/* ================================= */
/* OBSERVATORIO DE OPINIÓN PÚBLICA   */
/* ================================= */
.opinion-page { padding-top: 70px; background: #111315; }
.opinion-hero {
    padding: 8rem 0 6.5rem;
    background:
        linear-gradient(115deg, rgba(0,224,255,.08), transparent 42%),
        radial-gradient(circle at 88% 16%, rgba(255,93,115,.13), transparent 26%),
        #171a1e;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.opinion-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:5rem; align-items:end; }
.opinion-hero h1 { margin:1rem 0 1.5rem; font-size:clamp(3.7rem,8vw,7.2rem); line-height:.88; letter-spacing:-.065em; }
.opinion-hero h1 em { color:var(--color-acento); font-style:normal; font-weight:400; }
.opinion-hero-grid > div > p { max-width:720px; color:var(--color-texto-sec); font-size:1.2rem; }
.hero-signal { padding:1.6rem; border:1px solid rgba(255,255,255,.14); border-top:3px solid #ff5d73; background:rgba(18,18,18,.72); }
.hero-signal > span { color:var(--color-texto-sec); font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; }
.hero-signal strong { display:block; margin:.7rem 0 0; color:#fff; font-family:var(--font-titulos); font-size:4.2rem; line-height:1; letter-spacing:-.06em; }
.hero-signal p { color:var(--color-texto); }
.signal-delta { margin-top:1.2rem; padding-top:1rem; border-top:1px solid rgba(255,255,255,.1); color:#ff8b9c; font-weight:700; font-size:.85rem; }
.opinion-intro,.figures-section,.sources-section { padding:5.5rem 0 7rem; }
.metric-strip { display:grid; grid-template-columns:repeat(4,1fr); margin-bottom:7rem; border:1px solid rgba(255,255,255,.12); }
.metric-strip div { padding:1.5rem 1.7rem; border-right:1px solid rgba(255,255,255,.12); }
.metric-strip div:last-child { border-right:0; }
.metric-strip strong { display:block; color:#fff; font-family:var(--font-titulos); font-size:1.8rem; }
.metric-strip span { color:var(--color-texto-sec); font-size:.82rem; }
.analysis-lead { display:grid; grid-template-columns:60px minmax(0,780px); gap:1.5rem; margin-bottom:2.5rem; }
.analysis-lead.compact { margin-bottom:3rem; }
.section-number { color:var(--color-acento); font-family:monospace; font-size:.9rem; padding-top:.15rem; }
.analysis-lead h2 { margin:.55rem 0 1rem; text-align:left; font-size:clamp(2.2rem,5vw,4rem); line-height:1.04; letter-spacing:-.04em; }
.analysis-lead p { color:var(--color-texto-sec); font-size:1.05rem; }
.chart-card { padding:2rem; border:1px solid rgba(255,255,255,.12); background:#181b1f; border-radius:4px; }
.chart-card-wide { padding:2rem 2rem 1.4rem; }
.chart-head { display:flex; justify-content:space-between; align-items:start; gap:2rem; margin-bottom:1.8rem; }
.chart-head h3 { margin:0 0 .25rem; font-size:1.25rem; }
.chart-head p { color:var(--color-texto-sec); font-size:.85rem; }
.chart-legend { display:flex; gap:1rem; color:var(--color-texto-sec); font-size:.8rem; }
.chart-legend span { display:flex; align-items:center; gap:.4rem; }
.chart-legend i,.model-legend i { display:inline-block; width:10px; height:10px; border-radius:50%; }
.legend-positive { background:var(--color-acento); }.legend-negative { background:#ff5d73; }
.svg-chart svg { display:block; width:100%; height:auto; min-height:300px; overflow:visible; }
.gridline { stroke:rgba(255,255,255,.1); stroke-width:1; }.axis-label,.x-label { fill:#7f8792; font:12px var(--font-principal); }
.trend-line { fill:none; stroke-width:4; stroke-linecap:round; }.trend-line.positive { stroke:var(--color-acento); }.trend-line.negative { stroke:#ff5d73; }
.point { stroke-width:3; }.point.positive { fill:var(--color-acento); stroke:#181b1f; }.point.negative { fill:#ff5d73; stroke:#181b1f; }
.point.low { fill:#181b1f; stroke-width:3; stroke-dasharray:2 2; }
.end-label { font:700 13px var(--font-principal); }.positive-text { fill:var(--color-acento); }.negative-text { fill:#ff7185; }
.chart-note { display:flex; gap:1.5rem; border-top:1px solid rgba(255,255,255,.08); padding-top:1rem; color:#8b939d; font-size:.75rem; }
.model-section { padding:7rem 0; background:#262729; color:#ececed; }
.model-section h2,.model-section h3 { color:#f5f5f5; }.model-section .analysis-lead p { color:#b5b7bb; }
.model-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr); gap:1.5rem; }
.model-section .chart-card { background:#303134; border-color:#484a4f; }
.model-section .chart-head p { color:#a9acb2; }
.stack-list { display:flex; flex-direction:column; gap:1.15rem; padding:.7rem 0; }
.stack-row { display:grid; grid-template-columns:52px 1fr; gap:.7rem; align-items:center; color:#c2c4c8; font-size:.75rem; }
.stack-bar { display:flex; height:28px; background:#404247; overflow:hidden; }.stack-bar i { display:block; height:100%; transition:filter .2s; }.stack-bar i:hover { filter:brightness(1.15); }
.model-legend { display:flex; flex-wrap:wrap; gap:.7rem 1rem; margin-top:1.3rem; color:#b5b7bb; font-size:.72rem; }
.model-legend span { display:flex; align-items:center; gap:.35rem; }
.method-card-dark { padding:2rem; background:#171a1e; color:#e5e7e9; }
.method-tag { color:var(--color-acento); font:700 .75rem var(--font-titulos); letter-spacing:.12em; text-transform:uppercase; }
.method-card-dark ol { margin:1.7rem 0 2rem; padding-left:1.2rem; }.method-card-dark li { margin-bottom:1.2rem; color:#abb0b7; }.method-card-dark strong { color:#fff; }
.method-card-dark a { color:var(--color-acento); text-decoration:none; font-weight:700; }
.figures-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr); gap:1.5rem; }
.figure-bars { display:flex; flex-direction:column; gap:1.8rem; }
.figure-row { display:grid; grid-template-columns:130px 1fr 95px; gap:1rem; align-items:center; }
.figure-row > strong { font-size:.9rem; }.figure-row > div { display:flex; gap:4px; height:30px; }
.figure-row span { display:flex; align-items:center; padding:0 .55rem; overflow:hidden; color:#111; font-size:.72rem; font-weight:800; }
.figure-pos { background:var(--color-acento); }.figure-neg { background:#ff5d73; }
.figure-row small { color:var(--color-texto-sec); font-size:.75rem; text-align:right; }
.insight-panel { padding:2rem; background:var(--color-acento); color:#101214; }
.insight-label { font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.insight-panel > strong { display:block; margin:1.6rem 0 .2rem; font:700 4rem var(--font-titulos); letter-spacing:-.06em; line-height:1; }
.insight-panel h3 { color:#101214; font-size:1.2rem; }.insight-panel p { margin:1.4rem 0 2.2rem; }
.insight-panel a { color:#101214; font-weight:800; text-decoration:none; }
.mini-trend { display:flex; align-items:center; gap:1.5rem; margin-top:1.5rem; padding:1.5rem 2rem; border:1px solid rgba(255,255,255,.12); }
.mini-trend div span,.mini-trend div small { display:block; color:var(--color-texto-sec); font-size:.72rem; }.mini-trend div strong { font:700 2rem var(--font-titulos); color:#fff; }
.mini-arrow { color:#ff5d73; font-size:1.8rem; }.mini-trend p { margin-left:auto; max-width:480px; color:var(--color-texto-sec); }.mini-trend b { color:#ff7185; }
.sources-section { background:#16191d; }
.media-archive-section { padding:7rem 0; background:#262729; }
.media-overview { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(250px,.65fr); gap:1.5rem; }
.media-volume-card,.media-sources-card,.pipeline-card { border:1px solid #484a4f; background:#303134; }
.media-volume-card { padding:2rem; }
.media-volume-head { display:flex; align-items:start; justify-content:space-between; gap:2rem; }
.media-volume-head h3 { margin:.45rem 0 0; font-size:1.4rem; }
.media-volume-head > span { color:var(--color-texto-sec); font:12px monospace; }
.media-year-chart { height:280px; display:flex; align-items:end; gap:clamp(.35rem,1.5vw,1rem); margin-top:2.5rem; padding-top:1.5rem; border-bottom:1px solid rgba(255,255,255,.16); }
.media-year-chart > div { position:relative; height:100%; flex:1; display:flex; flex-direction:column; justify-content:end; align-items:center; min-width:0; }
.media-year-chart i { width:100%; max-width:48px; height:calc(var(--value) / 419 * 205px); min-height:3px; display:block; background:linear-gradient(to top,var(--color-acento),#6bf0dc); transition:filter .2s,transform .2s; transform-origin:bottom; }
.media-year-chart > div:hover i { filter:brightness(1.2); transform:scaleY(1.025); }
.media-year-chart strong { position:absolute; bottom:calc(var(--value) / 419 * 205px + 27px); color:#fff; font:700 11px monospace; }
.media-year-chart span { height:25px; padding-top:.55rem; color:#a3abb5; font-size:.65rem; white-space:nowrap; }
.media-chart-note { margin-top:1rem; color:#a9b0b9; font-size:.72rem; }
.media-sources-card { padding:2rem; }
.source-total { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding:1.1rem 0; border-bottom:1px solid rgba(255,255,255,.1); }
.source-total strong { color:#fff; font:700 2rem var(--font-titulos); letter-spacing:-.04em; }
.source-total span { color:var(--color-texto-sec); font-size:.82rem; text-align:right; }
.media-outlets { display:grid; grid-template-columns:1fr 1fr; gap:.7rem 1rem; margin-top:1.6rem; }
.media-outlets small { grid-column:1/-1; color:#a9b0b9; margin-bottom:.25rem; }
.media-outlets span { display:flex; justify-content:space-between; color:#bdc2c8; font-size:.78rem; }
.media-outlets b { color:var(--color-acento); }
.pipeline-card { margin-top:1.5rem; padding:2rem; }
.pipeline-intro { max-width:760px; }
.pipeline-intro h3 { margin:.5rem 0 .7rem; font-size:1.6rem; }
.pipeline-intro p { color:var(--color-texto-sec); }
.pipeline-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:2.5rem 0; padding:0; list-style:none; background:rgba(255,255,255,.12); }
.pipeline-steps li { display:flex; gap:1rem; padding:1.5rem; background:#303134; }
.pipeline-steps li > span { color:var(--color-acento); font:12px monospace; }
.pipeline-steps strong { color:#fff; }
.pipeline-steps p { margin-top:.45rem; color:#a9b0b9; font-size:.78rem; }
.pipeline-result { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1rem; padding-top:1.3rem; border-top:1px solid rgba(255,255,255,.1); }
.pipeline-result > span { padding:.3rem .55rem; background:var(--color-acento); color:#111; font-size:.7rem; font-weight:800; text-transform:uppercase; }
.pipeline-result p { color:#a9b0b9; font-size:.82rem; }
.pipeline-result p b { color:#fff; }
.pipeline-result a { color:var(--color-acento); text-decoration:none; font-weight:700; font-size:.85rem; }
.media-drive-feature { border-color:rgba(107,240,220,.32); }
.media-drive-feature .drive-mark { background:#6bf0dc; }
.mileichad-section { padding:7rem 0; background:#15181c; }
.mileichad-section .analysis-lead h2 span { color:var(--color-acento); }
.mileichad-layout { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(0,1.35fr); gap:clamp(3rem,8vw,8rem); padding:3rem 0; border-top:1px solid rgba(255,255,255,.13); }
.mileichad-statement > p { color:#fff; font:500 clamp(1.6rem,3vw,2.5rem)/1.18 var(--font-titulos); letter-spacing:-.03em; }
.mileichad-statement a { display:inline-block; margin-top:2.5rem; padding:.8rem 1rem; border:1px solid var(--color-acento); color:var(--color-acento); text-decoration:none; font-weight:700; }
.mileichad-statement a:hover { background:rgba(var(--color-acento-rgb),.1); }
.mileichad-summary { color:#aeb3ba; font-size:1.05rem; }
.mileichad-summary p + p { margin-top:1.3rem; }
.research-tags { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:2rem; }
.research-tags span { padding:.35rem .65rem; border:1px solid rgba(255,255,255,.15); color:#d5d7da; font-size:.72rem; }
.mileichad-thesis { display:grid; grid-template-columns:150px 1fr; gap:2rem; padding:2rem 0 0; border-top:1px solid rgba(255,255,255,.13); }
.mileichad-thesis > span { color:var(--color-acento); font:700 .74rem var(--font-titulos); letter-spacing:.12em; text-transform:uppercase; }
.mileichad-thesis blockquote { max-width:850px; color:#e7e8ea; font:400 clamp(1.25rem,2.5vw,2rem)/1.35 var(--font-titulos); }
.ads-connection-section { padding:7rem 0; background:#262729; }
.connection-flow { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; margin:3rem 0 1.5rem; background:#484a4f; border:1px solid #484a4f; }
.connection-flow article { min-height:235px; padding:1.5rem; background:#303134; }
.connection-flow article > span { color:var(--color-acento); font:12px monospace; }
.connection-flow strong { display:block; margin:2.4rem 0 .7rem; color:#fff; font:600 1.2rem var(--font-titulos); }
.connection-flow p { color:#a8abb0; font-size:.82rem; }
.ads-bridge { display:grid; grid-template-columns:1fr 1fr; border:1px solid #484a4f; }
.ads-bridge > div { padding:2rem; }
.ads-bridge > div:first-child { display:flex; flex-direction:column; justify-content:space-between; border-right:1px solid #484a4f; }
.ads-bridge > div:first-child p { max-width:520px; margin-top:3rem; color:#b7b9bd; font-size:1.02rem; }
.ads-bridge-result { background:#17191c; }
.ads-bridge-result small { color:#858c95; text-transform:uppercase; letter-spacing:.1em; }
.ads-bridge-result strong { display:block; margin:1rem 0 .7rem; color:var(--color-acento); font:600 clamp(1.25rem,2.4vw,2rem) var(--font-titulos); }
.ads-bridge-result p { color:#aeb2b7; }
.ads-bridge-result a { display:inline-block; margin-top:2rem; color:var(--color-acento); text-decoration:none; font-weight:700; }
.drive-feature { display:grid; grid-template-columns:54px 1fr auto; gap:1.2rem; align-items:center; margin-bottom:4rem; padding:1.6rem; border:1px solid rgba(0,224,255,.35); background:rgba(0,224,255,.05); color:inherit; text-decoration:none; transition:transform .2s,background .2s; }
.drive-feature:hover { transform:translateY(-2px); background:rgba(0,224,255,.09); }
.drive-mark { display:grid; place-items:center; width:54px; height:54px; background:var(--color-acento); color:#111; font:800 1.5rem var(--font-titulos); }
.drive-feature small,.drive-feature strong,.drive-feature em { display:block; }.drive-feature small { color:var(--color-acento); }.drive-feature strong { margin:.15rem 0; color:#fff; font:600 1.2rem var(--font-titulos); }.drive-feature em { color:var(--color-texto-sec); font-size:.8rem; font-style:normal; }.drive-feature b { color:var(--color-acento); }
.report-toolbar { display:flex; justify-content:space-between; align-items:center; gap:2rem; margin-bottom:1.2rem; }
.report-toolbar h3 { margin:0; }.report-toolbar input { width:min(320px,70vw); padding:.75rem 1rem; border:1px solid rgba(255,255,255,.15); background:#111315; color:#fff; font:inherit; }
.report-grid { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(255,255,255,.12); }
.report-grid a { display:grid; grid-template-columns:34px 1fr auto; gap:.8rem; align-items:center; padding:1.25rem .7rem; border-bottom:1px solid rgba(255,255,255,.12); color:inherit; text-decoration:none; }
.report-grid a:nth-child(odd) { border-right:1px solid rgba(255,255,255,.12); }
.report-grid a:hover { background:rgba(255,255,255,.035); }.report-grid a > span { color:#959da7; font:12px monospace; }.report-grid a strong,.report-grid a small { display:block; }.report-grid a strong { color:#fff; font-size:.9rem; }.report-grid a small { color:var(--color-texto-sec); font-size:.72rem; }.report-grid a b { color:var(--color-acento); }

@media (max-width: 820px) {
    .opinion-hero-grid,.model-grid,.figures-grid { grid-template-columns:1fr; }
    .opinion-hero { padding:5rem 0 4rem; }.hero-signal { max-width:350px; }
    .metric-strip { grid-template-columns:1fr 1fr; margin-bottom:5rem; }.metric-strip div:nth-child(2) { border-right:0; }.metric-strip div:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.12); }
    .analysis-lead { grid-template-columns:36px 1fr; }.chart-card-wide,.chart-card { padding:1.2rem; }
    .chart-head,.chart-note { flex-direction:column; gap:.7rem; }.x-label { font-size:9px; }
    .figure-row { grid-template-columns:95px 1fr; }.figure-row small { grid-column:2; text-align:left; }
    .mini-trend { flex-wrap:wrap; }.mini-trend p { flex-basis:100%; margin-left:0; }
    .drive-feature { grid-template-columns:46px 1fr; }.drive-feature b { grid-column:2; }
    .report-grid { grid-template-columns:1fr; }.report-grid a:nth-child(odd) { border-right:0; }
    .media-overview { grid-template-columns:1fr; }
    .pipeline-steps { grid-template-columns:1fr 1fr; }
    .pipeline-result { grid-template-columns:auto 1fr; }
    .pipeline-result a { grid-column:2; }
    .mileichad-layout { grid-template-columns:1fr; gap:3rem; }
    .connection-flow { grid-template-columns:1fr 1fr; }
    .connection-flow article { min-height:190px; }
}

@media (max-width: 520px) {
    .opinion-hero h1 { font-size:3.5rem; }.metric-strip { grid-template-columns:1fr 1fr; }
    .metric-strip div { padding:1rem; }.metric-strip strong { font-size:1.4rem; }
    .svg-chart svg { min-height:220px; }.chart-legend { flex-wrap:wrap; }
    .report-toolbar { align-items:stretch; flex-direction:column; }.report-toolbar input { width:100%; }
    .media-volume-card,.media-sources-card,.pipeline-card { padding:1.2rem; }
    .media-year-chart { height:230px; gap:.25rem; }
    .media-year-chart i { height:calc(var(--value) / 419 * 160px); }
    .media-year-chart strong { bottom:calc(var(--value) / 419 * 160px + 27px); font-size:9px; }
    .pipeline-steps { grid-template-columns:1fr; }
    .mileichad-thesis { grid-template-columns:1fr; gap:1rem; }
    .connection-flow,.ads-bridge { grid-template-columns:1fr; }
    .ads-bridge > div:first-child { border-right:0; border-bottom:1px solid #484a4f; }
}

/* Site-wide portfolio shortcuts */
.portfolio-rail {
    position: fixed;
    z-index: 997;
    top: 78px;
    right: 0;
    left: 0;
    height: 58px;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    background: rgba(16, 18, 21, .96);
    backdrop-filter: blur(16px);
}
.portfolio-rail__inner {
    display: flex;
    width: 100%;
    height: 100%;
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(var(--color-acento-rgb), .45) transparent;
}
.portfolio-rail__links { display: contents; }
.portfolio-rail__link,
.portfolio-rail__home,
.portfolio-rail__search {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 0 1.05rem;
    border: 0;
    border-right: 1px solid rgba(255, 255, 255, .09);
    background: transparent;
    color: var(--color-texto-sec);
    font: 700 .68rem var(--font-titulos);
    letter-spacing: .055em;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
}
.portfolio-rail__link:hover,
.portfolio-rail__link:focus-visible,
.portfolio-rail__home:hover,
.portfolio-rail__home:focus-visible,
.portfolio-rail__search:hover,
.portfolio-rail__search:focus-visible { outline: 0; background: rgba(var(--color-acento-rgb), .08); color: var(--color-acento); }
.portfolio-rail__home { color: #fff; }
.portfolio-rail__home span,
.portfolio-rail__link span { margin-right: .42rem; color: var(--color-acento); font: 700 .58rem ui-monospace, monospace; }
.portfolio-rail__search { margin-left: auto; border-left: 1px solid rgba(255, 255, 255, .12); color: var(--color-acento); }
.portfolio-rail__search span { font-size: 1.15rem; }
.has-document-rail > .document-header { position: fixed; z-index: 999; top: 0; right: 0; left: 0; }
.has-document-rail .portfolio-rail { top: 72px; }
.has-document-rail main { padding-top: 130px; }
.has-document-rail .site-search-panel { top: 142px; }

/* Site-wide fuzzy search */
.site-search{margin-left:auto}.site-search-toggle{display:flex;align-items:center;gap:.38rem;padding:.48rem .65rem;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:transparent;color:var(--color-texto);font:600 .72rem var(--font-titulos);letter-spacing:.04em;cursor:pointer}.site-search-toggle:hover,.site-search-toggle:focus-visible{border-color:var(--color-acento);color:var(--color-acento)}.site-search-toggle span[aria-hidden]{font-size:1.2rem;line-height:.7}.site-search-panel{position:fixed;z-index:10020;left:50%;top:148px;width:min(680px,calc(100vw - 2rem));max-height:calc(100vh - 170px);overflow:hidden;transform:translateX(-50%);border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(16,18,21,.98);box-shadow:0 24px 80px rgba(0,0,0,.55);backdrop-filter:blur(18px)}.site-search-field{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;padding:.8rem 1rem;border-bottom:1px solid rgba(255,255,255,.12)}.site-search-field>span{color:var(--color-acento);font-size:1.45rem}.site-search-field input{width:100%;padding:.35rem 0;border:0;outline:0;background:transparent;color:#fff;font:500 1rem var(--font-cuerpo)}.site-search-field input::placeholder{color:#7f878e}.site-search-close{border:0;background:transparent;color:#aeb5bd;font-size:1.65rem;cursor:pointer}.site-search-status{padding:.65rem 1rem .35rem;color:#7f878e;font-size:.72rem}.site-search-results{max-height:calc(100vh - 256px);overflow:auto;padding:.35rem}.site-search-result{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:1rem;align-items:center;padding:.85rem 1rem;border-radius:7px;color:inherit;text-decoration:none}.site-search-result:hover,.site-search-result:focus-visible{outline:0;background:rgba(var(--color-acento-rgb),.11)}.site-search-result-copy,.site-search-result-copy>span{display:block}.site-search-result-title{display:block;margin:0;color:#fff;font:700 .95rem var(--font-titulos)}.site-search-result-copy>span{margin-top:.28rem;color:var(--color-texto-sec);font-size:.78rem;line-height:1.45}.site-search-result-copy>span strong,.site-search-result-title strong{display:inline;color:#fff;font:inherit;font-weight:800}.site-search-result img,.site-search-result-placeholder{display:block;width:84px;height:58px;margin:0;border-radius:5px;object-fit:cover;background:linear-gradient(135deg,rgba(var(--color-acento-rgb),.18),rgba(255,255,255,.04))}.site-search-open:before{content:"";position:fixed;z-index:10010;inset:0;background:rgba(0,0,0,.5)}
@media(max-width:1100px){.site-search-label{display:none}.site-search-toggle{padding:.5rem}}
@media(max-width:768px){.portfolio-rail{top:78px;height:54px}.portfolio-rail__link,.portfolio-rail__home,.portfolio-rail__search{min-height:54px;padding-inline:.85rem;font-size:.63rem}.has-document-rail .portfolio-rail{top:72px}.site-search{margin-left:auto;margin-right:.55rem}.site-search-panel{top:144px}.has-document-rail .site-search-panel{top:138px}.site-search-toggle{width:38px;height:38px;justify-content:center}.site-search-results{max-height:calc(100vh - 252px)}}
@media(max-width:560px){.has-document-rail .document-brand{display:none}}
.search-page{padding:9rem 0 6rem;min-height:80vh}.search-page h1{text-align:left;margin-bottom:.6rem}.search-page-status{color:var(--color-texto-sec);margin-bottom:1.5rem}.search-page-results{display:grid;gap:.55rem;max-width:900px}.search-page-results .site-search-result{padding:1.2rem;border:1px solid rgba(255,255,255,.1);background:var(--color-superficie);grid-template-columns:minmax(0,1fr) 140px}.search-page-results .site-search-result img,.search-page-results .site-search-result-placeholder{width:140px;height:92px}@media(max-width:560px){.site-search-result,.search-page-results .site-search-result{grid-template-columns:minmax(0,1fr) 70px}.site-search-result img,.site-search-result-placeholder,.search-page-results .site-search-result img,.search-page-results .site-search-result-placeholder{width:70px;height:58px}}

/* ======================== */
/* ARTÍCULOS ACADÉMICOS     */
/* ======================== */
.academic-articles-section { padding: 7rem 0; background: #15181c; }
.academic-articles-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .75fr);
    gap: 4rem;
    align-items: end;
    margin-bottom: 3rem;
}
.academic-kicker {
    color: var(--color-acento);
    font: 700 .75rem var(--font-titulos);
    letter-spacing: .12em;
    text-transform: uppercase;
}
.academic-articles-heading h2 { margin: .6rem 0 0; text-align: left; }
.academic-articles-heading p { color: var(--color-texto-sec); }
.academic-article-card {
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: center;
    padding: 2.4rem 0;
    border-top: 1px solid rgba(255,255,255,.15);
    border-bottom: 1px solid rgba(255,255,255,.15);
    color: inherit;
    text-decoration: none;
    transition: background .2s, padding .2s;
}
.academic-article-card:hover { padding-inline: 1.2rem; background: rgba(255,255,255,.035); }
.academic-article-index { color: #69717b; font: 12px monospace; }
.academic-article-meta { display: flex; flex-wrap: wrap; gap: .55rem 1rem; color: var(--color-acento); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.academic-article-copy h3 { margin: .7rem 0 .55rem; color: #fff; font-size: clamp(1.8rem, 4vw, 3rem); letter-spacing: -.035em; }
.academic-article-copy > p { max-width: 760px; color: var(--color-texto-sec); }
.academic-article-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.4rem; }
.academic-article-tags span { padding: .35rem .65rem; border: 1px solid rgba(255,255,255,.15); color: #d4d7da; font-size: .72rem; }
.academic-article-action { color: var(--color-acento); white-space: nowrap; }
.academic-detail-page { padding-top: 72px; background: #111315; }
.academic-detail-hero { padding: 7rem 0 6rem; background: radial-gradient(circle at 84% 20%, rgba(0,224,255,.12), transparent 28%), #171a1e; }
.academic-detail-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .65fr); gap: clamp(3rem, 8vw, 8rem); align-items: end; }
.academic-detail-hero h1 { max-width: 900px; margin: 1rem 0 1.5rem; font-size: clamp(3.5rem, 8vw, 7rem); line-height: .92; letter-spacing: -.06em; }
.academic-detail-hero h1 em { color: var(--color-acento); font-style: normal; font-weight: 400; }
.academic-detail-subtitle { max-width: 820px; color: var(--color-texto-sec); font-size: clamp(1.05rem, 2vw, 1.35rem); }
.academic-publication-data { margin: 0; border-top: 1px solid rgba(255,255,255,.16); }
.academic-publication-data div { padding: .9rem 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.academic-publication-data dt { color: #8b939d; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.academic-publication-data dd { margin: .25rem 0 0; color: #fff; }
.academic-publication-data a { color: var(--color-acento); text-decoration: none; }
.academic-abstract-section { padding: 6rem 0; background: #262729; }
.academic-abstract-grid { display: grid; grid-template-columns: 150px minmax(0, 820px); gap: 3rem; }
.academic-abstract-grid p { color: #c2c5c9; font-size: 1.08rem; }
.academic-abstract-grid p + p { margin-top: 1.2rem; }
.academic-reader-section { padding: 6rem 0; }
.academic-reader-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 2rem; }
.academic-reader-heading h2 { margin: .55rem 0 0; text-align: left; }
.academic-reader-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 1rem; }
.academic-reader-actions > a:first-child { color: var(--color-acento); text-decoration: none; font-weight: 700; }
.academic-pdf-frame { height: min(82vh, 980px); }

@media (max-width: 820px) {
    .academic-articles-heading,
    .academic-detail-grid { grid-template-columns: 1fr; gap: 2rem; }
    .academic-article-card { grid-template-columns: 36px 1fr; }
    .academic-article-action { grid-column: 2; }
    .academic-abstract-grid { grid-template-columns: 1fr; gap: 1.2rem; }
    .academic-reader-heading { align-items: stretch; flex-direction: column; }
    .academic-reader-actions { justify-content: flex-start; }
}

@media (max-width: 520px) {
    .academic-articles-section,
    .academic-detail-hero,
    .academic-abstract-section,
    .academic-reader-section { padding-block: 4.5rem; }
    .academic-detail-hero h1 { font-size: 3.5rem; }
    .academic-article-card { gap: 1rem; }
    .academic-pdf-frame { min-height: 68vh; height: 68vh; }
}

/* Hero containers are flex items: let them shrink so long words wrap instead of widening the page on phones. */
.commerce-video-hero > .container, .voc-hero > .container, .lifecycle-hero > .container, .page-hero > .container { min-width: 0; width: 100%; }
@media (max-width: 480px) {
  .commerce-video-hero h1, .voc-hero h1, .lifecycle-hero h1, .page-hero h1 { overflow-wrap: anywhere; hyphens: auto; }
  .commerce-video-hero h1, .voc-hero h1 { font-size: clamp(2.4rem, 11vw, 3.4rem); }
}
.table-scroll { max-width: 100%; overflow-x: auto; }
.table-scroll:focus-visible { outline: 3px solid var(--color-acento, #00e0ff); outline-offset: 2px; }
