:root {
  --ic-bg-0: #07090d;
  --ic-bg-1: #0b0f17;
  --ic-surface-0: rgba(255, 255, 255, 0.06);
  --ic-surface-1: rgba(255, 255, 255, 0.09);
  --ic-border-0: rgba(255, 255, 255, 0.10);
  --ic-text-0: rgba(255, 255, 255, 0.92);
  --ic-text-1: rgba(255, 255, 255, 0.72);
  --ic-text-2: rgba(255, 255, 255, 0.55);

  --ic-neon-cyan: #3bf6ff;
  --ic-neon-green: #22ff88;
  --ic-neon-red: #ff2d55;
  --ic-neon-violet: #9a6bff;

  --ic-shadow-0: 0 10px 30px rgba(0, 0, 0, 0.45);
  --ic-shadow-1: 0 18px 60px rgba(0, 0, 0, 0.55);

  --ic-radius-sm: 12px;
  --ic-radius-md: 18px;
  --ic-radius-lg: 28px;

  --ic-container: 1160px;
  --ic-gutter: 20px;

  --ic-font-sans: "Space Grotesk", system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;
  --ic-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  --ic-nav-h: 72px;
  --ic-transition: 240ms cubic-bezier(0.2, 0.8, 0.2, 1);
  --ic-transition-slow: 520ms cubic-bezier(0.2, 0.8, 0.2, 1);
  --ic-scroll: 0;
  --ic-mx: 0;
  --ic-my: 0;
}

html {
  background: var(--ic-bg-0);
  overflow-x: hidden;
}

@supports (overflow-x: clip) {
  html {
    overflow-x: clip;
  }
}

body.ic-landing-body {
  margin: 0;
  color: var(--ic-text-0);
  font-family: var(--ic-font-sans);
  background:
    radial-gradient(1200px 700px at 20% 15%, rgba(59, 246, 255, 0.10), transparent 55%),
    radial-gradient(900px 520px at 80% 20%, rgba(154, 107, 255, 0.12), transparent 60%),
    radial-gradient(900px 600px at 55% 85%, rgba(34, 255, 136, 0.10), transparent 58%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.035) 0, rgba(255, 255, 255, 0.035) 1px, transparent 1px, transparent 92px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.028) 0, rgba(255, 255, 255, 0.028) 1px, transparent 1px, transparent 92px),
    linear-gradient(180deg, var(--ic-bg-0), var(--ic-bg-1));
  overflow-x: hidden;
  position: relative;
  overscroll-behavior-x: none;
}

body.ic-landing-body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(900px 520px at 18% 22%, rgba(59, 246, 255, 0.10), transparent 60%),
    radial-gradient(900px 520px at 82% 30%, rgba(34, 255, 136, 0.08), transparent 62%),
    radial-gradient(1200px 700px at 50% 105%, rgba(154, 107, 255, 0.08), transparent 62%);
  opacity: 0.55;
  transform: translate3d(0, calc(var(--ic-scroll) * -0.04px), 0);
  will-change: transform;
}

body.ic-landing-body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  z-index: 9997;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.12)),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.12) 0 1px, transparent 1px 7px),
    repeating-linear-gradient(90deg, rgba(59, 246, 255, 0.10) 0 2px, transparent 2px 11px),
    radial-gradient(1200px 700px at 20% 15%, rgba(59, 246, 255, 0.14), transparent 55%),
    radial-gradient(900px 520px at 80% 20%, rgba(154, 107, 255, 0.16), transparent 60%);
  mix-blend-mode: screen;
  filter: contrast(130%) saturate(130%);
  transform: translate3d(0, 0, 0);
  transition: opacity 120ms linear;
}

body.ic-landing-body.ic-scroll-glitch::after {
  opacity: 0.20;
  animation: ic-scroll-glitch 520ms steps(2, end) infinite;
}

@keyframes ic-scroll-glitch {
  0% {
    transform: translate3d(0, 0, 0);
    filter: contrast(130%) saturate(130%) hue-rotate(0deg);
  }
  18% {
    transform: translate3d(-8px, 1px, 0);
    filter: contrast(155%) saturate(155%) hue-rotate(8deg);
  }
  35% {
    transform: translate3d(7px, -1px, 0);
    filter: contrast(140%) saturate(160%) hue-rotate(-10deg);
  }
  58% {
    transform: translate3d(-5px, 2px, 0);
    filter: contrast(170%) saturate(135%) hue-rotate(12deg);
  }
  78% {
    transform: translate3d(6px, 0, 0);
    filter: contrast(150%) saturate(150%) hue-rotate(-6deg);
  }
  100% {
    transform: translate3d(0, 0, 0);
    filter: contrast(130%) saturate(130%) hue-rotate(0deg);
  }
}

body.ic-landing-body.ic-nav-open {
  overflow: hidden;
}

html.ic-nav-open {
  overflow: hidden;
}

body.ic-landing-body *,
body.ic-landing-body *::before,
body.ic-landing-body *::after {
  box-sizing: border-box;
}

body.ic-landing-body a {
  color: inherit;
  text-decoration: none;
}

body.ic-landing-body img {
  max-width: 100%;
  display: block;
}

body.ic-landing-body button {
  font-family: inherit;
}

.ic-container {
  width: min(var(--ic-container), 100% - (var(--ic-gutter) * 2));
  margin-inline: auto;
}

.ic-skip-link {
  position: absolute;
  left: 12px;
  top: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.85);
  border: 1px solid var(--ic-border-0);
  transform: translateY(-140%);
  transition: transform var(--ic-transition);
  z-index: 9999;
}

.ic-skip-link:focus {
  transform: translateY(0);
}

