:root {
  --rojo: #C90020;
  --azul: #00B0F0;
  --marino: #1F3B66;
  --fondo: #F7F8FA;
  --blanco: #FFFFFF;
  --texto: #333333;
  --gris: #666666;
  --gris-claro: #E2E8F0;
  
  --font-serif: 'Playfair Display', serif;
  --font-sans: 'Inter', sans-serif;
  
  --shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: var(--font-sans); background: #1a1a1a; color: var(--texto);
  overflow: hidden; height: 100vh; width: 100vw; display: flex; justify-content: center; align-items: center;
}

#app { 
  width: 100vw; height: 100vh; background: var(--fondo); position: relative; 
  overflow: hidden; 
}

/* Global UI */
.global-ui { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 50; }
.global-header { position: absolute; top: 30px; right: 40px; display: flex; gap: 30px; align-items: center; transition: opacity 0.3s; mix-blend-mode: multiply; }
.global-header img { height: 90px; object-fit: contain; }
.global-ui.hide-header .global-header { opacity: 0; }
.controls-hint { display: none !important; }

/* Nav Buttons */
.nav-btn {
  position: absolute; bottom: 30px;
  background: var(--marino); border: none; border-radius: 50%;
  width: 50px; height: 50px; cursor: pointer; pointer-events: auto;
  box-shadow: 0 4px 15px rgba(31,59,102,0.3); color: var(--blanco); font-size: 1.2rem;
  display: flex; justify-content: center; align-items: center;
  transition: all 0.2s ease; z-index: 60;
}
.nav-btn:hover { background: var(--rojo); transform: scale(1.1); box-shadow: 0 4px 15px rgba(201,0,32,0.4); }
.nav-btn:active { transform: scale(0.95); }
.nav-prev { right: 90px; }
.nav-next { right: 30px; }

/* Progress */
.progress-container { position: absolute; bottom: 0; left: 0; width: 100%; height: 6px; background: rgba(0,0,0,0.05); z-index: 100; }
#progress-bar { height: 100%; width: 0%; background: linear-gradient(90deg, var(--rojo), #ff4d4d); transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1); }

/* Slides Base */
.slide { 
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; 
  opacity: 0; transform: translateY(15px) scale(0.99);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); 
  pointer-events: none; display: flex; flex-direction: column; background: var(--fondo); 
  overflow-y: auto;
  overflow-x: hidden;
}
.slide.active { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }

