﻿@charset "UTF-8";

/* =====================================================
   ROOT VARIABLES
===================================================== */

:root {
  --navy-deep:   #091424;
  --navy:        #0f2646;
  --navy-mid:    #102645;
  --navy-light:  #153a6a;
  --blue:        #1155a8;
  --blue-light:  #4c8be6;
  --blue-pale:   #eaf2fc;
  --text-dark:   #0f2646;
  --text-mid:    #38506f;
  --text-muted:  #61748b;
  --bg-white:    #ffffff;
  --bg-light:    #f7f9fc;
  --bg-mid:      #eef3f9;
  --border:      rgba(15,38,70,.08);
  --shadow-sm:   0 10px 24px rgba(15,38,70,.05);
  --shadow-md:   0 18px 44px rgba(15,38,70,.08);
  --shadow-lg:   0 28px 60px rgba(15,38,70,.12);
  --radius-sm:   16px;
  --radius-md:   24px;
  --radius-lg:   32px;
}

/* =====================================================
   RESET & BASE
===================================================== */

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

body {
  font-family: 'Inter', Arial, Helvetica, sans-serif;
  background: var(--bg-white);
  color: var(--text-dark);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

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

button {
  cursor: pointer;
  border: none;
  background: none;
  font-family: inherit;
}

/* =====================================================
   NAVBAR
===================================================== */

.site-header {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 100;
  background: #0a1628;
  border-bottom: 1px solid rgba(255,255,255,.06);
  box-shadow: 0 2px 20px rgba(0,0,0,.35);
  animation: navSlideDown .5s cubic-bezier(.22,1,.36,1) both;
  transition: background .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.site-header.is-scrolled {
  background: rgba(7,11,22,.97);
  border-bottom-color: rgba(76,139,230,.18);
  box-shadow: 0 4px 32px rgba(0,0,0,.55);
}
@keyframes navSlideDown {
  from { transform: translateY(-100%); opacity: 0; }
  to   { transform: translateY(0);     opacity: 1; }
}

.nav-inner {
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 52px;
  position: relative;
}
/* El nav se centra ABSOLUTAMENTE en la barra para que brand y acciones
   queden bien spaceados a los lados, sin gaps gigantes. */
.nav-inner .desktop-nav {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

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

.brand-logo {
  height: auto;
  transition: transform .22s ease, opacity .22s ease;
}
.brand:hover .brand-logo { transform: scale(1.05); opacity: .85; }
.desktop-logo { width: 120px; }
.mobile-logo  { display: none; width: 28px; }

/* NAV LINKS */

.desktop-nav {
  display: flex;
  gap: 2px;
}

.desktop-nav a {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: rgba(255,255,255,.72);
  font-size: 13.5px;
  font-weight: 500;
  padding: 8px 14px;
  border-radius: 10px;
  transition: color .2s ease;
  letter-spacing: .1px;
  position: relative;
  overflow: hidden;
}
.desktop-nav a::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.1);
  border-radius: 10px;
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .22s cubic-bezier(.22,1,.36,1);
}
.desktop-nav a:hover::before { transform: scaleY(1); }
.desktop-nav a:hover { color: #fff; }

.desktop-nav a.nav-active {
  color: #fff;
  font-weight: 700;
}
.desktop-nav a.nav-active::before {
  background: rgba(76,139,230,.22);
  transform: scaleY(1);
}

.desktop-nav a.nav-active::after {
  content: '';
  position: absolute;
  bottom: 5px;
  left: 50%;
  transform: translateX(-50%) scaleX(1);
  width: 18px;
  height: 2px;
  border-radius: 999px;
  background: #4c8be6;
  animation: navDotIn .3s cubic-bezier(.22,1,.36,1) both;
}
@keyframes navDotIn {
  from { width: 0; opacity: 0; }
  to   { width: 18px; opacity: 1; }
}

/* NAV CTA BUTTON */

.cta-nav-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 22px;
  background: linear-gradient(135deg,#1155a8,#1a6fd4);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  border-radius: 999px;
  border: none;
  box-shadow: 0 3px 14px rgba(17,85,168,.45);
  transition: box-shadow .2s ease, transform .18s ease;
  white-space: nowrap;
  letter-spacing: .1px;
  position: relative;
  overflow: hidden;
}
.cta-nav-btn::after {
  content: '';
  position: absolute;
  top: 0; left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
  transform: skewX(-20deg);
  animation: shimmer 3.2s infinite;
}
@keyframes shimmer {
  0%   { left: -75%; }
  60%  { left: 125%; }
  100% { left: 125%; }
}
.cta-nav-btn:hover {
  box-shadow: 0 5px 20px rgba(17,85,168,.6);
  transform: translateY(-1px);
}

/* NAV RIGHT */

.nav-right {
  display: flex;
  align-items: center;
  gap: 14px;
}

.lang-switcher {
  display: flex;
  gap: 3px;
  background: rgba(255,255,255,.06);
  border-radius: 10px;
  padding: 3px;
  border: 1px solid rgba(255,255,255,.08);
}

.lang-btn {
  display: flex;
  align-items: center;
  padding: 5px 9px;
  border-radius: 7px;
  border: none;
  background: transparent;
  font-size: 11px;
  font-weight: 700;
  gap: 5px;
  font-family: inherit;
  color: rgba(255,255,255,.6);
  transition: background .15s ease, color .15s ease;
  cursor: pointer;
  letter-spacing: .2px;
}

.lang-btn img { width: 14px; height: 10px; object-fit: cover; border-radius: 2px; }

.lang-btn.active {
  background: rgba(76,139,230,.25);
  color: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.2);
}

.lang-btn:not(.active):hover {
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.9);
}

/* MENU TOGGLE */

.menu-toggle {
  display: none;
  position: relative;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.07);
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 5px;
  transition: all .22s ease;
  cursor: pointer;
}

.menu-toggle:hover {
  background: rgba(255,255,255,.13);
  border-color: rgba(255,255,255,.18);
}

.menu-toggle span {
  display: block;
  width: 18px;
  height: 2px;
  background: #fff;
  border-radius: 999px;
  transition: all .22s ease;
}

.menu-toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.active span:nth-child(2) { opacity: 0; }
.menu-toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* MOBILE MENU */

.mobile-menu {
  display: none;
  position: absolute;
  top: calc(80px + 8px);
  left: 12px;
  right: 12px;
  background: rgba(8,18,36,.96);
  backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 22px;
  padding: 10px;
  flex-direction: column;
  gap: 3px;
  box-shadow: 0 24px 60px rgba(0,0,0,.36), 0 1px 0 rgba(255,255,255,.04) inset;
}

.mobile-menu.open {
  display: flex;
  animation: mobileMenuFade .22s cubic-bezier(.4,0,.2,1);
}

.mobile-menu a {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  color: rgba(255,255,255,.85);
  padding: 13px 16px;
  border-radius: 14px;
  background: transparent;
  border: 1px solid transparent;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.mobile-menu a:hover {
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.09);
  color: #fff;
}

.menu-icon {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.07);
  border-radius: 9px;
  font-size: 15px;
  flex-shrink: 0;
  border: 1px solid rgba(255,255,255,.07);
}

.menu-label { flex: 1; }
.menu-arrow { font-size: 12px; opacity: .28; transition: transform .18s ease, opacity .18s ease; }
.mobile-menu a:hover .menu-arrow { transform: translateX(3px); opacity: .55; }

.mobile-cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 6px;
  padding: 15px;
  background: linear-gradient(135deg, #1155a8 0%, #2479e8 100%);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  border-radius: 14px;
  font-family: inherit;
  border: none;
  box-shadow: 0 6px 22px rgba(17,85,168,.38);
  transition: box-shadow .2s ease, transform .18s ease;
  cursor: pointer;
  letter-spacing: -.1px;
}

.mobile-cta-btn:hover {
  box-shadow: 0 10px 30px rgba(17,85,168,.5);
  transform: translateY(-1px);
}

@keyframes mobileMenuFade {
  from { opacity: 0; transform: translateY(-10px) scale(.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* =====================================================
   HERO
===================================================== */

.hero {
  position: relative;
  min-height: 100vh;
  margin-top: 80px;
  background: var(--navy-deep);
  isolation: isolate;
}

.hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg,
      rgba(9,20,36,.70) 0%,
      rgba(9,20,36,.48) 30%,
      rgba(9,20,36,.10) 68%,
      transparent 100%),
    linear-gradient(270deg,
      rgba(9,20,36,.60) 0%,
      rgba(9,20,36,.25) 30%,
      transparent 55%),
    linear-gradient(0deg,
      rgba(9,20,36,.52) 0%,
      rgba(9,20,36,.14) 35%,
      transparent 60%);
}

.hero-content-wrap {
  position: relative;
  z-index: 4;
  display: flex;
  align-items: center;
  padding: 70px 32px;
  min-height: calc(100vh - 80px);
}

/* Sombra izquierda para que el texto respire sobre el canvas + foto.
   Por la cascada de z-index (.hero-overlay queda DEBAJO del canvas,
   así que no sirve), inyectamos este velo aquí mismo: vive dentro del
   stacking context del wrap (z:4) → queda arriba de canvas (z:1) y
   foto (z:2), debajo del texto. */
.hero-content-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background: linear-gradient(
    90deg,
    rgba(9, 20, 36, 0.68) 0%,
    rgba(9, 20, 36, 0.55) 22%,
    rgba(9, 20, 36, 0.32) 42%,
    rgba(9, 20, 36, 0.10) 62%,
    rgba(9, 20, 36, 0.00) 80%
  );
}

/* En mobile (≤ 992px) el layout cambia: el texto está arriba sobre fondo
   ya uniforme y la foto debajo. El velo izquierdo deja de tener sentido. */
@media (max-width: 992px) {
  .hero-content-wrap::before { display: none; }
}

.hero-content {
  max-width: 680px;
  padding-left: 40px;
  color: white;
}

/* HERO LOAD ANIMATION */

.hero-fade-in {
  opacity: 0;
  transform: translateX(-38px);
  animation: heroFadeSlideIn 1.1s ease-out forwards;
  animation-delay: .15s;
}

@keyframes heroFadeSlideIn {
  0%   { opacity: 0; transform: translateX(-38px); }
  100% { opacity: 1; transform: translateX(0); }
}

/* =====================================================
   HERO FX — CANVAS NETWORK
===================================================== */
.hero-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}

/* PERSON LAYER — mismo CSS que hero-image para alineación perfecta */
.hero-person {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 2;
  pointer-events: none;
  /* filter:brightness(.8) eliminado — Edgar es la cara del grupo, debe
     verse natural. El contraste del texto ya lo da .hero-content-wrap::before
     del lado izquierdo, no hace falta opacar la foto. */
}
.hero-person-mobile  { display: none; }
.hero-person-desktop { display: block; }


.hero-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 11px;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  margin-bottom: 22px;
  opacity: .7;
  font-weight: 700;
}
.hero-kicker::before {
  content: '';
  display: inline-block;
  width: 28px;
  height: 1px;
  background: rgba(255,255,255,.6);
  flex-shrink: 0;
}

.hero-content h1 {
  font-size: 72px;
  font-weight: 900;
  margin-bottom: 6px;
  letter-spacing: -2.5px;
  line-height: 1.0;
  text-shadow: 0 4px 24px rgba(0,0,0,.45);
}

.hero-content h2 {
  font-size: 30px;
  font-weight: 600;
  color: rgba(210,228,255,.88);
  margin-bottom: 24px;
  line-height: 1.3;
  letter-spacing: -.3px;
}

.hero-description {
  font-size: 17px;
  line-height: 1.8;
  margin-bottom: 36px;
  opacity: .82;
  max-width: 520px;
}

.hero-highlight {
  display: flex;
  gap: 18px;
  margin-bottom: 36px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 18px;
  padding: 20px 24px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  align-items: flex-start;
}

.highlight-line {
  width: 3px;
  min-height: 84px;
  flex-shrink: 0;
  background: linear-gradient(180deg, #3b7de8, #5ca4ff, #3b7de8);
  border-radius: 999px;
  opacity: .9;
}

.hero-highlight strong {
  font-size: 21px;
  font-weight: 800;
  display: block;
  margin-bottom: 3px;
  letter-spacing: -.3px;
}

.hero-highlight p {
  font-size: 21px;
  font-weight: 700;
  margin-bottom: 10px;
  color: #d2e4ff;
  letter-spacing: -.2px;
}

.hero-highlight small {
  font-size: 14px;
  opacity: .72;
  line-height: 1.65;
  display: block;
}

.hero-buttons {
  display: flex;
  gap: 14px;
  margin-top: 40px;
}

/* BUTTONS */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 28px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 800;
  text-decoration: none;
  font-family: inherit;
  border: none;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  letter-spacing: -.1px;
}

.btn:hover { transform: translateY(-2px); }

.btn-primary {
  background: linear-gradient(135deg, #1155a8, #1a6fd4);
  color: #fff;
  border: none;
  box-shadow: 0 4px 24px rgba(17,85,168,.5);
  padding: 16px 32px;
  font-size: 15.5px;
  font-weight: 800;
}

.btn-primary:hover {
  background: linear-gradient(135deg, #0d4490, #1560be);
  box-shadow: 0 6px 28px rgba(17,85,168,.65);
}

.btn-secondary {
  background: rgba(255,255,255,.11);
  border: 2px solid rgba(255,255,255,.55);
  color: #fff;
  font-weight: 700;
  box-shadow: 0 0 18px rgba(255,255,255,.07), inset 0 1px 0 rgba(255,255,255,.15);
  backdrop-filter: blur(8px);
  letter-spacing: .01em;
}

.btn-secondary:hover {
  background: rgba(255,255,255,.2);
  border-color: rgba(255,255,255,.85);
  box-shadow: 0 4px 20px rgba(255,255,255,.12), inset 0 1px 0 rgba(255,255,255,.2);
}

/* =====================================================
   SHARED SECTION LAYOUT
===================================================== */

.section-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
}

.section-header {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 56px;
}

.section-kicker {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 14px;
  display: block;
}

.section-title {
  font-size: 44px;
  font-weight: 900;
  color: var(--text-dark);
  letter-spacing: -1.2px;
  line-height: 1.08;
  margin-bottom: 16px;
}

.section-subtitle {
  font-size: 18px;
  line-height: 1.75;
  color: var(--text-muted);
  font-weight: 500;
}

/* Light variants for dark sections */
.section-header-light { text-align: center; max-width: 700px; margin: 0 auto 56px; }
.section-kicker-light  { color: #6ea0e0; }
.section-title-light   { color: #fff; }
.section-subtitle-light { color: rgba(255,255,255,.6); }

/* =====================================================
   RESULTS SECTION
===================================================== */

.results-section {
  padding: 100px 0 96px;
  background: linear-gradient(180deg, #f8fafd 0%, #fff 100%);
}

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

.result-card {
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 28px 26px 24px;
  box-shadow: 0 2px 16px rgba(15,38,70,.05), 0 1px 4px rgba(15,38,70,.04);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

.result-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--blue), var(--blue-light));
  border-radius: var(--radius-md) var(--radius-md) 0 0;
  opacity: .6;
}

.result-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(15,38,70,.1);
  border-color: rgba(17,85,168,.15);
}

.result-card-dark {
  background: linear-gradient(145deg, var(--navy) 0%, #1a3d70 100%);
  border-color: transparent;
}

.result-card-dark .result-title,
.result-card-dark .result-text,
.result-card-dark .result-foot,
.result-card-dark .result-metric { color: #fff; }

.result-card-dark .result-tag { background: rgba(255,255,255,.12); color: rgba(255,255,255,.85); }

.result-tag {
  display: inline-flex;
  align-items: center;
  padding: 5px 11px;
  border-radius: 999px;
  background: var(--blue-pale);
  color: var(--blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 20px;
  align-self: flex-start;
}

.result-tag-re   { background: #fef3e2; color: #b05e00; }
.result-tag-conv { background: #f0faf3; color: #0a7a36; }
.result-tag-sys  { background: rgba(255,255,255,.15); color: rgba(255,255,255,.9); }

.result-metric {
  font-size: 58px;
  font-weight: 900;
  letter-spacing: -2.5px;
  color: var(--text-dark);
  line-height: 1;
  margin-bottom: 10px;
  display: flex;
  align-items: flex-start;
  gap: 2px;
}

.result-metric-sup {
  font-size: 28px;
  font-weight: 900;
  margin-top: 6px;
  letter-spacing: 0;
}

.result-metric-unit {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -.5px;
  align-self: flex-end;
  margin-bottom: 6px;
}

.result-title {
  font-size: 16px;
  font-weight: 800;
  color: var(--text-dark);
  margin-bottom: 10px;
  line-height: 1.4;
}

.result-text {
  font-size: 14px;
  line-height: 1.7;
  color: var(--text-muted);
  margin-bottom: 16px;
  flex: 1;
}

.result-foot {
  font-size: 13px;
  font-weight: 700;
  color: var(--blue);
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

.result-card-dark .result-foot { border-top-color: rgba(255,255,255,.12); color: #7fb8f8; }

/* =====================================================
   WHO WE WORK WITH
===================================================== */

.clients-section {
  padding: 100px 0;
  background: linear-gradient(180deg, #fff 0%, #f5f8fc 100%);
  border-top: 1px solid rgba(15,38,70,.05);
}

/* GRID */

.clients-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-bottom: 48px;
}

/* CARD */

.client-card {
  background: var(--bg-white);
  border: 1px solid rgba(15,38,70,.08);
  border-radius: 22px;
  padding: 28px 26px;
  display: flex;
  gap: 18px;
  align-items: flex-start;
  box-shadow: 0 2px 12px rgba(15,38,70,.04);
  transition:
    transform .26s ease,
    box-shadow .26s ease,
    border-color .26s ease;
  cursor: default;
}

.client-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(15,38,70,.09);
  border-color: rgba(17,85,168,.14);
}

/* ICON */

.cc-icon {
  font-size: 26px;
  line-height: 1;
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-mid);
  border-radius: 14px;
  border: 1px solid rgba(15,38,70,.06);
  transition: background .26s ease, transform .26s ease;
}

.client-card:hover .cc-icon {
  background: var(--blue-pale);
  transform: scale(1.06);
}

/* BODY */

.cc-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.cc-title {
  font-size: 17px;
  font-weight: 800;
  color: var(--text-dark);
  letter-spacing: -.3px;
  line-height: 1.2;
}

.cc-sub {
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-muted);
  font-weight: 500;
}

/* TAGS */

.cc-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}

.cc-tags span {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--bg-mid);
  color: var(--text-mid);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: -.1px;
  white-space: nowrap;
  transition: background .2s ease, color .2s ease;
}

.client-card:hover .cc-tags span {
  background: var(--blue-pale);
  color: var(--blue);
}

/* =====================================================
   SVC — 2-TIER SERVICE CARDS
===================================================== */

.svc-grid {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 48px;
}

.svc-card {
  background: var(--bg-white);
  border: 1px solid rgba(15,38,70,.08);
  border-radius: 22px;
  padding: 28px 26px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  box-shadow: 0 2px 12px rgba(15,38,70,.04);
  transition: transform .26s ease, box-shadow .26s ease, border-color .26s ease;
}
.svc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(15,38,70,.09);
  border-color: rgba(17,85,168,.14);
}

.svc-card-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.svc-card-icon {
  font-size: 28px;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
}
.svc-card-title {
  font-size: 18px;
  font-weight: 800;
  color: var(--text-dark);
  letter-spacing: -.4px;
  line-height: 1.2;
  margin-bottom: 4px;
}
.svc-card-desc {
  font-size: 13px;
  line-height: 1.55;
  color: var(--text-muted);
  font-weight: 500;
}

.svc-tiers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

/* SaaS tier */
.svc-tier {
  border-radius: 14px;
  padding: 18px 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.svc-tier--saas {
  background: linear-gradient(135deg, #eaf2fc 0%, #f0f6fe 100%);
  border: 1px solid rgba(17,85,168,.12);
}
.svc-tier--custom {
  background: var(--bg-light);
  border: 1px solid var(--border);
}

.svc-tier-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 999px;
  margin-bottom: 2px;
}
.svc-badge--saas {
  background: var(--blue);
  color: #fff;
}
.svc-badge--custom {
  background: rgba(15,38,70,.08);
  color: var(--text-mid);
}

.svc-tier-title {
  font-size: 14px;
  font-weight: 800;
  color: var(--navy-deep);
  letter-spacing: -.2px;
  line-height: 1.3;
}
.svc-tier-subdesc {
  font-size: 12.5px;
  color: var(--text-muted);
  font-weight: 500;
  line-height: 1.55;
  margin-top: 2px;
}

.svc-features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.svc-features li {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-dark);
  padding-left: 16px;
  position: relative;
  line-height: 1.45;
}
.svc-features li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--blue);
  opacity: .5;
}
.svc-tier--custom .svc-features li::before {
  background: var(--navy);
  opacity: .3;
}