.ic-nav-wrap {
  position: sticky;
  top: 0;
  z-index: 1000;
  height: var(--ic-nav-h);
  display: grid;
  align-items: center;
  background: rgba(7, 9, 13, 0.35);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  transition: background var(--ic-transition), border-color var(--ic-transition);
}

.ic-bs-navbar {
  min-height: var(--ic-nav-h);
  padding: 0;
}

.ic-bs-navbar .navbar-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0;
}

.ic-bs-toggler {
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  padding: 10px 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}

.ic-bs-toggler:focus {
  box-shadow: 0 0 0 0.18rem rgba(59, 246, 255, 0.18);
}

.ic-bs-icon,
.ic-bs-icon-x {
  width: 22px;
  height: 14px;
  display: block;
  position: relative;
}

.ic-bs-icon {
  background:
    linear-gradient(rgba(255, 255, 255, 0.92) 0 0) 0 0/100% 2px,
    linear-gradient(rgba(255, 255, 255, 0.92) 0 0) 0 6px/100% 2px,
    linear-gradient(rgba(255, 255, 255, 0.92) 0 0) 0 12px/100% 2px;
  background-repeat: no-repeat;
}

.ic-bs-icon-x {
  display: none;
}

.ic-bs-icon-x::before,
.ic-bs-icon-x::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 6px;
  height: 2px;
  background: rgba(255, 255, 255, 0.92);
  border-radius: 999px;
}

.ic-bs-icon-x::before {
  transform: rotate(45deg);
}

.ic-bs-icon-x::after {
  transform: rotate(-45deg);
}

.ic-bs-toggler[aria-expanded="true"] .ic-bs-icon {
  display: none;
}

.ic-bs-toggler[aria-expanded="true"] .ic-bs-icon-x {
  display: block;
}

.ic-bs-navbar .nav-link {
  color: var(--ic-text-1);
  border-radius: 14px;
  padding: 12px 14px;
  transition: color var(--ic-transition), background var(--ic-transition), border-color var(--ic-transition), box-shadow var(--ic-transition);
}

.ic-bs-navbar .nav-link:hover {
  color: var(--ic-text-0);
  background: rgba(255, 255, 255, 0.06);
}

