/* ========================================
   RESET & BASE STYLES
   ======================================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --primary-color: #0056a1;
  --primary-dark: #003d73;
  --primary-light: #3380c4;
  --accent-color: #00c9ff;
  --text-dark: #1a1a1a;
  --text-gray: #666666;
  --text-light: #999999;
  --bg-light: #f8f9fa;
  --bg-white: #ffffff;
  --border-color: #e0e0e0;
  --shadow-sm: 0 2px 8px rgba(0, 86, 161, 0.08);
  --shadow-md: 0 4px 16px rgba(0, 86, 161, 0.12);
  --shadow-lg: 0 8px 32px rgba(0, 86, 161, 0.16);
  --brand: #0056a1;
  --brand-mid: #3380c4;
  --brand-light: #e8f0fe;
  --bg: #ffffff;
  --bg-soft: #f4f8ff;
  --border: #dde8f5;
  --text-primary: #0f172a;
  --text-secondary: #4a6080;
  --radius-lg: 12px;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--text-dark);
  line-height: 1.6;
  background: var(--bg-white);
  overflow-x: clip;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
  transition: all 0.3s ease;
}

/* ========================================
   NAVIGATION
   ======================================== */
.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow-sm);
  z-index: 1000;
  transition: all 0.3s ease;
}

.navbar.scrolled {
  box-shadow: var(--shadow-md);
}

.nav-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0;
}

.logo {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-dark);
}

.logo-text {
  font-family: 'Orbitron', sans-serif;
  letter-spacing: -0.5px;
}

.logo-text .pro {
  color: var(--primary-color);
}

.nav-menu {
  display: flex;
  list-style: none;
  gap: 2rem;
  align-items: center;
}

.nav-menu a {
  color: var(--text-dark);
  font-weight: 500;
  font-size: 0.95rem;
  position: relative;
  padding: 0.5rem 0;
}

.nav-menu a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--primary-color);
  transition: width 0.3s ease;
}

.nav-menu a:hover::after,
.nav-menu a.active::after {
  width: 100%;
}

.btn-contact {
  background: var(--primary-color);
  color: white !important;
  padding: 0.7rem 1.5rem !important;
  border-radius: 8px;
  font-weight: 600;
}

.btn-contact::after {
  display: none;
}

.btn-contact:hover {
  background: var(--primary-dark);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.menu-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
}

.menu-toggle span {
  width: 25px;
  height: 3px;
  background: var(--text-dark);
  border-radius: 3px;
  transition: all 0.3s ease;
}

/* ========================================
   HERO SECTION
   ======================================== */
.hero {
  position: relative;
  height: 100vh;
  min-height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-top: 70px;
  background: linear-gradient(135deg, #003d73 0%, #0056a1 50%, #1a7abf 100%);
}

.video-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.video-container video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.85) 0%, rgba(0, 61, 115, 0.9) 100%);
}

.hero-content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: white;
  max-width: 900px;
  padding: 2rem;
}

.hero-title {
  font-family: 'Orbitron', sans-serif;
  font-size: 4rem;
  font-weight: 900;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.title-line {
  display: block;
  animation: fadeInUp 0.8s ease forwards;
  opacity: 0;
}

.title-line:nth-child(2) {
  animation-delay: 0.2s;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.hero-subtitle {
  font-size: 1.25rem;
  margin-bottom: 2.5rem;
  opacity: 0.95;
  line-height: 1.8;
  animation: fadeInUp 0.8s ease 0.4s forwards;
  opacity: 0;
}

.hero-buttons {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  justify-content: flex-start;
  flex-wrap: wrap;
  animation: fadeInUp 0.8s ease 0.6s forwards;
  opacity: 0;
}

.hero-buttons .btn {
  width: auto;
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2rem;
  border-radius: 10px;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  border: none;
  transition: all 0.3s ease;
}

.btn-primary {
  background: white;
  color: var(--primary-color);
}

.btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(255, 255, 255, 0.3);
}

.btn-secondary {
  background: transparent;
  color: white;
  border: 2px solid white;
}

.btn-secondary:hover {
  background: white;
  color: var(--primary-color);
  transform: translateY(-3px);
}

.btn-white {
  background: white;
  color: var(--primary-color);
}

.btn-white:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(255, 255, 255, 0.3);
}

.btn-large {
  padding: 1.2rem 2.5rem;
  font-size: 1.1rem;
  width: 100%;
}

.scroll-indicator {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}

.mouse {
  width: 30px;
  height: 50px;
  border: 2px solid rgba(255, 255, 255, 0.7);
  border-radius: 20px;
  position: relative;
}

.wheel {
  width: 4px;
  height: 10px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 2px;
  position: absolute;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  animation: scroll 1.5s infinite;
}

.glow-orb {
  position: absolute;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 120, 255, 0.15) 0%, transparent 70%);
  top: -100px;
  right: 80px;
  pointer-events: none;
  z-index: 1;
}

.hero-two-col {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 80px;
  width: 100%;
}

.hero-two-col .hero-content {
  flex: 1;
  text-align: left;
  max-width: 480px;
}

.hero-buttons {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  justify-content: flex-start;
}

.title-light {
  font-weight: 300 !important;
  opacity: 0.5;
}

.hero-two-col .hero-buttons {
  justify-content: flex-start;
  flex-direction: row !important;
}

.hero-divider {
  width: 40px;
  height: 2px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.6), transparent);
  margin: 20px 0;
}

.hero-svg-side {
  flex: 0 0 420px;
  opacity: 0;
  animation: fadeInUp 1s ease 0.5s forwards;
}

.hero-r1 {
  transform-origin: 210px 200px;
  animation: rp 4s ease-in-out infinite;
}

.hero-r2 {
  transform-origin: 210px 200px;
  animation: rp 4s ease-in-out infinite 1.3s;
}

.hero-r3 {
  transform-origin: 210px 200px;
  animation: rp 4s ease-in-out infinite 2.6s;
}

@keyframes rp {

  0%,
  100% {
    opacity: 0.1;
  }

  50% {
    opacity: 0.35;
  }
}

.hero-scan {
  animation: sc 6s linear infinite;
  transform-origin: 210px 200px;
}

@keyframes sc {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 900px) {
  .hero-two-col {
    flex-direction: column;
  }

  .hero-svg-side {
    display: none;
  }

  .hero-two-col .hero-content {
    text-align: center;
    max-width: 100%;
  }

  .hero-two-col .hero-buttons {
    justify-content: center;
  }
}

@keyframes scroll {

  0%,
  100% {
    opacity: 0;
    transform: translateX(-50%) translateY(0);
  }

  50% {
    opacity: 1;
    transform: translateX(-50%) translateY(10px);
  }
}

/* ========================================
   STATS SECTION
   ======================================== */
.stats-section {
  background: linear-gradient(135deg, #0a2d6b 0%, #1249a8 60%, #1a5cc7 100%);
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}

.stats-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px);
  pointer-events: none;
}

.stats-section .container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 48px;
  position: relative;
  z-index: 1;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.stat-item {
  text-align: center;
  padding: 40px 24px;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
  position: relative;
}

.stat-item:last-child {
  border-right: none;
}

.stat-item::before {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: rgba(255, 255, 255, 0.3);
  margin: 0 auto 20px;
}

.stat-number {
  font-size: 3.8rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: 14px;
}

.stat-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 400;
}

.counters-section {
  background: linear-gradient(135deg, #0a2d6b 0%, #1249a8 60%, #1a5cc7 100%);
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}

.counters-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px);
  pointer-events: none;
}

.counters-container {
  max-width: 100%;
  margin: 0 auto;
  padding: 0 48px;
  position: relative;
  z-index: 1;
}

.counters-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  width: 100%;
}

.counter-item {
  text-align: center;
  padding: 40px 0;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
}

.counter-item:last-child {
  border-right: none;
}

.counter-item::before {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: rgba(255, 255, 255, 0.3);
  margin: 0 auto 20px;
}

.counter-number {
  font-size: 3.8rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: 14px;
  display: block;
}

.counter-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

@media (max-width: 600px) {
  .counters-grid {
    grid-template-columns: 1fr;
  }

  .counter-item {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }
}

@media (max-width: 768px) {
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .stat-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }

  .stat-item:nth-child(2),
  .stat-item:nth-child(4) {
    border-right: none;
  }
}

@media (max-width: 480px) {
  .stats-grid {
    grid-template-columns: 1fr;
  }

  .stat-item {
    border-right: none;
  }
}

.counters-section {
  padding: 50px 0;
  /* antes 80px */
}

.counter-number {
  font-size: 2.6rem;
  /* antes 3.8rem */
}

.counter-label {
  font-size: 11px;
}

.counter-item {
  padding: 24px 0px;
  /* antes 40px */
}

/* ============================================================
   Control Audaz 60 â€“ Stats Section
   control_audaz_stats.css
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@300;400;700;800&family=Barlow:wght@400;700&display=swap');

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* â”€â”€ SecciÃ³n principal â”€â”€ */
.ca-section {
  position: relative;
  width: 100%;
  background: #f8f9fc;
  overflow: hidden;
}

/* â”€â”€ Fondo de red: ocupa todo el espacio de la secciÃ³n â”€â”€ */
.net-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.net-bg svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* â”€â”€ Stats encima del fondo â”€â”€ */
.stats-overlay {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  padding: 60px 16px 60px;
}

/* â”€â”€ Cada stat â”€â”€ */
.stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  flex: 1;
  min-width: 140px;
  max-width: 200px;
}

/* â”€â”€ CÃ­rculo â”€â”€ */
.circ-wrap {
  position: relative;
  width: 148px;
  height: 148px;
  flex-shrink: 0;
}

.circ-svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 148px;
  height: 148px;
}

.circ-inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
}

/* â”€â”€ Animaciones de anillos â”€â”€ */
@keyframes spin-cw {
  to {
    transform: rotate(360deg);
  }
}

@keyframes spin-ccw {
  to {
    transform: rotate(-360deg);
  }
}

.r-cw {
  transform-origin: 74px 74px;
  animation: spin-cw 14s linear infinite;
}

.r-ccw {
  transform-origin: 74px 74px;
  animation: spin-ccw 20s linear infinite;
}

/* â”€â”€ TipografÃ­a de nÃºmeros â”€â”€ */
.num-row {
  display: flex;
  align-items: flex-end;
  gap: 1px;
}

.stat-prefix {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: #1346b0;
  line-height: 1;
  align-self: flex-start;
  margin-bottom: 5px;
}

.stat-num {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 48px;
  font-weight: 800;
  color: #1346b0;
  line-height: 1;
  letter-spacing: -1px;
}

.stat-suffix {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #1346b0;
  line-height: 1;
  align-self: flex-end;
  margin-bottom: 7px;
}

/* â”€â”€ Etiqueta debajo del cÃ­rculo â”€â”€ */
.ca-section .stat-label {
  font-family: 'Barlow', sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: #1346b0;
  text-transform: uppercase;
  letter-spacing: 2px;
  text-align: center;
  line-height: 1.6;
  display: block;
  width: 100%;
}

/* â”€â”€ Puntos de ciudades en el SVG de fondo â”€â”€ */
@keyframes ring-expand {
  0% {
    r: 4;
    opacity: .8;
  }

  100% {
    r: 16;
    opacity: 0;
  }
}

.mdot {
  fill: #1346b0;
}

.mring {
  fill: none;
  stroke: #1346b0;
  stroke-width: 1;
  animation: ring-expand 2.4s ease-out infinite;
}

.mring2 {
  fill: none;
  stroke: #1346b0;
  stroke-width: .5;
  animation: ring-expand 2.4s ease-out infinite .9s;
}

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 600px) {
  .stat-item {
    min-width: 120px;
    max-width: 160px;
  }

  .circ-wrap {
    width: 115px;
    height: 115px;
  }

  .circ-svg {
    width: 115px;
    height: 115px;
  }

  .stat-num {
    font-size: 36px;
  }

  .stat-prefix {
    font-size: 16px;
  }

  .r-cw,
  .r-ccw {
    transform-origin: 57px 57px;
  }

  .stats-overlay {
    padding: 40px 8px 48px;
  }
}

/* ========================================
   PAGE HEADER
   ======================================== */
.page-header {
  position: relative;
  background: #003058;
  overflow: hidden;
  padding: 90px 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  margin-top: 70px;
  color: white;
  text-align: center;
}

.page-header h1 {
  font-family: 'Orbitron', sans-serif;
  font-size: 3.5rem;
  margin-bottom: 1rem;
  font-weight: 900;
}

.page-header p {
  font-size: 1.25rem;
  opacity: 0.9;
}

/* ========================================
   SECTIONS
   ======================================== */
.vigilancia-section,
.service-detail,
.projects-section,
.about-section,
.mission-section,
.team-section,
.certifications-section,
.why-us-section,
.contact-section {
  padding: 5rem 0;
}

.vigilancia-section {
  padding: 160px 8%;

  background:
    linear-gradient(135deg, #dbeafe, #eef2ff, #f1f5f9);
}

.section-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 4rem;
}

.section-title {
  font-size: 50px;
  font-weight: 800;
  letter-spacing: -1px;
  margin-bottom: 20px;
  color: #0f172a;
}

.section-subtitle {
  font-size: 18px;
  color: #64748b;
  max-width: 650px;
  margin: auto;
  line-height: 1.7;
}

/* ========================================
   FEATURES GRID
   ======================================== */
/* ========================================
   FEATURES GRID 
   ======================================== */

.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 45px;
  margin-top: 80px;
}

.feature-card {
  padding: 45px;
  border-radius: 22px;

  /* GLASS REAL */
  background: rgba(255, 255, 255, 0.25);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);

  border: 1px solid rgba(255, 255, 255, 0.6);

  box-shadow:
    0 25px 60px rgba(0, 0, 0, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);

  transition: all .4s ease;
  position: relative;
  overflow: hidden;
}

.feature-card {
  padding: 45px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* linea superior elegante */
.feature-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  background: linear-gradient(120deg,
      transparent,
      rgba(255, 255, 255, 0.45),
      transparent);

  opacity: 0;
  transition: .4s;
}

.feature-card:hover::after {
  opacity: 1;
}

.feature-card:hover {
  transform: translateY(-14px) scale(1.02);

  box-shadow:
    0 45px 100px rgba(0, 0, 0, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.feature-icon {
  width: 90px;
  height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #e8f0fe, #dbeafe);
  border-radius: 24px;
  margin: 0 auto 28px;
  transition: .3s;
  box-shadow: 0 4px 16px rgba(37, 99, 235, 0.15);
}

.feature-icon svg {
  width: 46px;
  height: 46px;
  stroke: #2563eb;
  transition: .3s;
}

.feature-card:hover .feature-icon {
  background: #2563eb;
}

.feature-card:hover svg {
  stroke: white;
  transform: scale(1.1);
}

.feature-card h3 {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 12px;
  color: #0f172a;
  transition: opacity .35s ease, transform .35s ease;
}

.feature-card p {
  font-size: 15px;
  color: #64748b;
  line-height: 1.7;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .35s ease .07s, transform .35s ease .07s;
}

.feature-card:hover p {
  opacity: 1;
  transform: translateY(0);
}

.feature-card:hover h3,
.feature-card:hover p {
  opacity: 1;
  transform: translateY(0);
}

/* ========================================
   TECH SECTION
   ======================================== */
.tech-section {
  background: var(--bg-light);
  padding: 5rem 0;
}

.tech-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.tech-text h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  font-weight: 900;
}

.tech-text p {
  color: var(--text-gray);
  font-size: 1.1rem;
  margin-bottom: 2rem;
  line-height: 1.8;
}

.tech-list {
  list-style: none;
  margin-bottom: 2rem;
}

.tech-list li {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.8rem 0;
  color: var(--text-dark);
  font-weight: 500;
}

.tech-visual {
  position: relative;
  height: 400px;
  background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}

.scanning-line {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--accent-color);
  box-shadow: 0 0 20px var(--accent-color);
  animation: scan 3s infinite;
}

@keyframes scan {

  0%,
  100% {
    top: 0;
  }

  50% {
    top: 100%;
  }
}

.data-points .point {
  position: absolute;
  width: 12px;
  height: 12px;
  background: var(--accent-color);
  border-radius: 50%;
  box-shadow: 0 0 20px var(--accent-color);
  animation: pulse 2s infinite;
}

@keyframes pulse {

  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 0.5;
    transform: scale(1.5);
  }
}

/* ========================================
   SERVICE DETAIL
   ======================================== */
.service-detail {
  padding: 4rem 0;
}

.service-detail.alt {
  background: var(--bg-light);
}

.service-layout {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 4rem;
  align-items: start;
}

.service-layout.reverse {
  grid-template-columns: 1fr 1.2fr;
}

.service-layout.reverse .service-content {
  order: 2;
}

.service-layout.reverse .service-image {
  order: 1;
}

.service-tag {
  display: inline-block;
  padding: 0.5rem 1rem;
  background: rgba(0, 86, 161, 0.1);
  color: var(--primary-color);
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

.service-content h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  font-weight: 900;
}

.service-content h3 {
  font-size: 1.5rem;
  margin: 2rem 0 1.5rem;
  color: var(--text-dark);
  font-weight: 700;
}

.lead {
  font-size: 1.15rem;
  color: var(--text-gray);
  line-height: 1.8;
  margin-bottom: 2rem;
}

.features-list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin: 2rem 0;
}

.feature-item {
  display: flex;
  gap: 1.5rem;
  align-items: start;
}

.feature-icon-small {
  flex-shrink: 0;
}

.feature-item h4 {
  color: var(--text-dark);
  margin-bottom: 0.5rem;
  font-weight: 600;
}

.feature-item p {
  color: var(--text-gray);
  line-height: 1.6;
}

.tech-specs {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1rem;
  margin: 2rem 0;
}

.tech-specs li {
  padding: 0.8rem 1rem 0.8rem 2.5rem;
  background: var(--bg-light);
  border-radius: 8px;
  position: relative;
  color: var(--text-dark);
  font-weight: 500;
}

.tech-specs li::before {
  content: 'â—';
  position: absolute;
  left: 1rem;
  color: var(--primary-color);
  font-size: 1.5rem;
  line-height: 1;
}

.service-image {
  position: sticky;
  top: 100px;
}

.image-placeholder {
  width: 100%;
  height: 500px;
  border-radius: 16px;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}

.cameras-bg {
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.9), rgba(0, 61, 115, 0.9)),
    url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="30" fill="%23fff" opacity="0.1"/></svg>');
  background-size: cover;
}

.access-bg {
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.9), rgba(0, 61, 115, 0.9)),
    url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><rect x="30" y="30" width="40" height="40" fill="%23fff" opacity="0.1"/></svg>');
  background-size: cover;
}

.monitoring-bg {
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.9), rgba(0, 61, 115, 0.9)),
    url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M20 50 L50 20 L80 50 L50 80 Z" fill="%23fff" opacity="0.1"/></svg>');
  background-size: cover;
}

.network-bg {
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.9), rgba(0, 61, 115, 0.9)),
    url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="25" cy="25" r="5" fill="%23fff" opacity="0.1"/><circle cx="75" cy="25" r="5" fill="%23fff" opacity="0.1"/><circle cx="25" cy="75" r="5" fill="%23fff" opacity="0.1"/><circle cx="75" cy="75" r="5" fill="%23fff" opacity="0.1"/></svg>');
  background-size: cover;
}

.overlay-text {
  position: absolute;
  bottom: 2rem;
  left: 2rem;
  color: white;
  font-family: 'Orbitron', sans-serif;
  font-size: 2rem;
  font-weight: 900;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

/* ========================================
   PROJECTS
   ======================================== */
.projects-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  gap: 2.5rem;
}

.project-card {
  background: white;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: all 0.3s ease;
  border: 1px solid var(--border-color);
}

.project-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
}

.project-image {
  height: 240px;
  background-size: cover;
  background-position: center;
  position: relative;
}

.corporate-bg {
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.8), rgba(0, 61, 115, 0.8));
}

.retail-bg {
  background: linear-gradient(135deg, rgba(0, 120, 180, 0.8), rgba(0, 86, 161, 0.8));
}

.industrial-bg {
  background: linear-gradient(135deg, rgba(0, 61, 115, 0.8), rgba(0, 40, 80, 0.8));
}

.residential-bg {
  background: linear-gradient(135deg, rgba(51, 128, 196, 0.8), rgba(0, 86, 161, 0.8));
}

.educational-bg {
  background: linear-gradient(135deg, rgba(0, 100, 150, 0.8), rgba(0, 61, 115, 0.8));
}

.hospitality-bg {
  background: linear-gradient(135deg, rgba(0, 140, 200, 0.8), rgba(0, 86, 161, 0.8));
}

.banking-bg {
  background: linear-gradient(135deg, rgba(0, 50, 100, 0.8), rgba(0, 86, 161, 0.8));
}

.logistics-bg {
  background: linear-gradient(135deg, rgba(0, 80, 130, 0.8), rgba(0, 61, 115, 0.8));
}

.healthcare-bg {
  background: linear-gradient(135deg, rgba(0, 110, 170, 0.8), rgba(0, 86, 161, 0.8));
}

.project-category {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: white;
  color: var(--primary-color);
  padding: 0.5rem 1rem;
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.85rem;
}

.project-content {
  padding: 2rem;
}

.project-content h3 {
  font-size: 1.4rem;
  margin-bottom: 0.5rem;
  color: var(--text-dark);
  font-weight: 700;
}

.project-meta {
  color: var(--text-light);
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

.project-content p {
  color: var(--text-gray);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

.project-specs {
  list-style: none;
  margin-bottom: 1.5rem;
}

.project-specs li {
  padding: 0.5rem 0;
  padding-left: 1.5rem;
  position: relative;
  color: var(--text-dark);
  font-size: 0.9rem;
}

.project-specs li::before {
  content: 'â–¸';
  position: absolute;
  left: 0;
  color: var(--primary-color);
}

.project-result {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 1rem;
  background: rgba(0, 86, 161, 0.05);
  border-radius: 8px;
  font-weight: 600;
  color: var(--primary-color);
  font-size: 0.95rem;
}

/* ========================================
   TESTIMONIALS
   ======================================== */
.testimonials-section {
  background: var(--bg-light);
  padding: 5rem 0;
}

.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 2rem;
  margin-top: 3rem;
}

.testimonial-card {
  background: white;
  padding: 2.5rem;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  position: relative;
}

.quote-icon {
  margin-bottom: 1rem;
}

.testimonial-card p {
  color: var(--text-gray);
  line-height: 1.8;
  margin-bottom: 2rem;
  font-style: italic;
}

.testimonial-author strong {
  display: block;
  color: var(--text-dark);
  font-weight: 700;
  margin-bottom: 0.3rem;
}

.testimonial-author span {
  color: var(--text-light);
  font-size: 0.9rem;
}

/* ========================================
   ABOUT, MISSION, TEAM
   ======================================== */
.about-content {
  display: grid;
  gap: 4rem;
}

.about-text {
  max-width: 800px;
}

.about-text h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  font-weight: 900;
}

.about-text p {
  color: var(--text-gray);
  line-height: 1.8;
  margin-bottom: 1.5rem;
  font-size: 1.05rem;
}

.about-values {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
}

.value-card {
  text-align: center;
  padding: 2rem;
  background: white;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  transition: all 0.3s ease;
}

.value-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
}

.value-icon {
  margin-bottom: 1.5rem;
}

.value-card h3 {
  font-size: 1.3rem;
  margin-bottom: 1rem;
  color: var(--text-dark);
  font-weight: 700;
}

.value-card p {
  color: var(--text-gray);
  line-height: 1.6;
}

.mission-section {
  background: var(--bg-light);
}

.mission-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: 3rem;
}

.mission-card {
  background: white;
  padding: 3rem;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
}

.mission-icon {
  margin-bottom: 2rem;
}

.mission-card h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2rem;
  margin-bottom: 1.5rem;
  font-weight: 900;
}

.mission-card p {
  color: var(--text-gray);
  line-height: 1.8;
  font-size: 1.05rem;
}

.team-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
  margin-top: 3rem;
}

.team-stat {
  text-align: center;
  padding: 2rem;
  background: white;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
}

/* ========================================
   CERTIFICATIONS
   ======================================== */
.cert-category {
  margin-bottom: 4rem;
  margin-top: 4rem;
}

.cert-category h3 {
  font-size: 1.8rem;
  margin-bottom: 2rem;
  color: var(--text-dark);
  font-weight: 700;
  text-align: center;
}

.certifications-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem;
}

.cert-card {
  text-align: center;
  padding: 2rem 1.5rem;
  background: white;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  transition: all 0.3s ease;
  border: 2px solid transparent;
}

.cert-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
  border-color: var(--primary-color);
}

.cert-badge {
  margin: 0 auto 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cert-card h4 {
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
  color: var(--text-dark);
  font-weight: 700;
}

.cert-card p {
  color: var(--text-gray);
  font-size: 0.9rem;
}

/* ========================================
   WHY US
   ======================================== */
.why-us-section {
  background: var(--bg-light);
}

.why-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
  margin-top: 3rem;
}

.why-card {
  background: white;
  padding: 2.5rem;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  position: relative;
  transition: all 0.3s ease;
}

.why-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
}

.why-number {
  font-family: 'Orbitron', sans-serif;
  font-size: 3rem;
  font-weight: 900;
  color: rgba(0, 86, 161, 0.1);
  line-height: 1;
  margin-bottom: 1rem;
}

.why-card h3 {
  font-size: 1.3rem;
  margin-bottom: 1rem;
  color: var(--text-dark);
  font-weight: 700;
}

.why-card p {
  color: var(--text-gray);
  line-height: 1.7;
}

/* ========================================
   CONTACT
   ======================================== */
.contact-wrapper {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 4rem;
}

.contact-info h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2rem;
  margin-bottom: 1rem;
  font-weight: 900;
}

.contact-info>p {
  color: var(--text-gray);
  margin-bottom: 2rem;
  line-height: 1.7;
}

.info-items {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.info-item {
  display: flex;
  gap: 1.5rem;
}

.info-icon {
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  background: rgba(0, 86, 161, 0.1);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.info-item h4 {
  color: var(--text-dark);
  margin-bottom: 0.5rem;
  font-weight: 700;
}

.info-item p {
  color: var(--text-gray);
  line-height: 1.6;
}

.whatsapp-note {
  color: var(--primary-color);
  font-weight: 600;
  font-size: 0.9rem;
}

.emergency-contact {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem;
  background: linear-gradient(135deg, #ff4444 0%, #cc0000 100%);
  color: white;
  border-radius: 12px;
  margin-top: 2rem;
}

.emergency-contact h4 {
  margin-bottom: 0.3rem;
}

.emergency-number {
  font-family: 'Orbitron', sans-serif;
  font-size: 1.3rem;
  font-weight: 900;
}

.contact-form-wrapper {
  background: white;
  padding: 3rem;
  border-radius: 16px;
  box-shadow: var(--shadow-md);
}

.form-header {
  margin-bottom: 2rem;
}

.form-header h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2rem;
  margin-bottom: 0.5rem;
  font-weight: 900;
}

.form-header p {
  color: var(--text-gray);
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.form-group {
  display: flex;
  flex-direction: column;
}

.form-group label {
  margin-bottom: 0.5rem;
  color: var(--text-dark);
  font-weight: 600;
  font-size: 0.95rem;
}

.form-group input,
.form-group select,
.form-group textarea {
  padding: 1rem;
  border: 2px solid var(--border-color);
  border-radius: 8px;
  font-family: inherit;
  font-size: 1rem;
  transition: all 0.3s ease;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: 0 0 0 3px rgba(0, 86, 161, 0.1);
}

.form-group textarea {
  resize: vertical;
  min-height: 120px;
}

.checkbox-group {
  flex-direction: row;
  align-items: center;
}

.checkbox-label {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  cursor: pointer;
  font-weight: 500;
}

.checkbox-label input[type="checkbox"] {
  width: 20px;
  height: 20px;
  cursor: pointer;
}

.link {
  color: var(--primary-color);
  text-decoration: underline;
}

.form-status {
  padding: 1rem;
  border-radius: 8px;
  margin-top: 1rem;
  display: none;
}

.form-status.success {
  background: #d4edda;
  color: #155724;
  display: block;
}

.form-status.error {
  background: #f8d7da;
  color: #721c24;
  display: block;
}

.form-note {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
  padding: 1rem;
  background: rgba(0, 86, 161, 0.05);
  border-radius: 8px;
}

.form-note p {
  color: var(--text-gray);
  font-size: 0.9rem;
  line-height: 1.5;
}

.map-section {
  padding: 3rem 0;
  background: var(--bg-light);
}

.map-container {
  margin-top: 2rem;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

/* ========================================
   CTA SECTION
   ======================================== */
.cta-banner {
  background: linear-gradient(135deg, #0a2d6b 0%, #1249a8 60%, #1a5cc7 100%);
  padding: 72px 64px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.cta-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px);
}

.circle {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.06);
  pointer-events: none;
}

.circle-1 {
  width: 350px;
  height: 350px;
  top: -100px;
  right: -100px;
}

.circle-2 {
  width: 220px;
  height: 220px;
  top: -60px;
  right: -60px;
}

.circle-3 {
  width: 320px;
  height: 320px;
  bottom: -120px;
  left: -80px;
}

.cta-inner {
  position: relative;
  z-index: 1;
  max-width: 680px;
  margin: 0 auto;
}

.divider {
  width: 48px;
  height: 2px;
  background: rgba(255, 255, 255, 0.35);
  margin: 0 auto 32px;
}

.cta-title {
  color: #ffffff;
  line-height: 1.2;
  margin-bottom: 28px;
}

.cta-title .light {
  display: block;
  font-size: 2.8rem;
  font-weight: 300;
}

.cta-title .bold {
  display: block;
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.cta-subtitle {
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.7;
  font-weight: 300;
  max-width: 500px;
  margin: 0 auto 48px;
}

.cta-buttons {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 52px;
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  padding: 15px 32px;
  border-radius: 6px;
  text-decoration: none;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.btn-primary {
  background: #ffffff;
  color: #0a2d6b;
  border: 1px solid transparent;
  font-weight: 600;
}

.btn-primary:hover {
  background: #f0f4ff;
}

.btn-secondary {
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.25);
  font-weight: 400;
}

.btn-secondary:hover {
  border-color: rgba(255, 255, 255, 0.5);
  color: #ffffff;
}

.cta-stats {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 32px;
  display: flex;
  gap: 48px;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
}

.stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.stat-number {
  font-size: 1.4rem;
  font-weight: 700;
  color: #ffffff;
}

.stat-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.stat-divider {
  width: 1px;
  height: 40px;
  background: rgba(255, 255, 255, 0.1);
}

@media (max-width: 600px) {
  .cta-banner {
    padding: 48px 24px;
  }

  .cta-title .light,
  .cta-title .bold {
    font-size: 2rem;
  }

  .stat-divider {
    display: none;
  }

  .cta-stats {
    gap: 28px;
  }
}

/* ========================================
   FOOTER
   ======================================== */
.footer {
  background: linear-gradient(160deg, #0a1628 0%, #0d1f3c 50%, #0a1628 100%);
  border-top: 3px solid #1249a8;
  position: relative;
  overflow: hidden;
  margin-top: 80px;

}

.footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 48px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.4fr;
  gap: 48px;
}

/* Brand */

.footer-logo img {
  height: 48px;
  margin-bottom: 16px;

}

.footer-desc {
  font-size: 13.5px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 24px;
  max-width: 260px;
}

.footer-social {
  display: flex;
  gap: 10px;
}

.social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #0056a1;
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
}

.social-link:hover {
  border-color: rgba(255, 255, 255, 0.3);
  color: #ffffff;
  background: rgba(255, 255, 255, 0.06);
}

/* Columnas */


.footer-heading {
  font-size: 12px;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-links a {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.45);
  text-decoration: none;
  transition: color 0.2s;
}

.footer-links a:hover {
  color: #ffffff;
}

/* Contacto */
.footer-contact {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.footer-contact li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.45);
}

.footer-contact svg {
  flex-shrink: 0;
  color: rgba(255, 255, 255, 0.3);
}

.footer-contact a {
  color: rgba(255, 255, 255, 0.45);
  text-decoration: none;
  transition: color 0.2s;
}

.footer-contact a:hover {
  color: #ffffff;
}

/* Bottom bar */
.footer-bottom {
  max-width: 1200px;
  margin: 48px auto 0;
  padding: 20px 48px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.footer-bottom span {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.25);
}

.footer-bottom-links {
  display: flex;
  gap: 24px;
}

.footer-bottom-links a {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.25);
  text-decoration: none;
  transition: color 0.2s;
}

.footer-bottom-links a:hover {
  color: rgba(255, 255, 255, 0.6);
}

.footer::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.012) 0px, rgba(255, 255, 255, 0.012) 1px, transparent 1px, transparent 80px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.012) 0px, rgba(255, 255, 255, 0.012) 1px, transparent 1px, transparent 80px);
  pointer-events: none;
}

.footer-circle {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(18, 73, 168, 0.15);
  pointer-events: none;
}

.footer-circle-1 {
  width: 320px;
  height: 320px;
  top: -100px;
  right: -100px;
}

.footer-circle-2 {
  width: 200px;
  height: 200px;
  bottom: -80px;
  left: -60px;
}

/* Responsive */
@media (max-width: 900px) {
  .footer-inner {
    grid-template-columns: 1fr 1fr;
    gap: 36px;
  }

  .footer-brand {
    grid-column: span 2;
  }
}

@media (max-width: 560px) {
  .footer-inner {
    grid-template-columns: 1fr;
    padding: 0 24px;
  }

  .footer-brand {
    grid-column: span 1;
  }

  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    padding: 20px 24px;
  }
}

.footer-contact li svg {
  stroke: #4a9eff;
}

/* ========================================
   RESPONSIVE
   ======================================== */
@media (max-width: 968px) {
  .nav-menu {
    position: fixed;
    top: 70px;
    left: -100%;
    width: 100%;
    height: calc(100vh - 70px);
    background: white;
    flex-direction: column;
    padding: 2rem;
    transition: left 0.3s ease;
    box-shadow: var(--shadow-md);
  }

  .nav-menu.active {
    left: 0;
  }

  .menu-toggle {
    display: flex;
  }

  .hero-title {
    font-size: 2.5rem;
  }

  .tech-content,
  .service-layout,
  .contact-wrapper {
    grid-template-columns: 1fr;
  }

  .service-layout.reverse .service-content {
    order: 1;
  }

  .service-layout.reverse .service-image {
    order: 2;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  .mission-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .hero-title {
    font-size: 2rem;
  }

  .section-title {
    font-size: 2rem;
  }

  .stats-grid,
  .features-grid,
  .projects-grid,
  .why-grid {
    grid-template-columns: 1fr;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .page-header h1 {
    font-size: 2.5rem;
  }
}

/* CARRUSEL */
/* ================================================
   CARRUSEL DE IMÃGENES - carrusel.css
   Control Audaz 60 S.A. DE C.V.
   ================================================ */

/* Forzar fondo azul en el contenedor padre */
.service-image {
  background: #fcfcfc !important;
  border-radius: 16px;
  padding: 0 !important;
}

.carrusel-container {
  position: relative;
  width: 100%;
  max-width: 490px;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0, 86, 161, 0.18);

}

.carrusel-track {
  position: relative;
  width: 100%;
  height: 380px;
}

.carrusel-slide {
  display: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;

  flex-direction: column;
}

.carrusel-slide.active {
  display: flex;
  align-items: center;
  justify-content: center;
}

.carrusel-slide img {
  width: 100%;
  height: 380px;
  object-fit: contain;
  padding: 20px;
  box-sizing: border-box;

}

/* Texto debajo del carrusel */
.carrusel-caption1 {
  text-align: center;
  color: #ffffff;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 12px 16px;
  background: #0056a1;
}


/* CARRUSEL CONTROL DE ACCESO*/
/* ================================================
   CARRUSEL DE IMÃGENES - carrusel.css
   Control Audaz 60 S.A. DE C.V.
   ================================================ */
/* Slides carrusel 2 */
/* Segundo carrusel fondo oscuro */
#carrusel2 {
  background: #162032;
  box-shadow: 0 8px 32px rgba(26, 26, 46, 0.4);
}

.carrusel-slide2 {
  display: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #162032;
}

.carrusel-slide2.active {
  display: flex;
  align-items: center;
  justify-content: center;
}

.carrusel-slide img,
.carrusel-slide2 img,
.carrusel-slide4 img {
  width: 100%;
  height: 380px;
  object-fit: contain;
  padding: 20px;
  box-sizing: border-box;
}

/* Texto debajo del carrusel */
.carrusel-caption {
  text-align: center;
  color: #162032;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 12px 16px;
  background: #f1f2f3;
}

.carrusel-slide img,
.carrusel-slide2 img,
.carrusel-slide4 img {
  width: 80%;
  height: 380px;
  object-fit: contain;
  padding: 20px;
  box-sizing: border-box;
  transition: transform 0.4s ease;
}

.carrusel-slide img:hover,
.carrusel-slide2 img:hover,
.carrusel-slide4 img:hover {
  transform: scale(1.5);
}

.carrusel-container:hover {
  overflow: visible;
  z-index: 100;
}

/* CARRUSEL REDES */
#carrusel4 {
  background: #0056a1;
  box-shadow: 0 8px 32px rgba(26, 26, 46, 0.4);
}

.carrusel-slide4 {
  display: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #0056a1;
}

.carrusel-slide4.active {
  display: flex;
  align-items: center;
  justify-content: center;
}

.carrusel-caption4 {
  text-align: center;
  color: #0056a1;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 12px 16px;
  background: #f7f8f8;
}

/* CARRUSEL MONITOREO */
#carrusel3 {
  background: #0056a1;
  box-shadow: 0 8px 32px rgba(26, 26, 46, 0.4);
}

.carrusel-slide3 {
  display: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #50555a;
}

.carrusel-slide3.active {
  display: flex;
  align-items: center;
  justify-content: center;
}

.carrusel-caption3 {
  text-align: center;
  color: #f8f9fa;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 12px 16px;
  background: #1a1a1a;

}

#carrusel3 {
  background: #0d1b2a;
  box-shadow: 0 8px 32px rgba(13, 27, 42, 0.5);
}

#carrusel3 .carrusel-slide3 {
  background: #012aa3;
}

#carrusel3 .carrusel-slide3 img {
  width: 90%;
  height: 330px;
  object-fit: cover;
  object-position: center;
  padding: 0;
  transition: transform 0.4s ease;
}

#carrusel3 .carrusel-slide3 img:hover {
  transform: scale(1.08);
}

#carrusel3 .carrusel-caption3 {
  background: #fcfcfd;
  color: #16018b;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-align: center;
  padding: 14px 16px;
}

.iso-scene {
  position: relative;
  width: 560px;
  height: 560px;
  border-radius: 16px;
  overflow: hidden;
}

.iso-bg {
  position: absolute;
  inset: 0;
  border-radius: 16px;
  background:
    radial-gradient(ellipse 90% 70% at 55% 40%, rgba(0, 40, 90, 0.75) 0%, transparent 65%),
    radial-gradient(ellipse 50% 50% at 20% 75%, rgba(0, 20, 60, 0.5) 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 85% 20%, rgba(0, 15, 40, 0.4) 0%, transparent 50%),
    linear-gradient(160deg, #020d1f 0%, #03111e 40%, #020810 70%, #010608 100%);
}

.iso-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 45% at 60% 35%, rgba(0, 80, 160, 0.12) 0%, transparent 60%),
    radial-gradient(ellipse 40% 35% at 30% 60%, rgba(0, 150, 200, 0.07) 0%, transparent 55%),
    radial-gradient(ellipse 30% 25% at 75% 70%, rgba(0, 60, 120, 0.1) 0%, transparent 50%);
  animation: nebulaDrift 12s ease-in-out infinite alternate;
}

@keyframes nebulaDrift {
  0% {
    transform: scale(1) translate(0, 0);
    opacity: 1;
  }

  100% {
    transform: scale(1.06) translate(-8px, 5px);
    opacity: 0.75;
  }
}

.iso-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 16px;
  border: 1px solid rgba(0, 180, 255, 0.12);
  box-shadow:
    inset 0 0 60px rgba(0, 100, 200, 0.07),
    inset 0 0 120px rgba(0, 50, 120, 0.05),
    0 0 40px rgba(0, 100, 200, 0.08),
    0 0 80px rgba(0, 50, 150, 0.06);
}

#particles {
  position: absolute;
  inset: 0;
  border-radius: 16px;
}

.scanlines {
  position: absolute;
  inset: 0;
  border-radius: 16px;
  background: repeating-linear-gradient(0deg, transparent, transparent 3px,
      rgba(0, 200, 255, 0.012) 3px, rgba(0, 200, 255, 0.012) 4px);
  pointer-events: none;
}

.sweep {
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 200, 255, 0.04), transparent);
  animation: sweepAnim 8s ease-in-out infinite;
  pointer-events: none;
}

@keyframes sweepAnim {
  0% {
    left: -60%;
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    left: 120%;
    opacity: 0;
  }
}

.iso-wrapper {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.iso-svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.iso-glow {
  position: absolute;
  bottom: 8%;
  left: 50%;
  transform: translateX(-50%);
  width: 65%;
  height: 35px;
  background: radial-gradient(ellipse, rgba(0, 180, 255, 0.35) 0%, transparent 70%);
  filter: blur(14px);
  pointer-events: none;
  animation: glowPulse 3s ease-in-out infinite;
}

@keyframes glowPulse {

  0%,
  100% {
    opacity: 0.8;
    transform: translateX(-50%) scaleX(1);
  }

  50% {
    opacity: 1;
    transform: translateX(-50%) scaleX(1.1);
  }
}

.corner {
  position: absolute;
  width: 20px;
  height: 20px;
  pointer-events: none;
}

.corner::before,
.corner::after {
  content: '';
  position: absolute;
  background: rgba(0, 200, 255, 0.5);
}

.corner::before {
  width: 100%;
  height: 1.5px;
  top: 0;
  left: 0;
}

.corner::after {
  width: 1.5px;
  height: 100%;
  top: 0;
  left: 0;
}

.corner.tl {
  top: 12px;
  left: 12px;
}

.corner.tr {
  top: 12px;
  right: 12px;
  transform: scaleX(-1);
}

.corner.bl {
  bottom: 12px;
  left: 12px;
  transform: scaleY(-1);
}

.corner.br {
  bottom: 12px;
  right: 12px;
  transform: scale(-1);
}

.clock {
  position: absolute;
  top: 18px;
  right: 18px;
  background: rgba(0, 10, 25, 0.7);
  border: 1px solid rgba(0, 180, 255, 0.2);
  border-radius: 3px;
  padding: 5px 12px;
  font-family: 'Courier New', monospace;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #00d4ff;
  backdrop-filter: blur(4px);
}

.bld-a {
  animation: floatA 5s ease-in-out infinite;
  transform-origin: center bottom;
}

.bld-b {
  animation: floatB 6s ease-in-out infinite 0.8s;
  transform-origin: center bottom;
}

.bld-c {
  animation: floatC 4.5s ease-in-out infinite 1.4s;
  transform-origin: center bottom;
}

@keyframes floatA {

  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(-5px)
  }
}

@keyframes floatB {

  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(-7px)
  }
}

@keyframes floatC {

  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(-4px)
  }
}

.shield-ring {
  transform-origin: 270px 130px;
  animation: shieldPulse 2.5s ease-in-out infinite;
}

.shield-ring2 {
  transform-origin: 270px 130px;
  animation: shieldPulse 2.5s ease-in-out infinite 0.7s;
}

@keyframes shieldPulse {

  0%,
  100% {
    opacity: 0.6;
    transform: scale(1)
  }

  50% {
    opacity: 0.15;
    transform: scale(1.25)
  }
}

.scan-beam {
  transform-origin: 195px 105px;
  animation: scanRotate 4s linear infinite;
}

@keyframes scanRotate {
  from {
    transform: rotate(0deg)
  }

  to {
    transform: rotate(360deg)
  }
}

.orbit-dot {
  transform-origin: 270px 130px;
  animation: orbitSpin 6s linear infinite;
}

.orbit-dot2 {
  transform-origin: 270px 130px;
  animation: orbitSpin 6s linear infinite reverse;
  animation-delay: -3s;
}

@keyframes orbitSpin {
  from {
    transform: rotate(0deg)
  }

  to {
    transform: rotate(360deg)
  }
}

.pkt-1 {
  animation: travel1 3s linear infinite;
}

.pkt-2 {
  animation: travel1 3s linear infinite 1s;
}

.pkt-3 {
  animation: travel2 3.5s linear infinite 0.5s;
}

@keyframes travel1 {
  0% {
    offset-distance: 0%;
    opacity: 0
  }

  5% {
    opacity: 1
  }

  95% {
    opacity: 1
  }

  100% {
    offset-distance: 100%;
    opacity: 0
  }
}

@keyframes travel2 {
  0% {
    offset-distance: 0%;
    opacity: 0
  }

  5% {
    opacity: 1
  }

  95% {
    opacity: 1
  }

  100% {
    offset-distance: 100%;
    opacity: 0
  }
}

.win-blink {
  animation: winBlink 3s ease-in-out infinite;
}

.win-blink2 {
  animation: winBlink 4s ease-in-out infinite 1.2s;
}

.win-blink3 {
  animation: winBlink 2.5s ease-in-out infinite 0.6s;
}

@keyframes winBlink {

  0%,
  100% {
    opacity: 1
  }

  45%,
  55% {
    opacity: 0.2
  }
}

.cam-rotate {
  animation: camScan 5s ease-in-out infinite;
  transform-origin: 155px 230px;
}

@keyframes camScan {

  0%,
  100% {
    transform: rotate(-12deg)
  }

  50% {
    transform: rotate(12deg)
  }
}

.sig-wave {
  animation: sigExpand 2s ease-out infinite;
  transform-origin: 390px 195px;
}

.sig-wave2 {
  animation: sigExpand 2s ease-out infinite 0.65s;
  transform-origin: 390px 195px;
}

.sig-wave3 {
  animation: sigExpand 2s ease-out infinite 1.3s;
  transform-origin: 390px 195px;
}

@keyframes sigExpand {
  0% {
    transform: scale(0.2);
    opacity: 0.8
  }

  100% {
    transform: scale(1.8);
    opacity: 0
  }
}

.grid-line {
  animation: gridGlow 3s ease-in-out infinite;
}

.grid-line:nth-child(2) {
  animation-delay: 0.5s
}

.grid-line:nth-child(3) {
  animation-delay: 1s
}

@keyframes gridGlow {

  0%,
  100% {
    opacity: 0.2
  }

  50% {
    opacity: 0.55
  }
}

.lock-icon {
  animation: lockBounce 4s ease-in-out infinite 2s;
  transform-origin: 270px 80px;
}

@keyframes lockBounce {

  0%,
  90%,
  100% {
    transform: translateY(0) scale(1)
  }

  95% {
    transform: translateY(-8px) scale(1.1)
  }
}

.star {
  animation: starTwinkle var(--dur, 2s) ease-in-out infinite var(--del, 0s);
}

@keyframes starTwinkle {

  0%,
  100% {
    opacity: var(--op, 0.4)
  }

  50% {
    opacity: 0.05
  }
}


@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Geist:wght@300;400;500&display=swap');

:root {
  --ink: #0A0F1E;
  --ink-60: #3D4A5C;
  --ink-40: #6B7A90;
  --ink-10: #D8DEE8;
  --ink-05: #F0F3F7;
  --white: #FFFFFF;
  --blue: #1459C8;
  --blue-mid: #1A6ED4;
  --blue-light: #E8F0FD;
}

.left {
  display: flex;
  flex-direction: column;
  max-width: 560px;
}

/* Eyebrow */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blue-mid);
  margin-bottom: 1.5rem;
  opacity: 0;
  animation: rise 0.6s 0.1s ease forwards;
}

.eyebrow-pip {
  width: 20px;
  height: 1px;
  background: var(--blue-mid);
}

/* Heading */
.heading {
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: 52px;
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: var(--ink);
  margin-bottom: 1.5rem;
  opacity: 0;
  animation: rise 0.6s 0.18s ease forwards;
}

.heading em {
  font-style: italic;
  color: var(--blue);
  position: relative;
}

.heading em::after {
  content: '';
  position: absolute;
  bottom: 2px;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--blue) 0%, transparent 100%);
  border-radius: 2px;
}

/* Body text */
.body-text {
  font-size: 15.5px;
  line-height: 1.8;
  color: var(--ink-60);
  font-weight: 300;
  max-width: 420px;
  margin-bottom: 2.75rem;
  opacity: 0;
  animation: rise 0.6s 0.26s ease forwards;
}

/* Features */
.features {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--ink-10);
  margin-bottom: 2.75rem;
  opacity: 0;
  animation: rise 0.6s 0.34s ease forwards;
}

.feat {
  display: grid;
  grid-template-columns: 52px 1fr 20px;
  align-items: center;
  gap: 18px;
  padding: 18px 12px 18px 4px;
  border-bottom: 1px solid var(--ink-10);
  cursor: default;
  border-radius: 6px;
  position: relative;
  transition: background 0.2s;
}

.feat::before {
  content: '';
  position: absolute;
  left: -4px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  background: var(--blue);
  border-radius: 2px;
  transform: scaleY(0);
  transition: transform 0.22s cubic-bezier(.4, 0, .2, 1);
  transform-origin: bottom;
}

.feat:hover {
  background: rgba(255, 255, 255, 0.7);
}

.feat:hover::before {
  transform: scaleY(1);
}

.feat:hover .feat-icon-wrap {
  background: var(--blue);
  border-color: var(--blue);
}

.feat:hover .feat-icon-wrap svg {
  stroke: #fff;
}

.feat:hover .feat-arrow {
  opacity: 1;
  transform: translateX(0);
}

.feat-icon-wrap {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--white);
  border: 1px solid var(--ink-10);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s, border-color 0.2s;
  box-shadow: 0 1px 3px rgba(10, 15, 30, 0.07);
}

.feat-icon-wrap svg {
  width: 20px;
  height: 20px;
  stroke: var(--blue-mid);
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke 0.2s;
}

.feat-title {
  font-size: 14.5px;
  font-weight: 500;
  color: var(--ink);
  margin-bottom: 3px;
  line-height: 1.3;
}

.feat-desc {
  font-size: 12.5px;
  color: var(--ink-40);
  line-height: 1.55;
  font-weight: 300;
}

.feat-arrow {
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.2s, transform 0.2s;
  color: var(--blue);
  flex-shrink: 0;
}

.feat-arrow svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* CTAs */
.cta-block {
  display: flex;
  flex-direction: column;
  gap: 16px;
  opacity: 0;
  animation: rise 0.6s 0.42s ease forwards;
}

.btn-primary-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 15px 26px;
  font-size: 14px;
  font-family: 'Geist', sans-serif;
  font-weight: 500;
  background: var(--blue);
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s, transform 0.12s, box-shadow 0.2s;
  box-shadow: 0 1px 2px rgba(20, 89, 200, 0.2), 0 4px 18px rgba(20, 89, 200, 0.22);
  width: fit-content;
}

.btn-primary-cta:hover {
  background: #1252B5;
  transform: translateY(-2px);
  box-shadow: 0 2px 4px rgba(20, 89, 200, 0.2), 0 10px 28px rgba(20, 89, 200, 0.3);
}

.btn-primary-cta:active {
  transform: scale(0.98);
}

.btn-icon {
  width: 30px;
  height: 30px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.btn-label {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.btn-label-main {
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
}

.btn-label-sub {
  font-size: 11px;
  font-weight: 300;
  opacity: 0.7;
  margin-top: 3px;
}

.btn-arrow {
  margin-left: auto;
  opacity: 0.6;
}

.btn-arrow svg {
  width: 16px;
  height: 16px;
  transition: transform 0.15s;
}

.btn-primary-cta:hover .btn-arrow svg {
  transform: translateX(3px);
}

.btn-secondary-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 13px 22px;
  font-size: 14px;
  font-family: 'Geist', sans-serif;
  font-weight: 400;
  background: var(--white);
  color: var(--ink);
  border: 1px solid var(--ink-10);
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.12s;
  box-shadow: 0 1px 3px rgba(10, 15, 30, 0.06);
  width: fit-content;
}

.btn-secondary-cta:hover {
  border-color: #A8B4C4;
  box-shadow: 0 4px 16px rgba(10, 15, 30, 0.1);
  transform: translateY(-1px);
}

.sec-icon {
  width: 28px;
  height: 28px;
  background: var(--ink-05);
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.sec-icon svg {
  width: 14px;
  height: 14px;
  stroke: #3D4A5C;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sec-label {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.sec-label-main {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ink);
  line-height: 1;
}

.sec-label-sub {
  font-size: 11px;
  font-weight: 300;
  color: var(--ink-40);
  margin-top: 3px;
}

.sec-count {
  margin-left: 8px;
  font-size: 11px;
  font-weight: 500;
  background: var(--blue-light);
  color: var(--blue);
  padding: 3px 9px;
  border-radius: 20px;
}

/* Animations */
@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* â”€â”€ Technology Section layout â”€â”€ */
.section {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  max-width: 1400px;
  margin: 0 auto;
  padding: 80px 40px;
  gap: 60px;
}

.section .left {
  flex: 1 1 50%;
  max-width: 50%;
}

.section .right {
  flex: 1 1 50%;
  max-width: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.section .right .iso-scene {
  width: 100%;
  max-width: 560px;
}

@media (max-width: 900px) {
  .section {
    flex-direction: column !important;
    padding: 40px 20px;
    gap: 30px;
  }

  .section .left,
  .section .right {
    max-width: 100% !important;
  }
}

/* HERO SERVICIOS */
.page-header {
  position: relative !important;
  background: #003058 !important;
  overflow: hidden !important;
  padding: 90px 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 300px !important;
}

.ph-grad1 {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 100, 220, 0.35) 0%, transparent 70%);
  top: -200px;
  left: -100px;
  pointer-events: none;
}

.ph-grad2 {
  position: absolute;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(26, 122, 191, 0.25) 0%, transparent 70%);
  bottom: -150px;
  right: 50px;
  pointer-events: none;
}

.ph-corner {
  position: absolute;
  width: 20px;
  height: 20px;
  border-color: rgba(255, 255, 255, 0.15);
  border-style: solid;
}

.ph-corner.tl {
  top: 20px;
  left: 20px;
  border-width: 1px 0 0 1px;
}

.ph-corner.tr {
  top: 20px;
  right: 20px;
  border-width: 1px 1px 0 0;
}

.ph-corner.bl {
  bottom: 20px;
  left: 20px;
  border-width: 0 0 1px 1px;
}

.ph-corner.br {
  bottom: 20px;
  right: 20px;
  border-width: 0 1px 1px 0;
}

.ph-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.08;
  pointer-events: none;
}

.ph-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 700px;
}

.ph-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 100px;
  padding: 7px 18px;
  margin-bottom: 24px;
}

.ph-badge-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #4a9eff;
  display: inline-block;
}

.ph-badge span {
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  font-family: sans-serif;
}

.ph-title-main {
  font-family: 'Orbitron', sans-serif;
  font-size: 52px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -2px;
  line-height: 1.05;
}

.ph-title-light {
  font-family: 'Orbitron', sans-serif;
  font-size: 52px;
  font-weight: 200;
  color: rgba(255, 255, 255, 0.3);
  letter-spacing: -2px;
  line-height: 1.05;
  margin-bottom: 20px;
}

.ph-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 20px;
}

.ph-divider-line {
  width: 40px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2));
}

.ph-divider-line.r {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.2), transparent);
}

.ph-divider-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
}

.ph-sub {
  font-size: 14.5px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.8;
  font-family: sans-serif;
  max-width: 480px;
  margin: 0 auto;
}

/* VIDEOVIGILANCIA */
.cam-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 28px;
}

.cam-card {
  background: #fff;
  border: 1px solid #dde6f0;
  border-radius: 12px;
  padding: 18px 16px;
  transition: border-color .2s, transform .2s;
}

.cam-card:hover {
  border-color: #0056a1;
  transform: translateY(-2px);
}

.cam-card-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #e8f0fb;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}

.cam-card-icon svg {
  width: 20px;
  height: 20px;
}

.cam-card h4 {
  font-size: 13.5px;
  font-weight: 600;
  color: #0a1f3d;
  margin-bottom: 4px;
}

.cam-card p {
  font-size: 12px;
  color: #6b7a90;
  line-height: 1.5;
}

.specs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 8px;
  margin-bottom: 24px;
}

.spec-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid #dde6f0;
  border-radius: 8px;
  padding: 10px 12px;
}

.spec-check {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #e8f0fb;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.spec-check svg {
  width: 10px;
  height: 10px;
}

.spec-badge span {
  font-size: 12px;
  color: #0a1f3d;
  font-weight: 500;
}

/* Control de Acceso - Tarjetas */
.feat-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 1.8rem;
}

.feat-card {
  background: #f4f8ff;
  border: 1px solid rgba(0, 86, 161, 0.15);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: border-color 0.2s, transform 0.2s;
}

.feat-card:hover {
  border-color: rgba(0, 86, 161, 0.4);
  transform: translateY(-2px);
}

.feat-icon-wrap {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: linear-gradient(135deg, #e8f0fe, #c7d9f8);
  border: 1px solid rgba(0, 86, 161, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
}

.feat-icon-wrap svg {
  width: 22px;
  height: 22px;
}

.feat-card h4 {
  font-size: 13px;
  font-weight: 700;
  color: #0a1628;
  margin: 0;
}

.feat-card p {
  font-size: 12px;
  color: #5a6e85;
  margin: 0;
  line-height: 1.5;
}

.feat-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  color: #0056a1;
  background: rgba(0, 86, 161, 0.1);
  border-radius: 20px;
  padding: 2px 8px;
  width: fit-content;
}

.sec-sub {
  font-size: 12px;
  font-weight: 700;
  color: #0056a1;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.sec-sub::before {
  content: '';
  width: 3px;
  height: 14px;
  background: #0056a1;
  border-radius: 2px;
}

.funcs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}

.func-item {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f0f6ff;
  border: 1px solid rgba(0, 86, 161, 0.12);
  border-radius: 8px;
  padding: 9px 12px;
  font-size: 12px;
  color: #1e3a5f;
  font-weight: 500;
}

.func-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #0056a1;
  flex-shrink: 0;
}

@keyframes blink {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.2;
  }
}

.live-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.4);
  border-radius: 20px;
  padding: 3px 10px;
  font-size: 11px;
  font-weight: 700;
  color: #f87171;
  letter-spacing: 0.06em;
}

.live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ef4444;
  animation: blink 1s infinite;
  display: inline-block;
}

/* â”€â”€ Section label â”€â”€ */
.label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brand);
  margin-bottom: 6px;
}

#red .section-title {
  font-size: 22px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 24px;
}

/* â”€â”€ Equipment cards â”€â”€ */
.eq-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
  margin-bottom: 48px;
}

.eq-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 16px 18px;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.eq-card:hover {
  border-color: var(--brand-mid);
  box-shadow: 0 2px 12px rgba(0, 86, 161, 0.08);
}

.eq-icon {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 10px;
  background: var(--brand-light);
  display: flex;
  align-items: center;
  justify-content: center;
}

.eq-icon svg {
  width: 20px;
  height: 20px;
}

.eq-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 4px;
}

.eq-desc {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.55;
}

/* â”€â”€ Services â”€â”€ */
.svc-section {
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px 28px 24px;
}

.svc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 10px;
}

.svc-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  color: var(--text-primary);
  line-height: 1.5;
}

.svc-dot {
  width: 7px;
  height: 7px;
  min-width: 7px;
  border-radius: 50%;
  background: var(--brand);
  margin-top: 6px;
}

/* â”€â”€ Divider â”€â”€ */
.divider {
  height: 1px;
  background: var(--border);
  margin: 32px 0;
}

/* ========================================
   MODERN FULL BLEED HERO & NAVIGATION
   ======================================== */
.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  padding: 1.5rem 0;
  background: transparent;
  transition: all 0.4s ease;
  z-index: 1000;
}

.navbar.scrolled {
  background: rgba(10, 20, 35, 0.95);
  backdrop-filter: blur(10px);
  padding: 1rem 0;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  border-bottom: 1px solid rgba(0, 212, 255, 0.1);
}

.nav-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo {
  display: flex;
  align-items: center;
  gap: 15px;
  text-decoration: none;
}

.logo img {
  height: 50px;
}

.logo-text {
  font-family: 'Orbitron', sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 1px;
}

.logo-divider {
  width: 2px;
  height: 35px;
  background: rgba(255, 255, 255, 0.2);
}

.nav-menu {
  display: flex;
  list-style: none;
  gap: 2rem;
  align-items: center;
}

.nav-menu a {
  color: #fff;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 0.85rem;
  position: relative;
}

.nav-menu a::after {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 0;
  height: 2px;
  background: #00d4ff;
  transition: width 0.3s ease;
}

.nav-menu a:hover::after,
.nav-menu a.active::after {
  width: 100%;
}

.btn-contact {
  background: #00aaff;
  color: #fff !important;
  padding: 0.6rem 1.5rem !important;
  border-radius: 4px;
  border: 1px solid #00aaff;
  transition: all 0.3s ease;
}

.btn-contact:hover {
  background: transparent;
  box-shadow: 0 0 15px rgba(0, 170, 255, 0.5);
}

.hero-fullbleed {
  position: relative;
  height: 100vh;
  min-height: 700px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #000;
}

.hero-slides {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
  transform: scale(1.05);
}

.hero-slide.active {
  opacity: 1;
  transform: scale(1);
  transition: opacity 1.5s ease-in-out, transform 8s linear;
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(4, 15, 30, 0.9) 0%, rgba(4, 15, 30, 0.6) 50%, rgba(4, 15, 30, 0.3) 100%);
  z-index: 2;
}

.hero-container {
  position: relative;
  z-index: 3;
  width: 100%;
  padding-top: 80px;
}

.hero-content-center {
  max-width: 800px;
}

.hero-title {
  font-size: 4.5rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

.title-line {
  display: block;
  animation: fadeInUp 0.8s ease forwards;
}

.title-light {
  font-weight: 300;
  color: #aaddff;
}

.hero-subtitle {
  font-size: 1.25rem;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 2.5rem;
  line-height: 1.6;
  max-width: 600px;
  animation: fadeInUp 0.8s ease 0.2s forwards;
  opacity: 0;
}

.hero-buttons {
  display: flex;
  gap: 1rem;
  animation: fadeInUp 0.8s ease 0.4s forwards;
  opacity: 0;
}

.slide-dots {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 3;
}

.slide-dot {
  width: 40px;
  height: 3px;
  background: rgba(255, 255, 255, 0.3);
  cursor: pointer;
  transition: all 0.3s ease;
}

.slide-dot.active {
  background: #00d4ff;
  width: 60px;
}

/* ========================================
   PREMIUM BENTO GRID SECTION
   ======================================== */
.premium-bento-section {
  padding: 100px 0;
  background: #020813;
  color: #fff;
  position: relative;
  overflow: hidden;
}

.bento-header {
  text-align: center;
  margin-bottom: 60px;
}

.bento-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 212, 255, 0.1);
  border: 1px solid rgba(0, 212, 255, 0.3);
  padding: 6px 16px;
  border-radius: 50px;
  font-size: 0.8rem;
  font-weight: 600;
  color: #00d4ff;
  letter-spacing: 1px;
  margin-bottom: 20px;
}

.bento-pulse {
  width: 8px;
  height: 8px;
  background: #00d4ff;
  border-radius: 50%;
  box-shadow: 0 0 10px #00d4ff;
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(0, 212, 255, 0.7);
  }

  70% {
    box-shadow: 0 0 0 10px rgba(0, 212, 255, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(0, 212, 255, 0);
  }
}

.bento-title {
  font-size: 3rem;
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
}

.bento-highlight {
  background: linear-gradient(90deg, #00d4ff, #0056a1);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.bento-subtitle {
  color: #8a9bb3;
  max-width: 600px;
  margin: 0 auto;
  font-size: 1.1rem;
  line-height: 1.6;
}

.bento-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 300px);
  gap: 20px;
}

.bento-box {
  border-radius: 24px;
  position: relative;
  overflow: hidden;
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.bento-box:hover {
  transform: translateY(-5px);
  border-color: rgba(0, 212, 255, 0.3);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
}

.bento-large {
  grid-column: span 2;
  grid-row: span 2;
}

.bento-medium {
  grid-column: span 2;
  grid-row: span 1;
}

.bento-small {
  grid-column: span 1;
  grid-row: span 1;
  background: linear-gradient(135deg, #091526 0%, #030810 100%);
}

.bento-bg-media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  transition: transform 0.6s ease;
}

.bento-box:hover .bento-bg-media {
  transform: scale(1.05);
}

.bento-bg-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bento-overlay-gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to top, #020813 0%, rgba(2, 8, 19, 0.8) 40%, transparent 100%);
  z-index: 2;
}

.bento-content {
  position: relative;
  z-index: 3;
}

.bento-icon-wrapper {
  width: 50px;
  height: 50px;
  background: rgba(0, 212, 255, 0.1);
  border: 1px solid rgba(0, 212, 255, 0.2);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  color: #00d4ff;
  backdrop-filter: blur(5px);
}

.bento-box h3 {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 10px;
}

.bento-large h3 {
  font-size: 2.2rem;
}

.bento-box p {
  color: #aab8cc;
  font-size: 0.95rem;
  line-height: 1.5;
  margin-bottom: 20px;
}

.bento-large p {
  font-size: 1.1rem;
  max-width: 80%;
}

.bento-features-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.bento-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(255, 255, 255, 0.1);
  padding: 5px 12px;
  border-radius: 8px;
  font-size: 0.8rem;
  font-weight: 500;
  backdrop-filter: blur(5px);
}

.bento-tag i {
  width: 14px;
  height: 14px;
  color: #00d4ff;
}

.bento-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #00d4ff;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 1px;
}

.bento-link i {
  width: 16px;
  height: 16px;
  transition: transform 0.3s ease;
}

.bento-link:hover i {
  transform: translateX(5px);
}

.bento-ui-mockup {
  position: absolute;
  top: 40px;
  right: 40px;
  width: 250px;
  background: rgba(10, 20, 35, 0.8);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 212, 255, 0.2);
  border-radius: 12px;
  z-index: 3;
  padding: 15px;
  font-family: 'Orbitron', monospace;
  font-size: 0.7rem;
  color: #00d4ff;
}

.bento-ui-header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(0, 212, 255, 0.2);
}

.bento-ui-status {
  color: #ff3366;
  animation: blink 1s infinite;
}

@keyframes blink {
  50% {
    opacity: 0;
  }
}

.bento-ui-frame {
  position: relative;
  height: 100px;
  border: 1px dashed rgba(0, 212, 255, 0.3);
  display: flex;
  align-items: flex-end;
  padding: 10px;
}

.bento-bounding-box {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 40px;
  height: 40px;
  border: 2px solid #00d4ff;
}

.bento-bounding-box::before,
.bento-bounding-box::after {
  content: '';
  position: absolute;
  width: 6px;
  height: 6px;
  border: 2px solid #00d4ff;
}

.bento-bounding-box::before {
  top: -2px;
  left: -2px;
  border-right: none;
  border-bottom: none;
}

.bento-ui-data {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bento-brands-title {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #8a9bb3;
  margin-bottom: 15px;
}

.bento-brands-grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.bento-brands-grid span {
  font-family: 'Orbitron', sans-serif;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.3);
  transition: color 0.3s ease;
}

.bento-brands-grid span:hover {
  color: #fff;
}

@media (max-width: 1024px) {
  .bento-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .bento-large {
    grid-column: span 2;
  }
}

@media (max-width: 768px) {
  .bento-grid {
    display: flex;
    flex-direction: column;
  }

  .bento-box {
    min-height: 300px;
  }

  .bento-ui-mockup {
    display: none;
  }
}

body {
  margin: 0;
  padding: 0;
}

/* Enterprise Grade Hero & Navbar Overrides */
.hero-fullbleed {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #000;
  margin-top: 0;
}

.hero-slides {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.5s ease-in-out, transform 8s linear;
  transform: scale(1.05);
}

.hero-slide.active {
  opacity: 1;
  transform: scale(1);
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(3, 9, 15, 0.95) 0%, rgba(3, 9, 15, 0.7) 45%, rgba(3, 9, 15, 0.1) 100%);
  z-index: 2;
}

.navbar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 20;
  padding-top: 1.5rem;
  padding-bottom: 0;
  background: transparent;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}

.navbar .container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 2rem;
}

.nav-wrapper {
  display: flex;
  justify-content: flex-start;
  gap: 4rem;
  align-items: center;
  padding: 0.2rem 0 !important;
  /* Overrides styles.css 1rem padding */
}

.logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.logo-img-wrap img {
  height: 30px;
  object-fit: contain;
}

.logo-divider {
  width: 1px;
  height: 20px;
  background: rgba(255, 255, 255, 0.2);
  margin: 0 1.2rem;
}

.logo-text {
  font-family: 'Inter', sans-serif;
  color: #fff;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.5px;
}

.nav-menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
  gap: 3rem;
  flex: 1;
  justify-content: flex-end;
}

.nav-menu a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  text-transform: capitalize;
  letter-spacing: 0.5px;
  transition: color 0.3s;
  position: relative;
  padding-bottom: 0.5rem;
}

.nav-menu a:hover {
  color: #00d4ff;
}

.nav-menu a.active {
  color: #fff;
}

.nav-menu a::after {
  display: none !important;
}

.nav-menu a.btn-contact {
  background: #00aaff;
  color: #fff;
  padding: 0.8rem 1.8rem;
  border-radius: 4px;
  border: none;
  font-weight: 700;
  margin-left: 0.5rem;
  box-shadow: 0 4px 15px rgba(0, 170, 255, 0.2);
  transition: background 0.3s, transform 0.2s;
}

.nav-menu a.btn-contact::after {
  display: none;
}

.nav-menu a.btn-contact:hover {
  background: #0088cc;
  transform: translateY(-2px);
  color: #fff;
}

.hero-container {
  position: relative;
  z-index: 10;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
  width: 100%;
}

.hero-content-center {
  max-width: 750px;
  margin-top: 60px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-title {
  font-family: 'Inter', sans-serif;
  font-size: 4.8rem;
  font-weight: 800;
  line-height: 1.05;
  margin-bottom: 1.5rem;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
  text-transform: none;
}

.title-line {
  display: block;
  color: #fff;
}

.title-light {
  color: #aaddff;
}

.hero-subtitle {
  font-size: 1.15rem;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.6;
  margin-bottom: 2.5rem;
  max-width: 550px;
  font-weight: 400;
}

.hero-buttons .btn-primary {
  background: #fff;
  color: #050f1c;
  text-decoration: none;
  padding: 1.1rem 2.5rem;
  font-weight: 700;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 0.9rem;
  display: inline-block;
  transition: background 0.3s, transform 0.2s;
}

.hero-buttons .btn-primary:hover {
  background: #e0e0e0;
  transform: translateY(-2px);
}

.slide-dots {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: 12px;
}

.slide-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: background 0.3s;
}

.slide-dot.active {
  background: #ffffff;
  width: 8px !important;
}

@media (max-width: 768px) {
  .hero-title {
    font-size: 2.5rem;
  }

  .nav-menu {
    display: none;
  }

  .logo-text {
    font-size: 1rem;
  }
}

/* ========================================
   SOLUTIONS SHOWCASE SECTION
   ======================================== */
.solutions-section {
  background: #ffffff;
  padding: 7rem 2rem;
  max-width: 1300px;
  margin: 0 auto;
}

.solutions-header {
  text-align: center;
  margin-bottom: 3.5rem;
}

.solutions-eyebrow {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #0056a1;
  margin-bottom: 1rem;
}

.solutions-title {
  font-size: 3.5rem;
  font-weight: 800;
  color: #0f172a;
  font-family: 'Inter', sans-serif;
  letter-spacing: -1.5px;
  line-height: 1.1;
  margin-bottom: 1.2rem;
}

.solutions-title em {
  font-style: italic;
  background: linear-gradient(90deg, #0056a1, #00aaff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.solutions-sub {
  font-size: 1.15rem;
  color: #64748b;
  max-width: 600px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Tabs */
.solutions-tabs {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 3rem;
  background: #f1f5f9;
  padding: 6px;
  border-radius: 14px;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

.stab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0.75rem 1.5rem;
  border: none;
  background: transparent;
  border-radius: 10px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  transition: all 0.25s ease;
  font-family: 'Inter', sans-serif;
}

.stab svg {
  width: 22px;
  height: 22px;
  stroke-width: 2px;
}

.stab:hover {
  color: #0f172a;
}

.stab.active {
  background: #ffffff;
  color: #0056a1;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

/* Panels */
.solutions-panels {
  position: relative;
}

.spanel {
  display: none;
  animation: fadeInPanel 0.4s ease;
}

.spanel.active {
  display: block;
}

@keyframes fadeInPanel {
  from {
    opacity: 0;
    transform: translateY(16px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.spanel-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  background: #f8fafc;
  border-radius: 24px;
  padding: 3.5rem;
  border: 1px solid #e2e8f0;
}

.spanel-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #eff6ff;
  color: #0056a1;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 0.4rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.2rem;
  border: 1px solid #bfdbfe;
}

.spanel-badge i {
  width: 14px;
  height: 14px;
}

.spanel-text h3 {
  font-size: 2.2rem;
  font-weight: 800;
  color: #0f172a;
  font-family: 'Inter', sans-serif;
  letter-spacing: -0.5px;
  margin-bottom: 1rem;
}

.spanel-text p {
  font-size: 1.05rem;
  color: #475569;
  line-height: 1.7;
  margin-bottom: 1.8rem;
}

.spanel-features {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.spanel-features li {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-size: 0.97rem;
  color: #334155;
  font-weight: 500;
}

.spanel-features li i {
  width: 18px;
  height: 18px;
  color: #0056a1;
  flex-shrink: 0;
}

.spanel-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #0056a1;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color 0.2s, gap 0.2s;
  padding-bottom: 2px;
}

.spanel-cta:hover {
  border-color: #0056a1;
  gap: 0.8rem;
}

.spanel-cta i {
  width: 16px;
  height: 16px;
  transition: transform 0.2s;
}

.spanel-cta:hover i {
  transform: translateX(4px);
}

/* Stats Grid */
.spanel-visual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.spanel-stat-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 1.5rem;
  border: 1px solid #e2e8f0;
  transition: transform 0.2s, box-shadow 0.2s;
}

.spanel-stat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0, 86, 161, 0.08);
}

.spanel-stat-card.accent {
  background: linear-gradient(135deg, #0056a1 0%, #0077cc 100%);
  border-color: transparent;
}

.spanel-stat-card.accent .stat-number,
.spanel-stat-card.accent .stat-label {
  color: #ffffff;
}

.stat-number {
  font-size: 2.2rem;
  font-weight: 800;
  color: #0f172a;
  font-family: 'Inter', sans-serif;
  letter-spacing: -1px;
  line-height: 1;
  margin-bottom: 0.4rem;
}

.stat-number span {
  font-size: 1.2rem;
  font-weight: 700;
  opacity: 0.7;
}

.stat-label {
  font-size: 0.82rem;
  color: #64748b;
  font-weight: 500;
  line-height: 1.3;
}

@media (max-width: 900px) {
  .spanel-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 2rem;
  }

  .solutions-title {
    font-size: 2.4rem;
  }

  .stab {
    padding: 0.5rem 1rem;
    font-size: 0.85rem;
  }
}

/* ========================================
   SPLIT SCROLL SECTION (APPLE STYLE)
   ======================================== */
.split-scroll-section {
  background-color: #f8fafc;
  /* Fondo clarito ultra-limpio (Slate 50) */
  padding: 0;
  position: relative;
}

.split-container {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  padding: 0 2rem;
  gap: 4rem;
}

.split-text-side {
  flex: 1;
  padding-bottom: 30vh;
  position: relative;
}

.split-text-side::before {
  content: '';
  position: absolute;
  top: 15vh;
  bottom: 40vh;
  left: 24px;
  width: 1px;
  background: #cbd5e1;
  z-index: 0;
}

.scroll-text-step {
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  opacity: 0.2;
  transform: translateY(20px);
  filter: blur(2px) grayscale(100%);
  transition: opacity 0.6s ease, transform 0.6s ease, filter 0.6s ease;
  position: relative;
  z-index: 1;
}

.scroll-text-step.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0) grayscale(0);
}

.step-icon-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: #f1f5f9;
  border-radius: 12px;
  color: #94a3b8;
  box-shadow: none;
  margin-bottom: 1.5rem;
  border: 1px solid transparent;
  transition: all 0.5s ease;
  position: relative;
  z-index: 2;
}

.scroll-text-step.is-visible .step-icon-wrapper {
  background: #ffffff;
  color: var(--primary-color, #0056a1);
  box-shadow: 0 4px 12px rgba(0, 86, 161, 0.1);
  border: 1px solid #e2e8f0;
  animation: floatIcon 3s ease-in-out infinite;
}

@keyframes floatIcon {
  0% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-4px);
  }

  100% {
    transform: translateY(0px);
  }
}

.step-eyebrow {
  font-size: 0.85rem;
  font-weight: 700;
  color: #0056a1;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 0.5rem;
}

.step-title-light {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: #0f172a;
  font-family: 'Inter', sans-serif;
  letter-spacing: -0.5px;
}

.step-desc-light {
  font-size: 1.15rem;
  color: #475569;
  line-height: 1.6;
}

.split-video-side {
  flex: 1;
  position: relative;
}

.sticky-video-wrapper {
  position: sticky;
  top: 15vh;
  height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sticky-video-wrapper video {
  width: 100%;
  max-height: 100%;
  border-radius: 20px;
  object-fit: cover;
  box-shadow: 0 20px 50px rgba(0, 86, 161, 0.1);
}

@media (max-width: 992px) {
  .split-container {
    flex-direction: column;
  }

  .split-video-side {
    display: none;
  }

  .scroll-text-step {
    height: auto;
    padding: 4rem 0;
  }
}

/* ========================================
   ECOSYSTEM BENTO SECTION - Custom Unique Theme
   ======================================== */
.ecosystem-section {
  /* Fondo específico solicitado por el usuario */
  background-color: rgb(110, 102, 109);
  /* Textura única: un grid de puntos futurista sobre el fondo gris */
  background-image: radial-gradient(rgba(255, 255, 255, 0.15) 1px, transparent 1px);
  background-size: 30px 30px;
  color: #ffffff;
  padding: 120px 20px;
  position: relative;
  overflow: hidden;
}

.ecosystem-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at 50% 0%, rgba(0, 86, 161, 0.4) 0%, transparent 70%);
  pointer-events: none;
  z-index: 1;
}

.eco-container {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.eco-header {
  text-align: center;
  margin-bottom: 70px;
}

.eco-eyebrow {
  display: inline-block;
  padding: 6px 18px;
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 20px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(5px);
}

.eco-title {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 800;
  line-height: 1.15;
  margin-bottom: 18px;
  font-family: "Inter", sans-serif;
  color: #ffffff;
  letter-spacing: -0.5px;
  text-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.eco-title span {
  color: #60a5fa;
  /* A bright, legible blue on dark background */
}

.eco-sub {
  font-size: 1.15rem;
  color: #e2e8f0;
  max-width: 620px;
  margin: 0 auto;
  line-height: 1.7;
}

/* Grid */
.bento-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 270px;
  gap: 24px;
}

/* Base card - Gray Theme */
.bento-card {
  /* Tarjetas grises oscuras (Dark Charcoal Gray) para contrastar con el gris medio del fondo */
  background: linear-gradient(135deg, rgba(71, 85, 105, 0.9) 0%, rgba(30, 41, 59, 0.95) 100%);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 24px;
  padding: 35px;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  transition: all 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.bento-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.08) 0%, transparent 60%);
  pointer-events: none;
}

.bento-card:hover {
  transform: translateY(-10px) scale(1.02);
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5), inset 0 0 0 1px rgba(255, 255, 255, 0.2);
  border-color: rgba(96, 165, 250, 0.4);
}

/* Icon bubble */
.bento-icon-wrap {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.bento-icon {
  width: 28px;
  height: 28px;
  color: #60a5fa;
}

/* Iconos en azul claro vibrante */

.bento-content {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.bento-card h3 {
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 12px;
  color: #ffffff;
  line-height: 1.3;
}

.bento-card p {
  font-size: 0.95rem;
  color: #cbd5e1;
  line-height: 1.6;
}

/* Card variants */
.bento-large {
  grid-column: span 5;
  grid-row: span 2;
  /* Un gris aún más profundo para la tarjeta principal */
  background: linear-gradient(145deg, rgba(51, 65, 85, 0.95) 0%, rgba(15, 23, 42, 0.98) 100%);
}

.bento-large h3 {
  font-size: 1.7rem;
}

.bento-large .bento-icon-wrap {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.25);
}

.bento-tall {
  grid-column: span 3;
  grid-row: span 2;
}

.bento-medium {
  grid-column: span 4;
  grid-row: span 1;
}

.bento-wide {
  grid-column: span 7;
  grid-row: span 1;
  /* Gris profundo para la base */
  background: linear-gradient(105deg, rgba(15, 23, 42, 0.98) 0%, rgba(51, 65, 85, 0.95) 100%);
}

.bento-wide h3 {
  font-size: 1.5rem;
}

.flex-row {
  display: flex;
  align-items: center;
  gap: 48px;
  height: 100%;
}

.bento-text-side {
  flex: 1;
}

.bento-visual-side {
  flex-shrink: 0;
}

/* Unique Visuals */
/* Radar rings for IA card */
.ai-scanner {
  position: absolute;
  bottom: -30px;
  right: -30px;
  width: 260px;
  height: 260px;
  pointer-events: none;
}

.radar-ring {
  position: absolute;
  border-radius: 50%;
  border: 1.5px solid rgba(96, 165, 250, 0.3);
  animation: radar-expand 3s ease-out infinite;
}

.radar-ring:nth-child(1) {
  inset: 100px;
  animation-delay: 0s;
}

.radar-ring:nth-child(2) {
  inset: 60px;
  animation-delay: 1s;
}

.radar-ring:nth-child(3) {
  inset: 20px;
  animation-delay: 2s;
}

.ai-scanner::after {
  content: '';
  position: absolute;
  inset: 30px;
  border-radius: 50%;
  border: 1px dashed rgba(255, 255, 255, 0.2);
}

.scanner-line {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border-top: 3px solid #60a5fa;
  animation: spin-slow 3s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes radar-expand {
  0% {
    opacity: 1;
    transform: scale(0.5);
  }

  100% {
    opacity: 0;
    transform: scale(1.1);
  }
}

/* Phone mockup */
.mock-phone {
  position: absolute;
  bottom: -20px;
  right: 24px;
  width: 130px;
  height: 230px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 24px;
  border: 2px solid rgba(255, 255, 255, 0.2);
  padding: 10px 8px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(10px);
}

.mock-screen {
  width: 100%;
  height: 100%;
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px;
  overflow: hidden;
}

.mock-alert {
  width: 100%;
  height: 26px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 6px;
  border-left: 3px solid #60a5fa;
  animation: slideUpFade 3s ease-in-out infinite;
  opacity: 0;
}

.mock-alert.delay-1 {
  animation-delay: 1s;
  border-left-color: #34d399;
}

.mock-alert.delay-2 {
  animation-delay: 2s;
  border-left-color: #f472b6;
}

/* Network pulse */
.pulse-network {
  position: relative;
  width: 180px;
  height: 100px;
}

.node {
  position: absolute;
  width: 14px;
  height: 14px;
  background: #60a5fa;
  border-radius: 50%;
  box-shadow: 0 0 15px rgba(96, 165, 250, 0.6);
}

.node::after {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 2px solid rgba(96, 165, 250, 0.6);
  animation: ping 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.n1 {
  top: 10px;
  left: 0;
}

.n2 {
  bottom: 0;
  left: 80px;
}

.n3 {
  top: 10px;
  right: 0;
}

.n1::after {
  animation-delay: 0s;
}

.n2::after {
  animation-delay: 0.6s;
}

.n3::after {
  animation-delay: 1.2s;
}

.connection {
  position: absolute;
  top: 20px;
  left: 8px;
  width: 80px;
  height: 60px;
  border-bottom: 2px dashed rgba(96, 165, 250, 0.4);
  border-left: 2px dashed rgba(96, 165, 250, 0.4);
  transform: skewX(-15deg);
}

@keyframes spin-slow {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes slideUpFade {
  0% {
    transform: translateY(14px);
    opacity: 0;
  }

  15% {
    transform: translateY(0);
    opacity: 1;
  }

  85% {
    transform: translateY(0);
    opacity: 1;
  }

  100% {
    transform: translateY(-10px);
    opacity: 0;
  }
}

@keyframes ping {

  75%,
  100% {
    transform: scale(2.2);
    opacity: 0;
  }
}

@media (max-width: 1024px) {
  .bento-grid {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 250px;
  }

  .bento-large {
    grid-column: span 6;
    grid-row: span 2;
  }

  .bento-tall {
    grid-column: span 3;
    grid-row: span 2;
  }

  .bento-medium {
    grid-column: span 3;
    grid-row: span 1;
  }

  .bento-wide {
    grid-column: span 6;
    grid-row: span 1;
  }
}

@media (max-width: 640px) {
  .bento-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
  }

  .bento-large,
  .bento-tall,
  .bento-medium,
  .bento-wide {
    grid-column: span 1;
    grid-row: auto;
    min-height: 280px;
  }

  .flex-row {
    flex-direction: column;
    gap: 24px;
  }

  .bento-text-side {
    max-width: 100%;
  }

  .bento-visual-side,
  .mock-phone,
  .ai-scanner {
    display: none;
  }
}

/* ============================================================
   Control Audaz 60 — Sección "¿Por qué elegirnos?"
   Versión: 1.0
   Fuentes requeridas (Google Fonts):
   Bebas Neue (títulos) + Manrope 300/400/500/600/700/800 (cuerpo)
   ============================================================ */

/* ---------- Reset base ---------- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* ---------- Variables ---------- */
:root {
  --ca-bg: #f2f1ee;
  --ca-bg-white: #ffffff;
  --ca-bg-hover: #ebebea;
  --ca-border: #d4d3cf;
  --ca-border-light: #e0dfd9;
  --ca-icon-bg: #f0efeb;
  --ca-icon-active: #e8edf8;
  --ca-text-primary: #111111;
  --ca-text-muted: #555555;
  --ca-text-faint: #888888;
  --ca-text-ghost: #aaaaaa;
  --ca-text-label: #bbbbbb;
  --ca-accent: #1a3fa0;
  --ca-accent-light: #4a7fff;
  --ca-font-display: 'Bebas Neue', sans-serif;
  --ca-font-body: 'Manrope', sans-serif;
  --ca-radius-sm: 6px;
  --ca-radius-md: 10px;
  --ca-radius-pill: 100px;
  --ca-transition: 0.25s ease;
}

/* ---------- Section wrapper ---------- */
.ca-section {
  background: var(--ca-bg);
  font-family: var(--ca-font-body);
  overflow: hidden;
  width: 100%;
}


/* ============================================================
   HERO
   ============================================================ */
.ca-hero {
  padding: 80px 48px 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--ca-border);
}

.ca-hero-left {
  flex: 1;
}

.ca-eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--ca-text-faint);
  margin-bottom: 20px;
}

.ca-hero-title {
  font-family: var(--ca-font-display);
  font-size: clamp(42px, 6vw, 72px);
  line-height: 0.9;
  color: #4a4a4a;
  margin-bottom: 32px;
  letter-spacing: -1px;
}

.ca-hero-title em {
  color: var(--ca-accent);
  font-style: normal;
}

.ca-hero-right {
  max-width: 340px;
  padding-bottom: 40px;
}

.ca-hero-desc {
  font-size: 15px;
  font-weight: 300;
  color: var(--ca-text-muted);
  line-height: 1.8;
  margin-bottom: 24px;
}

/* CTA buttons */
.ca-cta-row {
  display: flex;
  align-items: center;
  gap: 16px;
}

.ca-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #50555a;
  color: #ffffff;
  padding: 14px 28px;
  border-radius: var(--ca-radius-pill);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  border: none;
  letter-spacing: 0.3px;
  transition: background var(--ca-transition);
  font-family: var(--ca-font-body);
}

.ca-btn-primary:hover {
  background: var(--ca-accent);
}

.ca-btn-ghost {
  font-size: 13px;
  color: var(--ca-text-faint);
  text-decoration: none;
  cursor: pointer;
  font-weight: 500;
  border: none;
  background: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color var(--ca-transition);
  font-family: var(--ca-font-body);
}

.ca-btn-ghost:hover {
  color: var(--ca-text-primary);
}


/* ============================================================
   TICKER
   ============================================================ */
.ca-ticker {
  background: #50555a;
  color: #FFFFFF;
  padding: 12px 0;
  overflow: hidden;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  user-select: none;
}

.ca-ticker-inner {
  display: inline-flex;
  animation: ca-ticker-scroll 18s linear infinite;
}

.ca-ticker-item {
  padding: 0 32px;
  opacity: 0.7;
}

.ca-ticker-item span {
  color: var(--ca-accent-light);
  opacity: 1;
}

@keyframes ca-ticker-scroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}


/* ============================================================
   MAIN — dos columnas
   ============================================================ */
.ca-main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 520px;
}

/* ---------- Columna izquierda (sticky) ---------- */
.ca-sticky-col {
  position: sticky;
  top: 0;
  height: 100vh;
  max-height: 520px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 48px;
  border-right: 1px solid var(--ca-border);
  background: var(--ca-bg);
}

/* Barra de progreso */
.ca-progress-wrap {
  margin-bottom: 20px;
}

.ca-progress-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--ca-text-label);
  margin-bottom: 16px;
}

.ca-progress-line {
  width: 100%;
  height: 1px;
  background: var(--ca-border-light);
  position: relative;
  overflow: hidden;
  margin-bottom: 8px;
}

.ca-progress-fill {
  height: 100%;
  background: var(--ca-accent);
  width: 16.6%;
  /* empieza en 1/6 */
  transition: width 0.5s ease;
}

.ca-progress-labels {
  font-size: 11px;
  color: var(--ca-text-ghost);
  display: flex;
  justify-content: space-between;
}

/* Nav items */
.ca-feature-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
  list-style: none;
}

.ca-nav-item {
  padding: 14px 20px;
  border-radius: var(--ca-radius-md);
  cursor: pointer;
  transition: all var(--ca-transition);
  font-size: 14px;
  font-weight: 500;
  color: #999999;
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid transparent;
  text-align: left;
  background: none;
  font-family: var(--ca-font-body);
  width: 100%;
}

.ca-nav-item:hover {
  color: var(--ca-text-primary);
  background: var(--ca-bg-hover);
}

.ca-nav-item.active {
  background: var(--ca-bg-white);
  border-color: var(--ca-border-light);
  color: var(--ca-text-primary);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.ca-nav-bar {
  width: 3px;
  height: 0;
  background: var(--ca-accent);
  border-radius: 2px;
  flex-shrink: 0;
  transition: height 0.4s ease;
}

.ca-nav-item.active .ca-nav-bar {
  height: 32px;
}

.ca-nav-num {
  font-family: var(--ca-font-display);
  font-size: 20px;
  color: #cccccc;
  transition: color var(--ca-transition);
  min-width: 24px;
  line-height: 1;
}

.ca-nav-item.active .ca-nav-num {
  color: var(--ca-accent);
}


/* ---------- Columna derecha (panels) ---------- */
.ca-panels-col {
  display: flex;
  flex-direction: column;
}

.ca-panel {
  padding: 48px;
  border-bottom: 1px solid var(--ca-border);
  min-height: 87px;
  /* colapsado */
  display: flex;
  flex-direction: column;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s ease;
  position: relative;
  overflow: hidden;
}

/* Borde izquierdo animado */
.ca-panel::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 3px;
  height: 0;
  background: var(--ca-accent);
  transition: height 0.4s ease;
}

.ca-panel.active {
  background: var(--ca-bg-white);
}

.ca-panel.active::before {
  height: 100%;
}

.ca-panel:hover:not(.active) {
  background: var(--ca-bg-hover);
}

/* Cabecera del panel */
.ca-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.ca-panel-icon {
  width: 40px;
  height: 40px;
  border-radius: var(--ca-radius-md);
  background: var(--ca-icon-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: var(--ca-accent);
  flex-shrink: 0;
  transition: background var(--ca-transition);
}

.ca-panel.active .ca-panel-icon {
  background: var(--ca-icon-active);
}

.ca-panel-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ca-text-ghost);
  margin-bottom: 4px;
  transition: color var(--ca-transition);
}

.ca-panel.active .ca-panel-tag {
  color: var(--ca-accent);
}

.ca-panel-title {
  font-family: var(--ca-font-display);
  font-size: 28px;
  color: var(--ca-text-primary);
  letter-spacing: 0.5px;
  line-height: 1;
}

/* Contenido expandible */
.ca-panel-expand {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.45s ease, opacity 0.3s ease;
}

.ca-panel.active .ca-panel-expand {
  max-height: 300px;
  opacity: 1;
}

.ca-panel-desc {
  font-size: 14px;
  font-weight: 300;
  color: var(--ca-text-muted);
  line-height: 1.8;
  margin-top: 16px;
}

/* Métricas dentro del panel */
.ca-panel-metrics {
  display: flex;
  gap: 24px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--ca-border-light);
  flex-wrap: wrap;
}

.ca-metric-item {
  text-align: left;
}

.ca-metric-num {
  font-family: var(--ca-font-display);
  font-size: 36px;
  color: var(--ca-text-primary);
  line-height: 1;
}

.ca-metric-num span {
  color: var(--ca-accent);
}

.ca-metric-label {
  font-size: 11px;
  color: var(--ca-text-faint);
  margin-top: 2px;
  font-weight: 500;
  letter-spacing: 0.3px;
}


/* ============================================================
   FOOTER INFERIOR (3 columnas de datos)
   ============================================================ */
.ca-bottom {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--ca-border);
}

.ca-bottom-cell {
  padding: 32px 40px;
  border-right: 1px solid var(--ca-border);
}

.ca-bottom-cell:last-child {
  border-right: none;
}

.ca-cell-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--ca-text-label);
  margin-bottom: 12px;
}

.ca-cell-val {
  font-family: var(--ca-font-display);
  font-size: 42px;
  color: var(--ca-text-primary);
  line-height: 1;
  margin-bottom: 6px;
}

.ca-cell-val em {
  color: var(--ca-accent);
  font-style: normal;
}

.ca-cell-sub {
  font-size: 12px;
  color: var(--ca-text-faint);
  font-weight: 400;
  line-height: 1.5;
}

/* Badges de certificaciones */
.ca-cert-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.ca-cert {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  padding: 4px 10px;
  border-radius: var(--ca-radius-sm);
  background: var(--ca-text-primary);
  color: var(--ca-bg);
  text-transform: uppercase;
}

.ca-cert--blue {
  background: var(--ca-accent);
}


/* ============================================================
   RESPONSIVE — tablet y mobile
   ============================================================ */
@media (max-width: 960px) {
  .ca-hero {
    flex-direction: column;
    align-items: flex-start;
    padding: 56px 32px 0;
  }

  .ca-hero-right {
    max-width: 100%;
    padding-bottom: 32px;
  }

  .ca-main {
    grid-template-columns: 1fr;
  }

  .ca-sticky-col {
    position: relative;
    height: auto;
    max-height: none;
    padding: 32px;
    border-right: none;
    border-bottom: 1px solid var(--ca-border);
  }

  .ca-panel {
    padding: 32px;
  }

  .ca-bottom {
    grid-template-columns: 1fr;
  }

  .ca-bottom-cell {
    border-right: none;
    border-bottom: 1px solid var(--ca-border);
  }

  .ca-bottom-cell:last-child {
    border-bottom: none;
  }
}

@media (max-width: 600px) {
  .ca-hero {
    padding: 40px 24px 0;
  }

  .ca-hero-title {
    font-size: 64px;
  }

  .ca-sticky-col {
    padding: 24px;
  }

  .ca-panel {
    padding: 24px;
  }

  .ca-bottom-cell {
    padding: 24px;
  }

  .ca-cta-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .ca-panel-metrics {
    gap: 16px;
  }
}

/* ========================================
   FAQ SECTION - Premium Accordion
   ======================================== */
.faq-section {
  background: #0f172a;
  padding: 110px 20px;
  position: relative;
  overflow: hidden;
}

.faq-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 900px;
  height: 400px;
  background: radial-gradient(ellipse at center top, rgba(0, 86, 161, 0.2) 0%, transparent 70%);
  pointer-events: none;
}

.faq-container {
  max-width: 860px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

/* Header */
.faq-header {
  text-align: center;
  margin-bottom: 52px;
}

.faq-eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #60a5fa;
  margin-bottom: 16px;
  padding: 5px 14px;
  border: 1px solid rgba(96, 165, 250, 0.25);
  border-radius: 20px;
  background: rgba(96, 165, 250, 0.05);
}

.faq-title {
  font-family: 'Inter', sans-serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 800;
  color: #ffffff;
  line-height: 1.15;
  letter-spacing: -0.5px;
  margin-bottom: 16px;
}

.faq-title span {
  background: linear-gradient(to right, #60a5fa, #38bdf8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.faq-sub {
  font-size: 1.05rem;
  color: #94a3b8;
  line-height: 1.7;
  max-width: 600px;
  margin: 0 auto;
}

/* Filter Pills */
.faq-filters {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

.faq-filter {
  padding: 8px 20px;
  border-radius: 100px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: transparent;
  color: #94a3b8;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  font-family: 'Inter', sans-serif;
  letter-spacing: 0.3px;
}

.faq-filter:hover {
  border-color: rgba(96, 165, 250, 0.4);
  color: #e2e8f0;
}

.faq-filter.active {
  background: #0056a1;
  border-color: #0056a1;
  color: #ffffff;
  box-shadow: 0 0 20px rgba(0, 86, 161, 0.3);
}

/* FAQ List */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 48px;
}

/* FAQ Item */
.faq-item {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  overflow: hidden;
  transition: border-color 0.3s ease, background 0.3s ease;
}

.faq-item:hover {
  border-color: rgba(96, 165, 250, 0.2);
  background: rgba(255, 255, 255, 0.06);
}

.faq-item.is-open {
  border-color: rgba(0, 86, 161, 0.4);
  background: rgba(0, 86, 161, 0.06);
}

/* Question button */
.faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 28px;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: 'Inter', sans-serif;
}

.faq-q-text {
  font-size: 1rem;
  font-weight: 600;
  color: #e2e8f0;
  line-height: 1.4;
  transition: color 0.25s ease;
}

.faq-item.is-open .faq-q-text {
  color: #60a5fa;
}

/* + / - icon */
.faq-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  position: relative;
}

.faq-icon::before,
.faq-icon::after {
  content: '';
  position: absolute;
  background: #94a3b8;
  border-radius: 2px;
  transition: all 0.35s cubic-bezier(0.22, 0.68, 0, 1.2);
}

/* horizontal bar */
.faq-icon::before {
  width: 12px;
  height: 1.5px;
}

/* vertical bar */
.faq-icon::after {
  width: 1.5px;
  height: 12px;
}

.faq-item.is-open .faq-icon {
  border-color: rgba(0, 86, 161, 0.5);
  background: rgba(0, 86, 161, 0.15);
}

.faq-item.is-open .faq-icon::before,
.faq-item.is-open .faq-icon::after {
  background: #60a5fa;
}

.faq-item.is-open .faq-icon::after {
  transform: rotate(90deg);
  opacity: 0;
}

/* Answer */
.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.is-open .faq-a {
  max-height: 300px;
}

.faq-a p {
  padding: 0 28px 22px;
  font-size: 0.95rem;
  color: #94a3b8;
  line-height: 1.75;
}

.faq-a p strong {
  color: #cbd5e1;
  font-weight: 600;
}

/* Hidden items */
.faq-item.faq-hidden {
  display: none;
}

/* CTA Bar */
.faq-cta-wrap {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px 32px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(8px);
  flex-wrap: wrap;
}

.faq-cta-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: rgba(0, 86, 161, 0.15);
  border: 1px solid rgba(0, 86, 161, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #60a5fa;
  flex-shrink: 0;
}

.faq-cta-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.faq-cta-text strong {
  font-size: 0.95rem;
  font-weight: 700;
  color: #e2e8f0;
  font-family: 'Inter', sans-serif;
}

.faq-cta-text span {
  font-size: 0.85rem;
  color: #64748b;
}

.faq-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: #0056a1;
  color: #ffffff;
  border-radius: 100px;
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  font-family: 'Inter', sans-serif;
  transition: all 0.25s ease;
  white-space: nowrap;
  box-shadow: 0 0 24px rgba(0, 86, 161, 0.2);
}

.faq-cta-btn:hover {
  background: #003d73;
  box-shadow: 0 0 32px rgba(0, 86, 161, 0.4);
  transform: translateY(-2px);
}

@media (max-width: 600px) {
  .faq-q {
    padding: 18px 20px;
  }

  .faq-a p {
    padding: 0 20px 18px;
  }

  .faq-cta-wrap {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
  }

  .faq-cta-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ========================================
   FLOATING ACTION BUTTONS (FAB)
   ======================================== */

/* Base compartida */
.fab {
  position: fixed;
  right: 24px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: none;
  z-index: 9999;
  transition: transform 0.3s cubic-bezier(0.22, 0.68, 0, 1.4),
    box-shadow 0.3s ease,
    opacity 0.3s ease;
  text-decoration: none;
  outline: none;
}

.fab svg {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
}

/* ── WhatsApp ───────────────────────────── */
.fab-whatsapp {
  bottom: 100px;
  /* encima del botón de arriba */
  background: #25d366;
  color: #ffffff;
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4);
  /* Pequeña animación de pulso al entrar */
  animation: fab-pulse 2.5s ease-in-out infinite;
}

.fab-whatsapp:hover {
  transform: scale(1.12) rotate(-5deg);
  box-shadow: 0 16px 40px rgba(37, 211, 102, 0.55);
  animation: none;
}

/* Tooltip */
.fab-tooltip {
  position: absolute;
  right: 68px;
  white-space: nowrap;
  background: #1a1a1a;
  color: #ffffff;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 8px;
  pointer-events: none;
  opacity: 0;
  transform: translateX(6px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  font-family: 'Inter', sans-serif;
}

.fab-tooltip::after {
  content: '';
  position: absolute;
  right: -6px;
  top: 50%;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-left-color: #1a1a1a;
  border-right: none;
}

.fab-whatsapp:hover .fab-tooltip {
  opacity: 1;
  transform: translateX(0);
}

/* ── Scroll to Top ─────────────────────── */
.fab-top {
  bottom: 28px;
  background: #0056a1;
  color: #ffffff;
  box-shadow: 0 8px 24px rgba(0, 86, 161, 0.35);
  /* Oculto por defecto */
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px) scale(0.8);
}

.fab-top.fab-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

.fab-top:hover {
  transform: translateY(-4px) scale(1.08);
  box-shadow: 0 16px 40px rgba(0, 86, 161, 0.5);
}

/* Pulso del WhatsApp */
@keyframes fab-pulse {

  0%,
  100% {
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4);
  }

  50% {
    box-shadow: 0 8px 36px rgba(37, 211, 102, 0.65), 0 0 0 8px rgba(37, 211, 102, 0.1);
  }
}

/* Móvil: hacerlos un poco más pequeños */
@media (max-width: 600px) {
  .fab {
    width: 50px;
    height: 50px;
    right: 16px;
  }

  .fab-whatsapp {
    bottom: 88px;
  }

  .fab-top {
    bottom: 22px;
  }

  .fab-tooltip {
    display: none;
  }
}

/* ========================================
   SITE FOOTER – Enterprise Grade
   ======================================== */

/* ── Pre-footer CTA Band ─────────────────── */
.sf-cta-band {
  background: #0056a1;
  background-image: radial-gradient(ellipse at 80% 50%, rgba(96, 165, 250, 0.15) 0%, transparent 60%);
  padding: 72px 32px;
  position: relative;
  overflow: hidden;
}

.sf-cta-band::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}

.sf-cta-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
}

.sf-cta-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 14px;
  font-family: 'Inter', sans-serif;
}

.sf-cta-title {
  font-family: 'Inter', sans-serif;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 800;
  color: #ffffff;
  line-height: 1.2;
  letter-spacing: -0.5px;
}

.sf-cta-title em {
  font-style: normal;
  color: #93c5fd;
}

.sf-cta-right {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  flex-shrink: 0;
}

.sf-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 14px 28px;
  border-radius: 100px;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  font-family: 'Inter', sans-serif;
  transition: all 0.25s ease;
  cursor: pointer;
  border: none;
  white-space: nowrap;
}

.sf-btn-primary {
  background: #ffffff;
  color: #0056a1;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.sf-btn-primary:hover {
  background: #f0f7ff;
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.2);
}

.sf-btn-ghost {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.25);
  backdrop-filter: blur(6px);
}

.sf-btn-ghost:hover {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.5);
  transform: translateY(-2px);
}

/* ── Body ──────────────────────────────── */
.sf-body {
  background: #0a0f1a;
  padding: 80px 32px 56px;
}

.sf-body-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.4fr;
  gap: 60px;
}

/* Columna marca */
.sf-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}

.sf-logo {
  border-radius: 12px;
  object-fit: contain;
  background: rgba(255, 255, 255, 0.04);
  padding: 4px;
}

.sf-brand-name {
  font-family: 'Inter', sans-serif;
  font-size: 1.05rem;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: 0.5px;
  line-height: 1.2;
}

.sf-brand-legal {
  display: block;
  font-size: 0.7rem;
  font-weight: 400;
  color: #64748b;
  letter-spacing: 1px;
}

.sf-brand-desc {
  font-size: 0.88rem;
  color: #64748b;
  line-height: 1.75;
  margin-bottom: 22px;
  font-family: 'Inter', sans-serif;
}

/* Certs */
.sf-cert-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 24px;
}

.sf-cert {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 1px;
  padding: 4px 9px;
  border-radius: 5px;
  background: #1e293b;
  color: #94a3b8;
  text-transform: uppercase;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.sf-cert-blue {
  background: rgba(0, 86, 161, 0.25);
  color: #60a5fa;
  border-color: rgba(0, 86, 161, 0.3);
}

/* Social */
.sf-social {
  display: flex;
  gap: 10px;
}

.sf-social-link {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  text-decoration: none;
  transition: all 0.25s ease;
}

.sf-social-link svg {
  width: 16px;
  height: 16px;
}

.sf-social-link:hover {
  background: #0056a1;
  border-color: #0056a1;
  color: #ffffff;
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 86, 161, 0.3);
}

/* Columnas nav */
.sf-col-title {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #94a3b8;
  margin-bottom: 20px;
}

.sf-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.sf-links a {
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  color: #475569;
  text-decoration: none;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  gap: 6px;
}

.sf-links a::before {
  content: '';
  display: inline-block;
  width: 0;
  height: 1px;
  background: #0056a1;
  transition: width 0.25s ease;
  vertical-align: middle;
}

.sf-links a:hover {
  color: #e2e8f0;
}

.sf-links a:hover::before {
  width: 14px;
}

/* Columna contacto */
.sf-contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 28px;
}

.sf-contact-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.sf-contact-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #60a5fa;
  flex-shrink: 0;
}

.sf-contact-icon svg {
  width: 15px;
  height: 15px;
}

.sf-contact-label {
  display: block;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 3px;
  font-family: 'Inter', sans-serif;
}

.sf-contact-val {
  font-size: 0.88rem;
  color: #cbd5e1;
  font-family: 'Inter', sans-serif;
  text-decoration: none;
  transition: color 0.2s ease;
}

a.sf-contact-val:hover {
  color: #60a5fa;
}

/* Partners */
.sf-brands-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #334155;
  margin-bottom: 10px;
  font-family: 'Inter', sans-serif;
}

.sf-brands-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.sf-brand-pill {
  font-size: 0.72rem;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.04);
  color: #475569;
  border: 1px solid rgba(255, 255, 255, 0.07);
  font-family: 'Inter', sans-serif;
  letter-spacing: 0.3px;
}

/* ── Divider ──────────────────────────── */
.sf-divider-wrap {
  background: #0a0f1a;
  padding: 0 32px;
}

.sf-divider-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.sf-divider {
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.06) 20%, rgba(255, 255, 255, 0.06) 80%, transparent);
}

/* ── Bottom bar ───────────────────────── */
.sf-bottom {
  background: #0a0f1a;
  padding: 24px 32px;
}

.sf-bottom-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.sf-copy {
  font-size: 0.8rem;
  color: #334155;
  font-family: 'Inter', sans-serif;
}

.sf-legal-nav {
  display: flex;
  gap: 24px;
}

.sf-legal-nav a {
  font-size: 0.78rem;
  color: #334155;
  text-decoration: none;
  font-family: 'Inter', sans-serif;
  transition: color 0.2s ease;
}

.sf-legal-nav a:hover {
  color: #60a5fa;
}

.sf-made {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.78rem;
  color: #334155;
  font-family: 'Inter', sans-serif;
}

.sf-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}

.sf-dot-green {
  background: #22c55e;
  box-shadow: 0 0 8px rgba(34, 197, 94, 0.6);
  animation: dot-pulse 2s ease-in-out infinite;
}

@keyframes dot-pulse {

  0%,
  100% {
    box-shadow: 0 0 6px rgba(34, 197, 94, 0.5);
  }

  50% {
    box-shadow: 0 0 14px rgba(34, 197, 94, 0.9);
  }
}

/* ── Responsive ───────────────────────── */
@media (max-width: 1024px) {
  .sf-body-inner {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }

  .sf-col-brand {
    grid-column: span 2;
  }
}

@media (max-width: 640px) {
  .sf-cta-inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .sf-body-inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .sf-col-brand {
    grid-column: span 1;
  }

  .sf-bottom-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .sf-legal-nav {
    flex-wrap: wrap;
    gap: 14px;
  }

  .sf-cta-right {
    flex-direction: column;
    width: 100%;
  }

  .sf-btn {
    justify-content: center;
  }
}

/* ========================================
   RESET & BASE STYLES
   ======================================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --primary-color: #0056a1;
  --primary-dark: #003d73;
  --primary-light: #3380c4;
  --accent-color: #00c9ff;
  --text-dark: #1a1a1a;
  --text-gray: #666666;
  --text-light: #999999;
  --bg-light: #f8f9fa;
  --bg-white: #ffffff;
  --border-color: #e0e0e0;
  --shadow-sm: 0 2px 8px rgba(0, 86, 161, 0.08);
  --shadow-md: 0 4px 16px rgba(0, 86, 161, 0.12);
  --shadow-lg: 0 8px 32px rgba(0, 86, 161, 0.16);
  --brand: #0056a1;
  --brand-mid: #3380c4;
  --brand-light: #e8f0fe;
  --bg: #ffffff;
  --bg-soft: #f4f8ff;
  --border: #dde8f5;
  --text-primary: #0f172a;
  --text-secondary: #4a6080;
  --radius-lg: 12px;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--text-dark);
  line-height: 1.6;
  background: var(--bg-white);
  overflow-x: clip;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
  transition: all 0.3s ease;
}

/* ========================================
   NAVIGATION
   ======================================== */
.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow-sm);
  z-index: 1000;
  transition: all 0.3s ease;
}

.navbar.scrolled {
  box-shadow: var(--shadow-md);
}

.nav-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0;
}

.logo {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-dark);
}

.logo-text {
  font-family: 'Orbitron', sans-serif;
  letter-spacing: -0.5px;
}

.logo-text .pro {
  color: var(--primary-color);
}

.nav-menu {
  display: flex;
  list-style: none;
  gap: 2rem;
  align-items: center;
}

.nav-menu a {
  color: var(--text-dark);
  font-weight: 500;
  font-size: 0.95rem;
  position: relative;
  padding: 0.5rem 0;
}

.nav-menu a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--primary-color);
  transition: width 0.3s ease;
}

.nav-menu a:hover::after,
.nav-menu a.active::after {
  width: 100%;
}

.btn-contact {
  background: var(--primary-color);
  color: white !important;
  padding: 0.7rem 1.5rem !important;
  border-radius: 8px;
  font-weight: 600;
}

.btn-contact::after {
  display: none;
}

.btn-contact:hover {
  background: var(--primary-dark);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.menu-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
}

.menu-toggle span {
  width: 25px;
  height: 3px;
  background: var(--text-dark);
  border-radius: 3px;
  transition: all 0.3s ease;
}

/* ========================================
   HERO SECTION
   ======================================== */
.hero {
  position: relative;
  height: 100vh;
  min-height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-top: 70px;
  background: linear-gradient(135deg, #003d73 0%, #0056a1 50%, #1a7abf 100%);
}

.video-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.video-container video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.85) 0%, rgba(0, 61, 115, 0.9) 100%);
}

.hero-content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: white;
  max-width: 900px;
  padding: 2rem;
}

.hero-title {
  font-family: 'Orbitron', sans-serif;
  font-size: 4rem;
  font-weight: 900;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.title-line {
  display: block;
  animation: fadeInUp 0.8s ease forwards;
  opacity: 0;
}

.title-line:nth-child(2) {
  animation-delay: 0.2s;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.hero-subtitle {
  font-size: 1.25rem;
  margin-bottom: 2.5rem;
  opacity: 0.95;
  line-height: 1.8;
  animation: fadeInUp 0.8s ease 0.4s forwards;
  opacity: 0;
}

.hero-buttons {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  justify-content: flex-start;
  flex-wrap: wrap;
  animation: fadeInUp 0.8s ease 0.6s forwards;
  opacity: 0;
}

.hero-buttons .btn {
  width: auto;
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2rem;
  border-radius: 10px;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  border: none;
  transition: all 0.3s ease;
}

.btn-primary {
  background: white;
  color: var(--primary-color);
}

.btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(255, 255, 255, 0.3);
}

.btn-secondary {
  background: transparent;
  color: white;
  border: 2px solid white;
}

.btn-secondary:hover {
  background: white;
  color: var(--primary-color);
  transform: translateY(-3px);
}

.btn-white {
  background: white;
  color: var(--primary-color);
}

.btn-white:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(255, 255, 255, 0.3);
}

.btn-large {
  padding: 1.2rem 2.5rem;
  font-size: 1.1rem;
  width: 100%;
}

.scroll-indicator {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}

.mouse {
  width: 30px;
  height: 50px;
  border: 2px solid rgba(255, 255, 255, 0.7);
  border-radius: 20px;
  position: relative;
}

.wheel {
  width: 4px;
  height: 10px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 2px;
  position: absolute;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  animation: scroll 1.5s infinite;
}

.glow-orb {
  position: absolute;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 120, 255, 0.15) 0%, transparent 70%);
  top: -100px;
  right: 80px;
  pointer-events: none;
  z-index: 1;
}

.hero-two-col {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 80px;
  width: 100%;
}

.hero-two-col .hero-content {
  flex: 1;
  text-align: left;
  max-width: 480px;
}

.hero-buttons {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  justify-content: flex-start;
}

.title-light {
  font-weight: 300 !important;
  opacity: 0.5;
}

.hero-two-col .hero-buttons {
  justify-content: flex-start;
  flex-direction: row !important;
}

.hero-divider {
  width: 40px;
  height: 2px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.6), transparent);
  margin: 20px 0;
}

.hero-svg-side {
  flex: 0 0 420px;
  opacity: 0;
  animation: fadeInUp 1s ease 0.5s forwards;
}

.hero-r1 {
  transform-origin: 210px 200px;
  animation: rp 4s ease-in-out infinite;
}

.hero-r2 {
  transform-origin: 210px 200px;
  animation: rp 4s ease-in-out infinite 1.3s;
}

.hero-r3 {
  transform-origin: 210px 200px;
  animation: rp 4s ease-in-out infinite 2.6s;
}

@keyframes rp {

  0%,
  100% {
    opacity: 0.1;
  }

  50% {
    opacity: 0.35;
  }
}

.hero-scan {
  animation: sc 6s linear infinite;
  transform-origin: 210px 200px;
}

@keyframes sc {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 900px) {
  .hero-two-col {
    flex-direction: column;
  }

  .hero-svg-side {
    display: none;
  }

  .hero-two-col .hero-content {
    text-align: center;
    max-width: 100%;
  }

  .hero-two-col .hero-buttons {
    justify-content: center;
  }
}

@keyframes scroll {

  0%,
  100% {
    opacity: 0;
    transform: translateX(-50%) translateY(0);
  }

  50% {
    opacity: 1;
    transform: translateX(-50%) translateY(10px);
  }
}

/* ========================================
   STATS SECTION
   ======================================== */
.stats-section {
  background: linear-gradient(135deg, #0a2d6b 0%, #1249a8 60%, #1a5cc7 100%);
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}

.stats-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px);
  pointer-events: none;
}

.stats-section .container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 48px;
  position: relative;
  z-index: 1;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.stat-item {
  text-align: center;
  padding: 40px 24px;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
  position: relative;
}

.stat-item:last-child {
  border-right: none;
}

.stat-item::before {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: rgba(255, 255, 255, 0.3);
  margin: 0 auto 20px;
}

.stat-number {
  font-size: 3.8rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: 14px;
}

.stat-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 400;
}

.counters-section {
  background: linear-gradient(135deg, #0a2d6b 0%, #1249a8 60%, #1a5cc7 100%);
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}

.counters-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px);
  pointer-events: none;
}

.counters-container {
  max-width: 100%;
  margin: 0 auto;
  padding: 0 48px;
  position: relative;
  z-index: 1;
}

.counters-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  width: 100%;
}

.counter-item {
  text-align: center;
  padding: 40px 0;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
}

.counter-item:last-child {
  border-right: none;
}

.counter-item::before {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: rgba(255, 255, 255, 0.3);
  margin: 0 auto 20px;
}

.counter-number {
  font-size: 3.8rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: 14px;
  display: block;
}

.counter-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

@media (max-width: 600px) {
  .counters-grid {
    grid-template-columns: 1fr;
  }

  .counter-item {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }
}

@media (max-width: 768px) {
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .stat-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }

  .stat-item:nth-child(2),
  .stat-item:nth-child(4) {
    border-right: none;
  }
}

@media (max-width: 480px) {
  .stats-grid {
    grid-template-columns: 1fr;
  }

  .stat-item {
    border-right: none;
  }
}

.counters-section {
  padding: 50px 0;
  /* antes 80px */
}

.counter-number {
  font-size: 2.6rem;
  /* antes 3.8rem */
}

.counter-label {
  font-size: 11px;
}

.counter-item {
  padding: 24px 0px;
  /* antes 40px */
}

/* ============================================================
   Control Audaz 60 â€“ Stats Section
   control_audaz_stats.css
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@300;400;700;800&family=Barlow:wght@400;700&display=swap');

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* â”€â”€ SecciÃ³n principal â”€â”€ */
.ca-section {
  position: relative;
  width: 100%;
  background: #f8f9fc;
  overflow: hidden;
}

/* â”€â”€ Fondo de red: ocupa todo el espacio de la secciÃ³n â”€â”€ */
.net-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.net-bg svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* â”€â”€ Stats encima del fondo â”€â”€ */
.stats-overlay {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  padding: 60px 16px 60px;
}

/* â”€â”€ Cada stat â”€â”€ */
.stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  flex: 1;
  min-width: 140px;
  max-width: 200px;
}

/* â”€â”€ CÃ­rculo â”€â”€ */
.circ-wrap {
  position: relative;
  width: 148px;
  height: 148px;
  flex-shrink: 0;
}

.circ-svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 148px;
  height: 148px;
}

.circ-inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
}

/* â”€â”€ Animaciones de anillos â”€â”€ */
@keyframes spin-cw {
  to {
    transform: rotate(360deg);
  }
}

@keyframes spin-ccw {
  to {
    transform: rotate(-360deg);
  }
}

.r-cw {
  transform-origin: 74px 74px;
  animation: spin-cw 14s linear infinite;
}

.r-ccw {
  transform-origin: 74px 74px;
  animation: spin-ccw 20s linear infinite;
}

/* â”€â”€ TipografÃ­a de nÃºmeros â”€â”€ */
.num-row {
  display: flex;
  align-items: flex-end;
  gap: 1px;
}

.stat-prefix {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: #1346b0;
  line-height: 1;
  align-self: flex-start;
  margin-bottom: 5px;
}

.stat-num {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 48px;
  font-weight: 800;
  color: #1346b0;
  line-height: 1;
  letter-spacing: -1px;
}

.stat-suffix {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #1346b0;
  line-height: 1;
  align-self: flex-end;
  margin-bottom: 7px;
}

/* â”€â”€ Etiqueta debajo del cÃ­rculo â”€â”€ */
.ca-section .stat-label {
  font-family: 'Barlow', sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: #1346b0;
  text-transform: uppercase;
  letter-spacing: 2px;
  text-align: center;
  line-height: 1.6;
  display: block;
  width: 100%;
}

/* â”€â”€ Puntos de ciudades en el SVG de fondo â”€â”€ */
@keyframes ring-expand {
  0% {
    r: 4;
    opacity: .8;
  }

  100% {
    r: 16;
    opacity: 0;
  }
}

.mdot {
  fill: #1346b0;
}

.mring {
  fill: none;
  stroke: #1346b0;
  stroke-width: 1;
  animation: ring-expand 2.4s ease-out infinite;
}

.mring2 {
  fill: none;
  stroke: #1346b0;
  stroke-width: .5;
  animation: ring-expand 2.4s ease-out infinite .9s;
}

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 600px) {
  .stat-item {
    min-width: 120px;
    max-width: 160px;
  }

  .circ-wrap {
    width: 115px;
    height: 115px;
  }

  .circ-svg {
    width: 115px;
    height: 115px;
  }

  .stat-num {
    font-size: 36px;
  }

  .stat-prefix {
    font-size: 16px;
  }

  .r-cw,
  .r-ccw {
    transform-origin: 57px 57px;
  }

  .stats-overlay {
    padding: 40px 8px 48px;
  }
}

/* ========================================
   PAGE HEADER
   ======================================== */
.page-header {
  position: relative;
  background: #003058;
  overflow: hidden;
  padding: 90px 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  margin-top: 70px;
  color: white;
  text-align: center;
}

.page-header h1 {
  font-family: 'Orbitron', sans-serif;
  font-size: 3.5rem;
  margin-bottom: 1rem;
  font-weight: 900;
}

.page-header p {
  font-size: 1.25rem;
  opacity: 0.9;
}

/* ========================================
   SECTIONS
   ======================================== */
.vigilancia-section,
.service-detail,
.projects-section,
.about-section,
.mission-section,
.team-section,
.certifications-section,
.why-us-section,
.contact-section {
  padding: 5rem 0;
}

.vigilancia-section {
  padding: 160px 8%;

  background:
    linear-gradient(135deg, #dbeafe, #eef2ff, #f1f5f9);
}

.section-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 4rem;
}

.section-title {
  font-size: 50px;
  font-weight: 800;
  letter-spacing: -1px;
  margin-bottom: 20px;
  color: #0f172a;
}

.section-subtitle {
  font-size: 18px;
  color: #64748b;
  max-width: 650px;
  margin: auto;
  line-height: 1.7;
}

/* ========================================
   FEATURES GRID
   ======================================== */
/* ========================================
   FEATURES GRID 
   ======================================== */

.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 45px;
  margin-top: 80px;
}

.feature-card {
  padding: 45px;
  border-radius: 22px;

  /* GLASS REAL */
  background: rgba(255, 255, 255, 0.25);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);

  border: 1px solid rgba(255, 255, 255, 0.6);

  box-shadow:
    0 25px 60px rgba(0, 0, 0, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);

  transition: all .4s ease;
  position: relative;
  overflow: hidden;
}

.feature-card {
  padding: 45px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* linea superior elegante */
.feature-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  background: linear-gradient(120deg,
      transparent,
      rgba(255, 255, 255, 0.45),
      transparent);

  opacity: 0;
  transition: .4s;
}

.feature-card:hover::after {
  opacity: 1;
}

.feature-card:hover {
  transform: translateY(-14px) scale(1.02);

  box-shadow:
    0 45px 100px rgba(0, 0, 0, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.feature-icon {
  width: 90px;
  height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #e8f0fe, #dbeafe);
  border-radius: 24px;
  margin: 0 auto 28px;
  transition: .3s;
  box-shadow: 0 4px 16px rgba(37, 99, 235, 0.15);
}

.feature-icon svg {
  width: 46px;
  height: 46px;
  stroke: #2563eb;
  transition: .3s;
}

.feature-card:hover .feature-icon {
  background: #2563eb;
}

.feature-card:hover svg {
  stroke: white;
  transform: scale(1.1);
}

.feature-card h3 {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 12px;
  color: #0f172a;
  transition: opacity .35s ease, transform .35s ease;
}

.feature-card p {
  font-size: 15px;
  color: #64748b;
  line-height: 1.7;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .35s ease .07s, transform .35s ease .07s;
}

.feature-card:hover p {
  opacity: 1;
  transform: translateY(0);
}

.feature-card:hover h3,
.feature-card:hover p {
  opacity: 1;
  transform: translateY(0);
}

/* ========================================
   TECH SECTION
   ======================================== */
.tech-section {
  background: var(--bg-light);
  padding: 5rem 0;
}

.tech-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.tech-text h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  font-weight: 900;
}

.tech-text p {
  color: var(--text-gray);
  font-size: 1.1rem;
  margin-bottom: 2rem;
  line-height: 1.8;
}

.tech-list {
  list-style: none;
  margin-bottom: 2rem;
}

.tech-list li {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.8rem 0;
  color: var(--text-dark);
  font-weight: 500;
}

.tech-visual {
  position: relative;
  height: 400px;
  background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}

.scanning-line {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--accent-color);
  box-shadow: 0 0 20px var(--accent-color);
  animation: scan 3s infinite;
}

@keyframes scan {

  0%,
  100% {
    top: 0;
  }

  50% {
    top: 100%;
  }
}

.data-points .point {
  position: absolute;
  width: 12px;
  height: 12px;
  background: var(--accent-color);
  border-radius: 50%;
  box-shadow: 0 0 20px var(--accent-color);
  animation: pulse 2s infinite;
}

@keyframes pulse {

  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 0.5;
    transform: scale(1.5);
  }
}

/* ========================================
   SERVICE DETAIL
   ======================================== */
.service-detail {
  padding: 4rem 0;
}

.service-detail.alt {
  background: var(--bg-light);
}

.service-layout {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 4rem;
  align-items: start;
}

.service-layout.reverse {
  grid-template-columns: 1fr 1.2fr;
}

.service-layout.reverse .service-content {
  order: 2;
}

.service-layout.reverse .service-image {
  order: 1;
}

.service-tag {
  display: inline-block;
  padding: 0.5rem 1rem;
  background: rgba(0, 86, 161, 0.1);
  color: var(--primary-color);
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

.service-content h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  font-weight: 900;
}

.service-content h3 {
  font-size: 1.5rem;
  margin: 2rem 0 1.5rem;
  color: var(--text-dark);
  font-weight: 700;
}

.lead {
  font-size: 1.15rem;
  color: var(--text-gray);
  line-height: 1.8;
  margin-bottom: 2rem;
}

.features-list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin: 2rem 0;
}

.feature-item {
  display: flex;
  gap: 1.5rem;
  align-items: start;
}

.feature-icon-small {
  flex-shrink: 0;
}

.feature-item h4 {
  color: var(--text-dark);
  margin-bottom: 0.5rem;
  font-weight: 600;
}

.feature-item p {
  color: var(--text-gray);
  line-height: 1.6;
}

.tech-specs {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1rem;
  margin: 2rem 0;
}

.tech-specs li {
  padding: 0.8rem 1rem 0.8rem 2.5rem;
  background: var(--bg-light);
  border-radius: 8px;
  position: relative;
  color: var(--text-dark);
  font-weight: 500;
}

.tech-specs li::before {
  content: 'â—';
  position: absolute;
  left: 1rem;
  color: var(--primary-color);
  font-size: 1.5rem;
  line-height: 1;
}

.service-image {
  position: sticky;
  top: 100px;
}

.image-placeholder {
  width: 100%;
  height: 500px;
  border-radius: 16px;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}

.cameras-bg {
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.9), rgba(0, 61, 115, 0.9)),
    url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="30" fill="%23fff" opacity="0.1"/></svg>');
  background-size: cover;
}

.access-bg {
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.9), rgba(0, 61, 115, 0.9)),
    url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><rect x="30" y="30" width="40" height="40" fill="%23fff" opacity="0.1"/></svg>');
  background-size: cover;
}

.monitoring-bg {
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.9), rgba(0, 61, 115, 0.9)),
    url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M20 50 L50 20 L80 50 L50 80 Z" fill="%23fff" opacity="0.1"/></svg>');
  background-size: cover;
}

.network-bg {
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.9), rgba(0, 61, 115, 0.9)),
    url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="25" cy="25" r="5" fill="%23fff" opacity="0.1"/><circle cx="75" cy="25" r="5" fill="%23fff" opacity="0.1"/><circle cx="25" cy="75" r="5" fill="%23fff" opacity="0.1"/><circle cx="75" cy="75" r="5" fill="%23fff" opacity="0.1"/></svg>');
  background-size: cover;
}

.overlay-text {
  position: absolute;
  bottom: 2rem;
  left: 2rem;
  color: white;
  font-family: 'Orbitron', sans-serif;
  font-size: 2rem;
  font-weight: 900;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

/* ========================================
   PROJECTS
   ======================================== */
.projects-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  gap: 2.5rem;
}

.project-card {
  background: white;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: all 0.3s ease;
  border: 1px solid var(--border-color);
}

.project-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
}

.project-image {
  height: 240px;
  background-size: cover;
  background-position: center;
  position: relative;
}

.corporate-bg {
  background: linear-gradient(135deg, rgba(0, 86, 161, 0.8), rgba(0, 61, 115, 0.8));
}

.retail-bg {
  background: linear-gradient(135deg, rgba(0, 120, 180, 0.8), rgba(0, 86, 161, 0.8));
}

.industrial-bg {
  background: linear-gradient(135deg, rgba(0, 61, 115, 0.8), rgba(0, 40, 80, 0.8));
}

.residential-bg {
  background: linear-gradient(135deg, rgba(51, 128, 196, 0.8), rgba(0, 86, 161, 0.8));
}

.educational-bg {
  background: linear-gradient(135deg, rgba(0, 100, 150, 0.8), rgba(0, 61, 115, 0.8));
}

.hospitality-bg {
  background: linear-gradient(135deg, rgba(0, 140, 200, 0.8), rgba(0, 86, 161, 0.8));
}

.banking-bg {
  background: linear-gradient(135deg, rgba(0, 50, 100, 0.8), rgba(0, 86, 161, 0.8));
}

.logistics-bg {
  background: linear-gradient(135deg, rgba(0, 80, 130, 0.8), rgba(0, 61, 115, 0.8));
}

.healthcare-bg {
  background: linear-gradient(135deg, rgba(0, 110, 170, 0.8), rgba(0, 86, 161, 0.8));
}

.project-category {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: white;
  color: var(--primary-color);
  padding: 0.5rem 1rem;
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.85rem;
}

.project-content {
  padding: 2rem;
}

.project-content h3 {
  font-size: 1.4rem;
  margin-bottom: 0.5rem;
  color: var(--text-dark);
  font-weight: 700;
}

.project-meta {
  color: var(--text-light);
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

.project-content p {
  color: var(--text-gray);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

.project-specs {
  list-style: none;
  margin-bottom: 1.5rem;
}

.project-specs li {
  padding: 0.5rem 0;
  padding-left: 1.5rem;
  position: relative;
  color: var(--text-dark);
  font-size: 0.9rem;
}

.project-specs li::before {
  content: 'â–¸';
  position: absolute;
  left: 0;
  color: var(--primary-color);
}

.project-result {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 1rem;
  background: rgba(0, 86, 161, 0.05);
  border-radius: 8px;
  font-weight: 600;
  color: var(--primary-color);
  font-size: 0.95rem;
}

/* ========================================
   TESTIMONIALS
   ======================================== */
.testimonials-section {
  background: var(--bg-light);
  padding: 5rem 0;
}

.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 2rem;
  margin-top: 3rem;
}

.testimonial-card {
  background: white;
  padding: 2.5rem;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  position: relative;
}

.quote-icon {
  margin-bottom: 1rem;
}

.testimonial-card p {
  color: var(--text-gray);
  line-height: 1.8;
  margin-bottom: 2rem;
  font-style: italic;
}

.testimonial-author strong {
  display: block;
  color: var(--text-dark);
  font-weight: 700;
  margin-bottom: 0.3rem;
}

.testimonial-author span {
  color: var(--text-light);
  font-size: 0.9rem;
}

/* ========================================
   ABOUT, MISSION, TEAM
   ======================================== */
.about-content {
  display: grid;
  gap: 4rem;
}

.about-text {
  max-width: 800px;
}

.about-text h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  font-weight: 900;
}

.about-text p {
  color: var(--text-gray);
  line-height: 1.8;
  margin-bottom: 1.5rem;
  font-size: 1.05rem;
}

.about-values {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
}

.value-card {
  text-align: center;
  padding: 2rem;
  background: white;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  transition: all 0.3s ease;
}

.value-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
}

.value-icon {
  margin-bottom: 1.5rem;
}

.value-card h3 {
  font-size: 1.3rem;
  margin-bottom: 1rem;
  color: var(--text-dark);
  font-weight: 700;
}

.value-card p {
  color: var(--text-gray);
  line-height: 1.6;
}

.mission-section {
  background: var(--bg-light);
}

.mission-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: 3rem;
}

.mission-card {
  background: white;
  padding: 3rem;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
}

.mission-icon {
  margin-bottom: 2rem;
}

.mission-card h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2rem;
  margin-bottom: 1.5rem;
  font-weight: 900;
}

.mission-card p {
  color: var(--text-gray);
  line-height: 1.8;
  font-size: 1.05rem;
}

.team-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
  margin-top: 3rem;
}

.team-stat {
  text-align: center;
  padding: 2rem;
  background: white;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
}

/* ========================================
   CERTIFICATIONS
   ======================================== */
.cert-category {
  margin-bottom: 4rem;
  margin-top: 4rem;
}

.cert-category h3 {
  font-size: 1.8rem;
  margin-bottom: 2rem;
  color: var(--text-dark);
  font-weight: 700;
  text-align: center;
}

.certifications-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem;
}

.cert-card {
  text-align: center;
  padding: 2rem 1.5rem;
  background: white;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  transition: all 0.3s ease;
  border: 2px solid transparent;
}

.cert-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
  border-color: var(--primary-color);
}

.cert-badge {
  margin: 0 auto 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cert-card h4 {
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
  color: var(--text-dark);
  font-weight: 700;
}

.cert-card p {
  color: var(--text-gray);
  font-size: 0.9rem;
}

/* ========================================
   WHY US
   ======================================== */
.why-us-section {
  background: var(--bg-light);
}

.why-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
  margin-top: 3rem;
}

.why-card {
  background: white;
  padding: 2.5rem;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  position: relative;
  transition: all 0.3s ease;
}

.why-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
}

.why-number {
  font-family: 'Orbitron', sans-serif;
  font-size: 3rem;
  font-weight: 900;
  color: rgba(0, 86, 161, 0.1);
  line-height: 1;
  margin-bottom: 1rem;
}

.why-card h3 {
  font-size: 1.3rem;
  margin-bottom: 1rem;
  color: var(--text-dark);
  font-weight: 700;
}

.why-card p {
  color: var(--text-gray);
  line-height: 1.7;
}

/* ========================================
   CONTACT
   ======================================== */
.contact-wrapper {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 4rem;
}

.contact-info h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2rem;
  margin-bottom: 1rem;
  font-weight: 900;
}

.contact-info>p {
  color: var(--text-gray);
  margin-bottom: 2rem;
  line-height: 1.7;
}

.info-items {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.info-item {
  display: flex;
  gap: 1.5rem;
}

.info-icon {
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  background: rgba(0, 86, 161, 0.1);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.info-item h4 {
  color: var(--text-dark);
  margin-bottom: 0.5rem;
  font-weight: 700;
}

.info-item p {
  color: var(--text-gray);
  line-height: 1.6;
}

.whatsapp-note {
  color: var(--primary-color);
  font-weight: 600;
  font-size: 0.9rem;
}

.emergency-contact {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem;
  background: linear-gradient(135deg, #ff4444 0%, #cc0000 100%);
  color: white;
  border-radius: 12px;
  margin-top: 2rem;
}

.emergency-contact h4 {
  margin-bottom: 0.3rem;
}

.emergency-number {
  font-family: 'Orbitron', sans-serif;
  font-size: 1.3rem;
  font-weight: 900;
}

.contact-form-wrapper {
  background: white;
  padding: 3rem;
  border-radius: 16px;
  box-shadow: var(--shadow-md);
}

.form-header {
  margin-bottom: 2rem;
}

.form-header h2 {
  font-family: 'Orbitron', sans-serif;
  font-size: 2rem;
  margin-bottom: 0.5rem;
  font-weight: 900;
}

.form-header p {
  color: var(--text-gray);
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.form-group {
  display: flex;
  flex-direction: column;
}

.form-group label {
  margin-bottom: 0.5rem;
  color: var(--text-dark);
  font-weight: 600;
  font-size: 0.95rem;
}

.form-group input,
.form-group select,
.form-group textarea {
  padding: 1rem;
  border: 2px solid var(--border-color);
  border-radius: 8px;
  font-family: inherit;
  font-size: 1rem;
  transition: all 0.3s ease;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: 0 0 0 3px rgba(0, 86, 161, 0.1);
}

.form-group textarea {
  resize: vertical;
  min-height: 120px;
}

.checkbox-group {
  flex-direction: row;
  align-items: center;
}

.checkbox-label {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  cursor: pointer;
  font-weight: 500;
}

.checkbox-label input[type="checkbox"] {
  width: 20px;
  height: 20px;
  cursor: pointer;
}

.link {
  color: var(--primary-color);
  text-decoration: underline;
}

.form-status {
  padding: 1rem;
  border-radius: 8px;
  margin-top: 1rem;
  display: none;
}

.form-status.success {
  background: #d4edda;
  color: #155724;
  display: block;
}

.form-status.error {
  background: #f8d7da;
  color: #721c24;
  display: block;
}

.form-note {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
  padding: 1rem;
  background: rgba(0, 86, 161, 0.05);
  border-radius: 8px;
}

.form-note p {
  color: var(--text-gray);
  font-size: 0.9rem;
  line-height: 1.5;
}

.map-section {
  padding: 3rem 0;
  background: var(--bg-light);
}

.map-container {
  margin-top: 2rem;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

/* ========================================
   CTA SECTION
   ======================================== */
.cta-banner {
  background: linear-gradient(135deg, #0a2d6b 0%, #1249a8 60%, #1a5cc7 100%);
  padding: 72px 64px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.cta-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.015) 0px, rgba(255, 255, 255, 0.015) 1px, transparent 1px, transparent 80px);
}

.circle {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.06);
  pointer-events: none;
}

.circle-1 {
  width: 350px;
  height: 350px;
  top: -100px;
  right: -100px;
}

.circle-2 {
  width: 220px;
  height: 220px;
  top: -60px;
  right: -60px;
}

.circle-3 {
  width: 320px;
  height: 320px;
  bottom: -120px;
  left: -80px;
}

.cta-inner {
  position: relative;
  z-index: 1;
  max-width: 680px;
  margin: 0 auto;
}

.divider {
  width: 48px;
  height: 2px;
  background: rgba(255, 255, 255, 0.35);
  margin: 0 auto 32px;
}

.cta-title {
  color: #ffffff;
  line-height: 1.2;
  margin-bottom: 28px;
}

.cta-title .light {
  display: block;
  font-size: 2.8rem;
  font-weight: 300;
}

.cta-title .bold {
  display: block;
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.cta-subtitle {
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.7;
  font-weight: 300;
  max-width: 500px;
  margin: 0 auto 48px;
}

.cta-buttons {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 52px;
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  padding: 15px 32px;
  border-radius: 6px;
  text-decoration: none;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.btn-primary {
  background: #ffffff;
  color: #0a2d6b;
  border: 1px solid transparent;
  font-weight: 600;
}

.btn-primary:hover {
  background: #f0f4ff;
}

.btn-secondary {
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.25);
  font-weight: 400;
}

.btn-secondary:hover {
  border-color: rgba(255, 255, 255, 0.5);
  color: #ffffff;
}

.cta-stats {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 32px;
  display: flex;
  gap: 48px;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
}

.stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.stat-number {
  font-size: 1.4rem;
  font-weight: 700;
  color: #ffffff;
}

.stat-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.stat-divider {
  width: 1px;
  height: 40px;
  background: rgba(255, 255, 255, 0.1);
}

@media (max-width: 600px) {
  .cta-banner {
    padding: 48px 24px;
  }

  .cta-title .light,
  .cta-title .bold {
    font-size: 2rem;
  }

  .stat-divider {
    display: none;
  }

  .cta-stats {
    gap: 28px;
  }
}

/* ========================================
   FOOTER
   ======================================== */
.footer {
  background: linear-gradient(160deg, #0a1628 0%, #0d1f3c 50%, #0a1628 100%);
  border-top: 3px solid #1249a8;
  position: relative;
  overflow: hidden;
  margin-top: 80px;

}

.footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 48px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.4fr;
  gap: 48px;
}

/* Brand */

.footer-logo img {
  height: 48px;
  margin-bottom: 16px;

}

.footer-desc {
  font-size: 13.5px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 24px;
  max-width: 260px;
}

.footer-social {
  display: flex;
  gap: 10px;
}

.social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #0056a1;
  text-decoration: none;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
}

.social-link:hover {
  border-color: rgba(255, 255, 255, 0.3);
  color: #ffffff;
  background: rgba(255, 255, 255, 0.06);
}

/* Columnas */


.footer-heading {
  font-size: 12px;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-links a {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.45);
  text-decoration: none;
  transition: color 0.2s;
}

.footer-links a:hover {
  color: #ffffff;
}

/* Contacto */
.footer-contact {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.footer-contact li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.45);
}

.footer-contact svg {
  flex-shrink: 0;
  color: rgba(255, 255, 255, 0.3);
}

.footer-contact a {
  color: rgba(255, 255, 255, 0.45);
  text-decoration: none;
  transition: color 0.2s;
}

.footer-contact a:hover {
  color: #ffffff;
}

/* Bottom bar */
.footer-bottom {
  max-width: 1200px;
  margin: 48px auto 0;
  padding: 20px 48px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.footer-bottom span {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.25);
}

.footer-bottom-links {
  display: flex;
  gap: 24px;
}

.footer-bottom-links a {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.25);
  text-decoration: none;
  transition: color 0.2s;
}

.footer-bottom-links a:hover {
  color: rgba(255, 255, 255, 0.6);
}

.footer::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.012) 0px, rgba(255, 255, 255, 0.012) 1px, transparent 1px, transparent 80px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.012) 0px, rgba(255, 255, 255, 0.012) 1px, transparent 1px, transparent 80px);
  pointer-events: none;
}

.footer-circle {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(18, 73, 168, 0.15);
  pointer-events: none;
}

.footer-circle-1 {
  width: 320px;
  height: 320px;
  top: -100px;
  right: -100px;
}

.footer-circle-2 {
  width: 200px;
  height: 200px;
  bottom: -80px;
  left: -60px;
}

/* Responsive */
@media (max-width: 900px) {
  .footer-inner {
    grid-template-columns: 1fr 1fr;
    gap: 36px;
  }

  .footer-brand {
    grid-column: span 2;
  }
}

@media (max-width: 560px) {
  .footer-inner {
    grid-template-columns: 1fr;
    padding: 0 24px;
  }

  .footer-brand {
    grid-column: span 1;
  }

  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    padding: 20px 24px;
  }
}

.footer-contact li svg {
  stroke: #4a9eff;
}

/* ========================================
   RESPONSIVE
   ======================================== */
@media (max-width: 968px) {
  .nav-menu {
    position: fixed;
    top: 70px;
    left: -100%;
    width: 100%;
    height: calc(100vh - 70px);
    background: white;
    flex-direction: column;
    padding: 2rem;
    transition: left 0.3s ease;
    box-shadow: var(--shadow-md);
  }

  .nav-menu.active {
    left: 0;
  }

  .menu-toggle {
    display: flex;
  }

  .hero-title {
    font-size: 2.5rem;
  }

  .tech-content,
  .service-layout,
  .contact-wrapper {
    grid-template-columns: 1fr;
  }

  .service-layout.reverse .service-content {
    order: 1;
  }

  .service-layout.reverse .service-image {
    order: 2;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  .mission-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .hero-title {
    font-size: 2rem;
  }

  .section-title {
    font-size: 2rem;
  }

  .stats-grid,
  .features-grid,
  .projects-grid,
  .why-grid {
    grid-template-columns: 1fr;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .page-header h1 {
    font-size: 2.5rem;
  }
}

/* CARRUSEL */
/* ================================================
   CARRUSEL DE IMÃGENES - carrusel.css
   Control Audaz 60 S.A. DE C.V.
   ================================================ */

/* Forzar fondo azul en el contenedor padre */
.service-image {
  background: #fcfcfc !important;
  border-radius: 16px;
  padding: 0 !important;
}

.carrusel-container {
  position: relative;
  width: 100%;
  max-width: 490px;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0, 86, 161, 0.18);

}

.carrusel-track {
  position: relative;
  width: 100%;
  height: 380px;
}

.carrusel-slide {
  display: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;

  flex-direction: column;
}

.carrusel-slide.active {
  display: flex;
  align-items: center;
  justify-content: center;
}

.carrusel-slide img {
  width: 100%;
  height: 380px;
  object-fit: contain;
  padding: 20px;
  box-sizing: border-box;

}

/* Texto debajo del carrusel */
.carrusel-caption1 {
  text-align: center;
  color: #ffffff;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 12px 16px;
  background: #0056a1;
}


/* CARRUSEL CONTROL DE ACCESO*/
/* ================================================
   CARRUSEL DE IMÃGENES - carrusel.css
   Control Audaz 60 S.A. DE C.V.
   ================================================ */
/* Slides carrusel 2 */
/* Segundo carrusel fondo oscuro */
#carrusel2 {
  background: #162032;
  box-shadow: 0 8px 32px rgba(26, 26, 46, 0.4);
}

.carrusel-slide2 {
  display: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #162032;
}

.carrusel-slide2.active {
  display: flex;
  align-items: center;
  justify-content: center;
}

.carrusel-slide img,
.carrusel-slide2 img,
.carrusel-slide4 img {
  width: 100%;
  height: 380px;
  object-fit: contain;
  padding: 20px;
  box-sizing: border-box;
}

/* Texto debajo del carrusel */
.carrusel-caption {
  text-align: center;
  color: #162032;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 12px 16px;
  background: #f1f2f3;
}

.carrusel-slide img,
.carrusel-slide2 img,
.carrusel-slide4 img {
  width: 80%;
  height: 380px;
  object-fit: contain;
  padding: 20px;
  box-sizing: border-box;
  transition: transform 0.4s ease;
}

.carrusel-slide img:hover,
.carrusel-slide2 img:hover,
.carrusel-slide4 img:hover {
  transform: scale(1.5);
}

.carrusel-container:hover {
  overflow: visible;
  z-index: 100;
}

/* CARRUSEL REDES */
#carrusel4 {
  background: #0056a1;
  box-shadow: 0 8px 32px rgba(26, 26, 46, 0.4);
}

.carrusel-slide4 {
  display: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #0056a1;
}

.carrusel-slide4.active {
  display: flex;
  align-items: center;
  justify-content: center;
}

.carrusel-caption4 {
  text-align: center;
  color: #0056a1;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 12px 16px;
  background: #f7f8f8;
}

/* CARRUSEL MONITOREO */
#carrusel3 {
  background: #0056a1;
  box-shadow: 0 8px 32px rgba(26, 26, 46, 0.4);
}

.carrusel-slide3 {
  display: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #50555a;
}

.carrusel-slide3.active {
  display: flex;
  align-items: center;
  justify-content: center;
}

.carrusel-caption3 {
  text-align: center;
  color: #f8f9fa;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 12px 16px;
  background: #1a1a1a;

}

#carrusel3 {
  background: #0d1b2a;
  box-shadow: 0 8px 32px rgba(13, 27, 42, 0.5);
}

#carrusel3 .carrusel-slide3 {
  background: #012aa3;
}

#carrusel3 .carrusel-slide3 img {
  width: 90%;
  height: 330px;
  object-fit: cover;
  object-position: center;
  padding: 0;
  transition: transform 0.4s ease;
}

#carrusel3 .carrusel-slide3 img:hover {
  transform: scale(1.08);
}

#carrusel3 .carrusel-caption3 {
  background: #fcfcfd;
  color: #16018b;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-align: center;
  padding: 14px 16px;
}

.iso-scene {
  position: relative;
  width: 560px;
  height: 560px;
  border-radius: 16px;
  overflow: hidden;
}

.iso-bg {
  position: absolute;
  inset: 0;
  border-radius: 16px;
  background:
    radial-gradient(ellipse 90% 70% at 55% 40%, rgba(0, 40, 90, 0.75) 0%, transparent 65%),
    radial-gradient(ellipse 50% 50% at 20% 75%, rgba(0, 20, 60, 0.5) 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 85% 20%, rgba(0, 15, 40, 0.4) 0%, transparent 50%),
    linear-gradient(160deg, #020d1f 0%, #03111e 40%, #020810 70%, #010608 100%);
}

.iso-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 45% at 60% 35%, rgba(0, 80, 160, 0.12) 0%, transparent 60%),
    radial-gradient(ellipse 40% 35% at 30% 60%, rgba(0, 150, 200, 0.07) 0%, transparent 55%),
    radial-gradient(ellipse 30% 25% at 75% 70%, rgba(0, 60, 120, 0.1) 0%, transparent 50%);
  animation: nebulaDrift 12s ease-in-out infinite alternate;
}

@keyframes nebulaDrift {
  0% {
    transform: scale(1) translate(0, 0);
    opacity: 1;
  }

  100% {
    transform: scale(1.06) translate(-8px, 5px);
    opacity: 0.75;
  }
}

.iso-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 16px;
  border: 1px solid rgba(0, 180, 255, 0.12);
  box-shadow:
    inset 0 0 60px rgba(0, 100, 200, 0.07),
    inset 0 0 120px rgba(0, 50, 120, 0.05),
    0 0 40px rgba(0, 100, 200, 0.08),
    0 0 80px rgba(0, 50, 150, 0.06);
}

#particles {
  position: absolute;
  inset: 0;
  border-radius: 16px;
}

.scanlines {
  position: absolute;
  inset: 0;
  border-radius: 16px;
  background: repeating-linear-gradient(0deg, transparent, transparent 3px,
      rgba(0, 200, 255, 0.012) 3px, rgba(0, 200, 255, 0.012) 4px);
  pointer-events: none;
}

.sweep {
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 200, 255, 0.04), transparent);
  animation: sweepAnim 8s ease-in-out infinite;
  pointer-events: none;
}

@keyframes sweepAnim {
  0% {
    left: -60%;
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    left: 120%;
    opacity: 0;
  }
}

.iso-wrapper {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.iso-svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.iso-glow {
  position: absolute;
  bottom: 8%;
  left: 50%;
  transform: translateX(-50%);
  width: 65%;
  height: 35px;
  background: radial-gradient(ellipse, rgba(0, 180, 255, 0.35) 0%, transparent 70%);
  filter: blur(14px);
  pointer-events: none;
  animation: glowPulse 3s ease-in-out infinite;
}

@keyframes glowPulse {

  0%,
  100% {
    opacity: 0.8;
    transform: translateX(-50%) scaleX(1);
  }

  50% {
    opacity: 1;
    transform: translateX(-50%) scaleX(1.1);
  }
}

.corner {
  position: absolute;
  width: 20px;
  height: 20px;
  pointer-events: none;
}

.corner::before,
.corner::after {
  content: '';
  position: absolute;
  background: rgba(0, 200, 255, 0.5);
}

.corner::before {
  width: 100%;
  height: 1.5px;
  top: 0;
  left: 0;
}

.corner::after {
  width: 1.5px;
  height: 100%;
  top: 0;
  left: 0;
}

.corner.tl {
  top: 12px;
  left: 12px;
}

.corner.tr {
  top: 12px;
  right: 12px;
  transform: scaleX(-1);
}

.corner.bl {
  bottom: 12px;
  left: 12px;
  transform: scaleY(-1);
}

.corner.br {
  bottom: 12px;
  right: 12px;
  transform: scale(-1);
}

.clock {
  position: absolute;
  top: 18px;
  right: 18px;
  background: rgba(0, 10, 25, 0.7);
  border: 1px solid rgba(0, 180, 255, 0.2);
  border-radius: 3px;
  padding: 5px 12px;
  font-family: 'Courier New', monospace;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #00d4ff;
  backdrop-filter: blur(4px);
}

.bld-a {
  animation: floatA 5s ease-in-out infinite;
  transform-origin: center bottom;
}

.bld-b {
  animation: floatB 6s ease-in-out infinite 0.8s;
  transform-origin: center bottom;
}

.bld-c {
  animation: floatC 4.5s ease-in-out infinite 1.4s;
  transform-origin: center bottom;
}

@keyframes floatA {

  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(-5px)
  }
}

@keyframes floatB {

  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(-7px)
  }
}

@keyframes floatC {

  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(-4px)
  }
}

.shield-ring {
  transform-origin: 270px 130px;
  animation: shieldPulse 2.5s ease-in-out infinite;
}

.shield-ring2 {
  transform-origin: 270px 130px;
  animation: shieldPulse 2.5s ease-in-out infinite 0.7s;
}

@keyframes shieldPulse {

  0%,
  100% {
    opacity: 0.6;
    transform: scale(1)
  }

  50% {
    opacity: 0.15;
    transform: scale(1.25)
  }
}

.scan-beam {
  transform-origin: 195px 105px;
  animation: scanRotate 4s linear infinite;
}

@keyframes scanRotate {
  from {
    transform: rotate(0deg)
  }

  to {
    transform: rotate(360deg)
  }
}

.orbit-dot {
  transform-origin: 270px 130px;
  animation: orbitSpin 6s linear infinite;
}

.orbit-dot2 {
  transform-origin: 270px 130px;
  animation: orbitSpin 6s linear infinite reverse;
  animation-delay: -3s;
}

@keyframes orbitSpin {
  from {
    transform: rotate(0deg)
  }

  to {
    transform: rotate(360deg)
  }
}

.pkt-1 {
  animation: travel1 3s linear infinite;
}

.pkt-2 {
  animation: travel1 3s linear infinite 1s;
}

.pkt-3 {
  animation: travel2 3.5s linear infinite 0.5s;
}

@keyframes travel1 {
  0% {
    offset-distance: 0%;
    opacity: 0
  }

  5% {
    opacity: 1
  }

  95% {
    opacity: 1
  }

  100% {
    offset-distance: 100%;
    opacity: 0
  }
}

@keyframes travel2 {
  0% {
    offset-distance: 0%;
    opacity: 0
  }

  5% {
    opacity: 1
  }

  95% {
    opacity: 1
  }

  100% {
    offset-distance: 100%;
    opacity: 0
  }
}

.win-blink {
  animation: winBlink 3s ease-in-out infinite;
}

.win-blink2 {
  animation: winBlink 4s ease-in-out infinite 1.2s;
}

.win-blink3 {
  animation: winBlink 2.5s ease-in-out infinite 0.6s;
}

@keyframes winBlink {

  0%,
  100% {
    opacity: 1
  }

  45%,
  55% {
    opacity: 0.2
  }
}

.cam-rotate {
  animation: camScan 5s ease-in-out infinite;
  transform-origin: 155px 230px;
}

@keyframes camScan {

  0%,
  100% {
    transform: rotate(-12deg)
  }

  50% {
    transform: rotate(12deg)
  }
}

.sig-wave {
  animation: sigExpand 2s ease-out infinite;
  transform-origin: 390px 195px;
}

.sig-wave2 {
  animation: sigExpand 2s ease-out infinite 0.65s;
  transform-origin: 390px 195px;
}

.sig-wave3 {
  animation: sigExpand 2s ease-out infinite 1.3s;
  transform-origin: 390px 195px;
}

@keyframes sigExpand {
  0% {
    transform: scale(0.2);
    opacity: 0.8
  }

  100% {
    transform: scale(1.8);
    opacity: 0
  }
}

.grid-line {
  animation: gridGlow 3s ease-in-out infinite;
}

.grid-line:nth-child(2) {
  animation-delay: 0.5s
}

.grid-line:nth-child(3) {
  animation-delay: 1s
}

@keyframes gridGlow {

  0%,
  100% {
    opacity: 0.2
  }

  50% {
    opacity: 0.55
  }
}

.lock-icon {
  animation: lockBounce 4s ease-in-out infinite 2s;
  transform-origin: 270px 80px;
}

@keyframes lockBounce {

  0%,
  90%,
  100% {
    transform: translateY(0) scale(1)
  }

  95% {
    transform: translateY(-8px) scale(1.1)
  }
}

.star {
  animation: starTwinkle var(--dur, 2s) ease-in-out infinite var(--del, 0s);
}

@keyframes starTwinkle {

  0%,
  100% {
    opacity: var(--op, 0.4)
  }

  50% {
    opacity: 0.05
  }
}


@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Geist:wght@300;400;500&display=swap');

:root {
  --ink: #0A0F1E;
  --ink-60: #3D4A5C;
  --ink-40: #6B7A90;
  --ink-10: #D8DEE8;
  --ink-05: #F0F3F7;
  --white: #FFFFFF;
  --blue: #1459C8;
  --blue-mid: #1A6ED4;
  --blue-light: #E8F0FD;
}

.left {
  display: flex;
  flex-direction: column;
  max-width: 560px;
}

/* Eyebrow */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blue-mid);
  margin-bottom: 1.5rem;
  opacity: 0;
  animation: rise 0.6s 0.1s ease forwards;
}

.eyebrow-pip {
  width: 20px;
  height: 1px;
  background: var(--blue-mid);
}

/* Heading */
.heading {
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: 52px;
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: var(--ink);
  margin-bottom: 1.5rem;
  opacity: 0;
  animation: rise 0.6s 0.18s ease forwards;
}

.heading em {
  font-style: italic;
  color: var(--blue);
  position: relative;
}

.heading em::after {
  content: '';
  position: absolute;
  bottom: 2px;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--blue) 0%, transparent 100%);
  border-radius: 2px;
}

/* Body text */
.body-text {
  font-size: 15.5px;
  line-height: 1.8;
  color: var(--ink-60);
  font-weight: 300;
  max-width: 420px;
  margin-bottom: 2.75rem;
  opacity: 0;
  animation: rise 0.6s 0.26s ease forwards;
}

/* Features */
.features {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--ink-10);
  margin-bottom: 2.75rem;
  opacity: 0;
  animation: rise 0.6s 0.34s ease forwards;
}

.feat {
  display: grid;
  grid-template-columns: 52px 1fr 20px;
  align-items: center;
  gap: 18px;
  padding: 18px 12px 18px 4px;
  border-bottom: 1px solid var(--ink-10);
  cursor: default;
  border-radius: 6px;
  position: relative;
  transition: background 0.2s;
}

.feat::before {
  content: '';
  position: absolute;
  left: -4px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  background: var(--blue);
  border-radius: 2px;
  transform: scaleY(0);
  transition: transform 0.22s cubic-bezier(.4, 0, .2, 1);
  transform-origin: bottom;
}

.feat:hover {
  background: rgba(255, 255, 255, 0.7);
}

.feat:hover::before {
  transform: scaleY(1);
}

.feat:hover .feat-icon-wrap {
  background: var(--blue);
  border-color: var(--blue);
}

.feat:hover .feat-icon-wrap svg {
  stroke: #fff;
}

.feat:hover .feat-arrow {
  opacity: 1;
  transform: translateX(0);
}

.feat-icon-wrap {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--white);
  border: 1px solid var(--ink-10);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s, border-color 0.2s;
  box-shadow: 0 1px 3px rgba(10, 15, 30, 0.07);
}

.feat-icon-wrap svg {
  width: 20px;
  height: 20px;
  stroke: var(--blue-mid);
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke 0.2s;
}

.feat-title {
  font-size: 14.5px;
  font-weight: 500;
  color: var(--ink);
  margin-bottom: 3px;
  line-height: 1.3;
}

.feat-desc {
  font-size: 12.5px;
  color: var(--ink-40);
  line-height: 1.55;
  font-weight: 300;
}

.feat-arrow {
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.2s, transform 0.2s;
  color: var(--blue);
  flex-shrink: 0;
}

.feat-arrow svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* CTAs */
.cta-block {
  display: flex;
  flex-direction: column;
  gap: 16px;
  opacity: 0;
  animation: rise 0.6s 0.42s ease forwards;
}

.btn-primary-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 15px 26px;
  font-size: 14px;
  font-family: 'Geist', sans-serif;
  font-weight: 500;
  background: var(--blue);
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s, transform 0.12s, box-shadow 0.2s;
  box-shadow: 0 1px 2px rgba(20, 89, 200, 0.2), 0 4px 18px rgba(20, 89, 200, 0.22);
  width: fit-content;
}

.btn-primary-cta:hover {
  background: #1252B5;
  transform: translateY(-2px);
  box-shadow: 0 2px 4px rgba(20, 89, 200, 0.2), 0 10px 28px rgba(20, 89, 200, 0.3);
}

.btn-primary-cta:active {
  transform: scale(0.98);
}

.btn-icon {
  width: 30px;
  height: 30px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.btn-label {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.btn-label-main {
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
}

.btn-label-sub {
  font-size: 11px;
  font-weight: 300;
  opacity: 0.7;
  margin-top: 3px;
}

.btn-arrow {
  margin-left: auto;
  opacity: 0.6;
}

.btn-arrow svg {
  width: 16px;
  height: 16px;
  transition: transform 0.15s;
}

.btn-primary-cta:hover .btn-arrow svg {
  transform: translateX(3px);
}

.btn-secondary-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 13px 22px;
  font-size: 14px;
  font-family: 'Geist', sans-serif;
  font-weight: 400;
  background: var(--white);
  color: var(--ink);
  border: 1px solid var(--ink-10);
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.12s;
  box-shadow: 0 1px 3px rgba(10, 15, 30, 0.06);
  width: fit-content;
}

.btn-secondary-cta:hover {
  border-color: #A8B4C4;
  box-shadow: 0 4px 16px rgba(10, 15, 30, 0.1);
  transform: translateY(-1px);
}

.sec-icon {
  width: 28px;
  height: 28px;
  background: var(--ink-05);
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.sec-icon svg {
  width: 14px;
  height: 14px;
  stroke: #3D4A5C;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sec-label {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.sec-label-main {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ink);
  line-height: 1;
}

.sec-label-sub {
  font-size: 11px;
  font-weight: 300;
  color: var(--ink-40);
  margin-top: 3px;
}

.sec-count {
  margin-left: 8px;
  font-size: 11px;
  font-weight: 500;
  background: var(--blue-light);
  color: var(--blue);
  padding: 3px 9px;
  border-radius: 20px;
}

/* Animations */
@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* â”€â”€ Technology Section layout â”€â”€ */
.section {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  max-width: 1400px;
  margin: 0 auto;
  padding: 80px 40px;
  gap: 60px;
}

.section .left {
  flex: 1 1 50%;
  max-width: 50%;
}

.section .right {
  flex: 1 1 50%;
  max-width: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.section .right .iso-scene {
  width: 100%;
  max-width: 560px;
}

@media (max-width: 900px) {
  .section {
    flex-direction: column !important;
    padding: 40px 20px;
    gap: 30px;
  }

  .section .left,
  .section .right {
    max-width: 100% !important;
  }
}

/* HERO SERVICIOS */
.page-header {
  position: relative !important;
  background: #003058 !important;
  overflow: hidden !important;
  padding: 90px 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 300px !important;
}

.ph-grad1 {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 100, 220, 0.35) 0%, transparent 70%);
  top: -200px;
  left: -100px;
  pointer-events: none;
}

.ph-grad2 {
  position: absolute;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(26, 122, 191, 0.25) 0%, transparent 70%);
  bottom: -150px;
  right: 50px;
  pointer-events: none;
}

.ph-corner {
  position: absolute;
  width: 20px;
  height: 20px;
  border-color: rgba(255, 255, 255, 0.15);
  border-style: solid;
}

.ph-corner.tl {
  top: 20px;
  left: 20px;
  border-width: 1px 0 0 1px;
}

.ph-corner.tr {
  top: 20px;
  right: 20px;
  border-width: 1px 1px 0 0;
}

.ph-corner.bl {
  bottom: 20px;
  left: 20px;
  border-width: 0 0 1px 1px;
}

.ph-corner.br {
  bottom: 20px;
  right: 20px;
  border-width: 0 1px 1px 0;
}

.ph-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.08;
  pointer-events: none;
}

.ph-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 700px;
}

.ph-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 100px;
  padding: 7px 18px;
  margin-bottom: 24px;
}

.ph-badge-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #4a9eff;
  display: inline-block;
}

.ph-badge span {
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  font-family: sans-serif;
}

.ph-title-main {
  font-family: 'Orbitron', sans-serif;
  font-size: 52px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -2px;
  line-height: 1.05;
}

.ph-title-light {
  font-family: 'Orbitron', sans-serif;
  font-size: 52px;
  font-weight: 200;
  color: rgba(255, 255, 255, 0.3);
  letter-spacing: -2px;
  line-height: 1.05;
  margin-bottom: 20px;
}

.ph-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 20px;
}

.ph-divider-line {
  width: 40px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2));
}

.ph-divider-line.r {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.2), transparent);
}

.ph-divider-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
}

.ph-sub {
  font-size: 14.5px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.8;
  font-family: sans-serif;
  max-width: 480px;
  margin: 0 auto;
}

/* VIDEOVIGILANCIA */
.cam-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 28px;
}

.cam-card {
  background: #fff;
  border: 1px solid #dde6f0;
  border-radius: 12px;
  padding: 18px 16px;
  transition: border-color .2s, transform .2s;
}

.cam-card:hover {
  border-color: #0056a1;
  transform: translateY(-2px);
}

.cam-card-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #e8f0fb;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}

.cam-card-icon svg {
  width: 20px;
  height: 20px;
}

.cam-card h4 {
  font-size: 13.5px;
  font-weight: 600;
  color: #0a1f3d;
  margin-bottom: 4px;
}

.cam-card p {
  font-size: 12px;
  color: #6b7a90;
  line-height: 1.5;
}

.specs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 8px;
  margin-bottom: 24px;
}

.spec-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid #dde6f0;
  border-radius: 8px;
  padding: 10px 12px;
}

.spec-check {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #e8f0fb;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.spec-check svg {
  width: 10px;
  height: 10px;
}

.spec-badge span {
  font-size: 12px;
  color: #0a1f3d;
  font-weight: 500;
}

/* Control de Acceso - Tarjetas */
.feat-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 1.8rem;
}

.feat-card {
  background: #f4f8ff;
  border: 1px solid rgba(0, 86, 161, 0.15);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: border-color 0.2s, transform 0.2s;
}

.feat-card:hover {
  border-color: rgba(0, 86, 161, 0.4);
  transform: translateY(-2px);
}

.feat-icon-wrap {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: linear-gradient(135deg, #e8f0fe, #c7d9f8);
  border: 1px solid rgba(0, 86, 161, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
}

.feat-icon-wrap svg {
  width: 22px;
  height: 22px;
}

.feat-card h4 {
  font-size: 13px;
  font-weight: 700;
  color: #0a1628;
  margin: 0;
}

.feat-card p {
  font-size: 12px;
  color: #5a6e85;
  margin: 0;
  line-height: 1.5;
}

.feat-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  color: #0056a1;
  background: rgba(0, 86, 161, 0.1);
  border-radius: 20px;
  padding: 2px 8px;
  width: fit-content;
}

.sec-sub {
  font-size: 12px;
  font-weight: 700;
  color: #0056a1;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.sec-sub::before {
  content: '';
  width: 3px;
  height: 14px;
  background: #0056a1;
  border-radius: 2px;
}

.funcs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}

.func-item {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f0f6ff;
  border: 1px solid rgba(0, 86, 161, 0.12);
  border-radius: 8px;
  padding: 9px 12px;
  font-size: 12px;
  color: #1e3a5f;
  font-weight: 500;
}

.func-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #0056a1;
  flex-shrink: 0;
}

@keyframes blink {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.2;
  }
}

.live-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.4);
  border-radius: 20px;
  padding: 3px 10px;
  font-size: 11px;
  font-weight: 700;
  color: #f87171;
  letter-spacing: 0.06em;
}

.live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ef4444;
  animation: blink 1s infinite;
  display: inline-block;
}

/* â”€â”€ Section label â”€â”€ */
.label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brand);
  margin-bottom: 6px;
}

#red .section-title {
  font-size: 22px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 24px;
}

/* â”€â”€ Equipment cards â”€â”€ */
.eq-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
  margin-bottom: 48px;
}

.eq-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 16px 18px;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.eq-card:hover {
  border-color: var(--brand-mid);
  box-shadow: 0 2px 12px rgba(0, 86, 161, 0.08);
}

.eq-icon {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 10px;
  background: var(--brand-light);
  display: flex;
  align-items: center;
  justify-content: center;
}

.eq-icon svg {
  width: 20px;
  height: 20px;
}

.eq-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 4px;
}

.eq-desc {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.55;
}

/* â”€â”€ Services â”€â”€ */
.svc-section {
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px 28px 24px;
}

.svc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 10px;
}

.svc-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  color: var(--text-primary);
  line-height: 1.5;
}

.svc-dot {
  width: 7px;
  height: 7px;
  min-width: 7px;
  border-radius: 50%;
  background: var(--brand);
  margin-top: 6px;
}

/* â”€â”€ Divider â”€â”€ */
.divider {
  height: 1px;
  background: var(--border);
  margin: 32px 0;
}

/* ========================================
   MODERN FULL BLEED HERO & NAVIGATION
   ======================================== */
.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  padding: 1.5rem 0;
  background: transparent;
  transition: all 0.4s ease;
  z-index: 1000;
}

.navbar.scrolled {
  background: rgba(10, 20, 35, 0.95);
  backdrop-filter: blur(10px);
  padding: 1rem 0;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  border-bottom: 1px solid rgba(0, 212, 255, 0.1);
}

.nav-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo {
  display: flex;
  align-items: center;
  gap: 15px;
  text-decoration: none;
}

.logo img {
  height: 50px;
}

.logo-text {
  font-family: 'Orbitron', sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 1px;
}

.logo-divider {
  width: 2px;
  height: 35px;
  background: rgba(255, 255, 255, 0.2);
}

.nav-menu {
  display: flex;
  list-style: none;
  gap: 2rem;
  align-items: center;
}

.nav-menu a {
  color: #fff;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 0.85rem;
  position: relative;
}

.nav-menu a::after {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 0;
  height: 2px;
  background: #00d4ff;
  transition: width 0.3s ease;
}

.nav-menu a:hover::after,
.nav-menu a.active::after {
  width: 100%;
}

.btn-contact {
  background: #00aaff;
  color: #fff !important;
  padding: 0.6rem 1.5rem !important;
  border-radius: 4px;
  border: 1px solid #00aaff;
  transition: all 0.3s ease;
}

.btn-contact:hover {
  background: transparent;
  box-shadow: 0 0 15px rgba(0, 170, 255, 0.5);
}

.hero-fullbleed {
  position: relative;
  height: 100vh;
  min-height: 700px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #000;
}

.hero-slides {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
  transform: scale(1.05);
}

.hero-slide.active {
  opacity: 1;
  transform: scale(1);
  transition: opacity 1.5s ease-in-out, transform 8s linear;
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(4, 15, 30, 0.9) 0%, rgba(4, 15, 30, 0.6) 50%, rgba(4, 15, 30, 0.3) 100%);
  z-index: 2;
}

.hero-container {
  position: relative;
  z-index: 3;
  width: 100%;
  padding-top: 80px;
}

.hero-content-center {
  max-width: 800px;
}

.hero-title {
  font-size: 4.5rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

.title-line {
  display: block;
  animation: fadeInUp 0.8s ease forwards;
}

.title-light {
  font-weight: 300;
  color: #aaddff;
}

.hero-subtitle {
  font-size: 1.25rem;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 2.5rem;
  line-height: 1.6;
  max-width: 600px;
  animation: fadeInUp 0.8s ease 0.2s forwards;
  opacity: 0;
}

.hero-buttons {
  display: flex;
  gap: 1rem;
  animation: fadeInUp 0.8s ease 0.4s forwards;
  opacity: 0;
}

.slide-dots {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 3;
}

.slide-dot {
  width: 40px;
  height: 3px;
  background: rgba(255, 255, 255, 0.3);
  cursor: pointer;
  transition: all 0.3s ease;
}

.slide-dot.active {
  background: #00d4ff;
  width: 60px;
}

/* ========================================
   PREMIUM BENTO GRID SECTION
   ======================================== */
.premium-bento-section {
  padding: 100px 0;
  background: #020813;
  color: #fff;
  position: relative;
  overflow: hidden;
}

.bento-header {
  text-align: center;
  margin-bottom: 60px;
}

.bento-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 212, 255, 0.1);
  border: 1px solid rgba(0, 212, 255, 0.3);
  padding: 6px 16px;
  border-radius: 50px;
  font-size: 0.8rem;
  font-weight: 600;
  color: #00d4ff;
  letter-spacing: 1px;
  margin-bottom: 20px;
}

.bento-pulse {
  width: 8px;
  height: 8px;
  background: #00d4ff;
  border-radius: 50%;
  box-shadow: 0 0 10px #00d4ff;
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(0, 212, 255, 0.7);
  }

  70% {
    box-shadow: 0 0 0 10px rgba(0, 212, 255, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(0, 212, 255, 0);
  }
}

.bento-title {
  font-size: 3rem;
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
}

.bento-highlight {
  background: linear-gradient(90deg, #00d4ff, #0056a1);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.bento-subtitle {
  color: #8a9bb3;
  max-width: 600px;
  margin: 0 auto;
  font-size: 1.1rem;
  line-height: 1.6;
}

.bento-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 300px);
  gap: 20px;
}

.bento-box {
  border-radius: 24px;
  position: relative;
  overflow: hidden;
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.bento-box:hover {
  transform: translateY(-5px);
  border-color: rgba(0, 212, 255, 0.3);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
}

.bento-large {
  grid-column: span 2;
  grid-row: span 2;
}

.bento-medium {
  grid-column: span 2;
  grid-row: span 1;
}

.bento-small {
  grid-column: span 1;
  grid-row: span 1;
  background: linear-gradient(135deg, #091526 0%, #030810 100%);
}

.bento-bg-media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  transition: transform 0.6s ease;
}

.bento-box:hover .bento-bg-media {
  transform: scale(1.05);
}

.bento-bg-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bento-overlay-gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to top, #020813 0%, rgba(2, 8, 19, 0.8) 40%, transparent 100%);
  z-index: 2;
}

.bento-content {
  position: relative;
  z-index: 3;
}

.bento-icon-wrapper {
  width: 50px;
  height: 50px;
  background: rgba(0, 212, 255, 0.1);
  border: 1px solid rgba(0, 212, 255, 0.2);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  color: #00d4ff;
  backdrop-filter: blur(5px);
}

.bento-box h3 {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 10px;
}

.bento-large h3 {
  font-size: 2.2rem;
}

.bento-box p {
  color: #aab8cc;
  font-size: 0.95rem;
  line-height: 1.5;
  margin-bottom: 20px;
}

.bento-large p {
  font-size: 1.1rem;
  max-width: 80%;
}

.bento-features-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.bento-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(255, 255, 255, 0.1);
  padding: 5px 12px;
  border-radius: 8px;
  font-size: 0.8rem;
  font-weight: 500;
  backdrop-filter: blur(5px);
}

.bento-tag i {
  width: 14px;
  height: 14px;
  color: #00d4ff;
}

.bento-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #00d4ff;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 1px;
}

.bento-link i {
  width: 16px;
  height: 16px;
  transition: transform 0.3s ease;
}

.bento-link:hover i {
  transform: translateX(5px);
}

.bento-ui-mockup {
  position: absolute;
  top: 40px;
  right: 40px;
  width: 250px;
  background: rgba(10, 20, 35, 0.8);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 212, 255, 0.2);
  border-radius: 12px;
  z-index: 3;
  padding: 15px;
  font-family: 'Orbitron', monospace;
  font-size: 0.7rem;
  color: #00d4ff;
}

.bento-ui-header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(0, 212, 255, 0.2);
}

.bento-ui-status {
  color: #ff3366;
  animation: blink 1s infinite;
}

@keyframes blink {
  50% {
    opacity: 0;
  }
}

.bento-ui-frame {
  position: relative;
  height: 100px;
  border: 1px dashed rgba(0, 212, 255, 0.3);
  display: flex;
  align-items: flex-end;
  padding: 10px;
}

.bento-bounding-box {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 40px;
  height: 40px;
  border: 2px solid #00d4ff;
}

.bento-bounding-box::before,
.bento-bounding-box::after {
  content: '';
  position: absolute;
  width: 6px;
  height: 6px;
  border: 2px solid #00d4ff;
}

.bento-bounding-box::before {
  top: -2px;
  left: -2px;
  border-right: none;
  border-bottom: none;
}

.bento-ui-data {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bento-brands-title {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #8a9bb3;
  margin-bottom: 15px;
}

.bento-brands-grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.bento-brands-grid span {
  font-family: 'Orbitron', sans-serif;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.3);
  transition: color 0.3s ease;
}

.bento-brands-grid span:hover {
  color: #fff;
}

@media (max-width: 1024px) {
  .bento-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .bento-large {
    grid-column: span 2;
  }
}

@media (max-width: 768px) {
  .bento-grid {
    display: flex;
    flex-direction: column;
  }

  .bento-box {
    min-height: 300px;
  }

  .bento-ui-mockup {
    display: none;
  }
}

body {
  margin: 0;
  padding: 0;
}

/* Enterprise Grade Hero & Navbar Overrides */
.hero-fullbleed {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #000;
  margin-top: 0;
}

.hero-slides {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.5s ease-in-out, transform 8s linear;
  transform: scale(1.05);
}

.hero-slide.active {
  opacity: 1;
  transform: scale(1);
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(3, 9, 15, 0.95) 0%, rgba(3, 9, 15, 0.7) 45%, rgba(3, 9, 15, 0.1) 100%);
  z-index: 2;
}

.navbar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 20;
  padding-top: 1.5rem;
  padding-bottom: 0;
  background: transparent;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}

.navbar .container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 2rem;
}

.nav-wrapper {
  display: flex;
  justify-content: flex-start;
  gap: 4rem;
  align-items: center;
  padding: 0.2rem 0 !important;
  /* Overrides styles.css 1rem padding */
}

.logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.logo-img-wrap img {
  height: 30px;
  object-fit: contain;
}

.logo-divider {
  width: 1px;
  height: 20px;
  background: rgba(255, 255, 255, 0.2);
  margin: 0 1.2rem;
}

.logo-text {
  font-family: 'Inter', sans-serif;
  color: #fff;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.5px;
}

.nav-menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
  gap: 3rem;
  flex: 1;
  justify-content: flex-end;
}

.nav-menu a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  text-transform: capitalize;
  letter-spacing: 0.5px;
  transition: color 0.3s;
  position: relative;
  padding-bottom: 0.5rem;
}

.nav-menu a:hover {
  color: #00d4ff;
}

.nav-menu a.active {
  color: #fff;
}

.nav-menu a::after {
  display: none !important;
}

.nav-menu a.btn-contact {
  background: #00aaff;
  color: #fff;
  padding: 0.8rem 1.8rem;
  border-radius: 4px;
  border: none;
  font-weight: 700;
  margin-left: 0.5rem;
  box-shadow: 0 4px 15px rgba(0, 170, 255, 0.2);
  transition: background 0.3s, transform 0.2s;
}

.nav-menu a.btn-contact::after {
  display: none;
}

.nav-menu a.btn-contact:hover {
  background: #0088cc;
  transform: translateY(-2px);
  color: #fff;
}

.hero-container {
  position: relative;
  z-index: 10;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
  width: 100%;
}

.hero-content-center {
  max-width: 750px;
  margin-top: 60px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-title {
  font-family: 'Inter', sans-serif;
  font-size: 4.8rem;
  font-weight: 800;
  line-height: 1.05;
  margin-bottom: 1.5rem;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
  text-transform: none;
}

.title-line {
  display: block;
  color: #fff;
}

.title-light {
  color: #aaddff;
}

.hero-subtitle {
  font-size: 1.15rem;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.6;
  margin-bottom: 2.5rem;
  max-width: 550px;
  font-weight: 400;
}

.hero-buttons .btn-primary {
  background: #fff;
  color: #050f1c;
  text-decoration: none;
  padding: 1.1rem 2.5rem;
  font-weight: 700;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 0.9rem;
  display: inline-block;
  transition: background 0.3s, transform 0.2s;
}

.hero-buttons .btn-primary:hover {
  background: #e0e0e0;
  transform: translateY(-2px);
}

.slide-dots {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: 12px;
}

.slide-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  transition: background 0.3s;
}

.slide-dot.active {
  background: #ffffff;
  width: 8px !important;
}

@media (max-width: 768px) {
  .hero-title {
    font-size: 2.5rem;
  }

  .nav-menu {
    display: none;
  }

  .logo-text {
    font-size: 1rem;
  }
}

/* ========================================
   SOLUTIONS SHOWCASE SECTION
   ======================================== */
.solutions-section {
  background: #ffffff;
  padding: 7rem 2rem;
  max-width: 1300px;
  margin: 0 auto;
}

.solutions-header {
  text-align: center;
  margin-bottom: 3.5rem;
}

.solutions-eyebrow {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #0056a1;
  margin-bottom: 1rem;
}

.solutions-title {
  font-size: 3.5rem;
  font-weight: 800;
  color: #0f172a;
  font-family: 'Inter', sans-serif;
  letter-spacing: -1.5px;
  line-height: 1.1;
  margin-bottom: 1.2rem;
}

.solutions-title em {
  font-style: italic;
  background: linear-gradient(90deg, #0056a1, #00aaff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.solutions-sub {
  font-size: 1.15rem;
  color: #64748b;
  max-width: 600px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Tabs */
.solutions-tabs {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 3rem;
  background: #f1f5f9;
  padding: 6px;
  border-radius: 14px;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

.stab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0.75rem 1.5rem;
  border: none;
  background: transparent;
  border-radius: 10px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  transition: all 0.25s ease;
  font-family: 'Inter', sans-serif;
}

.stab svg {
  width: 22px;
  height: 22px;
  stroke-width: 2px;
}

.stab:hover {
  color: #0f172a;
}

.stab.active {
  background: #ffffff;
  color: #0056a1;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

/* Panels */
.solutions-panels {
  position: relative;
}

.spanel {
  display: none;
  animation: fadeInPanel 0.4s ease;
}

.spanel.active {
  display: block;
}

@keyframes fadeInPanel {
  from {
    opacity: 0;
    transform: translateY(16px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.spanel-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  background: #f8fafc;
  border-radius: 24px;
  padding: 3.5rem;
  border: 1px solid #e2e8f0;
}

.spanel-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #eff6ff;
  color: #0056a1;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 0.4rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.2rem;
  border: 1px solid #bfdbfe;
}

.spanel-badge i {
  width: 14px;
  height: 14px;
}

.spanel-text h3 {
  font-size: 2.2rem;
  font-weight: 800;
  color: #0f172a;
  font-family: 'Inter', sans-serif;
  letter-spacing: -0.5px;
  margin-bottom: 1rem;
}

.spanel-text p {
  font-size: 1.05rem;
  color: #475569;
  line-height: 1.7;
  margin-bottom: 1.8rem;
}

.spanel-features {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.spanel-features li {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-size: 0.97rem;
  color: #334155;
  font-weight: 500;
}

.spanel-features li i {
  width: 18px;
  height: 18px;
  color: #0056a1;
  flex-shrink: 0;
}

.spanel-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #0056a1;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color 0.2s, gap 0.2s;
  padding-bottom: 2px;
}

.spanel-cta:hover {
  border-color: #0056a1;
  gap: 0.8rem;
}

.spanel-cta i {
  width: 16px;
  height: 16px;
  transition: transform 0.2s;
}

.spanel-cta:hover i {
  transform: translateX(4px);
}

/* Stats Grid */
.spanel-visual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.spanel-stat-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 1.5rem;
  border: 1px solid #e2e8f0;
  transition: transform 0.2s, box-shadow 0.2s;
}

.spanel-stat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0, 86, 161, 0.08);
}

.spanel-stat-card.accent {
  background: linear-gradient(135deg, #0056a1 0%, #0077cc 100%);
  border-color: transparent;
}

.spanel-stat-card.accent .stat-number,
.spanel-stat-card.accent .stat-label {
  color: #ffffff;
}

.stat-number {
  font-size: 2.2rem;
  font-weight: 800;
  color: #0f172a;
  font-family: 'Inter', sans-serif;
  letter-spacing: -1px;
  line-height: 1;
  margin-bottom: 0.4rem;
}

.stat-number span {
  font-size: 1.2rem;
  font-weight: 700;
  opacity: 0.7;
}

.stat-label {
  font-size: 0.82rem;
  color: #64748b;
  font-weight: 500;
  line-height: 1.3;
}

@media (max-width: 900px) {
  .spanel-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 2rem;
  }

  .solutions-title {
    font-size: 2.4rem;
  }

  .stab {
    padding: 0.5rem 1rem;
    font-size: 0.85rem;
  }
}

/* ========================================
   SPLIT SCROLL SECTION (APPLE STYLE)
   ======================================== */
.split-scroll-section {
  background-color: #f8fafc;
  /* Fondo clarito ultra-limpio (Slate 50) */
  padding: 0;
  position: relative;
}

.split-container {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  padding: 0 2rem;
  gap: 4rem;
}

.split-text-side {
  flex: 1;
  padding-bottom: 30vh;
  position: relative;
}

.split-text-side::before {
  content: '';
  position: absolute;
  top: 15vh;
  bottom: 40vh;
  left: 24px;
  width: 1px;
  background: #cbd5e1;
  z-index: 0;
}

.scroll-text-step {
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  opacity: 0.2;
  transform: translateY(20px);
  filter: blur(2px) grayscale(100%);
  transition: opacity 0.6s ease, transform 0.6s ease, filter 0.6s ease;
  position: relative;
  z-index: 1;
}

.scroll-text-step.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0) grayscale(0);
}

.step-icon-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: #f1f5f9;
  border-radius: 12px;
  color: #94a3b8;
  box-shadow: none;
  margin-bottom: 1.5rem;
  border: 1px solid transparent;
  transition: all 0.5s ease;
  position: relative;
  z-index: 2;
}

.scroll-text-step.is-visible .step-icon-wrapper {
  background: #ffffff;
  color: var(--primary-color, #0056a1);
  box-shadow: 0 4px 12px rgba(0, 86, 161, 0.1);
  border: 1px solid #e2e8f0;
  animation: floatIcon 3s ease-in-out infinite;
}

@keyframes floatIcon {
  0% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-4px);
  }

  100% {
    transform: translateY(0px);
  }
}

.step-eyebrow {
  font-size: 0.85rem;
  font-weight: 700;
  color: #0056a1;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 0.5rem;
}

.step-title-light {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: #0f172a;
  font-family: 'Inter', sans-serif;
  letter-spacing: -0.5px;
}

.step-desc-light {
  font-size: 1.15rem;
  color: #475569;
  line-height: 1.6;
}

.split-video-side {
  flex: 1;
  position: relative;
}

.sticky-video-wrapper {
  position: sticky;
  top: 15vh;
  height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sticky-video-wrapper video {
  width: 100%;
  max-height: 100%;
  border-radius: 20px;
  object-fit: cover;
  box-shadow: 0 20px 50px rgba(0, 86, 161, 0.1);
}

@media (max-width: 992px) {
  .split-container {
    flex-direction: column;
  }

  .split-video-side {
    display: none;
  }

  .scroll-text-step {
    height: auto;
    padding: 4rem 0;
  }
}

/* ========================================
   ECOSYSTEM BENTO SECTION - Custom Unique Theme
   ======================================== */
.ecosystem-section {
  /* Fondo específico solicitado por el usuario */
  background-color: rgb(110, 102, 109);
  /* Textura única: un grid de puntos futurista sobre el fondo gris */
  background-image: radial-gradient(rgba(255, 255, 255, 0.15) 1px, transparent 1px);
  background-size: 30px 30px;
  color: #ffffff;
  padding: 120px 20px;
  position: relative;
  overflow: hidden;
}

.ecosystem-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at 50% 0%, rgba(0, 86, 161, 0.4) 0%, transparent 70%);
  pointer-events: none;
  z-index: 1;
}

.eco-container {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.eco-header {
  text-align: center;
  margin-bottom: 70px;
}

.eco-eyebrow {
  display: inline-block;
  padding: 6px 18px;
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 20px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(5px);
}

.eco-title {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 800;
  line-height: 1.15;
  margin-bottom: 18px;
  font-family: "Inter", sans-serif;
  color: #ffffff;
  letter-spacing: -0.5px;
  text-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.eco-title span {
  color: #60a5fa;
  /* A bright, legible blue on dark background */
}

.eco-sub {
  font-size: 1.15rem;
  color: #e2e8f0;
  max-width: 620px;
  margin: 0 auto;
  line-height: 1.7;
}

/* Grid */
.bento-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 270px;
  gap: 24px;
}

/* Base card - Gray Theme */
.bento-card {
  /* Tarjetas grises oscuras (Dark Charcoal Gray) para contrastar con el gris medio del fondo */
  background: linear-gradient(135deg, rgba(71, 85, 105, 0.9) 0%, rgba(30, 41, 59, 0.95) 100%);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 24px;
  padding: 35px;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  transition: all 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.bento-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.08) 0%, transparent 60%);
  pointer-events: none;
}

.bento-card:hover {
  transform: translateY(-10px) scale(1.02);
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5), inset 0 0 0 1px rgba(255, 255, 255, 0.2);
  border-color: rgba(96, 165, 250, 0.4);
}

/* Icon bubble */
.bento-icon-wrap {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.bento-icon {
  width: 28px;
  height: 28px;
  color: #60a5fa;
}

/* Iconos en azul claro vibrante */

.bento-content {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.bento-card h3 {
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 12px;
  color: #ffffff;
  line-height: 1.3;
}

.bento-card p {
  font-size: 0.95rem;
  color: #cbd5e1;
  line-height: 1.6;
}

/* Card variants */
.bento-large {
  grid-column: span 5;
  grid-row: span 2;
  /* Un gris aún más profundo para la tarjeta principal */
  background: linear-gradient(145deg, rgba(51, 65, 85, 0.95) 0%, rgba(15, 23, 42, 0.98) 100%);
}

.bento-large h3 {
  font-size: 1.7rem;
}

.bento-large .bento-icon-wrap {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.25);
}

.bento-tall {
  grid-column: span 3;
  grid-row: span 2;
}

.bento-medium {
  grid-column: span 4;
  grid-row: span 1;
}

.bento-wide {
  grid-column: span 7;
  grid-row: span 1;
  /* Gris profundo para la base */
  background: linear-gradient(105deg, rgba(15, 23, 42, 0.98) 0%, rgba(51, 65, 85, 0.95) 100%);
}

.bento-wide h3 {
  font-size: 1.5rem;
}

.flex-row {
  display: flex;
  align-items: center;
  gap: 48px;
  height: 100%;
}

.bento-text-side {
  flex: 1;
}

.bento-visual-side {
  flex-shrink: 0;
}

/* Unique Visuals */
/* Radar rings for IA card */
.ai-scanner {
  position: absolute;
  bottom: -30px;
  right: -30px;
  width: 260px;
  height: 260px;
  pointer-events: none;
}

.radar-ring {
  position: absolute;
  border-radius: 50%;
  border: 1.5px solid rgba(96, 165, 250, 0.3);
  animation: radar-expand 3s ease-out infinite;
}

.radar-ring:nth-child(1) {
  inset: 100px;
  animation-delay: 0s;
}

.radar-ring:nth-child(2) {
  inset: 60px;
  animation-delay: 1s;
}

.radar-ring:nth-child(3) {
  inset: 20px;
  animation-delay: 2s;
}

.ai-scanner::after {
  content: '';
  position: absolute;
  inset: 30px;
  border-radius: 50%;
  border: 1px dashed rgba(255, 255, 255, 0.2);
}

.scanner-line {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border-top: 3px solid #60a5fa;
  animation: spin-slow 3s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes radar-expand {
  0% {
    opacity: 1;
    transform: scale(0.5);
  }

  100% {
    opacity: 0;
    transform: scale(1.1);
  }
}

/* Phone mockup */
.mock-phone {
  position: absolute;
  bottom: -20px;
  right: 24px;
  width: 130px;
  height: 230px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 24px;
  border: 2px solid rgba(255, 255, 255, 0.2);
  padding: 10px 8px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(10px);
}

.mock-screen {
  width: 100%;
  height: 100%;
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px;
  overflow: hidden;
}

.mock-alert {
  width: 100%;
  height: 26px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 6px;
  border-left: 3px solid #60a5fa;
  animation: slideUpFade 3s ease-in-out infinite;
  opacity: 0;
}

.mock-alert.delay-1 {
  animation-delay: 1s;
  border-left-color: #34d399;
}

.mock-alert.delay-2 {
  animation-delay: 2s;
  border-left-color: #f472b6;
}

/* Network pulse */
.pulse-network {
  position: relative;
  width: 180px;
  height: 100px;
}

.node {
  position: absolute;
  width: 14px;
  height: 14px;
  background: #60a5fa;
  border-radius: 50%;
  box-shadow: 0 0 15px rgba(96, 165, 250, 0.6);
}

.node::after {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 2px solid rgba(96, 165, 250, 0.6);
  animation: ping 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.n1 {
  top: 10px;
  left: 0;
}

.n2 {
  bottom: 0;
  left: 80px;
}

.n3 {
  top: 10px;
  right: 0;
}

.n1::after {
  animation-delay: 0s;
}

.n2::after {
  animation-delay: 0.6s;
}

.n3::after {
  animation-delay: 1.2s;
}

.connection {
  position: absolute;
  top: 20px;
  left: 8px;
  width: 80px;
  height: 60px;
  border-bottom: 2px dashed rgba(96, 165, 250, 0.4);
  border-left: 2px dashed rgba(96, 165, 250, 0.4);
  transform: skewX(-15deg);
}

@keyframes spin-slow {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes slideUpFade {
  0% {
    transform: translateY(14px);
    opacity: 0;
  }

  15% {
    transform: translateY(0);
    opacity: 1;
  }

  85% {
    transform: translateY(0);
    opacity: 1;
  }

  100% {
    transform: translateY(-10px);
    opacity: 0;
  }
}

@keyframes ping {

  75%,
  100% {
    transform: scale(2.2);
    opacity: 0;
  }
}

@media (max-width: 1024px) {
  .bento-grid {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 250px;
  }

  .bento-large {
    grid-column: span 6;
    grid-row: span 2;
  }

  .bento-tall {
    grid-column: span 3;
    grid-row: span 2;
  }

  .bento-medium {
    grid-column: span 3;
    grid-row: span 1;
  }

  .bento-wide {
    grid-column: span 6;
    grid-row: span 1;
  }
}

@media (max-width: 640px) {
  .bento-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
  }

  .bento-large,
  .bento-tall,
  .bento-medium,
  .bento-wide {
    grid-column: span 1;
    grid-row: auto;
    min-height: 280px;
  }

  .flex-row {
    flex-direction: column;
    gap: 24px;
  }

  .bento-text-side {
    max-width: 100%;
  }

  .bento-visual-side,
  .mock-phone,
  .ai-scanner {
    display: none;
  }
}

/* ============================================================
   Control Audaz 60 — Sección "¿Por qué elegirnos?"
   Versión: 1.0
   Fuentes requeridas (Google Fonts):
   Bebas Neue (títulos) + Manrope 300/400/500/600/700/800 (cuerpo)
   ============================================================ */

/* ---------- Reset base ---------- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* ---------- Variables ---------- */
:root {
  --ca-bg: #f2f1ee;
  --ca-bg-white: #ffffff;
  --ca-bg-hover: #ebebea;
  --ca-border: #d4d3cf;
  --ca-border-light: #e0dfd9;
  --ca-icon-bg: #f0efeb;
  --ca-icon-active: #e8edf8;
  --ca-text-primary: #111111;
  --ca-text-muted: #555555;
  --ca-text-faint: #888888;
  --ca-text-ghost: #aaaaaa;
  --ca-text-label: #bbbbbb;
  --ca-accent: #1a3fa0;
  --ca-accent-light: #4a7fff;
  --ca-font-display: 'Bebas Neue', sans-serif;
  --ca-font-body: 'Manrope', sans-serif;
  --ca-radius-sm: 6px;
  --ca-radius-md: 10px;
  --ca-radius-pill: 100px;
  --ca-transition: 0.25s ease;
}

/* ---------- Section wrapper ---------- */
.ca-section {
  background: var(--ca-bg);
  font-family: var(--ca-font-body);
  overflow: hidden;
  width: 100%;
}


/* ============================================================
   HERO
   ============================================================ */
.ca-hero {
  padding: 80px 48px 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--ca-border);
}

.ca-hero-left {
  flex: 1;
}

.ca-eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--ca-text-faint);
  margin-bottom: 20px;
}

.ca-hero-title {
  font-family: var(--ca-font-display);
  font-size: clamp(42px, 6vw, 72px);
  line-height: 0.9;
  color: #4a4a4a;
  margin-bottom: 32px;
  letter-spacing: -1px;
}

.ca-hero-title em {
  color: var(--ca-accent);
  font-style: normal;
}

.ca-hero-right {
  max-width: 340px;
  padding-bottom: 40px;
}

.ca-hero-desc {
  font-size: 15px;
  font-weight: 300;
  color: var(--ca-text-muted);
  line-height: 1.8;
  margin-bottom: 24px;
}

/* CTA buttons */
.ca-cta-row {
  display: flex;
  align-items: center;
  gap: 16px;
}

.ca-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #50555a;
  color: #ffffff;
  padding: 14px 28px;
  border-radius: var(--ca-radius-pill);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  border: none;
  letter-spacing: 0.3px;
  transition: background var(--ca-transition);
  font-family: var(--ca-font-body);
}

.ca-btn-primary:hover {
  background: var(--ca-accent);
}

.ca-btn-ghost {
  font-size: 13px;
  color: var(--ca-text-faint);
  text-decoration: none;
  cursor: pointer;
  font-weight: 500;
  border: none;
  background: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color var(--ca-transition);
  font-family: var(--ca-font-body);
}

.ca-btn-ghost:hover {
  color: var(--ca-text-primary);
}


/* ============================================================
   TICKER
   ============================================================ */
.ca-ticker {
  background: #50555a;
  color: #FFFFFF;
  padding: 12px 0;
  overflow: hidden;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  user-select: none;
}

.ca-ticker-inner {
  display: inline-flex;
  animation: ca-ticker-scroll 18s linear infinite;
}

.ca-ticker-item {
  padding: 0 32px;
  opacity: 0.7;
}

.ca-ticker-item span {
  color: var(--ca-accent-light);
  opacity: 1;
}

@keyframes ca-ticker-scroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}


/* ============================================================
   MAIN — dos columnas
   ============================================================ */
.ca-main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 520px;
}

/* ---------- Columna izquierda (sticky) ---------- */
.ca-sticky-col {
  position: sticky;
  top: 0;
  height: 100vh;
  max-height: 520px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 48px;
  border-right: 1px solid var(--ca-border);
  background: var(--ca-bg);
}

/* Barra de progreso */
.ca-progress-wrap {
  margin-bottom: 20px;
}

.ca-progress-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--ca-text-label);
  margin-bottom: 16px;
}

.ca-progress-line {
  width: 100%;
  height: 1px;
  background: var(--ca-border-light);
  position: relative;
  overflow: hidden;
  margin-bottom: 8px;
}

.ca-progress-fill {
  height: 100%;
  background: var(--ca-accent);
  width: 16.6%;
  /* empieza en 1/6 */
  transition: width 0.5s ease;
}

.ca-progress-labels {
  font-size: 11px;
  color: var(--ca-text-ghost);
  display: flex;
  justify-content: space-between;
}

/* Nav items */
.ca-feature-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
  list-style: none;
}

.ca-nav-item {
  padding: 14px 20px;
  border-radius: var(--ca-radius-md);
  cursor: pointer;
  transition: all var(--ca-transition);
  font-size: 14px;
  font-weight: 500;
  color: #999999;
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid transparent;
  text-align: left;
  background: none;
  font-family: var(--ca-font-body);
  width: 100%;
}

.ca-nav-item:hover {
  color: var(--ca-text-primary);
  background: var(--ca-bg-hover);
}

.ca-nav-item.active {
  background: var(--ca-bg-white);
  border-color: var(--ca-border-light);
  color: var(--ca-text-primary);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.ca-nav-bar {
  width: 3px;
  height: 0;
  background: var(--ca-accent);
  border-radius: 2px;
  flex-shrink: 0;
  transition: height 0.4s ease;
}

.ca-nav-item.active .ca-nav-bar {
  height: 32px;
}

.ca-nav-num {
  font-family: var(--ca-font-display);
  font-size: 20px;
  color: #cccccc;
  transition: color var(--ca-transition);
  min-width: 24px;
  line-height: 1;
}

.ca-nav-item.active .ca-nav-num {
  color: var(--ca-accent);
}


/* ---------- Columna derecha (panels) ---------- */
.ca-panels-col {
  display: flex;
  flex-direction: column;
}

.ca-panel {
  padding: 48px;
  border-bottom: 1px solid var(--ca-border);
  min-height: 87px;
  /* colapsado */
  display: flex;
  flex-direction: column;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s ease;
  position: relative;
  overflow: hidden;
}

/* Borde izquierdo animado */
.ca-panel::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 3px;
  height: 0;
  background: var(--ca-accent);
  transition: height 0.4s ease;
}

.ca-panel.active {
  background: var(--ca-bg-white);
}

.ca-panel.active::before {
  height: 100%;
}

.ca-panel:hover:not(.active) {
  background: var(--ca-bg-hover);
}

/* Cabecera del panel */
.ca-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.ca-panel-icon {
  width: 40px;
  height: 40px;
  border-radius: var(--ca-radius-md);
  background: var(--ca-icon-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: var(--ca-accent);
  flex-shrink: 0;
  transition: background var(--ca-transition);
}

.ca-panel.active .ca-panel-icon {
  background: var(--ca-icon-active);
}

.ca-panel-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ca-text-ghost);
  margin-bottom: 4px;
  transition: color var(--ca-transition);
}

.ca-panel.active .ca-panel-tag {
  color: var(--ca-accent);
}

.ca-panel-title {
  font-family: var(--ca-font-display);
  font-size: 28px;
  color: var(--ca-text-primary);
  letter-spacing: 0.5px;
  line-height: 1;
}

/* Contenido expandible */
.ca-panel-expand {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.45s ease, opacity 0.3s ease;
}

.ca-panel.active .ca-panel-expand {
  max-height: 300px;
  opacity: 1;
}

.ca-panel-desc {
  font-size: 14px;
  font-weight: 300;
  color: var(--ca-text-muted);
  line-height: 1.8;
  margin-top: 16px;
}

/* Métricas dentro del panel */
.ca-panel-metrics {
  display: flex;
  gap: 24px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--ca-border-light);
  flex-wrap: wrap;
}

.ca-metric-item {
  text-align: left;
}

.ca-metric-num {
  font-family: var(--ca-font-display);
  font-size: 36px;
  color: var(--ca-text-primary);
  line-height: 1;
}

.ca-metric-num span {
  color: var(--ca-accent);
}

.ca-metric-label {
  font-size: 11px;
  color: var(--ca-text-faint);
  margin-top: 2px;
  font-weight: 500;
  letter-spacing: 0.3px;
}


/* ============================================================
   FOOTER INFERIOR (3 columnas de datos)
   ============================================================ */
.ca-bottom {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--ca-border);
}

.ca-bottom-cell {
  padding: 32px 40px;
  border-right: 1px solid var(--ca-border);
}

.ca-bottom-cell:last-child {
  border-right: none;
}

.ca-cell-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--ca-text-label);
  margin-bottom: 12px;
}

.ca-cell-val {
  font-family: var(--ca-font-display);
  font-size: 42px;
  color: var(--ca-text-primary);
  line-height: 1;
  margin-bottom: 6px;
}

.ca-cell-val em {
  color: var(--ca-accent);
  font-style: normal;
}

.ca-cell-sub {
  font-size: 12px;
  color: var(--ca-text-faint);
  font-weight: 400;
  line-height: 1.5;
}

/* Badges de certificaciones */
.ca-cert-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.ca-cert {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  padding: 4px 10px;
  border-radius: var(--ca-radius-sm);
  background: var(--ca-text-primary);
  color: var(--ca-bg);
  text-transform: uppercase;
}

.ca-cert--blue {
  background: var(--ca-accent);
}


/* ============================================================
   RESPONSIVE — tablet y mobile
   ============================================================ */
@media (max-width: 960px) {
  .ca-hero {
    flex-direction: column;
    align-items: flex-start;
    padding: 56px 32px 0;
  }

  .ca-hero-right {
    max-width: 100%;
    padding-bottom: 32px;
  }

  .ca-main {
    grid-template-columns: 1fr;
  }

  .ca-sticky-col {
    position: relative;
    height: auto;
    max-height: none;
    padding: 32px;
    border-right: none;
    border-bottom: 1px solid var(--ca-border);
  }

  .ca-panel {
    padding: 32px;
  }

  .ca-bottom {
    grid-template-columns: 1fr;
  }

  .ca-bottom-cell {
    border-right: none;
    border-bottom: 1px solid var(--ca-border);
  }

  .ca-bottom-cell:last-child {
    border-bottom: none;
  }
}

@media (max-width: 600px) {
  .ca-hero {
    padding: 40px 24px 0;
  }

  .ca-hero-title {
    font-size: 64px;
  }

  .ca-sticky-col {
    padding: 24px;
  }

  .ca-panel {
    padding: 24px;
  }

  .ca-bottom-cell {
    padding: 24px;
  }

  .ca-cta-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .ca-panel-metrics {
    gap: 16px;
  }
}

/* ========================================
   FAQ SECTION - Premium Accordion
   ======================================== */
.faq-section {
  background: #0f172a;
  padding: 110px 20px;
  position: relative;
  overflow: hidden;
}

.faq-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 900px;
  height: 400px;
  background: radial-gradient(ellipse at center top, rgba(0, 86, 161, 0.2) 0%, transparent 70%);
  pointer-events: none;
}

.faq-container {
  max-width: 860px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

/* Header */
.faq-header {
  text-align: center;
  margin-bottom: 52px;
}

.faq-eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #60a5fa;
  margin-bottom: 16px;
  padding: 5px 14px;
  border: 1px solid rgba(96, 165, 250, 0.25);
  border-radius: 20px;
  background: rgba(96, 165, 250, 0.05);
}

.faq-title {
  font-family: 'Inter', sans-serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 800;
  color: #ffffff;
  line-height: 1.15;
  letter-spacing: -0.5px;
  margin-bottom: 16px;
}

.faq-title span {
  background: linear-gradient(to right, #60a5fa, #38bdf8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.faq-sub {
  font-size: 1.05rem;
  color: #94a3b8;
  line-height: 1.7;
  max-width: 600px;
  margin: 0 auto;
}

/* Filter Pills */
.faq-filters {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

.faq-filter {
  padding: 8px 20px;
  border-radius: 100px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: transparent;
  color: #94a3b8;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  font-family: 'Inter', sans-serif;
  letter-spacing: 0.3px;
}

.faq-filter:hover {
  border-color: rgba(96, 165, 250, 0.4);
  color: #e2e8f0;
}

.faq-filter.active {
  background: #0056a1;
  border-color: #0056a1;
  color: #ffffff;
  box-shadow: 0 0 20px rgba(0, 86, 161, 0.3);
}

/* FAQ List */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 48px;
}

/* FAQ Item */
.faq-item {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  overflow: hidden;
  transition: border-color 0.3s ease, background 0.3s ease;
}

.faq-item:hover {
  border-color: rgba(96, 165, 250, 0.2);
  background: rgba(255, 255, 255, 0.06);
}

.faq-item.is-open {
  border-color: rgba(0, 86, 161, 0.4);
  background: rgba(0, 86, 161, 0.06);
}

/* Question button */
.faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 28px;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: 'Inter', sans-serif;
}

.faq-q-text {
  font-size: 1rem;
  font-weight: 600;
  color: #e2e8f0;
  line-height: 1.4;
  transition: color 0.25s ease;
}

.faq-item.is-open .faq-q-text {
  color: #60a5fa;
}

/* + / - icon */
.faq-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  position: relative;
}

.faq-icon::before,
.faq-icon::after {
  content: '';
  position: absolute;
  background: #94a3b8;
  border-radius: 2px;
  transition: all 0.35s cubic-bezier(0.22, 0.68, 0, 1.2);
}

/* horizontal bar */
.faq-icon::before {
  width: 12px;
  height: 1.5px;
}

/* vertical bar */
.faq-icon::after {
  width: 1.5px;
  height: 12px;
}

.faq-item.is-open .faq-icon {
  border-color: rgba(0, 86, 161, 0.5);
  background: rgba(0, 86, 161, 0.15);
}

.faq-item.is-open .faq-icon::before,
.faq-item.is-open .faq-icon::after {
  background: #60a5fa;
}

.faq-item.is-open .faq-icon::after {
  transform: rotate(90deg);
  opacity: 0;
}

/* Answer */
.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.is-open .faq-a {
  max-height: 300px;
}

.faq-a p {
  padding: 0 28px 22px;
  font-size: 0.95rem;
  color: #94a3b8;
  line-height: 1.75;
}

.faq-a p strong {
  color: #cbd5e1;
  font-weight: 600;
}

/* Hidden items */
.faq-item.faq-hidden {
  display: none;
}

/* CTA Bar */
.faq-cta-wrap {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px 32px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(8px);
  flex-wrap: wrap;
}

.faq-cta-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: rgba(0, 86, 161, 0.15);
  border: 1px solid rgba(0, 86, 161, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #60a5fa;
  flex-shrink: 0;
}

.faq-cta-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.faq-cta-text strong {
  font-size: 0.95rem;
  font-weight: 700;
  color: #e2e8f0;
  font-family: 'Inter', sans-serif;
}

.faq-cta-text span {
  font-size: 0.85rem;
  color: #64748b;
}

.faq-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: #0056a1;
  color: #ffffff;
  border-radius: 100px;
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  font-family: 'Inter', sans-serif;
  transition: all 0.25s ease;
  white-space: nowrap;
  box-shadow: 0 0 24px rgba(0, 86, 161, 0.2);
}

.faq-cta-btn:hover {
  background: #003d73;
  box-shadow: 0 0 32px rgba(0, 86, 161, 0.4);
  transform: translateY(-2px);
}

@media (max-width: 600px) {
  .faq-q {
    padding: 18px 20px;
  }

  .faq-a p {
    padding: 0 20px 18px;
  }

  .faq-cta-wrap {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
  }

  .faq-cta-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ========================================
   FLOATING ACTION BUTTONS (FAB)
   ======================================== */

/* Base compartida */
.fab {
  position: fixed;
  right: 24px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: none;
  z-index: 9999;
  transition: transform 0.3s cubic-bezier(0.22, 0.68, 0, 1.4),
    box-shadow 0.3s ease,
    opacity 0.3s ease;
  text-decoration: none;
  outline: none;
}

.fab svg {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
}

/* ── WhatsApp ───────────────────────────── */
.fab-whatsapp {
  bottom: 100px;
  /* encima del botón de arriba */
  background: #25d366;
  color: #ffffff;
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4);
  /* Pequeña animación de pulso al entrar */
  animation: fab-pulse 2.5s ease-in-out infinite;
}

.fab-whatsapp:hover {
  transform: scale(1.12) rotate(-5deg);
  box-shadow: 0 16px 40px rgba(37, 211, 102, 0.55);
  animation: none;
}

/* Tooltip */
.fab-tooltip {
  position: absolute;
  right: 68px;
  white-space: nowrap;
  background: #1a1a1a;
  color: #ffffff;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 8px;
  pointer-events: none;
  opacity: 0;
  transform: translateX(6px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  font-family: 'Inter', sans-serif;
}

.fab-tooltip::after {
  content: '';
  position: absolute;
  right: -6px;
  top: 50%;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-left-color: #1a1a1a;
  border-right: none;
}

.fab-whatsapp:hover .fab-tooltip {
  opacity: 1;
  transform: translateX(0);
}

/* ── Scroll to Top ─────────────────────── */
.fab-top {
  bottom: 28px;
  background: #0056a1;
  color: #ffffff;
  box-shadow: 0 8px 24px rgba(0, 86, 161, 0.35);
  /* Oculto por defecto */
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px) scale(0.8);
}

.fab-top.fab-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

.fab-top:hover {
  transform: translateY(-4px) scale(1.08);
  box-shadow: 0 16px 40px rgba(0, 86, 161, 0.5);
}

/* Pulso del WhatsApp */
@keyframes fab-pulse {

  0%,
  100% {
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4);
  }

  50% {
    box-shadow: 0 8px 36px rgba(37, 211, 102, 0.65), 0 0 0 8px rgba(37, 211, 102, 0.1);
  }
}

/* Móvil: hacerlos un poco más pequeños */
@media (max-width: 600px) {
  .fab {
    width: 50px;
    height: 50px;
    right: 16px;
  }

  .fab-whatsapp {
    bottom: 88px;
  }

  .fab-top {
    bottom: 22px;
  }

  .fab-tooltip {
    display: none;
  }
}

/* ========================================
   SITE FOOTER – Enterprise Grade
   ======================================== */

/* ── Pre-footer CTA Band ─────────────────── */
.sf-cta-band {
  background: #0056a1;
  background-image: radial-gradient(ellipse at 80% 50%, rgba(96, 165, 250, 0.15) 0%, transparent 60%);
  padding: 72px 32px;
  position: relative;
  overflow: hidden;
}

.sf-cta-band::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}

.sf-cta-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
}

.sf-cta-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 14px;
  font-family: 'Inter', sans-serif;
}

.sf-cta-title {
  font-family: 'Inter', sans-serif;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 800;
  color: #ffffff;
  line-height: 1.2;
  letter-spacing: -0.5px;
}

.sf-cta-title em {
  font-style: normal;
  color: #93c5fd;
}

.sf-cta-right {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  flex-shrink: 0;
}

.sf-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 14px 28px;
  border-radius: 100px;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  font-family: 'Inter', sans-serif;
  transition: all 0.25s ease;
  cursor: pointer;
  border: none;
  white-space: nowrap;
}

.sf-btn-primary {
  background: #ffffff;
  color: #0056a1;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.sf-btn-primary:hover {
  background: #f0f7ff;
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.2);
}

.sf-btn-ghost {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.25);
  backdrop-filter: blur(6px);
}

.sf-btn-ghost:hover {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.5);
  transform: translateY(-2px);
}

/* ── Body ──────────────────────────────── */
.sf-body {
  background: #0a0f1a;
  padding: 80px 32px 56px;
}

.sf-body-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.4fr;
  gap: 60px;
}

/* Columna marca */
.sf-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}

.sf-logo {
  border-radius: 12px;
  object-fit: contain;
  background: rgba(255, 255, 255, 0.04);
  padding: 4px;
}

.sf-brand-name {
  font-family: 'Inter', sans-serif;
  font-size: 1.05rem;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: 0.5px;
  line-height: 1.2;
}

.sf-brand-legal {
  display: block;
  font-size: 0.7rem;
  font-weight: 400;
  color: #64748b;
  letter-spacing: 1px;
}

.sf-brand-desc {
  font-size: 0.88rem;
  color: #64748b;
  line-height: 1.75;
  margin-bottom: 22px;
  font-family: 'Inter', sans-serif;
}

/* Certs */
.sf-cert-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 24px;
}

.sf-cert {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 1px;
  padding: 4px 9px;
  border-radius: 5px;
  background: #1e293b;
  color: #94a3b8;
  text-transform: uppercase;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.sf-cert-blue {
  background: rgba(0, 86, 161, 0.25);
  color: #60a5fa;
  border-color: rgba(0, 86, 161, 0.3);
}

/* Social */
.sf-social {
  display: flex;
  gap: 10px;
}

.sf-social-link {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  text-decoration: none;
  transition: all 0.25s ease;
}

.sf-social-link svg {
  width: 16px;
  height: 16px;
}

.sf-social-link:hover {
  background: #0056a1;
  border-color: #0056a1;
  color: #ffffff;
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 86, 161, 0.3);
}

/* Columnas nav */
.sf-col-title {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #94a3b8;
  margin-bottom: 20px;
}

.sf-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.sf-links a {
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  color: #475569;
  text-decoration: none;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  gap: 6px;
}

.sf-links a::before {
  content: '';
  display: inline-block;
  width: 0;
  height: 1px;
  background: #0056a1;
  transition: width 0.25s ease;
  vertical-align: middle;
}

.sf-links a:hover {
  color: #e2e8f0;
}

.sf-links a:hover::before {
  width: 14px;
}

/* Columna contacto */
.sf-contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 28px;
}

.sf-contact-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.sf-contact-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #60a5fa;
  flex-shrink: 0;
}

.sf-contact-icon svg {
  width: 15px;
  height: 15px;
}

.sf-contact-label {
  display: block;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 3px;
  font-family: 'Inter', sans-serif;
}

.sf-contact-val {
  font-size: 0.88rem;
  color: #cbd5e1;
  font-family: 'Inter', sans-serif;
  text-decoration: none;
  transition: color 0.2s ease;
}

a.sf-contact-val:hover {
  color: #60a5fa;
}

/* Partners */
.sf-brands-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #334155;
  margin-bottom: 10px;
  font-family: 'Inter', sans-serif;
}

.sf-brands-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.sf-brand-pill {
  font-size: 0.72rem;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.04);
  color: #475569;
  border: 1px solid rgba(255, 255, 255, 0.07);
  font-family: 'Inter', sans-serif;
  letter-spacing: 0.3px;
}

/* ── Divider ──────────────────────────── */
.sf-divider-wrap {
  background: #0a0f1a;
  padding: 0 32px;
}

.sf-divider-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.sf-divider {
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.06) 20%, rgba(255, 255, 255, 0.06) 80%, transparent);
}

/* ── Bottom bar ───────────────────────── */
.sf-bottom {
  background: #0a0f1a;
  padding: 24px 32px;
}

.sf-bottom-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.sf-copy {
  font-size: 0.8rem;
  color: #334155;
  font-family: 'Inter', sans-serif;
}

.sf-legal-nav {
  display: flex;
  gap: 24px;
}

.sf-legal-nav a {
  font-size: 0.78rem;
  color: #334155;
  text-decoration: none;
  font-family: 'Inter', sans-serif;
  transition: color 0.2s ease;
}

.sf-legal-nav a:hover {
  color: #60a5fa;
}

.sf-made {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.78rem;
  color: #334155;
  font-family: 'Inter', sans-serif;
}

.sf-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}

.sf-dot-green {
  background: #22c55e;
  box-shadow: 0 0 8px rgba(34, 197, 94, 0.6);
  animation: dot-pulse 2s ease-in-out infinite;
}

@keyframes dot-pulse {

  0%,
  100% {
    box-shadow: 0 0 6px rgba(34, 197, 94, 0.5);
  }

  50% {
    box-shadow: 0 0 14px rgba(34, 197, 94, 0.9);
  }
}

/* ── Responsive ───────────────────────── */
@media (max-width: 1024px) {
  .sf-body-inner {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }

  .sf-col-brand {
    grid-column: span 2;
  }
}

@media (max-width: 640px) {
  .sf-cta-inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .sf-body-inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .sf-col-brand {
    grid-column: span 1;
  }

  .sf-bottom-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .sf-legal-nav {
    flex-wrap: wrap;
    gap: 14px;
  }

  .sf-cta-right {
    flex-direction: column;
    width: 100%;
  }

  .sf-btn {
    justify-content: center;
  }
}

/* ── Hero con videos de fondo (servicios.html) ── */
.svc-vid-slide {
  /* Hereda .hero-slide (position absolute, opacity 0, transition) */
  background: #000;
}

.svc-vid-slide video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.svc-img-slide.active {
  opacity: 1 !important;
}

.slide-dot.active {
  background: #0056a1 !important;
  transform: scale(1.3);
  box-shadow: 0 0 8px rgba(0, 86, 161, 0.6);
}

/* Hover efecto en tarjetas */
.svc-card-premium:hover {
  transform: translateY(-6px) scale(1.015);
  box-shadow: 0 20px 50px rgba(0, 86, 161, 0.18), 0 0 0 1px rgba(0, 86, 161, 0.3) inset;
  border-color: #a8c8e8 !important;
}

/* Link "Ver servicio" */
.svc-ver-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Inter', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  color: #0056a1;
  text-decoration: none;
  letter-spacing: 0.3px;
  transition: gap 0.25s ease, color 0.2s ease;
}

.svc-ver-link:hover {
  color: #1a78cc;
  gap: 10px;
}

.svc-ver-link .svc-arrow {
  transition: transform 0.25s ease;
  flex-shrink: 0;
}

.svc-ver-link:hover .svc-arrow {
  transform: translateX(4px);
}

/* Variante para fondo oscuro (tarjeta CCTV) */
.svc-ver-link--light {
  color: rgba(255, 255, 255, 0.7);
}

.svc-ver-link--light:hover {
  color: #ffffff;
}


/* Animación de la línea scan (tarjeta CCTV) */
@keyframes scanMove {
  0% {
    transform: translateY(0);
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    transform: translateY(-200px);
    opacity: 0;
  }
}

.svc-scan-line {
  animation: scanMove 4s ease-in-out infinite;
}

/* Parpadeado del punto live */
@keyframes svcLivePulse {

  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 0.3;
    transform: scale(0.7);
  }
}

.svc-live-pulse {
  animation: svcLivePulse 1.4s ease-in-out infinite;
}

/* Entrada animada de tarjetas */
@keyframes svcCardIn {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.svc-card-premium {
  opacity: 0;
  animation: svcCardIn 0.65s ease forwards;
}

.svc-card-premium[data-index="0"] {
  animation-delay: 0.05s;
}

.svc-card-premium[data-index="1"] {
  animation-delay: 0.15s;
}

.svc-card-premium[data-index="2"] {
  animation-delay: 0.22s;
}

.svc-card-premium[data-index="3"] {
  animation-delay: 0.30s;
}

.svc-card-premium[data-index="4"] {
  animation-delay: 0.38s;
}

/* Responsive */
@media (max-width: 1024px) {
  #svcCardsGrid {
    grid-template-columns: repeat(6, 1fr) !important;
  }

  #svcCardsGrid .svc-card-premium[data-index="0"] {
    grid-column: 1 / 7 !important;
    grid-row: 1 / 2 !important;
    min-height: 340px !important;
  }

  #svcCardsGrid .svc-card-premium[data-index="1"] {
    grid-column: 1 / 4 !important;
    grid-row: 2 / 3 !important;
  }

  #svcCardsGrid .svc-card-premium[data-index="2"] {
    grid-column: 4 / 7 !important;
    grid-row: 2 / 3 !important;
  }

  #svcCardsGrid .svc-card-premium[data-index="3"] {
    grid-column: 1 / 7 !important;
    grid-row: 3 / 4 !important;
  }

  #svcCardsGrid .svc-card-premium[data-index="4"] {
    grid-column: 1 / 7 !important;
    grid-row: 4 / 5 !important;
  }
}

@media (max-width: 768px) {
  #svcCardsGrid {
    grid-template-columns: 1fr !important;
  }

  #svcCardsGrid .svc-card-premium {
    grid-column: 1 / 2 !important;
    grid-row: auto !important;
    min-height: 200px !important;
  }

  #svcCardsGrid .svc-card-premium[data-index="3"]>div {
    flex-direction: column !important;
    gap: 20px !important;
  }

  #svcCardsGrid .svc-card-premium[data-index="3"]>div>div:last-child {
    flex-direction: row !important;
    padding-left: 0 !important;
    border-left: none !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
    padding-top: 16px !important;
    gap: 30px !important;
  }
}

/* ========================================
   CCTV AND SURVEILLANCE ECOSYSTEM SECTION
   ======================================== */
.cctv-section {
  position: relative;
  overflow: hidden;
  padding: 100px 0;
  background: #ffffff;
}

/* Background elements for premium aesthetic */
.cctv-bg-orb {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  filter: blur(80px);
}

.cctv-bg-orb-1 {
  top: -100px;
  left: -200px;
  background: radial-gradient(circle, rgba(0, 86, 161, 0.04) 0%, transparent 70%);
}

.cctv-bg-orb-2 {
  bottom: -150px;
  right: -200px;
  background: radial-gradient(circle, rgba(55, 138, 221, 0.05) 0%, transparent 70%);
}

/* Badges */
.cctv-badge-container {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.cctv-badge {
  font-family: 'Inter', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 30px;
  background: #eef4fb;
  border: 1px solid #c8ddf0;
  color: #0056a1;
}

/* Tabs */
.cctv-tabs-nav {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 0 auto 50px;
  max-width: 900px;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
}

.cctv-tab-btn {
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  color: #4a6080;
  background: #ffffff;
  border: 1px solid #dce8f5;
  padding: 12px 24px;
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 8px rgba(0, 86, 161, 0.03);
}

.cctv-tab-btn svg {
  transition: transform 0.3s ease;
}

.cctv-tab-btn:hover {
  border-color: #0056a1;
  color: #0056a1;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 86, 161, 0.08);
}

.cctv-tab-btn:hover svg {
  transform: scale(1.1);
}

.cctv-tab-btn.active {
  background: linear-gradient(135deg, #0056a1 0%, #378ADD 100%);
  border-color: transparent;
  color: #ffffff;
  box-shadow: 0 8px 20px rgba(0, 86, 161, 0.25);
}

.cctv-tab-btn.active svg {
  stroke: #ffffff;
}

/* Showcase Card */
.cctv-showcase {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.cctv-panel {
  display: none;
  grid-template-columns: 1.2fr 1fr;
  background: #ffffff;
  border: 1px solid #dce8f5;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(13, 27, 46, 0.06);
  opacity: 0;
  transform: translateY(15px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.cctv-panel.active {
  display: grid;
  opacity: 1;
  transform: translateY(0);
}

/* Left Content Col */
.cctv-content {
  padding: 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.cctv-title {
  font-family: 'Inter', sans-serif;
  font-size: 1.8rem;
  font-weight: 800;
  color: #0d1b2e;
  margin: 0 0 16px;
  line-height: 1.25;
}

.cctv-desc {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  color: #4a6080;
  line-height: 1.7;
  margin: 0 0 32px;
}

/* Tech Specs */
.cctv-specs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid #eef4fb;
}

.cctv-spec-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.cctv-spec-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #6b8aaa;
  letter-spacing: 1px;
}

.cctv-spec-val {
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  color: #0d1b2e;
}

/* Callouts and Features */
.cctv-feature-list {
  list-style: none;
  padding: 0;
  margin: 0 0 36px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cctv-feature-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  color: #4a6080;
  font-weight: 500;
}

.cctv-feature-item svg {
  color: #22c55e;
  flex-shrink: 0;
}

/* Visualizer Right Col */
.cctv-visualizer {
  background: radial-gradient(circle at center, #fcfdfe 0%, #eef4fb 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  padding: 40px;
  border-left: 1px solid #dce8f5;
}

.cctv-product-img-wrap {
  width: 80%;
  max-width: 320px;
  position: relative;
  z-index: 2;
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  display: flex;
  justify-content: center;
  align-items: center;
}

.cctv-product-img-wrap img {
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 15px 30px rgba(13, 27, 46, 0.15));
}

.cctv-panel:hover .cctv-product-img-wrap {
  transform: scale(1.06) translateY(-5px);
}

/* Radar Scan effect */
.cctv-radar-bg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
  height: 80%;
  border-radius: 50%;
  border: 1px dashed rgba(0, 86, 161, 0.12);
  pointer-events: none;
  z-index: 1;
}

.cctv-radar-bg::after {
  content: '';
  position: absolute;
  top: -10%;
  left: -10%;
  right: -10%;
  bottom: -10%;
  border-radius: 50%;
  border: 1px solid rgba(0, 86, 161, 0.04);
}

.cctv-radar-indicator {
  position: absolute;
  top: 30px;
  right: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid #dce8f5;
  padding: 6px 12px;
  border-radius: 30px;
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  color: #0d1b2e;
  z-index: 3;
  backdrop-filter: blur(4px);
}

.cctv-radar-dot {
  width: 8px;
  height: 8px;
  background-color: #ef4444;
  border-radius: 50%;
  box-shadow: 0 0 8px #ef4444;
  animation: cctvPulse 1.5s infinite;
}

@keyframes cctvPulse {
  0% {
    transform: scale(0.9);
    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 8px rgba(239, 68, 68, 0);
  }

  100% {
    transform: scale(0.9);
    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0);
  }
}

.cctv-radar-scanline {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(55, 138, 221, 0.4), transparent);
  animation: cctvScan 4s linear infinite;
  pointer-events: none;
  z-index: 3;
}

@keyframes cctvScan {
  0% {
    top: 0%;
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    top: 100%;
    opacity: 0;
  }
}

/* Carousel Section */
.cctv-carousel-block {
  margin-top: 80px;
  position: relative;
  z-index: 2;
  text-align: center;
}

.cctv-carousel-title {
  font-family: 'Inter', sans-serif;
  font-size: 1.15rem;
  font-weight: 800;
  color: #0d1b2e;
  margin-bottom: 24px;
}

.cctv-carousel-outer {
  max-width: 1000px;
  margin: 0 auto;
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 15px 35px rgba(13, 27, 46, 0.08);
  border: 1px solid #dce8f5;
  background: #020e1f;
}

.cctv-carousel-track {
  position: relative;
  height: 420px;
  width: 100%;
}

.cctv-caro-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.8s ease-in-out, visibility 0.8s ease-in-out;
}

.cctv-caro-slide.active {
  opacity: 1;
  visibility: visible;
}

.cctv-caro-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Gradient overlay for text legibility */
.cctv-caro-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(2, 14, 31, 0.9) 0%, rgba(2, 14, 31, 0.4) 60%, transparent 100%);
  padding: 40px 50px 30px;
  text-align: left;
  color: #ffffff;
}

.cctv-caro-tag {
  display: inline-block;
  background: rgba(0, 86, 161, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.15);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 4px;
  margin-bottom: 10px;
  font-family: 'Inter', sans-serif;
}

.cctv-caro-headline {
  font-family: 'Inter', sans-serif;
  font-size: 1.35rem;
  font-weight: 800;
  margin: 0 0 8px;
}

.cctv-caro-sub {
  font-family: 'Inter', sans-serif;
  font-size: 0.85rem;
  color: #B5D4F4;
  margin: 0;
  line-height: 1.5;
}

/* Controls */
.cctv-caro-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #ffffff;
  z-index: 10;
  backdrop-filter: blur(5px);
  transition: all 0.25s ease;
}

.cctv-caro-btn:hover {
  background: #0056a1;
  border-color: #0056a1;
  transform: translateY(-50%) scale(1.08);
}

.cctv-caro-btn-prev {
  left: 20px;
}

.cctv-caro-btn-next {
  right: 20px;
}

/* Dots indicator */
.cctv-caro-dots {
  position: absolute;
  bottom: 20px;
  right: 30px;
  display: flex;
  gap: 8px;
  z-index: 10;
}

.cctv-caro-dot {
  width: 8px;
  height: 8px;
  background: rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.3s ease;
}

.cctv-caro-dot.active {
  background: #0056a1;
  width: 20px;
  border-radius: 4px;
}

/* Responsive CCTV Section */
@media (max-width: 992px) {
  .cctv-panel {
    grid-template-columns: 1fr;
  }

  .cctv-visualizer {
    border-left: none;
    border-top: 1px solid #dce8f5;
    padding: 60px 40px;
  }

  .cctv-product-img-wrap {
    width: 60%;
  }
}

@media (max-width: 768px) {
  .cctv-section {
    padding: 70px 0;
  }

  .cctv-content {
    padding: 30px 24px;
  }

  .cctv-title {
    font-size: 1.5rem;
  }

  .cctv-specs-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .cctv-carousel-track {
    height: 360px;
  }

  .cctv-caro-overlay {
    padding: 24px;
  }

  .cctv-caro-headline {
    font-size: 1.15rem;
  }

  .cctv-tab-btn {
    padding: 10px 18px;
    font-size: 0.82rem;
  }

  .cctv-caro-btn {
    width: 36px;
    height: 36px;
  }

  .cctv-caro-btn-prev {
    left: 10px;
  }

  .cctv-caro-btn-next {
    right: 10px;
  }
}

/* ========================================
   PATROLLING AND POLICE VEHICLE EQUIPMENT
   ======================================== */
.patrulla-section {
  position: relative;
  overflow: hidden;
  padding: 100px 0;
  background: #fdfefe;
  border-top: 1px solid #eef4fb;
}

/* Background elements for premium aesthetic */
.patrulla-bg-orb {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  filter: blur(80px);
}

.patrulla-bg-orb-1 {
  top: -100px;
  right: -200px;
  background: radial-gradient(circle, rgba(0, 86, 161, 0.03) 0%, transparent 70%);
}

.patrulla-bg-orb-2 {
  bottom: -150px;
  left: -200px;
  background: radial-gradient(circle, rgba(55, 138, 221, 0.03) 0%, transparent 70%);
}

/* Badges */
.patrulla-badge-container {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.patrulla-badge {
  font-family: 'Inter', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 30px;
  background: #eef4fb;
  border: 1px solid #c8ddf0;
  color: #0056a1;
}

/* Tabs Navigation */
.patrulla-tabs-nav {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 0 auto 50px;
  max-width: 900px;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
}

.patrulla-tab-btn {
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  color: #4a6080;
  background: #ffffff;
  border: 1px solid #dce8f5;
  padding: 12px 24px;
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 8px rgba(0, 86, 161, 0.03);
}

.patrulla-tab-btn svg {
  transition: transform 0.3s ease;
}

.patrulla-tab-btn:hover {
  border-color: #0056a1;
  color: #0056a1;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 86, 161, 0.08);
}

.patrulla-tab-btn:hover svg {
  transform: scale(1.1);
}

.patrulla-tab-btn.active {
  background: linear-gradient(135deg, #042C53 0%, #0C447C 100%);
  border-color: transparent;
  color: #ffffff;
  box-shadow: 0 8px 20px rgba(4, 44, 83, 0.25);
}

.patrulla-tab-btn.active svg {
  stroke: #ffffff;
}

/* Showcase Card */
.patrulla-showcase {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.patrulla-panel {
  display: none;
  grid-template-columns: 1.2fr 1fr;
  background: #ffffff;
  border: 1px solid #dce8f5;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(13, 27, 46, 0.06);
  opacity: 0;
  transform: translateY(15px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.patrulla-panel.active {
  display: grid;
  opacity: 1;
  transform: translateY(0);
}

/* Left Content Col */
.patrulla-content {
  padding: 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.patrulla-title {
  font-family: 'Inter', sans-serif;
  font-size: 1.8rem;
  font-weight: 800;
  color: #0d1b2e;
  margin: 0 0 16px;
  line-height: 1.25;
}

.patrulla-desc {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  color: #4a6080;
  line-height: 1.7;
  margin: 0 0 32px;
}

/* Tech Specs Grid */
.patrulla-specs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid #eef4fb;
}

.patrulla-spec-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.patrulla-spec-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #6b8aaa;
  letter-spacing: 1px;
}

.patrulla-spec-val {
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  color: #0d1b2e;
}

/* Feature List */
.patrulla-feature-list {
  list-style: none;
  padding: 0;
  margin: 0 0 36px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.patrulla-feature-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  color: #4a6080;
  font-weight: 500;
}

.patrulla-feature-item svg {
  color: #22c55e;
  flex-shrink: 0;
}

/* Visualizer Right Col */
.patrulla-visualizer {
  background: radial-gradient(circle at center, #fcfdfe 0%, #f1f5fa 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  padding: 40px;
  border-left: 1px solid #dce8f5;
}

.patrulla-product-img-wrap {
  width: 85%;
  max-width: 320px;
  position: relative;
  z-index: 2;
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  display: flex;
  justify-content: center;
  align-items: center;
}

.patrulla-product-img-wrap img {
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 15px 30px rgba(4, 44, 83, 0.12));
}

.patrulla-panel:hover .patrulla-product-img-wrap {
  transform: scale(1.06) translateY(-5px);
}

/* Tech Grid Background effect */
.patrulla-tech-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: linear-gradient(rgba(0, 86, 161, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 86, 161, 0.03) 1px, transparent 1px);
  background-size: 20px 20px;
  background-position: center;
  pointer-events: none;
  z-index: 1;
}

.patrulla-radar-indicator {
  position: absolute;
  top: 30px;
  right: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid #dce8f5;
  padding: 6px 12px;
  border-radius: 30px;
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  color: #0d1b2e;
  z-index: 3;
  backdrop-filter: blur(4px);
}

.patrulla-radar-dot {
  width: 8px;
  height: 8px;
  background-color: #378add;
  border-radius: 50%;
  box-shadow: 0 0 8px #378add;
  animation: patrullaPulse 1.5s infinite;
}

@keyframes patrullaPulse {
  0% {
    transform: scale(0.9);
    box-shadow: 0 0 0 0 rgba(55, 138, 221, 0.7);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 8px rgba(55, 138, 221, 0);
  }

  100% {
    transform: scale(0.9);
    box-shadow: 0 0 0 0 rgba(55, 138, 221, 0);
  }
}

.patrulla-radar-scanline {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(4, 44, 83, 0.25), transparent);
  animation: patrullaScan 4s linear infinite;
  pointer-events: none;
  z-index: 3;
}

@keyframes patrullaScan {
  0% {
    top: 0%;
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    top: 100%;
    opacity: 0;
  }
}

/* Responsive Patrol Section */
@media (max-width: 992px) {
  .patrulla-panel {
    grid-template-columns: 1fr;
  }

  .patrulla-visualizer {
    border-left: none;
    border-top: 1px solid #dce8f5;
    padding: 60px 40px;
  }

  .patrulla-product-img-wrap {
    width: 65%;
  }
}

@media (max-width: 768px) {
  .patrulla-section {
    padding: 70px 0;
  }

  .patrulla-content {
    padding: 30px 24px;
  }

  .patrulla-title {
    font-size: 1.5rem;
  }

  .patrulla-specs-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .patrulla-tab-btn {
    padding: 10px 18px;
    font-size: 0.82rem;
  }
}

/* ========================================
   BOLARDOS DE SEGURIDAD SECTION
   ======================================== */
.bolardo-section {
  position: relative;
  overflow: hidden;
  padding: 100px 0;
  background: #f8fafd;
  border-top: 1px solid #eef4fb;
}

.bolardo-bg-orb {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  filter: blur(80px);
}

.bolardo-bg-orb-1 {
  top: -100px;
  left: -200px;
  background: radial-gradient(circle, rgba(224, 169, 5, 0.02) 0%, transparent 70%);
}

.bolardo-bg-orb-2 {
  bottom: -150px;
  right: -200px;
  background: radial-gradient(circle, rgba(0, 86, 161, 0.03) 0%, transparent 70%);
}

.bolardo-badge-container {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.bolardo-badge {
  font-family: 'Inter', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 30px;
  background: #eef4fb;
  border: 1px solid #c8ddf0;
  color: #0056a1;
}

.bolardo-tabs-nav {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 0 auto 50px;
  max-width: 900px;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
}

.bolardo-tab-btn {
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  color: #4a6080;
  background: #ffffff;
  border: 1px solid #dce8f5;
  padding: 12px 24px;
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 8px rgba(0, 86, 161, 0.03);
}

.bolardo-tab-btn svg {
  transition: transform 0.3s ease;
}

.bolardo-tab-btn:hover {
  border-color: #0056a1;
  color: #0056a1;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 86, 161, 0.08);
}

.bolardo-tab-btn:hover svg {
  transform: scale(1.1);
}

.bolardo-tab-btn.active {
  background: linear-gradient(135deg, #2c3e50 0%, #4a6080 100%);
  border-color: transparent;
  color: #ffffff;
  box-shadow: 0 8px 20px rgba(44, 62, 80, 0.25);
}

.bolardo-tab-btn.active svg {
  stroke: #ffffff;
}

.bolardo-showcase {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.bolardo-panel {
  display: none;
  grid-template-columns: 1.2fr 1fr;
  background: #ffffff;
  border: 1px solid #dce8f5;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(13, 27, 46, 0.06);
  opacity: 0;
  transform: translateY(15px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.bolardo-panel.active {
  display: grid;
  opacity: 1;
  transform: translateY(0);
}

.bolardo-content {
  padding: 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.bolardo-title {
  font-family: 'Inter', sans-serif;
  font-size: 1.8rem;
  font-weight: 800;
  color: #0d1b2e;
  margin: 0 0 16px;
  line-height: 1.25;
}

.bolardo-desc {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  color: #4a6080;
  line-height: 1.7;
  margin: 0 0 32px;
}

.bolardo-specs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid #eef4fb;
}

.bolardo-spec-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bolardo-spec-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #6b8aaa;
  letter-spacing: 1px;
}

.bolardo-spec-val {
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  color: #0d1b2e;
}

.bolardo-feature-list {
  list-style: none;
  padding: 0;
  margin: 0 0 36px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.bolardo-feature-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  color: #4a6080;
  font-weight: 500;
}

.bolardo-feature-item svg {
  color: #22c55e;
  flex-shrink: 0;
}

.bolardo-visualizer {
  background: radial-gradient(circle at center, #fcfdfe 0%, #f1f5fa 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  padding: 40px;
  border-left: 1px solid #dce8f5;
}

.bolardo-product-img-wrap {
  width: 80%;
  max-width: 320px;
  position: relative;
  z-index: 2;
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  display: flex;
  justify-content: center;
  align-items: center;
}

.bolardo-product-img-wrap img {
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 15px 30px rgba(13, 27, 46, 0.15));
}

.bolardo-panel:hover .bolardo-product-img-wrap {
  transform: scale(1.06) translateY(-5px);
}

.bolardo-tech-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: linear-gradient(rgba(224, 169, 5, 0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(224, 169, 5, 0.02) 1px, transparent 1px);
  background-size: 20px 20px;
  background-position: center;
  pointer-events: none;
  z-index: 1;
}

.bolardo-radar-indicator {
  position: absolute;
  top: 30px;
  right: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid #dce8f5;
  padding: 6px 12px;
  border-radius: 30px;
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  color: #0d1b2e;
  z-index: 3;
  backdrop-filter: blur(4px);
}

.bolardo-radar-dot {
  width: 8px;
  height: 8px;
  background-color: #e0a905;
  border-radius: 50%;
  box-shadow: 0 0 8px #e0a905;
  animation: bolardoPulse 1.5s infinite;
}

@keyframes bolardoPulse {
  0% {
    transform: scale(0.9);
    box-shadow: 0 0 0 0 rgba(224, 169, 5, 0.7);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 8px rgba(224, 169, 5, 0);
  }

  100% {
    transform: scale(0.9);
    box-shadow: 0 0 0 0 rgba(224, 169, 5, 0);
  }
}

.bolardo-radar-scanline {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(224, 169, 5, 0.25), transparent);
  animation: bolardoScan 4s linear infinite;
  pointer-events: none;
  z-index: 3;
}

@keyframes bolardoScan {
  0% {
    top: 0%;
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    top: 100%;
    opacity: 0;
  }
}

/* ========================================
   CONTROL DE ACCESO SECTION
   ======================================== */
.acceso-section {
  position: relative;
  overflow: hidden;
  padding: 100px 0;
  background: #ffffff;
  border-top: 1px solid #eef4fb;
}

.acceso-bg-orb {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  filter: blur(80px);
}

.acceso-bg-orb-1 {
  top: -100px;
  right: -200px;
  background: radial-gradient(circle, rgba(16, 185, 129, 0.02) 0%, transparent 70%);
}

.acceso-bg-orb-2 {
  bottom: -150px;
  left: -200px;
  background: radial-gradient(circle, rgba(6, 182, 212, 0.03) 0%, transparent 70%);
}

.acceso-badge-container {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.acceso-badge {
  font-family: 'Inter', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 30px;
  background: #eef4fb;
  border: 1px solid #c8ddf0;
  color: #0056a1;
}

.acceso-tabs-nav {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 0 auto 50px;
  max-width: 900px;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
}

.acceso-tab-btn {
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  color: #4a6080;
  background: #ffffff;
  border: 1px solid #dce8f5;
  padding: 12px 24px;
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 8px rgba(0, 86, 161, 0.03);
}

.acceso-tab-btn svg {
  transition: transform 0.3s ease;
}

.acceso-tab-btn:hover {
  border-color: #0056a1;
  color: #0056a1;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 86, 161, 0.08);
}

.acceso-tab-btn:hover svg {
  transform: scale(1.1);
}

.acceso-tab-btn.active {
  background: linear-gradient(135deg, #0f766e 0%, #0d9488 100%);
  border-color: transparent;
  color: #ffffff;
  box-shadow: 0 8px 20px rgba(13, 148, 136, 0.25);
}

.acceso-tab-btn.active svg {
  stroke: #ffffff;
}

.acceso-showcase {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.acceso-panel {
  display: none;
  grid-template-columns: 1.2fr 1fr;
  background: #ffffff;
  border: 1px solid #dce8f5;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(13, 27, 46, 0.06);
  opacity: 0;
  transform: translateY(15px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.acceso-panel.active {
  display: grid;
  opacity: 1;
  transform: translateY(0);
}

.acceso-content {
  padding: 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.acceso-title {
  font-family: 'Inter', sans-serif;
  font-size: 1.8rem;
  font-weight: 800;
  color: #0d1b2e;
  margin: 0 0 16px;
  line-height: 1.25;
}

.acceso-desc {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  color: #4a6080;
  line-height: 1.7;
  margin: 0 0 32px;
}

.acceso-specs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid #eef4fb;
}

.acceso-spec-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.acceso-spec-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #6b8aaa;
  letter-spacing: 1px;
}

.acceso-spec-val {
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  color: #0d1b2e;
}

.acceso-feature-list {
  list-style: none;
  padding: 0;
  margin: 0 0 36px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.acceso-feature-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  color: #4a6080;
  font-weight: 500;
}

.acceso-feature-item svg {
  color: #22c55e;
  flex-shrink: 0;
}

.acceso-visualizer {
  background: radial-gradient(circle at center, #fcfdfe 0%, #f1f5fa 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  padding: 40px;
  border-left: 1px solid #dce8f5;
}

.acceso-product-img-wrap {
  width: 80%;
  max-width: 320px;
  position: relative;
  z-index: 2;
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  display: flex;
  justify-content: center;
  align-items: center;
}

.acceso-product-img-wrap img {
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 15px 30px rgba(13, 148, 136, 0.15));
}

.acceso-panel:hover .acceso-product-img-wrap {
  transform: scale(1.06) translateY(-5px);
}

.acceso-tech-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: linear-gradient(rgba(13, 148, 136, 0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 148, 136, 0.02) 1px, transparent 1px);
  background-size: 20px 20px;
  background-position: center;
  pointer-events: none;
  z-index: 1;
}

.acceso-radar-indicator {
  position: absolute;
  top: 30px;
  right: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid #dce8f5;
  padding: 6px 12px;
  border-radius: 30px;
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  color: #0d1b2e;
  z-index: 3;
  backdrop-filter: blur(4px);
}

.acceso-radar-dot {
  width: 8px;
  height: 8px;
  background-color: #10b981;
  border-radius: 50%;
  box-shadow: 0 0 8px #10b981;
  animation: accesoPulse 1.5s infinite;
}

@keyframes accesoPulse {
  0% {
    transform: scale(0.9);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 8px rgba(16, 185, 129, 0);
  }

  100% {
    transform: scale(0.9);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
  }
}

.acceso-radar-scanline {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(16, 185, 129, 0.25), transparent);
  animation: accesoScan 4s linear infinite;
  pointer-events: none;
  z-index: 3;
}

@keyframes accesoScan {
  0% {
    top: 0%;
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    top: 100%;
    opacity: 0;
  }
}

/* ========================================
   POSTES DE MONITOREO SECTION
   ======================================== */
.poste-section {
  position: relative;
  overflow: hidden;
  padding: 100px 0;
  background: #f8fafd;
  border-top: 1px solid #eef4fb;
}

.poste-bg-orb {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  filter: blur(80px);
}

.poste-bg-orb-1 {
  top: -100px;
  left: -200px;
  background: radial-gradient(circle, rgba(0, 86, 161, 0.03) 0%, transparent 70%);
}

.poste-bg-orb-2 {
  bottom: -150px;
  right: -200px;
  background: radial-gradient(circle, rgba(55, 138, 221, 0.03) 0%, transparent 70%);
}

.poste-badge-container {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.poste-badge {
  font-family: 'Inter', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 30px;
  background: #eef4fb;
  border: 1px solid #c8ddf0;
  color: #0056a1;
}

.poste-tabs-nav {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 0 auto 50px;
  max-width: 900px;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
}

.poste-tab-btn {
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  color: #4a6080;
  background: #ffffff;
  border: 1px solid #dce8f5;
  padding: 12px 24px;
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 8px rgba(0, 86, 161, 0.03);
}

.poste-tab-btn svg {
  transition: transform 0.3s ease;
}

.poste-tab-btn:hover {
  border-color: #0056a1;
  color: #0056a1;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 86, 161, 0.08);
}

.poste-tab-btn:hover svg {
  transform: scale(1.1);
}

.poste-tab-btn.active {
  background: linear-gradient(135deg, #0a2540 0%, #0056a1 100%);
  border-color: transparent;
  color: #ffffff;
  box-shadow: 0 8px 20px rgba(10, 37, 64, 0.25);
}

.poste-tab-btn.active svg {
  stroke: #ffffff;
}

.poste-showcase {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.poste-panel {
  display: none;
  grid-template-columns: 1.2fr 1fr;
  background: #ffffff;
  border: 1px solid #dce8f5;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(13, 27, 46, 0.06);
  opacity: 0;
  transform: translateY(15px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.poste-panel.active {
  display: grid;
  opacity: 1;
  transform: translateY(0);
}

.poste-content {
  padding: 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.poste-title {
  font-family: 'Inter', sans-serif;
  font-size: 1.8rem;
  font-weight: 800;
  color: #0d1b2e;
  margin: 0 0 16px;
  line-height: 1.25;
}

.poste-desc {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  color: #4a6080;
  line-height: 1.7;
  margin: 0 0 32px;
}

.poste-specs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid #eef4fb;
}

.poste-spec-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.poste-spec-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #6b8aaa;
  letter-spacing: 1px;
}

.poste-spec-val {
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  color: #0d1b2e;
}

.poste-feature-list {
  list-style: none;
  padding: 0;
  margin: 0 0 36px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.poste-feature-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  color: #4a6080;
  font-weight: 500;
}

.poste-feature-item svg {
  color: #22c55e;
  flex-shrink: 0;
}

.poste-visualizer {
  background: radial-gradient(circle at center, #fcfdfe 0%, #f1f5fa 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  padding: 40px;
  border-left: 1px solid #dce8f5;
}

.poste-product-img-wrap {
  width: 80%;
  max-width: 320px;
  position: relative;
  z-index: 2;
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  display: flex;
  justify-content: center;
  align-items: center;
}

.poste-product-img-wrap img {
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 15px 30px rgba(10, 37, 64, 0.15));
}

.poste-panel:hover .poste-product-img-wrap {
  transform: scale(1.06) translateY(-5px);
}

.poste-tech-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: linear-gradient(rgba(0, 86, 161, 0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 86, 161, 0.02) 1px, transparent 1px);
  background-size: 20px 20px;
  background-position: center;
  pointer-events: none;
  z-index: 1;
}

.poste-radar-indicator {
  position: absolute;
  top: 30px;
  right: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid #dce8f5;
  padding: 6px 12px;
  border-radius: 30px;
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  color: #0d1b2e;
  z-index: 3;
  backdrop-filter: blur(4px);
}

.poste-radar-dot {
  width: 8px;
  height: 8px;
  background-color: #378add;
  border-radius: 50%;
  box-shadow: 0 0 8px #378add;
  animation: postePulse 1.5s infinite;
}

@keyframes postePulse {
  0% {
    transform: scale(0.9);
    box-shadow: 0 0 0 0 rgba(55, 138, 221, 0.7);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 8px rgba(55, 138, 221, 0);
  }

  100% {
    transform: scale(0.9);
    box-shadow: 0 0 0 0 rgba(55, 138, 221, 0);
  }
}

.poste-radar-scanline {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(55, 138, 221, 0.25), transparent);
  animation: posteScan 4s linear infinite;
  pointer-events: none;
  z-index: 3;
}

@keyframes posteScan {
  0% {
    top: 0%;
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    top: 100%;
    opacity: 0;
  }
}

/* ========================================
   RESPONSIVE LAYOUTS FOR NEW SECTIONS
   ======================================== */
@media (max-width: 992px) {

  .bolardo-panel,
  .acceso-panel,
  .poste-panel {
    grid-template-columns: 1fr;
  }

  .bolardo-visualizer,
  .acceso-visualizer,
  .poste-visualizer {
    border-left: none;
    border-top: 1px solid #dce8f5;
    padding: 60px 40px;
  }

  .bolardo-product-img-wrap,
  .acceso-product-img-wrap,
  .poste-product-img-wrap {
    width: 65%;
  }
}

@media (max-width: 768px) {

  .bolardo-section,
  .acceso-section,
  .poste-section {
    padding: 70px 0;
  }

  .bolardo-content,
  .acceso-content,
  .poste-content {
    padding: 30px 24px;
  }

  .bolardo-title,
  .acceso-title,
  .poste-title {
    font-size: 1.5rem;
  }

  .bolardo-specs-grid,
  .acceso-specs-grid,
  .poste-specs-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .bolardo-tab-btn,
  .acceso-tab-btn,
  .poste-tab-btn {
    padding: 10px 18px;
    font-size: 0.82rem;
  }
}

/* ================================================================
   ESTILOS MIGRADOS DE proyectos.html
   ================================================================ */

/* ── Bloque 1 (proyectos.html) ── */
/* ── Animaciones Profesionales del Hero (Cubic-Bezier Easing) ── */
@keyframes heroFadeInUp {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes heroScaleIn {
  0% {
    opacity: 0;
    transform: scale(0.96) translateY(20px);
  }

  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes kenBurnsEffect {
  0% {
    transform: scale(1.12);
    opacity: 0.85;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes overlayFade {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

/* Clases de Animación con Delays Escalonados */
.hero-anim-bg {
  animation: kenBurnsEffect 10s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.hero-anim-overlay {
  animation: overlayFade 2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.hero-anim-1 {
  animation: heroFadeInUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: 0.1s;
}

.hero-anim-2 {
  animation: heroFadeInUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: 0.22s;
}

.hero-anim-3 {
  animation: heroFadeInUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: 0.34s;
}

.hero-anim-4 {
  animation: heroFadeInUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: 0.46s;
}

.hero-anim-5 {
  animation: heroScaleIn 1.4s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: 0.6s;
}

/* ── Estilos y Efectos Premium de los Stats ── */
.hero-stats-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
  margin-top: 2rem;
  padding-top: 1.8rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
}

.hero-stat-card {
  text-align: center;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: default;
  padding: 10px 20px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0);
  border: 1px solid rgba(255, 255, 255, 0);
  min-width: 130px;
  flex: 1 1 130px;
  max-width: 180px;
}

.hero-stat-card:hover {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
}

.hero-stat-number {
  font-family: 'Inter', sans-serif;
  font-size: 2.4rem;
  font-weight: 800;
  color: #ffffff;
  transition: all 0.3s ease;
  display: inline-block;
}

.hero-stat-card:hover .hero-stat-number {
  color: #378add;
  transform: scale(1.06);
  text-shadow: 0 0 15px rgba(55, 138, 221, 0.4);
}

.hero-stat-label {
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-top: 6px;
  transition: color 0.3s ease;
}

.hero-stat-card:hover .hero-stat-label {
  color: rgba(255, 255, 255, 0.75);
}

.hero-stat-divider {
  width: 1px;
  background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.1) 20%, rgba(255, 255, 255, 0.1) 80%, transparent);
  align-self: stretch;
}

@media (max-width: 768px) {
  .hero-stat-divider {
    display: none;
  }

  .hero-stats-row {
    gap: 15px;
  }

  .hero-stat-card {
    min-width: 110px;
    padding: 8px 10px;
  }

  .hero-stat-number {
    font-size: 2rem;
  }
}

/* ── Bloque 2 (proyectos.html) ── */
/* ── Reveal on scroll ── */
.cap-reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.cap-reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Header ── */
.cap-header {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 70px;
  padding: 0 24px;
}

.cap-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #378add;
  margin-bottom: 18px;
}

.cap-eyebrow::before,
.cap-eyebrow::after {
  content: '';
  width: 28px;
  height: 1px;
  background: #378add;
  opacity: 0.6;
}

.cap-title {
  font-family: 'Inter', sans-serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  color: #0d1b2e;
  line-height: 1.15;
  letter-spacing: -1px;
  margin-bottom: 18px;
}

.cap-title em {
  font-style: normal;
  color: transparent;
  background: linear-gradient(90deg, #0056a1, #378add);
  -webkit-background-clip: text;
  background-clip: text;
}

.cap-subtitle {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  font-weight: 400;
  color: #5a7491;
  line-height: 1.7;
}

/* ── Bento Grid ── */
.cap-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: auto;
  gap: 16px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.cap-card {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #e8eef6;
  padding: 36px 32px;
  box-shadow: 0 2px 12px rgba(13, 27, 46, 0.06);
  transition: border-color 0.4s ease, box-shadow 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: default;
}

.cap-card:hover {
  border-color: var(--card-accent, #378add);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--card-accent, #378add) 12%, transparent), 0 20px 50px rgba(13, 27, 46, 0.14);
  transform: translateY(-5px);
}

.cap-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--card-accent, #378add), transparent);
  opacity: 0;
  transition: opacity 0.4s ease;
}

.cap-card:hover::before {
  opacity: 1;
}

/* Grid placements */
.cap-card-1 {
  grid-column: span 5;
}

.cap-card-2 {
  grid-column: span 7;
}

.cap-card-5 {
  grid-column: span 12;
}

@media (max-width: 960px) {

  .cap-card-1,
  .cap-card-2 {
    grid-column: span 12;
  }

  .cap-card-5 {
    grid-column: span 12;
  }
}

/* Card icon */
.cap-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: rgba(55, 138, 221, 0.1);
  border: 1px solid rgba(55, 138, 221, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 22px;
  transition: background 0.3s ease, border-color 0.3s ease;
}

.cap-card:hover .cap-icon {
  background: rgba(55, 138, 221, 0.18);
  border-color: rgba(55, 138, 221, 0.45);
  box-shadow: 0 0 16px rgba(55, 138, 221, 0.2);
}

.cap-icon svg {
  width: 24px;
  height: 24px;
  stroke: #378add;
  stroke-width: 1.8;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cap-card-tag {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #378add;
  background: rgba(55, 138, 221, 0.1);
  border: 1px solid rgba(55, 138, 221, 0.2);
  border-radius: 4px;
  padding: 3px 10px;
  margin-bottom: 12px;
}

.cap-card-title {
  font-family: 'Inter', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: #0d1b2e;
  margin-bottom: 10px;
  line-height: 1.3;
}

.cap-card-desc {
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  color: #5a7491;
  line-height: 1.65;
  margin-bottom: 0;
}

.cap-card-meta {
  margin-top: 22px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 18px;
  border-top: 1px solid #eef2f8;
}

.cap-meta-pill {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  color: #3c5a78;
  background: #eef4fb;
  border: 1px solid #d3e2f0;
  border-radius: 100px;
  padding: 4px 12px;
}

/* ── Wide card image panel ── */
.cap-card-visual {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 42%;
  overflow: hidden;
}

.cap-card-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0.35;
  transition: opacity 0.4s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.cap-card:hover .cap-card-visual img {
  opacity: 0.55;
  transform: scale(1.05);
}

.cap-card-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, #ffffff 28%, rgba(255, 255, 255, 0.6) 65%, transparent 100%);
}

.cap-card-content-wide {
  position: relative;
  z-index: 1;
  max-width: 58%;
}

/* ── Process Strip ── */
.cap-process {
  max-width: 1200px;
  margin: 64px auto 0;
  padding: 0 24px;
}

.cap-process-inner {
  background: #ffffff;
  border: 1px solid #e8eef6;
  box-shadow: 0 4px 24px rgba(13, 27, 46, 0.07);
  border-radius: 20px;
  padding: 48px 52px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  position: relative;
}

.cap-process-inner::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 52px;
  right: 52px;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(55, 138, 221, 0.2) 20%, rgba(55, 138, 221, 0.2) 80%, transparent 100%);
  transform: translateY(-50%);
  pointer-events: none;
}

@media (max-width: 768px) {
  .cap-process-inner {
    grid-template-columns: 1fr 1fr;
    padding: 36px 28px;
    gap: 28px;
  }

  .cap-process-inner::before {
    display: none;
  }
}

@media (max-width: 480px) {
  .cap-process-inner {
    grid-template-columns: 1fr;
  }
}

.cap-step {
  text-align: center;
  position: relative;
}

.cap-step-num {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #eef4fb;
  border: 2px solid #c5daf0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
  font-family: 'Inter', sans-serif;
  font-size: 0.78rem;
  font-weight: 800;
  color: #0056a1;
  letter-spacing: 1px;
  position: relative;
  z-index: 1;
  transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.cap-step:hover .cap-step-num {
  background: #0056a1;
  border-color: #0056a1;
  color: #ffffff;
  box-shadow: 0 6px 18px rgba(0, 86, 161, 0.3);
}

.cap-step-title {
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  font-weight: 700;
  color: #0d1b2e;
  margin-bottom: 6px;
}

.cap-step-desc {
  font-family: 'Inter', sans-serif;
  font-size: 0.8rem;
  color: #5a7491;
  line-height: 1.6;
}

/* ── Bloque 3 (proyectos.html) ── */
/* ── Section divider ── */
.pj-divider {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 72px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.pj-divider-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, #d3e2f0);
}

.pj-divider-line.right {
  background: linear-gradient(90deg, #d3e2f0, transparent);
}

.pj-divider-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #ffffff;
  border: 1px solid #d3e2f0;
  border-radius: 100px;
  padding: 8px 20px;
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #0056a1;
  box-shadow: 0 2px 12px rgba(0, 86, 161, 0.08);
  white-space: nowrap;
}

.pj-divider-badge::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0056a1;
}

/* ── Grid ── */
.pj-grid {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

@media (max-width: 900px) {
  .pj-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 580px) {
  .pj-grid {
    grid-template-columns: 1fr;
  }
}

/* Card destacada — ocupa 2 columnas en la primera fila */
.pj-card-featured {
  grid-column: span 2;
}

@media (max-width: 900px) {
  .pj-card-featured {
    grid-column: span 2;
  }
}

@media (max-width: 580px) {
  .pj-card-featured {
    grid-column: span 1;
  }
}

/* ── Card base ── */
.pj-card {
  border-radius: 18px;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #e8eef6;
  box-shadow: 0 2px 16px rgba(13, 27, 46, 0.06);
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.45s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
}

.pj-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 60px rgba(13, 27, 46, 0.15);
}

/* ── Imagen con overlay ── */
.pj-img-wrap {
  position: relative;
  overflow: hidden;
}

.pj-card-featured .pj-img-wrap {
  height: 380px;
}

.pj-card:not(.pj-card-featured) .pj-img-wrap {
  height: 240px;
}

@media (max-width: 768px) {
  .pj-card-featured .pj-img-wrap {
    height: 260px;
  }

  .pj-card:not(.pj-card-featured) .pj-img-wrap {
    height: 200px;
  }
}

.pj-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.pj-card:hover .pj-img-wrap img {
  transform: scale(1.06);
}

/* Overlay permanente sutil */
.pj-img-overlay-base {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 40%, rgba(5, 15, 35, 0.55) 100%);
  transition: opacity 0.4s ease;
}

/* Overlay hover con descripción */
.pj-img-overlay-hover {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 56, 120, 0.82) 0%, rgba(2, 14, 40, 0.93) 100%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 28px;
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  text-align: center;
}

.pj-card:hover .pj-img-overlay-hover {
  opacity: 1;
}

.pj-card:hover .pj-img-overlay-base {
  opacity: 0;
}

.pj-hover-desc {
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.88);
  line-height: 1.65;
  max-width: 420px;
  transform: translateY(10px);
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1) 0.05s;
}

.pj-card:hover .pj-hover-desc {
  transform: translateY(0);
}

.pj-hover-cta {
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Inter', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: #93c5fd;
  letter-spacing: 0.5px;
  transform: translateY(10px);
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1) 0.1s;
}

.pj-card:hover .pj-hover-cta {
  transform: translateY(0);
}

/* Categoría badge sobre imagen */
.pj-cat-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  font-family: 'Inter', sans-serif;
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 100px;
  backdrop-filter: blur(8px);
  transition: opacity 0.3s ease;
}

.pj-card:hover .pj-cat-badge {
  opacity: 0;
}

/* ── Caption debajo de la imagen ── */
.pj-caption {
  padding: 22px 24px 24px;
  border-top: 1px solid #eef2f8;
}

.pj-caption-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}

.pj-caption-cat {
  font-family: 'Inter', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.pj-caption-year {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  color: #8fa8c0;
}

.pj-caption-title {
  font-family: 'Inter', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: #0d1b2e;
  line-height: 1.3;
  margin-bottom: 4px;
}

.pj-card-featured .pj-caption-title {
  font-size: 1.2rem;
}

.pj-caption-loc {
  display: flex;
  align-items: center;
  gap: 5px;
  font-family: 'Inter', sans-serif;
  font-size: 0.78rem;
  font-weight: 400;
  color: #7a96b0;
}

.pj-caption-loc svg {
  width: 12px;
  height: 12px;
  stroke: #7a96b0;
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
}

/* Reveal animación */
.pj-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.pj-reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Bloque 4 (proyectos.html) ── */
@keyframes waPulse {
  0% {
    transform: scale(1);
    opacity: .7
  }

  100% {
    transform: scale(1.7);
    opacity: 0
  }
}


/* ================================================================
   LIGHTBOX / GALERÍA DE EVIDENCIAS — proyectos.html
   ================================================================ */

/* Botón "Ver Evidencia Fotográfica" en el hover de las cards */
.pj-hover-cta.pj-gallery-btn {
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Inter', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: #93c5fd;
  letter-spacing: 0.5px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 6px;
  padding: 9px 18px;
  cursor: pointer;
  backdrop-filter: blur(6px);
  transform: translateY(10px);
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1) 0.1s,
    background 0.25s ease,
    color 0.25s ease;
}

.pj-card:hover .pj-hover-cta.pj-gallery-btn {
  transform: translateY(0);
}

.pj-hover-cta.pj-gallery-btn:hover {
  background: rgba(55, 138, 221, 0.3);
  color: #ffffff;
  border-color: rgba(55, 138, 221, 0.6);
}

/* ── Backdrop ── */
.pj-lb-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(2, 10, 25, 0.92);
  backdrop-filter: blur(14px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  transition: opacity 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}

.pj-lb-backdrop.pj-lb-open {
  opacity: 1;
}

/* ── Caja principal ── */
.pj-lb-box {
  background: #0d1b2e;
  border: 1px solid rgba(55, 138, 221, 0.18);
  border-radius: 20px;
  width: 100%;
  max-width: 880px;
  max-height: 92vh;
  overflow-y: auto;
  box-shadow: 0 40px 100px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.04);
  transform: scale(0.96) translateY(16px);
  transition: transform 0.38s cubic-bezier(0.16, 1, 0.3, 1);
  scrollbar-width: thin;
  scrollbar-color: rgba(55, 138, 221, 0.3) transparent;
}

.pj-lb-open .pj-lb-box {
  transform: scale(1) translateY(0);
}

/* ── Header ── */
.pj-lb-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 24px 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.pj-lb-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.pj-lb-cat {
  font-family: 'Inter', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #60a5fa;
  background: rgba(55, 138, 221, 0.12);
  border: 1px solid rgba(55, 138, 221, 0.25);
  border-radius: 100px;
  padding: 3px 12px;
}

.pj-lb-year {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.35);
}

.pj-lb-close {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: rgba(255, 255, 255, 0.6);
  transition: background 0.2s ease, color 0.2s ease;
}

.pj-lb-close:hover {
  background: rgba(239, 68, 68, 0.18);
  color: #fca5a5;
  border-color: rgba(239, 68, 68, 0.3);
}

/* ── Stage (imagen + flechas) ── */
.pj-lb-stage {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0;
  background: #060f1d;
}

.pj-lb-img-wrap {
  flex: 1;
  position: relative;
  min-height: 320px;
  max-height: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.pj-lb-main-img {
  max-width: 100%;
  max-height: 520px;
  object-fit: contain;
  display: block;
  transition: opacity 0.35s ease, transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.pj-lb-loader {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.pj-lb-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid rgba(55, 138, 221, 0.15);
  border-top-color: #378add;
  border-radius: 50%;
  animation: lbSpin 0.75s linear infinite;
}

@keyframes lbSpin {
  to {
    transform: rotate(360deg);
  }
}

.pj-lb-counter {
  position: absolute;
  bottom: 12px;
  right: 14px;
  font-family: 'Inter', sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  background: rgba(0, 0, 0, 0.45);
  border-radius: 100px;
  padding: 3px 10px;
  backdrop-filter: blur(4px);
}

/* Flechas de navegación */
.pj-lb-nav {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: rgba(255, 255, 255, 0.65);
  transition: background 0.22s ease, color 0.22s ease, transform 0.22s ease;
  flex-shrink: 0;
  margin: 0 10px;
  z-index: 2;
}

.pj-lb-nav:hover {
  background: rgba(55, 138, 221, 0.2);
  border-color: rgba(55, 138, 221, 0.4);
  color: #60a5fa;
  transform: scale(1.08);
}

/* ── Miniaturas ── */
.pj-lb-thumbs {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 24px;
  overflow-x: auto;
  background: rgba(0, 0, 0, 0.25);
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  scrollbar-width: thin;
  scrollbar-color: rgba(55, 138, 221, 0.3) transparent;
}

.pj-lb-thumb {
  width: 72px;
  height: 52px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
  border: 2px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  transition: border-color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
  background: #0a1628;
  padding: 0;
}

.pj-lb-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.6;
  transition: opacity 0.22s ease;
}

.pj-lb-thumb:hover img,
.pj-lb-thumb-active img {
  opacity: 1;
}

.pj-lb-thumb-active {
  border-color: #378add;
  box-shadow: 0 0 0 2px rgba(55, 138, 221, 0.35);
  transform: scale(1.05);
}

/* ── Info panel ── */
.pj-lb-info {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  padding: 22px 24px 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.pj-lb-info-main {
  flex: 1;
}

.pj-lb-title {
  font-family: 'Inter', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 8px;
  line-height: 1.35;
}

.pj-lb-desc {
  font-family: 'Inter', sans-serif;
  font-size: 0.85rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.65;
  margin: 0;
}

.pj-lb-info-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
  flex-shrink: 0;
}

.pj-lb-loc {
  display: flex;
  align-items: center;
  gap: 5px;
  font-family: 'Inter', sans-serif;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.4);
}

.pj-lb-loc svg {
  flex-shrink: 0;
  stroke: rgba(255, 255, 255, 0.4);
}

.pj-lb-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 18px;
  border-radius: 6px;
  background: #0056a1;
  color: #ffffff;
  font-family: 'Inter', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.22s ease;
}

.pj-lb-cta:hover {
  background: #003f7a;
}

/* ── Responsive ── */
@media (max-width: 640px) {
  .pj-lb-box {
    border-radius: 14px;
  }

  .pj-lb-nav {
    width: 40px;
    height: 40px;
    margin: 0 4px;
  }

  .pj-lb-img-wrap {
    min-height: 220px;
  }

  .pj-lb-info {
    flex-direction: column;
    gap: 16px;
  }

  .pj-lb-info-side {
    align-items: flex-start;
  }

  .pj-lb-title {
    font-size: 0.95rem;
  }
}

/* ========================================
   PARTNERS MARQUEE SECTION
   ======================================== */
.partners-section {
  background: #ffffff;
  padding: 40px 0;
  border-bottom: 1px solid #e2e8f0;
  position: relative;
  z-index: 5;
}

.partners-label {
  text-align: center;
  color: #64748b;
  font-weight: 600;
  margin-bottom: 25px;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 1px;
  font-family: 'Inter', sans-serif;
}

.marquee-wrapper {
  overflow: hidden;
  width: 100%;
  position: relative;
  display: flex;
  background: #ffffff;
}

/* Mask gradients at the edges for a fading out effect */
.marquee-wrapper::before,
.marquee-wrapper::after {
  content: "";
  height: 100%;
  width: 150px;
  position: absolute;
  z-index: 2;
  pointer-events: none;
}

.marquee-wrapper::before {
  left: 0;
  top: 0;
  background: linear-gradient(to right, #ffffff, transparent);
}

.marquee-wrapper::after {
  right: 0;
  top: 0;
  background: linear-gradient(to left, #ffffff, transparent);
}

.marquee-content {
  display: flex;
  width: max-content;
  animation: marquee-scroll 25s linear infinite;
  gap: 40px;
  align-items: center;
  padding-left: 40px;
}

.marquee-wrapper:hover .marquee-content {
  animation-play-state: paused;
}

.marquee-item-img {
  height: 22px;
  width: auto;
  object-fit: contain;
  opacity: 0.85;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.marquee-item-img:hover {
  opacity: 1;
  transform: scale(1.06);
}

@keyframes marquee-scroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

/* ========================================
   INTERACTIVE HERO CANVAS (ABOUT PAGE)
   ======================================== */
.hero-canvas-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
  background: #020b16;
  /* Fondo azul tecnológico profundo */
}

#tech-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  opacity: 0.6;
}

.tech-grid-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image:
    linear-gradient(rgba(55, 138, 221, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(55, 138, 221, 0.03) 1px, transparent 1px);
  background-size: 60px 60px;
  background-position: center;
  pointer-events: none;
}

.tech-radial-glow {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle at 50% 50%, rgba(0, 86, 161, 0.25) 0%, transparent 85%);
  pointer-events: none;
}

/* ---------------------------------------------------
   ACERCA.HTML � TIMELINE: NUESTRA HISTORIA
--------------------------------------------------- */
.ca-timeline-section {
  background: #f0f5ff;
  padding: 110px 24px 90px;
  position: relative;
  overflow: hidden;
}

.ca-timeline-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 40% at 20% 10%, rgba(0, 86, 161, .06) 0%, transparent 70%),
    radial-gradient(ellipse 50% 30% at 80% 90%, rgba(0, 168, 255, .05) 0%, transparent 70%);
  pointer-events: none;
}

.ca-timeline-header {
  text-align: center;
  margin-bottom: 72px;
}

.ca-timeline-eyebrow {
  display: inline-block;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #00a8ff;
  background: rgba(0, 168, 255, .1);
  border: 1px solid rgba(0, 168, 255, .3);
  padding: 6px 18px;
  border-radius: 999px;
  margin-bottom: 20px;
}

.ca-timeline-title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  color: #0f172a;
  line-height: 1.15;
  margin: 0 0 16px;
}

.ca-timeline-title em {
  font-style: normal;
  background: linear-gradient(120deg, #00a8ff, #0056a1);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.ca-timeline-sub {
  color: #475569;
  font-size: 1.05rem;
  max-width: 540px;
  margin: 0 auto;
  line-height: 1.7;
}

.ca-timeline {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ca-timeline::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, transparent, #0056a1 8%, #0099e6 50%, #0056a1 92%, transparent);
  transform: translateX(-50%);
}

.ca-tl-item {
  position: relative;
  width: 50%;
  padding: 0 50px 56px 0;
}

.ca-tl-item.ca-tl-right {
  align-self: flex-end;
  padding: 0 0 56px 50px;
}

.ca-tl-dot {
  position: absolute;
  top: 14px;
  right: -22px;
  width: 44px;
  height: 44px;
  background: linear-gradient(135deg, #0056a1, #00a8ff);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  box-shadow: 0 0 0 4px rgba(0, 168, 255, .2), 0 0 18px rgba(0, 168, 255, .4);
}

.ca-tl-right .ca-tl-dot {
  right: auto;
  left: -22px;
}

.ca-tl-dot svg {
  width: 20px;
  height: 20px;
  color: #ffffff;
}

.ca-tl-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 28px 32px;
  backdrop-filter: blur(10px);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.ca-tl-card:hover {
  transform: translateY(-4px);
  border-color: #0056a1;
  box-shadow: 0 12px 40px rgba(0, 86, 161, .12);
}

.ca-tl-card-accent {
  border-color: rgba(0, 86, 161, .3);
  background: rgba(0, 86, 161, .05);
}

.ca-tl-year {
  display: inline-block;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #00a8ff;
  margin-bottom: 10px;
}

.ca-tl-event {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 10px;
  line-height: 1.35;
}

.ca-tl-desc {
  font-size: .9rem;
  color: #475569;
  line-height: 1.7;
  margin: 0;
}

/* ---------------------------------------------------
   ACERCA.HTML � MISION VISION VALORES
--------------------------------------------------- */
.ca-mvv-section {
  background: linear-gradient(160deg, #f8faff 0%, #eef3ff 100%);
  padding: 110px 24px;
  position: relative;
  overflow: hidden;
}

.ca-mvv-section::before {
  content: '';
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 86, 161, .18) 0%, transparent 70%);
  top: -150px;
  right: -100px;
  pointer-events: none;
}

.ca-mvv-inner {
  max-width: 1160px;
  margin: 0 auto;
}

.ca-mvv-header {
  text-align: center;
  margin-bottom: 64px;
}

.ca-mvv-eyebrow {
  display: inline-block;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #00a8ff;
  background: rgba(0, 168, 255, .1);
  border: 1px solid rgba(0, 168, 255, .3);
  padding: 6px 18px;
  border-radius: 999px;
  margin-bottom: 18px;
}

.ca-mvv-title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0;
  line-height: 1.15;
}

.ca-mvv-title em {
  font-style: normal;
  background: linear-gradient(120deg, #00a8ff, #0056a1);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.ca-mvv-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.ca-mvv-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  padding: 40px 32px 36px;
  position: relative;
  overflow: hidden;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.ca-mvv-card::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  border-radius: 0 0 20px 20px;
  opacity: 0;
  transition: opacity .35s ease;
}

.ca-mvv-mision::after {
  background: linear-gradient(90deg, #0056a1, #00a8ff);
}

.ca-mvv-vision::after {
  background: linear-gradient(90deg, #00a8ff, #38bdf8);
}

.ca-mvv-valores::after {
  background: linear-gradient(90deg, #7c3aed, #00a8ff);
}

.ca-mvv-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 60px rgba(0, 86, 161, .12);
  border-color: #0056a1;
}

.ca-mvv-card:hover::after {
  opacity: 1;
}

.ca-mvv-icon-wrap {
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, rgba(0, 86, 161, .3), rgba(0, 168, 255, .15));
  border: 1px solid rgba(0, 168, 255, .25);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
}

.ca-mvv-icon-wrap svg {
  width: 28px;
  height: 28px;
  color: #00a8ff;
}

.ca-mvv-card-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 14px;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.ca-mvv-card-text {
  font-size: .9rem;
  color: #475569;
  line-height: 1.75;
  margin: 0;
}

.ca-mvv-values-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ca-mvv-values-list li {
  font-size: .875rem;
  color: #475569;
  line-height: 1.55;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.ca-mvv-values-list li strong {
  color: #0f172a;
}

.ca-val-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  min-width: 8px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0056a1, #00a8ff);
  margin-top: 5px;
}

@media (max-width: 860px) {
  .ca-timeline::before {
    left: 22px;
  }

  .ca-tl-item,
  .ca-tl-item.ca-tl-right {
    width: 100%;
    align-self: auto;
    padding: 0 0 48px 70px;
  }

  .ca-tl-dot,
  .ca-tl-right .ca-tl-dot {
    left: 0;
    right: auto;
  }

  .ca-mvv-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .ca-tl-card {
    padding: 20px 22px;
  }

  .ca-mvv-card {
    padding: 30px 22px 26px;
  }
}








/* Forzar tama�o peque�o de logos en partners */
.partners-section .marquee-item-img,
.marquee-wrapper .marquee-item-img {
  height: 22px !important;
  max-height: 22px !important;
  width: auto !important;
}

/* ---------------------------------------------------
   ACERCA.HTML � SECCI�N CERTIFICACIONES
--------------------------------------------------- */
.ca-cert-section {
  background: #f0f5ff;
  padding: 100px 24px 80px;
  position: relative;
  overflow: hidden;
}

.ca-cert-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 50% 40% at 80% 10%, rgba(0, 86, 161, .07) 0%, transparent 70%),
    radial-gradient(ellipse 40% 30% at 10% 90%, rgba(0, 168, 255, .06) 0%, transparent 70%);
  pointer-events: none;
}

.ca-cert-inner {
  max-width: 1160px;
  margin: 0 auto;
  position: relative;
}

.ca-cert-header {
  text-align: center;
  margin-bottom: 64px;
}

.ca-cert-eyebrow {
  display: inline-block;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #0056a1;
  background: rgba(0, 86, 161, .1);
  border: 1px solid rgba(0, 86, 161, .25);
  padding: 6px 18px;
  border-radius: 999px;
  margin-bottom: 18px;
}

.ca-cert-title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 14px;
  line-height: 1.15;
}

.ca-cert-title em {
  font-style: normal;
  background: linear-gradient(120deg, #0056a1, #00a8ff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.ca-cert-sub {
  color: #475569;
  font-size: 1rem;
  max-width: 580px;
  margin: 0 auto;
  line-height: 1.7;
}

/* --- Grid de tarjetas --- */
.ca-cert-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-bottom: 40px;
}

/* --- Tarjeta --- */
.ca-cert-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  padding: 32px 28px 28px;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  overflow: hidden;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.ca-cert-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #0056a1, #00a8ff);
  opacity: 0;
  transition: opacity .3s ease;
}

.ca-cert-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 48px rgba(0, 86, 161, .12);
  border-color: #0056a1;
}

.ca-cert-card:hover::before {
  opacity: 1;
}

/* Badge SVG */
.ca-cert-badge {
  width: 56px;
  height: 56px;
  margin-bottom: 20px;
  flex-shrink: 0;
}

.ca-cert-badge svg {
  width: 100%;
  height: 100%;
}

/* Info */
.ca-cert-info {
  flex: 1;
}

.ca-cert-code {
  display: inline-block;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #0056a1;
  background: rgba(0, 86, 161, .08);
  border: 1px solid rgba(0, 86, 161, .2);
  padding: 3px 10px;
  border-radius: 999px;
  margin-bottom: 10px;
}

.ca-cert-name {
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 4px;
  line-height: 1.4;
}

.ca-cert-area {
  font-size: .8rem;
  font-weight: 600;
  color: #0056a1;
  margin: 0 0 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.ca-cert-desc {
  font-size: .875rem;
  color: #475569;
  line-height: 1.65;
  margin: 0 0 20px;
}

/* Emisor */
.ca-cert-issuer {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
  margin-top: auto;
}

.ca-cert-issuer-label {
  font-size: .7rem;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.ca-cert-issuer-name {
  font-size: .8rem;
  font-weight: 700;
  color: #0f172a;
  background: #f1f5f9;
  padding: 3px 10px;
  border-radius: 999px;
}

/* --- Sello de confianza --- */
.ca-cert-trust {
  display: flex;
  align-items: center;
  gap: 20px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-left: 4px solid #0056a1;
  border-radius: 12px;
  padding: 24px 28px;
}

.ca-cert-trust-icon {
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #0056a1, #00a8ff);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ca-cert-trust-icon svg {
  width: 24px;
  height: 24px;
  color: #ffffff;
}

.ca-cert-trust-text {
  font-size: .9rem;
  color: #475569;
  line-height: 1.7;
  margin: 0;
}

/* --- Responsive --- */
@media (max-width: 720px) {
  .ca-cert-grid {
    grid-template-columns: 1fr;
  }

  .ca-cert-trust {
    flex-direction: column;
    text-align: center;
  }
}

/* ---------------------------------------------------
   CERTIFICACIONES � LAYOUT CON IM�GENES
--------------------------------------------------- */
.ca-cert-badges-row {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 28px;
  flex-wrap: wrap;
  margin-bottom: 56px;
}

.ca-cert-badge-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 14px;
  width: 200px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 24px;
  padding: 36px 20px 28px;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.ca-cert-badge-item:hover {
  transform: translateY(-8px);
  box-shadow: 0 16px 48px rgba(0, 86, 161, .14);
  border-color: #0056a1;
}

.ca-cert-badge-img {
  width: 160px;
  height: 160px;
  object-fit: contain;
  filter: drop-shadow(0 6px 16px rgba(0, 86, 161, .2));
  transition: filter .35s ease, transform .35s ease;
}

.ca-cert-badge-item:hover .ca-cert-badge-img {
  filter: drop-shadow(0 8px 20px rgba(0, 86, 161, .3));
  transform: scale(1.05);
}

.ca-cert-badge-name {
  font-size: .78rem;
  font-weight: 800;
  color: #0056a1;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ca-cert-badge-desc {
  font-size: .75rem;
  color: #64748b;
  line-height: 1.5;
}

@media (max-width: 600px) {
  .ca-cert-badges-row {
    gap: 16px;
  }

  .ca-cert-badge-item {
    width: 140px;
    padding: 20px 12px 16px;
  }

  .ca-cert-badge-img {
    width: 90px;
    height: 90px;
  }
}




/* === OVERRIDE: Badges grandes y premium === */
.ca-cert-badge-item {
  width: 200px !important;
  padding: 36px 20px 28px !important;
  border-radius: 24px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
}

.ca-cert-badge-item:hover {
  transform: translateY(-10px) !important;
  box-shadow: 0 24px 56px rgba(0, 86, 161, .18) !important;
  border-color: #0056a1 !important;
}

.ca-cert-badge-img {
  width: 160px !important;
  height: 160px !important;
  object-fit: contain !important;
}

.ca-cert-badge-item:hover .ca-cert-badge-img {
  transform: scale(1.08) !important;
  filter: drop-shadow(0 10px 24px rgba(0, 86, 161, .35)) !important;
}

.ca-cert-badge-name {
  font-size: .85rem !important;
  font-weight: 800 !important;
  color: #0056a1 !important;
}

.ca-cert-badge-desc {
  font-size: .8rem !important;
  color: #475569 !important;
  line-height: 1.55 !important;
}

@media (max-width: 700px) {
  .ca-cert-badge-item {
    width: 150px !important;
    padding: 24px 14px 20px !important;
  }

  .ca-cert-badge-img {
    width: 120px !important;
    height: 120px !important;
  }
}

/* === Secci�n cert m�s espaciosa === */
.ca-cert-section {
  padding: 100px 24px 100px !important;
}

.ca-cert-badges-row {
  gap: 24px !important;
  margin-bottom: 60px !important;
}

/* === CERTIFICACIONES: textos grandes y visibles === */
.ca-cert-badge-name {
  font-size: 1rem !important;
  font-weight: 800 !important;
  color: #0f172a !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  margin-top: 4px !important;
}

.ca-cert-badge-desc {
  font-size: .85rem !important;
  color: #475569 !important;
  line-height: 1.6 !important;
  font-weight: 500 !important;
}

.ca-cert-badge-item {
  gap: 10px !important;
}

/* === CERTIFICACIONES: separador y color de nombre === */
.ca-cert-badge-name {
  color: #0056a1 !important;
  position: relative !important;
  padding-bottom: 10px !important;
}

.ca-cert-badge-name::after {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  background: linear-gradient(90deg, #0056a1, #00a8ff);
  border-radius: 999px;
  margin: 8px auto 0;
}

/* === CERTIFICACIONES: layout 2x2 como referencia === */
.ca-cert-badges-row {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 40px 60px !important;
  max-width: 900px !important;
  margin: 0 auto 56px !important;
  justify-items: center !important;
}

.ca-cert-badge-item {
  width: 100% !important;
  max-width: 380px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  gap: 14px !important;
  align-items: center !important;
}

.ca-cert-badge-item:hover {
  transform: translateY(-6px) !important;
  box-shadow: none !important;
  border-color: transparent !important;
}

.ca-cert-badge-img {
  width: 100% !important;
  height: auto !important;
  max-height: 240px !important;
  object-fit: contain !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, .12) !important;
  transition: box-shadow .3s ease, transform .3s ease !important;
  filter: none !important;
}

.ca-cert-badge-item:hover .ca-cert-badge-img {
  box-shadow: 0 12px 40px rgba(0, 86, 161, .2) !important;
  transform: scale(1.02) !important;
  filter: none !important;
}

.ca-cert-badge-name {
  font-size: 1rem !important;
  font-weight: 800 !important;
  color: #0056a1 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  text-align: center !important;
}

.ca-cert-badge-desc {
  font-size: .82rem !important;
  color: #64748b !important;
  line-height: 1.55 !important;
  text-align: center !important;
  font-weight: 500 !important;
}

@media (max-width: 650px) {
  .ca-cert-badges-row {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
}

/* ---------------------------------------------------
   GLOBAL RESPONSIVE FIXES (CELULAR Y TABLET)
--------------------------------------------------- */

/* --- TABLET Y CELULAR GENERAL (max-width: 968px) --- */
@media (max-width: 968px) {

  /* Forzar ancho a contenedor */
  html,
  body {
    overflow-x: clip !important;
    width: 100% !important;
  }

  /* Textos principales */
  .hero-title,
  .hero-anim-2 {
    font-size: clamp(2.2rem, 8vw, 3.5rem) !important;
  }

  .hero-subtitle,
  .hero-anim-3 {
    font-size: 1.1rem !important;
    padding: 0 15px;
  }

  /* Layouts de grilla */
  .tech-content,
  .service-layout,
  .contact-wrapper,
  .sf-body-inner,
  .footer-grid,
  .form-row,
  .mission-grid,
  .proyectos-grid,
  .about-grid {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  /* Fix footer cols */
  .sf-col-brand {
    text-align: center;
  }

  .sf-col-brand .sf-brand {
    justify-content: center;
  }

  .sf-cert-strip {
    justify-content: center;
    flex-wrap: wrap;
  }

  /* Fix features sticky column */
  .ca-panels-col,
  .ca-feature-nav {
    width: 100% !important;
    max-width: 100% !important;
    position: static !important;
    flex: none !important;
  }

  /* Fix stats row */
  .hero-stats-row {
    flex-wrap: wrap !important;
    gap: 20px !important;
    justify-content: center !important;
  }

  .hero-stat-card {
    min-width: 140px;
    padding-bottom: 15px;
  }

  .hero-stat-divider {
    display: none !important;
  }

  /* Fix certifications cards */
  .ca-cert-badges-row {
    gap: 20px !important;
  }

  .ca-cert-badge-item {
    width: 45% !important;
    min-width: 160px !important;
  }

  /* Ajustes de Nav Menu - forzar que se oculte el topbar */
  .header-top {
    display: none !important;
  }

  /* Padding general */
  .ca-cert-section,
  .about-section,
  .service-section,
  .footer,
  .site-footer {
    padding: 60px 20px !important;
  }
}

/* --- CELULAR PEQUE�O (max-width: 600px) --- */
@media (max-width: 600px) {

  .hero-title,
  .hero-anim-2 {
    font-size: clamp(1.8rem, 6vw, 2.5rem) !important;
  }

  .ca-cert-badge-item {
    width: 100% !important;
  }

  .marquee-item-img {
    height: 35px !important;
    margin: 0 15px !important;
  }

  .btn-primary,
  .btn-outline,
  .btn-outline-light {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }

  .section-title {
    font-size: 2rem !important;
  }

  .hero-stats-row {
    flex-direction: column !important;
  }

  .hero-stat-card {
    width: 100% !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
}

/* =========================================================
   BLOQUE UNIVERSAL RESPONSIVO (A�ADIDO PARA OPTIMIZACI�N)
   ========================================================= */

/* --- AJUSTES GLOBALES PARA PREVENIR DESBORDAMIENTO --- */
html,
body {
  overflow-x: clip !important;
  max-width: 100vw !important;
}

img,
video {
  max-width: 100vw !important;
}

/* =========================================================
   TABLET (max-width: 1024px)
   ========================================================= */
@media (max-width: 1024px) {

  /* Reducir padding enorme de algunas secciones */
  .ca-cert-section,
  .about-section,
  .service-section,
  .footer,
  .site-footer,
  .ca-features-section,
  .hero-fullbleed,
  .proyectos-section,
  .contacto-hero {
    padding: 60px 3vw !important;
  }

  .sf-body-inner {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 40px !important;
  }

  .sf-col-brand {
    grid-column: span 2 !important;
  }

  .sol-grid,
  .pj-grid,
  .ca-features-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 3vw !important;
  }

  .split-video-wrapper {
    grid-template-columns: 1fr !important;
  }

  /* Ajustar tama�os de fuente hero/t�tulos */
  .hero-title {
    font-size: clamp(2.5rem, 6vw, 3.5rem) !important;
  }

  .section-title {
    font-size: clamp(2rem, 5vw, 2.8rem) !important;
  }
}

/* =========================================================
   CELULAR (max-width: 768px)
   ========================================================= */
@media (max-width: 768px) {

  /* Forzar todas las grillas principales a 1 columna */
  .sf-body-inner,
  .footer-grid,
  .form-row,
  .mission-grid,
  .pj-grid,
  .sol-grid,
  .ca-features-grid,
  .contact-grid,
  .about-grid,
  .ca-cert-badges-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  /* Footer centrado para mejor lectura t�ctil */
  .sf-col-brand {
    grid-column: span 1 !important;
    text-align: center !important;
  }

  .sf-col-brand .sf-brand {
    justify-content: center !important;
  }

  .sf-cert-strip {
    justify-content: center !important;
    flex-wrap: wrap !important;
  }

  .sf-social {
    justify-content: center !important;
  }

  /* Alinear t�tulos del hero */
  .hero-content-center,
  .hero-content {
    text-align: center !important;
    align-items: center !important;
    padding: 20px 0 !important;
  }

  .hero-title {
    font-size: clamp(2rem, 8vw, 2.5rem) !important;
    line-height: 1.2 !important;
  }

  .hero-subtitle {
    font-size: 1rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Botones anchos para dedos */
  .btn,
  .pj-hover-cta {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }

  .hero-cta-group {
    flex-direction: column !important;
    width: 100% !important;
  }

  /* Certificaciones que no desborden */
  .ca-cert-badge-item {
    width: 100% !important;
    max-width: 300px !important;
    margin: 0 auto !important;
  }

  .ca-cert-badge-img {
    width: 120px !important;
    height: 120px !important;
  }

  /* Esconder men� nav de PC si se usa el header */
  .nav-menu {
    display: none !important;
  }

  /* Tarjetas y Contenedores */
  .ca-panel,
  .sol-card,
  .pj-card,
  .contact-info-card,
  .contact-form-card {
    padding: 20px !important;
    width: 100% !important;
  }

  /* Formularios */
  .form-row {
    flex-direction: column !important;
  }

  .form-group input,
  .form-group select,
  .form-group textarea {
    width: 100% !important;
  }
}

/* =========================================================
   CELULAR PEQUE�O (max-width: 480px)
   ========================================================= */
@media (max-width: 480px) {

  /* Espaciados m�nimos */
  .ca-cert-section,
  .about-section,
  .service-section,
  .footer,
  .site-footer,
  .ca-features-section,
  .hero-fullbleed,
  .proyectos-section,
  .contacto-hero {
    padding: 40px 15px !important;
  }

  .hero-title {
    font-size: clamp(1.8rem, 8vw, 2.2rem) !important;
  }

  /* Marquesina partners m�s peque�a */
  .marquee-item-img {
    height: 25px !important;
    margin: 0 10px !important;
  }

  .pj-caption-title {
    font-size: 1.1rem !important;
  }
}

/* Custom Responsive Overrides for Mobile Header */
@media (max-width: 968px) {

  /* Ensure the navbar wrapper is relative for positioning */
  .nav-wrapper {
    position: relative !important;
  }

  /* Make logo smaller on mobile */
  .logo-img-wrap img {
    height: 20px !important;
  }

  .logo-text .logo-name {
    font-size: 1rem !important;
  }

  .logo-text .logo-name span {
    font-size: 0.5em !important;
  }

  /* Style the full screen glass menu */
  #nav-menu {
    display: flex !important;
    position: fixed !important;
    top: 0 !important;
    left: -100vw !important;
    /* start hidden offscreen */
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    /* dynamic viewport height */
    background: rgba(255, 255, 255, 0.82) !important;
    /* glass look */
    backdrop-filter: blur(25px) !important;
    -webkit-backdrop-filter: blur(25px) !important;
    z-index: 999998 !important;
    /* below the close button */
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    padding: 100px 24px 40px 24px !important;
    /* top padding to not cover the toggle button position */
    margin: 0 !important;
    list-style: none !important;
    transition: left 0.4s cubic-bezier(0.25, 1, 0.5, 1) !important;
    overflow-y: auto !important;
    /* scrollable content so contact button is never cut off */
    box-sizing: border-box !important;
    border: none !important;
    box-shadow: none !important;
  }

  #nav-menu.active {
    left: 0 !important;
  }

  /* List items with dividers */
  #nav-menu li {
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
    width: 100% !important;
    text-align: left !important;
  }

  /* Link items */
  #nav-menu li a {
    color: #111111 !important;
    font-size: 1.6rem !important;
    /* large and elegant */
    font-weight: 700 !important;
    /* bold */
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: -0.5px !important;
    padding: 1.5rem 0.5rem !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    background: transparent !important;
    transition: color 0.2s ease !important;
  }

  /* Arrow icon on items except first (Inicio) and last (Contáctanos) */
  #nav-menu li a#nav-servicios::after,
  #nav-menu li a#nav-proyectos::after,
  #nav-menu li a#nav-acerca::after {
    content: "" !important;
    display: inline-block !important;
    width: 8px !important;
    height: 8px !important;
    border-top: 2px solid #999999 !important;
    border-right: 2px solid #999999 !important;
    transform: rotate(45deg) !important;
    margin-right: 8px !important;
  }

  /* Push the contact button to the bottom using flex layout spacer or margin-top */
  #nav-menu li:last-child {
    border-bottom: none !important;
    margin-top: auto !important;
    /* pushes it down if screen height allows */
    padding-top: 3rem !important;
    /* separation if screen is small */
  }

  /* Make sure the "Contáctanos" button stands out exactly like the screenshot */
  #nav-menu li a#nav-contacto,
  #nav-menu li:last-child a {
    background: #1964a3 !important;
    /* beautiful blue color */
    color: #ffffff !important;
    padding: 1.2rem !important;
    border-radius: 12px !important;
    /* highly rounded */
    display: block !important;
    text-align: center !important;
    justify-content: center !important;
    font-weight: 700 !important;
    font-size: 1.25rem !important;
    box-shadow: 0 4px 15px rgba(25, 100, 163, 0.25) !important;
    width: 100% !important;
    margin-bottom: 20px !important;
  }

  #nav-menu li a#nav-contacto::after,
  #nav-menu li:last-child a::after {
    content: none !important;
  }

  /* Toggle button container styling */
  .menu-toggle {
    position: relative !important;
    /* keep in flex position of navbar */
    z-index: 9999999 !important;
    /* always above the glass overlay */
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    cursor: pointer !important;
    width: 40px !important;
    height: 40px !important;
  }

  /* Menu toggle lines */
  .menu-toggle span {
    display: block !important;
    width: 26px !important;
    height: 2.5px !important;
    background: #111111 !important;
    /* dark for visibility against white glass */
    margin: 3.5px 0 !important;
    transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1) !important;
    border-radius: 2px !important;
    transform-origin: center !important;
  }

  /* Animated X when active */
  .menu-toggle.active span:nth-child(1) {
    transform: translateY(9.5px) rotate(45deg) !important;
  }

  .menu-toggle.active span:nth-child(2) {
    opacity: 0 !important;
    transform: scale(0) !important;
  }

  .menu-toggle.active span:nth-child(3) {
    transform: translateY(-9.5px) rotate(-45deg) !important;
  }
}

@media (max-width: 480px) {
  .logo-img-wrap img {
    height: 18px !important;
  }

  .logo-text .logo-name {
    font-size: 0.85rem !important;
  }
}

/* === User Requested Mobile Adjustments === */
@media (max-width: 968px) {

  /* Hamburger menu lines white by default (dark background) */
  .menu-toggle span {
    background: #ffffff !important;
  }

  /* Hamburger menu lines dark when menu is open (white glass background) */
  .menu-toggle.active span {
    background: #111111 !important;
  }

  /* Move logo and text higher up */
  .navbar {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  /* Make sure logo align is correct */
  .logo-img-wrap img {
    margin-top: -2px !important;
  }
}

/* === User Requested Mobile Adjustments (Part 2) === */
@media (max-width: 968px) {

  /* Make text fit on one line */
  .logo-text .logo-name {
    font-size: 0.8rem !important;
    white-space: nowrap !important;
  }

  .logo-text .logo-name span {
    font-size: 0.6em !important;
  }

  /* Make hamburger menu smaller */
  .menu-toggle {
    width: 32px !important;
    height: 32px !important;
  }

  .menu-toggle span {
    width: 22px !important;
    height: 2px !important;
    margin: 4px 0 !important;
  }

  /* Adjust active state transforms for smaller lines */
  .menu-toggle.active span:nth-child(1) {
    transform: translateY(6px) rotate(45deg) !important;
  }

  .menu-toggle.active span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg) !important;
  }
}

/* =====================================================
   FIX: Responsive grid de servicios (soluciones.html)
   ===================================================== */

/* Tablet (max 1024px) */
@media (max-width: 1024px) {
  #svcCardsGrid {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
  }

  #svcCardsGrid .svc-card-premium {
    grid-column: unset !important;
    grid-row: unset !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Tarjeta CCTV grande - dar altura mínima para que el contenido absoluto sea visible */
  #svcCardsGrid .svc-card-premium[data-index="0"] {
    min-height: 420px !important;
  }

  /* Tarjeta 4 (Postes) - cambiar de horizontal a vertical */
  #svcCardsGrid .svc-card-premium[data-index="3"] [style*="padding:36px 36px"] {
    flex-direction: column !important;
    gap: 20px !important;
    align-items: flex-start !important;
  }

  #svcCardsGrid .svc-card-premium[data-index="3"] [style*="border-left:1px solid #dce8f5"] {
    border-left: none !important;
    border-top: 1px solid #dce8f5 !important;
    padding-left: 0 !important;
    padding-top: 16px !important;
    flex-direction: row !important;
    gap: 32px !important;
  }
}

/* Móvil (max 768px) */
@media (max-width: 768px) {
  #svcCardsGrid {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    padding: 0 !important;
    overflow: visible !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  #svcCardsGrid .svc-card-premium {
    grid-column: unset !important;
    grid-row: unset !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    border-radius: 14px !important;
    overflow: hidden !important;
  }

  /* Tarjeta 1 (CCTV): tiene contenido con position:absolute;bottom:0 que se corta
     Convertimos la card a relativa y el contenido interior a posición normal */
  #svcCardsGrid .svc-card-premium[data-index="0"] {
    min-height: 0 !important;
  }

  #svcCardsGrid .svc-card-premium[data-index="0"] [style*="position:absolute;bottom:0;left:0;right:0;padding:40px 36px"] {
    position: relative !important;
    bottom: auto !important;
    padding: 28px 22px !important;
  }

  /* Tags de tecnología (4K Ultra HD, Visión Nocturna, etc.) */
  #svcCardsGrid [style*="display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px"] {
    flex-wrap: wrap !important;
    gap: 6px !important;
  }

  /* Tarjeta 4 (Postes C4/C5) - cambiar de horizontal a vertical */
  #svcCardsGrid .svc-card-premium[data-index="3"] [style*="padding:36px 36px"] {
    flex-direction: column !important;
    gap: 16px !important;
    align-items: flex-start !important;
    padding: 24px 20px !important;
  }

  #svcCardsGrid .svc-card-premium[data-index="3"] [style*="border-left:1px solid #dce8f5"] {
    border-left: none !important;
    border-top: 1px solid #dce8f5 !important;
    padding-left: 0 !important;
    padding-top: 16px !important;
    flex-direction: row !important;
    gap: 32px !important;
    width: 100% !important;
  }

  /* Tarjeta 5 (Control de Acceso) - quitar layout horizontal forzado */
  #svcCardsGrid .svc-card-premium[data-index="4"] [style*="padding:30px 28px"] {
    flex-direction: column !important;
    gap: 12px !important;
    padding: 24px 20px !important;
  }

  /* Métricas de tarjeta CCTV: 200+/99.4% - pasar a columna */
  #svcCardsGrid .svc-card-premium[data-index="0"] [style*="display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:24px"] {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
  }

  /* Prevenir overflow de texto */
  #svcCardsGrid h3,
  #svcCardsGrid p,
  #svcCardsGrid span {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
    white-space: normal !important;
  }
}

@media (max-width: 480px) {
  .logo-text .logo-name {
    font-size: 0.75rem !important;
  }
}

/* === HOTFIX: Restore hamburger + smaller size at 968px === */
@media (max-width: 968px) {
  .menu-toggle {
    display: flex !important;
    width: 32px !important;
    height: 32px !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    z-index: 9999999 !important;
    padding: 0 !important;
  }

  .menu-toggle span {
    display: block !important;
    width: 22px !important;
    height: 2px !important;
    background: #ffffff !important;
    margin: 3px 0 !important;
    border-radius: 2px !important;
    transition: all 0.3s ease !important;
  }

  .menu-toggle.active span {
    background: #111111 !important;
  }

  .menu-toggle.active span:nth-child(1) {
    transform: translateY(5px) rotate(45deg) !important;
  }

  .menu-toggle.active span:nth-child(2) {
    opacity: 0 !important;
  }

  .menu-toggle.active span:nth-child(3) {
    transform: translateY(-5px) rotate(-45deg) !important;
  }

  /* Logo text one line */
  .logo-text .logo-name {
    font-size: 0.78rem !important;
    white-space: nowrap !important;
  }

  .logo-text .logo-name span {
    font-size: 0.58em !important;
  }
}

/* === HOTFIX: Fix hamburger cut off on right edge === */
@media (max-width: 968px) {
  .navbar .container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .nav-wrapper {
    padding-right: 8px !important;
  }

  .menu-toggle {
    margin-right: 4px !important;
    flex-shrink: 0 !important;
  }
}

/* === ROOT FIX: Hamburger cut-off � logo must shrink not push button off screen === */
@media (max-width: 968px) {
  .nav-wrapper {
    padding: 0.6rem 0 !important;
    gap: 0 !important;
  }

  .logo {
    min-width: 0 !important;
    overflow: hidden !important;
    flex-shrink: 1 !important;
    flex: 1 1 0 !important;
  }

  .logo-text {
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .logo-text .logo-name {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    max-width: 100% !important;
  }

  .menu-toggle {
    flex-shrink: 0 !important;
    flex: 0 0 auto !important;
    margin-left: 8px !important;
  }

  .navbar .container {
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
    width: 100% !important;
  }
}

/* === FINAL DEFINITIVE: Hamburger small size override === */
@media (max-width: 968px) {
  .menu-toggle {
    width: 28px !important;
    height: 20px !important;
    min-width: 28px !important;
    min-height: 20px !important;
    max-width: 28px !important;
    max-height: 20px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    flex: 0 0 28px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    z-index: 9999999 !important;
  }

  .menu-toggle span {
    display: block !important;
    width: 20px !important;
    height: 2px !important;
    background: #ffffff !important;
    border-radius: 2px !important;
    transition: all 0.3s ease !important;
    margin: 0 !important;
  }

  .menu-toggle.active span {
    background: #111111 !important;
  }

  .menu-toggle.active span:nth-child(1) {
    transform: translateY(9px) rotate(45deg) !important;
  }

  .menu-toggle.active span:nth-child(2) {
    opacity: 0 !important;
  }

  .menu-toggle.active span:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg) !important;
  }
}

/* === FIX: Nav menu items compact so all 5 fit on screen === */
@media (max-width: 968px) {
  #nav-menu li a {
    font-size: 1.2rem !important;
    padding: 0.85rem 0.5rem !important;
  }

  #nav-menu {
    padding-top: 80px !important;
    padding-bottom: 24px !important;
    justify-content: flex-start !important;
    gap: 0 !important;
  }

  #nav-menu li {
    padding: 0 !important;
  }

  /* Contacto button smaller too */
  #nav-menu li a#nav-contacto,
  #nav-menu li:last-child a {
    font-size: 1rem !important;
    padding: 0.85rem !important;
    margin-top: 12px !important;
    margin-bottom: 0 !important;
  }
}

/* === FIX: Show all 5 nav items � remove auto margin that pushes Contacto off screen === */
@media (max-width: 968px) {
  #nav-menu li:last-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-bottom: none !important;
  }

  #nav-menu li a {
    font-size: 1.1rem !important;
    padding: 0.7rem 0.5rem !important;
  }

  #nav-menu {
    padding-top: 70px !important;
    padding-bottom: 16px !important;
    gap: 0 !important;
    overflow-y: visible !important;
    justify-content: flex-start !important;
  }

  #nav-menu li a#nav-contacto,
  #nav-menu li:last-child a {
    font-size: 1rem !important;
    padding: 0.7rem !important;
    margin-top: 8px !important;
    margin-bottom: 0 !important;
  }
}

/* === FIX: Black menu background + remove divider lines === */
@media (max-width: 968px) {

  /* Black background for mobile menu */
  #nav-menu {
    background: rgba(5, 5, 10, 0.97) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
  }

  /* White text on dark background */
  #nav-menu li a {
    color: #ffffff !important;
  }

  /* Remove all divider lines between items */
  #nav-menu li {
    border-bottom: none !important;
    border-top: none !important;
  }

  /* Remove the ::after pseudo-element lines/diamonds */
  #nav-menu li::after,
  #nav-menu li::before {
    display: none !important;
    content: none !important;
  }

  /* Remove arrows on items */
  #nav-menu li a#nav-servicios::after,
  #nav-menu li a#nav-proyectos::after,
  #nav-menu li a#nav-acerca::after,
  #nav-menu li a#nav-inicio::after {
    display: none !important;
    content: none !important;
  }
}

/* === FIX: Transparent menu + Contacto same style as others === */
@media (max-width: 968px) {

  /* Transparent background */
  #nav-menu {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  /* Contacto same as other items - remove special blue button style */
  #nav-menu li a#nav-contacto,
  #nav-menu li:last-child a {
    background: transparent !important;
    color: #ffffff !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-align: left !important;
    justify-content: flex-start !important;
    display: flex !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    padding: 0.7rem 0.5rem !important;
    width: 100% !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}

/* === FIX: White semi-transparent (frosted glass) menu background === */
@media (max-width: 968px) {
  #nav-menu {
    background: rgba(255, 255, 255, 0.85) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
  }

  /* Dark text since background is white */
  #nav-menu li a {
    color: #111111 !important;
  }

  #nav-menu li a#nav-contacto,
  #nav-menu li:last-child a {
    color: #111111 !important;
    background: transparent !important;
  }
}

/* === FIX: Solutions tabs scroll horizontally on mobile === */
@media (max-width: 768px) {
  .solutions-tabs {
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    scrollbar-width: none !important;
    padding: 6px 8px !important;
    gap: 0.3rem !important;
  }

  .solutions-tabs::-webkit-scrollbar {
    display: none !important;
  }

  .stab {
    flex-shrink: 0 !important;
    padding: 0.6rem 0.9rem !important;
    font-size: 0.78rem !important;
    gap: 5px !important;
    min-width: fit-content !important;
  }

  .stab svg {
    width: 18px !important;
    height: 18px !important;
  }
}

/* === FIX: Solutions tabs wrap into 2 rows so all 5 are visible === */
@media (max-width: 768px) {
  .solutions-tabs {
    width: 100% !important;
    overflow: visible !important;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 0.3rem !important;
    flex-wrap: unset !important;
    justify-content: unset !important;
    padding: 6px !important;
  }

  /* Last 2 items centered in second row */
  .solutions-tabs .stab:nth-child(4) {
    grid-column: 1 / span 1 !important;
  }

  .solutions-tabs .stab:nth-child(5) {
    grid-column: 2 / span 1 !important;
  }

  .stab {
    flex-shrink: unset !important;
    padding: 0.5rem 0.4rem !important;
    font-size: 0.72rem !important;
    gap: 4px !important;
    min-width: unset !important;
    width: 100% !important;
    text-align: center !important;
  }

  .stab svg {
    width: 16px !important;
    height: 16px !important;
  }
}

/* === FIX: Solutions panel content not cut off on mobile === */
@media (max-width: 768px) {

  .solutions-section,
  .solutions-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
    overflow: hidden !important;
  }

  .spanel-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.5rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .spanel-text {
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .spanel-text h3 {
    font-size: 1.5rem !important;
    line-height: 1.3 !important;
    word-wrap: break-word !important;
  }

  .spanel-text p {
    font-size: 0.9rem !important;
    word-wrap: break-word !important;
  }

  .spanel-visual {
    width: 100% !important;
    grid-template-columns: 1fr 1fr !important;
    box-sizing: border-box !important;
  }

  .spanel {
    padding: 0 !important;
    overflow: hidden !important;
  }
}

/* === FIX: Stat cards cut off on mobile === */
@media (max-width: 768px) {
  .spanel-visual {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  .spanel-stat-card {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 16px 12px !important;
    overflow: hidden !important;
  }

  .spanel-stat-card .stat-number {
    font-size: 1.6rem !important;
    word-break: break-all !important;
  }

  .spanel-stat-card .stat-label {
    font-size: 0.65rem !important;
    word-wrap: break-word !important;
    line-height: 1.3 !important;
  }

  .spanel-grid {
    max-width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .spanel.active {
    overflow: hidden !important;
    max-width: 100% !important;
  }
}

/* === FIX: ca-hero section text too big on mobile === */
@media (max-width: 768px) {
  .ca-hero {
    flex-direction: column !important;
    padding: 40px 16px !important;
    gap: 20px !important;
  }

  .ca-hero-title {
    font-size: clamp(2rem, 10vw, 3rem) !important;
    line-height: 1.1 !important;
    word-break: break-word !important;
  }

  .ca-hero-left,
  .ca-hero-right {
    width: 100% !important;
    max-width: 100% !important;
  }

  .ca-eyebrow {
    font-size: 0.75rem !important;
  }

  .ca-hero-desc {
    font-size: 0.9rem !important;
  }

  .ca-cta-row {
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
  }

  .ca-btn-primary,
  .ca-btn-ghost {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }
}

/* === FIX: Footer full width on mobile === */
@media (max-width: 768px) {

  .site-footer,
  .footer,
  .sf-cta-band,
  .sf-body {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }

  .sf-body-inner,
  .footer-inner {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .sf-cta-inner {
    flex-direction: column !important;
    gap: 16px !important;
    text-align: center !important;
    padding: 24px 16px !important;
  }

  .sf-cta-title {
    font-size: 1.4rem !important;
  }

  .sf-cta-right {
    flex-direction: column !important;
    width: 100% !important;
  }

  .sf-btn {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }
}

/* === FIX: Remove white gaps between sections on mobile === */
@media (max-width: 768px) {

  /* Remove all margins and gaps between major sections */
  section,
  .ca-section,
  .ca-hero,
  .ca-ticker,
  .ca-main,
  .ca-bottom,
  .solutions-section,
  .ecosystem-section,
  .split-scroll-section,
  .sf-cta-band,
  .sf-body,
  .site-footer,
  .footer,
  .faq-section,
  .partners-section,
  .ca-features-section {
    margin: 0 !important;
    border-radius: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Force footer wrapper to have no padding and match the dark theme background */
  .site-footer,
  .footer {
    padding: 0 !important;
    background: #0a0f1a !important;
  }

  /* Kill any gaps between stacked sections */
  .ca-bottom {
    margin-bottom: 0 !important;
    padding-bottom: 20px !important;
  }

  .sf-cta-band {
    margin-top: 0 !important;
    border-radius: 0 !important;
  }

  .sf-body {
    margin-top: 0 !important;
    padding-top: 40px !important;
  }

  /* The overall page container shouldn't add side padding */
  body>section,
  body>div,
  body>footer {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* =====================================================
   FIX: Responsive grid de servicios (soluciones.html)
   ===================================================== */

/* Tablet: grid 12col a columna */
@media (max-width: 1024px) {
  .svc-cards-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
  }

  .svc-cards-grid .svc-card-premium {
    grid-column: unset !important;
    grid-row: unset !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .svc-cards-grid .svc-card-premium[data-index='0'] {
    min-height: 420px !important;
  }

  .svc-postes-inner {
    flex-direction: column !important;
    gap: 20px !important;
    align-items: flex-start !important;
  }

  .svc-postes-metrics {
    flex-direction: row !important;
    gap: 32px !important;
    border-left: none !important;
    border-top: 1px solid #dce8f5 !important;
    padding-left: 0 !important;
    padding-top: 16px !important;
    width: 100% !important;
  }
}

/* Movil: ajuste total */
@media (max-width: 768px) {
  .svc-cards-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    padding: 0 !important;
    overflow: visible !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .svc-cards-grid .svc-card-premium {
    grid-column: unset !important;
    grid-row: unset !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    border-radius: 14px !important;
    overflow: hidden !important;
  }

  .svc-cards-grid .svc-card-premium[data-index='0'] {
    min-height: 0 !important;
  }

  /* Tarjeta CCTV: contenido absoluto -> relativo */
  .svc-cctv-content {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    padding: 28px 20px !important;
  }

  /* Postes C4/C5: horizontal -> columna */
  .svc-postes-inner {
    flex-direction: column !important;
    gap: 16px !important;
    align-items: flex-start !important;
    padding: 24px 20px !important;
  }

  .svc-postes-metrics {
    flex-direction: row !important;
    gap: 32px !important;
    border-left: none !important;
    border-top: 1px solid #dce8f5 !important;
    padding-left: 0 !important;
    padding-top: 16px !important;
    width: 100% !important;
  }

  /* Control de Acceso: horizontal -> columna */
  .svc-acceso-inner {
    flex-direction: column !important;
    gap: 12px !important;
    padding: 24px 20px !important;
  }

  /* Prevenir desborde de texto */
  .svc-cards-grid h3,
  .svc-cards-grid p,
  .svc-cards-grid span {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
  }
}

/* Ajuste adicional tarjeta CCTV en movil */
@media (max-width: 768px) {

  /* Ocultar icono circular decorativo que queda flotando en movil */
  .svc-cards-grid .svc-card-premium[data-index='0']>div[style*='position:absolute;top:40px'] {
    display: none !important;
  }

  /* Padding superior para el contenido CCTV */
  .svc-cctv-content {
    padding-top: 36px !important;
  }
}

/* ========================================
   ENTERPRISE CONTACT SECTION (APPLE & HIKVISION INSPIRED)
   ======================================== */
.contact-section-enterprise {
  padding: 100px 0;
  background: linear-gradient(180deg, #fcfdfe 0%, #f1f5f9 50%, #e2e8f0 100%);
  position: relative;
  overflow: hidden;
  font-family: 'Outfit', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Background elements for premium visual texture */
.contact-section-enterprise::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: radial-gradient(circle at 80% 20%, rgba(0, 86, 161, 0.04) 0%, transparent 50%),
    radial-gradient(circle at 10% 85%, rgba(0, 201, 255, 0.03) 0%, transparent 40%);
  z-index: 0;
  pointer-events: none;
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 80px;
  align-items: start;
  position: relative;
  z-index: 1;
}

/* LEFT COLUMN: BRAND PROPOSITION & CERTIFICATIONS */
.contact-info-col {
  color: var(--text-dark);
  padding-right: 20px;
}

.info-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 86, 161, 0.06);
  color: var(--primary-color);
  padding: 6px 14px;
  border-radius: 100px;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  margin-bottom: 24px;
  border: 1px solid rgba(0, 86, 161, 0.1);
}

.info-badge-dot {
  width: 6px;
  height: 6px;
  background-color: var(--accent-color);
  border-radius: 50%;
  display: inline-block;
  box-shadow: 0 0 8px var(--accent-color);
  animation: pulse-dot-ent 2s infinite;
}

@keyframes pulse-dot-ent {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(0, 201, 255, 0.7);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 6px rgba(0, 201, 255, 0);
  }

  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(0, 201, 255, 0);
  }
}

.info-title {
  font-size: 2.75rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--text-primary);
  margin-bottom: 20px;
  letter-spacing: -0.8px;
}

.info-desc {
  font-size: 1.1rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 40px;
}

.info-features {
  display: flex;
  flex-direction: column;
  gap: 28px;
  margin-bottom: 40px;
}

.feature-item {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

.feature-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--bg-white);
  border: 1px solid rgba(0, 86, 161, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--primary-color);
  flex-shrink: 0;
  box-shadow: var(--shadow-sm);
  transition: all 0.3s ease;
}

.feature-item:hover .feature-icon {
  transform: translateY(-2px);
  color: var(--accent-color);
  border-color: rgba(0, 201, 255, 0.3);
  box-shadow: 0 6px 16px rgba(0, 201, 255, 0.1);
}

.feature-icon svg {
  width: 22px;
  height: 22px;
}

.feature-text h3 {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 6px;
}

.feature-text p {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

/* CERTIFICATIONS BLOCK */
.certifications-block {
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(0, 86, 161, 0.05);
  padding: 24px;
  border-radius: 16px;
  margin-bottom: 40px;
  box-shadow: 0 4px 20px rgba(0, 86, 161, 0.02);
}

.cert-title {
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 14px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.cert-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.cert-pill-item {
  padding: 6px 14px;
  border-radius: 8px;
  background: var(--bg-white);
  border: 1px solid var(--border-color);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text-dark);
  cursor: help;
  position: relative;
  transition: all 0.2s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}

.cert-pill-item:hover {
  background: var(--primary-dark);
  color: var(--bg-white);
  border-color: var(--primary-dark);
  transform: translateY(-1px);
}

.cert-pill-item.cert-blue {
  border-color: rgba(0, 86, 161, 0.15);
  color: var(--primary-color);
}

.cert-pill-item.cert-blue:hover {
  background: var(--primary-color);
  color: var(--bg-white);
  border-color: var(--primary-color);
}

/* CSS Tooltip styling */
.cert-pill-item::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 125%;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  background: rgba(15, 23, 42, 0.95);
  color: #fff;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 400;
  width: 200px;
  text-align: center;
  line-height: 1.4;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: var(--shadow-lg);
  z-index: 10;
}

.cert-pill-item:hover::after {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

/* QUICK CONTACT CARD */
.quick-contact-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.quick-item {
  background: var(--bg-white);
  border: 1px solid rgba(0, 86, 161, 0.05);
  padding: 16px 20px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: var(--shadow-sm);
}

.quick-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(0, 86, 161, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--primary-color);
  flex-shrink: 0;
}

.quick-icon svg {
  width: 18px;
  height: 18px;
}

.quick-label {
  display: block;
  font-size: 0.75rem;
  color: var(--text-light);
  font-weight: 500;
  text-transform: uppercase;
}

.quick-val {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-dark);
  transition: color 0.2s ease;
}

.quick-val:hover {
  color: var(--accent-color);
}


/* RIGHT COLUMN: PREMIUM FORM CARD (GLASSMORPHISM) */
.contact-card-premium {
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 24px;
  padding: 48px;
  box-shadow: 0 20px 50px rgba(0, 86, 161, 0.04),
    0 4px 12px rgba(0, 0, 0, 0.01),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
  position: relative;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.contact-card-premium:hover {
  transform: translateY(-4px);
  box-shadow: 0 30px 60px rgba(0, 86, 161, 0.08),
    0 12px 24px rgba(0, 86, 161, 0.02),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  border-color: rgba(255, 255, 255, 0.85);
}

.card-header-enterprise {
  margin-bottom: 36px;
}

.card-title-enterprise {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.5px;
  margin-bottom: 8px;
}

.card-subtitle-enterprise {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.5;
}

/* FLOATING LABELS FORM SYSTEM */
.floating-group {
  position: relative;
  margin-bottom: 28px;
  width: 100%;
}

.form-row-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.form-input-enterprise {
  width: 100%;
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 12px;
  padding: 18px 16px 8px 16px;
  /* High top padding to fit floating label */
  font-size: 0.98rem;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  color: var(--text-dark);
  outline: none;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.02);
}

.textarea-input-enterprise {
  padding-top: 22px;
  resize: vertical;
  min-height: 120px;
  line-height: 1.5;
}

.floating-label {
  position: absolute;
  left: 16px;
  top: 16px;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text-gray);
  pointer-events: none;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  transform-origin: left top;
}

/* When focused or filled (placeholder NOT shown) */
.form-input-enterprise:focus~.floating-label,
.form-input-enterprise:not(:placeholder-shown)~.floating-label {
  transform: translateY(-8px) scale(0.78);
  color: var(--primary-color);
  font-weight: 600;
}

/* Bottom focus line animation */
.input-focus-line {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--primary-color);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  transform: translateX(-50%);
  border-radius: 2px;
}

.form-input-enterprise:focus~.input-focus-line {
  width: 100%;
}

.form-input-enterprise:focus {
  background: var(--bg-white);
  border-color: rgba(0, 86, 161, 0.3);
  box-shadow: 0 4px 16px rgba(0, 86, 161, 0.04),
    inset 0 1px 2px rgba(0, 0, 0, 0.01);
}

/* Validation Dot Indicator */
.validation-dot {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: transparent;
  pointer-events: none;
  transition: all 0.3s ease;
}

.textarea-input-enterprise~.validation-dot {
  top: 24px;
}

/* Validation styling driven by JS classes */
.floating-group.is-valid .form-input-enterprise {
  border-color: rgba(34, 197, 94, 0.3);
}

.floating-group.is-valid .validation-dot {
  background: #22c55e;
  box-shadow: 0 0 8px #22c55e;
}

.floating-group.is-valid .form-input-enterprise:focus~.input-focus-line {
  background: #22c55e;
}

.floating-group.is-valid .floating-label {
  color: #16a34a;
}

.floating-group.is-invalid .form-input-enterprise {
  border-color: rgba(239, 68, 68, 0.35);
  background: rgba(254, 242, 242, 0.4);
}

.floating-group.is-invalid .validation-dot {
  background: #ef4444;
  box-shadow: 0 0 8px #ef4444;
}

.floating-group.is-invalid .form-input-enterprise:focus~.input-focus-line {
  background: #ef4444;
}

.floating-group.is-invalid .floating-label {
  color: #dc2626;
}

/* SELECT FIELD CUSTOM STYLING */
.select-group {
  position: relative;
}

.select-input-enterprise {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

.select-arrow {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-gray);
  pointer-events: none;
  transition: transform 0.3s ease;
  display: flex;
  align-items: center;
}

.select-arrow svg {
  width: 18px;
  height: 18px;
}

.select-input-enterprise:focus~.select-arrow {
  transform: translateY(-50%) rotate(180deg);
  color: var(--primary-color);
}

/* CORPORATE EMAIL BADGE */
.corp-email-badge {
  position: absolute;
  right: 28px;
  top: 6px;
  background: rgba(34, 197, 94, 0.1);
  color: #16a34a;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  opacity: 0;
  transform: translateY(-5px);
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.corp-email-badge.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* PRIORITY SWITCH (iOS / macOS STYLE) */
.priority-switch-wrapper {
  background: rgba(0, 86, 161, 0.03);
  border: 1px solid rgba(0, 86, 161, 0.04);
  padding: 18px 20px;
  border-radius: 14px;
  margin-bottom: 32px;
  transition: all 0.3s ease;
}

.priority-switch-wrapper:hover {
  background: rgba(0, 86, 161, 0.05);
  border-color: rgba(0, 86, 161, 0.08);
}

.priority-switch-label {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  cursor: pointer;
}

.switch-ui {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
  flex-shrink: 0;
  margin-top: 2px;
}

.switch-ui input {
  opacity: 0;
  width: 0;
  height: 0;
}

.switch-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(15, 23, 42, 0.15);
  transition: .3s cubic-bezier(0.16, 1, 0.3, 1);
  border-radius: 34px;
}

.switch-slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: .3s cubic-bezier(0.16, 1, 0.3, 1);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.switch-ui input:checked+.switch-slider {
  background-color: var(--primary-color);
}

.switch-ui input:checked+.switch-slider:before {
  transform: translateX(20px);
}

.switch-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.switch-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
}

.switch-desc {
  font-size: 0.82rem;
  color: var(--text-secondary);
  line-height: 1.4;
}

/* PREMIUM SUBMIT BUTTON */
.btn-submit-enterprise {
  width: 100%;
  background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);
  color: var(--bg-white);
  border: none;
  padding: 18px 24px;
  border-radius: 12px;
  font-size: 1.05rem;
  font-weight: 600;
  font-family: 'Outfit', sans-serif;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 8px 24px rgba(0, 86, 161, 0.16),
    0 2px 6px rgba(0, 86, 161, 0.08);
}

.btn-submit-enterprise:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(0, 86, 161, 0.24),
    0 4px 10px rgba(0, 86, 161, 0.12);
  background: linear-gradient(135deg, #0060b3 0%, #004685 100%);
}

.btn-submit-enterprise:active {
  transform: translateY(0);
  box-shadow: 0 4px 12px rgba(0, 86, 161, 0.16);
}

.btn-text-loading {
  display: none;
  align-items: center;
  gap: 10px;
}

.btn-submit-enterprise.is-loading {
  pointer-events: none;
  background: var(--primary-dark);
  opacity: 0.9;
}

.btn-submit-enterprise.is-loading .btn-text-normal {
  display: none;
}

.btn-submit-enterprise.is-loading .btn-text-loading {
  display: flex;
}

/* Spinner Animation */
.spinner-svg {
  animation: rotate-ent 2s linear infinite;
  width: 20px;
  height: 20px;
}

.spinner-path {
  stroke-linecap: round;
  animation: dash-ent 1.5s ease-in-out infinite;
}

@keyframes rotate-ent {
  100% {
    transform: rotate(360deg);
  }
}

@keyframes dash-ent {
  0% {
    stroke-dasharray: 1, 150;
    stroke-dashoffset: 0;
  }

  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -35;
  }

  100% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -124;
  }
}

/* SUCCESS STATE STYLING (APPLE INSPIRED SUCCESS CARD) */
.success-state-enterprise {
  text-align: center;
  padding: 30px 10px;
  animation: fade-scale-in-ent 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes fade-scale-in-ent {
  from {
    opacity: 0;
    transform: scale(0.95) translateY(10px);
  }

  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.success-icon-wrap {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: rgba(34, 197, 94, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #22c55e;
  margin: 0 auto 28px auto;
  box-shadow: 0 10px 24px rgba(34, 197, 94, 0.15);
}

.success-icon-wrap svg {
  width: 40px;
  height: 40px;
}

/* Animated Checkmark path */
.checkmark-circle {
  stroke-dasharray: 166;
  stroke-dashoffset: 166;
  stroke-width: 2;
  stroke-miterlimit: 10;
  stroke: #22c55e;
  fill: none;
  animation: stroke-circle-ent 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}

.checkmark-check {
  transform-origin: 50% 50%;
  stroke-dasharray: 48;
  stroke-dashoffset: 48;
  stroke-width: 3;
  stroke: #22c55e;
  fill: none;
  animation: stroke-check-ent 0.4s cubic-bezier(0.65, 0, 0.45, 1) 0.5s forwards;
}

@keyframes stroke-circle-ent {
  100% {
    stroke-dashoffset: 0;
  }
}

@keyframes stroke-check-ent {
  100% {
    stroke-dashoffset: 0;
  }
}

.success-title-ent {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 12px;
  letter-spacing: -0.5px;
}

.success-desc-ent {
  font-size: 0.98rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: 28px;
}

.success-desc-ent strong {
  color: var(--text-primary);
}

.ticket-container {
  background: var(--bg-white);
  border: 1px solid rgba(0, 86, 161, 0.06);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 32px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ticket-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
}

.ticket-label {
  color: var(--text-light);
  font-weight: 500;
}

.ticket-value {
  font-weight: 600;
  color: var(--text-dark);
}

.ticket-value.highlight-blue {
  color: var(--primary-color);
  font-family: 'Outfit', sans-serif;
  letter-spacing: 0.5px;
}

.btn-success-reset {
  background: var(--bg-soft);
  color: var(--primary-color);
  border: 1px solid rgba(0, 86, 161, 0.1);
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  display: inline-block;
  font-family: 'Inter', sans-serif;
}

.btn-success-reset:hover {
  background: rgba(0, 86, 161, 0.08);
  color: var(--primary-dark);
  border-color: rgba(0, 86, 161, 0.15);
}


/* RESPONSIVE DESIGN BREAKPOINTS */
@media (max-width: 1024px) {
  .contact-grid {
    gap: 40px;
  }

  .info-title {
    font-size: 2.3rem;
  }
}

@media (max-width: 968px) {
  .contact-grid {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .contact-info-col {
    padding-right: 0;
  }

  .contact-card-premium {
    padding: 36px;
  }
}

@media (max-width: 600px) {
  .contact-section-enterprise {
    padding: 60px 0;
  }

  .info-title {
    font-size: 2rem;
  }

  .form-row-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .contact-card-premium {
    padding: 24px 20px;
    border-radius: 16px;
  }

  .quick-contact-card {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

.contact-section-enterprise {
  padding: 100px 0;
  background: linear-gradient(180deg, #fcfdfe 0%, #f1f5f9 50%, #e2e8f0 100%);
  position: relative;
  overflow: hidden;
  font-family: 'Outfit', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Background elements for premium visual texture */
.contact-section-enterprise::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: radial-gradient(circle at 80% 20%, rgba(0, 86, 161, 0.04) 0%, transparent 50%),
    radial-gradient(circle at 10% 85%, rgba(0, 201, 255, 0.03) 0%, transparent 40%);
  z-index: 0;
  pointer-events: none;
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 80px;
  align-items: start;
  position: relative;
  z-index: 1;
}

/* LEFT COLUMN: BRAND PROPOSITION & CERTIFICATIONS */
.contact-info-col {
  color: var(--text-dark);
  padding-right: 20px;
}

.info-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 86, 161, 0.06);
  color: var(--primary-color);
  padding: 6px 14px;
  border-radius: 100px;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  margin-bottom: 24px;
  border: 1px solid rgba(0, 86, 161, 0.1);
}

.info-badge-dot {
  width: 6px;
  height: 6px;
  background-color: var(--accent-color);
  border-radius: 50%;
  display: inline-block;
  box-shadow: 0 0 8px var(--accent-color);
  animation: pulse-dot-ent 2s infinite;
}

@keyframes pulse-dot-ent {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(0, 201, 255, 0.7);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 6px rgba(0, 201, 255, 0);
  }

  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(0, 201, 255, 0);
  }
}

.info-title {
  font-size: 2.75rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--text-primary);
  margin-bottom: 20px;
  letter-spacing: -0.8px;
}

.info-desc {
  font-size: 1.1rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 40px;
}

.info-features {
  display: flex;
  flex-direction: column;
  gap: 28px;
  margin-bottom: 40px;
}

.feature-item {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

.feature-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--bg-white);
  border: 1px solid rgba(0, 86, 161, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--primary-color);
  flex-shrink: 0;
  box-shadow: var(--shadow-sm);
  transition: all 0.3s ease;
}

.feature-item:hover .feature-icon {
  transform: translateY(-2px);
  color: var(--accent-color);
  border-color: rgba(0, 201, 255, 0.3);
  box-shadow: 0 6px 16px rgba(0, 201, 255, 0.1);
}

.feature-icon svg {
  width: 22px;
  height: 22px;
}

.feature-text h3 {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 6px;
}

.feature-text p {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

/* CERTIFICATIONS BLOCK */
.certifications-block {
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(0, 86, 161, 0.05);
  padding: 24px;
  border-radius: 16px;
  margin-bottom: 40px;
  box-shadow: 0 4px 20px rgba(0, 86, 161, 0.02);
}

.cert-title {
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 14px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.cert-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.cert-pill-item {
  padding: 6px 14px;
  border-radius: 8px;
  background: var(--bg-white);
  border: 1px solid var(--border-color);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text-dark);
  cursor: help;
  position: relative;
  transition: all 0.2s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}

.cert-pill-item:hover {
  background: var(--primary-dark);
  color: var(--bg-white);
  border-color: var(--primary-dark);
  transform: translateY(-1px);
}

.cert-pill-item.cert-blue {
  border-color: rgba(0, 86, 161, 0.15);
  color: var(--primary-color);
}

.cert-pill-item.cert-blue:hover {
  background: var(--primary-color);
  color: var(--bg-white);
  border-color: var(--primary-color);
}

/* CSS Tooltip styling */
.cert-pill-item::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 125%;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  background: rgba(15, 23, 42, 0.95);
  color: #fff;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 400;
  width: 200px;
  text-align: center;
  line-height: 1.4;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: var(--shadow-lg);
  z-index: 10;
}

.cert-pill-item:hover::after {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

/* QUICK CONTACT CARD */
.quick-contact-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.quick-item {
  background: var(--bg-white);
  border: 1px solid rgba(0, 86, 161, 0.05);
  padding: 16px 20px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: var(--shadow-sm);
}

.quick-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(0, 86, 161, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--primary-color);
  flex-shrink: 0;
}

.quick-icon svg {
  width: 18px;
  height: 18px;
}

.quick-label {
  display: block;
  font-size: 0.75rem;
  color: var(--text-light);
  font-weight: 500;
  text-transform: uppercase;
}

.quick-val {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-dark);
  transition: color 0.2s ease;
}

.quick-val:hover {
  color: var(--accent-color);
}

/* RIGHT COLUMN: PREMIUM FORM CARD (GLASSMORPHISM) */
.contact-card-premium {
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 24px;
  padding: 48px;
  box-shadow: 0 20px 50px rgba(0, 86, 161, 0.04),
    0 4px 12px rgba(0, 0, 0, 0.01),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
  position: relative;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.contact-card-premium:hover {
  transform: translateY(-4px);
  box-shadow: 0 30px 60px rgba(0, 86, 161, 0.08),
    0 12px 24px rgba(0, 86, 161, 0.02),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  border-color: rgba(255, 255, 255, 0.85);
}

.card-header-enterprise {
  margin-bottom: 36px;
}

.card-title-enterprise {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.5px;
  margin-bottom: 8px;
}

.card-subtitle-enterprise {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.5;
}

/* FLOATING LABELS FORM SYSTEM */
.floating-group {
  position: relative;
  margin-bottom: 28px;
  width: 100%;
}

.form-row-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.form-input-enterprise {
  width: 100%;
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 12px;
  padding: 18px 16px 8px 16px;
  /* High top padding to fit floating label */
  font-size: 0.98rem;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  color: var(--text-dark);
  outline: none;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.02);
}

.textarea-input-enterprise {
  padding-top: 22px;
  resize: vertical;
  min-height: 120px;
  line-height: 1.5;
}

.floating-label {
  position: absolute;
  left: 16px;
  top: 16px;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text-gray);
  pointer-events: none;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  transform-origin: left top;
}

/* When focused or filled (placeholder NOT shown) */
.form-input-enterprise:focus~.floating-label,
.form-input-enterprise:not(:placeholder-shown)~.floating-label {
  transform: translateY(-8px) scale(0.78);
  color: var(--primary-color);
  font-weight: 600;
}

/* Bottom focus line animation */
.input-focus-line {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--primary-color);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  transform: translateX(-50%);
  border-radius: 2px;
}

.form-input-enterprise:focus~.input-focus-line {
  width: 100%;
}

.form-input-enterprise:focus {
  background: var(--bg-white);
  border-color: rgba(0, 86, 161, 0.3);
  box-shadow: 0 4px 16px rgba(0, 86, 161, 0.04),
    inset 0 1px 2px rgba(0, 0, 0, 0.01);
}

/* Validation Dot Indicator */
.validation-dot {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: transparent;
  pointer-events: none;
  transition: all 0.3s ease;
}

.textarea-input-enterprise~.validation-dot {
  top: 24px;
}

/* Validation styling driven by JS classes */
.floating-group.is-valid .form-input-enterprise {
  border-color: rgba(34, 197, 94, 0.3);
}

.floating-group.is-valid .validation-dot {
  background: #22c55e;
  box-shadow: 0 0 8px #22c55e;
}

.floating-group.is-valid .form-input-enterprise:focus~.input-focus-line {
  background: #22c55e;
}

.floating-group.is-valid .floating-label {
  color: #16a34a;
}

.floating-group.is-invalid .form-input-enterprise {
  border-color: rgba(239, 68, 68, 0.35);
  background: rgba(254, 242, 242, 0.4);
}

.floating-group.is-invalid .validation-dot {
  background: #ef4444;
  box-shadow: 0 0 8px #ef4444;
}

.floating-group.is-invalid .form-input-enterprise:focus~.input-focus-line {
  background: #ef4444;
}

.floating-group.is-invalid .floating-label {
  color: #dc2626;
}

/* SELECT FIELD CUSTOM STYLING */
.select-group {
  position: relative;
}

.select-input-enterprise {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

.select-arrow {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-gray);
  pointer-events: none;
  transition: transform 0.3s ease;
  display: flex;
  align-items: center;
}

.select-arrow svg {
  width: 18px;
  height: 18px;
}

.select-input-enterprise:focus~.select-arrow {
  transform: translateY(-50%) rotate(180deg);
  color: var(--primary-color);
}

/* CORPORATE EMAIL BADGE */
.corp-email-badge {
  position: absolute;
  right: 28px;
  top: 6px;
  background: rgba(34, 197, 94, 0.1);
  color: #16a34a;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  opacity: 0;
  transform: translateY(-5px);
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.corp-email-badge.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* PRIORITY SWITCH (iOS / macOS STYLE) */
.priority-switch-wrapper {
  background: rgba(0, 86, 161, 0.03);
  border: 1px solid rgba(0, 86, 161, 0.04);
  padding: 18px 20px;
  border-radius: 14px;
  margin-bottom: 32px;
  transition: all 0.3s ease;
}

.priority-switch-wrapper:hover {
  background: rgba(0, 86, 161, 0.05);
  border-color: rgba(0, 86, 161, 0.08);
}

.priority-switch-label {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  cursor: pointer;
}

.switch-ui {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
  flex-shrink: 0;
  margin-top: 2px;
}

.switch-ui input {
  opacity: 0;
  width: 0;
  height: 0;
}

.switch-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(15, 23, 42, 0.15);
  transition: .3s cubic-bezier(0.16, 1, 0.3, 1);
  border-radius: 34px;
}

.switch-slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: .3s cubic-bezier(0.16, 1, 0.3, 1);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.switch-ui input:checked+.switch-slider {
  background-color: var(--primary-color);
}

.switch-ui input:checked+.switch-slider:before {
  transform: translateX(20px);
}

.switch-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.switch-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
}

.switch-desc {
  font-size: 0.82rem;
  color: var(--text-secondary);
  line-height: 1.4;
}

/* PREMIUM SUBMIT BUTTON */
.btn-submit-enterprise {
  width: 100%;
  background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);
  color: var(--bg-white);
  border: none;
  padding: 18px 24px;
  border-radius: 12px;
  font-size: 1.05rem;
  font-weight: 600;
  font-family: 'Outfit', sans-serif;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 8px 24px rgba(0, 86, 161, 0.16),
    0 2px 6px rgba(0, 86, 161, 0.08);
}

.btn-submit-enterprise:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(0, 86, 161, 0.24),
    0 4px 10px rgba(0, 86, 161, 0.12);
  background: linear-gradient(135deg, #0060b3 0%, #004685 100%);
}

.btn-submit-enterprise:active {
  transform: translateY(0);
  box-shadow: 0 4px 12px rgba(0, 86, 161, 0.16);
}

.btn-text-loading {
  display: none;
  align-items: center;
  gap: 10px;
}

.btn-submit-enterprise.is-loading {
  pointer-events: none;
  background: var(--primary-dark);
  opacity: 0.9;
}

.btn-submit-enterprise.is-loading .btn-text-normal {
  display: none;
}

.btn-submit-enterprise.is-loading .btn-text-loading {
  display: flex;
}

/* Spinner Animation */
.spinner-svg {
  animation: rotate-ent 2s linear infinite;
  width: 20px;
  height: 20px;
}

.spinner-path {
  stroke-linecap: round;
  animation: dash-ent 1.5s ease-in-out infinite;
}

@keyframes rotate-ent {
  100% {
    transform: rotate(360deg);
  }
}

@keyframes dash-ent {
  0% {
    stroke-dasharray: 1, 150;
    stroke-dashoffset: 0;
  }

  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -35;
  }

  100% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -124;
  }
}

/* SUCCESS STATE STYLING (APPLE INSPIRED SUCCESS CARD) */
.success-state-enterprise {
  text-align: center;
  padding: 30px 10px;
  animation: fade-scale-in-ent 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes fade-scale-in-ent {
  from {
    opacity: 0;
    transform: scale(0.95) translateY(10px);
  }

  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.success-icon-wrap {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: rgba(34, 197, 94, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #22c55e;
  margin: 0 auto 28px auto;
  box-shadow: 0 10px 24px rgba(34, 197, 94, 0.15);
}

.success-icon-wrap svg {
  width: 40px;
  height: 40px;
}

/* Animated Checkmark path */
.checkmark-circle {
  stroke-dasharray: 166;
  stroke-dashoffset: 166;
  stroke-width: 2;
  stroke-miterlimit: 10;
  stroke: #22c55e;
  fill: none;
  animation: stroke-circle-ent 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}

.checkmark-check {
  transform-origin: 50% 50%;
  stroke-dasharray: 48;
  stroke-dashoffset: 48;
  stroke-width: 3;
  stroke: #22c55e;
  fill: none;
  animation: stroke-check-ent 0.4s cubic-bezier(0.65, 0, 0.45, 1) 0.5s forwards;
}

@keyframes stroke-circle-ent {
  100% {
    stroke-dashoffset: 0;
  }
}

@keyframes stroke-check-ent {
  100% {
    stroke-dashoffset: 0;
  }
}

.success-title-ent {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 12px;
  letter-spacing: -0.5px;
}

.success-desc-ent {
  font-size: 0.98rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: 28px;
}

.success-desc-ent strong {
  color: var(--text-primary);
}

.ticket-container {
  background: var(--bg-white);
  border: 1px solid rgba(0, 86, 161, 0.06);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 32px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ticket-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
}

.ticket-label {
  color: var(--text-light);
  font-weight: 500;
}

.ticket-value {
  font-weight: 600;
  color: var(--text-dark);
}

.ticket-value.highlight-blue {
  color: var(--primary-color);
  font-family: 'Outfit', sans-serif;
  letter-spacing: 0.5px;
}

.btn-success-reset {
  background: var(--bg-soft);
  color: var(--primary-color);
  border: 1px solid rgba(0, 86, 161, 0.1);
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  display: inline-block;
  font-family: 'Inter', sans-serif;
}

.btn-success-reset:hover {
  background: rgba(0, 86, 161, 0.08);
  color: var(--primary-dark);
  border-color: rgba(0, 86, 161, 0.15);
}

/* RESPONSIVE DESIGN BREAKPOINTS */
@media (max-width: 1024px) {
  .contact-grid {
    gap: 40px;
  }

  .info-title {
    font-size: 2.3rem;
  }
}

@media (max-width: 968px) {
  .contact-grid {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .contact-info-col {
    padding-right: 0;
  }

  .contact-card-premium {
    padding: 36px;
  }
}

@media (max-width: 600px) {
  .contact-section-enterprise {
    padding: 60px 0;
  }

  .info-title {
    font-size: 2rem;
  }

  .form-row-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .contact-card-premium {
    padding: 24px 20px;
    border-radius: 16px;
  }

  .quick-contact-card {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}