:root,
body.light {
  --bg: #f1ece4;
  --surface: #f7f4ef;
  --surface-strong: #ffffff;
  --text: #191e23;
  --text-muted: #f7f4ef;
  --border: #eea323;
  --primary: #f25018;
  --primary-soft: #fde7e0;
  --secondary: #DED1BA;
  --secondary-soft: #6b7280;
  --accent: #eea323;
  --accent-soft: #fdf0e3;
  --text-nav: #6b7280;
  --shadow: rgba(23, 26, 30, 0.06);
  --shadow-hover: rgba(23, 26, 30, 0.12);
  --hero-text: #191e23;
  --header-bg: rgba(247, 244, 239, 0.92);
  --row-hover: #EBE3D5;
  --row-hover-text: #23272e;
  --radius: 14px;
  --radius-sm: 24px;
  --radius-xs: 6px;
  --font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-body: 'Outfit', 'Segoe UI', sans-serif;
  --font-mono: 'Space Mono', 'Consolas', monospace;
  --transition: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  --check: #63F03C;
  --check-hover: #4ABF2E;
  --nav-one: #DED1BA;
  --byn: #000000;
}

body.dark {
  --bg: #0e1418;
  --surface: #191e23;
  --surface-strong: #0e0e10;
  --text: #f7f4ef;
  --text-muted: #f7f4ef;
  --border: #3d4550;
  --primary: #f25018;
  --primary-soft: #2a1a14;
  --secondary: #475569;
  --secondary-soft: #6b7280;
  --accent: #eea323;
  --accent-soft: #2a2418;
  --text-nav: #b0a9a0;
  --shadow: rgba(0, 0, 0, 0.2);
  --shadow-hover: rgba(0, 0, 0, 0.35);
  --hero-text: #f7f4ef;
  --header-bg: rgba(14, 20, 24, 0.9);
  --row-hover: #3d4550;
  --row-hover-text: #f7f4ef;
  --check: #63F03C;
  --check-hover: #4ABF2E;
  --nav-one: #0d1a26;
  --byn: #ffffff;
}

@media (prefers-color-scheme: dark) {
  body:not(.dark):not(.light) {
    --bg: #0e1418;
    --surface: #191e23;
    --surface-strong: #0e0e10;
    --text: #e8e2da;
    --text-muted: #9a9590;
    --border: #3d4550;
    --primary: #f25018;
    --primary-soft: #2a1a14;
    --secondary: #5ab8a0;
    --secondary-soft: #1a2a24;
    --accent: #d4a853;
    --accent-soft: #2a2418;
    --text-nav: #b0a9a0;
    --shadow: rgba(0, 0, 0, 0.2);
    --shadow-hover: rgba(0, 0, 0, 0.35);
    --hero-text: #f0ebe3;
    --header-bg: rgba(14, 20, 24, 0.9);
    --row-hover: #3d4550;
    --row-hover-text: #000000;
    --check: #63F03C;
    --check-hover: #4ABF2E;
    --byn: #ffffff;
  }
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

body {
  font-family: var(--font-body);
  color: var(--text);
  background: var(--bg);
  line-height: 1.75;
  transition: background var(--transition), color var(--transition);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

::selection {
  background-color: var(--primary);
  color: var(--bg);
}


/* Focus-visible overrides for keyboard navigation */
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* Remove default focus ring on mouse/touch interaction for elements that have custom focus styles */
:focus:not(:focus-visible) {
  outline: none;
}

.container {
  max-width: 90%;
  margin: 0 auto;
}

/* === HEADER === */

.header {
  background: var(--surface-strong);
  backdrop-filter: blur(16px);
  position: sticky;
  top: 0;
  z-index: 100;
  transition: background var(--transition);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 11vh;
}

.logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.logo-mark {
  background: url("images/logo-h-dark.webp") no-repeat center / contain;
  width: 300px;
  height: 48px;
  display: block;
  z-index: 100;
}

.logo-mark2 {
  background: url("images/logo-v-dark.webp") no-repeat center / contain;
  width: 260px;
  height: 170px;
  display: block;
  z-index: 0;
}

body.light .logo-mark {
  background-image: url("images/logo-h-light.webp");
}

body.light .logo-mark2 {
  background-image: url("images/logo-v-light.webp");
}

.nav {
  display: flex;
  gap: 2.5vh;
}

.nav a {
  text-decoration: none;
  color: var(--text-nav);
  font-weight: 400;
  font-size: 2.6vh;
  letter-spacing: 0.05vh;
  transition: color var(--transition);
  position: relative;
  padding-top: 0.2vh;
}

.nav a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 0.3vh;
  transition: width var(--transition);
  background: linear-gradient(45deg, var(--primary) 40%, var(--accent) 80%);
  -webkit-text-fill-color: transparent;
}

.nav a:hover {
  background: linear-gradient(45deg, var(--primary) 40%, var(--accent) 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.nav a:hover::after {
  width: 100%;
}

.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  z-index: 200;
}

.nav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--bg);
  border-radius: 2px;
  transition: transform var(--transition), opacity var(--transition);
}

.nav-open .nav-toggle span:nth-child(1) {
  transform: translateY(7px) rotate(180deg);
}

.nav-open .nav-toggle span:nth-child(2) {
  opacity: 0;
}