.ic-bs-navbar .nav-link.active {
  color: var(--ic-text-0);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

@media (max-width: 991.98px) {
  .ic-bs-navbar .navbar-collapse {
    position: fixed;
    top: var(--ic-nav-h);
    left: var(--ic-gutter);
    right: var(--ic-gutter);
    margin-top: 0;
    padding: 14px;
    border-radius: 20px;
    background: #07090d;
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: var(--ic-shadow-1);
    z-index: 6000;
  }

  .ic-bs-navbar .navbar-nav {
    gap: 10px;
  }

  .ic-bs-cta {
    display: grid;
    gap: 10px;
    margin-top: 12px;
  }

  .ic-bs-cta .ic-btn {
    width: 100%;
  }
}

@media (min-width: 992px) {
  .ic-bs-navbar .navbar-nav {
    align-items: center;
    gap: 8px;
  }

  .ic-bs-cta .ic-btn {
    width: auto;
  }
}

.ic-nav-wrap.is-scrolled {
  background: rgba(7, 9, 13, 0.62);
  border-color: rgba(255, 255, 255, 0.10);
}

.ic-nav-wrap.is-menu-open {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  background: rgba(7, 9, 13, 0.90);
  backdrop-filter: blur(14px);
  border-color: rgba(255, 255, 255, 0.12);
  z-index: 6001;
}

.ic-nav {
  height: var(--ic-nav-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.ic-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  letter-spacing: 0.08em;
}

.ic-brand-mark {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background:
    radial-gradient(circle at 30% 30%, rgba(59, 246, 255, 0.75), transparent 55%),
    radial-gradient(circle at 60% 70%, rgba(34, 255, 136, 0.55), transparent 60%),
    rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow:
    0 0 26px rgba(59, 246, 255, 0.18),
    0 0 36px rgba(34, 255, 136, 0.10);
}

.ic-brand-title {
  font-weight: 700;
  font-size: 14px;
  text-transform: uppercase;
}

.ic-brand-title span {
  color: var(--ic-neon-green);
}

.ic-nav-links {
  display: flex;
  align-items: center;
  gap: 18px;
}

.ic-nav-links a {
  font-size: 14px;
  color: var(--ic-text-1);
  padding: 10px 10px;
  border-radius: 12px;
  transition: color var(--ic-transition), background var(--ic-transition);
}

.ic-nav-links a.is-active {
  color: var(--ic-text-0);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.ic-nav-links a:hover {
  color: var(--ic-text-0);
  background: rgba(255, 255, 255, 0.06);
}

.ic-nav-cta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ic-nav-cta-links {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ic-btn {
  border: 0;
  cursor: pointer;
  padding: 11px 16px;
  border-radius: 14px;
  font-weight: 650;
  letter-spacing: 0.01em;
  transition: transform var(--ic-transition), box-shadow var(--ic-transition), background var(--ic-transition), border-color var(--ic-transition);
  user-select: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
}

.ic-btn:active {
  transform: translateY(1px);
}

.ic-btn-primary {
  color: rgba(0, 0, 0, 0.92);
  background: linear-gradient(135deg, var(--ic-neon-green), var(--ic-neon-cyan));
  box-shadow:
    0 0 0 1px rgba(34, 255, 136, 0.25),
    0 14px 40px rgba(34, 255, 136, 0.18),
    0 14px 40px rgba(59, 246, 255, 0.12);
}

.ic-btn-primary:hover {
  box-shadow:
    0 0 0 1px rgba(34, 255, 136, 0.35),
    0 16px 50px rgba(34, 255, 136, 0.22),
    0 18px 55px rgba(59, 246, 255, 0.16);
  transform: translateY(-1px);
}

.ic-btn-ghost {
  color: var(--ic-text-0);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
}

.ic-btn-ghost:hover {
  background: rgba(255, 255, 255, 0.10);
  border-color: rgba(255, 255, 255, 0.14);
  transform: translateY(-1px);
}

.ic-hamburger {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
}

.ic-hamburger-lines {
  width: 18px;
  height: 12px;
  position: relative;
}

.ic-hamburger-lines span {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(255, 255, 255, 0.86);
  border-radius: 999px;
  transition: transform var(--ic-transition), top var(--ic-transition), opacity var(--ic-transition);
}

.ic-hamburger-lines span:nth-child(1) {
  top: 0;
}

.ic-hamburger-lines span:nth-child(2) {
  top: 5px;
}

.ic-hamburger-lines span:nth-child(3) {
  top: 10px;
}

.ic-hamburger.is-open .ic-hamburger-lines span:nth-child(1) {
  top: 5px;
  transform: rotate(45deg);
}

.ic-hamburger.is-open .ic-hamburger-lines span:nth-child(2) {
  opacity: 0;
}

.ic-hamburger.is-open .ic-hamburger-lines span:nth-child(3) {
  top: 5px;
  transform: rotate(-45deg);
}

.ic-nav-mobile {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 5000;
  padding-top: var(--ic-nav-h);
  background:
    radial-gradient(900px 600px at 50% 0%, rgba(34, 255, 136, 0.08), transparent 60%),
    radial-gradient(900px 600px at 10% 90%, rgba(59, 246, 255, 0.08), transparent 55%),
    rgba(7, 9, 13, 0.94);
  backdrop-filter: blur(16px);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--ic-transition), visibility var(--ic-transition);
  display: grid;
  place-items: center;
}

.ic-nav-mobile.open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.ic-nav-mobile-panel {
  width: min(520px, calc(100% - (var(--ic-gutter) * 2)));
  display: grid;
  gap: 12px;
  padding: 18px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: var(--ic-shadow-1);
  transform: translateY(14px) scale(0.985);
  opacity: 0;
  transition: transform var(--ic-transition), opacity var(--ic-transition);
}

.ic-nav-mobile.open .ic-nav-mobile-panel {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.ic-nav-mobile a {
  display: block;
  padding: 14px 12px;
  border-radius: 14px;
  color: var(--ic-text-0);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
  font-size: 18px;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  transition:
    transform var(--ic-transition),
    background var(--ic-transition),
    border-color var(--ic-transition),
    box-shadow var(--ic-transition),
    opacity var(--ic-transition);
  opacity: 0;
  transform: translateY(10px);
  transition-delay: calc(var(--i, 0) * 70ms);
}

.ic-nav-mobile a:active {
  transform: translateY(1px);
}

.ic-nav-mobile a:hover {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.16);
  box-shadow:
    0 0 0 1px rgba(34, 255, 136, 0.20),
    0 0 28px rgba(59, 246, 255, 0.10);
  transform: translateY(-1px);
}

.ic-nav-mobile a.is-active {
  background: rgba(255, 255, 255, 0.10);
  border-color: rgba(34, 255, 136, 0.28);
  box-shadow: 0 0 0 1px rgba(34, 255, 136, 0.20);
}

.ic-nav-mobile.open a {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 420px) {
  .ic-nav-mobile {
    padding-top: var(--ic-nav-h);
  }

  .ic-nav-mobile a {
    padding: 13px 12px;
    font-size: 16px;
  }
}

.ic-landing {
  position: relative;
}

.ic-hero {
  position: relative;
  /* min-height: calc(100vh - var(--ic-nav-h)); */
  /* padding: clamp(28px, 5vw, 54px) 0; */
  overflow: hidden;
}

.ic-hero::before,
.ic-hero::after {
  content: "";
  position: absolute;
  inset: -160px;
  pointer-events: none;
  opacity: 0.9;
}

.ic-hero::before {
  background:
    radial-gradient(520px 320px at 18% 30%, rgba(59, 246, 255, 0.16), transparent 62%),
    radial-gradient(640px 360px at 84% 32%, rgba(154, 107, 255, 0.14), transparent 66%),
    radial-gradient(820px 420px at 50% 92%, rgba(34, 255, 136, 0.10), transparent 68%);
  transform: translate3d(0, calc(var(--ic-scroll) * -0.06px), 0);
  will-change: transform;
}

.ic-hero::after {
  background:
    radial-gradient(520px 320px at 30% 22%, rgba(34, 255, 136, 0.06), transparent 60%),
    radial-gradient(640px 360px at 70% 18%, rgba(59, 246, 255, 0.06), transparent 62%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.10), rgba(0, 0, 0, 0.55));
  transform: translate3d(0, calc(var(--ic-scroll) * -0.03px), 0);
  opacity: 0.75;
  will-change: transform;
}

.ic-hero--compact {
  min-height: calc(78vh - var(--ic-nav-h));
}

.ic-hero--compact .ic-hero-overlay {
  min-height: calc(78vh - var(--ic-nav-h));
}

.ic-service-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 18px 0 22px;
}

.ic-service-tab {
  cursor: pointer;
  transition: transform var(--ic-transition), border-color var(--ic-transition), background var(--ic-transition);
}

.ic-service-tab:hover {
  transform: translateY(-1px);
}

.ic-service-group {
  padding-top: 8px;
  margin-top: 14px;
}

.ic-service-group-head {
  margin: 8px 0 14px;
}

.ic-service-group-title {
  margin: 0;
  font-size: 18px;
  letter-spacing: -0.01em;
  color: var(--ic-text-0);
}

.ic-hero-canvas {
  position: absolute;
  inset: 0;
  z-index: 0;
}

#hero-canvas {
  width: 100%;
  height: 100%;
  display: block;
}

.ic-hero-overlay {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: clamp(18px, 4vw, 44px);
  align-items: center;
  min-height: calc(100vh - var(--ic-nav-h));
}