.svc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  width: 100%;
  text-align: center;
  margin-top: 4px;
}
.svc-btn--saas {
  background: linear-gradient(135deg, var(--blue) 0%, #2479e8 100%);
  color: #fff;
  box-shadow: 0 4px 16px rgba(17,85,168,.24);
}
.svc-btn--saas:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(17,85,168,.38);
}
.svc-btn--custom {
  background: var(--bg-white);
  color: var(--navy);
  border: 1.5px solid rgba(15,38,70,.15);
  box-shadow: none;
}
.svc-btn--custom:hover {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
  transform: translateY(-1px);
}

/* 4th card — otros negocios (full width, dark accent) */
.svc-card--otros {
  flex-direction: row;
  align-items: center;
  gap: 32px;
  background: linear-gradient(135deg, #091424 0%, #0f2646 100%);
  border-color: rgba(255,255,255,.07);
}
.svc-card--otros:hover {
  border-color: rgba(76,139,230,.3);
  box-shadow: 0 16px 48px rgba(15,38,70,.2);
}
.svc-card--otros .svc-card-icon { font-size: 40px; }
.svc-card--otros .svc-card-title { color: #fff; font-size: 20px; }
.svc-card--otros .svc-card-desc  { color: rgba(255,255,255,.6); }
.svc-card--otros .svc-features li { color: rgba(255,255,255,.85); }
.svc-card--otros .svc-features li::before { background: var(--blue-light); opacity: .7; }
.svc-otros-body { flex: 1; display: flex; flex-direction: column; gap: 14px; }
.svc-otros-cta  { flex-shrink: 0; }

/* Responsive */
@media (max-width: 768px) {
  .svc-tiers { grid-template-columns: 1fr; }
  .svc-card--otros { flex-direction: column; align-items: flex-start; gap: 20px; }
  .svc-otros-cta .svc-btn { width: 100%; }
}
@media (max-width: 480px) {
  .svc-card { padding: 22px 18px; }
  .svc-tier { padding: 14px 12px; }
}

/* BOTTOM CTA */

.clients-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: var(--bg-white);
  border: 1px solid rgba(15,38,70,.07);
  border-radius: 20px;
  padding: 24px 30px;
  box-shadow: 0 2px 12px rgba(15,38,70,.04);
}

.clients-cta p {
  font-size: 15px;
  line-height: 1.65;
  color: var(--text-muted);
  font-weight: 500;
  max-width: 580px;
}

.btn-clients {
  background: var(--navy);
  color: #fff;
  padding: 13px 26px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 8px 22px rgba(15,38,70,.16);
  transition: background .22s ease, transform .2s ease, box-shadow .22s ease;
}

.btn-clients:hover {
  background: var(--navy-light);
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(15,38,70,.22);
}

/* RESPONSIVE */

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

@media (max-width: 768px) {
  .clients-section {
    padding: 72px 0;
  }

  .clients-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .client-card {
    padding: 22px 20px;
    gap: 14px;
  }

  .cc-icon {
    font-size: 24px;
  }

  .cc-title {
    font-size: 16px;
  }

  .clients-cta {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
  }

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

/* =====================================================
   FEATURED SECTION — UTEGRA
===================================================== */

.featured-section {
  padding: 100px 0;
  background: linear-gradient(180deg, #f0f5fc 0%, #e8f0fa 100%);
  overflow: hidden;
}

.featured-inner {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 60px;
  align-items: center;
}

/* PHONE MOCKUP */

.featured-visual {
  position: relative;
  display: flex;
  justify-content: center;
}

.phone-mockup {
  width: 240px;
  background: #0d1f38;
  border-radius: 40px;
  border: 6px solid #1a3560;
  padding: 14px 12px 20px;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.04),
    0 50px 100px rgba(9,20,36,.4),
    inset 0 1px 0 rgba(255,255,255,.06);
  position: relative;
}

.phone-notch {
  width: 60px;
  height: 6px;
  background: #1a3560;
  border-radius: 999px;
  margin: 0 auto 12px;
}

.phone-screen {
  background: linear-gradient(180deg, #091728 0%, #0c2040 100%);
  border-radius: 26px;
  padding: 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 360px;
}

.phone-kicker {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
  text-align: center;
}

.fake-video-thumb {
  width: 100%;
  height: 110px;
  background: linear-gradient(135deg, var(--navy-light) 0%, var(--blue) 100%);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  position: relative;
  overflow: hidden;
}

.fake-video-thumb::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,255,.08), transparent 60%);
}

.fake-play {
  font-size: 22px;
  color: rgba(255,255,255,.9);
  line-height: 1;
}

.fake-video-label {
  font-size: 9px;
  font-weight: 600;
  color: rgba(255,255,255,.55);
  letter-spacing: 1px;
  text-transform: uppercase;
}

.fake-stat-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.fake-stat {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: 10px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.fake-stat-num {
  font-size: 20px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -1px;
  line-height: 1;
}

.fake-stat-lbl {
  font-size: 9px;
  color: rgba(255,255,255,.45);
  font-weight: 600;
  letter-spacing: .8px;
  text-transform: uppercase;
}

.fake-bars {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-top: 4px;
}

.fake-bar-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.fake-bar-lbl {
  font-size: 9px;
  color: rgba(255,255,255,.4);
  font-weight: 600;
  width: 34px;
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: .5px;
}

.fake-bar-wrap {
  flex: 1;
  height: 5px;
  background: rgba(255,255,255,.07);
  border-radius: 999px;
  overflow: hidden;
}

.fake-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--blue), var(--blue-light));
  border-radius: 999px;
}

.fake-bar-accent {
  background: linear-gradient(90deg, #0ea54a, #34d474);
}

/* FLOATING BADGE */

.featured-badge {
  position: absolute;
  bottom: 30px;
  right: -10px;
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-light) 100%);
  border: 2px solid rgba(255,255,255,.12);
  border-radius: 20px;
  padding: 14px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-shadow: 0 20px 44px rgba(9,20,36,.35);
  min-width: 90px;
}

.featured-badge-num {
  font-size: 30px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -1px;
  line-height: 1;
}

.featured-badge-txt {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255,255,255,.6);
  letter-spacing: .5px;
}

/* FEATURED CONTENT */

.featured-title {
  font-size: 58px;
  font-weight: 900;
  color: var(--text-dark);
  letter-spacing: -2px;
  line-height: 1;
  margin-bottom: 16px;
}

.featured-intro {
  font-size: 18px;
  line-height: 1.75;
  color: var(--text-muted);
  margin-bottom: 32px;
  max-width: 520px;
}

.featured-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 32px;
}

.fm-box {
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  box-shadow: var(--shadow-sm);
  transition: transform .24s ease;
}

.fm-box:hover { transform: translateY(-3px); }

.fm-box-hl {
  background: linear-gradient(145deg, var(--navy) 0%, var(--navy-light) 100%);
}

.fm-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--blue);
}

.fm-box-hl .fm-label { color: rgba(255,255,255,.6); }

.fm-val {
  font-size: 26px;
  font-weight: 900;
  color: var(--text-dark);
  letter-spacing: -1px;
  line-height: 1.1;
  margin: 2px 0;
}

.fm-box-hl .fm-val { color: #fff; }

.fm-desc {
  font-size: 12px;
  color: var(--text-muted);
  font-weight: 600;
}

.fm-box-hl .fm-desc { color: rgba(255,255,255,.55); }

/* METHODOLOGY */

.featured-method {
  margin-bottom: 32px;
}

.featured-method-title {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 14px;
}

.method-steps {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.method-steps li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 15px;
  color: var(--text-mid);
  font-weight: 500;
  line-height: 1.55;
}

.ms-num {
  font-size: 11px;
  font-weight: 800;
  color: var(--blue);
  background: var(--blue-pale);
  border-radius: 6px;
  padding: 3px 7px;
  flex-shrink: 0;
  margin-top: 1px;
  letter-spacing: .5px;
}

.btn-featured {
  background: var(--navy);
  color: white;
  padding: 16px 32px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 800;
  box-shadow: 0 10px 28px rgba(15,38,70,.2);
  transition: background .22s ease, transform .2s ease, box-shadow .22s ease;
}

.btn-featured:hover {
  background: var(--navy-light);
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(15,38,70,.26);
}

/* =====================================================
   SERVICES SECTION
===================================================== */

.services-section {
  padding: 100px 0;
  background: var(--bg-white);
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 32px;
}

.service-block {
  background: var(--bg-white);
  border: 1px solid rgba(15,38,70,.07);
  border-radius: var(--radius-lg);
  padding: 40px 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
  box-shadow: 0 2px 16px rgba(15,38,70,.04);
}

.service-block:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 48px rgba(15,38,70,.09);
  border-color: rgba(17,85,168,.12);
}

.service-block-featured {
  background: linear-gradient(160deg, var(--navy) 0%, #1a3d70 100%);
  border-color: transparent;
  box-shadow: var(--shadow-lg);
}

.sb-icon {
  font-size: 22px;
  font-weight: 900;
  color: var(--blue);
  line-height: 1;
  font-style: normal;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--blue-pale);
  border-radius: 14px;
  border: 1px solid rgba(17,85,168,.1);
}

.service-block-featured .sb-icon {
  color: rgba(255,255,255,.7);
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.12);
}

.sb-kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 2px;
}

.service-block-featured .sb-kicker { color: rgba(255,255,255,.45); }

.sb-title {
  font-size: 34px;
  font-weight: 900;
  color: var(--text-dark);
  letter-spacing: -1px;
  line-height: 1;
}

.service-block-featured .sb-title { color: #fff; }

.sb-desc {
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-muted);
  font-weight: 500;
}

.service-block-featured .sb-desc { color: rgba(255,255,255,.6); }

.sb-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 4px;
}

.sb-list li {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-mid);
  padding-left: 18px;
  position: relative;
  line-height: 1.5;
}

.sb-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--blue);
  opacity: .5;
}

.service-block-featured .sb-list li { color: rgba(255,255,255,.75); }
.service-block-featured .sb-list li::before { background: rgba(255,255,255,.6); opacity: 1; }

/* MODEL CARDS */

.services-model {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  align-items: center;
  margin-top: 16px;
}

.model-box {
  background: var(--bg-light);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 28px 28px;
  transition: transform .24s ease, box-shadow .24s ease;
}

.model-box:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }

.model-box-alt {
  background: var(--blue-pale);
  border-color: rgba(17,85,168,.12);
}

.model-num {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 2px;
  color: var(--blue);
  margin-bottom: 8px;
  display: block;
}

.model-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--text-dark);
  margin-bottom: 10px;
  line-height: 1.3;
}

.model-opt {
  font-weight: 500;
  color: var(--text-muted);
  font-size: 16px;
}

.model-text {
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-muted);
  font-weight: 500;
}

.model-plus {
  font-size: 36px;
  font-weight: 900;
  color: var(--border);
  text-align: center;
  flex-shrink: 0;
}

/* =====================================================
   PORTFOLIO SECTION
===================================================== */

.portfolio-section {
  padding: 100px 0;
  background: var(--navy-deep);
}

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

.portfolio-card {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  min-height: 240px;
  cursor: pointer;
  transition: transform .28s ease, box-shadow .28s ease;
}

.portfolio-card:hover { transform: translateY(-4px); box-shadow: 0 30px 60px rgba(0,0,0,.4); }

.portfolio-card-lg {
  grid-column: span 2;
  min-height: 300px;
}

.portfolio-bg {
  position: absolute;
  inset: 0;
  transition: transform .5s ease;
}

.portfolio-card:hover .portfolio-bg { transform: scale(1.04); }