/* Staggered Content Animations */
.slide .content-wrapper > * { opacity: 0; transform: translateY(20px); transition: all 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .content-wrapper > *:nth-child(1) { opacity: 1; transform: translateY(0); transition-delay: 0.2s; }
.slide.active .content-wrapper > *:nth-child(2) { opacity: 1; transform: translateY(0); transition-delay: 0.3s; }
.slide.active .content-wrapper > *:nth-child(3) { opacity: 1; transform: translateY(0); transition-delay: 0.4s; }
.slide.active .content-wrapper > *:nth-child(4) { opacity: 1; transform: translateY(0); transition-delay: 0.5s; }

/* Custom staggered for qs-card */
.slide .qs-card { opacity: 0; transform: translateY(20px); transition: all 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .qs-card:nth-child(1) { opacity: 1; transform: translateY(0); transition-delay: 0.4s; }
.slide.active .qs-card:nth-child(2) { opacity: 1; transform: translateY(0); transition-delay: 0.5s; }
.slide.active .qs-card:nth-child(3) { opacity: 1; transform: translateY(0); transition-delay: 0.6s; }
.slide.active .qs-card:nth-child(4) { opacity: 1; transform: translateY(0); transition-delay: 0.7s; }
.slide.active .qs-card:nth-child(5) { opacity: 1; transform: translateY(0); transition-delay: 0.8s; }

/* Custom staggered for exp */
.slide .exp-block, .slide .exp-footer { opacity: 0; transform: translateY(30px); transition: all 0.7s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .exp-block:nth-child(1) { opacity: 1; transform: translateY(0); transition-delay: 0.3s; }
.slide.active .exp-block:nth-child(2) { opacity: 1; transform: translateY(0); transition-delay: 0.5s; }
.slide.active .exp-footer { opacity: 1; transform: translateY(0); transition-delay: 0.7s; }

/* Custom staggered for hub */
.slide .hub-center { opacity: 0; transform: scale(0.6); transition: all 0.7s cubic-bezier(0.34, 1.56, 0.64, 1); }
.slide.active .hub-center { opacity: 1; transform: scale(1); transition-delay: 0.25s; }

.slide .hub-node { opacity: 0; transition: all 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }
.slide.active .hub-node-5 { opacity: 1; transform: translateX(-50%) scale(1); transition-delay: 0.4s; }
.slide.active .hub-node-1 { opacity: 1; transition-delay: 0.5s; }
.slide.active .hub-node-2 { opacity: 1; transition-delay: 0.6s; }
.slide.active .hub-node-3 { opacity: 1; transition-delay: 0.7s; }
.slide.active .hub-node-4 { opacity: 1; transition-delay: 0.8s; }

.slide .hub-footer { opacity: 0; transform: translateY(20px); transition: all 0.6s ease; }
.slide.active .hub-footer { opacity: 1; transform: translateY(0); transition-delay: 0.9s; }

/* Custom staggered for modelo-tecnico */
.slide .modelo-flow-track { opacity: 0; transform: scaleX(0.4); transform-origin: left center; transition: all 0.7s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .modelo-flow-track { opacity: 1; transform: scaleX(1); transition-delay: 0.2s; }

.slide .modelo-col { opacity: 0; transform: translateY(35px); transition: all 0.65s cubic-bezier(0.34, 1.56, 0.64, 1); }
.slide.active .modelo-col-1 { opacity: 1; transform: translateY(0); transition-delay: 0.35s; }
.slide.active .modelo-col-2 { opacity: 1; transform: translateY(0); transition-delay: 0.55s; }
.slide.active .modelo-col-3 { opacity: 1; transform: translateY(0); transition-delay: 0.75s; }

/* Custom staggered for mecanismos-nec (4 Pillars) */
.slide .nec-pillar-col { opacity: 0; transform: translateY(30px); transition: all 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .nec-pillar-col:nth-child(1) { opacity: 1; transform: translateY(0); transition-delay: 0.22s; }
.slide.active .nec-pillar-col:nth-child(2) { opacity: 1; transform: translateY(0); transition-delay: 0.38s; }
.slide.active .nec-pillar-col:nth-child(3) { opacity: 1; transform: translateY(0); transition-delay: 0.54s; }
.slide.active .nec-pillar-col:nth-child(4) { opacity: 1; transform: translateY(0); transition-delay: 0.70s; }

/* Custom staggered for reto-institucional */
.slide .reto-hero-panel { opacity: 0; transform: translateX(-30px); transition: all 0.65s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .reto-hero-panel { opacity: 1; transform: translateX(0); transition-delay: 0.25s; }

.slide .reto-card { opacity: 0; transform: translateY(20px); transition: all 0.55s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .reto-card-1 { opacity: 1; transform: translateY(0); transition-delay: 0.35s; }
.slide.active .reto-card-2 { opacity: 1; transform: translateY(0); transition-delay: 0.48s; }
.slide.active .reto-card-3 { opacity: 1; transform: translateY(0); transition-delay: 0.61s; }
.slide.active .reto-card-4 { opacity: 1; transform: translateY(0); transition-delay: 0.74s; }

.slide .reto-banner { opacity: 0; transform: translateY(25px); transition: all 0.6s ease; }
.slide.active .reto-banner { opacity: 1; transform: translateY(0); transition-delay: 0.85s; }

/* Custom staggered for intervenciones-bicameralidad */
.slide .bicam-block { opacity: 0; transform: translateY(30px); transition: all 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .bicam-block-left { opacity: 1; transform: translateY(0); transition-delay: 0.25s; }
.slide.active .bicam-block-right { opacity: 1; transform: translateY(0); transition-delay: 0.45s; }

.slide .bicam-disclaimer-banner { opacity: 0; transform: translateY(20px); transition: all 0.5s ease; }
.slide.active .bicam-disclaimer-banner { opacity: 1; transform: translateY(0); transition-delay: 0.65s; }

/* Custom staggered for resultados-concretos (Slide 9) */
.slide .res-kpi-card { opacity: 0; transform: translateY(20px); transition: all 0.5s ease; }
.slide.active .res-kpi-item-1 { opacity: 1; transform: translateY(0); transition-delay: 0.2s; }
.slide.active .res-kpi-item-2 { opacity: 1; transform: translateY(0); transition-delay: 0.3s; }
.slide.active .res-kpi-item-3 { opacity: 1; transform: translateY(0); transition-delay: 0.4s; }
.slide.active .res-kpi-item-4 { opacity: 1; transform: translateY(0); transition-delay: 0.5s; }

.slide .res-photo-panel { opacity: 0; transform: scale(0.95); transition: all 0.6s ease; }
.slide.active .res-photo-panel { opacity: 1; transform: scale(1); transition-delay: 0.4s; }

.slide .res-delivery-row { opacity: 0; transform: translateX(30px); transition: all 0.55s ease; }
.slide.active .res-deliv-item-1 { opacity: 1; transform: translateX(0); transition-delay: 0.55s; }
.slide.active .res-deliv-item-2 { opacity: 1; transform: translateX(0); transition-delay: 0.70s; }
.slide.active .res-deliv-item-3 { opacity: 1; transform: translateX(0); transition-delay: 0.85s; }

/* Custom staggered for tres-respuestas (Slide 10) */
.slide .resp-card { opacity: 0; transform: translateY(30px); transition: all 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .resp-card-item-1 { opacity: 1; transform: translateY(0); transition-delay: 0.25s; }
.slide.active .resp-card-item-2 { opacity: 1; transform: translateY(0); transition-delay: 0.45s; }
.slide.active .resp-card-item-3 { opacity: 1; transform: translateY(0); transition-delay: 0.65s; }

/* Custom staggered for timeline-fases (Slide 11) */
.slide .tf-phase-column { opacity: 0; transform: translateY(25px); transition: all 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .tf-phase-marino { opacity: 1; transform: translateY(0); transition-delay: 0.2s; }
.slide.active .tf-phase-rojo { opacity: 1; transform: translateY(0); transition-delay: 0.35s; }

.slide .tf-milestone { opacity: 0; transform: scale(0.9); transition: all 0.45s ease; }
.slide.active .tf-item-1-1 { opacity: 1; transform: scale(1); transition-delay: 0.35s; }
.slide.active .tf-item-1-2 { opacity: 1; transform: scale(1); transition-delay: 0.45s; }
.slide.active .tf-item-1-3 { opacity: 1; transform: scale(1); transition-delay: 0.55s; }
.slide.active .tf-item-2-1 { opacity: 1; transform: scale(1); transition-delay: 0.50s; }
.slide.active .tf-item-2-2 { opacity: 1; transform: scale(1); transition-delay: 0.60s; }
.slide.active .tf-item-2-3 { opacity: 1; transform: scale(1); transition-delay: 0.70s; }
.slide.active .tf-item-2-4 { opacity: 1; transform: scale(1); transition-delay: 0.80s; }
.slide.active .tf-item-2-5 { opacity: 1; transform: scale(1); transition-delay: 0.90s; }
.slide.active .tf-item-2-6 { opacity: 1; transform: scale(1); transition-delay: 1.00s; }
.slide.active .tf-item-2-7 { opacity: 1; transform: scale(1); transition-delay: 1.10s; }

/* Custom staggered for activo-showcase (Slide 12 & 13) */
.slide .act-lead-card { opacity: 0; transform: translateY(-15px); transition: all 0.5s ease; }
.slide.active .act-lead-card { opacity: 1; transform: translateY(0); transition-delay: 0.2s; }

.slide .act-pipe-step { opacity: 0; transform: translateY(12px); transition: all 0.45s ease; }
.slide.active .act-pipe-1 { opacity: 1; transform: translateY(0); transition-delay: 0.30s; }
.slide.active .act-pipe-2 { opacity: 1; transform: translateY(0); transition-delay: 0.40s; }
.slide.active .act-pipe-3 { opacity: 1; transform: translateY(0); transition-delay: 0.50s; }
.slide.active .act-pipe-4 { opacity: 1; transform: translateY(0); transition-delay: 0.60s; }

.slide .act-photo-card { opacity: 0; transform: translateY(20px); transition: all 0.55s ease; }
.slide.active .act-photo-1 { opacity: 1; transform: translateY(0); transition-delay: 0.35s; }
.slide.active .act-photo-2 { opacity: 1; transform: translateY(0); transition-delay: 0.45s; }
.slide.active .act-photo-3 { opacity: 1; transform: translateY(0); transition-delay: 0.55s; }

.slide .act-feat-pill { opacity: 0; transform: scale(0.92); transition: all 0.45s ease; }
.slide.active .act-feat-1 { opacity: 1; transform: scale(1); transition-delay: 0.60s; }
.slide.active .act-feat-2 { opacity: 1; transform: scale(1); transition-delay: 0.68s; }
.slide.active .act-feat-3 { opacity: 1; transform: scale(1); transition-delay: 0.76s; }
.slide.active .act-feat-4 { opacity: 1; transform: scale(1); transition-delay: 0.84s; }
.slide.active .act-feat-5 { opacity: 1; transform: scale(1); transition-delay: 0.92s; }

.slide .act-takeaway-banner { opacity: 0; transform: translateY(15px); transition: all 0.5s ease; }
.slide.active .act-takeaway-banner { opacity: 1; transform: translateY(0); transition-delay: 1.0s; }

/* Custom staggered for activo-comparativa (Slide 14) */
.slide .comp-panel-left { opacity: 0; transform: translateX(-25px); transition: all 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .comp-panel-left { opacity: 1; transform: translateX(0); transition-delay: 0.2s; }

.slide .comp-panel-right { opacity: 0; transform: translateX(25px); transition: all 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.slide.active .comp-panel-right { opacity: 1; transform: translateX(0); transition-delay: 0.35s; }

.slide .comp-takeaway-banner { opacity: 0; transform: translateY(15px); transition: all 0.5s ease; }
.slide.active .comp-takeaway-banner { opacity: 1; transform: translateY(0); transition-delay: 0.55s; }

/* Custom staggered for tecnologia-matriz (Slide 15) */
.slide .tec-lead-header { opacity: 0; transform: translateY(-10px); transition: all 0.5s ease; }
.slide.active .tec-lead-header { opacity: 1; transform: translateY(0); transition-delay: 0.15s; }

.slide .tec-col-idx-1 { opacity: 0; transform: translateY(20px); transition: all 0.55s ease; }
.slide.active .tec-col-idx-1 { opacity: 1; transform: translateY(0); transition-delay: 0.25s; }

.slide .tec-col-idx-2 { opacity: 0; transform: translateY(20px); transition: all 0.55s ease; }
.slide.active .tec-col-idx-2 { opacity: 1; transform: translateY(0); transition-delay: 0.40s; }

.slide .tec-col-idx-3 { opacity: 0; transform: translateY(20px); transition: all 0.55s ease; }
.slide.active .tec-col-idx-3 { opacity: 1; transform: translateY(0); transition-delay: 0.55s; }

.slide .tec-takeaway-banner { opacity: 0; transform: translateY(15px); transition: all 0.5s ease; }
.slide.active .tec-takeaway-banner { opacity: 1; transform: translateY(0); transition-delay: 0.70s; }

/* Custom staggered for trabajos-adicionales (Slide 16) */
.slide .ta-col-1 { opacity: 0; transform: translateY(20px); transition: all 0.55s ease; }
.slide.active .ta-col-1 { opacity: 1; transform: translateY(0); transition-delay: 0.20s; }

.slide .ta-arrow-1 { opacity: 0; transform: scale(0.6); transition: all 0.4s ease; }
.slide.active .ta-arrow-1 { opacity: 0.85; transform: scale(1); transition-delay: 0.35s; }

.slide .ta-col-2 { opacity: 0; transform: translateY(20px); transition: all 0.55s ease; }
.slide.active .ta-col-2 { opacity: 1; transform: translateY(0); transition-delay: 0.45s; }

.slide .ta-arrow-2 { opacity: 0; transform: scale(0.6); transition: all 0.4s ease; }
.slide.active .ta-arrow-2 { opacity: 0.85; transform: scale(1); transition-delay: 0.60s; }

.slide .ta-col-3 { opacity: 0; transform: translateY(20px); transition: all 0.55s ease; }
.slide.active .ta-col-3 { opacity: 1; transform: translateY(0); transition-delay: 0.70s; }

.slide .ta-takeaway-banner { opacity: 0; transform: translateY(15px); transition: all 0.5s ease; }
.slide.active .ta-takeaway-banner { opacity: 1; transform: translateY(0); transition-delay: 0.85s; }

.slide .kh-kpi-card { opacity: 0; transform: translateY(20px); transition: all 0.5s ease; }
.slide.active .kh-kpi-card:nth-child(1) { opacity: 1; transform: translateY(0); transition-delay: 0.2s; }
.slide.active .kh-kpi-card:nth-child(2) { opacity: 1; transform: translateY(0); transition-delay: 0.35s; }
.slide.active .kh-kpi-card:nth-child(3) { opacity: 1; transform: translateY(0); transition-delay: 0.5s; }
.slide .kh-info-box { opacity: 0; transform: translateY(20px); transition: all 0.5s ease; }
.slide.active .kh-info-box { opacity: 1; transform: translateY(0); transition-delay: 0.65s; }

.slide .ac-image-box { opacity: 0; transform: translateX(-30px); transition: all 0.6s ease; }
.slide.active .ac-image-box { opacity: 1; transform: translateX(0); transition-delay: 0.2s; }
.slide .ac-timeline-node { opacity: 0; transform: translateY(-20px); transition: all 0.4s ease; }
.slide.active .ac-timeline-node { opacity: 1; transform: translateY(0); }
.slide .ac-kpi-card { opacity: 0; transform: translateY(20px); transition: all 0.4s ease; }
.slide.active .ac-kpi-card { opacity: 1; transform: translateY(0); }
.slide .aa-main-item { opacity: 0; transform: translateX(-20px); transition: all 0.4s ease; }
.slide.active .aa-main-item { opacity: 1; transform: translateX(0); }
.slide .aa-detail-card { opacity: 0; transform: translateY(20px); transition: all 0.4s ease; }
.slide.active .aa-detail-card { opacity: 1; transform: translateY(0); }

.slide .tfc-node { opacity: 0; transform: translateY(20px); transition: all 0.4s ease; }
.slide.active .tfc-node { opacity: 1; transform: translateY(0); }
.slide .tfc-callout-box { opacity: 0; transform: translateY(15px); transition: all 0.5s ease; }
.slide.active .tfc-callout-box { opacity: 1; transform: translateY(0); transition-delay: 0.8s; }

.slide.has-bg { background-size: cover; background-position: right center; background-repeat: no-repeat; }
.slide.has-bg::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to right, rgba(247,248,250,1) 0%, rgba(247,248,250,0.85) 45%, rgba(247,248,250,0) 100%); z-index: 1; }
.slide.has-bg .content-wrapper { position: relative; color: var(--texto); }

.content-wrapper { padding: 80px 80px 50px; height: 100%; display: flex; flex-direction: column; max-width: 1600px; margin: 0 auto; width: 100%; }

.global-title { margin-bottom: 30px; position: relative; z-index: 2; padding-right: 360px; max-width: calc(100% - 320px); }
.global-title h2 { font-size: 3.2rem; margin-bottom: 10px; color: var(--marino); font-weight: 800; line-height: 1.2; text-transform: uppercase; }
.global-subtitle { font-size: 1.5rem; color: var(--gris); font-weight: 400; margin-bottom: 25px; }
.global-title::after { content: ''; display: block; width: 60px; height: 5px; background: var(--rojo); margin-top: 20px; }

.content-wrapper > * { position: relative; z-index: 2; }
h1, h2, h3 { font-family: var(--font-serif); }

.slide-header-group { max-width: calc(100% - 350px); padding-right: 30px; margin-bottom: 25px; position: relative; z-index: 2; }
.slide-title { font-size: 2.8rem; margin-bottom: 0.5rem; color: var(--marino); position: relative; display: block; line-height: 1.2; font-family: var(--font-serif); font-weight: 800; text-transform: uppercase; }
.slide.has-bg .slide-title { color: var(--marino); }
.slide-title::after { content:''; position: absolute; left: 0; bottom: -8px; width: 60px; height: 4px; background: var(--rojo); }
.slide-subtitle { font-family: var(--font-sans); font-size: 1.35rem; color: var(--gris); font-weight: 400; margin-top: 18px; margin-bottom: 10px; line-height: 1.5; }
.slide.has-bg .slide-subtitle { color: rgba(255,255,255,0.8); }

/* 1. Portada */
.portada-wrapper { max-width: 100%; margin: 0; padding-left: 100px; justify-content: center; background: transparent; position: relative; }
.slide[data-template="portada"]::after { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 16px; background: var(--rojo); z-index: 10; }
.portada-logos { position: absolute; top: 40px; left: 100px; display: flex; gap: 40px; align-items: center; mix-blend-mode: multiply; }
.portada-logos img { height: 90px; object-fit: contain; }
.portada-content { position: relative; z-index: 2; max-width: 900px; }
.portada-wrapper .logo-placeholder { font-size: 1.2rem; text-transform: uppercase; letter-spacing: 3px; color: var(--rojo); margin-bottom: 2rem; font-weight: 700; }
.portada-title { font-size: 5.5rem; line-height: 1.1; margin-bottom: 1.5rem; color: var(--marino); }
.portada-body { font-size: 1.8rem; line-height: 1.6; color: var(--texto); border-left: 6px solid var(--azul); padding-left: 1.5rem; font-weight: 500; }

/* 2. Quienes Somos (High Impact Split) */
.qs-split-wrapper { max-width: 100%; margin: 0; padding-left: 100px; padding-right: 150px; display: flex; flex-direction: row; gap: 80px; align-items: stretch; padding-top: 10px; padding-bottom: 20px; height: 100%; }
.qs-left-panel { flex: 0 0 35%; max-width: 750px; background: linear-gradient(135deg, var(--marino) 0%, #0B1D3A 100%); border-radius: 24px; padding: 80px 60px; color: var(--blanco); display: flex; flex-direction: column; justify-content: center; gap: 50px; box-shadow: var(--shadow-xl); position: relative; overflow: hidden; }
.qs-left-panel::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 10px; background: var(--rojo); }
.qs-main-title { font-size: 4.5rem; color: var(--blanco); font-weight: 700; line-height: 1.1; margin: 0; }
.qs-purpose-block { border-top: 1px solid rgba(255,255,255,0.15); padding-top: 50px; }
.qs-purpose-heading { font-size: 1.4rem; color: var(--azul); margin-bottom: 20px; text-transform: uppercase; letter-spacing: 1.5px; font-family: var(--font-sans); font-weight: 700; }
.qs-purpose-text { font-size: 1.8rem; line-height: 1.5; font-weight: 300; font-family: var(--font-serif); margin: 0; }
.qs-right-panel { flex: 1; display: flex; align-items: center; width: 100%; }
.qs-cards-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; width: 100%; align-content: center; }
.qs-card { background: var(--blanco); padding: 40px; border-radius: 20px; box-shadow: 0 4px 20px rgba(0,0,0,0.06); border-left: 8px solid var(--rojo); transition: transform 0.3s ease; display: flex; flex-direction: column; justify-content: center; }
.qs-card:hover { transform: translateX(8px); box-shadow: var(--shadow-lg); }
.qs-card-wide { grid-column: span 2; border-left: 8px solid var(--azul); }
.qs-heading { font-size: 1.4rem; color: var(--marino); margin-bottom: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; }
.qs-text { font-size: 1.25rem; line-height: 1.6; color: var(--texto); margin: 0; }

/* 3. Stats Experiencia (Slide 3) */
.exp-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 100px; padding-right: 150px; }
.exp-blocks-container { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-top: 30px; flex: 1; }
.exp-block { background: var(--blanco); padding: 40px; border-radius: 20px; box-shadow: var(--shadow-md); display: flex; flex-direction: column; gap: 30px; border-top: 6px solid var(--rojo); }
.exp-block:nth-child(2) { border-top: 6px solid var(--azul); }
.exp-block-header { font-size: 1.6rem; color: var(--marino); font-weight: 800; text-align: center; text-transform: uppercase; letter-spacing: 1px; padding-bottom: 20px; border-bottom: 1px solid rgba(0,0,0,0.08); }
.exp-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; flex: 1; }
.exp-stat-card { background: var(--fondo); padding: 30px 20px; border-radius: 12px; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; transition: all 0.3s ease; border: 1px solid transparent; }
.exp-stat-card:hover { transform: translateY(-5px); background: var(--marino); color: var(--blanco); box-shadow: var(--shadow-lg); }
.exp-stat-label { font-size: 1.4rem; font-weight: 700; min-height: 60px; display: flex; align-items: center; justify-content: center; line-height: 1.3; color: inherit; margin: 0; }
.exp-stat-number { font-size: 6rem; font-weight: 800; margin: 20px 0; color: var(--marino); line-height: 1; transition: color 0.3s ease; }
.exp-stat-card:hover .exp-stat-number { color: var(--blanco); }
.exp-stat-sub { font-size: 1.25rem; color: var(--gris); line-height: 1.4; transition: color 0.3s ease; margin: 0; }
.exp-stat-card:hover .exp-stat-sub { color: rgba(255,255,255,0.8); }
.exp-footer { display: flex; gap: 50px; align-items: center; margin-top: 40px; background: var(--blanco); padding: 40px 50px; border-radius: 16px; box-shadow: var(--shadow-sm); border-left: 8px solid var(--marino); }
.exp-cap-card { text-align: center; flex: 0 0 260px; padding-right: 40px; border-right: 2px solid rgba(0,0,0,0.1); }
.exp-cap-title { font-weight: 700; color: var(--marino); margin-bottom: 15px; font-size: 1.5rem; text-transform: uppercase; letter-spacing: 0.5px; }
.exp-cap-number { font-size: 5.5rem; font-weight: 800; color: var(--rojo); line-height: 1; margin-bottom: 10px; }
.exp-cap-sub { font-size: 1.3rem; color: var(--gris); margin: 0; }
.exp-footer-text { flex: 1; display: flex; flex-direction: column; gap: 20px; }
.exp-note { font-size: 1.2rem; color: var(--gris); line-height: 1.5; margin: 0; }
.exp-highlight { font-size: 2.2rem; color: var(--marino); font-weight: 300; line-height: 1.4; margin: 0; }

/* 4. Diagrama Hub Operación (Slide 4) */
.hub-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 100px; padding-right: 150px; height: 100%; }
.hub-stage { position: relative; flex: 1; width: 100%; min-height: 480px; display: flex; align-items: center; justify-content: center; margin: 10px 0; }

.hub-orbit-ring { position: absolute; width: 700px; height: 700px; border-radius: 50%; border: 2px dashed rgba(31,59,102,0.15); pointer-events: none; }
.hub-orbit-ring-outer { width: 950px; height: 950px; border: 1.5px solid rgba(0,176,240,0.12); }

.hub-center { position: relative; z-index: 10; width: 380px; height: 380px; border-radius: 50%; background: linear-gradient(145deg, #FFFFFF 0%, #F4F7FB 100%); box-shadow: 0 25px 60px rgba(31,59,102,0.15), inset 0 2px 6px rgba(255,255,255,0.9); border: 8px solid #FFFFFF; display: flex; align-items: center; justify-content: center; text-align: center; padding: 35px; transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); cursor: default; }
.hub-center:hover { transform: scale(1.05); }
.hub-center-glow { position: absolute; inset: -20px; border-radius: 50%; background: radial-gradient(circle, rgba(0,176,240,0.12) 0%, transparent 70%); z-index: -1; }
.hub-center-content { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.hub-center-content h3 { font-size: 2.8rem; font-family: var(--font-serif); font-weight: 800; color: var(--marino); line-height: 1.15; margin: 0; }

.hub-nodes-container { position: absolute; inset: 0; pointer-events: none; }

.hub-node { pointer-events: auto; position: absolute; display: flex; align-items: center; gap: 22px; padding: 26px 46px; border-radius: 70px; box-shadow: 0 15px 35px rgba(0,0,0,0.15); cursor: pointer; transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1); user-select: none; z-index: 15; }
.hub-node:hover { transform: scale(1.08) translateY(-4px); box-shadow: 0 22px 45px rgba(0,0,0,0.25); }

.hub-node-rojo { background: linear-gradient(135deg, var(--rojo) 0%, #A00018 100%); color: var(--blanco); }
.hub-node-azul { background: linear-gradient(135deg, #00A8F3 0%, #0077B6 100%); color: var(--blanco); }
.hub-node-marino { background: linear-gradient(135deg, var(--marino) 0%, #0C1D38 100%); color: var(--blanco); }

.hub-node-icon { width: 58px; height: 58px; border-radius: 50%; background: rgba(255,255,255,0.22); display: flex; align-items: center; justify-content: center; font-size: 1.8rem; color: var(--blanco); flex-shrink: 0; backdrop-filter: blur(4px); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
.hub-node-title { font-size: 1.75rem; font-weight: 800; letter-spacing: 0.5px; white-space: nowrap; font-family: var(--font-sans); }

/* Positioning for 5 orbiting nodes */
.hub-node-5 { top: 1%; left: 50%; transform: translateX(-50%); }
.hub-node-5:hover { transform: translateX(-50%) scale(1.08) translateY(-4px); }
.hub-node-1 { top: 24%; left: 3%; }
.hub-node-2 { top: 24%; right: 3%; }
.hub-node-3 { bottom: 4%; left: 5%; }
.hub-node-4 { bottom: 4%; right: 5%; }

/* Footer */
.hub-footer { display: flex; align-items: center; justify-content: center; text-align: center; background: var(--blanco); padding: 22px 45px; border-radius: 14px; box-shadow: var(--shadow-sm); border-left: 8px solid var(--rojo); border-right: 8px solid var(--rojo); margin-top: 10px; margin-bottom: 10px; width: 100%; }
.hub-footer-text { font-size: 1.45rem; color: var(--marino); font-weight: 600; line-height: 1.4; margin: 0; font-family: var(--font-sans); text-align: center; }

/* 5. Modelo Técnico (Slide 5) */
.modelo-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 100px; padding-right: 150px; height: 100%; }
.modelo-stage { position: relative; flex: 1; width: 100%; display: flex; flex-direction: column; justify-content: center; margin-top: 25px; margin-bottom: 25px; }

.modelo-columns-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 50px; position: relative; z-index: 5; }
.modelo-col { display: flex; flex-direction: column; align-items: center; gap: 25px; position: relative; z-index: 10; }

.modelo-flow-track { position: absolute; top: 15px; left: -10px; right: -50px; height: 110px; display: flex; align-items: center; pointer-events: none; z-index: 1; }
.modelo-flow-arrow-body { flex: 1; height: 110px; background: linear-gradient(90deg, rgba(201,0,32,0.06) 0%, rgba(201,0,32,0.16) 100%); border-radius: 20px 0 0 20px; }
.modelo-flow-arrow-head { width: 0; height: 0; border-top: 75px solid transparent; border-bottom: 75px solid transparent; border-left: 65px solid rgba(201,0,32,0.16); }

/* Pin Marker */
.modelo-pin { display: flex; flex-direction: column; align-items: center; position: relative; z-index: 10; cursor: pointer; transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }
.modelo-pin:hover { transform: translateY(-8px) scale(1.06); }
.modelo-pin-outer { width: 140px; height: 140px; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 18px 40px rgba(0,0,0,0.16); border: 8px solid var(--fondo); transition: all 0.3s ease; }

.modelo-col-rojo .modelo-pin-outer { background: linear-gradient(135deg, var(--rojo) 0%, #9B0018 100%); }
.modelo-col-azul .modelo-pin-outer { background: linear-gradient(135deg, #00A8F3 0%, #0077B6 100%); }
.modelo-col-marino .modelo-pin-outer { background: linear-gradient(135deg, var(--marino) 0%, #0B1D3A 100%); }

.modelo-pin-circle { width: 96px; height: 96px; border-radius: 50%; background: var(--blanco); display: flex; align-items: center; justify-content: center; font-size: 2.7rem; box-shadow: inset 0 2px 6px rgba(0,0,0,0.1); }
.modelo-col-rojo .modelo-pin-circle i { color: var(--rojo); }
.modelo-col-azul .modelo-pin-circle i { color: #00A8F3; }
.modelo-col-marino .modelo-pin-circle i { color: var(--marino); }

.modelo-pin-pointer { width: 0; height: 0; border-left: 16px solid transparent; border-right: 16px solid transparent; margin-top: -6px; }
.modelo-col-rojo .modelo-pin-pointer { border-top: 20px solid #9B0018; }
.modelo-col-azul .modelo-pin-pointer { border-top: 20px solid #0077B6; }
.modelo-col-marino .modelo-pin-pointer { border-top: 20px solid #0B1D3A; }

/* Card */
.modelo-card { background: var(--blanco); border-radius: 20px; padding: 35px 30px; box-shadow: 0 10px 30px rgba(0,0,0,0.06); width: 100%; display: flex; flex-direction: column; align-items: center; text-align: center; border-top: 6px solid var(--rojo); transition: transform 0.3s ease, box-shadow 0.3s ease; flex: 1; }
.modelo-card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(0,0,0,0.12); }
.modelo-col-rojo .modelo-card { border-top-color: var(--rojo); }
.modelo-col-azul .modelo-card { border-top-color: var(--azul); }
.modelo-col-marino .modelo-card { border-top-color: var(--marino); }

.modelo-step-badge { font-size: 0.95rem; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; padding: 6px 18px; border-radius: 20px; margin-bottom: 12px; font-family: var(--font-sans); }
.modelo-col-rojo .modelo-step-badge { background: rgba(201,0,32,0.1); color: var(--rojo); }
.modelo-col-azul .modelo-step-badge { background: rgba(0,176,240,0.1); color: #0077B6; }
.modelo-col-marino .modelo-step-badge { background: rgba(31,59,102,0.1); color: var(--marino); }

.modelo-phase-title { font-size: 1.65rem; font-weight: 800; color: var(--marino); text-transform: uppercase; margin-bottom: 25px; line-height: 1.25; font-family: var(--font-serif); min-height: 55px; display: flex; align-items: center; justify-content: center; }

.modelo-items-list { list-style: none; display: flex; flex-direction: column; gap: 16px; width: 100%; text-align: left; margin: 0; padding: 0; }
.modelo-items-list li { display: flex; align-items: center; gap: 14px; background: var(--fondo); padding: 18px 22px; border-radius: 14px; font-size: 1.3rem; font-weight: 600; color: var(--texto); line-height: 1.35; transition: transform 0.2s, background 0.2s; }
.modelo-items-list li:hover { transform: translateX(6px); background: #EDF2F7; }

.modelo-check-icon { font-size: 1.4rem; flex-shrink: 0; }
.modelo-col-rojo .modelo-check-icon { color: var(--rojo); }
.modelo-col-azul .modelo-check-icon { color: #00A8F3; }
.modelo-col-marino .modelo-check-icon { color: var(--marino); }

/* 6. Mecanismos NEC (4 Pilares Estratégicos) */
.nec-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; }
.nec-pillars-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; flex: 1; margin-top: 15px; margin-bottom: 25px; align-items: stretch; }

.nec-pillar-col { background: var(--blanco); border-radius: 20px; padding: 26px 20px; box-shadow: 0 10px 30px rgba(0,0,0,0.06); display: flex; flex-direction: column; gap: 18px; border-top: 6px solid var(--marino); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.nec-pillar-col:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0,0,0,0.12); }

.nec-pillar-marino { border-top-color: var(--marino); }
.nec-pillar-rojo { border-top-color: var(--rojo); }
.nec-pillar-azul { border-top-color: var(--azul); }
.nec-pillar-marino-oscuro { border-top-color: #0B1D3A; }

/* Pillar Header */
.nec-pillar-header { display: flex; align-items: center; gap: 14px; padding-bottom: 16px; border-bottom: 2px solid rgba(0,0,0,0.06); }
.nec-pillar-icon { width: 54px; height: 54px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; color: var(--blanco); flex-shrink: 0; box-shadow: 0 6px 15px rgba(0,0,0,0.12); }

.nec-pillar-marino .nec-pillar-icon { background: linear-gradient(135deg, var(--marino) 0%, #0B1D3A 100%); }
.nec-pillar-rojo .nec-pillar-icon { background: linear-gradient(135deg, var(--rojo) 0%, #9B0018 100%); }
.nec-pillar-azul .nec-pillar-icon { background: linear-gradient(135deg, #00A8F3 0%, #0077B6 100%); }
.nec-pillar-marino-oscuro .nec-pillar-icon { background: linear-gradient(135deg, #0B1D3A 0%, #050E1C 100%); }

.nec-pillar-title-group { display: flex; flex-direction: column; gap: 4px; }
.nec-pillar-badge { font-size: 1.0rem; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; color: var(--gris); font-family: var(--font-sans); }
.nec-pillar-title { font-size: 1.45rem; font-weight: 800; color: var(--marino); text-transform: uppercase; font-family: var(--font-serif); line-height: 1.15; margin: 0; }

/* Mechanism Cards */
.nec-pillar-cards { display: flex; flex-direction: column; gap: 14px; flex: 1; }
.nec-mech-card { background: var(--fondo); border-radius: 16px; padding: 22px 18px; display: flex; flex-direction: column; justify-content: center; gap: 10px; transition: all 0.25s ease; border: 1.5px solid transparent; flex: 1; }
.nec-mech-card:hover { background: var(--blanco); border-color: rgba(0,0,0,0.1); transform: translateY(-3px); box-shadow: 0 10px 25px rgba(0,0,0,0.08); }

.nec-mech-top { display: flex; align-items: center; gap: 10px; }
.nec-mech-num { font-size: 1.05rem; font-weight: 800; padding: 4px 10px; border-radius: 8px; background: rgba(0,0,0,0.08); color: var(--marino); font-family: var(--font-sans); }
.nec-mech-icon { font-size: 1.4rem; color: var(--rojo); width: 26px; text-align: center; flex-shrink: 0; }

.nec-pillar-azul .nec-mech-icon { color: #0088CC; }
.nec-pillar-marino .nec-mech-icon { color: var(--marino); }
.nec-pillar-marino-oscuro .nec-mech-icon { color: #0B1D3A; }

.nec-mech-title { font-size: 1.4rem; font-weight: 800; color: var(--marino); margin: 0; line-height: 1.2; font-family: var(--font-sans); }
.nec-mech-text { font-size: 1.2rem; line-height: 1.5; color: var(--texto); margin: 0; font-weight: 500; }

/* 7. Reto Institucional (Slide 7) */
.reto-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 100px; padding-right: 150px; height: 100%; }
.reto-main-stage { display: flex; gap: 35px; flex: 1; align-items: stretch; margin-top: 10px; margin-bottom: 25px; width: 100%; }

.reto-hero-panel { flex: 0 0 32%; max-width: 440px; border-radius: 20px; overflow: hidden; box-shadow: 0 12px 35px rgba(0,0,0,0.08); display: flex; flex-direction: column; background: var(--blanco); border-top: 6px solid var(--marino); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.reto-hero-panel:hover { transform: translateY(-4px); box-shadow: 0 20px 45px rgba(0,0,0,0.12); }
.reto-hero-image { flex: 1; min-height: 240px; background-size: cover; background-position: 72% 18%; position: relative; }
.reto-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(31,59,102,0.05) 0%, rgba(11,29,58,0.65) 100%); }
.reto-hero-footer { background: linear-gradient(135deg, var(--marino) 0%, #0B1D3A 100%); color: var(--blanco); padding: 28px 24px; display: flex; flex-direction: column; gap: 8px; }
.reto-hero-tag { font-size: 0.9rem; font-weight: 800; text-transform: uppercase; letter-spacing: 2px; color: var(--azul); font-family: var(--font-sans); }
.reto-hero-title { font-size: 1.8rem; font-weight: 800; color: var(--blanco); margin: 0; font-family: var(--font-serif); }
.reto-hero-desc { font-size: 1.22rem; line-height: 1.5; color: rgba(255,255,255,0.88); margin: 0; font-family: var(--font-sans); font-weight: 400; }

.reto-right-panel { flex: 1; display: flex; flex-direction: column; gap: 20px; justify-content: space-between; }
.reto-cards-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; flex: 1; }

.reto-card { background: var(--blanco); border-radius: 18px; padding: 32px 28px; box-shadow: 0 8px 25px rgba(0,0,0,0.06); display: flex; flex-direction: column; justify-content: center; gap: 14px; border-left: 6px solid var(--rojo); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.reto-card:hover { transform: translateY(-4px) translateX(4px); box-shadow: 0 16px 35px rgba(0,0,0,0.1); }
.reto-card-rojo { border-left-color: var(--rojo); }
.reto-card-azul { border-left-color: var(--azul); }
.reto-card-marino { border-left-color: var(--marino); }

.reto-card-header { display: flex; align-items: center; gap: 12px; }
.reto-card-num { font-size: 1.15rem; font-weight: 800; padding: 5px 12px; border-radius: 8px; background: rgba(0,0,0,0.06); color: var(--marino); font-family: var(--font-sans); }
.reto-card-icon { font-size: 1.65rem; color: var(--rojo); width: 32px; text-align: center; flex-shrink: 0; }
.reto-card-azul .reto-card-icon { color: #0088CC; }
.reto-card-marino .reto-card-icon { color: var(--marino); }

.reto-card-title { font-size: 1.55rem; font-weight: 800; color: var(--marino); margin: 0; font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.5px; }
.reto-card-text { font-size: 1.32rem; line-height: 1.55; color: var(--texto); margin: 0; font-weight: 500; }

.reto-banner { background: linear-gradient(135deg, var(--rojo) 0%, #9B0018 100%); color: var(--blanco); border-radius: 16px; padding: 24px 35px; display: flex; align-items: center; gap: 24px; box-shadow: 0 10px 25px rgba(201,0,32,0.22); transition: transform 0.3s ease; }
.reto-banner:hover { transform: translateY(-3px); box-shadow: 0 15px 30px rgba(201,0,32,0.3); }
.reto-banner-icon { font-size: 2.5rem; color: var(--blanco); flex-shrink: 0; }
.reto-banner-text { font-size: 1.45rem; font-weight: 700; color: var(--blanco); line-height: 1.45; margin: 0; font-family: var(--font-sans); }

/* 8. Intervenciones Bicameralidad (Slide 8) */
.bicam-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; }
.bicam-stage { display: grid; grid-template-columns: 1fr 1fr; gap: 35px; flex: 1; margin-top: 10px; margin-bottom: 18px; align-items: stretch; }

.bicam-block { background: var(--blanco); border-radius: 24px; padding: 32px 32px 28px; box-shadow: 0 12px 35px rgba(0,0,0,0.06); display: flex; flex-direction: column; gap: 18px; border-top: 6px solid var(--marino); transition: transform 0.3s ease, box-shadow 0.3s ease; position: relative; }
.bicam-block:hover { transform: translateY(-4px); box-shadow: 0 20px 45px rgba(0,0,0,0.1); }
.bicam-block-left { border-top-color: var(--marino); }
.bicam-block-right { border-top-color: var(--rojo); }

/* Block Header */
.bicam-block-header { display: flex; align-items: center; gap: 20px; padding-bottom: 18px; border-bottom: 2px solid rgba(0,0,0,0.06); }
.bicam-header-icon { width: 70px; height: 70px; border-radius: 18px; display: flex; align-items: center; justify-content: center; font-size: 2.2rem; color: var(--blanco); flex-shrink: 0; box-shadow: 0 8px 20px rgba(0,0,0,0.12); }
.bicam-icon-navy { background: linear-gradient(135deg, var(--marino) 0%, #0B1D3A 100%); }
.bicam-icon-red { background: linear-gradient(135deg, var(--rojo) 0%, #9B0018 100%); }

.bicam-header-titles { display: flex; flex-direction: column; gap: 2px; }
.bicam-count-line { display: flex; align-items: baseline; gap: 10px; }
.bicam-count-num { font-size: 3.0rem; font-weight: 900; font-family: var(--font-serif); color: var(--marino); line-height: 1; }
.bicam-count-red { color: var(--rojo); }
.bicam-count-label { font-size: 2.0rem; font-weight: 900; text-transform: uppercase; letter-spacing: 1px; color: var(--marino); font-family: var(--font-serif); }
.bicam-header-subtitle { font-size: 1.35rem; font-weight: 600; color: var(--gris); margin: 0; font-family: var(--font-sans); }

/* Items List */
.bicam-items-list { display: flex; flex-direction: column; gap: 12px; flex: 1; justify-content: space-evenly; }
.bicam-item { display: flex; align-items: center; gap: 16px; background: var(--fondo); padding: 14px 20px; border-radius: 14px; transition: transform 0.25s ease, background 0.25s ease; border: 1.5px solid transparent; }
.bicam-item:hover { transform: translateX(6px); background: #EDF2F7; border-color: rgba(0,0,0,0.08); }

.bicam-item-right { padding: 16px 20px; }

.bicam-num { font-size: 1.2rem; font-weight: 800; padding: 6px 14px; border-radius: 8px; font-family: var(--font-sans); flex-shrink: 0; }
.bicam-num-navy { background: var(--marino); color: var(--blanco); }
.bicam-num-red { background: var(--rojo); color: var(--blanco); }

.bicam-text-group { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bicam-name { font-size: 1.4rem; font-weight: 800; font-family: var(--font-sans); }
.bicam-name-navy { color: var(--marino); }
.bicam-name-red { color: var(--rojo); }
.bicam-desc { font-size: 1.35rem; font-weight: 600; color: var(--texto); }

/* Exclusion Box */
.bicam-exclusion-box { background: rgba(201,0,32,0.06); border-radius: 16px; padding: 20px 22px; border-left: 5px solid var(--rojo); margin-top: auto; }
.bicam-exclusion-content { display: flex; align-items: flex-start; gap: 16px; }
.bicam-exclusion-icon { font-size: 1.8rem; color: var(--rojo); flex-shrink: 0; margin-top: 3px; }
.bicam-exclusion-texts { display: flex; flex-direction: column; gap: 8px; }
.bicam-exclusion-text { font-size: 1.25rem; line-height: 1.5; color: var(--texto); margin: 0; font-weight: 500; }
.bicam-exclusion-badge { font-size: 1.1rem; font-weight: 800; color: var(--rojo); font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.5px; }

/* Bottom Disclaimer */
.bicam-disclaimer-banner { background: linear-gradient(135deg, #8B0014 0%, #68000E 100%); color: var(--blanco); border-radius: 14px; padding: 18px 28px; display: flex; align-items: center; gap: 18px; box-shadow: 0 6px 20px rgba(0,0,0,0.12); margin-top: 5px; }
.bicam-disclaimer-icon { font-size: 1.8rem; color: #FFAA00; flex-shrink: 0; }
.bicam-disclaimer-text { font-size: 1.32rem; font-weight: 600; color: var(--blanco); line-height: 1.4; margin: 0; font-family: var(--font-sans); }

/* 9. Resultados Concretos (Slide 9) */
.res-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; }
.res-main-stage { display: flex; flex-direction: column; gap: 20px; flex: 1; margin-top: 5px; margin-bottom: 15px; width: 100%; }

.res-kpis-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; width: 100%; }
.res-kpi-card { background: var(--blanco); border-radius: 18px; padding: 20px 18px; box-shadow: 0 8px 25px rgba(0,0,0,0.06); display: flex; flex-direction: column; align-items: center; text-align: center; border-top: 5px solid var(--marino); transition: transform 0.3s ease; }
.res-kpi-card:hover { transform: translateY(-4px); }
.res-kpi-rojo { border-top-color: var(--rojo); }
.res-kpi-rojo .res-kpi-val { color: var(--rojo); }
.res-kpi-marino { border-top-color: var(--marino); }
.res-kpi-marino .res-kpi-val { color: var(--marino); }
.res-kpi-azul { border-top-color: var(--azul); }
.res-kpi-azul .res-kpi-val { color: #0088CC; }

.res-kpi-val { font-size: 3.2rem; font-weight: 900; font-family: var(--font-serif); line-height: 1; margin-bottom: 6px; }
.res-kpi-lbl { font-size: 1.15rem; font-weight: 700; color: var(--texto); line-height: 1.3; font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.5px; }

.res-content-split { display: flex; gap: 30px; flex: 1; align-items: stretch; }
.res-photo-panel { flex: 0 0 35%; max-width: 480px; border-radius: 20px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.08); display: flex; border-top: 5px solid var(--marino); }

.res-mosaic-grid { display: flex; flex-direction: column; gap: 10px; width: 100%; height: 100%; padding: 10px; background: var(--blanco); }
.res-mosaic-top { flex: 1.15; min-height: 180px; background-size: cover; position: relative; border-radius: 14px; overflow: hidden; display: flex; align-items: flex-end; padding: 14px; }
.res-mosaic-bottom { display: flex; gap: 10px; flex: 0.85; min-height: 130px; }
.res-mosaic-sub { flex: 1; background-size: cover; position: relative; border-radius: 14px; overflow: hidden; display: flex; align-items: flex-end; padding: 12px; }
.res-mosaic-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 25%, rgba(11,29,58,0.85) 100%); }
.res-mosaic-caption { position: relative; z-index: 2; font-size: 0.95rem; font-weight: 800; color: var(--blanco); font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.5px; display: flex; align-items: center; gap: 6px; text-shadow: 0 2px 4px rgba(0,0,0,0.5); }

.res-deliveries-list { flex: 1; display: flex; flex-direction: column; gap: 14px; justify-content: space-evenly; }
.res-delivery-row { background: var(--blanco); border-radius: 18px; padding: 22px 24px; box-shadow: 0 6px 20px rgba(0,0,0,0.05); display: flex; align-items: center; gap: 20px; transition: transform 0.25s ease, box-shadow 0.25s ease; border-left: 5px solid var(--marino); }
.res-delivery-row:hover { transform: translateX(6px); box-shadow: 0 12px 28px rgba(0,0,0,0.09); border-left-color: var(--rojo); }

.res-deliv-badge { background: linear-gradient(135deg, var(--marino) 0%, #0B1D3A 100%); color: var(--blanco); padding: 16px 20px; border-radius: 12px; font-size: 1.2rem; font-weight: 800; font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.5px; flex: 0 0 320px; text-align: center; line-height: 1.25; display: flex; align-items: center; justify-content: center; }
.res-deliv-arrow { font-size: 1.6rem; color: var(--rojo); flex-shrink: 0; }
.res-deliv-desc { flex: 1; font-size: 1.32rem; line-height: 1.5; color: var(--texto); font-weight: 500; }

/* 10. Tres Respuestas de Infraestructura (Slide 10) */
.resp-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; }
.resp-stage-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; flex: 1; margin-top: 5px; margin-bottom: 20px; align-items: stretch; }

.resp-card { background: var(--blanco); border-radius: 22px; overflow: hidden; box-shadow: 0 12px 35px rgba(0,0,0,0.06); display: flex; flex-direction: column; border-top: 6px solid var(--marino); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.resp-card:hover { transform: translateY(-5px); box-shadow: 0 20px 45px rgba(0,0,0,0.12); }
.resp-card-rojo { border-top-color: var(--rojo); }
.resp-card-marino { border-top-color: var(--marino); }
.resp-card-azul { border-top-color: var(--azul); }

.resp-card-img-block { height: 350px; background-size: cover; background-position: center; position: relative; display: flex; align-items: flex-end; }
.resp-card-img-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.7) 100%); }

.resp-card-title-bar { position: relative; z-index: 2; width: 100%; background: rgba(201,0,32,0.92); backdrop-filter: blur(6px); padding: 14px 18px; color: var(--blanco); text-align: center; }
.resp-card-marino .resp-card-title-bar { background: rgba(31,59,102,0.94); }
.resp-card-azul .resp-card-title-bar { background: rgba(0,119,182,0.94); }
.resp-card-title-bar h3 { font-size: 1.25rem; font-weight: 800; color: var(--blanco); text-transform: uppercase; margin: 0; letter-spacing: 0.5px; font-family: var(--font-sans); line-height: 1.2; }

.resp-card-body { padding: 28px 24px; display: flex; flex-direction: column; gap: 20px; flex: 1; justify-content: space-between; }
.resp-card-concept { font-size: 1.35rem; font-weight: 600; line-height: 1.5; color: var(--marino); min-height: 52px; margin: 0; font-family: var(--font-sans); }

.resp-card-highlight { font-size: 1.65rem; font-weight: 900; font-family: var(--font-sans); border-bottom: 2px solid rgba(0,0,0,0.06); padding-bottom: 12px; }
.resp-card-rojo .resp-card-highlight { color: var(--rojo); }
.resp-card-marino .resp-card-highlight { color: var(--marino); }
.resp-card-azul .resp-card-highlight { color: #0088CC; }

.resp-card-scope { display: flex; align-items: center; gap: 12px; font-size: 1.35rem; font-weight: 700; color: var(--texto); }
.resp-card-scope i { color: var(--rojo); font-size: 1.5rem; }
.resp-card-marino .resp-card-scope i { color: var(--marino); }
.resp-card-azul .resp-card-scope i { color: #0088CC; }

/* Elegant Timeline Track */
.resp-timeline-track { background: var(--fondo); border-radius: 16px; padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1.5px solid rgba(0,0,0,0.05); }
.resp-timeline-point { display: flex; align-items: center; gap: 12px; }
.resp-point-icon { width: 42px; height: 42px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; color: var(--blanco); flex-shrink: 0; box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
.resp-point-start .resp-point-icon { background: linear-gradient(135deg, var(--marino) 0%, #0B1D3A 100%); }
.resp-point-end .resp-point-icon { background: linear-gradient(135deg, var(--rojo) 0%, #9B0018 100%); }

.resp-point-info { display: flex; flex-direction: column; gap: 2px; }
.resp-point-tag { font-size: 0.8rem; font-weight: 800; letter-spacing: 1px; color: var(--gris); font-family: var(--font-sans); text-transform: uppercase; }
.resp-point-date { font-size: 1.25rem; font-weight: 800; color: var(--marino); font-family: var(--font-sans); }

.resp-timeline-connector { flex: 1; display: flex; align-items: center; justify-content: center; position: relative; margin: 0 6px; }
.resp-connector-line { flex: 1; height: 3px; background: linear-gradient(90deg, var(--marino) 0%, var(--rojo) 100%); border-radius: 2px; opacity: 0.35; }
.resp-connector-arrow { font-size: 0.9rem; color: var(--rojo); margin-left: 2px; opacity: 0.7; }

/* 11. Timeline Fases (Slide 11 - Línea de Tiempo Palacio) */
.tf-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; }
.tf-main-stage { display: flex; flex-direction: column; flex: 1; margin-top: 10px; margin-bottom: 25px; width: 100%; }

.tf-phases-container { display: flex; gap: 28px; flex: 1; width: 100%; align-items: stretch; }
.tf-phase-column { display: flex; flex-direction: column; background: var(--blanco); border-radius: 24px; padding: 24px 22px; box-shadow: 0 10px 30px rgba(0,0,0,0.06); position: relative; justify-content: space-between; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.tf-phase-column:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,0.1); }

.tf-phase-marino { flex: 0 0 31%; border-top: 6px solid var(--marino); }
.tf-phase-rojo { flex: 1; border-top: 6px solid var(--rojo); }

.tf-phase-header { padding: 12px 18px; border-radius: 12px; text-align: center; margin-bottom: 20px; }
.tf-header-marino { background: rgba(31,59,102,0.08); }
.tf-header-marino h3 { font-size: 1.35rem; font-weight: 900; letter-spacing: 1px; text-transform: uppercase; margin: 0; font-family: var(--font-sans); color: var(--marino); }

.tf-header-rojo { background: rgba(201,0,32,0.08); }
.tf-header-rojo h3 { font-size: 1.35rem; font-weight: 900; letter-spacing: 1px; text-transform: uppercase; margin: 0; font-family: var(--font-sans); color: var(--rojo); }

.tf-track-container { position: relative; flex: 1; display: flex; flex-direction: column; justify-content: center; margin: 15px 0; }
.tf-track-line { position: absolute; top: 78px; left: 25px; right: 25px; height: 5px; z-index: 1; border-radius: 3px; }
.tf-line-marino { background: linear-gradient(90deg, #1F3B66 0%, #0088CC 100%); }
.tf-line-rojo { background: linear-gradient(90deg, #C90020 0%, #FF5252 100%); }

.tf-milestones-row { display: flex; justify-content: space-between; align-items: flex-start; position: relative; z-index: 2; gap: 8px; width: 100%; }
.tf-milestone { display: flex; flex-direction: column; align-items: center; text-align: center; flex: 1; max-width: 220px; transition: transform 0.25s ease; }
.tf-milestone:hover { transform: translateY(-4px); }

.tf-date-tag { font-size: 1.15rem; font-weight: 900; font-family: var(--font-sans); margin-bottom: 12px; letter-spacing: 0.5px; }
.tf-date-marino { color: var(--marino); }
.tf-date-rojo { color: var(--rojo); }

.tf-node-circle { width: 66px; height: 66px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.55rem; color: var(--blanco); box-shadow: 0 6px 18px rgba(0,0,0,0.15); margin-bottom: 18px; border: 4px solid var(--blanco); flex-shrink: 0; }
.tf-circle-marino { background: linear-gradient(135deg, var(--marino) 0%, #0B1D3A 100%); }
.tf-circle-rojo { background: linear-gradient(135deg, var(--rojo) 0%, #9B0018 100%); }

.tf-desc-card { background: var(--fondo); border-radius: 14px; padding: 14px 12px; width: 100%; min-height: 95px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(0,0,0,0.05); }
.tf-desc-card p { font-size: 1.08rem; line-height: 1.45; color: var(--texto); margin: 0; font-weight: 500; font-family: var(--font-sans); }
.tf-desc-card p strong { font-weight: 800; color: var(--marino); }
.tf-phase-rojo .tf-desc-card p strong { color: #9B0018; }

.tf-phase-duration { padding: 14px 20px; border-radius: 14px; display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 1.4rem; font-weight: 900; font-family: var(--font-sans); margin-top: 15px; box-shadow: 0 4px 12px rgba(0,0,0,0.06); }
.tf-duration-marino { background: linear-gradient(135deg, rgba(31,59,102,0.1) 0%, rgba(31,59,102,0.18) 100%); color: var(--marino); border: 1.5px solid rgba(31,59,102,0.25); }
.tf-duration-rojo { background: linear-gradient(135deg, rgba(201,0,32,0.1) 0%, rgba(201,0,32,0.18) 100%); color: var(--rojo); border: 1.5px solid rgba(201,0,32,0.25); }

/* 12. Activo Showcase (Slide 12 - Data Center) */
.act-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; }
.act-main-stage { display: flex; flex-direction: column; gap: 16px; flex: 1; margin-top: 5px; margin-bottom: 20px; width: 100%; justify-content: space-between; }

.act-lead-card { background: var(--blanco); border-radius: 20px; padding: 20px 28px; box-shadow: 0 8px 25px rgba(0,0,0,0.06); display: flex; justify-content: space-between; align-items: center; gap: 30px; border-left: 6px solid var(--rojo); }
.act-lead-text { flex: 1; display: flex; flex-direction: column; gap: 6px; }
.act-lead-title { font-size: 1.85rem; font-weight: 900; color: var(--marino); margin: 0; font-family: var(--font-serif); letter-spacing: -0.5px; }
.act-lead-desc { font-size: 1.25rem; line-height: 1.5; color: var(--texto); margin: 0; font-weight: 500; font-family: var(--font-sans); }

.act-lead-metrics { display: flex; gap: 18px; align-items: center; flex-shrink: 0; }
.act-metric-box { background: var(--fondo); border-radius: 14px; padding: 12px 18px; display: flex; flex-direction: column; align-items: center; gap: 2px; border: 1.5px solid rgba(0,0,0,0.06); min-width: 150px; text-align: center; }
.act-metric-lbl { font-size: 0.82rem; font-weight: 800; text-transform: uppercase; color: var(--gris); letter-spacing: 0.5px; font-family: var(--font-sans); }
.act-metric-val { font-size: 1.6rem; font-weight: 900; font-family: var(--font-sans); }
.act-metric-monto .act-metric-val { color: var(--rojo); }
.act-metric-plazo .act-metric-val { color: var(--marino); }

.act-pipeline-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; margin: 2px 0; }
.act-pipe-step { flex: 1; background: var(--blanco); border-radius: 16px; padding: 14px 18px; display: flex; align-items: center; justify-content: center; gap: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1.5px solid rgba(0,0,0,0.06); transition: transform 0.25s ease, background 0.25s ease; border-top: 4px solid var(--marino); }
.act-pipe-step:hover { transform: translateY(-3px); border-top-color: var(--rojo); background: #FFFBFB; }
.act-pipe-icon { width: 38px; height: 38px; border-radius: 10px; background: rgba(201,0,32,0.08); color: var(--rojo); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; flex-shrink: 0; }
.act-pipe-text { font-size: 1.22rem; font-weight: 800; color: var(--marino); font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.5px; text-align: center; }
.act-pipe-arrow { color: var(--rojo); font-size: 1.5rem; flex-shrink: 0; opacity: 0.85; }

.act-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; flex: 1; min-height: 250px; align-items: stretch; }
.act-photo-card { background: var(--blanco); border-radius: 20px; overflow: hidden; box-shadow: 0 10px 28px rgba(0,0,0,0.07); display: flex; flex-direction: column; border-top: 5px solid var(--marino); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.act-photo-card:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(0,0,0,0.12); }
.act-photo-img { flex: 1; min-height: 220px; background-size: cover; background-position: center; position: relative; display: flex; align-items: flex-end; }
.act-photo-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.6) 100%); }
.act-photo-tag { background: var(--blanco); padding: 12px 18px; text-align: center; border-top: 1px solid rgba(0,0,0,0.06); }
.act-photo-tag span { font-size: 1.15rem; font-weight: 800; color: var(--marino); font-family: var(--font-sans); }

.act-features-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; width: 100%; }
.act-feat-pill { background: var(--blanco); border-radius: 14px; padding: 14px 16px; box-shadow: 0 4px 14px rgba(0,0,0,0.05); display: flex; align-items: center; justify-content: center; gap: 10px; text-align: center; border: 1.5px solid rgba(0,0,0,0.05); transition: transform 0.25s ease, background 0.25s ease; }
.act-feat-pill:hover { transform: translateY(-3px); border-color: rgba(201,0,32,0.25); background: #FFF5F5; }
.act-feat-pill i { font-size: 1.35rem; color: var(--rojo); flex-shrink: 0; }
.act-feat-pill span { font-size: 1.15rem; font-weight: 800; color: var(--texto); font-family: var(--font-sans); line-height: 1.25; }

.act-takeaway-banner { background: linear-gradient(135deg, #8B0014 0%, #68000E 100%); color: var(--blanco); border-radius: 14px; padding: 16px 26px; display: flex; align-items: center; gap: 18px; box-shadow: 0 6px 20px rgba(0,0,0,0.12); }
.act-takeaway-icon { font-size: 1.8rem; color: #FFAA00; flex-shrink: 0; }
.act-takeaway-text { font-size: 1.32rem; font-weight: 600; color: var(--blanco); line-height: 1.4; margin: 0; font-family: var(--font-sans); }

/* 13. Activo Comparativa (Slide 14 - Carga Estructural Antes vs Después) */
.comp-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; }
.comp-main-stage { display: flex; flex-direction: column; gap: 16px; flex: 1; margin-top: 5px; margin-bottom: 18px; width: 100%; justify-content: space-between; }

.comp-quadrants-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; flex: 1; min-height: 290px; align-items: stretch; }
.comp-box { background: var(--blanco); border-radius: 20px; padding: 18px 20px 20px; box-shadow: 0 8px 25px rgba(0,0,0,0.06); display: flex; flex-direction: column; gap: 14px; border: 1.5px solid rgba(0,0,0,0.06); height: 100%; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.comp-box:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,0.1); }
.comp-box-antes { border-top: 5px solid #64748B; }
.comp-box-despues { border-top: 5px solid var(--rojo); }

.comp-panel-badge { display: inline-flex; align-items: center; justify-content: center; padding: 6px 26px; border-radius: 8px; font-size: 1.15rem; font-weight: 900; font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 1px; width: fit-content; margin: 0 auto; color: var(--blanco); background: var(--rojo); }

.comp-photos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; flex: 1; min-height: 220px; }
.comp-photo-item { border-radius: 12px; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,0.08); background: #1E293B; height: 100%; }
.comp-photo-img { width: 100%; height: 100%; background-size: cover; background-position: center; transition: transform 0.4s ease; }
.comp-photo-item:hover .comp-photo-img { transform: scale(1.04); }

.comp-impact-card-wide { background: var(--blanco); border-radius: 20px; padding: 16px 24px; box-shadow: 0 8px 25px rgba(0,0,0,0.06); display: flex; gap: 24px; align-items: center; width: 100%; border: 1.5px solid rgba(0,0,0,0.06); border-left: 6px solid var(--rojo); }
.comp-impact-metric { background: var(--fondo); border-radius: 16px; padding: 12px 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; border: 1.5px solid rgba(201,0,32,0.15); flex: 0 0 165px; }
.comp-metric-val { font-size: 2.8rem; font-weight: 900; font-family: var(--font-serif); color: var(--rojo); line-height: 1; margin-bottom: 2px; }
.comp-metric-lbl { font-size: 0.85rem; font-weight: 800; text-transform: uppercase; color: var(--marino); letter-spacing: 0.5px; font-family: var(--font-sans); line-height: 1.2; margin-bottom: 6px; }
.comp-metric-check { width: 28px; height: 28px; border-radius: 50%; background: var(--rojo); color: var(--blanco); display: flex; align-items: center; justify-content: center; font-size: 0.95rem; box-shadow: 0 3px 8px rgba(201,0,32,0.3); }

.comp-impact-desc { display: flex; align-items: center; gap: 16px; flex: 1; }
.comp-desc-bar { width: 5px; height: 100%; min-height: 55px; background: var(--rojo); border-radius: 3px; flex-shrink: 0; }
.comp-desc-text { font-size: 1.25rem; line-height: 1.5; color: var(--texto); margin: 0; font-weight: 500; font-family: var(--font-sans); }

.comp-takeaway-banner { background: linear-gradient(135deg, #8B0014 0%, #68000E 100%); color: var(--blanco); border-radius: 14px; padding: 16px 26px; display: flex; align-items: center; gap: 18px; box-shadow: 0 6px 20px rgba(0,0,0,0.12); }
.comp-takeaway-icon { font-size: 1.8rem; color: #FFAA00; flex-shrink: 0; }
.comp-takeaway-text { font-size: 1.32rem; font-weight: 600; color: var(--blanco); line-height: 1.4; margin: 0; font-family: var(--font-sans); }

/* 13.2 Activo Ampliación (Slide 19) */
.aa-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 80px; padding-right: 80px; padding-top: 50px; padding-bottom: 20px; height: 100%; justify-content: flex-start; }
.aa-intro-box { margin-top: 0px; margin-bottom: 15px; background: #F0F4F8; padding: 15px 25px; border-radius: 12px; border-left: 6px solid var(--marino); box-shadow: 0 4px 15px rgba(0,0,0,0.05); }
.aa-intro-text { font-size: 1.45rem; color: var(--marino); line-height: 1.4; font-family: var(--font-sans); margin: 0; font-weight: 400; }
.aa-intro-text strong { font-weight: 800; color: var(--marino); }
.aa-main-stage { display: flex; gap: 20px; align-items: stretch; background: #F8F9FA; padding: 20px; border-radius: 12px; margin-bottom: 15px; flex: 0 1 auto; }

.aa-left-col { flex: 0 0 32%; display: flex; flex-direction: column; }
.aa-main-card { background: var(--blanco); padding: 25px 20px; border-left: 8px solid var(--rojo); box-shadow: 0 10px 30px rgba(0,0,0,0.08); display: flex; flex-direction: column; gap: 15px; height: 100%; }
.aa-main-icon-wrapper { width: 60px; height: 60px; background: var(--rojo); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 5px; }
.aa-main-icon-wrapper i { font-size: 2rem; color: var(--blanco); }
.aa-main-title { font-size: 1.5rem; font-weight: 900; color: var(--marino); line-height: 1.2; font-family: var(--font-sans); margin: 0; }
.aa-main-items { display: flex; flex-direction: column; gap: 15px; margin-top: 5px; }
.aa-main-item { display: flex; gap: 15px; align-items: flex-start; }
.aa-main-val { font-size: 2.4rem; font-weight: 900; color: var(--rojo); font-family: var(--font-sans); line-height: 1; min-width: 45px; text-align: right; }
.aa-main-desc { font-size: 1.25rem; color: var(--texto); line-height: 1.3; font-family: var(--font-sans); }

.aa-right-col { flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.aa-detail-card { background: var(--blanco); padding: 15px; border-left: 6px solid var(--rojo); box-shadow: 0 6px 20px rgba(0,0,0,0.06); display: flex; flex-direction: column; gap: 10px; }
.aa-card-header { display: flex; align-items: center; gap: 12px; }
.aa-card-icon { width: 35px; height: 35px; background: var(--rojo); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.aa-card-icon i { font-size: 1.35rem; color: var(--blanco); }
.aa-card-title { font-size: 1.25rem; font-weight: 900; color: var(--marino); margin: 0; line-height: 1.2; font-family: var(--font-sans); text-transform: uppercase; }
.aa-card-body { padding-left: 55px; }
.aa-card-subtitle { font-size: 1.15rem; font-weight: 700; color: var(--texto); margin: 0 0 8px 0; font-family: var(--font-sans); line-height: 1.3; }
.aa-card-list { margin: 0; padding-left: 20px; color: var(--gris); font-size: 1.15rem; line-height: 1.4; font-family: var(--font-sans); }

.aa-footer-banner { background: linear-gradient(135deg, #8B0014 0%, #68000E 100%); color: var(--blanco); border-radius: 14px; padding: 18px 28px; margin: 0; display: flex; align-items: center; gap: 18px; box-shadow: 0 6px 20px rgba(0,0,0,0.12); }
.aa-footer-icon { font-size: 1.8rem; color: #FFAA00; flex-shrink: 0; }
.aa-footer-text { font-size: 1.35rem; font-weight: 500; color: var(--blanco); line-height: 1.4; margin: 0; font-family: var(--font-sans); }

/* 13.3 Timeline Fases Completo (Slide 20) - Creative Track Design */
.tfc-creative-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; justify-content: flex-start; }

.tfc-c-board { flex: 1; display: flex; flex-direction: column; justify-content: center; background: var(--blanco); border-radius: 20px; box-shadow: 0 10px 40px rgba(0,0,0,0.06); margin-top: 10px; margin-bottom: 20px; border: 1.5px solid rgba(0,0,0,0.05); padding: 30px 40px; gap: 40px; }

/* Grid base */
.tfc-c-headers, .tfc-c-nodes, .tfc-c-durations { display: grid; grid-template-columns: repeat(8, 1fr); gap: 15px; }

/* Headers */
.tfc-c-header { display: flex; align-items: flex-end; justify-content: center; text-align: center; border-bottom: 3px solid; padding-bottom: 10px; }
.tfc-c-header h3 { font-size: 1.3rem; font-weight: 900; margin: 0; font-family: var(--font-sans); line-height: 1.2; text-transform: uppercase; }
.tfc-c-header.theme-marino-claro { border-color: #1F3B66; color: #1F3B66; }
.tfc-c-header.theme-marino { border-color: var(--marino); color: var(--marino); }
.tfc-c-header.theme-rojo { border-color: var(--rojo); color: var(--rojo); }

/* Track and Nodes */
.tfc-c-track-container { position: relative; display: flex; flex-direction: column; justify-content: flex-start; margin-top: 10px; }
.tfc-c-line { position: absolute; top: 73px; left: 60px; right: 60px; height: 3px; background: #D1D8E0; z-index: 1; border-radius: 2px; }

.tfc-c-node { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; }
.tfc-c-date { font-size: 1.25rem; font-weight: 900; font-family: var(--font-sans); line-height: 1.2; min-height: 35px; }
.text-marino-claro { color: #1F3B66; }
.text-marino { color: var(--marino); }
.text-rojo { color: var(--rojo); }

.tfc-c-icon { width: 55px; height: 55px; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 6px var(--blanco), 0 5px 15px rgba(0,0,0,0.1); transition: transform 0.3s ease; }
.tfc-c-node:hover .tfc-c-icon { transform: scale(1.1); }
.tfc-c-icon i { font-size: 1.6rem; color: var(--blanco); }
.bg-marino-claro { background: #1F3B66; }
.bg-marino { background: var(--marino); }
.bg-rojo { background: var(--rojo); }

.tfc-c-desc { font-size: 1.15rem; color: var(--texto); line-height: 1.3; font-family: var(--font-sans); padding: 0 10px; margin-top: 5px; }

/* Durations */
.tfc-c-dur-col { display: flex; justify-content: center; padding: 0 10px; }
.tfc-c-bar { width: 100%; border: 2px solid; border-top: none; position: relative; text-align: center; padding-top: 10px; padding-bottom: 5px; border-radius: 0 0 8px 8px; }
.tfc-c-bar::before, .tfc-c-bar::after { content: ''; position: absolute; top: 0; width: 2px; height: 12px; }
.tfc-c-bar::before { left: -2px; }
.tfc-c-bar::after { right: -2px; }

.tfc-c-bar span { font-size: 1.4rem; font-weight: 900; font-family: var(--font-sans); }

.bar-marino-claro { border-color: #1F3B66; color: #1F3B66; }
.bar-marino-claro::before, .bar-marino-claro::after { background: #1F3B66; }

.bar-marino { border-color: var(--marino); color: var(--marino); }
.bar-marino::before, .bar-marino::after { background: var(--marino); }

.bar-rojo { border-color: var(--rojo); color: var(--rojo); }
.bar-rojo::before, .bar-rojo::after { background: var(--rojo); }

/* Animation overrides */
.slide .tfc-c-node { opacity: 0; transform: translateY(20px); transition: all 0.4s ease; }
.slide.active .tfc-c-node { opacity: 1; transform: translateY(0); }

.tfc-callout-box { border: 2px dashed #94A3B8; border-radius: 12px; padding: 18px 40px; text-align: center; margin: 0 auto; background: var(--blanco); width: fit-content; box-shadow: 0 4px 15px rgba(0,0,0,0.05); }
.tfc-callout-text { font-size: 1.35rem; font-weight: 800; color: var(--marino); margin: 0; font-family: var(--font-sans); }

/* 13.5 Activo Ciclo (Slide 18 - Imagen + Timeline + KPIs) */
.ac-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; }
.ac-main-stage { display: flex; gap: 50px; flex: 1; align-items: stretch; margin-top: 30px; margin-bottom: 30px; }

.ac-left-col { flex: 0 0 38%; display: flex; flex-direction: column; }
.ac-image-box { flex: 1; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.15); border: 2px solid #E1E8EE; }
.ac-image-box img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

.ac-right-col { flex: 1; display: flex; flex-direction: column; justify-content: space-evenly; gap: 40px; padding: 20px 0; }

.ac-timeline-container { display: flex; justify-content: space-between; align-items: flex-start; position: relative; padding: 0 10px; margin-bottom: 20px; }
.ac-timeline-line { position: absolute; top: 15px; left: 50px; right: 50px; height: 3px; background: #D1D8E0; z-index: 1; }
.ac-timeline-node { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 15px; width: 140px; }
.ac-timeline-dot { width: 34px; height: 34px; border-radius: 50%; box-shadow: 0 0 0 6px var(--blanco), 0 4px 10px rgba(0,0,0,0.1); }
.ac-theme-marino { background-color: var(--marino); }
.ac-theme-rojo { background-color: var(--rojo); }
.ac-timeline-label { font-size: 1.45rem; font-weight: 800; color: var(--marino); line-height: 1.2; font-family: var(--font-sans); }
.ac-timeline-date { font-size: 1.35rem; color: var(--gris); font-family: var(--font-sans); }

.ac-kpis-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }
.ac-kpi-card { background: var(--blanco); border-radius: 8px; padding: 35px 25px; border: 1.5px solid rgba(0,0,0,0.06); border-top-width: 6px; box-shadow: 0 8px 25px rgba(0,0,0,0.06); text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; min-height: 200px; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.ac-kpi-card:hover { transform: translateY(-5px); box-shadow: 0 15px 35px rgba(0,0,0,0.1); }
.ac-kpi-rojo { border-top-color: var(--rojo); }
.ac-kpi-rojo .ac-kpi-value { color: var(--rojo); }
.ac-kpi-marino { border-top-color: var(--marino); }
.ac-kpi-marino .ac-kpi-value { color: var(--marino); }
.ac-kpi-azul { border-top-color: #0076B6; }
.ac-kpi-azul .ac-kpi-value { color: #0076B6; }

.ac-kpi-value { font-size: 3.2rem; font-weight: 900; font-family: var(--font-sans); line-height: 1; margin: 0; }
.ac-kpi-label { font-size: 1.45rem; font-weight: 800; color: var(--marino); line-height: 1.3; font-family: var(--font-sans); margin: 0; }

/* 14. Tecnología Matriz (Slide 15 - Matriz Tecnológica 3x3) */
.tec-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; }
.tec-main-stage { display: flex; flex-direction: column; gap: 16px; flex: 1; margin-top: 5px; margin-bottom: 18px; width: 100%; justify-content: space-between; }

.tec-lead-header { display: flex; align-items: center; gap: 18px; margin-bottom: 4px; }
.tec-lead-text { font-size: 1.85rem; font-weight: 900; color: var(--marino); margin: 0; font-family: var(--font-serif); letter-spacing: -0.3px; }
.tec-lead-line { flex: 1; height: 3px; background: linear-gradient(90deg, rgba(31,59,102,0.3) 0%, rgba(31,59,102,0) 100%); border-radius: 2px; }

.tec-pillars-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; flex: 1; min-height: 440px; align-items: stretch; }

.tec-column { display: flex; flex-direction: column; gap: 14px; height: 100%; }
.tec-col-header { padding-bottom: 8px; border-bottom: 2.5px solid rgba(0,0,0,0.08); }
.tec-col-badge { font-size: 1.32rem; font-weight: 900; font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.8px; display: block; }
.tec-col-rojo .tec-col-badge { color: var(--rojo); }
.tec-col-marino .tec-col-badge { color: var(--marino); }
.tec-col-teal .tec-col-badge { color: #0088A9; }

.tec-cards-stack { display: flex; flex-direction: column; gap: 14px; flex: 1; justify-content: space-between; }
.tec-card { background: var(--blanco); border-radius: 18px; padding: 22px 24px; box-shadow: 0 8px 25px rgba(0,0,0,0.06); display: flex; flex-direction: column; gap: 10px; border: 1.5px solid rgba(0,0,0,0.06); transition: transform 0.25s ease, box-shadow 0.25s ease; flex: 1; justify-content: center; }
.tec-card:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(0,0,0,0.1); }

.tec-card-rojo { border-left: 6px solid var(--rojo); }
.tec-card-marino { border-left: 6px solid var(--marino); }
.tec-card-teal { border-left: 6px solid #0088A9; }

.tec-card-top { display: flex; align-items: center; gap: 14px; }
.tec-card-icon { width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.35rem; flex-shrink: 0; }
.tec-card-rojo .tec-card-icon { background: rgba(201,0,32,0.1); color: var(--rojo); }
.tec-card-marino .tec-card-icon { background: rgba(31,59,102,0.1); color: var(--marino); }
.tec-card-teal .tec-card-icon { background: rgba(0,136,169,0.1); color: #0088A9; }

.tec-card-title { font-size: 1.5rem; font-weight: 800; color: var(--marino); margin: 0; font-family: var(--font-sans); line-height: 1.2; }
.tec-card-desc { font-size: 1.25rem; line-height: 1.5; color: var(--texto); margin: 0; font-weight: 500; font-family: var(--font-sans); }

.tec-takeaway-banner { background: linear-gradient(135deg, #8B0014 0%, #68000E 100%); color: var(--blanco); border-radius: 14px; padding: 18px 28px; display: flex; align-items: center; gap: 18px; box-shadow: 0 6px 20px rgba(0,0,0,0.12); }
.tec-takeaway-icon { font-size: 1.8rem; color: #FFAA00; flex-shrink: 0; }
.tec-takeaway-text { font-size: 1.35rem; font-weight: 500; color: var(--blanco); line-height: 1.4; margin: 0; font-family: var(--font-sans); }
.tec-takeaway-text strong { font-weight: 900; letter-spacing: 0.5px; }

/* 15. Trabajos Adicionales (Slide 16 - Pipeline de Trabajos y Costos) */
.ta-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; }
.ta-main-stage { display: flex; flex-direction: column; justify-content: space-between; flex: 1; margin-top: 5px; margin-bottom: 18px; width: 100%; }

.ta-pipeline-container { display: flex; align-items: stretch; justify-content: space-between; gap: 24px; flex: 1; max-height: 485px; margin: auto 0; width: 100%; }

.ta-col { flex: 1; display: flex; flex-direction: column; background: var(--blanco); border-radius: 20px; box-shadow: 0 10px 30px rgba(0,0,0,0.06); overflow: hidden; border: 1.5px solid rgba(0,0,0,0.06); height: 100%; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.ta-col:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(0,0,0,0.1); }

.ta-col-header { background: linear-gradient(135deg, var(--rojo) 0%, #A30019 100%); padding: 14px 20px; text-align: center; color: var(--blanco); flex-shrink: 0; min-height: 60px; display: flex; align-items: center; justify-content: center; }
.ta-col-title { font-size: 1.68rem; font-weight: 900; color: var(--blanco); margin: 0; font-family: var(--font-sans); letter-spacing: -0.2px; line-height: 1.2; }

.ta-col-body { padding: 16px 18px; display: flex; flex-direction: column; gap: 14px; flex: 1; justify-content: space-between; background: #FAFCFE; }
.ta-body-single { justify-content: center !important; }

.ta-item-card { background: var(--blanco); border-radius: 16px; padding: 16px 18px; box-shadow: 0 4px 15px rgba(0,0,0,0.04); display: flex; flex-direction: column; gap: 10px; border: 1.5px solid rgba(0,0,0,0.06); flex: 1; justify-content: space-between; transition: transform 0.2s ease, border-color 0.2s ease; position: relative; }
.ta-item-card:hover { transform: translateY(-2px); border-color: rgba(201,0,32,0.25); background: #FFFDFD; }

.ta-col-single .ta-item-card { flex: 0 0 auto !important; min-height: 145px; max-height: 165px; width: 100%; }

.ta-item-top { display: flex; gap: 12px; align-items: flex-start; }
.ta-item-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--rojo); margin-top: 6px; flex-shrink: 0; }
.ta-item-desc { font-size: 1.3rem; line-height: 1.4; color: var(--texto); margin: 0; font-weight: 500; font-family: var(--font-sans); }

.ta-item-amount-box { background: rgba(201,0,32,0.07); border-radius: 10px; padding: 6px 16px; width: fit-content; border: 1.5px solid rgba(201,0,32,0.18); }
.ta-item-amount { font-size: 1.65rem; font-weight: 900; color: var(--rojo); font-family: var(--font-sans); letter-spacing: 0.5px; }

.ta-pipe-arrow { display: flex; align-items: center; justify-content: center; color: var(--rojo); font-size: 2.2rem; align-self: center; opacity: 0.85; }

.ta-takeaway-banner { background: linear-gradient(135deg, #8B0014 0%, #68000E 100%); color: var(--blanco); border-radius: 14px; padding: 18px 28px; display: flex; align-items: center; gap: 18px; box-shadow: 0 6px 20px rgba(0,0,0,0.12); }
.ta-takeaway-icon { font-size: 1.8rem; color: #FFAA00; flex-shrink: 0; }
.ta-takeaway-text { font-size: 1.35rem; font-weight: 500; color: var(--blanco); line-height: 1.4; margin: 0; font-family: var(--font-sans); }
.ta-takeaway-text strong { font-weight: 900; letter-spacing: 0.5px; }

/* 15.5 KPI Horizontal Wide (Slide 17) */
.kh-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; }
.kh-main-stage { display: flex; flex-direction: column; gap: 50px; flex: 1; justify-content: center; padding-bottom: 20px; }

.kh-kpis-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; align-items: stretch; }
.kh-kpi-card { background: var(--blanco); box-shadow: 0 8px 25px rgba(0,0,0,0.06); padding: 40px 30px; border: 1.5px solid rgba(0,0,0,0.04); border-left-width: 8px; transition: transform 0.3s ease, box-shadow 0.3s ease; display: flex; flex-direction: column; justify-content: center; gap: 12px; min-height: 220px; }
.kh-kpi-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(0,0,0,0.1); }

.kh-theme-marino { border-left-color: var(--marino); }
.kh-theme-marino .kh-kpi-value, .kh-theme-marino .kh-kpi-label { color: var(--marino); }
.kh-theme-teal { border-left-color: #0088A9; }
.kh-theme-teal .kh-kpi-value, .kh-theme-teal .kh-kpi-label { color: #0088A9; }
.kh-theme-rojo { border-left-color: var(--rojo); }
.kh-theme-rojo .kh-kpi-value, .kh-theme-rojo .kh-kpi-label { color: var(--rojo); }

.kh-kpi-value { font-size: 2.2rem; font-weight: 900; font-family: var(--font-sans); }
.kh-kpi-label { font-size: 1.45rem; font-weight: 800; color: var(--marino); font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.5px; line-height: 1.2; }
.kh-kpi-desc { font-size: 1.45rem; color: var(--texto); line-height: 1.4; margin-top: 5px; font-weight: 400; font-family: var(--font-sans); }

.kh-info-box { background: #F4F7FA; border: 1.5px solid #E2E9F0; padding: 30px 40px; border-radius: 0; display: flex; flex-direction: column; gap: 15px; }
.kh-info-main { font-size: 1.8rem; color: var(--marino); font-weight: 400; font-family: var(--font-sans); margin: 0; line-height: 1.45; }
.kh-info-main strong { font-weight: 800; }
.kh-info-sub { font-size: 1.6rem; color: var(--gris); font-family: var(--font-sans); margin: 0; font-style: italic; }

/* 16. Sección Divisoria */
.seccion-divisoria { justify-content: center; align-items: center; text-align: center; background: var(--marino); color: var(--blanco); }
.seccion-title { font-size: 4rem; color: var(--blanco); margin-bottom: 20px; }
.seccion-body { font-size: 1.5rem; color: var(--azul); font-weight: 300; max-width: 700px; }

/* 3. Stats Intro */
.stats-grid { display: flex; gap: 50px; flex: 1; align-items: center; }
.kpis-container { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; flex: 0 0 450px; }
.kpi-card { background: var(--blanco); padding: 30px 20px; text-align: center; border-radius: 12px; box-shadow: var(--shadow-lg); border-bottom: 4px solid var(--azul); transition: transform 0.3s; }
.kpi-card:hover { transform: translateY(-5px); }
.kpi-value { font-family: var(--font-serif); font-size: 3.5rem; color: var(--marino); margin-bottom: 5px; font-weight: 700; line-height: 1; }
.kpi-label { font-size: 0.95rem; text-transform: uppercase; letter-spacing: 1px; color: var(--rojo); font-weight: 700; }
.body-container { flex: 1; display: flex; flex-direction: column; gap: 20px; }
.stat-body-item { background: var(--blanco); padding: 25px; border-radius: 12px; box-shadow: var(--shadow-sm); border-left: 4px solid var(--marino); }
.stat-heading { font-size: 1.2rem; margin-bottom: 8px; color: var(--marino); }
.stat-text { font-size: 1rem; line-height: 1.5; color: var(--texto); }

/* 4. Tres Columnas */
.columnas-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; flex: 1; margin-top: 20px; }
.columna-item { background: var(--blanco); padding: 30px; border-radius: 12px; box-shadow: var(--shadow-lg); position: relative; overflow: hidden; }
.columna-item::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: var(--azul); }
.columna-heading { font-size: 1.3rem; color: var(--marino); margin-bottom: 15px; }
.columna-text { font-size: 1.05rem; line-height: 1.6; color: var(--texto); }

/* 5. Checklist Iconos */
.checklist-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 25px; margin-top: 20px; }
.checklist-item { display: flex; align-items: flex-start; gap: 15px; background: var(--blanco); padding: 25px; border-radius: 12px; box-shadow: var(--shadow-sm); }
.check-icon { font-size: 2rem; color: var(--rojo); flex-shrink: 0; }
.check-content h3 { font-family: var(--font-sans); font-size: 1.1rem; color: var(--marino); font-weight: 700; margin-bottom: 5px; }
.check-content p { font-size: 0.95rem; line-height: 1.4; color: var(--gris); }

/* 6. Proceso Modelo (Steps) */
.proceso-container { display: flex; justify-content: space-between; align-items: center; margin-top: 50px; position: relative; padding: 0 20px; }
.proceso-line { position: absolute; top: 50%; left: 40px; right: 40px; height: 4px; background: var(--gris-claro); z-index: 1; transform: translateY(-50%); }
.proceso-step { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 15px; text-align: center; width: 150px; }
.step-number { width: 60px; height: 60px; border-radius: 50%; background: var(--marino); color: var(--blanco); display: flex; justify-content: center; align-items: center; font-size: 1.5rem; font-family: var(--font-serif); font-weight: 700; box-shadow: var(--shadow-lg); border: 4px solid var(--fondo); }
.step-title { font-weight: 600; color: var(--marino); font-size: 1.1rem; }

/* 7. Activo Ficha */
.ficha-container { display: flex; gap: 40px; height: 100%; margin-top: 20px; }
.ficha-content { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.ficha-text { font-size: 1.2rem; line-height: 1.8; color: var(--texto); background: var(--blanco); padding: 40px; border-radius: 12px; box-shadow: var(--shadow-lg); border-left: 6px solid var(--rojo); }
.ficha-image { flex: 1; border-radius: 12px; overflow: hidden; box-shadow: var(--shadow-xl); background: var(--gris-claro); display: flex; justify-content: center; align-items: center; }
.ficha-image img { width: 100%; height: 100%; object-fit: cover; }
.ficha-placeholder { color: var(--gris); font-size: 1.5rem; font-weight: 300; }

/* 8. Galería de Imágenes */
.galeria-grid { display: flex; gap: 20px; height: 400px; margin-top: 20px; }
.galeria-item { flex: 1; position: relative; border-radius: 12px; overflow: hidden; box-shadow: var(--shadow-lg); background: var(--marino); transition: flex 0.4s ease; cursor: pointer; }
.galeria-item:hover { flex: 2; }
.galeria-item img { width: 100%; height: 100%; object-fit: cover; opacity: 0.8; transition: opacity 0.3s; }
.galeria-item:hover img { opacity: 1; }
.galeria-caption { position: absolute; bottom: 0; left: 0; width: 100%; padding: 20px; background: linear-gradient(transparent, rgba(0,0,0,0.8)); color: var(--blanco); font-weight: 600; transform: translateY(100%); transition: transform 0.3s; }
.galeria-item:hover .galeria-caption { transform: translateY(0); }

/* 9. Línea de Tiempo (Zig-Zag Creativo) */
.timeline-container { position: relative; margin-top: 40px; padding: 20px 0; }
.timeline-line { position: absolute; top: 50%; left: 0; right: 0; height: 4px; background: var(--gris-claro); transform: translateY(-50%); }
.timeline-grid { display: flex; justify-content: space-between; position: relative; z-index: 2; }
.timeline-item { width: 180px; position: relative; display: flex; flex-direction: column; align-items: center; }
.timeline-dot { width: 20px; height: 20px; background: var(--rojo); border-radius: 50%; border: 4px solid var(--fondo); box-shadow: 0 0 0 4px rgba(201,0,32,0.2); margin-bottom: 20px; transition: transform 0.3s; }
.timeline-item:hover .timeline-dot { transform: scale(1.3); }
.timeline-item:nth-child(even) { flex-direction: column-reverse; }
.timeline-item:nth-child(even) .timeline-dot { margin-bottom: 0; margin-top: 20px; }
.timeline-content-inner { background: var(--blanco); padding: 15px; border-radius: 8px; box-shadow: var(--shadow-lg); text-align: center; width: 100%; border-top: 3px solid var(--azul); }
.timeline-date { font-family: var(--font-sans); font-weight: 800; color: var(--marino); font-size: 1.1rem; margin-bottom: 5px; }
.timeline-event { font-size: 0.85rem; line-height: 1.3; color: var(--texto); margin-bottom: 8px; }
.timeline-phase { font-size: 0.7rem; background: var(--azul); color: var(--blanco); padding: 3px 8px; border-radius: 12px; text-transform: uppercase; font-weight: 700; display: inline-block; }

/* 10. Tabla de Datos */
.tabla-container { background: var(--blanco); border-radius: 12px; box-shadow: var(--shadow-lg); overflow: hidden; margin-top: 20px; }
.tabla-fake { width: 100%; border-collapse: collapse; text-align: left; }
.tabla-fake th { background: var(--marino); color: var(--blanco); padding: 15px 20px; font-weight: 600; }
.tabla-fake td { padding: 15px 20px; border-bottom: 1px solid var(--gris-claro); color: var(--texto); }
.tabla-fake tr:last-child td { border-bottom: none; }

/* 11. Cierre Resumen */
.cierre-wrapper { justify-content: center; align-items: center; text-align: center; background: radial-gradient(circle, var(--marino) 0%, #0d1b2a 100%); color: var(--blanco); }
.cierre-title { font-size: 3.5rem; color: var(--blanco); margin-bottom: 20px; }
.cierre-title::after { left: 50%; transform: translateX(-50%); }
.cierre-list { list-style: none; display: flex; flex-direction: column; gap: 20px; margin-top: 40px; text-align: left; max-width: 800px; }
.cierre-list li { font-size: 1.3rem; padding: 20px; background: rgba(255,255,255,0.1); border-radius: 8px; border-left: 4px solid var(--rojo); backdrop-filter: blur(5px); }

.slide-footer { margin-top: auto; padding-top: 20px; font-size: 0.85rem; color: var(--gris); border-top: 1px solid var(--gris-claro); }

/* Responsive / Mobile Styles */
@media (max-width: 1024px) {
  .content-wrapper { padding: 50px 60px; }
  .portada-title { font-size: 3.5rem; }
  .stats-grid { flex-direction: column; }
  .kpis-container { flex: auto; display: flex; flex-wrap: wrap; justify-content: center; }
  .kpi-card { flex: 1 1 200px; }
  .nec-pillars-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}

@media (max-width: 768px) {
  .content-wrapper { padding: 40px 30px; }
  .portada-title { font-size: 2.5rem; }
  .portada-body { font-size: 1.2rem; }
  .slide-title { font-size: 1.8rem; }
  
  .columnas-grid { grid-template-columns: 1fr; gap: 15px; }
  .checklist-grid { grid-template-columns: 1fr; }
  
  .proceso-container { flex-direction: column; margin-top: 20px; }
  .proceso-line { width: 4px; height: 100%; top: 0; left: 50px; transform: none; }
  .proceso-step { flex-direction: row; width: 100%; justify-content: flex-start; margin-bottom: 20px; }
  
  .ficha-container { flex-direction: column; overflow-y: auto; }
  .ficha-image { min-height: 250px; }
  
  .timeline-line { left: 30px; width: 4px; height: 100%; top: 0; transform: none; }
  .timeline-grid { flex-direction: column; align-items: flex-start; }
  .timeline-item, .timeline-item:nth-child(even) { flex-direction: row; width: 100%; margin-bottom: 20px; align-items: flex-start; }
  .timeline-item:nth-child(even) .timeline-dot { margin-top: 0; }
  .timeline-dot { position: absolute; left: 20px; z-index: 10; margin-bottom: 0; }
  .timeline-content-inner { margin-left: 60px; width: calc(100% - 60px); text-align: left; }
  
  .controls-hint { display: none; }
  .nav-btn { width: 40px; height: 40px; font-size: 1rem; bottom: 20px; }
  .nav-prev { right: 70px; left: auto; }
  .nav-next { right: 20px; }
  
  .cierre-title { font-size: 2.5rem; }
  .cierre-list li { font-size: 1rem; padding: 15px; }
  
  .portada-wrapper { padding-left: 50px; }
  .portada-logos { left: 50px; top: 25px; }
  .portada-logos img { height: 60px; }
  
  .qs-split-wrapper { flex-direction: column; padding-top: 100px; padding-left: 30px; padding-right: 30px; overflow-y: auto; }
  .qs-left-panel { flex: none; max-width: 100%; border-radius: 12px; padding: 30px; }
  .qs-right-panel { flex: none; width: 100%; }
  .qs-cards-grid { grid-template-columns: 1fr; }
  .qs-card-wide { grid-column: span 1; }
  
  .exp-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .exp-blocks-container { grid-template-columns: 1fr; gap: 20px; margin-top: 15px; }
  .exp-stats-grid { grid-template-columns: 1fr; }
  .exp-footer { flex-direction: column; gap: 20px; padding: 20px; }
  .exp-cap-card { flex: none; border-right: none; padding-right: 0; border-bottom: 2px solid rgba(0,0,0,0.1); padding-bottom: 20px; }
  
  .hub-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .hub-stage { min-height: auto; flex-direction: column; gap: 25px; margin: 20px 0; }
  .hub-orbit-ring { display: none; }
  .hub-center { width: 100%; height: auto; border-radius: 16px; padding: 25px; }
  .hub-nodes-container { position: static; display: flex; flex-direction: column; gap: 15px; width: 100%; }
  .hub-node { position: static; width: 100%; transform: none !important; opacity: 1; }
  .hub-node-5 { transform: none !important; }
  
  .modelo-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .modelo-flow-track { display: none; }
  .modelo-columns-grid { grid-template-columns: 1fr; gap: 30px; }
  
  .nec-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .nec-pillars-grid { grid-template-columns: 1fr; gap: 20px; }
  
  .reto-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .reto-main-stage { flex-direction: column; }
  .reto-hero-panel { flex: none; max-width: 100%; min-height: 200px; }
  .reto-cards-grid { grid-template-columns: 1fr; }
  
  .bicam-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .bicam-stage { grid-template-columns: 1fr; gap: 25px; }
  
  .res-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .res-kpis-grid { grid-template-columns: 1fr 1fr; gap: 15px; }
  .res-content-split { flex-direction: column; }
  .res-photo-panel { flex: none; max-width: 100%; min-height: 200px; }
  .res-delivery-row { flex-direction: column; text-align: center; }
  .res-deliv-badge { width: 100%; flex: none; }
  .res-deliv-arrow { transform: rotate(90deg); }
  
  .resp-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .resp-stage-grid { grid-template-columns: 1fr; gap: 25px; }
  
  .tf-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .tf-phases-container { flex-direction: column; gap: 25px; }
  .tf-phase-marino { flex: none; width: 100%; }
  .tf-track-line { display: none; }
  .tf-milestones-row { flex-direction: column; gap: 15px; }
  .tf-milestone { max-width: 100%; width: 100%; }
  
  .act-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .act-lead-card { flex-direction: column; align-items: flex-start; }
  .act-lead-metrics { width: 100%; justify-content: space-between; }
  .act-gallery-grid { grid-template-columns: 1fr; }
  .act-features-row { grid-template-columns: 1fr 1fr; }
  
  .comp-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .comp-quadrants-grid { grid-template-columns: 1fr; gap: 25px; }
  .comp-photos-grid { grid-template-columns: 1fr; height: auto; }
  .comp-impact-card-wide { flex-direction: column; text-align: center; }
  .comp-impact-desc { flex-direction: column; text-align: center; }
  .comp-desc-bar { width: 40px; height: 4px; min-height: 4px; }
  
  .tec-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .tec-pillars-grid { grid-template-columns: 1fr; gap: 25px; }
  
  .ta-wrapper { padding-left: 30px; padding-right: 30px; padding-top: 100px; }
  .ta-pipeline-container { flex-direction: column; gap: 25px; }
  .ta-pipe-arrow { transform: rotate(90deg); margin: 0 auto; }
}




/* 13.6 Galería Carousel (Slide 21) */
.gc-wrapper { display: flex; flex-direction: column; max-width: 100%; margin: 0; padding-left: 90px; padding-right: 140px; height: 100%; justify-content: flex-start; }
.gc-container { flex: 1; display: flex; flex-direction: column; background: var(--blanco); margin-top: 15px; margin-bottom: 25px; border-radius: 12px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.1); border: 1px solid rgba(0,0,0,0.05); }

.gc-main { flex: 1; position: relative; display: flex; flex-direction: column; min-height: 0; background: #111; }
.gc-main img { width: 100%; height: 100%; object-fit: contain; display: block; }

.gc-counter { position: absolute; top: 20px; left: 20px; background: rgba(0,0,0,0.6); color: white; padding: 5px 12px; border-radius: 20px; font-size: 1.1rem; font-family: var(--font-sans); font-weight: bold; z-index: 10; }

.gc-controls { position: absolute; inset: 0; display: flex; justify-content: space-between; align-items: center; padding: 0 20px; pointer-events: none; }
.gc-btn { pointer-events: auto; width: 50px; height: 50px; border-radius: 50%; background: rgba(0,0,0,0.4); color: white; border: 2px solid rgba(255,255,255,0.2); font-size: 1.5rem; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s; }
.gc-btn:hover { background: rgba(0,0,0,0.8); border-color: white; transform: scale(1.1); }

.gc-caption-bar { background: #222; color: #FFF; padding: 15px 25px; text-align: center; font-size: 1.25rem; font-family: var(--font-sans); }
.gc-caption-bar strong { color: #FFAA00; text-transform: uppercase; margin-right: 10px; }

.gc-thumbs { height: 130px; display: flex; background: #000; overflow-x: auto; scroll-behavior: smooth; }
.gc-thumb-wrap { flex: 0 0 200px; height: 100%; position: relative; cursor: pointer; border-right: 2px solid #222; }
.gc-thumb-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gc-thumb-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.6); transition: opacity 0.3s; }
.gc-thumb-wrap:hover .gc-thumb-overlay { opacity: 0.2; }
.gc-thumb-wrap.active .gc-thumb-overlay { opacity: 0; }

/* Scrollbar para thumbs */
.gc-thumbs::-webkit-scrollbar { height: 8px; }
.gc-thumbs::-webkit-scrollbar-track { background: #111; }
.gc-thumbs::-webkit-scrollbar-thumb { background: #555; border-radius: 4px; }
.gc-thumbs::-webkit-scrollbar-thumb:hover { background: #888; }