.ic-hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: var(--ic-shadow-0);
  color: var(--ic-text-1);
  width: fit-content;
}

.ic-pulse-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--ic-neon-green);
  box-shadow: 0 0 18px rgba(34, 255, 136, 0.55);
  animation: ic-pulse 1.6s ease-in-out infinite;
}

@keyframes ic-pulse {
  0%,
  100% {
    transform: scale(0.85);
    opacity: 0.75;
  }
  50% {
    transform: scale(1.15);
    opacity: 1;
  }
}

.ic-hero-title {
  margin: 14px 0 10px;
  font-size: clamp(40px, 5vw, 68px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--ic-text-0);
}

.ic-accent {
  background: linear-gradient(135deg, var(--ic-neon-green), var(--ic-neon-cyan), var(--ic-neon-violet));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 12px 30px rgba(34, 255, 136, 0.10));
}

.ic-hero-sub {
  margin: 0;
  max-width: 54ch;
  color: var(--ic-text-1);
  font-size: 16px;
  line-height: 1.6;
}

.ic-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.ic-webgl-fallback {
  margin-top: 14px;
  color: var(--ic-text-2);
  max-width: 60ch;
}

.ic-hero-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-self: end;
}

.ic-stat {
  padding: 14px 14px;
  border-radius: var(--ic-radius-md);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: var(--ic-shadow-0);
}

.ic-stat-label {
  color: var(--ic-text-2);
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ic-stat-value {
  margin-top: 8px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.ic-hero-gradient {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(900px 480px at 50% 40%, rgba(0, 0, 0, 0.10), rgba(0, 0, 0, 0.55) 60%, rgba(0, 0, 0, 0.80) 100%),
    linear-gradient(180deg, rgba(7, 9, 13, 0.40), rgba(7, 9, 13, 0.92));
  mix-blend-mode: multiply;
}

.ic-section {
  padding: clamp(42px, 6vw, 84px) 0;
}

.ic-sec {
  position: relative;
  isolation: isolate;
}

.ic-sec > .ic-container {
  position: relative;
  z-index: 1;
}

.ic-sec::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(680px 420px at 18% 32%, var(--ic-sec-a, rgba(59, 246, 255, 0.10)), transparent 62%),
    radial-gradient(760px 460px at 82% 38%, var(--ic-sec-b, rgba(34, 255, 136, 0.08)), transparent 64%),
    radial-gradient(820px 520px at 52% 90%, var(--ic-sec-c, rgba(154, 107, 255, 0.08)), transparent 66%);
  opacity: 0.9;
  transform: translate3d(calc(var(--ic-mx) * 10px), calc(var(--ic-my) * 8px + var(--ic-scroll) * -0.03px), 0);
  will-change: transform;
}

.ic-sec::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.25;
  background:
    repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0, rgba(255, 255, 255, 0.08) 1px, transparent 1px, transparent 14px);
  mask-image: radial-gradient(65% 80% at 50% 30%, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
}

.ic-sec--about {
  --ic-sec-a: rgba(59, 246, 255, 0.12);
  --ic-sec-b: rgba(154, 107, 255, 0.10);
  --ic-sec-c: rgba(34, 255, 136, 0.08);
}

.ic-sec--services {
  --ic-sec-a: rgba(34, 255, 136, 0.12);
  --ic-sec-b: rgba(59, 246, 255, 0.10);
  --ic-sec-c: rgba(154, 107, 255, 0.06);
}

.ic-sec--programs {
  --ic-sec-a: rgba(154, 107, 255, 0.12);
  --ic-sec-b: rgba(59, 246, 255, 0.10);
  --ic-sec-c: rgba(34, 255, 136, 0.06);
}

.ic-sec--gallery {
  --ic-sec-a: rgba(59, 246, 255, 0.14);
  --ic-sec-b: rgba(34, 255, 136, 0.10);
  --ic-sec-c: rgba(154, 107, 255, 0.06);
}

.ic-sec--testimonials {
  --ic-sec-a: rgba(154, 107, 255, 0.12);
  --ic-sec-b: rgba(34, 255, 136, 0.08);
  --ic-sec-c: rgba(59, 246, 255, 0.08);
}

.ic-sec--contact {
  --ic-sec-a: rgba(34, 255, 136, 0.10);
  --ic-sec-b: rgba(59, 246, 255, 0.10);
  --ic-sec-c: rgba(154, 107, 255, 0.06);
}

.ic-section-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 18px;
}

.ic-section-header::after {
  content: "";
  height: 1px;
  flex: 1;
  align-self: center;
  background: linear-gradient(90deg, rgba(59, 246, 255, 0.00), rgba(59, 246, 255, 0.35), rgba(34, 255, 136, 0.22), rgba(154, 107, 255, 0.00));
  opacity: 0.7;
}

.ic-section-title {
  margin: 0;
  font-size: clamp(26px, 3vw, 40px);
  letter-spacing: -0.02em;
  color: var(--ic-text-0);
}

.ic-section-desc {
  margin: 0;
  color: var(--ic-text-1);
  max-width: 60ch;
  line-height: 1.65;
}

.ic-muted {
  color: var(--ic-text-2);
  line-height: 1.6;
}

.ic-richtext {
  color: var(--ic-text-1);
  line-height: 1.75;
  max-width: 80ch;
  margin-bottom: 18px;
}

.ic-richtext p {
  margin: 0 0 12px;
}

.ic-richtext p:last-child {
  margin-bottom: 0;
}

.ic-richtext a {
  color: var(--ic-neon-cyan);
  text-decoration: none;
  border-bottom: 1px solid rgba(59, 246, 255, 0.35);
}

.ic-richtext a:hover {
  border-bottom-color: rgba(59, 246, 255, 0.65);
}