.pg-realestate  { background: linear-gradient(145deg, #0f2d5a 0%, #0d2244 50%, #1155a8 100%); }
.pg-education   { background: linear-gradient(145deg, #0b3a1e 0%, #0a2e18 50%, #1a7a3e 100%); }
.pg-systems     { background: linear-gradient(145deg, #2a1060 0%, #1e0b44 50%, #5e35b1 100%); }
.pg-automation  { background: linear-gradient(145deg, #3a1a0a 0%, #2e1208 50%, #c86224 100%); }
.pg-software    { background: linear-gradient(145deg, #0a2e3a 0%, #062430 50%, #1b7a8e 100%); }

.portfolio-card-body {
  position: relative;
  z-index: 2;
  padding: 24px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: linear-gradient(0deg, rgba(0,0,0,.65) 0%, rgba(0,0,0,.1) 60%, transparent 100%);
}

.portfolio-tag {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(8px);
  color: rgba(255,255,255,.9);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  margin-bottom: 10px;
  align-self: flex-start;
}

.portfolio-name {
  font-size: 24px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -.5px;
  margin-bottom: 6px;
  line-height: 1.1;
}

.portfolio-card-lg .portfolio-name { font-size: 32px; }

.portfolio-desc {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255,255,255,.7);
  font-weight: 500;
  max-width: 360px;
}

.portfolio-card-link {
  display: block;
  text-decoration: none;
  cursor: pointer;
}

.portfolio-link-hint {
  display: inline-block;
  margin-top: 10px;
  font-size: 12px;
  font-weight: 700;
  color: rgba(255,255,255,.45);
  letter-spacing: .3px;
  transition: color .22s ease;
}

.portfolio-card-link:hover .portfolio-link-hint {
  color: rgba(255,255,255,.85);
}

/* =====================================================
   CONTACT SECTION
===================================================== */

.contact-section {
  padding: 100px 0;
  background: var(--navy-deep);
}

.contact-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.contact-title {
  font-size: 50px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -1.5px;
  line-height: 1.08;
  margin-bottom: 18px;
}

.contact-desc {
  font-size: 18px;
  line-height: 1.75;
  color: rgba(255,255,255,.6);
  margin-bottom: 28px;
  font-weight: 500;
}

.contact-bullets {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.contact-bullets li {
  font-size: 15px;
  color: rgba(255,255,255,.75);
  font-weight: 600;
  padding-left: 22px;
  position: relative;
  line-height: 1.5;
}

.contact-bullets li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 7px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--blue-light);
  opacity: .7;
}

.contact-cta-box {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.btn-contact {
  background: #0ea54a;
  color: #fff;
  padding: 18px 36px;
  border-radius: 999px;
  font-size: 17px;
  font-weight: 800;
  box-shadow: 0 12px 32px rgba(10,165,74,.3);
  transition: background .22s ease, transform .2s ease, box-shadow .22s ease;
}

.btn-contact:hover {
  background: #0c9242;
  transform: translateY(-2px);
  box-shadow: 0 18px 40px rgba(10,165,74,.36);
}

.contact-note {
  font-size: 14px;
  color: rgba(255,255,255,.45);
  font-weight: 500;
  line-height: 1.5;
}

/* =====================================================
   FLOATING WA BUTTON
===================================================== */

.fab-wa {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 90;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #25d366;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 28px rgba(37,211,102,.4);
  border: none;
  cursor: pointer;
  transition: transform .22s ease, box-shadow .22s ease;
}

.fab-wa:hover {
  transform: scale(1.1);
  box-shadow: 0 14px 36px rgba(37,211,102,.5);
}

/* =====================================================
   MODAL
===================================================== */

.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(9,20,36,.72);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  overflow-y: auto;
}

.modal-overlay.open {
  display: flex;
  animation: modalOverlayIn .22s ease;
}

@keyframes modalOverlayIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.modal-box {
  background: var(--bg-white);
  border-radius: var(--radius-lg);
  padding: 40px 40px 36px;
  width: 100%;
  max-width: 620px;
  position: relative;
  box-shadow: 0 40px 100px rgba(0,0,0,.28);
  animation: modalBoxIn .28s cubic-bezier(.22,1,.36,1);
  max-height: 90vh;
  overflow-y: auto;
}

@keyframes modalBoxIn {
  from { opacity: 0; transform: translateY(24px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

.modal-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--bg-mid);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  transition: background .18s ease, color .18s ease;
}

.modal-close:hover { background: var(--border); color: var(--text-dark); }

.modal-kicker {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 8px;
}

.modal-title {
  font-size: 26px;
  font-weight: 900;
  color: var(--text-dark);
  letter-spacing: -.6px;
  margin-bottom: 28px;
  line-height: 1.2;
}

/* FORM */

.modal-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.form-group-full {
  grid-column: 1 / -1;
}

.form-group label {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-mid);
  letter-spacing: -.1px;
}

.form-req {
  color: var(--blue);
  margin-left: 2px;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid rgba(15,38,70,.12);
  border-radius: 12px;
  font-size: 14px;
  font-family: inherit;
  color: var(--text-dark);
  background: var(--bg-white);
  transition: border-color .18s ease, box-shadow .18s ease;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

.form-group select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2361748b' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
  cursor: pointer;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(17,85,168,.1);
}

.form-group textarea {
  resize: vertical;
  min-height: 88px;
  line-height: 1.6;
}

.form-group input::placeholder,
.form-group textarea::placeholder { color: rgba(97,116,139,.55); }

.btn-form-submit {
  width: 100%;
  padding: 16px;
  background: #0ea54a;
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  border-radius: 12px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  box-shadow: 0 8px 24px rgba(10,165,74,.25);
  transition: background .22s ease, transform .18s ease, box-shadow .22s ease;
  margin-top: 4px;
}

.btn-form-submit:hover {
  background: #0c9242;
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(10,165,74,.32);
}

/* =====================================================
   REVEAL ANIMATION
===================================================== */

.reveal-up {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 1s cubic-bezier(.22,.68,0,1.1), transform 1s cubic-bezier(.22,.68,0,1.1);
}

.reveal-up.show {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered delay for grid children */
.proj-grid .reveal-up:nth-child(1) { transition-delay: 0s; }
.proj-grid .reveal-up:nth-child(2) { transition-delay: .12s; }
.proj-grid .reveal-up:nth-child(3) { transition-delay: .22s; }
.proj-grid .reveal-up:nth-child(4) { transition-delay: .32s; }
.grupo-grid .reveal-up:nth-child(1) { transition-delay: 0s; }
.grupo-grid .reveal-up:nth-child(2) { transition-delay: .14s; }

/* =====================================================
   RESPONSIVE — 1200px
===================================================== */

@media (max-width: 1200px) {

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

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

  .services-grid {
    grid-template-columns: 1fr;
    max-width: 600px;
    margin: 0 auto 32px;
  }

  .services-model {
    grid-template-columns: 1fr 1fr;
  }

  .model-plus { display: none; }

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

  .portfolio-card-lg { grid-column: span 2; }

}

/* =====================================================
   RESPONSIVE — 992px
===================================================== */

@media (max-width: 992px) {

  .hero { margin-top: 68px; }

  .hero-overlay {
    background:
      linear-gradient(180deg,
        rgba(9,20,36,.62) 0%,
        rgba(9,20,36,.53) 40%,
        rgba(9,20,36,.23) 70%,
        transparent 100%),
      linear-gradient(90deg,
        rgba(9,20,36,.38) 0%,
        transparent 100%);
  }

  .nav-inner {
    padding: 0 16px;
    height: 68px;
  }

  .desktop-nav  { display: none; }
  .cta-nav-btn  { display: none; }
  .menu-toggle  { display: flex; }
  .desktop-logo { display: block; width: 85px; }
  .mobile-logo  { display: none; }

  .hero-content-wrap {
    align-items: flex-start;
    padding-top: 40px;
    min-height: calc(100vh - 68px);
  }

  .hero-content { padding-left: 0; margin-top: 0; }
  .hero-content h1 { font-size: 40px; letter-spacing: -1.2px; }
  .hero-content h2 { font-size: 17px; margin-top: 10px; line-height: 1.45; }

  .btn-primary  { margin-top: 0; }
  /* Antes 340px para esquivar la foto de Edgar — quedaba un hueco gigante.
     180px deja respirar al headline sin partir el flow. */
  .hero-buttons { margin-top: 180px; gap: 10px; }
  .hero-buttons .btn { padding: 12px 20px; font-size: 14px; }

  .featured-inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .featured-visual { order: 2; }
  .featured-content { order: 1; }

  .featured-title { font-size: 44px; }

  .contact-inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .contact-title { font-size: 38px; }

  .section-title { font-size: 34px; }

  .hero-person-desktop { display: none; }
  .hero-person-mobile  { display: block; }

}

/* =====================================================
   RESPONSIVE — 768px
===================================================== */

@media (max-width: 768px) {

  .section-container { padding: 0 20px; }

  /* Hero más compacto en phones grandes */
  .hero-content h2 { font-size: 16px; }
  .hero-buttons    { margin-top: 140px; }

  .results-section,
  .featured-section,
  .services-section,
  .portfolio-section,
  .contact-section { padding: 72px 0; }

  .results-grid { grid-template-columns: 1fr; gap: 14px; }

  .featured-metrics { grid-template-columns: repeat(2, 1fr); gap: 10px; }

  .featured-title { font-size: 36px; }
  .featured-intro { font-size: 16px; }
  .fm-val { font-size: 22px; }

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

  .portfolio-card-lg { grid-column: span 1; min-height: 260px; }

  .services-model { grid-template-columns: 1fr; gap: 14px; }

  .section-title { font-size: 28px; letter-spacing: -.6px; }
  .contact-title { font-size: 30px; }

}

/* =====================================================
   RESPONSIVE — 600px
===================================================== */

@media (max-width: 600px) {

  .hero-description { display: none; }
  .hero-buttons { flex-direction: column; margin-top: 100px; gap: 8px; }
  .btn { width: 100%; }
  .btn-primary { margin-top: 0; }
  .hero-content h2 { font-size: 15px; line-height: 1.5; }

  .result-metric { font-size: 48px; }

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

  .modal-box { padding: 28px 20px 24px; border-radius: 24px; }

  .modal-title { font-size: 22px; }

  .contact-cta-box { align-items: stretch; }
  .btn-contact { text-align: center; justify-content: center; }

  .phone-mockup { width: 200px; }

  .featured-badge { right: 0; bottom: 20px; }

}

/* =====================================================
   SOLUCIONES PAGE
===================================================== */

/* Hero variant with pill shortcuts */
.sol-hero h1 { max-width: 860px; }

.sol-hero-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 36px;
}

.sol-hero-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.8);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.sol-hero-pill:hover {
  background: rgba(255,255,255,.15);
  border-color: rgba(255,255,255,.28);
  color: #fff;
  transform: translateY(-2px);
}

/* STICKY INDUSTRY NAV */

.sp-nav {
  position: sticky;
  top: 80px;
  z-index: 80;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(15,38,70,.07);
  box-shadow: 0 2px 16px rgba(15,38,70,.05);
}

.sp-nav-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.sp-nav-inner::-webkit-scrollbar { display: none; }

.sp-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 14px 16px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-muted);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color .18s ease, border-color .18s ease;
  flex-shrink: 0;
}

.sp-pill:hover {
  color: var(--text-dark);
  border-bottom-color: rgba(17,85,168,.25);
}

.sp-pill-active {
  color: var(--blue);
  border-bottom-color: var(--blue);
}

/* INDUSTRY SECTIONS */

.sol-section {
  padding: 80px 0;
  background: var(--bg-white);
}

.sol-section-alt {
  background: #f8fafc;
}

.sol-section-inner {
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 44px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.sol-section-alt .sol-section-inner {
  background: var(--bg-white);
}

/* Section header */

.sol-header {
  display: flex;
  align-items: flex-start;
  gap: 22px;
}

.sol-icon-wrap {
  width: 60px;
  height: 60px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  flex-shrink: 0;
}

.sol-icon-re      { background: #e8f0fc; }
.sol-icon-edu     { background: #e6f7ed; }
.sol-icon-rest    { background: #fef3e2; }
.sol-icon-prof    { background: #f0ebfc; }
.sol-icon-digital { background: #fde8e8; }
.sol-icon-growth  { background: #e8eef8; }

.sol-industry-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}

.sol-industry-chips span {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-muted);
  background: var(--bg-mid);
  border-radius: 999px;
  padding: 3px 10px;
  letter-spacing: .2px;
}

.sol-title {
  font-size: 34px;
  font-weight: 900;
  color: var(--text-dark);
  letter-spacing: -1px;
  line-height: 1.1;
  margin-bottom: 8px;
}

.sol-sub {
  font-size: 16px;
  line-height: 1.65;
  color: var(--text-muted);
  font-weight: 500;
  max-width: 680px;
}

/* Body: problems + build grid */

.sol-body {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 32px;
  align-items: start;
}

.sol-problems {
  background: var(--bg-light);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 20px 18px;
}

.sol-problems-label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 14px;
}

.sol-problems ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sol-problems li {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-mid);
  padding-left: 16px;
  position: relative;
  line-height: 1.5;
}

.sol-problems li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 7px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #e53e3e;
  opacity: .55;
}

/* Build grid */

.sol-build-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.sol-build-item {
  background: var(--bg-light);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
  cursor: default;
}

.sol-build-item:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-sm);
  border-color: rgba(17,85,168,.14);
  background: var(--bg-white);
}

.sbi-icon {
  font-size: 20px;
  line-height: 1;
}

.sbi-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-dark);
  line-height: 1.4;
}

/* Footer */

.sol-footer {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-top: 4px;
  border-top: 1px solid var(--border);
}

.sol-cta-btn {
  background: var(--navy);
  color: #fff;
  padding: 13px 26px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 8px 22px rgba(15,38,70,.16);
  transition: background .22s ease, transform .2s ease, box-shadow .22s ease;
}

.sol-cta-btn:hover {
  background: var(--navy-light);
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(15,38,70,.22);
}

.sol-detail-link {
  font-size: 13px;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
  transition: opacity .18s ease;
}

.sol-detail-link:hover { opacity: .7; }

/* =====================================================
   SOLUCIONES — MARKETING LAYER
===================================================== */

/* Hero stats bar */
.sol-hero-stats {
  display: flex;
  align-items: center;
  gap: 0;
  margin-top: 36px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 16px;
  padding: 18px 32px;
  width: fit-content;
  backdrop-filter: blur(14px);
}
.sol-hero-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 0 28px;
  font-size: 12px;
  color: rgba(255,255,255,.6);
  font-weight: 600;
  letter-spacing: .2px;
}
.sol-hero-stat strong {
  font-size: 28px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -1px;
  line-height: 1;
}
.sol-hero-stat-sep {
  width: 1px;
  height: 38px;
  background: rgba(255,255,255,.14);
  flex-shrink: 0;
}

/* Industry accent — inset left border via box-shadow */
#re    .sol-section-inner { box-shadow: inset 4px 0 0 #1155a8, var(--shadow-sm); }
#edu   .sol-section-inner { box-shadow: inset 4px 0 0 #16a34a, var(--shadow-sm); }
#rest  .sol-section-inner { box-shadow: inset 4px 0 0 #d97706, var(--shadow-sm); }
#prof  .sol-section-inner { box-shadow: inset 4px 0 0 #7c3aed, var(--shadow-sm); }
#digital .sol-section-inner { box-shadow: inset 4px 0 0 #dc2626, var(--shadow-sm); }
#growth  .sol-section-inner { box-shadow: inset 4px 0 0 #0f2646, var(--shadow-sm); }

/* Industry icon — richer gradient */
.sol-icon-re      { background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%); }
.sol-icon-edu     { background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%); }
.sol-icon-rest    { background: linear-gradient(135deg, #fef9c3 0%, #fde68a 100%); }
.sol-icon-prof    { background: linear-gradient(135deg, #ede9fe 0%, #ddd6fe 100%); }
.sol-icon-digital { background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%); }
.sol-icon-growth  { background: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 100%); }

/* Industry stat strip */
.sol-stat-strip {
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--bg-light);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 22px;
  width: fit-content;
  margin: -8px 0 0;
}
.sol-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0 20px;
}
.sol-stat:first-child { padding-left: 0; }
.sol-stat:last-child  { padding-right: 0; }
.sol-stat-n {
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.8px;
  line-height: 1;
}
.sol-stat-l {
  font-size: 11.5px;
  color: var(--text-muted);
  font-weight: 600;
  white-space: nowrap;
}
.sol-stat-div {
  width: 1px;
  height: 30px;
  background: var(--border);
  flex-shrink: 0;
}
/* Stat number accent per industry */
#re      .sol-stat-n { color: #1155a8; }
#edu     .sol-stat-n { color: #16a34a; }
#rest    .sol-stat-n { color: #d97706; }
#prof    .sol-stat-n { color: #7c3aed; }
#digital .sol-stat-n { color: #dc2626; }
#growth  .sol-stat-n { color: #0f2646; }

/* Problems — stronger pain markers */
.sol-problems {
  background: #fff5f5;
  border-color: #fecaca;
}
.sol-problems-label {
  color: #dc2626;
}
.sol-problems li::before {
  content: '\2715';
  background: none;
  color: #ef4444;
  font-size: 10px;
  font-weight: 900;
  width: auto;
  height: auto;
  border-radius: 0;
  top: 4px;
  line-height: 1.5;
  opacity: 1;
}
.sol-problems li {
  color: var(--text-dark);
}

/* Build items — industry-colored hover glow */
.sol-build-item { position: relative; }
#re      .sol-build-item:hover { border-color: rgba(17,85,168,.3);  box-shadow: 0 4px 18px rgba(17,85,168,.1);  background: #fff; }
#edu     .sol-build-item:hover { border-color: rgba(22,163,74,.3);  box-shadow: 0 4px 18px rgba(22,163,74,.1);  background: #fff; }
#rest    .sol-build-item:hover { border-color: rgba(217,119,6,.3);  box-shadow: 0 4px 18px rgba(217,119,6,.1);  background: #fff; }
#prof    .sol-build-item:hover { border-color: rgba(124,58,237,.3); box-shadow: 0 4px 18px rgba(124,58,237,.1); background: #fff; }
#digital .sol-build-item:hover { border-color: rgba(220,38,38,.3);  box-shadow: 0 4px 18px rgba(220,38,38,.1);  background: #fff; }
#growth  .sol-build-item:hover { border-color: rgba(15,38,70,.3);   box-shadow: 0 4px 18px rgba(15,38,70,.1);   background: #fff; }

/* CTA button — blue gradient + glow */
.sol-cta-btn {
  background: linear-gradient(135deg, var(--blue) 0%, #2479e8 100%);
  box-shadow: 0 4px 20px rgba(17,85,168,.32);
}
.sol-cta-btn:hover {
  background: linear-gradient(135deg, #1a6fd8 0%, #3585f0 100%);
  box-shadow: 0 8px 30px rgba(17,85,168,.48);
  transform: translateY(-2px);
}

/* Bottom CTA — dark gradient with radial glow */
.specialty-cta-section {
  background: linear-gradient(140deg, #070e1c 0%, #0f2646 55%, #091424 100%);
  position: relative;
  overflow: hidden;
}
.specialty-cta-section::before {
  content: '';
  position: absolute;
  top: -100px;
  left: 50%;
  transform: translateX(-50%);
  width: 700px;
  height: 500px;
  background: radial-gradient(ellipse, rgba(17,85,168,.28) 0%, transparent 68%);
  pointer-events: none;
}
.specialty-cta-inner {
  position: relative;
  z-index: 1;
}

/* Trust row below CTA */
.sol-trust-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  margin-top: 32px;
  flex-wrap: wrap;
}
.sol-trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,.45);
}
.sol-trust-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(76,139,230,.6);
  flex-shrink: 0;
}

/* RESPONSIVE — solutions page */

@media (max-width: 1100px) {
  .sol-body {
    grid-template-columns: 1fr;
  }
  .sol-build-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 992px) {
  .sp-nav { top: 68px; }
  .sp-nav-inner { padding: 0 16px; }
  .sol-section { padding: 60px 0; }
  .sol-section-inner { padding: 28px 20px; gap: 24px; }
  .sol-build-grid { grid-template-columns: repeat(2, 1fr); }
  .sol-title { font-size: 28px; }
}

@media (max-width: 768px) {
  .sol-hero-pills { gap: 8px; }
  .sol-hero-pill { font-size: 13px; padding: 8px 14px; }
  .sol-hero-stats { padding: 14px 20px; }
  .sol-hero-stat { padding: 0 16px; }
  .sol-hero-stat strong { font-size: 22px; }
  .sol-header { flex-direction: column; gap: 14px; }
  .sol-icon-wrap { width: 48px; height: 48px; font-size: 22px; border-radius: 14px; }
  .sol-stat-strip { flex-wrap: wrap; gap: 12px; }
  .sol-stat { padding: 0 12px; }
  .sol-build-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .sol-footer { flex-direction: column; align-items: flex-start; gap: 12px; }
  .sol-cta-btn { width: 100%; justify-content: center; }
  .sol-trust-row { gap: 20px; }
}

@media (max-width: 480px) {
  .sol-build-grid { grid-template-columns: 1fr; }
  .sol-section-inner { padding: 22px 16px; }
  .sol-hero-stats { flex-direction: column; align-items: flex-start; padding: 16px 20px; gap: 10px; }
  .sol-hero-stat { padding: 0; flex-direction: row; gap: 10px; align-items: center; }
  .sol-hero-stat-sep { display: none; }
  .sol-stat-strip { width: 100%; }
}

/* =====================================================
   SPECIALTY PAGES — SHARED
===================================================== */

/* Back link */
.page-back {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,.55);
  text-decoration: none;
  margin-bottom: 28px;
  transition: color .18s ease;
  letter-spacing: -.1px;
}

.page-back:hover { color: rgba(255,255,255,.9); }

.page-back svg { transition: transform .18s ease; }
.page-back:hover svg { transform: translateX(-3px); }

/* Specialty hero — gradient, no image */
.specialty-hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: center;
  background:
    radial-gradient(ellipse at 65% 55%, rgba(17,85,168,.32) 0%, transparent 58%),
    linear-gradient(145deg, #091424 0%, #0e1f3c 55%, #091424 100%);
  overflow: hidden;
  padding-top: 80px;
}

.specialty-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.035) 1px, transparent 0);
  background-size: 32px 32px;
  pointer-events: none;
}

.specialty-hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 40px;
}

.specialty-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(17,85,168,.22);
  border: 1px solid rgba(17,85,168,.35);
  color: #7fb8f8;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 28px;
}

.specialty-badge-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #4c8be6;
  flex-shrink: 0;
}

.specialty-hero h1 {
  font-size: 62px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -2px;
  line-height: 1.05;
  margin-bottom: 20px;
  max-width: 740px;
}