.nav-open .nav-toggle span:nth-child(3) {
  transform: translateY(-7px) rotate(-180deg);
}

#theme-toggle {
  background: none;
  border: 1px solid var(--primary);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--primary);
  transition: background var(--transition);
  padding: 0;
  line-height: 1;
}

#theme-toggle:hover {
  color: #ffffff;
  background: var(--primary);
  border-color: #ffffff;
}

.theme-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transform-origin: center;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

#theme-toggle:hover .theme-icon {
  transform: rotate(180deg);
}

.theme-icon svg {
  display: block;
}

.theme-icon .icon-sun {
  display: none;
}

body.light .theme-icon .icon-sun {
  display: block;
}

body.light .theme-icon .icon-moon {
  display: none;
}

/* === BUTTONS === */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 38px;
  border-radius: var(--radius-sm);
  font-weight: 500;
  font-size: 1.4rem;
  text-decoration: none;
  border: 1px solid;
  cursor: pointer;
  font-family: var(--font-body);
  transition: all var(--transition);
  gap: 8px;
  line-height: 1;
  margin: 1vh;
}

.btn-primary {
  background: var(--primary);
  color: var(--text-muted);
  border: 1px solid var(--text-muted);
}

.btn-primary:hover {
  background: transparent;
  color: var(--primary);
  border: 1px solid var(--primary);
}

.btn-ghost {
  background: transparent;
  color: var(--primary);
  border: 1px solid var(--primary);
  
}

.btn-ghost:hover {
background: transparent;
  color: var(--text);
  border: 1px solid var(--text);
}

.btn-block {
  width: 100%;
}

/* === HERO === */

.hero {
  position: relative;
  overflow: hidden;
  background: var(--secondary);
  max-height: 90%;
  display: flex;
  align-items: center;
}

.hero-bg {
  position: absolute;
  max-width: 100%;
  inset: 0;
  background: url("images/bg-hero.webp") center / cover no-repeat;
  opacity: 1;
}

body.dark .hero-bg {
  filter: invert(1);
}

.hero .container {
  position: relative;
  z-index: 1;
}

.badge {
  display: block;
  width: fit-content;
  margin: -3vh auto 7vh auto;
  padding: 6px 24px;
  background: var(--surface);
  color: var(--secondary-soft);
  font-size: 1.1rem;
  font-weight: 500;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  border-radius: 100px;
  border: 1px solid var(--secondary-soft);
  font-family: var(--font-mono);
}

.hero-stat-label {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.55);
  margin-top: 6px;
  display: block;
  letter-spacing: 0.5px;
}

.hero h1 {
  font-family: var(--font-display);
  font-size: clamp(2.9rem, 6.1vw, 4.9rem);
  font-weight: 900;
  line-height: 1.2;
  color: var(--hero-text);
  margin-bottom: 4vh;
  margin-top: 8vh;
  max-width: 100%;
  text-align: center;
}

.hero h1 em {
  font-style: italic;
  font-weight: 900;
  color: var(--primary);
}

.hero-sub {
  font-size: 1.45rem;
  max-width: 100%;
  margin: 0 auto 10vh auto;
  color: var(--text);
  line-height: 1.8;
  font-weight: 200;
  text-align: center;
}

.hero-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 64px;
}

.hero-stats {
  display: flex;
  gap: 56px;
  justify-content: center;
  margin-top: 20px;
}

.hero-stat {
  text-align: center;
}

.hero-stat-num {
  font-family: var(--font-body);
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--accent);
  line-height: 1;
  display: block;
}

/* === SECTION BASE === */

section {
  padding: 100px 0;
  position: relative;
}

.section-header {
  text-align: center;
  max-width: 100%;
  margin: 0 auto 60px;
}

.section-tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--primary);
  padding: 4px 14px;
  border: 1px solid var(--border);
  border-radius: 100px;
  margin-bottom: 18px;
}

.section-header h2 {
  font-family: var(--font-display);
  font-size: clamp(2.9rem, 6.1vw, 4.9rem);
  font-weight: 800;
  line-height: 1.2;
  color: var(--hero-text);
  margin-bottom: 4vh;
  margin-top: 8vh;
  max-width: 100%;
  text-align: center;
}

.section-header em {
  font-size: clamp(2.9rem, 6.1vw, 4.9rem);
  font-style: italic;
  font-weight: 900;
  color: var(--primary);
}

.section-header p {
  font-size: 1.45rem;
  max-width: 100%;
  margin: 0 auto 10vh auto;
  color: var(--text);
  line-height: 1.8;
  font-weight: 200;
  text-align: center;
}


/* === PROBLEMA === */
.problema {
  background: var(--bg);
}

.problema strong {
  font-size: clamp(2.9rem, 6.1vw, 4.9rem);
  font-style: italic;
  font-weight: 900;
  color: var(--primary);
}

.problema-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10vh;
  margin-top: 15vh;
  margin-bottom: 10vh;
}

.problema-card {
  position: relative;
  padding: 36px 32px 36px 40px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  transition: all var(--transition);
  overflow: hidden;
}

.problema-card::before {
  content: '';
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(to right, var(--primary) 40%, var(--accent) 80%);
  opacity: 0;
  transition: opacity var(--transition);
}

