/*
Theme Name: Basotra Infratech
Theme URI: https://basotra.com
Author: Basotra Infratech Pvt. Ltd.
Author URI: https://basotra.com
Description: Premium IT Infrastructure & Security Solutions — Full Elementor Page Builder Support
Version: 2.0.0
License: Proprietary
Text Domain: basotra-infratech
Tags: business, technology, corporate, security, infrastructure, elementor, elementor-adapter
*/

/* ============================================
   CSS VARIABLES & RESET
   ============================================ */
:root {
  --navy: #1A2A7A;
  --navy-dark: #0F1A55;
  --navy-deeper: #0A1038;
  --gold: #F5A623;
  --gold-light: #FFD166;
  --gold-dark: #D4851A;
  --white: #FFFFFF;
  --off-white: #F4F6FB;
  --light-gray: #E8EDF8;
  --mid-gray: #8A9BC0;
  --text-body: #3A4A6B;
  --text-light: #6B7DB5;
  --card-bg: rgba(255,255,255,0.97);
  --shadow-sm: 0 4px 20px rgba(26,42,122,0.08);
  --shadow-md: 0 12px 48px rgba(26,42,122,0.14);
  --shadow-lg: 0 24px 80px rgba(26,42,122,0.22);
  --shadow-gold: 0 8px 32px rgba(245,166,35,0.3);
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 40px;
  --transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --transition-fast: all 0.18s ease;
}

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

html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: 'DM Sans', 'Segoe UI', sans-serif;
  color: var(--text-body);
  background: var(--white);
  line-height: 1.65;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }

/* ============================================
   TYPOGRAPHY
   ============================================ */
.display-xl {
  font-family: 'Syne', 'Barlow', sans-serif;
  font-size: clamp(3rem, 7vw, 6rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
}
.display-lg {
  font-family: 'Syne', 'Barlow', sans-serif;
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.display-md {
  font-family: 'Syne', 'Barlow', sans-serif;
  font-size: clamp(1.5rem, 2.5vw, 2.25rem);
  font-weight: 700;
  line-height: 1.25;
}
.text-gold { color: var(--gold); }
.text-navy { color: var(--navy); }
.text-white { color: var(--white); }

/* ============================================
   NAVBAR
   ============================================ */
#site-navbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  padding: 0 2rem;
  transition: var(--transition);
}

#site-navbar.scrolled {
  background: rgba(10, 16, 56, 0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 2px 40px rgba(0,0,0,0.3);
  padding: 0 2rem;
}

.navbar-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
}

.navbar-logo {
  display: flex;
  align-items: center;
  gap: 12px;
}

.logo-icon {
  width: 44px; height: 44px;
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-dark) 100%);
  border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  box-shadow: var(--shadow-gold);
}

.logo-text {
  display: flex; flex-direction: column; line-height: 1;
}

.logo-main {
  font-family: 'Syne', sans-serif;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--white);
  letter-spacing: 0.02em;
}

.logo-sub {
  font-size: 0.65rem;
  color: var(--gold);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 500;
}

.navbar-menu {
  display: flex; align-items: center; gap: 2.5rem;
}

.nav-link {
  color: rgba(255,255,255,0.82);
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  position: relative;
  transition: var(--transition-fast);
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px; left: 0;
  width: 0; height: 2px;
  background: var(--gold);
  transition: var(--transition-fast);
  border-radius: 2px;
}

.nav-link:hover { color: var(--white); }
.nav-link:hover::after { width: 100%; }

.nav-cta {
  background: var(--gold);
  color: var(--navy-dark) !important;
  padding: 10px 24px;
  border-radius: var(--radius-xl);
  font-weight: 700;
  font-size: 0.875rem;
  transition: var(--transition);
  box-shadow: var(--shadow-gold);
}

.nav-cta:hover {
  background: var(--gold-light);
  transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(245,166,35,0.45);
}

.nav-cta::after { display: none; }

.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}

.hamburger span {
  display: block;
  width: 26px; height: 2px;
  background: var(--white);
  border-radius: 2px;
  transition: var(--transition-fast);
}

/* ============================================
   HERO SECTION
   ============================================ */
#hero {
  position: relative;
  min-height: 100vh;
  display: flex; align-items: center;
  background: var(--navy-deeper);
  overflow: hidden;
  padding: 120px 2rem 80px;
}

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

.hero-grid {
  position: absolute; inset: 0;
  background-image: 
    linear-gradient(rgba(245,166,35,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,166,35,0.06) 1px, transparent 1px);
  background-size: 60px 60px;
  animation: gridPulse 8s ease-in-out infinite;
}

@keyframes gridPulse {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 1; }
}

.hero-orb-1 {
  position: absolute;
  top: -20%;
  right: -10%;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(26,42,122,0.8) 0%, transparent 70%);
  border-radius: 50%;
  animation: orbFloat 12s ease-in-out infinite;
}

.hero-orb-2 {
  position: absolute;
  bottom: -30%;
  left: -15%;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(245,166,35,0.12) 0%, transparent 65%);
  border-radius: 50%;
  animation: orbFloat 15s ease-in-out infinite reverse;
}

.hero-orb-3 {
  position: absolute;
  top: 20%; right: 25%;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(245,166,35,0.08) 0%, transparent 70%);
  border-radius: 50%;
  animation: orbFloat 9s ease-in-out infinite 2s;
}

@keyframes orbFloat {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(30px, -40px) scale(1.05); }
  66% { transform: translate(-20px, 20px) scale(0.97); }
}

.hero-inner {
  position: relative; z-index: 1;
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  width: 100%;
}

.hero-content { }

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(245,166,35,0.15);
  border: 1px solid rgba(245,166,35,0.3);
  color: var(--gold);
  padding: 8px 18px;
  border-radius: var(--radius-xl);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 2rem;
  animation: fadeInUp 0.8s ease both;
}

.hero-badge .dot {
  width: 7px; height: 7px;
  background: var(--gold);
  border-radius: 50%;
  animation: pulse 2s ease infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(0.7); }
}

.hero-title {
  font-family: 'Syne', sans-serif;
  font-size: clamp(2.8rem, 5.5vw, 5.2rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--white);
  margin-bottom: 1.5rem;
  animation: fadeInUp 0.8s ease 0.1s both;
}

.hero-title .highlight {
  color: var(--gold);
  position: relative;
  display: inline-block;
}

.hero-title .highlight::after {
  content: '';
  position: absolute;
  bottom: 4px; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--gold), transparent);
  border-radius: 2px;
  animation: underlineExpand 1s ease 0.8s both;
  transform-origin: left;
}

@keyframes underlineExpand {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

.hero-description {
  font-size: 1.125rem;
  color: rgba(255,255,255,0.65);
  line-height: 1.75;
  max-width: 520px;
  margin-bottom: 2.5rem;
  animation: fadeInUp 0.8s ease 0.2s both;
}

.hero-actions {
  display: flex; align-items: center; gap: 1.25rem;
  flex-wrap: wrap;
  animation: fadeInUp 0.8s ease 0.3s both;
}

.btn-primary {
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--gold);
  color: var(--navy-dark);
  padding: 16px 36px;
  border-radius: var(--radius-xl);
  font-weight: 700;
  font-size: 1rem;
  transition: var(--transition);
  box-shadow: var(--shadow-gold);
  border: 2px solid transparent;
}

.btn-primary:hover {
  background: var(--gold-light);
  transform: translateY(-3px);
  box-shadow: 0 20px 60px rgba(245,166,35,0.5);
}

.btn-primary svg { transition: var(--transition-fast); }
.btn-primary:hover svg { transform: translateX(4px); }

.btn-secondary {
  display: inline-flex; align-items: center; gap: 10px;
  background: transparent;
  color: var(--white);
  padding: 16px 36px;
  border-radius: var(--radius-xl);
  font-weight: 600;
  font-size: 1rem;
  border: 2px solid rgba(255,255,255,0.2);
  transition: var(--transition);
}

.btn-secondary:hover {
  border-color: rgba(255,255,255,0.5);
  background: rgba(255,255,255,0.07);
  transform: translateY(-3px);
}

.hero-stats {
  display: flex; gap: 2.5rem;
  margin-top: 3rem;
  animation: fadeInUp 0.8s ease 0.4s both;
}

.stat-item { }

.stat-number {
  font-family: 'Syne', sans-serif;
  font-size: 2rem;
  font-weight: 800;
  color: var(--gold);
  line-height: 1;
}

.stat-label {
  font-size: 0.8rem;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-top: 4px;
}

/* Hero Visual */
.hero-visual {
  position: relative;
  animation: fadeInRight 1s ease 0.3s both;
}