.specialty-hero h2 {
  font-size: 22px;
  font-weight: 500;
  color: rgba(255,255,255,.65);
  line-height: 1.55;
  margin-bottom: 44px;
  max-width: 580px;
  letter-spacing: -.2px;
}

.specialty-hero-btns {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

/* Nav active state */
.nav-link-active {
  color: var(--blue) !important;
  background: var(--blue-pale) !important;
}

/* =====================================================
   PROBLEMS SECTION
===================================================== */

.problems-section {
  padding: 96px 0;
  background: var(--navy-deep);
}

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

.problem-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: var(--radius-md);
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: background .26s ease, border-color .26s ease, transform .26s ease;
}

.problem-card:hover {
  background: rgba(255,255,255,.07);
  border-color: rgba(17,85,168,.3);
  transform: translateY(-3px);
}

.pc-icon {
  font-size: 26px;
  line-height: 1;
}

.pc-title {
  font-size: 17px;
  font-weight: 800;
  color: #fff;
  line-height: 1.3;
  letter-spacing: -.3px;
}

.pc-text {
  font-size: 14px;
  line-height: 1.65;
  color: rgba(255,255,255,.5);
  font-weight: 500;
}

/* =====================================================
   WHAT WE BUILD SECTION
===================================================== */

.build-section {
  padding: 96px 0;
  background: var(--bg-white);
}

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

.build-item {
  background: var(--bg-light);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.build-item:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: rgba(17,85,168,.15);
  background: var(--bg-white);
}

.bi-icon {
  font-size: 22px;
  line-height: 1;
}

.bi-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--text-dark);
  line-height: 1.3;
  letter-spacing: -.2px;
}

.bi-desc {
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-muted);
  font-weight: 500;
}

/* =====================================================
   METRICS STRIP
===================================================== */

.metrics-strip {
  padding: 0;
  background: linear-gradient(135deg, var(--navy) 0%, #1a3d70 100%);
}

.metrics-strip-inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1200px;
  margin: 0 auto;
}

.ms-item {
  padding: 52px 40px;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,.08);
  transition: background .22s ease;
}

.ms-item:last-child { border-right: none; }

.ms-item:hover { background: rgba(255,255,255,.04); }

.ms-val {
  font-size: 52px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -2px;
  line-height: 1;
  margin-bottom: 10px;
  display: block;
}

.ms-label {
  font-size: 15px;
  font-weight: 600;
  color: rgba(255,255,255,.6);
  line-height: 1.5;
  display: block;
}

/* =====================================================
   HOW WE WORK — STEPS
===================================================== */

.steps-section {
  padding: 96px 0;
  background: #f8fafc;
}

.steps-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
}

.steps-row::before {
  content: '';
  position: absolute;
  top: 28px;
  left: calc(12.5% + 20px);
  right: calc(12.5% + 20px);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(17,85,168,.2) 20%, rgba(17,85,168,.2) 80%, transparent);
  pointer-events: none;
}

.step-item {
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-start;
}

.step-num {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--bg-white);
  border: 1.5px solid rgba(17,85,168,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 900;
  color: var(--blue);
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(15,38,70,.06);
  position: relative;
  z-index: 1;
  background: var(--bg-white);
}

.step-title {
  font-size: 17px;
  font-weight: 800;
  color: var(--text-dark);
  line-height: 1.3;
  letter-spacing: -.3px;
}

.step-desc {
  font-size: 14px;
  line-height: 1.7;
  color: var(--text-muted);
  font-weight: 500;
}

/* =====================================================
   SPECIALTY CTA SECTION
===================================================== */

.specialty-cta-section {
  padding: 96px 0;
  background: var(--navy-deep);
  text-align: center;
  position: relative;
  overflow: hidden;
}

.specialty-cta-section::before {
  content: '';
  position: absolute;
  top: -120px;
  left: 50%;
  transform: translateX(-50%);
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(17,85,168,.18) 0%, transparent 70%);
  pointer-events: none;
}

.specialty-cta-inner {
  position: relative;
  z-index: 1;
  max-width: 680px;
  margin: 0 auto;
  padding: 0 40px;
}

.specialty-cta-inner h2 {
  font-size: 46px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -1.5px;
  line-height: 1.1;
  margin-bottom: 18px;
}

.specialty-cta-inner p {
  font-size: 18px;
  color: rgba(255,255,255,.58);
  line-height: 1.7;
  margin-bottom: 36px;
  font-weight: 500;
}

.specialty-cta-btns {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}

.btn-cta-wa {
  background: #0ea54a;
  color: #fff;
  padding: 16px 32px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 800;
  box-shadow: 0 10px 28px rgba(10,165,74,.28);
  transition: background .22s ease, transform .2s ease, box-shadow .22s ease;
}

.btn-cta-wa:hover {
  background: #0c9242;
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(10,165,74,.34);
}

.btn-cta-ghost {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.85);
  padding: 16px 32px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .22s ease, border-color .22s ease;
}

.btn-cta-ghost:hover {
  background: rgba(255,255,255,.13);
  border-color: rgba(255,255,255,.35);
}

/* =====================================================
   SPECIALTY RESPONSIVE
===================================================== */

@media (max-width: 1100px) {
  .problems-grid  { grid-template-columns: repeat(2, 1fr); }
  .build-grid     { grid-template-columns: repeat(2, 1fr); }
  .steps-row      { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  .steps-row::before { display: none; }
}

@media (max-width: 992px) {
  .specialty-hero { padding-top: 68px; min-height: auto; }
  .specialty-hero h1 { font-size: 42px; }
  .specialty-hero h2 { font-size: 18px; }
  .specialty-hero-inner { padding: 64px 20px; }
  .metrics-strip-inner { grid-template-columns: repeat(3, 1fr); }
  .ms-val { font-size: 40px; }
}

@media (max-width: 768px) {
  .problems-section,
  .build-section,
  .steps-section,
  .specialty-cta-section { padding: 68px 0; }

  .problems-grid  { grid-template-columns: 1fr; gap: 12px; }
  .build-grid     { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .steps-row      { grid-template-columns: 1fr; gap: 28px; }

  .metrics-strip-inner {
    grid-template-columns: 1fr;
  }
  .ms-item {
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,.08);
    padding: 36px 24px;
  }
  .ms-item:last-child { border-bottom: none; }
  .ms-val { font-size: 46px; }

  .specialty-cta-inner h2 { font-size: 32px; }
  .specialty-cta-btns { flex-direction: column; align-items: stretch; }
  .btn-cta-wa, .btn-cta-ghost { text-align: center; }
}

@media (max-width: 600px) {
  .specialty-hero h1  { font-size: 34px; letter-spacing: -1.2px; }
  .specialty-hero h2  { font-size: 16px; }
  .build-grid         { grid-template-columns: 1fr; }
  .specialty-hero-btns { flex-direction: column; }
  .specialty-hero-btns .btn { width: 100%; }
}

/* =====================================================
   SOLUCIONES — BACKGROUND CANVAS + PARTICLES
===================================================== */

#sol-waves {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 0;
}

/* Robot particles */
.sol-bot {
  position: fixed;
  pointer-events: none;
  z-index: 1;
  user-select: none;
  animation: sol-bot-rise linear forwards;
  filter: grayscale(.2) opacity(.13);
  will-change: transform, opacity;
}
@keyframes sol-bot-rise {
  0%   { transform: translateY(0)      rotate(-6deg) scale(.85); opacity: 0; }
  8%   { opacity: .13; }
  88%  { opacity: .07; }
  100% { transform: translateY(-105vh) rotate(7deg)  scale(1.05); opacity: 0; }
}

/* ── Hero entry animations (staggered) ── */
@keyframes sol-enter {
  from { opacity: 0; transform: translateY(26px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes sol-enter-right {
  from { opacity: 0; transform: translateX(32px); }
  to   { opacity: 1; transform: translateX(0); }
}

.ph-eyebrow      { animation: sol-enter .60s .08s both; }
.path-hero-title { animation: sol-enter .70s .18s both; }
.ph-sub          { animation: sol-enter .65s .30s both; }
.ph-ctas         { animation: sol-enter .65s .44s both; }
.ph-visual       { animation: sol-enter-right .75s .22s both; }
.ph-float-card   { animation: sol-enter .65s .55s both, ph-card-float 5s .55s ease-in-out infinite; }

/* ── Scroll-reveal improvements — stagger cards ── */
.path-group--editorial .path-card:nth-child(1) { transition-delay: 0s; }
.path-group--editorial .path-card:nth-child(2) { transition-delay: .14s; }

/* Make sections stack above the canvas */
.path-hero,
.path-section,
.path-closing,
#sol-contact,
.sol-section { position: relative; z-index: 1; }

/* =====================================================
   TWO-PATH SECTION — SOLUCIONES
===================================================== */

.path-hero {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fd 55%, #f4f6f9 100%);
  padding: 130px 0 120px;
  position: relative;
  overflow: hidden;
}
/* Smooth fade into section below */
.path-hero::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 120px;
  background: none;
  display: none;
  pointer-events: none;
  z-index: 0;
}

/* Single clean glow — subtle on light bg */
.ph-glow {
  position: absolute;
  width: 700px; height: 700px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(28,96,210,.07) 0%, transparent 65%);
  top: 50%; left: 0;
  transform: translate(-32%, -50%);
  pointer-events: none;
  animation: ph-glow-pulse 7s ease-in-out infinite;
}
@keyframes ph-glow-pulse {
  0%, 100% { opacity: .6; transform: translate(-32%, -50%) scale(1); }
  50%       { opacity: 1;  transform: translate(-32%, -50%) scale(1.12); }
}

/* Floating money emojis */
.ph-emoji {
  position: absolute;
  pointer-events: none;
  z-index: 0;
  user-select: none;
  animation: ph-emoji-rise linear forwards;
  will-change: transform, opacity;
  filter: grayscale(1) opacity(.08);
}
@keyframes ph-emoji-rise {
  0%   { transform: translateY(0) rotate(-8deg) scale(.8); opacity: 0; }
  12%  { opacity: .5; }
  85%  { opacity: .22; }
  100% { transform: translateY(-180px) rotate(14deg) scale(1.1); opacity: 0; }
}

.path-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}

/* LEFT */
.ph-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

/* Eyebrow */
.ph-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(15,38,70,.38);
}
.ph-eyebrow-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 0 8px var(--blue);
  flex-shrink: 0;
}

.path-hero-title {
  font-size: 54px;
  font-weight: 900;
  color: var(--navy-deep);
  letter-spacing: -2.5px;
  line-height: 1.07;
  max-width: 560px;
  margin: 0;
}

/* Gradient accent — azul puro, coherente con el sitio */
.ph-accent {
  background: linear-gradient(120deg, #4fa8f5 0%, #92d0ff 50%, #4fa8f5 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: ph-shimmer 5s linear infinite;
}
@keyframes ph-shimmer {
  0%   { background-position: 0% center; }
  100% { background-position: 200% center; }
}

.ph-sub {
  font-size: 17px;
  color: var(--text-muted);
  font-weight: 500;
  line-height: 1.72;
  max-width: 460px;
  margin: 0;
}

/* CTAs */
.ph-ctas {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.ph-cta-primary {
  background: linear-gradient(135deg, #1660c8 0%, #2479e8 100%);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 14px 28px;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: transform .18s, box-shadow .18s;
  box-shadow: 0 6px 24px rgba(22,96,200,.38);
  letter-spacing: -.1px;
}
.ph-cta-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(22,96,200,.55);
}
.ph-cta-ghost {
  font-size: 14px;
  font-weight: 600;
  color: rgba(15,38,70,.42);
  text-decoration: none;
  transition: color .18s;
}
.ph-cta-ghost:hover { color: rgba(15,38,70,.75); }

/* RIGHT */
.ph-visual {
  position: relative;
}
.ph-video-wrap {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  box-shadow: 0 24px 60px rgba(0,0,0,.4), 0 0 0 1px rgba(255,255,255,.08);
}
.ph-video-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Floating card */
.ph-float-card {
  position: absolute;
  bottom: -18px;
  left: -24px;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border: 1px solid rgba(15,38,70,.09);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 14px;
  padding: 13px 18px;
  box-shadow: 0 12px 40px rgba(15,38,70,.12), 0 2px 8px rgba(15,38,70,.06);
  animation: ph-card-float 5s ease-in-out infinite;
  z-index: 10;
}
@keyframes ph-card-float {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-8px); }
}
.ph-fc-icon { font-size: 22px; line-height: 1; }
.ph-fc-text { display: flex; flex-direction: column; gap: 3px; }
.ph-fc-title { font-size: 13px; font-weight: 700; color: var(--navy-deep); margin: 0; line-height: 1; }
.ph-fc-sub   { font-size: 11px; color: rgba(15,38,70,.4); font-weight: 500; margin: 0; }


/* Section */
.path-section {
  background: #070f1d;
  padding: 0 0 80px;
}

/* ── Alternating sector layout ── */
.sol-sector {
  display: flex;
  min-height: 200px;
  border-bottom: 1px solid rgba(255,255,255,.05);
  overflow: hidden;
  max-width: 1200px;
  margin: 0 auto;
  border-radius: 20px;
  margin-bottom: 32px;
}
.sol-sector--flip { flex-direction: row-reverse; }

.sol-sector-media {
  position: relative;
  background: #0a1628;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 901px) {
  .sol-sector {
    border-bottom: none;
    border-radius: 0;
    background: transparent;
    padding-top: 48px;
  }
  .sol-sector-media {
    flex: 0 0 42%;
    max-height: 675px;
    border-radius: 18px;
    border: 1px solid rgba(99,179,237,.2);
    box-shadow:
      0 0 0 1px rgba(99,179,237,.08),
      0 8px 32px rgba(0,0,0,.4),
      0 0 60px rgba(17,85,168,.25),
      0 0 120px rgba(17,85,168,.1);
  }
  .sol-sector-body { background: transparent; justify-content: flex-start; padding: 1px 24px; flex: 0 0 50%; align-self: flex-start; }
}
.sol-sector-media::before {
  content: '▶';
  font-size: 52px;
  color: rgba(255,255,255,.15);
  pointer-events: none;
  position: relative;
  z-index: 1;
}
/* Bloquea clic al canal/título de YouTube (barra superior) */
.sol-sector-media::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 56px;
  z-index: 3;
  pointer-events: auto;
  background: transparent;
  cursor: default;
}
.sol-sector-media iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  display: block;
  z-index: 2;
}

.sol-sector-body {
  flex: 0 0 50%;
  padding: 56px 48px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 28px;
  background: transparent;
}
.sol-sector-label {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 11px;
  font-weight: 700;
  color: rgba(255,255,255,.45);
  text-transform: uppercase;
  letter-spacing: .12em;
  padding: 7px 14px;
  background: rgba(255,255,255,.05);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.07);
  width: fit-content;
}
.sol-sector-body .path-grid {
  grid-template-columns: 1fr;
  gap: 14px;
  margin-bottom: 0;
}
.sol-sector-body .path-card {
  padding: 30px 28px;
  gap: 18px;
}
.sol-sector-body .path-card--saas {
  background: #0d1b2e;
  border-color: rgba(255,255,255,.08);
  box-shadow: none;
}
.sol-sector-body .path-card--custom {
  background: #091424;
  border-color: rgba(255,255,255,.06);
}
.sol-sector-body .path-title,
.sol-sector-body .path-desc,
.sol-sector-body .path-features li,
.sol-sector-body .path-note { color: rgba(255,255,255,.75); }
.sol-sector-body .path-title { color: #fff; }

@media (max-width: 900px) {
  .sol-sector,
  .sol-sector--flip { flex-direction: column; border-radius: 0; margin: 0 0 1px 0; gap: 0; }
  .sol-sector-media { flex: none; height: 570px; touch-action: manipulation; -webkit-overflow-scrolling: touch; animation: none; border-radius: 0; box-shadow: none; border: none; }
  .sol-sector-media iframe { touch-action: manipulation; pointer-events: auto; }
  .sol-sector-body  { flex: none; padding: 28px 20px; margin-top: 0; }
  .sol-sector-body .path-grid { grid-template-columns: 1fr; }
}

/* Grid: 2 equal columns */
.path-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 40px;
}

/* Base card */
.path-card {
  border-radius: 24px;
  padding: 44px 40px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  transition: transform .26s ease, box-shadow .26s ease;
}
.path-card:hover { transform: translateY(-5px); }

/* CRM card — light */
.path-card--saas {
  background: #fff;
  border: 1px solid rgba(15,38,70,.08);
  box-shadow: 0 4px 24px rgba(15,38,70,.06);
}
.path-card--saas:hover {
  box-shadow: 0 20px 56px rgba(17,85,168,.12);
  border-color: rgba(17,85,168,.18);
}

/* Custom card — dark, slightly lighter than editorial group bg */
.path-card--custom {
  background: linear-gradient(145deg, #142d54 0%, #1a3d6e 60%, #112440 100%);
  border: 1px solid rgba(255,255,255,.11);
  box-shadow: 0 4px 24px rgba(9,20,36,.3);
  padding-bottom: 44px;
}


}
.path-card--custom:hover {
  box-shadow: 0 20px 56px rgba(9,20,36,.45);
  border-color: rgba(76,139,230,.25);
}