.problema-card:hover {
  border: 0.05rem solid var(--primary);
}

.problema-card:hover::before {
  opacity: 1;
}

.problema-ornament {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 60px;
  height: 60px;
  border: 0px solid var(--border);
  border-radius: 50%;
  object-fit: contain;
  padding: 2px;
  background: var(--accent);
}

.problema-num {
  font-family: var(--font-display);
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--primary);
  opacity: 0.08;
  position: absolute;
  top: 40px;
  right: 40px;
  transform: translate(50%, -50%);
  line-height: 1;
}

.problema-card h3 {
  font-family: var(--font-body);
  font-size: 1.7rem;
  font-weight: 700;
  color: var(--primary);
  margin-bottom: 12px;
}

.problema-card p {
  color: var(--text-nav);
  font-size: 1.2rem;
  line-height: 1.7;
  padding-left: 4px;
}

.problema-card:hover p {
  color: var(--byn);
}

/* === SOLUCION / PILARES === */
.solucion {
  background: var(--surface);
  margin: 4vh 0 10vh 0;
}


.solucion em {
  background: linear-gradient(to right, var(--primary) 40%, var(--accent) 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.pillar-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6vh;
  margin: 20vh 0 15vh 0;
}

.pillar-card {
  position: relative;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 0;
  transition: all var(--transition);
  overflow: hidden;
}

.pillar-card:hover {
  border: 0.05rem solid var(--primary);
}

.pillar-number {
  font-family: var(--font-body);
  font-size: 9vh;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  background-color: var(--border);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 2vh 4vh 0 0;
  opacity: 0.3;
  position: absolute;
  top: 0;
  right: 0;
  left: auto;
}

.pillar-card:hover .pillar-number {
 background-color: var(--primary);
}

.pillar-body {
  padding: 28px 32px 32px;
}

.pillar-body h3 {
  font-family: var(--font-display);
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.5;
  margin: 2vh 0 4vh 0;
}

.pillar-subtitle {
  font-family: var(--font-mono);
  font-size: 2.5vh;
  font-weight: 700;
  letter-spacing: 1px;
  background: linear-gradient(to right, var(--primary) 60%, var(--accent) 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.pillar-body > p {
  font-size: 1.25rem;
  line-height: 1.6rem;
  margin-bottom: 20px;
}

.pillar-list {
  list-style: none;
  font-size: 2vh;
  border-top: 1px solid var(--border);
  margin: 0 0 4vh 0;
  padding-top: 2vh;
}

.pillar-list strong {
    background: var(--accent);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.pillar-list {
  display: flex;
  flex-wrap: wrap; /* Permite que los elementos pasen a la siguiente línea si no caben */
  gap: 1rem;       /* Espacio entre los elementos horizontales */
  padding: 0;
  list-style: none;
}

.pillar-list li {
  font-size: 1.2rem;
  margin: 2rem 2rem 0 0;
  color: var(--text);
  display: flex;
  align-items: center; /* Cambiado a center para alinear la viñeta con el texto */
  gap: 1rem;
}

.pillar-list li::before {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--primary);
  /* Se elimina margin-top: 8px para que no quede descentrado */
  flex-shrink: 0;
}

.pillar-list li strong {
  color: var(--text);
}

.pillar-services-title {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--primary);
  margin: 24px 0 4px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.pillar-services {
  list-style: none;
  font-size: 0.88rem;
}

.pillar-services li {
  padding: 12px 0 14px;
  border-bottom: 1px dashed var(--border);
}

.pillar-services li:last-child {
  border-bottom: none;
}

.pillar-services li strong {
  display: block;
  color: var(--text);
  font-size: 0.92rem;
  margin-bottom: 4px;
}

.pillar-services li span {
  display: block;
  color: var(--text);
  font-size: 0.85rem;
  line-height: 1.6;
}

.pillar-deliverable {
  display: block;
  margin-top: 8px;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-style: normal;
  line-height: 1.5;
  color: var(--primary);
}

.pillar-transversal {
  grid-column: 1 / -1;
}

.servicios-note {
  max-width: 780px;
  margin: 40px auto 0;
  text-align: center;
}

.servicios-note-sub {
  margin-top: 12px;
  font-size: 0.78rem;
}

/* === MOTULOS === */

.modulos {
  background: var(--bg);
}

.modulos em {
  background: linear-gradient(45deg, var(--primary) 40%, var(--accent) 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: var(--font-body);
  font-size: clamp(3.8rem, 5.5vw, 3.8rem);
  font-style: normal;

}

.modulos .section-header p {
  margin-bottom: 15vh;
}

.modulo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8vh;
  margin-bottom: 7vh;
}

.modulo-card {
  background: var(--surface);
  border: 0.01rem solid var(--text-nav);
  border-radius: var(--radius);
  padding: 7vh 4vh 6vh 4vh;
  text-align: center;
  transition: all var(--transition);
  position: relative;
}

.modulo-card:hover {
  border: 0.02rem solid var(--byn);
}

.modulo-card:hover .modulo-icon {
  color: var(--primary);
  border: 0.01rem solid var(--primary);
}

.modulo-icon {
  width: 80px;
  height: 80px;
  border-radius: 16px;
  border: 0.15vh solid var(--secondary-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 22px;
  position: relative;
  z-index: 1;
  color: var(--secondary-soft);
  padding: 0.1rem;
}

.modulo-card h3 {
  font-size: 1.4rem;
  font-weight: 800;
  margin: 4vh 0 2.5vh 0;
  position: relative;
  z-index: 1;
  background: linear-gradient(45deg, var(--primary) 40%, var(--accent) 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.modulo-card p {
  color: var(--text-nav);
  font-size: 1.2rem;
  line-height: 1.5;
  position: relative;
  z-index: 1;
}

.modulo-card:hover p {
  color: var(--byn);
  font-size: 1.2rem;
  line-height: 1.5;
  position: relative;
  z-index: 1;
}

.modulo3 {
  background: var(--surface);
}

.modulo3 .modulo3-card {
  min-width: 100%;
  margin: 0 auto;
  background: var(--bg);
}

.modulo3-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 6vh;
  margin-bottom: 1vh;
  position: relative;
  z-index: 1;
}

.modulo3-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 5vh;
}

.modulo3-icon {
  width: 70px;
  height: 70px;
  border-radius: 16px;
  border: 1px solid var(--check-hover);
  background: transparent;
  color: var(--check-hover);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 4vh;
  transition: all var(--transition);
  position: relative;
  z-index: 1;
}


.modulo3-card {
  background: var(--bg);
  border: 0.2vh solid;
  border-color: var(--border);
  border-radius: var(--radius);
  padding: 7vh 5vh;
  text-align: center;
  transition: all var(--transition);
  position: relative;
}

.modulo3-card:hover {
  border: 2px solid var(--secondary);
}

.modulo3-card h3 {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 800;
  line-height: 1.15;
  margin: 4vh 0 2.5vh 0;
  position: relative;
  z-index: 1;
  color: var(--text);
}

.modulo3-card em {
  background: linear-gradient(to right, var(--primary) 40%, var(--accent) 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.modulo2 {
  background: var(--bg);
}

.modulo2 .btn-ghost {
  color: var(--check-hover) !important;
  border-color: var(--check-hover) !important;
}

.modulo2 .btn-ghost:hover {
  color: var(--primary) !important;
  border-color: var(--primary) !important;
}

.modulo2 .modulo2-card {
  min-width: 100%;
  margin: 0 auto;
  background: var(--surface);
}

.modulo2-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 6vh;
  margin-bottom: 1vh;
  position: relative;
  z-index: 1;
}

.modulo2-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 5vh;
}

.modulo2-icon {
  width: 70px;
  height: 70px;
  border-radius: 16px;
  border: 1px solid var(--check-hover);
  background: transparent;
  color: var(--check-hover);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 4vh;
  transition: all var(--transition);
  position: relative;
  z-index: 1;
}


.modulo2-card {
  background: var(--surface);
  border: 0.2vh solid;
  border-color: var(--border);
  border-radius: var(--radius);
  padding: 7vh 5vh;
  text-align: center;
  transition: all var(--transition);
  position: relative;
}

.modulo2-card:hover {
  border: 2px solid var(--secondary);
}

.modulo2-card h3 {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  line-height: 1.15;
  margin: 4vh 0 2.5vh 0;
  position: relative;
  z-index: 1;
  color: var(--primary);
}

.modulo2-card h3,
.modulo2-card h3 strong {
  font-style: italic;
  color: var(--primary);
}


/* === PLANES === */
.planes {
  background: var(--bg);
}

.planes h2 {
  margin-bottom: 12px;
}

.planes em {
  background: linear-gradient(45deg, var(--primary) 40%, var(--accent) 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.planes-table-wrap {
  overflow-x: auto;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: 0 4px 24px var(--shadow);
  margin: 15vh 0 1vh 0;
}

.planes-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  min-width: 680px;
}

.planes-table thead th {
  background: var(--row-hover);
  color: var(--text);
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  padding: 18px 20px;
  text-align: center;
  border-bottom: none;
}

.planes-table thead th:first-child {
  background: var(--row-hover);
  color: transparent;
  width: 60px;
}

.planes-table tbody td:first-child {
  font-weight: 700;
  color: var(--text);
  text-align: left;
  padding-left: 20px;
}

.planes-table tbody td {
  padding: 14px 20px;
  text-align: center;
  border-bottom: 1px solid var(--border);
  transition: background var(--transition);
}

.planes-table tbody tr:hover td {
  background: var(--row-hover);
  color: var(--byn);
}

.planes-table tbody td[data-check="true"] {
  color: var(--check-hover);
  font-weight: 600;
  font-size: 2rem;
}

.planes-table tbody tr:hover td[data-check="true"] {
  color: var(--check);
  font-size: 2rem;
  font-weight: 800;
}

.planes-table tbody tr.price-row td {
  background: var(--row-hover);
  font-weight: 700;
  border-bottom: none;
}

.price {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--text);
}

.price-highlight {
  color: var(--primary);
  font-size: 20px;
  font-weight: 700;
}

.nota {
  text-align: center;
  color: var(--text);
  font-size: 0.85rem;
  margin-top: 24px;
  font-style: italic;
}

.planes-cta {
  text-align: center;
  margin-top: 40px;
}

/* === EQUIPO === */
.equipo {
  background: var(--surface);
}

.equipo em {
  background: linear-gradient(45deg, var(--primary) 40%, var(--accent) 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.equipo h2 {
  margin-bottom: 2rem;
}

.equipo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
  margin-top: 8rem;
}

.team-card {
  background: var(--bg);
  border: 0.05rem solid var(--border);
  border-radius: var(--radius);
  padding: 4rem 1rem 2rem 1rem;
  text-align: center;
}

.team-portrait,
.team-card h3,
.team-experience {
  transition: color var(--transition), border-color var(--transition);
}

.team-card:hover {
  border: 0.05rem solid var(--accent);
}

.team-card:hover p {
  color: var(--byn);
}

.team-card:hover .team-portrait {
  border: 0.5rem solid var(--accent);
}

.team-card:hover h3 {
  color: var(--accent);
}

.team-portrait {
  width: 7.7rem;
  height: 7.7rem;
  border-radius: 50%;
  margin: 0 auto 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(primary);
  border: 2rem solid var(--primary);
}

.team-card:hover .team-experience {
  color: var(--primary);
}

.team-initial {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  color: var(--primary);
}

.team-card h3 {
  font-size: 1.8rem;
  font-weight: 800;
  margin-bottom: 6px;
  font-family: var(--font-display);
  color: var(--primary);
}

.team-experience {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 1rem;
  font-weight: 500;
  color: var(--accent);
  background: var(--surface);
  padding: 6px 18px;
  border-radius: 100px;
  margin-bottom: 2rem;
  letter-spacing: 0.5px;
}

.team-card p {
  color: var(--text-nav);
  font-size: 1.25rem;
  line-height: 1.3;
  text-align: left;
  margin: 0 0 1.8rem 1rem;
}

/* === RESULTADOS / KPIs === */
.resultados {
  background: var(--bg);
}

.resultados h2 {
  margin-bottom: 44px;
}

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.kpi-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 24px;
  display: flex;
  align-items: center;
  gap: 20px;
  transition: all var(--transition);
  position: relative;
  overflow: hidden;
}

.kpi-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: var(--primary);
  opacity: 0;
  transition: opacity var(--transition);
}

.kpi-card:hover {
  border-color: transparent;
  box-shadow: 0 8px 32px var(--shadow-hover);
  transform: translateY(-2px);
}

.kpi-card:hover::before {
  opacity: 1;
}

.kpi-num {
  font-family: var(--font-body);
  font-size: 2rem;
  font-weight: 600;
  color: var(--primary);
  flex-shrink: 0;
  line-height: 1;
}

.kpi-label {
  font-size: 0.88rem;
  color: var(--text);
  line-height: 1.5;
  font-weight: 400;
}

/* === CONTACTO === */

.contacto {
  position: relative;
  max-width: 100%;
  inset: 0;
  background: url("images/bg-hero.webp") center / cover no-repeat;
  opacity: 1;
}

.contacto::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0);
}

body.dark .contacto::before {
  background: url("images/bg-hero.webp") center / cover no-repeat;
  filter: invert(1);
}

.contacto .container {
  position: relative;
  z-index: 1;
}

body.light .contacto .section-header h2 {
  color: var(--hero-text);
}

body.light .contacto .section-header p {
  color: var(--text);
}

.contacto h2 {
  margin-bottom: 12px;
  background: linear-gradient(to right, var(--primary) 40%, var(--accent) 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.contact-form {
  max-width: 720px;
  margin: 0 auto;
  padding: 5% 3% 3% 3%;
  background-color: var(--surface);
  border: 1px solid var(--secondary-soft);
  border-radius: 2vh;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  padding-bottom: 5%;
}

.form-group {
  display: flex;
  flex-direction: column;
  padding-bottom: 5%;
  margin-top: 2%;
}

.form-group label {
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--text);
  letter-spacing: 0.2px;
  margin: 2%;
}

.form-group input,
.form-group select,
.form-group textarea {
  padding: 13px 16px;
  border: 1px solid var(--secondary-soft);
  border-radius: var(--radius-sm);
  font-size: 0.93rem;
  font-family: var(--font-body);
  color: var(--text);
  background: var(--bg);
  transition: border-color var(--transition), box-shadow var(--transition);
  outline: none;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(199, 62, 29, 0.1);
}

.form-group textarea {
  resize: vertical;
  min-height: 28vh;
}

.checkbox-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 10px;
  gap: 2vh;
}

.checkbox-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 400;
  font-size: 0.88rem;
  cursor: pointer;
  color: var(--text);
  padding: 10px 14px;
  border-radius: var(--radius-xs);
  border: 1px solid var(--secondary-soft);
  transition: all var(--transition);
  background-color: var(--bg);
}