.hero-card-stack {
  position: relative;
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
}

.hero-main-card {
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-lg);
  padding: 2.5rem;
  box-shadow: 0 40px 100px rgba(0,0,0,0.4);
}

.card-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1.75rem;
}

.card-title-sm {
  color: rgba(255,255,255,0.5);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}

.live-badge {
  display: flex; align-items: center; gap: 6px;
  background: rgba(39,174,96,0.2);
  border: 1px solid rgba(39,174,96,0.4);
  color: #27AE60;
  padding: 4px 10px;
  border-radius: var(--radius-xl);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.1em;
}

.live-badge .live-dot {
  width: 6px; height: 6px;
  background: #27AE60;
  border-radius: 50%;
  animation: pulse 1.5s ease infinite;
}

.services-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.service-mini-card {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-md);
  padding: 1.25rem;
  transition: var(--transition);
  cursor: default;
}

.service-mini-card:hover {
  background: rgba(245,166,35,0.1);
  border-color: rgba(245,166,35,0.3);
  transform: translateY(-3px);
}

.smc-icon {
  font-size: 1.5rem;
  margin-bottom: 0.6rem;
  display: block;
}

.smc-name {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--white);
  margin-bottom: 2px;
}

.smc-sub {
  font-size: 0.68rem;
  color: rgba(255,255,255,0.4);
}

.hero-float-badge {
  position: absolute;
  background: var(--gold);
  color: var(--navy-dark);
  padding: 10px 16px;
  border-radius: var(--radius-md);
  font-weight: 700;
  font-size: 0.8rem;
  box-shadow: var(--shadow-gold);
  white-space: nowrap;
}

.hfb-1 {
  top: -20px;
  right: -30px;
  animation: floatBadge1 6s ease-in-out infinite;
}

.hfb-2 {
  bottom: -20px;
  left: -30px;
  animation: floatBadge2 7s ease-in-out infinite;
}

@keyframes floatBadge1 {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-12px) rotate(2deg); }
}

@keyframes floatBadge2 {
  0%, 100% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(12px) rotate(-2deg); }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(40px); }
  to { opacity: 1; transform: translateX(0); }
}

/* ============================================
   PARTNERS TICKER
   ============================================ */
#partners-ticker {
  background: var(--navy-dark);
  border-top: 1px solid rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  padding: 1.5rem 0;
  overflow: hidden;
}

.ticker-track {
  display: flex;
  align-items: center;
  gap: 3rem;
  animation: tickerScroll 25s linear infinite;
  width: max-content;
}

.ticker-track:hover { animation-play-state: paused; }

@keyframes tickerScroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.ticker-item {
  display: flex; align-items: center; gap: 10px;
  color: rgba(255,255,255,0.35);
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.08em;
  white-space: nowrap;
  transition: var(--transition-fast);
  padding: 0 1rem;
}

.ticker-item:hover { color: rgba(255,255,255,0.7); }

.ticker-dot {
  width: 5px; height: 5px;
  background: var(--gold);
  border-radius: 50%;
  opacity: 0.4;
}

/* ============================================
   SECTION BASE
   ============================================ */
section {
  scroll-margin-top: 80px;
}

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

.section-header {
  text-align: center;
  margin-bottom: 4rem;
}

.section-eyebrow {
  display: inline-block;
  color: var(--gold);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 1rem;
  position: relative;
  padding: 0 2rem;
}

.section-eyebrow::before,
.section-eyebrow::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 24px; height: 1px;
  background: var(--gold);
}

.section-eyebrow::before { right: 100%; transform: translateX(50%); }
.section-eyebrow::after { left: 100%; transform: translateX(-50%); }

.section-title {
  font-family: 'Syne', sans-serif;
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  font-weight: 700;
  color: var(--navy-dark);
  line-height: 1.2;
  margin-bottom: 1rem;
}

.section-desc {
  font-size: 1.05rem;
  color: var(--text-light);
  max-width: 560px;
  margin: 0 auto;
  line-height: 1.7;
}

/* ============================================
   ABOUT / CORE VALUES
   ============================================ */
#about {
  padding: 100px 0;
  background: var(--off-white);
  position: relative;
  overflow: hidden;
}

#about::before {
  content: '';
  position: absolute;
  top: -100px; right: -100px;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(26,42,122,0.04) 0%, transparent 70%);
  border-radius: 50%;
}

.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.about-content { }

.about-body {
  font-size: 1.05rem;
  color: var(--text-light);
  line-height: 1.8;
  margin-bottom: 2rem;
}

.values-list {
  display: flex; flex-direction: column; gap: 1rem;
}

.value-item {
  display: flex; align-items: center; gap: 1rem;
  padding: 1rem 1.5rem;
  background: var(--white);
  border-radius: var(--radius-md);
  border-left: 4px solid var(--gold);
  box-shadow: var(--shadow-sm);
  transition: var(--transition);
}

.value-item:hover {
  transform: translateX(6px);
  box-shadow: var(--shadow-md);
}

.value-icon {
  font-size: 1.5rem;
  flex-shrink: 0;
}

.value-text strong {
  display: block;
  font-weight: 700;
  color: var(--navy);
  font-size: 0.95rem;
}

.value-text span {
  font-size: 0.82rem;
  color: var(--text-light);
}

.about-visual {
  position: relative;
}

.about-main-box {
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-deeper) 100%);
  border-radius: var(--radius-lg);
  padding: 3rem;
  color: var(--white);
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}

.about-main-box::before {
  content: '';
  position: absolute;
  top: -40%; right: -20%;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(245,166,35,0.15) 0%, transparent 70%);
  border-radius: 50%;
}

.amb-eyebrow {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 1rem;
}

.amb-heading {
  font-family: 'Syne', sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 2rem;
  line-height: 1.3;
}

.amb-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.amb-stat {
  padding: 1.25rem;
  background: rgba(255,255,255,0.07);
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255,255,255,0.1);
}

.amb-stat .num {
  font-family: 'Syne', sans-serif;
  font-size: 2.2rem;
  font-weight: 800;
  color: var(--gold);
  line-height: 1;
}

.amb-stat .lbl {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.5);
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.amb-tag {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 2rem;
  background: rgba(245,166,35,0.15);
  border: 1px solid rgba(245,166,35,0.3);
  color: var(--gold);
  padding: 8px 16px;
  border-radius: var(--radius-xl);
  font-size: 0.8rem;
  font-weight: 600;
}

/* ============================================
   PRODUCTS / SERVICES
   ============================================ */
#products {
  padding: 100px 0;
  background: var(--white);
}

.products-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
}

.product-card {
  background: var(--white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--light-gray);
  transition: var(--transition);
  position: relative;
}

.product-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
  border-color: transparent;
}

.product-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--navy), var(--navy-deeper));
  opacity: 0;
  transition: var(--transition);
  z-index: 0;
  border-radius: var(--radius-lg);
}

.product-card:hover::before { opacity: 0.03; }

.pc-header {
  padding: 2.5rem 2.5rem 1.5rem;
  position: relative; z-index: 1;
}

.pc-icon-wrap {
  width: 64px; height: 64px;
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.75rem;
  margin-bottom: 1.5rem;
  transition: var(--transition);
}

.product-card:hover .pc-icon-wrap {
  transform: scale(1.1) rotate(-5deg);
}

.icon-blue { background: rgba(26,42,122,0.08); }
.icon-gold { background: rgba(245,166,35,0.12); }
.icon-green { background: rgba(39,174,96,0.1); }
.icon-purple { background: rgba(126,87,194,0.1); }
.icon-orange { background: rgba(230,126,34,0.1); }
.icon-cyan { background: rgba(26,188,156,0.1); }

.pc-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--navy-dark);
  margin-bottom: 0.5rem;
}

.pc-sub {
  font-size: 0.8rem;
  color: var(--gold);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
}

.pc-desc {
  font-size: 0.9rem;
  color: var(--text-light);
  line-height: 1.65;
}

.pc-body {
  padding: 0 2.5rem 2.5rem;
  position: relative; z-index: 1;
}

.pc-features {
  list-style: none;
  margin-bottom: 1.75rem;
}

.pc-features li {
  display: flex; align-items: center; gap: 10px;
  font-size: 0.875rem;
  color: var(--text-body);
  padding: 6px 0;
  border-bottom: 1px solid var(--light-gray);
}

.pc-features li:last-child { border: none; }

.pc-features .check {
  width: 18px; height: 18px;
  background: rgba(26,42,122,0.08);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  font-size: 0.65rem;
  color: var(--navy);
}