/* Badge */
.path-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 999px;
}
.path-badge--saas { background: #eaf2fc; color: var(--blue); }
.path-badge--custom { background: rgba(255,255,255,.1); color: rgba(255,255,255,.75); }

/* Title */
.path-title {
  font-size: 36px;
  font-weight: 900;
  letter-spacing: -1.2px;
  line-height: 1.1;
  margin-top: 12px;
}
.path-card--saas .path-title { color: var(--navy-deep); }
.path-card--custom .path-title { color: #fff; }

/* Desc */
.path-desc {
  font-size: 15px;
  line-height: 1.7;
  font-weight: 500;
  margin-top: 10px;
}
.path-card--saas .path-desc { color: var(--text-muted); }
.path-card--custom .path-desc { color: rgba(255,255,255,.55); }

/* Features */
.path-features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.path-features li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}
.path-features li::before {
  content: '';
  width: 18px;
  height: 18px;
  border-radius: 50%;
  flex-shrink: 0;
  background-size: contain;
}
.path-card--saas .path-features li { color: var(--text-dark); }
.path-card--saas .path-features li::before {
  background: #dcfce7;
  box-shadow: inset 0 0 0 5px #16a34a33;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 10 10' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 5l2 2 4-4' stroke='%2316a34a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
.path-card--custom .path-features li { color: rgba(255,255,255,.85); }
.path-card--custom .path-features li::before {
  background: rgba(76,139,230,.18);
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 10 10' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 5l2 2 4-4' stroke='%234c8be6' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* Bottom: button + note */
.path-card-bottom {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: auto;
}
.path-note {
  font-size: 12px;
  font-weight: 500;
  text-align: center;
}
.path-card--saas .path-note { color: #9baab8; }
.path-card--custom .path-note { color: rgba(255,255,255,.35); }

/* Buttons */
.path-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px 28px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  width: 100%;
}
.path-btn--saas {
  background: linear-gradient(135deg, var(--blue) 0%, #2479e8 100%);
  color: #fff;
  box-shadow: 0 6px 22px rgba(17,85,168,.3);
}
.path-btn--saas:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(17,85,168,.45);
}
.path-btn--custom {
  background: #fff;
  color: var(--navy-deep);
  box-shadow: 0 4px 16px rgba(0,0,0,.15);
}
.path-btn--custom:hover {
  background: #f0f6fe;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,.2);
}

/* Industries line */
.path-industries {
  text-align: center;
  font-size: 13px;
  font-weight: 600;
  color: #9baab8;
  letter-spacing: .1px;
}

/* Industry groups — card blocks */
.path-group {
  background: #fff;
  border-radius: 20px;
  padding: 60px 48px 68px;
  margin-bottom: 20px;
  border: 1px solid rgba(15,38,70,.06);
  box-shadow: 0 2px 20px rgba(15,38,70,.04);
  position: relative;
}
.path-group:last-of-type { margin-bottom: 0; }

/* Industry section header */
.path-group-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 48px;
  padding-top: 6px;
}
.path-group-tag {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 34px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  line-height: 1;
  color: #9aa3b2;
}
.path-group-icon {
  display: inline-flex;
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  align-items: center;
  justify-content: center;
  font-size: 1em;
  flex-shrink: 0;
  filter: grayscale(1) opacity(.55);
}
.path-group-headline {
  font-size: 22px;
  font-weight: 700;
  color: var(--navy-deep);
  letter-spacing: -.5px;
  margin: 0;
  line-height: 1.25;
}

/* Divider accent between groups */
.path-group + .path-group::before {
  content: '';
  display: block;
  width: 40px;
  height: 2px;
  background: rgba(15,38,70,.1);
  border-radius: 2px;
  margin: 0 auto -48px;
  position: relative;
  top: -34px;
}

/* ── Editorial group modifier — dark floating block ── */
.path-group--editorial {
  background: linear-gradient(145deg, #0b1b36 0%, #0f2648 60%, #081420 100%);
  border: 1px solid rgba(255,255,255,.07);
  box-shadow: 0 8px 48px rgba(8,16,32,.28), 0 2px 0 rgba(255,255,255,.04) inset;
  padding-top: 28px;
  padding-bottom: 3px;
}
/* No divider accent between editorial groups */
.path-group--editorial + .path-group::before { display: none; }
.path-group--editorial + .path-group--editorial { margin-top: 0; }

/* ── Industry Carousel ── */
.ind-wrap {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 24px 0 32px;
}
.ind-track {
  display: flex;
  gap: 28px;
  transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.ind-track .path-group--editorial {
  flex: 0 0 72vw;
  width: 72vw;
  min-width: 0;
  margin-bottom: 0;
  opacity: 0.55;
  transform: scale(0.93);
  transition: transform .5s cubic-bezier(.4,0,.2,1), opacity .5s ease;
  cursor: pointer;
}
.ind-track .path-group--editorial.ind-active {
  opacity: 1;
  transform: scale(1);
  cursor: default;
}
/* Arrows */
.ind-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px; height: 44px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid rgba(15,38,70,.12);
  box-shadow: 0 4px 16px rgba(15,38,70,.1);
  font-size: 26px;
  line-height: 1;
  color: var(--navy-deep);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: box-shadow .2s;
  z-index: 10;
}
.ind-arrow:hover { box-shadow: 0 8px 24px rgba(15,38,70,.18); }
.ind-arrow--prev { left: 16px; }
.ind-arrow--next { right: 16px; }
/* Dots */
.ind-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
  margin-bottom: 32px;
}
.ind-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: rgba(15,38,70,.18);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background .25s, transform .25s;
}
.ind-dot.ind-dot--active {
  background: var(--blue);
  transform: scale(1.3);
}
/* Mobile: stacked, no carousel */
@media (max-width: 900px) {
  .ind-wrap  { padding: 0; }
  .ind-track { display: flex; flex-direction: column; gap: 16px; }
  .ind-track .path-group--editorial { grid-area: unset; width: 100% !important; opacity: 1 !important; pointer-events: auto !important; margin: 0; }
  .ind-arrow { display: none; }
  .ind-dots  { display: none; }
}

/* Label text white */
.path-group--editorial .path-group-tag { color: #fff; }

/* Emoji white */
.path-group--editorial .path-group-icon {
  filter: grayscale(1) brightness(10) opacity(.88);
}

/* Bigger, more prominent header in editorial */
.path-group--editorial .path-group-headline {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -.8px;
  color: #fff;
}

/* Subtitle — only used in editorial header */
.path-group-sub {
  font-size: 15px;
  color: var(--text-muted);
  max-width: 480px;
  margin: 0;
  line-height: 1.65;
  text-align: center;
}


@media (max-width: 900px) {
  .path-group { padding: 40px 28px 48px; margin-bottom: 16px; }
  .path-group-header { margin-bottom: 32px; gap: 8px; }
  .path-group-headline { font-size: 18px; }
  .path-group + .path-group::before { top: -28px; margin-bottom: -40px; }

  /* Editorial: mobile — initial state handled by inline style in HTML */

  /* Editorial: less top/bottom padding on mobile */
  .path-group--editorial { padding-top: 36px; padding-bottom: 3px; }
  .path-card--custom { padding-bottom: 0; }
  .path-group--editorial .path-group-headline { font-size: 22px; }
  .path-group-sub { font-size: 14px; }
  .path-group-tag { font-size: 32px; letter-spacing: .04em; }
}
@media (max-width: 600px) {
  .path-group { padding: 32px 18px 40px; }
  .path-group-headline { font-size: 17px; }
}

/* ── Features collapse / expand ── */
/* Desktop: show 3, hide 4+ */
@media (min-width: 901px) {
  .path-features li:nth-child(n+4) { display: none; }
  .path-features--expanded li:nth-child(n+4) { display: flex; }
}
/* Mobile: all features visible, no toggle button */
@media (max-width: 900px) {
  .path-features li { display: flex !important; }
  .path-features-toggle { display: none !important; }
}

.path-features--collapsed li:nth-child(n+4) {
  display: none;
}

.path-features-toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: -16px;
  background: none;
  border: none;
  padding: 0;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  letter-spacing: .01em;
  color: var(--blue);
}
.path-card--custom .path-features-toggle {
  color: rgba(255,255,255,.55);
}
.path-card--custom .path-features-toggle:hover {
  color: #fff;
}

/* Closing block — inline styles moved here */
.path-closing .path-group-tag {
  justify-content: center;
  margin-bottom: 16px;
  color: rgba(255,255,255,.4);
  letter-spacing: .2em;
  font-size: 11px;
}
.path-closing .path-group-icon {
  background: rgba(255,255,255,.08);
}
.path-closing .path-btn {
  margin: 0 auto;
  display: inline-block;
}

/* Closing block */
.path-closing {
  margin-top: 72px;
  background: var(--navy-deep);
  border-radius: 24px;
  padding: 56px 48px;
  text-align: center;
}
.path-closing-title {
  font-size: 32px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -1px;
  margin-bottom: 16px;
}
.path-closing-desc {
  font-size: 17px;
  color: rgba(255,255,255,.55);
  max-width: 560px;
  margin: 0 auto 36px;
  line-height: 1.6;
}
@media (max-width: 600px) {
  .path-closing { padding: 40px 24px; }
  .path-closing-title { font-size: 26px; }
  .path-closing-desc { font-size: 15px; }
}

/* Responsive */
@media (max-width: 900px) {
  .path-hero-inner { grid-template-columns: 1fr; gap: 40px; }
  .ph-content { align-items: center; text-align: center; }
  .ph-ctas { justify-content: center; }
  .path-hero-title { font-size: 40px; letter-spacing: -1.5px; max-width: 100%; }
  .ph-video-wrap { max-height: 220px; }
  .ph-float-card { left: 12px; bottom: -14px; }
  /* Mobile swipe dots */
  .path-grid-dots {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: -12px;
    margin-bottom: 20px;
  }
  .path-grid-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255,255,255,.25);
    transition: background .2s;
  }
  .path-grid-dot--active {
    background: rgba(255,255,255,.85);
  }

  /* Mobile: horizontal swipe carousel per grid */
  .path-grid {
    display: flex;
    flex-direction: row;
    overflow-x: auto;
    overflow-y: clip;
    scroll-snap-type: x mandatory;
    touch-action: pan-x;
    gap: 0;
    margin-bottom: 24px;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .path-grid::-webkit-scrollbar { display: none; }
  .path-grid .path-card {
    flex: 0 0 100%;
    width: 100%;
    scroll-snap-align: start;
    border-radius: 20px;
    touch-action: pan-x;
  }
  .path-card { padding: 32px 28px; }
  .path-title { font-size: 30px; }
}
@media (max-width: 600px) {
  .path-hero { padding: 100px 0 64px; }
  .path-hero-title { font-size: 32px; letter-spacing: -1px; }
  .ph-paths { gap: 10px; }
  .ph-path-pill { font-size: 13px; padding: 9px 16px; }
  .ph-orb--1 { width: 240px; height: 240px; top: -80px; right: -40px; }
  .ph-orb--2 { width: 180px; height: 180px; }
  .ph-orb--3 { display: none; }
  .path-section { padding: 48px 0 56px; }
  .path-card { padding: 28px 22px; gap: 24px; }
  .path-title { font-size: 26px; }
}

/* =====================================================
   SISTEMAS EN ACCIÓN — BUGAHILL / LA NACIONAL
===================================================== */

.buga-section {
  padding: 100px 0;
  background: #f8fafc;
}

.buga-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}

/* Browser mockup */
.buga-visual {
  position: relative;
  padding-bottom: 24px;
}

.buga-browser {
  background: #fff;
  border-radius: 16px;
  border: 1px solid rgba(15,38,70,.1);
  box-shadow: 0 24px 64px rgba(15,38,70,.1), 0 4px 16px rgba(15,38,70,.06);
  overflow: hidden;
}