.checkbox-label:hover {
  border-color: var(--primary);
  background: var(--surface);
}

.checkbox-label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.checkbox-custom {
  width: 18px;
  height: 18px;
  border: 2px solid var(--secondary-soft);
  border-radius: 4px;
  flex-shrink: 0;
  transition: all var(--transition);
  position: relative;
}

.checkbox-label:has(input:checked) .checkbox-custom,
.checkbox-label.checked .checkbox-custom {
  background: var(--primary);
  border-color: var(--primary);
}

.checkbox-label:has(input:checked) .checkbox-custom::after,
.checkbox-label.checked .checkbox-custom::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 1px;
  width: 6px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.checkbox-label:has(input:checked),
.checkbox-label.checked {
  border-color: var(--primary);
  color: var(--text);
}

fieldset.form-group {
  border: 1px solid var(--secondary-soft);
  border-radius: var(--radius-sm);
  padding: 20px;
  margin-bottom: 2vh;
}

fieldset.form-group legend {
  font-weight: 600;
  font-size: 0.85rem;
  padding: 0 8px;
  color: var(--text);
  letter-spacing: 0.2px;
}

.contact-form .btn {
  color: var(--text-muted);
  background-color: var(--primary);
  border-color: var(--text-muted);
  max-width: 50%;
  text-align: center;
  display: block;
  margin: 5vh auto;
}