.pc-tag {
  display: inline-flex; align-items: center;
  background: var(--off-white);
  color: var(--navy);
  padding: 6px 14px;
  border-radius: var(--radius-xl);
  font-size: 0.78rem;
  font-weight: 600;
  border: 1px solid var(--light-gray);
  transition: var(--transition);
}

.product-card:hover .pc-tag {
  background: var(--navy);
  color: var(--white);
  border-color: var(--navy);
}

/* ============================================
   SURVEILLANCE FEATURE
   ============================================ */
#surveillance {
  padding: 100px 0;
  background: var(--navy-deeper);
  position: relative;
  overflow: hidden;
}

#surveillance::before {
  content: '';
  position: absolute; inset: 0;
  background-image: 
    linear-gradient(rgba(245,166,35,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,166,35,0.04) 1px, transparent 1px);
  background-size: 80px 80px;
}

.surv-inner {
  position: relative; z-index: 1;
}

.surv-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 4rem;
  align-items: center;
}

.surv-content .section-title { color: var(--white); }
.surv-content .section-desc { color: rgba(255,255,255,0.55); text-align: left; }

.surv-content .section-header { text-align: left; }

.camera-types {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 2.5rem;
}

.cam-card {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-md);
  padding: 1.5rem;
  transition: var(--transition);
}

.cam-card:hover {
  background: rgba(245,166,35,0.08);
  border-color: rgba(245,166,35,0.25);
  transform: translateY(-4px);
}

.cam-num {
  font-size: 0.68rem;
  color: var(--gold);
  font-weight: 700;
  letter-spacing: 0.15em;
  margin-bottom: 0.75rem;
}

.cam-name {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: 0.4rem;
}

.cam-desc {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.45);
  line-height: 1.5;
}

/* NVR Dashboard Visual */
.nvr-dashboard {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 40px 100px rgba(0,0,0,0.5);
}

.nvr-header {
  background: rgba(255,255,255,0.06);
  padding: 1rem 1.5rem;
  display: flex; align-items: center; justify-content: space-between;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.nvr-title {
  font-size: 0.8rem;
  font-weight: 600;
  color: rgba(255,255,255,0.6);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.nvr-live {
  display: flex; align-items: center; gap: 6px;
  background: rgba(231,76,60,0.2);
  border: 1px solid rgba(231,76,60,0.4);
  color: #E74C3C;
  padding: 4px 10px;
  border-radius: var(--radius-xl);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.nvr-live .rec-dot {
  width: 6px; height: 6px;
  background: #E74C3C;
  border-radius: 50%;
  animation: pulse 1.2s ease infinite;
}

.cam-feeds {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  padding: 2px;
}

.cam-feed {
  background: rgba(0,0,0,0.5);
  aspect-ratio: 4/3;
  position: relative;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}

.cf-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(26,42,122,0.3) 0%, rgba(0,0,0,0.8) 100%);
}

.cf-grid-overlay {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(245,166,35,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,166,35,0.05) 1px, transparent 1px);
  background-size: 20px 20px;
}

.cf-label {
  position: absolute;
  top: 8px; left: 8px;
  font-size: 0.6rem;
  font-weight: 600;
  color: var(--gold);
  background: rgba(0,0,0,0.5);
  padding: 2px 6px;
  border-radius: 3px;
  letter-spacing: 0.08em;
}

.cf-icon {
  position: relative; z-index: 1;
  font-size: 2rem;
  opacity: 0.3;
}

.cf-status {
  position: absolute;
  bottom: 8px; right: 8px;
  width: 8px; height: 8px;
  background: #27AE60;
  border-radius: 50%;
  animation: pulse 2s ease infinite;
}

.nvr-footer {
  padding: 1rem 1.5rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  display: flex; align-items: center; justify-content: space-between;
}

.storage-bar-wrap {
  flex: 1;
  margin-right: 1.5rem;
}

.storage-label {
  display: flex; justify-content: space-between;
  font-size: 0.7rem;
  color: rgba(255,255,255,0.4);
  margin-bottom: 5px;
}

.storage-bar {
  height: 6px;
  background: rgba(255,255,255,0.1);
  border-radius: 3px;
  overflow: hidden;
}

.storage-fill {
  height: 100%;
  width: 75%;
  background: linear-gradient(90deg, var(--gold), var(--gold-dark));
  border-radius: 3px;
  animation: storageLoad 2s ease;
}

@keyframes storageLoad {
  from { width: 0; }
  to { width: 75%; }
}

.storage-info {
  font-size: 0.7rem;
  color: var(--gold);
  font-weight: 600;
}

/* ============================================
   NETWORKING
   ============================================ */
#networking {
  padding: 100px 0;
  background: var(--off-white);
}

.networking-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 4rem;
  align-items: center;
}

.net-cards {
  display: flex; flex-direction: column; gap: 1.25rem;
}

.net-card {
  display: flex; gap: 1.5rem; align-items: flex-start;
  background: var(--white);
  border-radius: var(--radius-md);
  padding: 1.75rem;
  box-shadow: var(--shadow-sm);
  border: 1px solid transparent;
  transition: var(--transition);
}

.net-card:hover {
  box-shadow: var(--shadow-md);
  border-color: rgba(26,42,122,0.1);
  transform: translateX(8px);
}

.nc-icon {
  width: 56px; height: 56px; flex-shrink: 0;
  background: rgba(26,42,122,0.07);
  border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem;
  transition: var(--transition);
}

.net-card:hover .nc-icon {
  background: var(--navy);
  color: var(--white);
}

.nc-body { }

.nc-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--navy-dark);
  margin-bottom: 0.35rem;
}

.nc-desc {
  font-size: 0.875rem;
  color: var(--text-light);
  line-height: 1.6;
  margin-bottom: 0.75rem;
}

.nc-tags {
  display: flex; gap: 0.5rem; flex-wrap: wrap;
}

.tag-chip {
  font-size: 0.72rem;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: var(--radius-xl);
  background: rgba(26,42,122,0.07);
  color: var(--navy);
  border: 1px solid rgba(26,42,122,0.12);
}

/* Network Topology Diagram */
.net-diagram {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: var(--shadow-md);
  border: 1px solid var(--light-gray);
}

.nd-title {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--text-light);
  font-weight: 600;
  margin-bottom: 1.5rem;
  text-align: center;
}

.topology {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

.topo-level {
  display: flex;
  gap: 1.5rem;
  justify-content: center;
  position: relative;
}

.topo-node {
  display: flex; flex-direction: column; align-items: center;
  gap: 6px;
}

.tn-icon {
  width: 56px; height: 56px;
  background: var(--navy);
  border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  box-shadow: var(--shadow-md);
  position: relative;
  z-index: 1;
  transition: var(--transition);
}

.tn-icon:hover { transform: scale(1.1); background: var(--navy-deeper); }

.tn-icon.gold-bg { background: var(--gold); }
.tn-icon.light-bg { background: var(--off-white); border: 2px solid var(--light-gray); }

.tn-label {
  font-size: 0.65rem;
  font-weight: 600;
  color: var(--text-light);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-align: center;
}

.topo-connector {
  width: 2px;
  height: 32px;
  background: linear-gradient(to bottom, var(--navy), rgba(26,42,122,0.2));
  margin: 0 auto;
}

.topo-h-line {
  height: 2px;
  background: linear-gradient(to right, rgba(26,42,122,0.2), var(--navy), rgba(26,42,122,0.2));
  width: 80%;
  margin: 0 auto;
}

/* ============================================
   POWER / UPS
   ============================================ */
#power {
  padding: 100px 0;
  background: var(--white);
}

.power-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.power-card {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 2.5rem;
  border: 2px solid var(--light-gray);
  position: relative; overflow: hidden;
  transition: var(--transition);
  box-shadow: var(--shadow-sm);
}

.power-card:hover {
  border-color: var(--navy);
  box-shadow: var(--shadow-lg);
  transform: translateY(-6px);
}

.power-card.featured {
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-deeper) 100%);
  border-color: transparent;
  color: var(--white);
}

.pc-bg-decor {
  position: absolute;
  top: -40px; right: -40px;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(245,166,35,0.15) 0%, transparent 70%);
  border-radius: 50%;
}

.pw-icon {
  font-size: 2.5rem;
  margin-bottom: 1.25rem;
  display: block;
}

.pw-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.power-card:not(.featured) .pw-title { color: var(--navy-dark); }

.pw-sub {
  font-size: 0.82rem;
  color: var(--gold);
  font-weight: 600;
  letter-spacing: 0.08em;
  margin-bottom: 1.25rem;
}

.pw-desc {
  font-size: 0.9rem;
  line-height: 1.7;
  margin-bottom: 1.75rem;
}

.power-card:not(.featured) .pw-desc { color: var(--text-light); }
.power-card.featured .pw-desc { color: rgba(255,255,255,0.6); }