.ic-richtext ul,
.ic-richtext ol {
  margin: 10px 0 12px 18px;
  padding: 0;
}

.ic-richtext li {
  margin: 6px 0;
}

.ic-richtext strong {
  color: var(--ic-text-0);
}

.ic-about-image-wrap {
  margin-bottom: 18px;
}

.ic-about-image {
  position: relative;
  border-radius: var(--ic-radius-lg);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: var(--ic-shadow-1);
}

.ic-about-image img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 16 / 7;
  object-fit: cover;
  filter: saturate(1.05) contrast(1.05);
  transform: scale(1.01);
}

.ic-about-image-overlay {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(700px 260px at 20% 25%, rgba(59, 246, 255, 0.18), transparent 60%),
    radial-gradient(700px 260px at 80% 70%, rgba(34, 255, 136, 0.14), transparent 60%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0.58));
  pointer-events: none;
}

.ic-detail {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 18px;
  align-items: start;
}

.ic-detail-media {
  border-radius: var(--ic-radius-lg);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: var(--ic-shadow-1);
}

.ic-detail-media img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.ic-detail-body .ic-section-title {
  font-size: clamp(22px, 2.4vw, 32px);
}

.ic-spec {
  margin-top: 16px;
  border-radius: var(--ic-radius-lg);
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(255, 255, 255, 0.05);
  overflow: hidden;
}

.ic-spec-row {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 12px;
  padding: 12px 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.ic-spec-row:first-child {
  border-top: 0;
}

.ic-spec-k {
  color: var(--ic-text-2);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-family: var(--ic-font-mono);
}

.ic-spec-v {
  color: var(--ic-text-0);
  line-height: 1.6;
}

.ic-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 14px;
}

.ic-card {
  --ic-card-ty: 0px;
  --ic-card-rx: 0deg;
  --ic-card-ry: 0deg;
  --ic-reveal-y: 0px;
  --ic-reveal-scale: 1;

  border-radius: var(--ic-radius-lg);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.035));
  border: 1px solid rgba(255, 255, 255, 0.11);
  box-shadow:
    var(--ic-shadow-0),
    inset 0 1px 0 rgba(255, 255, 255, 0.09);
  overflow: hidden;
  padding: 18px 18px;
  transform: perspective(1000px)
    translate3d(0, calc(var(--ic-card-ty) + var(--ic-reveal-y)), 0)
    rotateX(var(--ic-card-rx))
    rotateY(var(--ic-card-ry))
    scale(var(--ic-reveal-scale));
  transition:
    transform var(--ic-transition),
    border-color var(--ic-transition),
    background var(--ic-transition),
    box-shadow var(--ic-transition),
    opacity var(--ic-transition-slow),
    filter var(--ic-transition-slow);
  will-change: transform;
}

.ic-card:hover {
  --ic-card-ty: -4px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.045));
  border-color: rgba(255, 255, 255, 0.16);
  box-shadow: var(--ic-shadow-1);
}

.ic-card-title {
  margin: 14px 0 8px;
  font-size: 18px;
  letter-spacing: -0.01em;
  color: var(--ic-text-0);
}

.ic-card-desc {
  margin: 0;
  color: var(--ic-text-1);
  line-height: 1.65;
  font-size: 14px;
}

.ic-about-grid .ic-card {
  grid-column: span 4;
}

.ic-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 30% 30%, rgba(59, 246, 255, 0.20), transparent 55%),
    radial-gradient(circle at 60% 70%, rgba(34, 255, 136, 0.20), transparent 60%),
    rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: 0 0 30px rgba(59, 246, 255, 0.10);
}

.ic-programs-grid .ic-card {
  grid-column: span 4;
}

.ic-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
  color: var(--ic-text-1);
  font-size: 12px;
  letter-spacing: 0.02em;
  width: fit-content;
}

.ic-sitemap-grid .ic-sitemap-card,
.ic-sitemap-products .ic-sitemap-card {
  display: block;
  text-decoration: none;
  color: inherit;
}

.ic-sitemap-grid .ic-sitemap-card {
  grid-column: span 4;
}

.ic-sitemap-products .ic-sitemap-card {
  grid-column: span 4;
}

.ic-sitemap-cta {
  margin-top: 12px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ic-font-mono);
  font-size: 12px;
  color: var(--ic-text-2);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.ic-sitemap-arrow {
  color: var(--ic-neon-green);
  text-shadow: 0 0 18px rgba(34, 255, 136, 0.35);
}

.ic-location-parent {
  margin-bottom: 14px;
  background:
    radial-gradient(860px 360px at 18% 30%, rgba(59, 246, 255, 0.12), transparent 60%),
    radial-gradient(860px 360px at 80% 40%, rgba(34, 255, 136, 0.10), transparent 62%),
    rgba(255, 255, 255, 0.06);
}

.ic-location-grid {
  margin-bottom: 20px;
}

.ic-location-grid .ic-location-card {
  grid-column: span 4;
}

.ic-location-cta {
  margin-top: 12px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ic-font-mono);
  font-size: 12px;
  color: var(--ic-text-2);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.ic-location-arrow {
  color: var(--ic-neon-green);
  text-shadow: 0 0 18px rgba(34, 255, 136, 0.35);
}

.ic-chip-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--ic-neon-cyan);
  box-shadow: 0 0 16px rgba(59, 246, 255, 0.55);
}

.ic-program-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 16px;
  color: var(--ic-text-2);
  font-size: 12px;
  font-family: var(--ic-font-mono);
}

.ic-trainers-grid .ic-card {
  grid-column: span 3;
}

.ic-services-grid .ic-service-card {
  grid-column: span 4;
  padding: 0;
}

.ic-service-link {
  display: block;
}