.buga-browser-bar {
  background: #f0f2f5;
  border-bottom: 1px solid rgba(15,38,70,.07);
  padding: 11px 14px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.buga-dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  flex-shrink: 0;
}
.buga-dot-r { background: #ff5f56; }
.buga-dot-y { background: #febc2e; }
.buga-dot-g { background: #28c840; }

.buga-url {
  margin-left: 10px;
  background: #fff;
  border: 1px solid rgba(15,38,70,.12);
  border-radius: 6px;
  padding: 4px 12px;
  font-size: 11px;
  color: #7a8ca3;
  font-weight: 500;
  flex: 1;
  max-width: 190px;
}

.buga-browser-nav {
  display: flex;
  padding: 0 14px;
  border-bottom: 1px solid rgba(15,38,70,.07);
  background: #fff;
  overflow-x: auto;
}
.buga-browser-nav::-webkit-scrollbar { display: none; }

.buga-nav-item {
  font-size: 12px;
  font-weight: 600;
  color: #7a8ca3;
  padding: 10px 13px;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  cursor: default;
  flex-shrink: 0;
}
.buga-nav-active {
  color: var(--blue);
  border-bottom-color: var(--blue);
}

/* Stats strip */
.buga-stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 1px solid rgba(15,38,70,.07);
}

.buga-stat-box {
  padding: 14px 16px;
  border-right: 1px solid rgba(15,38,70,.07);
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.buga-stat-box:last-child { border-right: none; }

.buga-stat-val {
  font-size: 17px;
  font-weight: 900;
  color: var(--navy-deep);
  letter-spacing: -0.5px;
  line-height: 1;
}
.buga-stat-accent .buga-stat-val { color: var(--blue); }

.buga-stat-label {
  font-size: 10px;
  color: #9baab8;
  font-weight: 600;
}

/* Table */
.buga-table { padding: 6px 0 2px; }

.buga-table-head {
  display: grid;
  grid-template-columns: 34px 1fr 56px 76px;
  gap: 8px;
  padding: 5px 14px;
  font-size: 10px;
  font-weight: 700;
  color: #b0bfcc;
  text-transform: uppercase;
  letter-spacing: .7px;
}

.buga-table-row {
  display: grid;
  grid-template-columns: 34px 1fr 56px 76px;
  gap: 8px;
  padding: 9px 14px;
  align-items: center;
  border-top: 1px solid rgba(15,38,70,.045);
  transition: background .15s;
}
.buga-table-row:hover { background: #f8fafc; }

.buga-avatar {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 800;
  color: #fff;
  flex-shrink: 0;
}
.buga-av1 { background: linear-gradient(135deg, var(--blue), var(--blue-light)); }
.buga-av2 { background: linear-gradient(135deg, #16a34a, #22c55e); }
.buga-av3 { background: linear-gradient(135deg, #d97706, #f59e0b); }

.buga-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--navy-deep);
  line-height: 1.3;
}
.buga-name em {
  display: block;
  font-style: normal;
  font-size: 11px;
  font-weight: 500;
  color: #9baab8;
}

.buga-amount {
  font-size: 13px;
  font-weight: 700;
  color: var(--navy-deep);
}

.buga-status {
  font-size: 10px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 999px;
  text-align: center;
}
.buga-paid    { background: #dcfce7; color: #16a34a; }
.buga-pending { background: #fef9c3; color: #92400e; }

.buga-stripe-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-top: 1px solid rgba(15,38,70,.07);
  font-size: 11px;
  font-weight: 600;
  color: #b0bfcc;
  background: #f8fafc;
}

/* Floating badge */
.buga-float-badge {
  position: absolute;
  bottom: 0;
  right: -18px;
  background: var(--navy);
  border-radius: 16px;
  padding: 14px 20px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  box-shadow: 0 12px 36px rgba(15,38,70,.3);
  border: 3px solid #f8fafc;
}
.buga-float-num {
  font-size: 26px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -1px;
  line-height: 1;
}
.buga-float-txt {
  font-size: 11px;
  color: rgba(255,255,255,.6);
  font-weight: 600;
  line-height: 1.4;
}

/* Content side */
.buga-content {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.buga-kicker-row {
  display: flex;
  align-items: center;
  gap: 9px;
}

.buga-dot-live {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 0 0 3px rgba(17,85,168,.18);
  animation: bugaPulse 2.2s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes bugaPulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(17,85,168,.18); }
  50%       { box-shadow: 0 0 0 8px rgba(17,85,168,.05); }
}

.buga-kicker {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--blue);
}

.buga-title {
  font-size: 34px;
  font-weight: 900;
  color: var(--navy-deep);
  letter-spacing: -1.2px;
  line-height: 1.12;
}

.buga-client {
  font-size: 13px;
  font-weight: 700;
  color: #9baab8;
  letter-spacing: .3px;
  text-transform: uppercase;
}

.buga-desc {
  font-size: 15.5px;
  line-height: 1.72;
  color: var(--text-muted);
  font-weight: 500;
}

.buga-features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.buga-features li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-dark);
  line-height: 1.5;
}
.buga-fi {
  font-size: 15px;
  flex-shrink: 0;
  margin-top: 1px;
}

.buga-quote {
  background: linear-gradient(135deg, #eaf2fc, #f0f6fe);
  border-left: 4px solid var(--blue);
  border-radius: 0 10px 10px 0;
  padding: 16px 20px;
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
  font-style: italic;
  line-height: 1.6;
}

.buga-cta {
  background: linear-gradient(135deg, var(--blue) 0%, #2479e8 100%);
  color: #fff;
  padding: 14px 30px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 800;
  box-shadow: 0 6px 24px rgba(17,85,168,.28);
  width: fit-content;
  transition: transform .2s ease, box-shadow .2s ease;
}
.buga-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(17,85,168,.44);
}

/* Responsive */
@media (max-width: 1100px) {
  .buga-inner { gap: 48px; }
  .buga-title { font-size: 30px; }
}

@media (max-width: 1024px) {
  .buga-inner { grid-template-columns: 1fr; }
  .buga-float-badge { right: 0; }
}

@media (max-width: 768px) {
  .buga-section { padding: 72px 0; }
  .buga-title { font-size: 26px; }
  .buga-float-badge { display: none; }
  .buga-visual { padding-bottom: 0; }
}

@media (max-width: 480px) {
  .buga-cta { width: 100%; justify-content: center; text-align: center; }
  .buga-table-head,
  .buga-table-row { grid-template-columns: 30px 1fr 72px; }
  .buga-amount { display: none; }
}

/* =====================================================
   HOME — SOLUTIONS SECTION
===================================================== */

.solutions-section {
  padding: 100px 0;
  background: var(--bg-light);
}

/* LAYOUT: video izquierda + tarjetas derecha */
.sol-layout {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 32px;
  align-items: stretch;
}

/* VIDEO */
.sol-video-wrap {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sol-video-frame {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  aspect-ratio: 16/9;
  background: #000;
  box-shadow: 0 20px 60px rgba(9,20,36,.2);
}

/* Overlay que bloquea el click al título de YouTube pero no a los controles */
.sol-video-overlay {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: calc(100% - 48px);
  z-index: 2;
  cursor: default;
}

.sol-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  z-index: 1;
}

.sol-video-caption {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  text-align: center;
  letter-spacing: .3px;
}

/* TARJETAS */
.sol-cards {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-left: 16px;
}

.sol-card {
  border-radius: 24px;
  padding: 32px 30px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex: 1;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  cursor: default;
}
.sol-card:hover {
  transform: translateY(-5px);
}

.sol-card--saas {
  background: linear-gradient(145deg, #112244 0%, #1a3a6e 60%, #0d1f3c 100%);
  border: 1px solid rgba(99,179,237,.2);
  box-shadow: 0 16px 48px rgba(0,0,0,.3);
}
.sol-card--saas:hover {
  border-color: rgba(99,179,237,.45);
  box-shadow: 0 24px 56px rgba(0,0,0,.4), 0 0 24px rgba(99,179,237,.12);
}

.sol-card--custom {
  background: #fff;
  border: 1px solid rgba(15,38,70,.08);
  box-shadow: 0 4px 24px rgba(15,38,70,.06);
}
.sol-card--custom:hover {
  border-color: rgba(59,130,246,.25);
  box-shadow: 0 16px 40px rgba(15,38,70,.14);
}

.sol-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sol-card-icon { font-size: 26px; }

.sol-badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 12px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}

.sol-card--saas .sol-badge {
  background: rgba(76,139,230,.18);
  color: #7eb8f8;
  border: 1px solid rgba(76,139,230,.22);
}

.sol-badge--dark {
  background: var(--blue-pale);
  color: var(--blue);
}

.sol-card h3 {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -.5px;
  line-height: 1.2;
  margin: 0;
}

.sol-card--saas h3 { color: #fff; }
.sol-card--custom h3 { color: var(--navy-deep); }

.sol-card p {
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
}

.sol-card--saas p { color: rgba(255,255,255,.55); }
.sol-card--custom p { color: var(--text-muted); }

.sol-card-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px 20px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: transform .2s ease, background .2s ease;
  margin-top: auto;
}

.sol-card-btn--primary {
  background: #fff;
  color: var(--navy-deep);
}
.sol-card-btn--primary:hover { background: #f0f4ff; transform: translateY(-2px); }

.sol-card-btn--secondary {
  background: var(--navy);
  color: #fff;
}
.sol-card-btn--secondary:hover { background: var(--navy-light); transform: translateY(-2px); }

@media (max-width: 900px) {
  .sol-layout { grid-template-columns: 1fr; }
  .sol-card { padding: 28px 22px; }
}

/* =====================================================
   HOME — DIFFERENTIATOR
===================================================== */

.diff-section {
  padding: 100px 0;
  background: linear-gradient(180deg, #06101e 0%, #091424 100%);
}

.diff-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(255,255,255,.06);
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.07);
  margin-top: 64px;
}

.diff-cell {
  padding: 48px 44px;
  background: #091424;
  transition: background .25s ease;
}

.diff-cell:hover { background: #0d1f3c; }

.diff-icon {
  width: 50px;
  height: 50px;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 22px;
  transition: background .25s ease, border-color .25s ease;
}

.diff-cell:hover .diff-icon {
  background: rgba(76,139,230,.15);
  border-color: rgba(76,139,230,.2);
}

.diff-cell h4 {
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.4px;
  margin-bottom: 12px;
  line-height: 1.2;
}

.diff-cell p {
  font-size: 15px;
  line-height: 1.8;
  color: rgba(255,255,255,.5);
  max-width: 380px;
}

@media (max-width: 768px) {
  .diff-grid { grid-template-columns: 1fr; }
  .diff-cell { padding: 36px 28px; }
}

/* =====================================================
   HOME — HOW IT WORKS
===================================================== */

.how-section {
  padding: 100px 0;
  background: #fff;
}

.how-steps {
  display: grid;
  grid-template-columns: 1fr 36px 1fr 36px 1fr;
  align-items: start;
  margin-top: 64px;
}

.how-step {
  background: #fff;
  border: 1px solid rgba(15,38,70,.07);
  border-radius: 22px;
  padding: 36px 30px;
  box-shadow: 0 2px 16px rgba(15,38,70,.04);
  transition: box-shadow .28s ease, transform .28s ease;
}

.how-step:hover {
  box-shadow: 0 16px 42px rgba(15,38,70,.09);
  transform: translateY(-4px);
}

.how-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--blue-pale);
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: -.3px;
  margin-bottom: 20px;
  border: 1px solid rgba(17,85,168,.1);
}

.how-step h4 {
  font-size: 19px;
  font-weight: 800;
  color: var(--navy-deep);
  letter-spacing: -.3px;
  margin-bottom: 12px;
  line-height: 1.2;
}

.how-step p {
  font-size: 14.5px;
  line-height: 1.78;
  color: var(--text-muted);
}

.how-connector {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 56px;
}

.how-connector::before {
  content: '';
  display: block;
  width: 20px;
  height: 2px;
  background: linear-gradient(90deg, rgba(17,85,168,.15), rgba(17,85,168,.45), rgba(17,85,168,.15));
  border-radius: 2px;
}

@media (max-width: 900px) {
  .how-steps { grid-template-columns: 1fr; gap: 14px; }
  .how-connector { display: none; }
}

/* =====================================================
   HOME — VISION
===================================================== */

.vision-section {
  padding: 80px 0;
  background: linear-gradient(180deg, #f0f6fc 0%, #e8f0f8 100%);
  text-align: center;
}

.vision-inner { max-width: 760px; margin: 0 auto; }

.vision-title {
  font-size: 40px;
  font-weight: 900;
  color: var(--navy-deep);
  letter-spacing: -1.2px;
  line-height: 1.1;
  margin: 12px 0 20px;
}

.vision-desc {
  font-size: 17px;
  line-height: 1.82;
  color: var(--text-muted);
  max-width: 620px;
  margin: 0 auto;
}

@media (max-width: 768px) {
  .vision-title { font-size: 28px; }
  .vision-desc { font-size: 15px; }
}

/* =====================================================
   HOME — PROJECTS
===================================================== */

.proj-section {
  padding: 100px 0;
  background: #070f1d;
}

.proj-grid {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 14px;
}

.proj-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 22px;
  overflow: hidden;
  transition: background .25s ease, border-color .25s ease;
  display: flex;
  flex-direction: column;
}

.proj-card:hover {
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.11);
}

.proj-card--lg { grid-row: 1 / 3; }

.proj-visual {
  height: 160px;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.proj-visual--blue   { background: linear-gradient(145deg, #0f2646, #1e4a8a); }
.proj-visual--green  { background: linear-gradient(145deg, #0d2e1e, #145232); }
.proj-visual--gold   { background: linear-gradient(145deg, #2d1b00, #7c3f00); }
.proj-visual--violet { background: linear-gradient(145deg, #1e1033, #4c1d95); }
.proj-visual--lg     { height: 240px; }

.proj-visual-stat { text-align: center; }

.proj-visual-stat-num {
  display: block;
  font-size: 52px;
  font-weight: 900;
  color: rgba(255,255,255,.9);
  letter-spacing: -2.5px;
  line-height: 1;
}

.proj-visual-stat-lbl {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255,255,255,.38);
  letter-spacing: .6px;
  text-transform: uppercase;
  margin-top: 6px;
}

.proj-body {
  padding: 24px 24px 28px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.proj-tag {
  display: inline-flex;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(76,139,230,.15);
  color: #7eb8f8;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  align-self: flex-start;
  margin-bottom: 4px;
}

.proj-name {
  font-size: 18px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.3px;
  line-height: 1.2;
  margin: 0;
}

.proj-client {
  font-size: 12px;
  color: rgba(255,255,255,.28);
  font-weight: 500;
  margin: 0;
}

.proj-desc {
  font-size: 13.5px;
  line-height: 1.7;
  color: rgba(255,255,255,.48);
  margin: 6px 0 0;
}

.proj-result {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.06);
}

.proj-result-val {
  font-size: 24px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -.5px;
}

.proj-result-lbl {
  font-size: 12px;
  color: rgba(255,255,255,.36);
  font-weight: 500;
  line-height: 1.4;
}

@media (max-width: 1024px) {
  .proj-grid { grid-template-columns: 1fr 1fr; }
  .proj-card--lg { grid-row: auto; }
}

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

/* =====================================================
   HOME — FINAL CTA
===================================================== */

.final-cta-section {
  padding: 120px 0;
  background: linear-gradient(145deg, #091424 0%, #0b1b38 50%, #091424 100%);
  text-align: center;
  position: relative;
  overflow: hidden;
}

.final-cta-section::before {
  content: '';
  position: absolute;
  top: -40%;
  left: 50%;
  transform: translateX(-50%);
  width: 560px;
  height: 560px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(17,85,168,.2) 0%, transparent 70%);
  pointer-events: none;
}

.final-cta-inner {
  max-width: 680px;
  margin: 0 auto;
  position: relative;
}

.final-cta-inner h2 {
  font-size: 48px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -1.6px;
  line-height: 1.06;
  margin-bottom: 16px;
}

.final-cta-inner > p {
  font-size: 17px;
  color: rgba(255,255,255,.5);
  line-height: 1.75;
  max-width: 500px;
  margin: 0 auto 44px;
}

.final-cta-btns {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.final-btn-primary {
  background: #fff;
  color: var(--navy-deep);
  padding: 16px 30px;
  font-size: 15px;
  font-weight: 800;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: 0 8px 30px rgba(255,255,255,.12);
  transition: transform .2s ease, box-shadow .2s ease;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  letter-spacing: -.1px;
}

.final-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 40px rgba(255,255,255,.18);
}

.final-btn-secondary {
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.88);
  border: 1px solid rgba(255,255,255,.18);
  padding: 16px 30px;
  font-size: 15px;
  font-weight: 700;
  border-radius: 999px;
  font-family: inherit;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
  letter-spacing: -.1px;
}

.final-btn-secondary:hover {
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.32);
  transform: translateY(-2px);
}

.final-cta-note {
  font-size: 13px;
  color: rgba(255,255,255,.28);
  font-weight: 500;
}

@media (max-width: 768px) {
  .final-cta-inner h2 { font-size: 34px; }
  .final-cta-btns { flex-direction: column; align-items: center; }
  .final-btn-primary, .final-btn-secondary { width: 100%; max-width: 320px; justify-content: center; }
  .final-cta-section { padding: 80px 0; }
}

/* =====================================================
   CHATBOT
===================================================== */

.chat-fab {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 200;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1155a8 0%, #1a6fd4 100%);
  border: none;
  box-shadow: 0 8px 28px rgba(17,85,168,.45);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform .22s ease, box-shadow .22s ease;
  color: #fff;
}
.chat-fab:hover {
  transform: scale(1.08);
  box-shadow: 0 14px 36px rgba(17,85,168,.55);
}
.chat-fab-icon { transition: opacity .18s ease, transform .18s ease; }
.chat-fab-icon--close { position: absolute; opacity: 0; transform: rotate(-90deg); }
.chat-fab.open .chat-fab-icon--chat  { opacity: 0; transform: rotate(90deg); }
.chat-fab.open .chat-fab-icon--close { opacity: 1; transform: rotate(0deg); }

/* WINDOW */
.chat-window {
  position: fixed;
  bottom: 100px;
  right: 28px;
  z-index: 199;
  width: 380px;
  max-height: 580px;
  background: #0d1b2e;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 22px;
  box-shadow: 0 32px 80px rgba(0,0,0,.55);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  opacity: 0;
  transform: translateY(20px) scale(.97);
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}
.chat-window.open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: all;
}

/* HEADER */
.chat-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  background: linear-gradient(135deg, #091424 0%, #0f2646 100%);
  border-bottom: 1px solid rgba(255,255,255,.07);
  flex-shrink: 0;
}
.chat-header-avatar {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: rgba(255,255,255,.08);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
}
.chat-header-avatar img { width: 34px; height: 34px; object-fit: contain; }
.chat-header-info { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.chat-header-name { font-size: 14px; font-weight: 700; color: #fff; }
.chat-header-status { font-size: 11px; color: #4ade80; font-weight: 500; }
.chat-header-close {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(255,255,255,.07);
  border: none;
  color: rgba(255,255,255,.5);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .18s ease, color .18s ease;
  flex-shrink: 0;
}
.chat-header-close:hover { background: rgba(255,255,255,.13); color: #fff; }

/* MESSAGES */
.chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  scroll-behavior: smooth;
}
.chat-messages::-webkit-scrollbar { width: 4px; }
.chat-messages::-webkit-scrollbar-track { background: transparent; }
.chat-messages::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 4px; }

.chat-bubble {
  max-width: 86%;
  padding: 10px 14px;
  border-radius: 16px;
  font-size: 13.5px;
  line-height: 1.55;
  word-break: break-word;
}
.chat-bubble--bot {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.07);
  color: rgba(255,255,255,.88);
  border-bottom-left-radius: 4px;
  align-self: flex-start;
}
.chat-bubble--user {
  background: linear-gradient(135deg, #1155a8 0%, #1a6fd4 100%);
  color: #fff;
  border-bottom-right-radius: 4px;
  align-self: flex-end;
}
.chat-bubble--typing {
  display: flex;
  gap: 5px;
  align-items: center;
  padding: 12px 16px;
}
.chat-typing-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255,255,255,.4);
  animation: typingPulse 1.2s infinite ease-in-out;
}
.chat-typing-dot:nth-child(2) { animation-delay: .2s; }
.chat-typing-dot:nth-child(3) { animation-delay: .4s; }
@keyframes typingPulse {
  0%,60%,100% { transform: scale(1); opacity: .4; }
  30%          { transform: scale(1.3); opacity: 1; }
}

/* FOOTER */
.chat-footer {
  border-top: 1px solid rgba(255,255,255,.07);
  padding: 12px 14px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.chat-options {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.chat-option-btn {
  padding: 8px 14px;
  border-radius: 20px;
  border: 1px solid rgba(76,139,230,.4);
  background: rgba(76,139,230,.08);
  color: #7eb8f8;
  font-size: 12.5px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease;
}
.chat-option-btn:hover {
  background: rgba(76,139,230,.2);
  border-color: rgba(76,139,230,.7);
}
.chat-input-row {
  display: flex;
  gap: 8px;
  align-items: center;
}
#chatInput {
  flex: 1;
  padding: 10px 14px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  color: #fff;
  font-size: 13.5px;
  font-family: inherit;
  outline: none;
  transition: border-color .2s ease;
}
#chatInput:focus { border-color: rgba(76,139,230,.5); }
#chatInput::placeholder { color: rgba(255,255,255,.25); }
#chatInput:disabled { opacity: .4; cursor: not-allowed; }
#chatSend {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg, #1155a8, #1a6fd4);
  border: none;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: opacity .18s ease;
}
#chatSend:hover { opacity: .85; }
#chatSend:disabled { opacity: .3; cursor: not-allowed; }

@media (max-width: 500px) {
  .chat-window { right: 12px; left: 12px; width: auto; bottom: 88px; }
  .chat-fab { bottom: 20px; right: 20px; }
}

/* =====================================================
   FOOTER
===================================================== */

/* =====================================================
   GRUPO — HERO + EMPRESAS
===================================================== */

.grupo-hero {
  min-height: 52vh;
  background: linear-gradient(160deg, #040e1e 0%, #0a1f3d 60%, #091424 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 120px 24px 80px;
  position: relative;
  overflow: hidden;
}

.grupo-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(26,77,181,.18) 0%, transparent 70%);
}

.grupo-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
}

.grupo-hero-kicker {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
  margin-bottom: 20px;
}

.grupo-hero h1 {
  font-size: 68px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -2px;
  line-height: 1.05;
  margin: 0 0 24px;
}

.grupo-hero-sub {
  font-size: 20px;
  color: rgba(255,255,255,.55);
  line-height: 1.6;
  max-width: 540px;
  margin: 0 auto;
  font-weight: 400;
}

/* EMPRESAS GRID */

.grupo-empresas {
  padding: 80px 0 100px;
  background: var(--bg-light);
}

.grupo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
}

.grupo-card {
  background: #fff;
  border-radius: 24px;
  padding: 36px 32px;
  border: 1px solid rgba(15,38,70,.08);
  box-shadow: 0 4px 24px rgba(15,38,70,.06);
  display: flex;
  flex-direction: column;
  gap: 14px;
  text-decoration: none;
  transition: transform .22s ease, box-shadow .22s ease;
  color: inherit;
}

.grupo-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 48px rgba(15,38,70,.12);
}

.grupo-card--coming {
  background: var(--bg-mid);
  border-style: dashed;
  cursor: default;
}
.grupo-card--coming:hover { transform: none; box-shadow: none; }

.grupo-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.grupo-card-tag {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  background: var(--blue-pale);
  color: var(--blue);
  padding: 4px 12px;
  border-radius: 999px;
}

.grupo-card-tag--soon {
  background: #f1f5f9;
  color: #94a3b8;
}

.grupo-card-arrow {
  font-size: 20px;
  color: var(--blue);
  opacity: .6;
  transition: opacity .2s ease, transform .2s ease;
}
.grupo-card:hover .grupo-card-arrow { opacity: 1; transform: translate(2px,-2px); }

.grupo-card-name {
  font-size: 26px;
  font-weight: 800;
  color: var(--navy-deep);
  letter-spacing: -.5px;
  line-height: 1.15;
  margin: 0;
}

.grupo-card--coming .grupo-card-name { color: #94a3b8; }

.grupo-card-desc {
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-muted);
  margin: 0;
  flex: 1;
}

.grupo-card-url {
  font-size: 12px;
  font-weight: 700;
  color: var(--blue);
  letter-spacing: .3px;
  margin-top: 4px;
}

@media (max-width: 600px) {
  .grupo-hero h1 { font-size: 42px; letter-spacing: -1.5px; }
  .grupo-hero-sub { font-size: 16px; }
  .grupo-grid { grid-template-columns: 1fr; }
  .grupo-card { padding: 28px 22px; }
}

/* ===================================================== */

.site-footer {
  background: #040c18;
  border-top: 1px solid rgba(255,255,255,.06);
}

.footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 64px 52px 48px;
  display: grid;
  grid-template-columns: 1.6fr 2fr;
  gap: 60px;
}

.footer-logo {
  width: 160px;
  height: auto;
  margin-bottom: 16px;
  opacity: .85;
}

.footer-tagline {
  font-size: 14px;
  color: rgba(255,255,255,.28);
  line-height: 1.6;
  max-width: 260px;
}

.footer-links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.footer-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-col-title {
  font-size: 10.5px;
  font-weight: 800;
  color: rgba(255,255,255,.28);
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin-bottom: 4px;
}

.footer-col a {
  font-size: 13.5px;
  color: rgba(255,255,255,.45);
  text-decoration: none;
  transition: color .18s ease;
  font-weight: 500;
}

.footer-col a:hover { color: rgba(255,255,255,.85); }

.footer-admin-link-col {
  font-size: 11px !important;
  color: rgba(255,255,255,.14) !important;
  letter-spacing: .4px;
  margin-top: 6px;
}
.footer-admin-link-col:hover { color: rgba(255,255,255,.35) !important; }

.footer-bottom {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 52px;
  border-top: 1px solid rgba(255,255,255,.05);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.footer-bottom span {
  font-size: 12.5px;
  color: rgba(255,255,255,.2);
}

.footer-admin-link {
  font-size: 11px;
  color: rgba(255,255,255,.12);
  text-decoration: none;
  font-weight: 600;
  letter-spacing: .5px;
  transition: color .18s ease;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,.06);
}

.footer-admin-link:hover {
  color: rgba(255,255,255,.4);
  border-color: rgba(255,255,255,.14);
}

@media (max-width: 900px) {
  .footer-inner {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 48px 28px 36px;
  }
  .footer-links { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 600px) {
  .footer-links { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  .footer-bottom { padding: 18px 20px; flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* =====================================================
   GRUPO — HERO + EMPRESAS
===================================================== */

.grupo-hero {
  min-height: 52vh;
  background: linear-gradient(160deg, #040e1e 0%, #0a1f3d 60%, #091424 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 120px 24px 80px;
  position: relative;
  overflow: hidden;
}

.grupo-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(26,77,181,.18) 0%, transparent 70%);
}

.grupo-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
}

.grupo-hero-kicker {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
  margin-bottom: 20px;
}

.grupo-hero h1 {
  font-size: 68px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -2px;
  line-height: 1.05;
  margin: 0 0 24px;
}

.grupo-hero-sub {
  font-size: 20px;
  color: rgba(255,255,255,.55);
  line-height: 1.6;
  max-width: 540px;
  margin: 0 auto;
  font-weight: 400;
}

.grupo-empresas {
  padding: 80px 0 100px;
  background: var(--bg-light);
}

.grupo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
}

.grupo-card {
  background: #fff;
  border-radius: 24px;
  padding: 36px 32px;
  border: 1px solid rgba(15,38,70,.08);
  box-shadow: 0 4px 24px rgba(15,38,70,.06);
  display: flex;
  flex-direction: column;
  gap: 14px;
  text-decoration: none;
  transition: transform .22s ease, box-shadow .22s ease;
  color: inherit;
}

.grupo-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 48px rgba(15,38,70,.12);
}

.grupo-card--coming {
  background: var(--bg-mid);
  border: 1px dashed rgba(15,38,70,.15);
  cursor: default;
}
.grupo-card--coming:hover { transform: none; box-shadow: none; }

.grupo-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.grupo-card-tag {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  background: var(--blue-pale);
  color: var(--blue);
  padding: 4px 12px;
  border-radius: 999px;
}

.grupo-card-tag--soon {
  background: #f1f5f9;
  color: #94a3b8;
}

.grupo-card-arrow {
  font-size: 20px;
  color: var(--blue);
  opacity: .6;
  transition: opacity .2s ease, transform .2s ease;
}
.grupo-card:hover .grupo-card-arrow { opacity: 1; transform: translate(2px,-2px); }

.grupo-card-name {
  font-size: 26px;
  font-weight: 800;
  color: var(--navy-deep);
  letter-spacing: -.5px;
  line-height: 1.15;
  margin: 0;
}

.grupo-card--coming .grupo-card-name { color: #94a3b8; }

.grupo-card-desc {
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-muted);
  margin: 0;
  flex: 1;
}

.grupo-card-url {
  font-size: 12px;
  font-weight: 700;
  color: var(--blue);
  letter-spacing: .3px;
  margin-top: 4px;
}

@media (max-width: 600px) {
  .grupo-hero h1 { font-size: 42px; letter-spacing: -1.5px; }
  .grupo-hero-sub { font-size: 16px; }
  .grupo-grid { grid-template-columns: 1fr; }
  .grupo-card { padding: 28px 22px; }
}

/* =====================================================
   PORTFOLIO SHOWCASE — BUGAHILL
===================================================== */

.proj-showcase {
  background: linear-gradient(145deg, #060f1d 0%, #0b1f3a 100%);
  border: 1px solid rgba(255,255,255,.07);
  border-top: 3px solid rgba(255,255,255,.15);
  border-radius: 28px;
  padding: 44px 40px;
  display: flex;
  flex-direction: column;
  gap: 36px;
}

.proj-showcase-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.proj-showcase-name {
  font-size: 32px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -.8px;
  margin: 10px 0 6px;
}

.proj-showcase-client {
  font-size: 13px;
  color: rgba(255,255,255,.4);
  font-weight: 500;
  margin: 0;
}

.proj-showcase-link {
  display: inline-flex;
  align-items: center;
  padding: 10px 20px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background .2s ease;
  flex-shrink: 0;
}
.proj-showcase-link:hover { background: rgba(255,255,255,.13); }
.proj-showcase-link--private {
  cursor: default;
  opacity: .5;
  pointer-events: none;
  font-style: italic;
}

.proj-showcase-body {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 40px;
  align-items: start;
}

/* MÉTRICAS */
.proj-showcase-metrics {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 160px;
}

.proj-met {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.proj-met-val {
  font-size: 30px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -1px;
  line-height: 1;
}

.proj-met-lbl {
  font-size: 11px;
  color: rgba(255,255,255,.38);
  font-weight: 600;
  letter-spacing: .3px;
  text-transform: uppercase;
}

/* SISTEMAS */
.proj-showcase-systems {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.proj-sys {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 16px 18px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 16px;
  transition: background .2s ease;
}
.proj-sys:hover { background: rgba(255,255,255,.07); }

.proj-sys-icon { font-size: 20px; flex-shrink: 0; margin-top: 1px; }

.proj-sys-name {
  display: block;
  font-size: 13.5px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 4px;
}

.proj-sys-desc {
  display: block;
  font-size: 12px;
  color: rgba(255,255,255,.42);
  line-height: 1.55;
}

/* PHOTOS STRIP */
.proj-showcase-photos {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 0 0 4px;
}
.proj-showcase-photos img {
  height: 80px;
  width: 120px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.08);
  flex-shrink: 0;
}

/* STACK */
.proj-showcase-stack {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 4px;
  border-top: 1px solid rgba(255,255,255,.06);
}

.proj-showcase-stack span {
  padding: 4px 12px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  color: rgba(255,255,255,.55);
  letter-spacing: .4px;
}

.proj-showcase--violet {
  background: linear-gradient(145deg, #120b24 0%, #1e1033 60%, #0b1a32 100%);
  border-top-color: #7c3aed;
}
.proj-showcase--gold {
  background: linear-gradient(145deg, #1a0e00 0%, #2d1b00 60%, #0b1a32 100%);
  border-top-color: #d97706;
}
.proj-showcase--green {
  background: linear-gradient(145deg, #071a10 0%, #0d2e1e 60%, #0b1a32 100%);
  border-top-color: #10b981;
}

@media (max-width: 900px) {
  .proj-showcase { padding: 28px 22px; }
  .proj-showcase-body { grid-template-columns: 1fr; gap: 24px; }
  .proj-showcase-metrics { flex-direction: row; flex-wrap: wrap; gap: 16px; min-width: unset; }
  .proj-met-val { font-size: 22px; }
  .proj-showcase-systems { grid-template-columns: 1fr; }
}

/* =====================================================
   RESULTADOS PAGE
===================================================== */

/* Resultados — contenedor más ancho y pegado a los bordes */
.res-page .section-container {
  max-width: 1440px;
  padding: 0 20px;
}

/* Resultados grid — 1 por fila */
.res-page .proj-grid {
  grid-template-columns: 1fr;
  grid-template-rows: unset;
}

/* Page top padding so content clears navbar */
.res-page {
  padding-top: 140px;
  position: relative;
  overflow: hidden;
  background: #0c1e35;
}
.res-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}
.res-page .section-container {
  position: relative;
  z-index: 1;
}

/* Mobile: collapse showcase body & stack, show toggle btn */
.showcase-toggle {
  display: none;
}

@media (max-width: 768px) {
  .showcase-toggle {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 20px auto 0;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 50px;
    color: rgba(255,255,255,.7);
    font-size: 13px;
    font-weight: 700;
    font-family: inherit;
    padding: 10px 22px;
    cursor: pointer;
    letter-spacing: .3px;
    transition: background .2s, color .2s;
    width: 100%;
    justify-content: center;
  }
  .showcase-toggle:hover {
    background: rgba(255,255,255,.12);
    color: #fff;
  }
  .toggle-text { margin-right: 5px; }
  .showcase-toggle-arrow {
    display: inline-block;
    transition: transform .3s ease;
  }
  .proj-showcase.expanded .showcase-toggle-arrow {
    transform: rotate(180deg);
  }
  .proj-showcase .proj-showcase-body {
    display: grid !important;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    margin-top: -36px;
    transition: max-height .6s cubic-bezier(.4,0,.2,1), opacity .35s ease, margin-top .4s ease;
  }
  .proj-showcase .proj-showcase-stack {
    display: flex !important;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    margin-top: -36px;
    transition: max-height .5s cubic-bezier(.4,0,.2,1), opacity .3s ease, margin-top .4s ease;
  }
  .proj-showcase.expanded .proj-showcase-body {
    max-height: 3000px;
    opacity: 1;
    pointer-events: auto;
    margin-top: 0;
    transition: max-height .7s cubic-bezier(.4,0,.2,1), opacity .45s ease .1s, margin-top .3s ease;
  }
  .proj-showcase.expanded .proj-showcase-stack {
    max-height: 200px;
    opacity: 1;
    pointer-events: auto;
    margin-top: 0;
    transition: max-height .6s cubic-bezier(.4,0,.2,1), opacity .4s ease .15s, margin-top .3s ease;
  }
}

/* =====================================================
   GRUPO PAGE — fondo + canvas compartido con resultados
===================================================== */

.grupo-page {
  position: relative;
  overflow: hidden;
  background: #0c1e35;
}
/* Secciones internas transparentes */
.grupo-page .grupo-hero {
  background: transparent;
  padding-top: 140px;
  padding-bottom: 0;
  min-height: unset;
}
.grupo-page .grupo-empresas {
  background: transparent;
}
/* Contenido por encima del canvas */
.grupo-page .grupo-hero-inner,
.grupo-page .section-container {
  position: relative;
  z-index: 1;
}
/* Tarjetas — mismo estilo que proj-showcase */
.grupo-page .grupo-card {
  position: relative;
  z-index: 1;
  background: linear-gradient(145deg, #060f1d 0%, #0b1f3a 100%);
  border: 1px solid rgba(255,255,255,.07);
  border-top: 3px solid #3b7de8;
  box-shadow: 0 8px 32px rgba(0,0,0,.3);
}
.grupo-page .grupo-card--coming {
  background: linear-gradient(145deg, #0a0f1a 0%, #111827 100%);
  border-top-color: rgba(255,255,255,.15);
}
.grupo-page .grupo-card-name {
  color: #fff;
}
.grupo-page .grupo-card--coming .grupo-card-name {
  color: rgba(255,255,255,.35);
}
.grupo-page .grupo-card-desc {
  color: rgba(255,255,255,.55);
}
.grupo-page .grupo-card-tag {
  background: rgba(59,125,232,.2);
  color: #6ea0e0;
  border: 1px solid rgba(59,125,232,.3);
}
.grupo-page .grupo-card-tag--soon {
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.3);
  border-color: rgba(255,255,255,.08);
}
.grupo-page .grupo-card-arrow {
  color: rgba(255,255,255,.5);
}
.grupo-page .grupo-card-url {
  color: #6ea0e0;
}

/* =====================================================
   SOLUCIONES — Dark mode overrides (dentro de grupo-page)
===================================================== */

.grupo-page .path-hero {
  background: transparent;
}
.grupo-page .path-hero::after { display: none; }
.grupo-page .ph-glow { display: none; }
.grupo-page .path-section { background: transparent; }
.grupo-page .specialty-cta-section { background: transparent; }

/* Grupos e industrias — fondo oscuro */
.grupo-page .path-group {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
}
.grupo-page .path-group-headline,
.grupo-page .path-group-tag {
  color: rgba(255,255,255,.9);
}
.grupo-page .path-group-tag { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.12); }

/* Card SaaS — de blanco a oscuro */
.grupo-page .path-card--saas {
  background: linear-gradient(145deg, #0e1f38 0%, #142d54 100%);
  border-color: rgba(255,255,255,.1);
  box-shadow: 0 4px 24px rgba(0,0,0,.3);
}
.grupo-page .path-card--saas .path-title,
.grupo-page .path-card--saas .path-desc,
.grupo-page .path-card--saas .path-features li {
  color: rgba(255,255,255,.85);
}
.grupo-page .path-card--saas .path-title { color: #fff; }
.grupo-page .path-hero-title {
  color: #fff;
}
.grupo-page .ph-eyebrow {
  color: rgba(255,255,255,.5);
}
.grupo-page .ph-eyebrow-dot {
  background: #4fa8f5;
}
.grupo-page .ph-sub {
  color: rgba(255,255,255,.6);
}
.grupo-page .ph-cta-ghost {
  color: rgba(255,255,255,.75);
}
.grupo-page .ph-cta-ghost:hover {
  color: #fff;
}
.grupo-page .ph-float-card {
  background: rgba(15,38,70,.85);
  border-color: rgba(255,255,255,.12);
}
.grupo-page .ph-fc-title {
  color: #fff;
}

/* =====================================================
   INDEX — DARK PAGE WRAP (index-dark-page)
   Makes post-hero sections match the resultados dark theme
===================================================== */

.index-dark-page .solutions-section {
  background: transparent;
}

.index-dark-page .vision-section {
  background: transparent;
  padding-top: 0;
}

.index-dark-page .proj-section {
  background: transparent;
}

/* ── INDEX mini project cards ─────────────────────────────── */
.idx-proj-section {
  padding: 80px 0;
  background: transparent;
}

.idx-proj-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 48px;
}

.idx-proj-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px 24px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-top: 3px solid rgba(255,255,255,.15);
  border-radius: 16px;
  text-decoration: none;
  color: inherit;
  transition: border-color .25s, transform .25s, background .25s;
}
.idx-proj-card:hover {
  background: rgba(255,255,255,.07);
  transform: translateY(-4px);
}
.idx-proj-card--blue   { border-top-color: #0ea5e9; }
.idx-proj-card--violet { border-top-color: #7c3aed; }
.idx-proj-card--gold   { border-top-color: #d97706; }
.idx-proj-card--green  { border-top-color: #059669; }

.idx-proj-metric {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 46px;
  font-weight: 900;
  line-height: 1;
  color: #fff;
  letter-spacing: -2px;
}
.idx-proj-metric-lbl {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .04em;
  color: rgba(255,255,255,.45);
  text-transform: uppercase;
}

.idx-proj-divider {
  width: 32px;
  height: 2px;
  background: rgba(255,255,255,.12);
  border-radius: 2px;
}

.idx-proj-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.idx-proj-tag {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: rgba(255,255,255,.4);
}
.idx-proj-name {
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  margin: 0;
  line-height: 1.2;
}
.idx-proj-desc {
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255,255,255,.5);
  margin: 0;
}

.idx-proj-cta {
  font-size: 13px;
  font-weight: 600;
  color: #63b3ed;
  margin-top: 4px;
}
.idx-proj-card:hover .idx-proj-cta {
  text-decoration: underline;
}

.idx-proj-footer {
  margin-top: 36px;
  text-align: center;
}
.idx-proj-all-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 12px 28px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 100px;
  color: rgba(255,255,255,.7);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: border-color .2s, color .2s, background .2s;
}
.idx-proj-all-btn:hover {
  border-color: rgba(99,179,237,.5);
  color: #63b3ed;
  background: rgba(99,179,237,.06);
}

@media (max-width: 900px) {
  .idx-proj-grid { grid-template-columns: 1fr; gap: 14px; }
  .idx-proj-metric { font-size: 38px; }
}

.index-dark-page .final-cta-section {
  background: transparent;
}

/* Vision section text on dark background */
.index-dark-page .vision-section .section-kicker {
  color: #6ea0e0;
}
.index-dark-page .vision-title {
  color: #fff;
}
.index-dark-page .vision-desc {
  color: rgba(255, 255, 255, .65);
}

/* Solutions custom card (white) → dark on dark background */
.index-dark-page .sol-card--custom {
  background: rgba(255, 255, 255, .04);
  border-color: rgba(255, 255, 255, .09);
}
.index-dark-page .sol-card--custom h3 {
  color: #fff;
}
.index-dark-page .sol-card--custom p {
  color: rgba(255, 255, 255, .55);
}
.index-dark-page .sol-card--custom .sol-badge--dark {
  background: rgba(255, 255, 255, .08);
  color: rgba(255, 255, 255, .7);
}
.index-dark-page .sol-card-btn--secondary {
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .15);
}
.index-dark-page .sol-card-btn--secondary:hover {
  background: rgba(255, 255, 255, .18);
}

/* =====================================================
   PIOFLY — PRODUCTO ESTRELLA (brand-aware styling)
===================================================== */

:root {
  --piofly-blue:       #008FC8;
  --piofly-blue-dark:  #006a96;
  --piofly-gold:       #FF8A00;
  --piofly-gold-dark:  #d97500;
}

/* ── Wordmark "piofly" reutilizable ── */
.piofly-brand-wordmark,
.pcbb-wordmark {
  font-family: 'Inter', system-ui, sans-serif;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1;
  display: inline-flex;
}
.pbw-pio { color: #fff; }
.pbw-fly { color: var(--piofly-gold); }

/* =====================================================
   index.html — sol-sector media → brand showcase
===================================================== */

.piofly-brand-media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #fff;
  border-radius: 22px;
  overflow: hidden;
  min-height: 380px;
  cursor: pointer;
  transition: transform .35s ease, box-shadow .35s ease;
  box-shadow: 0 30px 80px -30px rgba(0,143,200,.55);
}
.piofly-brand-media:hover {
  transform: translateY(-4px);
  box-shadow: 0 40px 100px -25px rgba(0,143,200,.7);
}
.piofly-brand-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 20% 20%, rgba(255,138,0,.25), transparent 55%),
    radial-gradient(ellipse at 80% 90%, rgba(255,255,255,.18), transparent 50%),
    linear-gradient(135deg, var(--piofly-blue) 0%, var(--piofly-blue-dark) 100%);
}
.piofly-brand-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 12% 22%, rgba(255,255,255,.18) 0, rgba(255,255,255,.18) 1.5px, transparent 2px),
    radial-gradient(circle at 78% 38%, rgba(255,255,255,.12) 0, rgba(255,255,255,.12) 1.2px, transparent 2px),
    radial-gradient(circle at 55% 78%, rgba(255,255,255,.15) 0, rgba(255,255,255,.15) 1.2px, transparent 2px);
  opacity: .9;
}
.piofly-brand-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 40px 30px;
  width: 100%;
}
.piofly-brand-logo {
  width: 110px;
  height: 110px;
  margin-bottom: 18px;
  filter: drop-shadow(0 10px 30px rgba(0,0,0,.25));
  animation: piofly-bird-float 4s ease-in-out infinite;
}
@keyframes piofly-bird-float {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50%     { transform: translateY(-6px) rotate(2deg); }
}
.piofly-brand-wordmark {
  font-size: 44px;
  margin-bottom: 8px;
}
.piofly-brand-tag {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,.85);
  letter-spacing: .02em;
  margin-bottom: 22px;
}
.piofly-brand-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--piofly-gold);
  color: #fff;
  font-weight: 800;
  font-size: 14px;
  padding: 12px 22px;
  border-radius: 999px;
  box-shadow: 0 10px 30px -8px rgba(255,138,0,.6);
  transition: background .2s ease, transform .2s ease;
}
.piofly-brand-media:hover .piofly-brand-cta {
  background: var(--piofly-gold-dark);
  transform: translateY(-2px);
}