.pw-features {
  display: flex; flex-direction: column; gap: 0.75rem;
}

.pw-feature {
  display: flex; align-items: center; gap: 10px;
  font-size: 0.875rem;
}

.power-card:not(.featured) .pw-feature { color: var(--text-body); }
.power-card.featured .pw-feature { color: rgba(255,255,255,0.8); }

.pw-check {
  width: 22px; height: 22px; flex-shrink: 0;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.65rem;
}

.power-card:not(.featured) .pw-check {
  background: rgba(26,42,122,0.08);
  color: var(--navy);
}

.power-card.featured .pw-check {
  background: rgba(245,166,35,0.2);
  color: var(--gold);
}

.pw-range {
  margin-top: 1.5rem;
  padding: 1rem;
  background: rgba(245,166,35,0.1);
  border-radius: var(--radius-sm);
  border: 1px solid rgba(245,166,35,0.2);
}

.pwr-label { font-size: 0.7rem; color: rgba(255,255,255,0.4); text-transform: uppercase; letter-spacing: 0.1em; }
.pwr-value { font-family: 'Syne', sans-serif; font-size: 1.5rem; font-weight: 800; color: var(--gold); }

/* ============================================
   VISUAL MEDIA
   ============================================ */
#visual-media {
  padding: 100px 0;
  background: var(--off-white);
}

.media-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.media-card {
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
  box-shadow: var(--shadow-md);
  transition: var(--transition);
  min-height: 320px;
  display: flex; flex-direction: column; justify-content: flex-end;
}

.media-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }

.mc-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-deeper) 100%);
}

.mc-pattern {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle at 70% 30%, rgba(245,166,35,0.15) 0%, transparent 60%);
}

.mc-content {
  position: relative; z-index: 1;
  padding: 2.5rem;
}

.mc-badge {
  display: inline-block;
  background: var(--gold);
  color: var(--navy-dark);
  padding: 4px 12px;
  border-radius: var(--radius-xl);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.mc-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: 0.75rem;
}

.mc-desc {
  font-size: 0.875rem;
  color: rgba(255,255,255,0.55);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.mc-features {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
}

.mc-feature-tag {
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.7);
  padding: 5px 12px;
  border-radius: var(--radius-xl);
  font-size: 0.75rem;
  font-weight: 500;
}

/* ============================================
   AMC / TURNKEY
   ============================================ */
#turnkey {
  padding: 100px 0;
  background: var(--white);
}

.turnkey-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
}

.tk-services {
  display: flex; flex-direction: column; gap: 1.25rem;
}

.tk-service {
  background: var(--off-white);
  border-radius: var(--radius-md);
  padding: 2rem;
  border: 1px solid var(--light-gray);
  transition: var(--transition);
  position: relative; overflow: hidden;
}

.tk-service::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  background: var(--navy);
  transform: scaleY(0);
  transition: var(--transition);
  transform-origin: bottom;
}

.tk-service:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.tk-service:hover::before { transform: scaleY(1); }

.tks-icon {
  font-size: 1.75rem; margin-bottom: 1rem; display: block;
}

.tks-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.1rem; font-weight: 700;
  color: var(--navy-dark); margin-bottom: 0.4rem;
}

.tks-sub {
  font-size: 0.8rem; color: var(--gold);
  font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.08em; margin-bottom: 1rem;
}

.tks-items {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
}

.tks-item {
  background: var(--white);
  border: 1px solid var(--light-gray);
  color: var(--text-body);
  padding: 4px 12px;
  border-radius: var(--radius-xl);
  font-size: 0.78rem;
  font-weight: 500;
}

/* AMC Card */
.amc-card {
  background: linear-gradient(160deg, var(--navy) 0%, var(--navy-deeper) 100%);
  border-radius: var(--radius-lg);
  padding: 3rem;
  color: var(--white);
  position: sticky; top: 100px;
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}

.amc-card::before {
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 250px; height: 250px;
  background: radial-gradient(circle, rgba(245,166,35,0.15) 0%, transparent 70%);
  border-radius: 50%;
}

.amc-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  margin-bottom: 2rem;
}

.support-badge {
  background: rgba(39,174,96,0.2);
  border: 1px solid rgba(39,174,96,0.4);
  color: #27AE60;
  padding: 5px 12px;
  border-radius: var(--radius-xl);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.amc-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.6rem; font-weight: 700;
  margin-bottom: 0.5rem; line-height: 1.2;
}

.amc-sub {
  font-size: 0.85rem; color: rgba(255,255,255,0.5);
}

.amc-section {
  margin-bottom: 1.75rem;
}

.amc-section-title {
  display: flex; align-items: center; gap: 8px;
  font-size: 0.7rem; font-weight: 700;
  letter-spacing: 0.15em; text-transform: uppercase;
  margin-bottom: 1rem;
}

.amc-section-title.preventive { color: var(--gold); }
.amc-section-title.reactive { color: #E74C3C; }

.amc-items {
  display: flex; flex-direction: column; gap: 0.6rem;
}

.amc-item {
  display: flex; align-items: center; gap: 10px;
  font-size: 0.875rem; color: rgba(255,255,255,0.75);
  padding: 8px 12px;
  background: rgba(255,255,255,0.05);
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255,255,255,0.07);
}

.amc-item .ai-dot {
  width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
}

.preventive .ai-dot { background: var(--gold); }
.reactive-item .ai-dot { background: #E74C3C; }

.amc-footer {
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,0.1);
}

.sla-badge {
  font-size: 0.78rem; font-weight: 600; color: rgba(255,255,255,0.5);
}

.sla-badge span { color: var(--gold); font-weight: 700; }

.premium-badge {
  display: flex; align-items: center; gap: 6px;
  background: rgba(245,166,35,0.15);
  border: 1px solid rgba(245,166,35,0.3);
  color: var(--gold);
  padding: 6px 14px;
  border-radius: var(--radius-xl);
  font-size: 0.78rem; font-weight: 700;
}

/* ============================================
   PARTNERS SECTION
   ============================================ */
#partners {
  padding: 80px 0;
  background: var(--off-white);
  border-top: 1px solid var(--light-gray);
  border-bottom: 1px solid var(--light-gray);
}

.partners-categories {
  display: flex; flex-direction: column; gap: 2.5rem;
}

.partner-cat {
  display: flex; align-items: center; gap: 2rem;
}

.pcat-label {
  font-size: 0.7rem; font-weight: 700;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--text-light); white-space: nowrap;
  min-width: 140px;
}

.pcat-line {
  width: 1px; height: 40px;
  background: var(--light-gray); flex-shrink: 0;
}

.pcat-logos {
  display: flex; align-items: center; gap: 2rem; flex-wrap: wrap;
}

.partner-logo {
  font-family: 'Syne', sans-serif;
  font-size: 0.9rem; font-weight: 700;
  color: var(--mid-gray);
  letter-spacing: 0.05em;
  transition: var(--transition);
  padding: 8px 16px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
}

.partner-logo:hover {
  color: var(--navy);
  background: var(--white);
  border-color: var(--light-gray);
  box-shadow: var(--shadow-sm);
}

/* ============================================
   CONTACT
   ============================================ */
#contact {
  padding: 100px 0;
  background: linear-gradient(135deg, var(--navy-darker, #0A1038) 0%, var(--navy) 100%);
  background-color: var(--navy-deeper);
  position: relative; overflow: hidden;
}

#contact::before {
  content: '';
  position: absolute; inset: 0;
  background-image: 
    radial-gradient(ellipse at 20% 50%, rgba(245,166,35,0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, rgba(26,42,122,0.5) 0%, transparent 50%);
}

.contact-inner {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}

.contact-content .section-header { text-align: left; }
.contact-content .section-title { color: var(--white); }
.contact-content .section-desc { color: rgba(255,255,255,0.55); text-align: left; }

.contact-details {
  display: flex; flex-direction: column; gap: 1.25rem;
  margin-top: 2.5rem;
}

.contact-item {
  display: flex; align-items: flex-start; gap: 1rem;
  padding: 1.25rem 1.5rem;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-md);
  transition: var(--transition);
}

.contact-item:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(245,166,35,0.3);
  transform: translateX(6px);
}

.ci-icon {
  width: 44px; height: 44px; flex-shrink: 0;
  background: rgba(245,166,35,0.15);
  border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem;
}

.ci-label {
  font-size: 0.7rem; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 3px;
}

.ci-value {
  font-size: 0.9rem; color: var(--white); font-weight: 500;
  line-height: 1.5;
}

/* Contact Form */
.contact-form-wrap {
  background: rgba(255,255,255,0.05);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-lg);
  padding: 2.5rem;
}