.contact-form .btn:hover {
  color: var(--primary);
  background-color: transparent;
  border-color: var(--primary);
}

.error-msg {
  display: none;
  color: #d43f3f;
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1.4;
  margin-top: 6px;
}

.error-msg.show {
  display: block;
}

.form-group.invalid input,
.form-group.invalid select,
.form-group.invalid textarea {
  border-color: #d43f3f;
}

.form-group.invalid label {
  color: #d43f3f;
}

/* === FAQ === */
.faq {
  background: var(--surface);
  margin: 4vh 0 6vh 0;
}

.faq h2 {
  margin-bottom: 14vh;
}

.faq-list {
  max-width: 780px;
  margin: 0 auto;
}

.faq-item {
  border-bottom: 1px solid var(--border);
}

.faq-question {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: none;
  border: none;
  padding: 22px 0;
  font-size: 1.7rem;
  font-weight: 500;
  color: var(--text);
  cursor: pointer;
  text-align: left;
  font-family: italic;
  transition: color var(--transition);
  gap: 16px;
}

.faq-question:hover {
  color: var(--primary);
}

.faq-question[aria-expanded="true"] {
  color: var(--primary);
}

.faq-icon {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  position: relative;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-icon::before,
.faq-icon::after {
  content: '';
  position: absolute;
  background: var(--text);
  border-radius: 1px;
  transition: background var(--transition);
}

.faq-icon::before {
  width: 14px;
  height: 2px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.faq-icon::after {
  width: 2px;
  height: 14px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.faq-question[aria-expanded="true"] .faq-icon {
  transform: rotate(145deg);
}

.faq-question[aria-expanded="true"] .faq-icon::before,
.faq-question[aria-expanded="true"] .faq-icon::after {
  background: var(--primary);
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), padding-bottom 0.3s ease;
}

.faq-answer p {
  color: var(--text);
  font-size: 1.3rem;
  font-weight: 300;
  line-height: 1.6;
  padding-bottom: 22px;
  padding-right: 20px;
}

/* === FOOTER === */
.footer {
  background: var(--surface-strong);
  color: var(--text);
  padding: 60px 0 36px;
  transition: background var(--transition);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1.5fr;
  gap: 48px;
  margin-bottom: 48px;
}

.footer-brand .logo {
  display: inline-flex;
  margin-bottom: 12px;
}

.footer-brand .logo-mark {
  border-color: rgba(255, 255, 255, 0.3);
  color: var(--accent);
}

.footer-brand .logo-text {
  color: var(--hero-text);
}

.footer-brand .tagline {
  font-size: 2.2vh;
  margin-top: 1.5vh;
  margin-bottom: 4vh;
  letter-spacing: 0.1vh;
  line-height: 3.4vh;
  font-weight: 100;
  color: var(--text);
}

.footer-contact {
  margin-top: 16px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4%;
}

.footer-contact a {
  display: inline-block;
  width: 32px;
  height: 32px;
  background-color: var(--text);
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  transition: background-color var(--transition);
}

.footer-contact a:hover {
  background-color: var(--primary);
}

.footer-contact .icon-whatsapp {
  -webkit-mask-image: url("data:image/webp;base64,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");
  mask-image: url("data:image/webp;base64,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");
}

.footer-contact .icon-correo {
  -webkit-mask-image: url("data:image/webp;base64,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");
  mask-image: url("data:image/webp;base64,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");
}

.footer-contact .icon-telefono {
  -webkit-mask-image: url("data:image/webp;base64,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");
  mask-image: url("data:image/webp;base64,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");
}

.footer-contact .icon-linkedin {
  -webkit-mask-image: url("data:image/webp;base64,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");
  mask-image: url("data:image/webp;base64,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");
}

.footer-links h4,
.footer-legal h4 {
  color: var(--primary);
  font-size: 0.78rem;
  margin-bottom: 18px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.footer-links a {
  display: block;
  color: var(--text);
  text-decoration: none;
  font-size: 0.9rem;
  padding: 5px 0;
  transition: color var(--transition);
}

.footer-links a:hover {
  background: linear-gradient(45deg, var(--primary) 40%, var(--accent) 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.footer-legal p {
  font-size: 0.9rem;
  line-height: 1.7;
}

.copy {
  text-align: center;
  font-size: 0.8rem;
  padding-top: 28px;
  border-top: 1px solid var(--border);
  font-family: var(--font-mono);
}

.copy span {
   color: var(--primary);
   font-size: 2rem;
   vertical-align: -13%;
}

/* === SCROLL REVEAL ANIMATIONS === */

.reveal-delay-1 { animation-delay: 0.1s; }
.reveal-delay-2 { animation-delay: 0.15s; }
.reveal-delay-3 { animation-delay: 0.2s; }
.reveal-delay-4 { animation-delay: 0.25s; }
.reveal-delay-5 { animation-delay: 0.3s; }
.reveal-delay-6 { animation-delay: 0.35s; }
.reveal-delay-7 { animation-delay: 0.4s; }

html.js .reveal-up {
  opacity: 0;
  transform: translateY(32px);
}

html.js .reveal-up.revealed {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

@media (prefers-reduced-motion: reduce) {
  html.js .reveal-up,
  html.js .reveal-up.revealed {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .scroll-hint::after {
    animation: none;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* === RESPONSIVE === */

@media (max-width: 1024px) {
  .equipo-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 768px) {
  .nav-toggle {
    display: flex;
  }

  body.nav-open {
    overflow: hidden;
  }

  .nav {
    position: fixed;
    top: 0;
    right: 0;
    width: 280px;
    height: 100vh;
    background: var(--surface);
    flex-direction: column;
    padding: 90px 28px 28px;
    border-left: 1px solid var(--border);
    box-shadow: -8px 0 32px rgba(0, 0, 0, 0.1);
    transform: translateX(100%);
    opacity: 0;
    pointer-events: none;
    transition: transform var(--transition), opacity var(--transition);
    gap: 20px;
  }

  body.nav-open .nav {
    transform: translateX(0);
    opacity: 1;
    pointer-events: all;
  }

  .nav a {
    font-size: 1rem;
    padding: 8px 0;
  }

  .logo-mark {
    width: 200px;
  }

  .hero {
    padding: 100px 0 80px;
    min-height: auto;
  }

  .hero-stats {
    gap: 32px;
  }

  .hero-stat-num {
    font-size: 2rem;
  }

  section {
    padding: 72px 0;
  }

  .problema-grid {
    grid-template-columns: 1fr;
  }

  .pillar-grid {
    grid-template-columns: 1fr;
  }

  .modulo-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .equipo-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .kpi-grid {
    grid-template-columns: 1fr;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .checkbox-grid {
    grid-template-columns: 1fr;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .hero-actions {
    flex-direction: column;
    align-items: center;
  }

  .btn {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 480px) {
  .modulo-grid {
    grid-template-columns: 1fr;
  }

  .equipo-grid {
    grid-template-columns: 1fr;
    max-width: 320px;
    margin: 0 auto;
  }

  .hero h1 {
    font-size: 2.2rem;
  }

  .hero-stats {
    flex-direction: column;
    gap: 20px;
  }

  .hero-stat-num {
    font-size: 2rem;
  }

  .container {
    padding: 0 20px;
  }
}

/* === PÁGINA SOLUCIONES === */

html:has(body.pagina-soluciones),
html.pagina-soluciones {
  scroll-padding-top: 140px;
}

.nav a.active {
  color: var(--primary);
}

.nav a.active::after {
  width: 100%;
}

/* === PAGE HERO === */
.page-hero {
  position: relative;
  padding: 130px 0 96px;
  overflow: hidden;
  background: var(--secondary);
  min-height: 66vh;
  display: flex;
  align-items: center;
  text-align: center;
}

.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("images/bg-hero.webp") center / cover no-repeat;
}

body.dark .page-hero::before {
  background: url("images/bg-hero.webp") center / cover no-repeat;
  filter: invert(1);
}

.page-hero .container {
  position: relative;
  z-index: 1;
}

.page-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 5.5vw, 4.4rem);
  font-weight: 700;
  line-height: 1.1;
  color: var(--hero-text);
  margin-bottom: 22px;
}

.page-hero h1 em {
  font-style: italic;
  color: var(--primary);
}

.page-hero .hero-sub {
  font-size: 1.12rem;
  font-weight: 300;
  line-height: 1.8;
  color: var(--text);
  max-width: 640px;
  margin: 0 auto 40px;
}

.page-hero-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

.page-hero .btn-ghost {
  color: var(--text);
  border-color: rgba(255, 255, 255, 0.6);
}

.page-hero .btn-ghost:hover {
  background: var(--primary);
  border-color: var(--text-muted);
  color: var(--text-muted);
}

/* === PRIVACIDAD === */
.document-body {
  padding: 72px 0 96px;
}

.content-wrapper {
  max-width: 100%;
  margin: 0 auto;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: 0 4px 24px var(--shadow);
  padding: 48px 56px;
}

.content-wrapper > * + * {
  margin-top: 18px;
}

.content-wrapper span {
  color: var(--primary);
}


.content-wrapper h2 {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.5vw, 1.9rem);
  font-weight: 700;
  color: var(--text);
  margin-top: 40px;
  line-height: 1.2;
}

.content-wrapper h3 {
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--text);
  margin-top: 32px;
}

.content-wrapper p,
.content-wrapper li {
  color: var(--text);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 300;
}

.content-wrapper .badge {
  width: fit-content;
  padding: 10px 15px;
  margin: 0 0 0 0;
  background: var(--surface);
  color: var(--text);
  font-size: 0.6rem;
  font-weight: 500;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  border-radius: 2px;
  border: 1px solid var(--secondary-soft);
  font-family: var(--font-mono);
}

.content-wrapper ul,
.content-wrapper ol {
  padding-left: 1.4rem;
}

.content-wrapper a {
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.content-wrapper a:hover {
  color: var(--accent);
}

.content-wrapper hr {
  border: none;
  border-top: 1px solid var(--border);
  margin: 40px 0;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  margin: 24px 0;
}

.data-table th,
.data-table td {
  border: 1px solid var(--border);
  padding: 12px 16px;
  text-align: left;
  vertical-align: top;
}

.data-table thead th {
  background: var(--secondary);
  color: var(--text);
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}

.data-table tbody tr:hover {
  background: var(--row-hover);
}

@media (max-width: 640px) {
  .content-wrapper {
    padding: 32px 24px;
  }
}

.scroll-hint {
  margin-top: 50px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: var(--text);
  font-family: var(--font-mono);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.scroll-hint::after {
  content: '';
  width: 2px;
  height: 55px;
  background: linear-gradient(var(--accent), transparent);
  animation: scrollPulse 1.8s ease-in-out infinite;
}

@keyframes scrollPulse {
  0% { transform: scaleY(0); transform-origin: top; opacity: 0; }
  40% { opacity: 1; }
  100% { transform: scaleY(1); transform-origin: top; opacity: 0; }
}

/* === PILLAR TOC === */
.pillar-toc {
  position: sticky;
  top: 72px;
  z-index: 50;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: 16px 0;
  transition: background var(--transition), box-shadow var(--transition);
}

.pillar-toc.is-stuck {
  box-shadow: 0 8px 28px var(--shadow);
}

.pillar-toc-inner {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}

.pillar-toc a {
  text-decoration: none;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 100px;
  padding: 8px 18px;
  transition: all var(--transition);
}

.pillar-toc a:hover {
  color: var(--primary);
  border-color: var(--primary);
}

.pillar-toc a.active {
  background: var(--primary);
  color: #ffffff;
  border-color: var(--primary);
}

/* === PAGE STATS === */
.page-stats {
  background: var(--bg);
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.stat-card {
  position: relative;
  background: var(--surface);
  border-color: transparent;
  border-radius: var(--radius);
  padding: 34px 24px 28px;
  text-align: center;
  overflow: hidden;
  transition: all var(--transition);
}

.stat-card:hover {
  border: 1px solid var(--border);
  box-shadow: 0 16px 48px var(--shadow-hover);
  transform: translateY(-4px);
}

.stat-icon {
  width: 52px;
  height: 52px;
  margin: 0 auto 18px;
  border-radius: 14px;
  background: var(--primary-soft);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
}

.stat-num {
  display: block;
  font-family: var(--font-body);
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.stat-label {
  display: block;
  margin-top: 12px;
  font-size: 0.86rem;
  color: var(--text);
  line-height: 1.5;
}

/* === SOLUCION === */
.pillar-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: var(--primary-soft);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  transition: all var(--transition);
}

.pillar-card:hover .pillar-icon {
  background: var(--primary);
  color: #ffffff;
}

/* === PAGE FLOW === */
.page-flow {
  background: var(--bg);
}

.flow-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.flow-grid::before {
  content: '';
  position: absolute;
  top: 22px;
  left: 12.5%;
  right: 12.5%;
  border-top: 2px dashed var(--border);
}

.flow-step {
  position: relative;
  text-align: center;
  padding: 0 8px;
}

.flow-num {
  position: relative;
  z-index: 1;
  display: block;
  width: 44px;
  height: 44px;
  line-height: 2.5rem;
  margin: 0 auto;
  border-radius: 50%;
  border: 0.1rem solid var(--primary);
  background: var(--surface);
  color: var(--primary);
  font-family: var(--font-body);
  font-size: 1.8rem;
  font-weight: 700;
  box-shadow: 0 6px 20px rgba(199, 62, 29, 0.3);
}

.flow-step h4 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--accent);
  margin: 1rem 0 0.5rem 0;
}

.flow-num:hover {
  border: 0.1rem solid var(--byn);
  background: var(--primary);
  color: var(--byn);
}

.flow-step:hover h4 {
  color: var(--primary);
}

.flow-step p {
  font-size: 0.86rem;
  color: var(--text-nav);
  line-height: 1.6;
}

.flow-step:hover p {
  color: var(--byn);
}

/* === PAGE CTA === */
.page-cta {
  background: var(--surface);
  text-align: center;
}

.page-cta h2 {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3.6vw, 2.7rem);
  color: var(--text);
  margin-bottom: 16px;
}

.page-cta p {
  color: var(--text);
  max-width: 560px;
  margin: 0 auto 36px;
  font-size: 1.02rem;
}

/* === RESPONSIVE === */
@media (max-width: 1024px) {
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .flow-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .flow-grid::before {
    display: none;
  }
}

@media (max-width: 768px) {
  .page-hero {
    padding: 100px 0 70px;
    min-height: auto;
  }

  .pillar-toc {
    top: 60px;
  }
}

@media (max-width: 480px) {
  .stats-grid {
    grid-template-columns: 1fr;
  }

  .flow-grid {
    grid-template-columns: 1fr;
  }

  .flow-grid .flow-step {
    max-width: 320px;
    margin: 0 auto;
  }
}