/* =====================================================
   index.html — sol-card with piofly accent
===================================================== */

.sol-card--piofly {
  border: 1.5px solid rgba(0,143,200,.35) !important;
  background: linear-gradient(160deg, rgba(0,143,200,.10), rgba(0,0,0,0) 70%) !important;
  position: relative;
}
.sol-card-brand-mark {
  width: 36px;
  height: 36px;
  object-fit: contain;
  filter: drop-shadow(0 4px 10px rgba(0,143,200,.4));
}
.sol-badge--piofly {
  background: rgba(0,143,200,.18) !important;
  color: var(--piofly-blue) !important;
  border: 1px solid rgba(0,143,200,.35);
}
.sol-card-btn--piofly {
  background: var(--piofly-blue) !important;
  color: #fff !important;
  font-weight: 800 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease !important;
  box-shadow: 0 8px 24px -6px rgba(0,143,200,.55);
}
.sol-card-btn--piofly:hover {
  background: var(--piofly-blue-dark) !important;
  transform: translateY(-1px);
  box-shadow: 0 12px 30px -6px rgba(0,143,200,.7);
}

/* =====================================================
   soluciones.html — path-card piofly branded band
===================================================== */

.path-grid--single {
  grid-template-columns: 1fr !important;
  max-width: 720px;
  margin: 0 auto;
}