.ic-service-media {
  position: relative;
  border-radius: calc(var(--ic-radius-lg) - 2px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(0, 0, 0, 0.25);
}

.ic-service-img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transform: scale(1.01);
  transition: transform var(--ic-transition), filter var(--ic-transition);
  filter: saturate(1.04) contrast(1.04);
}

.ic-service-overlay {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(520px 260px at 20% 25%, rgba(59, 246, 255, 0.18), transparent 55%),
    radial-gradient(520px 260px at 80% 75%, rgba(34, 255, 136, 0.16), transparent 58%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.62));
  opacity: 0.88;
  transition: opacity var(--ic-transition);
}

.ic-service-body {
  padding: 16px 18px 18px;
}

.ic-service-cta {
  margin-top: 14px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ic-font-mono);
  font-size: 12px;
  color: var(--ic-text-2);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.ic-service-arrow {
  color: var(--ic-neon-green);
  text-shadow: 0 0 18px rgba(34, 255, 136, 0.35);
}

.ic-service-link:focus-visible .ic-service-media {
  outline: 2px solid rgba(34, 255, 136, 0.50);
  outline-offset: 3px;
}

.ic-service-card:hover .ic-service-img {
  transform: scale(1.06);
}

.ic-service-card:hover .ic-service-overlay {
  opacity: 0.95;
}

.ic-service-card:hover .ic-service-cta {
  color: var(--ic-text-1);
}

.ic-gallery-item {
  grid-column: span 4;
  position: relative;
  display: block;
  border-radius: var(--ic-radius-lg);
  overflow: hidden;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: 0 16px 50px rgba(0, 0, 0, 0.22);
  --ic-card-ty: 0px;
  --ic-card-rx: 0deg;
  --ic-card-ry: 0deg;
  transform: perspective(1000px) translate3d(0, var(--ic-card-ty), 0) rotateX(var(--ic-card-rx)) rotateY(var(--ic-card-ry));
  transition: transform var(--ic-transition), border-color var(--ic-transition), box-shadow var(--ic-transition), filter var(--ic-transition);
  will-change: transform;
}

.ic-gallery-item::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(520px 260px at 20% 25%, rgba(59, 246, 255, 0.16), transparent 55%),
    radial-gradient(520px 260px at 80% 75%, rgba(34, 255, 136, 0.12), transparent 58%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.32));
  opacity: 0;
  transition: opacity var(--ic-transition);
  pointer-events: none;
}

.ic-gallery-img {
  width: 100%;
  height: 100%;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transform: scale(1.01);
  transition: transform var(--ic-transition), filter var(--ic-transition);
  filter: saturate(1.02) contrast(1.02);
}

.ic-gallery-item:focus-visible {
  outline: 2px solid rgba(34, 255, 136, 0.50);
  outline-offset: 3px;
}

.ic-gallery-item:hover {
  --ic-card-ty: -6px;
  border-color: rgba(34, 255, 136, 0.22);
  box-shadow:
    0 0 0 1px rgba(34, 255, 136, 0.18),
    0 26px 90px rgba(34, 255, 136, 0.10),
    0 26px 80px rgba(59, 246, 255, 0.08);
}

.ic-gallery-item:hover::after {
  opacity: 1;
}

.ic-gallery-item:hover .ic-gallery-img {
  transform: scale(1.06);
}

.ic-empty {
  padding: 18px 18px;
  border-radius: var(--ic-radius-lg);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.10);
  color: var(--ic-text-1);
}

.ic-lightbox {
  position: fixed;
  inset: 0;
  display: none;
  place-items: center;
  z-index: 3000;
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(10px);
  padding: 18px;
}

.ic-lightbox.open {
  display: grid;
}