.form-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.3rem; font-weight: 700;
  color: var(--white); margin-bottom: 0.5rem;
}

.form-sub {
  font-size: 0.875rem; color: rgba(255,255,255,0.45);
  margin-bottom: 2rem;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}

.form-group {
  margin-bottom: 1rem;
}

.form-group label {
  display: block;
  font-size: 0.78rem; font-weight: 600;
  color: rgba(255,255,255,0.5);
  letter-spacing: 0.08em; text-transform: uppercase;
  margin-bottom: 6px;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-sm);
  padding: 12px 16px;
  font-size: 0.9rem; color: var(--white);
  font-family: inherit;
  transition: var(--transition);
  outline: none;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
  color: rgba(255,255,255,0.25);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--gold);
  background: rgba(255,255,255,0.1);
  box-shadow: 0 0 0 3px rgba(245,166,35,0.15);
}

.form-group select option {
  background: var(--navy-dark); color: var(--white);
}

.form-group textarea { resize: vertical; min-height: 100px; }

.btn-submit {
  width: 100%;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  background: var(--gold);
  color: var(--navy-dark);
  padding: 16px 32px;
  border-radius: var(--radius-xl);
  font-weight: 700; font-size: 1rem;
  border: none; cursor: pointer;
  transition: var(--transition);
  font-family: inherit;
}

.btn-submit:hover {
  background: var(--gold-light);
  transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(245,166,35,0.4);
}

/* ============================================
   FOOTER
   ============================================ */
#site-footer {
  background: var(--navy-deeper);
  border-top: 1px solid rgba(255,255,255,0.06);
  padding: 60px 0 30px;
}

.footer-inner {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 3rem;
}

.footer-brand { }

.footer-logo {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 1.25rem;
}

.footer-brand-desc {
  font-size: 0.875rem; color: rgba(255,255,255,0.4);
  line-height: 1.75; max-width: 280px;
  margin-bottom: 1.5rem;
}

.social-links {
  display: flex; gap: 0.75rem;
}

.social-link {
  width: 38px; height: 38px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.5);
  font-size: 0.9rem;
  transition: var(--transition);
  text-decoration: none;
}

.social-link:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy-dark);
  transform: translateY(-3px);
}

.footer-col-title {
  font-family: 'Syne', sans-serif;
  font-size: 0.85rem; font-weight: 700;
  color: var(--white); letter-spacing: 0.08em;
  text-transform: uppercase; margin-bottom: 1.25rem;
}

.footer-links {
  display: flex; flex-direction: column; gap: 0.6rem;
}

.footer-link {
  font-size: 0.875rem; color: rgba(255,255,255,0.4);
  transition: var(--transition-fast); text-decoration: none;
}

.footer-link:hover { color: var(--gold); padding-left: 4px; }

.footer-bottom {
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,0.06);
}

.footer-copy {
  font-size: 0.8rem; color: rgba(255,255,255,0.3);
}

.footer-values {
  display: flex; gap: 1rem;
}

.fv-tag {
  font-size: 0.72rem; font-weight: 600;
  color: rgba(255,255,255,0.25); letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* ============================================
   ANIMATIONS & AOS
   ============================================ */
[data-aos] {
  opacity: 0;
  transition-property: opacity, transform;
  transition-duration: 0.7s;
  transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

[data-aos].aos-animate {
  opacity: 1;
  transform: none;
}

[data-aos="fade-up"] { transform: translateY(40px); }
[data-aos="fade-right"] { transform: translateX(-40px); }
[data-aos="fade-left"] { transform: translateX(40px); }
[data-aos="zoom-in"] { transform: scale(0.92); }

/* ============================================
   SCROLL TO TOP
   ============================================ */
#scroll-top {
  position: fixed;
  bottom: 2rem; right: 2rem;
  width: 48px; height: 48px;
  background: var(--gold);
  color: var(--navy-dark);
  border: none; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; font-size: 1.1rem;
  box-shadow: var(--shadow-gold);
  opacity: 0; visibility: hidden;
  transition: var(--transition);
  z-index: 999;
}

#scroll-top.visible { opacity: 1; visibility: visible; }
#scroll-top:hover { transform: translateY(-4px); background: var(--gold-light); }

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 1100px) {
  .products-grid { grid-template-columns: 1fr 1fr; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  .hero-inner,
  .about-grid,
  .surv-grid,
  .networking-grid,
  .power-grid,
  .media-grid,
  .turnkey-layout,
  .contact-inner { grid-template-columns: 1fr; }

  .hero-visual { display: none; }
  .hero-stats { gap: 1.5rem; }

  .products-grid { grid-template-columns: 1fr; }
  .camera-types { grid-template-columns: 1fr 1fr; }
  .navbar-menu { display: none; }
  .hamburger { display: flex; }
  .form-row { grid-template-columns: 1fr; }
  .partner-cat { flex-direction: column; align-items: flex-start; }
  .pcat-line { display: none; }
}

@media (max-width: 600px) {
  .section-container { padding: 0 1.25rem; }
  .amb-stats { grid-template-columns: 1fr 1fr; }
  .hero-stats { flex-wrap: wrap; }
  .footer-inner { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; }
  .camera-types { grid-template-columns: 1fr; }
}


/* ============================================================
   ELEMENTOR COMPATIBILITY
   ============================================================ */

/* Reset Elementor container max-width to match our grid */
.elementor-section.elementor-section-boxed > .elementor-container {
    max-width: 1400px;
}

/* Elementor inner section full-width */
.elementor-section.elementor-section-full_width > .elementor-container {
    max-width: 100%;
}

/* Make sure Elementor sections stack above our hero z-index */
.elementor-section { position: relative; }

/* Elementor button style presets using brand colours */
.elementor-button.elementor-button-brand-primary {
    background: var(--gold);
    color: var(--navy-dark);
    border-radius: 50px;
    font-weight: 700;
    padding: 14px 32px;
    transition: all .3s ease;
}
.elementor-button.elementor-button-brand-primary:hover {
    background: var(--gold-light);
    transform: translateY(-2px);
}

/* Elementor heading presets */
.elementor-widget-heading .elementor-heading-title {
    font-family: 'Syne', sans-serif;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.02em;
}

/* When Elementor built a page — remove our default padding on body */
body.elementor-page main,
body.elementor-page .page-main { margin-top: 0; }

/* Full width template – no side gaps */
body.page-template-page-elementor-fullwidth #page,
body.page-template-page-elementor-canvas    #page {
    padding: 0;
    margin:  0;
}

/* Canvas template – completely blank */
body.page-template-page-elementor-canvas #site-navbar,
body.page-template-page-elementor-canvas #site-footer,
body.page-template-page-elementor-canvas #scroll-top { display: none !important; }

/* ---- Front-page section extras ---- */
.hero-orb.o1 { top:-20%;right:-5%;width:500px;height:500px;background:radial-gradient(circle,rgba(26,42,122,.9) 0%,transparent 70%) }
.hero-orb.o2 { bottom:-30%;left:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(245,166,35,.1) 0%,transparent 65%) }