.path-card--piofly {
  border: 1.5px solid rgba(0,143,200,.35) !important;
  background: linear-gradient(180deg, rgba(0,143,200,.08), transparent 60%) !important;
  overflow: hidden;
}

/* Brand band at the top of the card — clickable rectangle that goes to piofly.com */
.piofly-card-brand-band {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  padding: 18px 22px;
  margin: -28px -28px 26px;
  background:
    radial-gradient(ellipse at 80% 50%, rgba(255,138,0,.18), transparent 60%),
    linear-gradient(120deg, var(--piofly-blue) 0%, var(--piofly-blue-dark) 100%);
  color: #fff;
  border-bottom: 2px solid var(--piofly-gold);
  position: relative;
  overflow: hidden;
  transition: filter .2s ease;
}
.piofly-card-brand-band:hover {
  filter: brightness(1.08);
}
.piofly-card-brand-band::after {
  content: "";
  position: absolute;
  top: -50%;
  right: -20%;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(255,255,255,.18), transparent 70%);
  pointer-events: none;
}
.pcbb-mark img {
  width: 56px;
  height: 56px;
  display: block;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.25));
}
.pcbb-text {
  flex: 1;
  min-width: 0;
}
.pcbb-wordmark {
  font-size: 26px;
  display: inline-flex;
}
.pcbb-domain {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255,255,255,.78);
  letter-spacing: .04em;
  margin-top: 2px;
}
.pcbb-cta {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--piofly-gold);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 6px 20px -4px rgba(255,138,0,.6);
  transition: transform .25s ease;
}
.piofly-card-brand-band:hover .pcbb-cta {
  transform: rotate(45deg) scale(1.08);
}

/* Pricing badge inside piofly card — use brand colors */
.path-badge--piofly {
  background: rgba(255,138,0,.16) !important;
  color: var(--piofly-gold) !important;
  border: 1px solid rgba(255,138,0,.35) !important;
}

/* Main CTA button inside piofly card */
.path-btn--piofly {
  background: var(--piofly-blue) !important;
  color: #fff !important;
  font-weight: 800 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 28px -6px rgba(0,143,200,.55) !important;
  transition: background .2s ease, transform .2s ease !important;
}
.path-btn--piofly:hover {
  background: var(--piofly-blue-dark) !important;
  transform: translateY(-1px);
}

/* Tighter responsive — brand band stacks on small screens */
@media (max-width: 540px) {
  .piofly-card-brand-band {
    padding: 14px 16px;
    margin: -22px -22px 22px;
    gap: 12px;
  }
  .pcbb-mark img { width: 44px; height: 44px; }
  .pcbb-wordmark { font-size: 22px; }
  .pcbb-cta { width: 34px; height: 34px; }
  .piofly-brand-logo { width: 84px; height: 84px; }
  .piofly-brand-wordmark { font-size: 34px; }
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   PRODUCTOS â€” lista vertical de productos (productos.html)
   DiseÃ±o minimalista: cada producto = una "fila" stackeable.
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Hero â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.prod-hero {
  position: relative;
  padding: clamp(110px, 14vw, 160px) 0 clamp(40px, 6vw, 70px);
  overflow: hidden;
  isolation: isolate;
}
.prod-hero-glow {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(ellipse 50% 40% at 80% 0%, rgba(255, 138, 0, 0.18), transparent 60%),
    radial-gradient(ellipse 60% 50% at 5% 100%, rgba(76, 139, 230, 0.08), transparent 55%);
  pointer-events: none;
}
.prod-hero-inner {
  max-width: 760px;
}
.prod-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 800;
  color: #FF8A00;
  background: rgba(255, 138, 0, 0.08);
  border: 1px solid rgba(255, 138, 0, 0.22);
  padding: 6px 14px;
  border-radius: 999px;
  margin: 0 0 24px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.prod-hero-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #FF8A00;
  box-shadow: 0 0 12px #FF8A00;
}
.prod-hero-title {
  font-size: clamp(36px, 5.5vw, 64px);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 20px;
}
.prod-hero-accent { color: #FF8A00; }
.prod-hero-sub {
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.65);
  max-width: 580px;
  margin: 0;
}

/* â”€â”€ List section â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.prod-list-section {
  padding: clamp(40px, 6vw, 80px) 0 clamp(60px, 8vw, 100px);
}
.prod-list {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

/* â”€â”€ Product item (row card) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.prod-item {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 28px;
  align-items: start;
  background: linear-gradient(180deg, rgba(255, 138, 0, 0.04), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  padding: 32px 36px;
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.prod-item:hover {
  border-color: rgba(255, 138, 0, 0.32);
  transform: translateY(-2px);
  box-shadow: 0 18px 50px -25px rgba(255, 138, 0, 0.4);
}
@media (max-width: 720px) {
  .prod-item {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 24px 22px;
  }
}

.prod-item-mark {
  display: flex;
  align-items: center;
  justify-content: center;
}
.prod-item-logo {
  width: 96px;
  height: 96px;
  object-fit: contain;
  filter: drop-shadow(0 8px 24px rgba(255, 138, 0, 0.35));
}
@media (max-width: 720px) {
  .prod-item-logo { width: 72px; height: 72px; }
}

.prod-item-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}
.prod-item-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 12px;
}
.prod-item-name {
  font-family: 'Nunito', 'Inter', sans-serif;
  font-size: clamp(28px, 3.5vw, 38px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0;
  display: inline-flex;
  color: #fff;  /* explícito — sin esto hereda var(--text-dark) del body y se ve invisible */
}
.prod-item-name .pbw-pio { color: #fff; }
.prod-item-name .pbw-fly { color: #FF8A00; }
.prod-item-tag {
  font-size: 11px;
  font-weight: 800;
  color: #FF8A00;
  background: rgba(255, 138, 0, 0.10);
  border: 1px solid rgba(255, 138, 0, 0.30);
  padding: 4px 10px;
  border-radius: 999px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.prod-item-tagline {
  font-size: clamp(16px, 1.5vw, 19px);
  font-weight: 700;
  color: #fff;
  margin: 4px 0 0;
  line-height: 1.3;
  letter-spacing: -0.01em;
}
.prod-item-desc {
  font-size: 14.5px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.66);
  margin: 0;
}
.prod-item-features {
  list-style: none;
  padding: 0;
  margin: 6px 0 4px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px 18px;
}
@media (max-width: 560px) {
  .prod-item-features { grid-template-columns: 1fr; }
}
.prod-item-features li {
  position: relative;
  padding-left: 18px;
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.45;
}
.prod-item-features li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #FF8A00;
  box-shadow: 0 0 8px rgba(255, 138, 0, 0.5);
}

/* Actions */
.prod-item-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.prod-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: inherit;
  font-weight: 800;
  font-size: 14px;
  line-height: 1;
  padding: 13px 20px;
  border-radius: 999px;
  border: 0;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease, color .2s ease, border-color .2s ease;
}
.prod-btn--primary {
  background: #FF8A00;
  color: #1a0e00;
  box-shadow: 0 10px 24px -8px rgba(255, 138, 0, 0.45),
              inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.prod-btn--primary:hover {
  background: #FF9A1F;
  transform: translateY(-2px);
  box-shadow: 0 14px 32px -8px rgba(255, 138, 0, 0.55);
}
.prod-btn--ghost {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.18);
}
.prod-btn--ghost:hover {
  border-color: rgba(255, 138, 0, 0.5);
  color: #FF8A00;
}

/* â”€â”€ PrÃ³ximo producto (low-key card) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.prod-item--soon {
  background: rgba(255, 255, 255, 0.02);
  border-style: dashed;
  border-color: rgba(255, 255, 255, 0.10);
}
.prod-item--soon:hover {
  border-color: rgba(255, 255, 255, 0.18);
  transform: none;
  box-shadow: none;
}
.prod-item-logo-placeholder {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 1.5px dashed rgba(255, 255, 255, 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.32);
}
@media (max-width: 720px) {
  .prod-item-logo-placeholder { width: 72px; height: 72px; font-size: 24px; }
}
.prod-item-name--quiet { color: rgba(255, 255, 255, 0.40); }
.prod-item-tag--quiet {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.10);
  color: rgba(255, 255, 255, 0.45);
}
.prod-item-desc--quiet { color: rgba(255, 255, 255, 0.45); }


/* â”€â”€ Variantes para clientes.html y empresas.html â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

/* Icono cuando no hay logo real (proyectos/empresas) */
.prod-item-icon {
  width: 96px;
  height: 96px;
  border-radius: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 44px;
  background: linear-gradient(135deg, rgba(255, 138, 0, 0.18), rgba(255, 138, 0, 0.05));
  border: 1px solid rgba(255, 138, 0, 0.32);
  filter: drop-shadow(0 8px 24px rgba(255, 138, 0, 0.30));
}
.prod-item-icon--gold {
  background: linear-gradient(135deg, rgba(255, 138, 0, 0.25), rgba(255, 138, 0, 0.06));
  border-color: rgba(255, 138, 0, 0.40);
}
.prod-item-icon--green {
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.22), rgba(34, 197, 94, 0.05));
  border-color: rgba(34, 197, 94, 0.36);
  filter: drop-shadow(0 8px 24px rgba(34, 197, 94, 0.30));
}
.prod-item-icon--violet {
  background: linear-gradient(135deg, rgba(168, 85, 247, 0.22), rgba(168, 85, 247, 0.05));
  border-color: rgba(168, 85, 247, 0.36);
  filter: drop-shadow(0 8px 24px rgba(168, 85, 247, 0.28));
}
@media (max-width: 720px) {
  .prod-item-icon { width: 72px; height: 72px; font-size: 32px; border-radius: 16px; }
}

/* Badge "ðŸ”’ Proyecto privado" â€” no es link, es marcador */
.prod-tag-private {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
  font-weight: 800;
  font-size: 13px;
  padding: 11px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px dashed rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.02em;
  cursor: default;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   HERO HOME â€” palabra rotante + fade-up por lÃ­nea + meta links
   Reemplaza el H1 plano por estructura .hh-line / .hh-rotate.
   Responsive: 768 â†’ 640 â†’ 480 â†’ 380.
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* .hero-content h1.hero-h1 — especificidad bumpeada para ganarle a
   .hero-content h1 que ya existe arriba en este mismo archivo.
   Tamaño contenido para que "Construyo software" entre en 1 sola línea
   y el H1 se sienta liviano, no avasallador. */
.hero-content h1.hero-h1 {
  font-family: 'Inter', sans-serif;
  font-size: 54px;
  font-weight: 900;
  letter-spacing: -1.8px;
  line-height: 1.05;
  color: #fff;
  margin: 0 0 18px;
  text-shadow: 0 4px 24px rgba(0,0,0,.45);

  /* Cada línea es un bloque para poder animar entrada por separado */
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.hh-line {
  display: block;
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .75s ease-out,
              transform .75s cubic-bezier(.2,.7,.3,1);
  will-change: transform, opacity;
}
.hh-line.is-in {
  opacity: 1;
  transform: translateY(0);
}
.hero-h1 .hh-line:nth-child(1).is-in { transition-delay: 100ms; }
.hero-h1 .hh-line:nth-child(2).is-in { transition-delay: 340ms; }

/* Contenedor de la palabra que rota */
.hh-rotate {
  display: inline-block;
  position: relative;
  vertical-align: baseline;
  color: #FF8A00;
  text-shadow: 0 0 28px rgba(255, 138, 0, 0.45);
  animation: hh-rotate-glow 2.5s ease-in-out infinite;
  white-space: nowrap;        /* evita partir la palabra en 2 lÃ­neas */
}
@keyframes hh-rotate-glow {
  0%, 100% { text-shadow: 0 0 22px rgba(255, 138, 0, 0.40); }
  50%      { text-shadow: 0 0 40px rgba(255, 138, 0, 0.80); }
}

.hh-rotate-word {
  display: inline-block;
  transition: opacity .35s ease, transform .35s cubic-bezier(.4,.0,.2,1);
}
.hh-rotate-word.is-fading {
  opacity: 0;
  transform: translateY(-8px);
}

.hh-period {
  color: #FF8A00;
  margin-left: -2px;          /* pega el punto a la palabra */
}

/* Meta links debajo de los botones */
.hero-meta {
  margin-top: 26px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.55);
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
.hero-meta a {
  color: rgba(255, 255, 255, 0.72);
  text-decoration: none;
  font-weight: 700;
  border-bottom: 1px solid transparent;
  padding-bottom: 1px;
  transition: color .2s ease, border-color .2s ease;
}
.hero-meta a:hover,
.hero-meta a:focus-visible {
  color: #FF8A00;
  border-color: rgba(255, 138, 0, 0.55);
  outline: none;
}
.hm-dot {
  color: rgba(255, 255, 255, 0.30);
  user-select: none;
}

/* â”€â”€ Reduced motion: estado final, sin animaciones â”€â”€ */
@media (prefers-reduced-motion: reduce) {
  .hh-line {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .hh-rotate { animation: none !important; }
  .hh-rotate-word,
  .hh-rotate-word.is-fading {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* â•â•â• RESPONSIVE â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Tablet/landscape phones */
@media (max-width: 992px) {
  .hero-content h1.hero-h1 { font-size: 46px; letter-spacing: -1.4px; }
}

/* Phones grandes */
@media (max-width: 768px) {
  .hero-content h1.hero-h1 { font-size: 40px; letter-spacing: -1.2px; gap: 2px; }
  .hero-meta { margin-top: 16px; font-size: 12px; gap: 10px; }
}

/* Phones medianos */
@media (max-width: 640px) {
  .hero-content h1.hero-h1 { font-size: 36px; }
}

/* Phones chicos — la palabra "vende propiedades" / "automatiza cobros"
   puede ser muy ancha. Bajamos un tick más. */
@media (max-width: 480px) {
  .hero-content h1.hero-h1 { font-size: 32px; letter-spacing: -1px; }
  .hh-rotate { font-size: 30px; }
}

/* Phones muy chicos */
@media (max-width: 380px) {
  .hero-content h1.hero-h1 { font-size: 28px; }
  .hh-rotate { font-size: 26px; }
}


/* ═════════════════════════════════════════════════════════════════
   TRUST STRIP — prueba social entre hero y contenido del home
   ════════════════════════════════════════════════════════════════ */
.trust-strip {
  background: #061226;
  border-top: 1px solid rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  padding: 36px 24px;
}
.ts-inner {
  max-width: 1180px;
  margin: 0 auto;
  text-align: center;
}
.ts-label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.42);
  margin: 0 0 22px;
}
.ts-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 56px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.ts-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 56px;
  width: auto;
  opacity: 0.55;
  filter: grayscale(1) brightness(1.5);
  transition: opacity .25s ease, filter .25s ease, transform .25s ease;
}
.ts-logo img {
  height: 100%;
  width: auto;
  max-width: 140px;
  object-fit: contain;
}
.ts-logo:hover,
.ts-logo:focus-visible {
  opacity: 1;
  filter: none;
  transform: translateY(-2px);
  outline: none;
}
.ts-caption {
  font-size: 12.5px;
  font-weight: 600;
  color: rgba(255,255,255,0.48);
  margin: 0;
  letter-spacing: 0.02em;
}

/* Mobile: logos más chicos, gap menor */
@media (max-width: 768px) {
  .trust-strip { padding: 26px 18px; }
  .ts-logos { gap: 32px; }
  .ts-logo { height: 40px; }
  .ts-caption { font-size: 11.5px; }
}
@media (max-width: 480px) {
  .ts-logos { gap: 22px; }
  .ts-logo { height: 32px; }
}

/* ── Microcopy de confianza debajo de los CTAs del hero ── */
.hero-trust {
  margin: 18px 0 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.55);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  font-weight: 500;
}
.hero-trust::before {
  content: "⚡";
  font-size: 12px;
  filter: drop-shadow(0 0 6px rgba(255, 138, 0, 0.7));
}
.hero-trust a {
  color: rgba(255, 255, 255, 0.80);
  text-decoration: none;
  font-weight: 700;
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  padding-bottom: 1px;
  transition: color .2s ease, border-color .2s ease;
}
.hero-trust a:hover {
  color: #25D366;  /* WhatsApp green */
  border-color: #25D366;
}

@media (max-width: 768px) {
  .hero-trust { font-size: 12px; margin-top: 14px; }
}