.ic-lightbox-panel {
  width: min(1100px, 100%);
  border-radius: var(--ic-radius-lg);
  background: rgba(7, 9, 13, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: var(--ic-shadow-1);
  overflow: hidden;
  transform: translateY(10px) scale(0.985);
  opacity: 0;
  transition: transform var(--ic-transition-slow), opacity var(--ic-transition-slow);
}

.ic-lightbox.open .ic-lightbox-panel {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.ic-lightbox-stage {
  position: relative;
  background: rgba(0, 0, 0, 0.25);
}

.ic-lightbox-img {
  width: 100%;
  height: auto;
  display: block;
  max-height: 78vh;
  object-fit: contain;
  background: rgba(0, 0, 0, 0.25);
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  transition: opacity var(--ic-transition), transform var(--ic-transition);
}

.ic-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
  color: var(--ic-text-0);
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  box-shadow: var(--ic-shadow-0);
  transition: transform var(--ic-transition), background var(--ic-transition), border-color var(--ic-transition), opacity var(--ic-transition);
}

.ic-lightbox-nav:hover {
  background: rgba(255, 255, 255, 0.10);
  border-color: rgba(255, 255, 255, 0.18);
  transform: translateY(-50%) scale(1.02);
}

.ic-lightbox-nav:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.ic-lightbox-prev {
  left: 12px;
}

.ic-lightbox-next {
  right: 12px;
}

.ic-lightbox-x {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 5;
  pointer-events: auto;
  width: 44px;
  height: 44px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
  color: var(--ic-text-0);
  font-size: 26px;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: var(--ic-shadow-0);
  transition: background var(--ic-transition), border-color var(--ic-transition), transform var(--ic-transition);
}

.ic-lightbox-x:hover {
  background: rgba(255, 255, 255, 0.10);
  border-color: rgba(255, 255, 255, 0.18);
  transform: translateY(-1px);
}

.ic-lightbox-x {
  top: calc(12px + env(safe-area-inset-top, 0px));
  right: calc(12px + env(safe-area-inset-right, 0px));
}

.ic-lightbox-footer {
  padding: 14px 16px;
  color: var(--ic-text-1);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ic-lightbox-meta {
  display: grid;
  gap: 4px;
}

.ic-lightbox-title {
  font-weight: 650;
  color: var(--ic-text-0);
  letter-spacing: -0.01em;
}

.ic-lightbox-title:empty {
  display: none;
}

.ic-lightbox-counter {
  font-size: 12px;
  color: var(--ic-text-2);
  font-family: var(--ic-font-mono);
}

@media (max-width: 720px) {
  .ic-lightbox {
    padding: 12px;
  }

  .ic-lightbox-panel {
    border-radius: 18px;
  }

  .ic-lightbox-nav {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    font-size: 24px;
  }

  .ic-lightbox-prev {
    left: 8px;
  }

  .ic-lightbox-next {
    right: 8px;
  }

  .ic-lightbox-x {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    font-size: 26px;
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(255, 255, 255, 0.20);
  }

  .ic-lightbox-img {
    max-height: 72vh;
  }
}

.ic-lightbox-close {
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  color: var(--ic-text-0);
  border-radius: 14px;
  padding: 10px 12px;
}

/* GLightbox fallback styling (when GLightbox JS is present but CSS is not) */
.glightbox-container {
  position: fixed;
  inset: 0;
  z-index: 3500;
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(10px);
}

.glightbox-container .gcontainer,
.glightbox-container .ginner-container,
.glightbox-container .gslide {
  height: 100%;
}

.glightbox-container .gslide-media {
  max-width: min(1100px, 100%);
  margin: 0 auto;
  padding: 18px;
  height: 100%;
  display: grid;
  place-items: center;
}

.glightbox-container .gslide-image img {
  width: 100%;
  height: auto;
  max-height: 78vh;
  object-fit: contain;
  border-radius: var(--ic-radius-lg);
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: var(--ic-shadow-1);
}

.glightbox-container .gclose,
.glightbox-container .gprev,
.glightbox-container .gnext {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
  color: var(--ic-text-0);
  cursor: pointer;
  box-shadow: var(--ic-shadow-0);
  transition: transform var(--ic-transition), background var(--ic-transition), border-color var(--ic-transition), opacity var(--ic-transition);
}

.glightbox-container .gclose:hover,
.glightbox-container .gprev:hover,
.glightbox-container .gnext:hover {
  background: rgba(255, 255, 255, 0.10);
  border-color: rgba(255, 255, 255, 0.18);
  transform: translateY(-1px);
}

.glightbox-container .gclose {
  position: fixed;
  top: calc(12px + env(safe-area-inset-top, 0px));
  right: calc(12px + env(safe-area-inset-right, 0px));
  width: 44px;
  height: 44px;
  border-radius: 16px;
  font-size: 28px;
  line-height: 1;
  display: grid;
  place-items: center;
  z-index: 3600;
}

.glightbox-container .gprev,
.glightbox-container .gnext {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  border-radius: 16px;
  font-size: 28px;
  line-height: 1;
  display: grid;
  place-items: center;
  z-index: 3600;
}

.glightbox-container .gprev {
  left: 12px;
}

.glightbox-container .gnext {
  right: 12px;
}

@media (max-width: 720px) {
  .glightbox-container .gslide-media {
    padding: 12px;
  }

  .glightbox-container .gclose {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(255, 255, 255, 0.20);
  }

  .glightbox-container .gprev,
  .glightbox-container .gnext {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    font-size: 26px;
  }

  .glightbox-container .gprev {
    left: 8px;
  }

  .glightbox-container .gnext {
    right: 8px;
  }

  .glightbox-container .gslide-image img {
    max-height: 72vh;
  }
}

.ic-testimonials {
  background:
    radial-gradient(900px 420px at 20% 35%, rgba(154, 107, 255, 0.10), transparent 60%),
    radial-gradient(900px 420px at 80% 35%, rgba(59, 246, 255, 0.10), transparent 60%);
}

.ic-testimonials-grid .ic-testimonial-card {
  grid-column: span 4;
  padding: 18px 18px;
}

.ic-testimonial-top {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ic-testimonial-avatar {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  box-shadow:
    0 0 26px rgba(59, 246, 255, 0.08),
    0 0 26px rgba(34, 255, 136, 0.06);
  flex: 0 0 auto;
}

.ic-testimonial-avatar img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.ic-testimonial-meta .ic-card-title {
  margin: 0;
}

.ic-testimonial-role {
  margin-top: 2px;
  color: var(--ic-text-2);
  font-size: 13px;
}

.ic-testimonial-quote {
  margin-top: 14px;
  line-height: 1.7;
}

.ic-quote-mark {
  display: inline-block;
  line-height: 1;
  font-size: 22px;
  font-weight: 750;
  transform: translateY(2px);
  user-select: none;
}

.ic-quote-open {
  margin-right: 6px;
  color: rgba(59, 246, 255, 0.55);
  text-shadow: 0 0 18px rgba(59, 246, 255, 0.20);
}

.ic-quote-close {
  margin-left: 6px;
  color: rgba(34, 255, 136, 0.50);
  text-shadow: 0 0 18px rgba(34, 255, 136, 0.18);
}

.ic-trainer-top {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ic-trainer-avatar {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background:
    radial-gradient(circle at 30% 30%, rgba(255, 45, 85, 0.22), transparent 55%),
    radial-gradient(circle at 70% 70%, rgba(59, 246, 255, 0.18), transparent 60%),
    rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow:
    0 0 26px rgba(255, 45, 85, 0.10),
    0 0 26px rgba(59, 246, 255, 0.08);
  display: grid;
  place-items: center;
  font-weight: 750;
  letter-spacing: 0.02em;
}

.ic-trainer-role {
  color: var(--ic-text-2);
  font-size: 13px;
  margin-top: 2px;
}

.ic-cta {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background:
    radial-gradient(900px 420px at 20% 30%, rgba(34, 255, 136, 0.10), transparent 60%),
    radial-gradient(840px 420px at 80% 20%, rgba(59, 246, 255, 0.10), transparent 60%);
}

.ic-cta-inner {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 18px;
  align-items: center;
  padding: 32px;
  border-radius: var(--ic-radius-lg);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: var(--ic-shadow-1);
}

.ic-cta-title {
  margin: 0;
  font-size: clamp(24px, 3vw, 40px);
  letter-spacing: -0.02em;
  color: var(--ic-text-0);
}

.ic-cta-desc {
  margin: 12px 0 0;
  color: var(--ic-text-1);
  line-height: 1.65;
}

.ic-cta-actions {
  display: flex;
  justify-content: end;
  gap: 12px;
  flex-wrap: wrap;
}

.ic-contact-grid .ic-card {
  grid-column: span 6;
}

.ic-field {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.ic-field label {
  color: var(--ic-text-2);
  font-size: 12px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.ic-home-form-grid {
  gap: 12px;
}

.ic-home-form-half {
  grid-column: span 6;
}

.ic-home-form-full {
  grid-column: span 12;
}

.ic-input {
  width: 100%;
  padding: 12px 12px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--ic-text-0);
  outline: none;
  transition: border-color var(--ic-transition), background var(--ic-transition);
}

.ic-input:focus {
  border-color: rgba(34, 255, 136, 0.42);
  background: rgba(255, 255, 255, 0.08);
}

.ic-input-error {
  border-color: rgba(255, 45, 85, 0.55) !important;
  box-shadow: 0 0 0 1px rgba(255, 45, 85, 0.20);
}

.ic-contact-page-grid .ic-card {
  grid-column: span 6;
}

.ic-map {
  margin-top: 16px;
  border-radius: var(--ic-radius-lg);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
}

.ic-map iframe {
  display: block;
}

.ic-form-actions {
  display: flex;
  gap: 12px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.ic-contact-status {
  margin-top: 12px;
}

.ic-stack {
  display: grid;
  gap: 10px;
}

.ic-mt-12 {
  margin-top: 12px !important;
}

.ic-mt-14 {
  margin-top: 14px !important;
}

.ic-footer {
  padding: 36px 0;
  color: var(--ic-text-2);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.ic-footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.ic-social {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ic-social a {
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
  color: var(--ic-text-1);
  transition: transform var(--ic-transition), background var(--ic-transition), border-color var(--ic-transition);
}

.ic-social a:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.10);
  border-color: rgba(255, 255, 255, 0.14);
}

.ic-noscript {
  padding: 18px 0;
  color: var(--ic-text-1);
}

body.ic-landing-body .reveal {
  opacity: 0;
  filter: blur(10px);
  transition: opacity var(--ic-transition-slow), transform var(--ic-transition-slow), filter var(--ic-transition-slow);
  will-change: opacity, transform, filter;
}

body.ic-landing-body .reveal:not(.ic-card) {
  transform: translateY(16px) scale(0.985);
}

body.ic-landing-body .ic-card.reveal {
  --ic-reveal-y: 16px;
  --ic-reveal-scale: 0.985;
}

body.ic-landing-body .reveal.is-visible {
  opacity: 1;
  filter: blur(0);
}

body.ic-landing-body .reveal.is-visible:not(.ic-card) {
  transform: translateY(0) scale(1);
}

body.ic-landing-body .ic-card.reveal.is-visible {
  --ic-reveal-y: 0px;
  --ic-reveal-scale: 1;
}

@media (max-width: 980px) {
  .ic-hero-overlay {
    grid-template-columns: 1fr;
  }

  .ic-about-grid .ic-card,
  .ic-programs-grid .ic-card {
    grid-column: span 6;
  }

  .ic-trainers-grid .ic-card {
    grid-column: span 6;
  }

  .ic-services-grid .ic-service-card {
    grid-column: span 6;
  }

  .ic-sitemap-grid .ic-sitemap-card,
  .ic-sitemap-products .ic-sitemap-card {
    grid-column: span 6;
  }

  .ic-location-grid .ic-location-card {
    grid-column: span 6;
  }

  .ic-gallery-grid .ic-gallery-item {
    grid-column: span 6;
  }

  .ic-testimonials-grid .ic-testimonial-card {
    grid-column: span 6;
  }

  .ic-detail {
    grid-template-columns: 1fr;
  }

  .ic-contact-page-grid .ic-card {
    grid-column: span 12;
  }



  .ic-cta-inner {
    grid-template-columns: 1fr;
  }

  .ic-cta-actions {
    justify-content: start;
  }
}

@media (max-width: 720px) {
  .ic-section-header::after {
    display: none;
  }

  .ic-nav-links {
    display: none;
  }

  .ic-nav-cta-links {
    display: none;
  }

  .ic-hamburger {
    display: inline-flex;
  }

  .ic-about-grid .ic-card,
  .ic-programs-grid .ic-card,
  .ic-trainers-grid .ic-card,
  .ic-services-grid .ic-service-card,
  .ic-sitemap-grid .ic-sitemap-card,
  .ic-sitemap-products .ic-sitemap-card,
  .ic-location-grid .ic-location-card,
  .ic-gallery-grid .ic-gallery-item,
  .ic-testimonials-grid .ic-testimonial-card,
  .ic-contact-grid .ic-card {
    grid-column: span 12;
  }

  .ic-home-form-half {
    grid-column: span 12;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.ic-landing-body .ic-btn,
  body.ic-landing-body .ic-nav-links a,
  body.ic-landing-body .ic-card,
  body.ic-landing-body .reveal,
  body.ic-landing-body .ic-pulse-dot,
  body.ic-landing-body .ic-hamburger-lines span {
    transition: none !important;
    animation: none !important;
  }
}