/* Ticker */
.ticker-wrap{background:var(--navy-dark,#0F1A55);border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);padding:12px 0;overflow:hidden}
.ticker-track{display:flex;gap:2rem;animation:tick 22s linear infinite;width:max-content}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ti{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.3);font-weight:700;font-size:12px;letter-spacing:.08em;white-space:nowrap;padding:0 .5rem}
.td{width:4px;height:4px;background:var(--gold);border-radius:50%;opacity:.4}

/* About */
.ab-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;max-width:1200px;margin:0 auto}
.ab-body{font-size:14px;color:var(--text-light,#6B7DB5);line-height:1.8;margin-bottom:1.5rem}
.vals{display:flex;flex-direction:column;gap:.75rem}
.val-item{display:flex;align-items:center;gap:.875rem;padding:.875rem 1.25rem;background:#fff;border-radius:12px;border-left:3px solid var(--gold);transition:.25s;cursor:default}
.val-item:hover{transform:translateX(5px);box-shadow:0 8px 30px rgba(26,42,122,.1)}
.val-item span{font-size:18px;flex-shrink:0}
.val-item strong{display:block;font-weight:700;color:var(--navy,#1A2A7A);font-size:13px}
.val-item small{font-size:12px;color:var(--text-light,#6B7DB5)}
.ab-box{background:linear-gradient(135deg,var(--navy,#1A2A7A) 0%,var(--navy-deeper,#0A1038) 100%);border-radius:20px;padding:2.5rem;color:#fff;position:relative;overflow:hidden}
.ab-box::before{content:'';position:absolute;top:-40px;right:-40px;width:250px;height:250px;background:radial-gradient(circle,rgba(245,166,35,.13) 0%,transparent 70%);border-radius:50%}
.ab-ey{font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-weight:700;margin-bottom:.75rem;position:relative}
.ab-h{font-family:'Syne',sans-serif;font-size:1.4rem;font-weight:700;margin-bottom:1.5rem;line-height:1.3;position:relative}
.ab-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem;position:relative}
.ab-stat{padding:1rem;background:rgba(255,255,255,.07);border-radius:8px;border:1px solid rgba(255,255,255,.09)}
.ab-stat .n{font-family:'Syne',sans-serif;font-size:1.8rem;font-weight:800;color:var(--gold);line-height:1}
.ab-stat .l{font-size:10px;color:rgba(255,255,255,.45);margin-top:3px;text-transform:uppercase;letter-spacing:.08em}
.ab-tag{display:inline-flex;align-items:center;gap:6px;margin-top:1.5rem;background:rgba(245,166,35,.12);border:1px solid rgba(245,166,35,.25);color:var(--gold);padding:7px 14px;border-radius:50px;font-size:12px;font-weight:600;position:relative}

/* Hero card visuals */
.hero-content{display:flex;flex-direction:column}
.h-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(245,166,35,.12);border:1px solid rgba(245,166,35,.3);color:var(--gold);padding:6px 14px;border-radius:50px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.5rem;width:fit-content}
.h-dot{width:6px;height:6px;background:var(--gold);border-radius:50%;animation:pulse 2s infinite}
.hero-title{font-family:'Syne',sans-serif;font-size:clamp(2.5rem,5vw,4rem);font-weight:800;line-height:1.05;letter-spacing:-.03em;color:#fff;margin-bottom:1.25rem}
.hero-title span{color:var(--gold)}
.hero-desc{font-size:15px;color:rgba(255,255,255,.6);line-height:1.75;max-width:480px;margin-bottom:2rem}
.h-btns{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
.btn-p{display:inline-flex;align-items:center;gap:8px;background:var(--gold);color:var(--navy-deeper,#0A1038);padding:13px 28px;border-radius:50px;font-weight:700;font-size:14px;text-decoration:none;transition:.25s}
.btn-p:hover{background:var(--gold-light,#FFD166);transform:translateY(-2px)}
.btn-s{display:inline-flex;border:1.5px solid rgba(255,255,255,.2);color:#fff;padding:13px 28px;border-radius:50px;font-weight:600;font-size:14px;text-decoration:none;transition:.25s}
.btn-s:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.07)}
.h-stats{display:flex;gap:2rem}
.hs-num{font-family:'Syne',sans-serif;font-size:1.8rem;font-weight:800;color:var(--gold);line-height:1}
.hs-lbl{font-size:10px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.12em;margin-top:3px}
.hero-visual{position:relative}
.fb{position:absolute;background:var(--gold);color:var(--navy-deeper,#0A1038);padding:7px 12px;border-radius:10px;font-weight:700;font-size:11px;white-space:nowrap}
.top-right{top:-14px;right:-16px;animation:fb1 5s ease-in-out infinite}
.bot-left{bottom:-14px;left:-16px;animation:fb2 6s ease-in-out infinite}
@keyframes fb1{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}
@keyframes fb2{0%,100%{transform:translateY(0) rotate(2deg)}50%{transform:translateY(8px) rotate(-2deg)}}
.hero-card{background:rgba(255,255,255,.06);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:2rem}
.hc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}
.hc-t{font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:rgba(255,255,255,.4)}
.live-b{display:flex;align-items:center;gap:5px;background:rgba(39,174,96,.18);border:1px solid rgba(39,174,96,.35);color:#27AE60;padding:3px 9px;border-radius:50px;font-size:10px;font-weight:700}
.ld{width:5px;height:5px;background:#27AE60;border-radius:50%;animation:pulse 1.5s infinite}
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.svc-mini{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:1rem;cursor:default;transition:.25s;font-size:1.25rem}
.svc-mini:hover{background:rgba(245,166,35,.1);border-color:rgba(245,166,35,.3);transform:translateY(-2px)}
.sn{font-size:12px;font-weight:700;color:#fff;margin-top:.3rem}
.ss{font-size:10px;color:rgba(255,255,255,.35);margin-top:1px}

/* Products */
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.pc{background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--light-gray,#E8EDF8);transition:.3s;cursor:default}
.pc:hover{transform:translateY(-6px);box-shadow:0 16px 50px rgba(26,42,122,.13);border-color:transparent}
.pc-hdr{padding:1.75rem 1.75rem 1rem}
.pc-ico{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:1.25rem;transition:.25s}
.pc:hover .pc-ico{transform:scale(1.1) rotate(-5deg)}
.ico-b{background:rgba(26,42,122,.08)}.ico-g{background:rgba(245,166,35,.12)}.ico-o{background:rgba(230,126,34,.1)}.ico-gr{background:rgba(39,174,96,.1)}.ico-p{background:rgba(126,87,194,.1)}
.pc-sub{font-size:10px;color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.4rem}
.pc-title{font-family:'Syne',sans-serif;font-size:1rem;font-weight:700;color:var(--navy-deeper,#0A1038);margin-bottom:.5rem}
.pc-desc{font-size:12.5px;color:var(--text-light,#6B7DB5);line-height:1.6}
.pc-bdy{padding:0 1.75rem 1.75rem}
.pc-feats{list-style:none;margin-bottom:1.25rem}
.pc-feats li{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-body,#3A4A6B);padding:5px 0;border-bottom:1px solid var(--light-gray,#E8EDF8)}
.pc-feats li:last-child{border:none}
.chk{width:16px;height:16px;background:rgba(26,42,122,.08);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:9px;color:var(--navy,#1A2A7A)}
.pc-tag{display:inline-flex;background:var(--off-white,#F4F6FB);color:var(--navy,#1A2A7A);padding:5px 12px;border-radius:50px;font-size:11px;font-weight:600;border:1px solid var(--light-gray,#E8EDF8);transition:.25s}
.pc:hover .pc-tag{background:var(--navy,#1A2A7A);color:#fff;border-color:var(--navy,#1A2A7A)}

/* Surveillance */
.surv-sec{background:var(--navy-deeper,#0A1038);padding:70px 2rem;position:relative;overflow:hidden}
.surv-sec::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(245,166,35,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(245,166,35,.04) 1px,transparent 1px);background-size:70px 70px}
.surv-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1.1fr;gap:3rem;align-items:center;position:relative;z-index:1}
.cam-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:2rem}
.cam-c{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.25rem;transition:.25s;cursor:default}
.cam-c:hover{background:rgba(245,166,35,.08);border-color:rgba(245,166,35,.25);transform:translateY(-3px)}
.cn{font-size:10px;color:var(--gold);font-weight:700;letter-spacing:.15em;margin-bottom:.6rem}
.cname{font-size:13px;font-weight:700;color:#fff;margin-bottom:.3rem}
.cdesc{font-size:11px;color:rgba(255,255,255,.4);line-height:1.5}
.nvr{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:16px;overflow:hidden}
.nvr-head{background:rgba(255,255,255,.05);padding:.875rem 1.25rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.07)}
.nvr-t{font-size:10px;font-weight:600;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.12em}
.nvr-live{display:flex;align-items:center;gap:5px;background:rgba(231,76,60,.18);border:1px solid rgba(231,76,60,.35);color:#E74C3C;padding:3px 9px;border-radius:50px;font-size:10px;font-weight:700}
.rd{width:5px;height:5px;background:#E74C3C;border-radius:50%;animation:pulse 1.2s infinite}
.feeds{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.05)}
.feed{background:#000;aspect-ratio:4/3;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.fb2{position:absolute;inset:0;background:linear-gradient(135deg,rgba(26,42,122,.4),rgba(0,0,0,.8))}
.fl{position:absolute;top:6px;left:7px;font-size:9px;font-weight:700;color:var(--gold);background:rgba(0,0,0,.5);padding:2px 5px;border-radius:3px;letter-spacing:.08em;z-index:1}
.fi{position:relative;z-index:1;font-size:24px;opacity:.25}
.fs{position:absolute;bottom:6px;right:7px;width:6px;height:6px;background:#27AE60;border-radius:50%;animation:pulse 2s infinite}
.nvr-ft{padding:.875rem 1.25rem;border-top:1px solid rgba(255,255,255,.07);display:flex;align-items:center;justify-content:space-between}
.sb{flex:1;margin-right:1rem}
.sl{display:flex;justify-content:space-between;font-size:10px;color:rgba(255,255,255,.35);margin-bottom:4px}
.sbar{height:5px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden}
.sf{height:100%;width:75%;background:linear-gradient(90deg,var(--gold),#D4851A);border-radius:3px}
.si{font-size:10px;color:var(--gold);font-weight:600}
.surv-p{text-align:center;margin-top:1rem;font-size:11px;color:rgba(255,255,255,.25);letter-spacing:.12em;text-transform:uppercase}

/* Networking */
.net-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:3rem;align-items:center;max-width:1200px;margin:0 auto}
.net-cards{display:flex;flex-direction:column;gap:1.25rem}
.net-card{display:flex;gap:1.5rem;align-items:flex-start;background:#fff;border-radius:12px;padding:1.75rem;box-shadow:0 4px 20px rgba(26,42,122,.08);border:1px solid transparent;transition:.25s}
.net-card:hover{box-shadow:0 12px 48px rgba(26,42,122,.14);border-color:rgba(26,42,122,.1);transform:translateX(8px)}
.nc-ico{width:56px;height:56px;flex-shrink:0;background:rgba(26,42,122,.07);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;transition:.25s}
.net-card:hover .nc-ico{background:var(--navy,#1A2A7A);color:#fff}
.nc-t{font-family:'Syne',sans-serif;font-size:1.05rem;font-weight:700;color:var(--navy-deeper,#0A1038);margin-bottom:.35rem}
.nc-d{font-size:.875rem;color:var(--text-light,#6B7DB5);line-height:1.6;margin-bottom:.75rem}
.nc-tags{display:flex;gap:.5rem;flex-wrap:wrap}
.tag-chip{font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:50px;background:rgba(26,42,122,.07);color:var(--navy,#1A2A7A);border:1px solid rgba(26,42,122,.12)}
.net-diagram{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 12px 48px rgba(26,42,122,.14);border:1px solid var(--light-gray,#E8EDF8)}
.nd-t{font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;color:var(--text-light,#6B7DB5);font-weight:600;margin-bottom:1.5rem;text-align:center}
.topo{display:flex;flex-direction:column;align-items:center}
.tl{display:flex;justify-content:center;gap:1.5rem}
.tl3{display:flex;gap:1.5rem;justify-content:center}
.tl3>div,.tl>div{display:flex;flex-direction:column;align-items:center;gap:6px}
.tn{width:52px;height:52px;background:var(--navy,#1A2A7A);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;box-shadow:0 12px 48px rgba(26,42,122,.14);position:relative;z-index:1;transition:.25s}
.tn:hover{transform:scale(1.1);background:var(--navy-deeper,#0A1038)}
.tn.gold-bg{background:var(--gold)}
.tn.lb{background:var(--off-white,#F4F6FB);border:2px solid var(--light-gray,#E8EDF8)}
.tnl{font-size:.65rem;font-weight:600;color:var(--text-light,#6B7DB5);text-transform:uppercase;letter-spacing:.08em;text-align:center}
.tcon{width:2px;height:28px;background:linear-gradient(to bottom,var(--navy,#1A2A7A),rgba(26,42,122,.2));margin:0 auto}
.thl{height:2px;background:linear-gradient(to right,rgba(26,42,122,.2),var(--navy,#1A2A7A),rgba(26,42,122,.2));width:80%;margin:0 auto}

/* Power */
.pw-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;max-width:1200px;margin:0 auto}
.pw-card{border-radius:16px;padding:2.25rem;border:2px solid var(--light-gray,#E8EDF8);transition:.3s;position:relative;overflow:hidden;cursor:default}
.pw-card:hover{transform:translateY(-5px);box-shadow:0 16px 50px rgba(26,42,122,.12)}
.pw-card.feat{background:linear-gradient(135deg,var(--navy,#1A2A7A) 0%,var(--navy-deeper,#0A1038) 100%);border-color:transparent;color:#fff}
.pw-dec{position:absolute;top:-40px;right:-40px;width:180px;height:180px;background:radial-gradient(circle,rgba(245,166,35,.13) 0%,transparent 70%);border-radius:50%}
.pwi{font-size:2rem;margin-bottom:1rem;display:block}
.pwt{font-family:'Syne',sans-serif;font-size:1.2rem;font-weight:700;margin-bottom:.4rem}
.pwt.dark{color:var(--navy-deeper,#0A1038)}.pws{font-size:11px;color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}
.pwd{font-size:13px;line-height:1.7;margin-bottom:1.5rem}
.pwd.dark{color:var(--text-light,#6B7DB5)}.pwd.light{color:rgba(255,255,255,.55)}
.pw-feats{display:flex;flex-direction:column;gap:.6rem}
.pwf{display:flex;align-items:center;gap:8px;font-size:13px}
.pwf.dark{color:var(--text-body,#3A4A6B)}.pwf.light{color:rgba(255,255,255,.75)}
.pwc{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:10px}
.pwc.dark{background:rgba(26,42,122,.08);color:var(--navy,#1A2A7A)}.pwc.light{background:rgba(245,166,35,.18);color:var(--gold)}
.pw-range{margin-top:1.25rem;padding:.875rem;background:rgba(245,166,35,.1);border-radius:8px;border:1px solid rgba(245,166,35,.2)}
.prl{font-size:10px;color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.1em}
.prv{font-family:'Syne',sans-serif;font-size:1.4rem;font-weight:800;color:var(--gold)}

/* Media */
.media-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.media-card{border-radius:16px;overflow:hidden;position:relative;box-shadow:0 12px 48px rgba(26,42,122,.14);transition:.3s;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end}
.media-card:hover{transform:translateY(-6px);box-shadow:0 24px 80px rgba(26,42,122,.22)}
.mc-bg{position:absolute;inset:0;background:linear-gradient(135deg,var(--navy,#1A2A7A) 0%,var(--navy-deeper,#0A1038) 100%)}
.mc-pat{position:absolute;inset:0;background-image:radial-gradient(ellipse at 70% 30%,rgba(245,166,35,.15) 0%,transparent 60%)}
.mc-con{position:relative;z-index:1;padding:2.5rem}
.mc-badge{display:inline-block;background:var(--gold);color:var(--navy-deeper,#0A1038);padding:4px 12px;border-radius:50px;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem}
.mc-title{font-family:'Syne',sans-serif;font-size:1.5rem;font-weight:700;color:#fff;margin-bottom:.75rem}
.mc-desc{font-size:.875rem;color:rgba(255,255,255,.55);line-height:1.6;margin-bottom:1.5rem}
.mc-feats{display:flex;flex-wrap:wrap;gap:.5rem}
.mf{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.7);padding:5px 12px;border-radius:50px;font-size:.75rem;font-weight:500}

/* Turnkey */
.tk-lay{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.tk-svcs{display:flex;flex-direction:column;gap:1.25rem}
.tk-s{background:var(--off-white,#F4F6FB);border-radius:12px;padding:1.5rem;border:1px solid var(--light-gray,#E8EDF8);transition:.25s;cursor:default;position:relative;overflow:hidden}
.tk-s::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--navy,#1A2A7A);transform:scaleY(0);transition:.25s;transform-origin:bottom}
.tk-s:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(26,42,122,.1)}.tk-s:hover::before{transform:scaleY(1)}
.tk-ico{font-size:22px;margin-bottom:.75rem;display:block}
.tk-t{font-family:'Syne',sans-serif;font-size:1rem;font-weight:700;color:var(--navy-deeper,#0A1038);margin-bottom:.3rem}
.tk-sub{font-size:10px;color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.875rem}
.tk-tags{display:flex;flex-wrap:wrap;gap:.4rem}
.tk-tg{background:#fff;border:1px solid var(--light-gray,#E8EDF8);color:var(--text-body,#3A4A6B);padding:3px 10px;border-radius:50px;font-size:11px;font-weight:500}
.amc-card{background:linear-gradient(160deg,var(--navy,#1A2A7A) 0%,var(--navy-deeper,#0A1038) 100%);border-radius:20px;padding:2.5rem;color:#fff;position:sticky;top:100px;overflow:hidden}
.amc-card::before{content:'';position:absolute;top:-50px;right:-50px;width:200px;height:200px;background:radial-gradient(circle,rgba(245,166,35,.14) 0%,transparent 70%);border-radius:50%}
.amc-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;position:relative;z-index:1}
.sup-b{background:rgba(39,174,96,.18);border:1px solid rgba(39,174,96,.35);color:#27AE60;padding:4px 10px;border-radius:50px;font-size:10px;font-weight:700;letter-spacing:.1em;white-space:nowrap}
.amc-t{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:700;margin-bottom:.4rem}
.amc-s{font-size:12px;color:rgba(255,255,255,.45)}
.amc-sec{margin-bottom:1.25rem;position:relative;z-index:1}
.amc-sec-t{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;margin-bottom:.75rem}
.amc-it{display:flex;align-items:center;gap:8px;font-size:12.5px;color:rgba(255,255,255,.7);padding:7px 10px;background:rgba(255,255,255,.05);border-radius:7px;border:1px solid rgba(255,255,255,.07);margin-bottom:.5rem}
.aid{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.amc-ft{display:flex;align-items:center;justify-content:space-between;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.1);position:relative;z-index:1}
.sla-t{font-size:11px;font-weight:600;color:rgba(255,255,255,.4)}
.sla-t span{color:var(--gold);font-weight:700}
.prem-b{display:flex;align-items:center;gap:5px;background:rgba(245,166,35,.12);border:1px solid rgba(245,166,35,.25);color:var(--gold);padding:5px 12px;border-radius:50px;font-size:11px;font-weight:700}

/* Partners */
.p-cats{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}
.p-cat{display:flex;align-items:center;gap:1.5rem}
.pc-lbl{font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--text-light,#6B7DB5);white-space:nowrap;min-width:110px}
.pc-line{width:1px;height:32px;background:var(--light-gray,#E8EDF8);flex-shrink:0}
.pc-logos{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}
.p-logo{font-family:'Syne',sans-serif;font-size:12px;font-weight:700;color:var(--text-light,#6B7DB5);letter-spacing:.05em;padding:6px 14px;border-radius:6px;border:1px solid transparent;transition:.2s;cursor:default}
.p-logo:hover{color:var(--navy,#1A2A7A);background:var(--off-white,#F4F6FB);border-color:var(--light-gray,#E8EDF8)}

/* Contact section */
.contact-sec{background:var(--navy-deeper,#0A1038);padding:70px 2rem;position:relative;overflow:hidden}
.contact-sec::before{content:'';position:absolute;inset:0;background-image:radial-gradient(ellipse at 20% 50%,rgba(245,166,35,.07) 0%,transparent 50%)}
.contact-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;position:relative;z-index:1}
.ct-dets{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}
.ct-it{display:flex;align-items:flex-start;gap:.875rem;padding:1rem 1.25rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:12px;transition:.25s;cursor:default}
.ct-it:hover{background:rgba(255,255,255,.08);border-color:rgba(245,166,35,.25);transform:translateX(5px)}
.ct-ico{width:40px;height:40px;background:rgba(245,166,35,.13);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.ct-lbl{font-size:10px;font-weight:700;color:var(--gold);letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px}
.ct-val{font-size:13px;color:#fff;font-weight:500;line-height:1.5}
.form-wrap{background:rgba(255,255,255,.05);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:2rem}
.form-t{font-family:'Syne',sans-serif;font-size:1.2rem;font-weight:700;color:#fff;margin-bottom:.3rem}
.form-sub{font-size:12px;color:rgba(255,255,255,.4);margin-bottom:1.5rem}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:.875rem;margin-bottom:.875rem}
.f-grp{margin-bottom:.875rem}
.f-grp label{display:block;font-size:11px;font-weight:700;color:rgba(255,255,255,.45);letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px}
.f-grp input,.f-grp select,.f-grp textarea{width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:10px 14px;font-size:13px;color:#fff;font-family:'DM Sans',sans-serif;outline:none;transition:.25s}
.f-grp input::placeholder,.f-grp textarea::placeholder{color:rgba(255,255,255,.22)}
.f-grp input:focus,.f-grp select:focus,.f-grp textarea:focus{border-color:var(--gold);background:rgba(255,255,255,.1);box-shadow:0 0 0 3px rgba(245,166,35,.13)}
.f-grp select option{background:var(--navy-dark,#0F1A55);color:#fff}
.f-grp textarea{resize:vertical;min-height:85px}
.btn-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--gold);color:var(--navy-deeper,#0A1038);padding:14px 28px;border-radius:50px;font-weight:700;font-size:14px;border:none;cursor:pointer;transition:.25s;font-family:'DM Sans',sans-serif}
.btn-submit:hover{background:var(--gold-light,#FFD166);transform:translateY(-2px)}

/* Utilities */
.sec{padding:70px 2rem}
.sec-in{max-width:1200px;margin:0 auto}
.sec-hdr{text-align:center;margin-bottom:3rem}
.eyebrow{display:inline-block;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:.75rem}
.sec-title{font-family:'Syne',sans-serif;font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:700;color:var(--navy-deeper,#0A1038);line-height:1.2;margin-bottom:.75rem}
.sec-desc{font-size:14px;color:var(--text-light,#6B7DB5);max-width:480px;margin:0 auto;line-height:1.7}
.gold{color:var(--gold)}
.bg-w{background:#fff}
.bg-off{background:var(--off-white,#F4F6FB)}

/* ============================================================
   RESPONSIVE — base breakpoints
   ============================================================ */
@media(max-width:900px){
  .ab-grid,.surv-grid,.net-grid,.pw-grid,.media-grid,.tk-lay,.contact-grid{grid-template-columns:1fr}
  .prod-grid{grid-template-columns:1fr 1fr}
  .cam-grid{grid-template-columns:1fr 1fr}
  .hero-inner{grid-template-columns:1fr}
  .hero-visual{display:none}
  .p-cat{flex-direction:column;align-items:flex-start}
  .pc-line{display:none}
  .tl3{gap:.75rem}
}

/* ============================================================
   FIX 1 — Footer: collapse to single column at 768px
   Prevents 4 cols compressing to unreadable ~70px strips
   ============================================================ */
@media(max-width:768px){
  .footer-inner{
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .footer-bottom{
    flex-direction: column;
    gap: .875rem;
    text-align: center;
  }
  .footer-values{ justify-content: center; }
}

/* ============================================================
   FIX 2 — Contact form: single-col earlier + overflow guard
   f-row drops to 1 col at 600px (was 900px — still too wide).
   form-wrap gets max-width:100% so it can't push horizontal scroll.
   ============================================================ */
@media(max-width:600px){
  .prod-grid{grid-template-columns:1fr}
  .cam-grid{grid-template-columns:1fr}
  .h-stats{flex-wrap:wrap;gap:1.25rem}
  .ab-stats{grid-template-columns:1fr 1fr}

  /* contact form fixes */
  .f-row{grid-template-columns:1fr}
  .form-wrap{max-width:100%;overflow:hidden}
  .contact-grid{gap:2rem}

  /* hero breathing room */
  .hero-stats{gap:1.25rem;flex-wrap:wrap}
  .hero-actions{flex-direction:column;align-items:flex-start}
  .btn-primary,.btn-secondary{width:100%;justify-content:center}

  /* section padding tighter on phones */
  .sec{padding:50px 1.25rem}
  #hero{padding:100px 1.25rem 60px}
  .section-container{padding:0 1.25rem}
}

/* ============================================================
   FIX 3 — Touch targets: minimum 44×44px on all interactive elements
   WCAG 2.5.5 / Apple HIG requirement
   ============================================================ */
.nav-link{
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.footer-link{
  min-height: 44px;
  display: flex;
  align-items: center;
  padding-top: 2px;
  padding-bottom: 2px;
}
.mobile-link{
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.social-link{
  width: 44px;
  height: 44px;
}
/* Scroll-to-top button already 48px — confirm min */
#scroll-top{
  width: 48px;
  height: 48px;
  min-width: 44px;
  min-height: 44px;
}
/* Hamburger: pad to 44px hit area without changing visual size */
.hamburger{
  min-width: 44px;
  min-height: 44px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

/* ============================================================
   FIX 4 — iOS safe-area insets (notch / home indicator)
   env() is ignored on browsers that don't support it.
   ============================================================ */
#site-navbar{
  padding-left:  max(2rem, env(safe-area-inset-left));
  padding-right: max(2rem, env(safe-area-inset-right));
}
#site-footer{
  padding-bottom: max(30px, env(safe-area-inset-bottom));
}
#hero{
  padding-left:  max(2rem, env(safe-area-inset-left));
  padding-right: max(2rem, env(safe-area-inset-right));
}
.mobile-drawer{
  padding-left:  env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
  padding-bottom: env(safe-area-inset-bottom);
}

/* ============================================================
   FIX 5 — Partner ticker: pause on touch / active
   Also adds momentum-friendly touch-action so swipe doesn't
   accidentally trigger the click state.
   ============================================================ */
.ticker-track{
  touch-action: pan-x;
  -webkit-overflow-scrolling: touch;
}
.ticker-track:active,
#partners-ticker:hover .ticker-track{
  animation-play-state: paused;
}
/* Bigger tap zone on each ticker item on mobile */
@media(max-width:768px){
  .ticker-item{
    padding: 4px 1rem;
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}
