/* ============================================================
   BITRION — Shared Stylesheet
   Covers: design tokens, reset, cursor, nav, footer,
   layout, typography, buttons, cards, service cards,
   contact popup, reveal animations, responsive
============================================================ */

    /* ============================================================
       DESIGN TOKENS & CSS VARIABLES
    ============================================================ */
    :root {
      /* Colors */
      --clr-bg:           #030804;
      --clr-bg-2:         #050c06;
      --clr-bg-3:         #081008;
      --clr-surface:      #070f07;
      --clr-surface-2:    #0c180c;
      --clr-border:       rgba(0, 200, 60, 0.12);
      --clr-border-bright:rgba(0, 200, 60, 0.38);

      --clr-cyan:         #22e05a;        /* primary green */
      --clr-cyan-dim:     rgba(34, 224, 90, 0.55);
      --clr-cyan-glow:    rgba(34, 224, 90, 0.12);
      --clr-blue:         #00c840;        /* mid green */
      --clr-blue-dim:     rgba(0, 200, 64, 0.4);
      --clr-accent:       #80ff44;        /* bright lime accent */
      --clr-accent-dim:   rgba(128, 255, 68, 0.3);
      --clr-danger:       #ff3c6e;

      --clr-text:         #d8f0dc;
      --clr-text-muted:   #4d7a55;
      --clr-text-dim:     #224428;

      /* Typography */
      --font-display:     'Inter Tight', sans-serif;
      --font-body:        'Inter Tight', sans-serif;
      --font-mono:        'Share Tech Mono', monospace;

      /* Spacing */
      --sp-xs:   0.25rem;
      --sp-sm:   0.5rem;
      --sp-md:   1rem;
      --sp-lg:   1.5rem;
      --sp-xl:   2rem;
      --sp-2xl:  3rem;
      --sp-3xl:  5rem;
      --sp-4xl:  8rem;

      /* Layout */
      --max-w:        1200px;
      --nav-h:        70px;

      /* Effects */
      --glow-cyan:    0 0 18px rgba(34, 224, 90, 0.5), 0 0 55px rgba(34, 224, 90, 0.18);
      --glow-blue:    0 0 18px rgba(0, 200, 64, 0.45), 0 0 50px rgba(0, 200, 64, 0.12);
      --shadow-card:  0 4px 32px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255,255,255,0.03);

      /* Transitions */
      --t-fast:   0.15s ease;
      --t-mid:    0.3s ease;
      --t-slow:   0.6s cubic-bezier(0.16, 1, 0.3, 1);
    }

    /* ============================================================
       RESET & BASE
    ============================================================ */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

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

    body {
      background-color: var(--clr-bg);
      color: var(--clr-text);
      font-family: var(--font-body);
      font-weight: 400;
      line-height: 1.6;
      overflow-x: hidden;
      cursor: auto;
    }

    a { color: inherit; text-decoration: none; cursor: pointer; }
    img { display: block; max-width: 100%; }
    ul { list-style: none; }
    button { cursor: pointer; font-family: inherit; }

    /* ============================================================
       SCROLLBAR
    ============================================================ */
    ::-webkit-scrollbar { width: 4px; }
    ::-webkit-scrollbar-track { background: var(--clr-bg); }
    ::-webkit-scrollbar-thumb { background: var(--clr-cyan-dim); border-radius: 2px; }

    /* ============================================================
       PAGE TRANSITION OVERLAY
    ============================================================ */
    #page-transition {
      position: fixed;
      inset: 0;
      z-index: 9000;
      pointer-events: none;
      background: var(--clr-bg);
      clip-path: inset(0 0 100% 0);
      transition: clip-path 0.5s cubic-bezier(0.76, 0, 0.24, 1);
    }

    #page-transition.entering {
      clip-path: inset(0 0 0% 0);
      pointer-events: all;
    }

    #page-transition.leaving {
      clip-path: inset(100% 0 0% 0);
    }

    /* ============================================================
       NAVIGATION
    ============================================================ */
    #navbar {
      position: fixed;
      top: 0; left: 0; right: 0;
      height: var(--nav-h);
      z-index: 1000;
      display: flex;
      align-items: center;
      padding: 0 var(--sp-xl);
      transition: background var(--t-mid), border-color var(--t-mid), backdrop-filter var(--t-mid);
    }

    #navbar.scrolled {
      background: rgba(5, 10, 15, 0.92);
      border-bottom: 1px solid var(--clr-border);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
    }

    .nav-inner {
      width: 100%;
      max-width: var(--max-w);
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      align-items: center;
      gap: 0;
    }

    /* Logo */
    .nav-logo {
      display: flex;
      align-items: center;
      gap: var(--sp-sm);
      font-family: var(--font-display);
      font-weight: 900;
      font-size: 1.5rem;
      letter-spacing: 0;
      text-transform: uppercase;
      color: var(--clr-text);
      transition: color var(--t-fast);
      justify-self: start;
    }

    .logo-main {
      color: var(--clr-text);
      transition: color var(--t-fast);
    }

    .logo-accent {
      color: var(--clr-cyan);
      text-shadow: var(--glow-cyan);
      transition: color var(--t-fast), text-shadow var(--t-fast);
    }

    .nav-logo:hover .logo-main  { color: var(--clr-cyan); }
    .nav-logo:hover .logo-accent { color: var(--clr-text); text-shadow: none; }

    .logo-icon {
      width: 36px; height: 36px;
      position: relative;
      flex-shrink: 0;
    }

    .logo-icon svg { width: 100%; height: 100%; }

	.logo-wrapper {
	  height: 40px;
	  width: 120px;
	  background: rgba(34, 224, 90, 0.08);
	  border-radius: 6px;
	  padding: 4px 8px;
	}

	.logo-wrapper img {
	  height: 130%;
	  transform: translateY(-10%);
	}

	.logo-text {
	  margin-left: 8px;
	  font-weight: 600;
	  font-size: 18px;
	  color: #22e05a;
	}

    /* Nav Links — center column */
    .nav-links {
      display: flex;
      align-items: center;
      gap: var(--sp-xl);
      justify-self: center;
    }

    /* Right actions group */
    .nav-actions {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      justify-self: end;
    }

    /* Client Login button */
    .nav-login {
      font-family: var(--font-mono);
      font-size: 0.75rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--clr-text-muted);
      border: 1px solid rgba(255,255,255,0.12);
      padding: 0.45rem 1rem;
      border-radius: 2px;
      white-space: nowrap;
      position: relative;
      overflow: hidden;
      transition: color var(--t-fast), border-color var(--t-fast);
    }
    .nav-login::before {
      content: '';
      position: absolute;
      inset: 0;
      background: rgba(255,255,255,0.05);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform var(--t-mid);
    }
    .nav-login:hover {
      color: var(--clr-text);
      border-color: rgba(255,255,255,0.3);
    }
    .nav-login:hover::before { transform: scaleX(1); }

    .nav-link {
      font-family: var(--font-mono);
      font-size: 0.78rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--clr-text-muted);
      position: relative;
      padding: var(--sp-xs) 0;
      transition: color var(--t-fast);
    }

    .nav-link::after {
      content: '';
      position: absolute;
      bottom: -2px; left: 0;
      width: 0; height: 1px;
      background: var(--clr-cyan);
      box-shadow: var(--glow-cyan);
      transition: width var(--t-mid);
    }

    .nav-link:hover,
    .nav-link.active {
      color: var(--clr-cyan);
    }

    .nav-link:hover::after,
    .nav-link.active::after {
      width: 100%;
    }

    /* Nav CTA */
    .nav-cta {
      font-family: var(--font-mono);
      font-size: 0.78rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--clr-cyan);
      border: 1px solid var(--clr-cyan-dim);
      padding: 0.5rem 1.25rem;
      border-radius: 2px;
      position: relative;
      overflow: hidden;
      transition: color var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);
    }

    .nav-cta::before {
      content: '';
      position: absolute;
      inset: 0;
      background: var(--clr-cyan);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform var(--t-mid);
    }

    .nav-cta:hover {
      color: var(--clr-bg);
      border-color: var(--clr-cyan);
      box-shadow: var(--glow-cyan);
    }

    .nav-cta:hover::before { transform: scaleX(1); }

    .nav-cta span { position: relative; z-index: 1; }

    /* Services nav dropdown */
    .has-dropdown { position: relative; }

    .nav-dropdown {
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%) translateY(-8px);
      padding-top: 14px; /* transparent bridge — cursor stays in hover zone */
      width: 540px;
      opacity: 0;
      pointer-events: none;
      transition: opacity var(--t-mid), transform var(--t-mid);
      z-index: 1000;
    }

    .has-dropdown:hover .nav-dropdown,
    .nav-dropdown:hover {
      opacity: 1;
      pointer-events: all;
      transform: translateX(-50%) translateY(0);
    }

    .nav-dropdown-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 2px;
      padding: 10px;
      background: rgba(5, 12, 6, 0.97);
      border: 1px solid var(--clr-border);
      border-radius: 12px;
      backdrop-filter: blur(24px);
      box-shadow: 0 20px 60px rgba(0,0,0,0.7), 0 0 0 1px rgba(34,224,90,0.06);
      position: relative;
    }

    /* Arrow pointer above the inner box */
    .nav-dropdown-inner::before {
      content: '';
      position: absolute;
      top: -6px;
      left: 50%;
      transform: translateX(-50%) rotate(45deg);
      width: 10px; height: 10px;
      background: rgba(5, 12, 6, 0.97);
      border-left: 1px solid var(--clr-border);
      border-top: 1px solid var(--clr-border);
    }

    .nav-dd-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 12px;
      border-radius: 8px;
      transition: background var(--t-fast);
      text-decoration: none;
      color: var(--clr-text);
    }

    .nav-dd-item:hover {
      background: rgba(34, 224, 90, 0.07);
    }

    .nav-dd-item:hover .nav-dd-title {
      color: var(--clr-cyan);
    }

    .nav-dd-thumb,
    .nav-dd-item img {
      width: 40px; height: 40px;
      border-radius: 6px;
      object-fit: cover;
      flex-shrink: 0;
      opacity: 0.7;
      border: 1px solid var(--clr-border);
    }

    .nav-dd-text {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .nav-dd-title {
      font-size: 0.8rem;
      font-weight: 600;
      color: var(--clr-text);
      transition: color var(--t-fast);
      line-height: 1.2;
    }

    .nav-dd-desc {
      font-size: 0.68rem;
      color: var(--clr-text-muted);
      line-height: 1.3;
    }

    .nav-dd-all {
      grid-column: 1 / -1;
      display: block;
      text-align: center;
      padding: 10px;
      margin: 4px 2px 2px;
      border-top: 1px solid var(--clr-border);
      font-size: 0.75rem;
      font-family: var(--font-mono);
      color: var(--clr-cyan);
      border-radius: 0 0 8px 8px;
      transition: background var(--t-fast), letter-spacing var(--t-fast);
    }

    .nav-dd-all:hover {
      background: rgba(34, 224, 90, 0.06);
      letter-spacing: 0.05em;
    }

    /* Hamburger */
    .nav-hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      background: none;
      border: none;
      padding: 6px;
    }

    .nav-hamburger span {
      display: block;
      width: 24px; height: 1.5px;
      background: var(--clr-cyan);
      transition: transform var(--t-mid), opacity var(--t-mid);
    }

    .nav-hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(4.5px, 4.5px); }
    .nav-hamburger.open span:nth-child(2) { opacity: 0; }
    .nav-hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(4.5px, -4.5px); }

    /* Mobile menu */
    .nav-mobile {
      position: fixed;
      top: var(--nav-h);
      left: 0; right: 0;
      background: rgba(5, 10, 15, 0.98);
      border-bottom: 1px solid var(--clr-border);
      backdrop-filter: blur(20px);
      padding: var(--sp-xl);
      display: flex;
      flex-direction: column;
      gap: var(--sp-lg);
      transform: translateY(-110%);
      transition: transform var(--t-slow);
      z-index: 999;
    }

    .nav-mobile.open { transform: translateY(0); }

    .nav-mobile .nav-link {
      font-size: 1rem;
    }

    .nav-mobile-services {
      display: flex;
      flex-direction: column;
      gap: 2px;
      padding-left: var(--sp-md);
      border-left: 1px solid var(--clr-border);
      margin-top: -8px;
    }

    .nav-mobile-svc {
      font-size: 0.82rem;
      color: var(--clr-text-muted);
      padding: 6px 0;
      transition: color var(--t-fast);
      text-decoration: none;
    }

    .nav-mobile-svc:hover { color: var(--clr-cyan); }

    /* ============================================================
       LAYOUT UTILITIES
    ============================================================ */
    .container {
      width: 100%;
      max-width: var(--max-w);
      margin: 0 auto;
      padding: 0 var(--sp-xl);
    }

    .section {
      position: relative;
      overflow: hidden;
    }

    .page {
      display: none;
      min-height: 100vh;
    }

    .page.active {
      display: block;
    }

    /* ============================================================
       TYPOGRAPHY UTILITIES
    ============================================================ */
    .label {
      font-family: var(--font-mono);
      font-size: 0.72rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--clr-cyan);
      display: flex;
      align-items: center;
      gap: var(--sp-sm);
    }

    .label::before {
      content: '';
      display: inline-block;
      width: 20px; height: 1px;
      background: var(--clr-cyan);
      box-shadow: var(--glow-cyan);
    }

    .headline {
      font-family: var(--font-display);
      font-weight: 900;
      line-height: 0.95;
      text-transform: uppercase;
      letter-spacing: -0.01em;
    }

    .headline-xl  { font-size: clamp(3rem, 8vw, 7rem); }
    .headline-lg  { font-size: clamp(2.2rem, 5vw, 4.5rem); }
    .headline-md  { font-size: clamp(1.6rem, 3vw, 2.8rem); }
    .headline-sm  { font-size: clamp(1.2rem, 2vw, 1.8rem); }

    .text-cyan   { color: var(--clr-cyan); text-shadow: var(--glow-cyan); }
    .text-muted  { color: var(--clr-text-muted); }
    .text-mono   { font-family: var(--font-mono); }

    /* ============================================================
       BUTTON COMPONENTS
    ============================================================ */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: var(--sp-sm);
      font-family: var(--font-mono);
      font-size: 0.8rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      border: none;
      border-radius: 2px;
      padding: 0.85rem 1.75rem;
      position: relative;
      overflow: hidden;
      transition: all var(--t-mid);
      white-space: nowrap;
    }

    .btn-primary {
      background: var(--clr-cyan);
      color: var(--clr-bg);
      font-weight: 600;
    }

    .btn-primary::before {
      content: '';
      position: absolute;
      inset: 0;
      background: var(--clr-accent);
      transform: scaleX(0);
      transform-origin: right;
      transition: transform var(--t-mid);
    }

    .btn-primary:hover { box-shadow: var(--glow-cyan); }
    .btn-primary:hover::before { transform: scaleX(1); }
    .btn-primary span { position: relative; z-index: 1; }

    .btn-outline {
      background: transparent;
      color: var(--clr-cyan);
      border: 1px solid var(--clr-cyan-dim);
    }

    .btn-outline:hover {
      border-color: var(--clr-cyan);
      box-shadow: var(--glow-cyan);
      background: var(--clr-cyan-glow);
    }

    /* ============================================================
       CARD COMPONENT
    ============================================================ */
    .card {
      background: var(--clr-surface);
      border: 1px solid var(--clr-border);
      border-radius: 4px;
      padding: var(--sp-xl);
      position: relative;
      overflow: hidden;
      transition: border-color var(--t-mid), box-shadow var(--t-mid), transform var(--t-mid);
    }

    .card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--clr-cyan-dim), transparent);
      opacity: 0;
      transition: opacity var(--t-mid);
    }

    .card:hover {
      border-color: var(--clr-border-bright);
      box-shadow: 0 8px 40px rgba(0,0,0,0.4), 0 0 0 1px var(--clr-border);
      transform: translateY(-4px);
    }

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

    /* ============================================================
       TAG / BADGE
    ============================================================ */
    .tag {
      display: inline-block;
      font-family: var(--font-mono);
      font-size: 0.68rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--clr-cyan);
      background: var(--clr-cyan-glow);
      border: 1px solid var(--clr-border);
      border-radius: 2px;
      padding: 0.2rem 0.6rem;
    }

    /* ============================================================
       DIVIDER / SEPARATOR
    ============================================================ */
    .divider {
      width: 100%;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--clr-border-bright), transparent);
    }

    /* ============================================================
       SCAN LINE OVERLAY (global atmospheric effect)
    ============================================================ */
    #scanlines {
      position: fixed;
      inset: 0;
      z-index: 8000;
      pointer-events: none;
      background: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 2px,
        rgba(0, 0, 0, 0.03) 2px,
        rgba(0, 0, 0, 0.03) 4px
      );
      opacity: 0.4;
    }

    /* ============================================================
       FOOTER
    ============================================================ */
    #footer {
      background: var(--clr-bg-2);
      border-top: 1px solid var(--clr-border);
      padding: var(--sp-3xl) 0 var(--sp-xl);
      position: relative;
      overflow: hidden;
    }

    #footer::before {
      content: '';
      position: absolute;
      top: 0; left: 50%;
      transform: translateX(-50%);
      width: 600px; height: 1px;
      background: linear-gradient(90deg, transparent, var(--clr-cyan-dim), transparent);
    }

    .footer-grid {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr 1fr;
      gap: var(--sp-2xl);
      margin-bottom: var(--sp-2xl);
    }

    .footer-brand p {
      color: var(--clr-text-muted);
      font-size: 0.88rem;
      line-height: 1.7;
      margin-top: var(--sp-md);
      max-width: 280px;
    }

    .footer-col h4 {
      font-family: var(--font-mono);
      font-size: 0.72rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--clr-cyan);
      margin-bottom: var(--sp-lg);
    }

    .footer-col ul {
      display: flex;
      flex-direction: column;
      gap: var(--sp-sm);
    }

    .footer-col a {
      font-size: 0.88rem;
      color: var(--clr-text-muted);
      transition: color var(--t-fast);
    }

    .footer-col a:hover { color: var(--clr-text); }

    .footer-bottom {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-top: var(--sp-lg);
      border-top: 1px solid var(--clr-border);
    }

    .footer-bottom p {
      font-family: var(--font-mono);
      font-size: 0.72rem;
      color: var(--clr-text-dim);
      letter-spacing: 0.06em;
    }

    .footer-social {
      display: flex;
      gap: var(--sp-md);
    }

    .footer-social a {
      width: 32px; height: 32px;
      border: 1px solid var(--clr-border);
      border-radius: 2px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--clr-text-muted);
      font-size: 0.75rem;
      font-family: var(--font-mono);
      transition: color var(--t-fast), border-color var(--t-fast);
    }

    .footer-social a:hover {
      color: var(--clr-cyan);
      border-color: var(--clr-cyan-dim);
    }

    /* ============================================================
       PAGE PLACEHOLDER SECTIONS (will be replaced one by one)
    ============================================================ */
    .placeholder-section {
      min-height: 80vh;
      display: flex;
      align-items: center;
      justify-content: center;
      border-bottom: 1px solid var(--clr-border);
    }

    .placeholder-inner {
      text-align: center;
    }

    .placeholder-inner .headline {
      font-size: 2rem;
      color: var(--clr-text-dim);
      margin-top: var(--sp-md);
    }

    /* ============================================================
       SCROLL REVEAL ANIMATION
    ============================================================ */
    .reveal {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
                  transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
    }

    .reveal.visible {
      opacity: 1;
      transform: translateY(0);
    }

    .reveal-delay-1 { transition-delay: 0.1s; }
    .reveal-delay-2 { transition-delay: 0.2s; }
    .reveal-delay-3 { transition-delay: 0.3s; }
    .reveal-delay-4 { transition-delay: 0.4s; }
    .reveal-delay-5 { transition-delay: 0.5s; }

    /* ============================================================
       RESPONSIVE
    ============================================================ */
    @media (max-width: 900px) {
      .nav-links, .nav-actions { display: none; }
      .nav-hamburger { display: flex; }

      .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--sp-xl);
      }

      .footer-brand { grid-column: 1 / -1; }
    }

    @media (max-width: 600px) {
      :root { --nav-h: 60px; }

      .container { padding: 0 var(--sp-lg); }

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

      .footer-bottom {
        flex-direction: column;
        gap: var(--sp-md);
        text-align: center;
      }
    }

    /* ============================================================
       HERO → SERVICES TRANSITION BRIDGE
    ============================================================ */
    .section-bridge {
      position: relative;
      height: 120px;
      background: linear-gradient(to bottom, var(--clr-bg) 0%, var(--clr-bg-2) 100%);
      overflow: hidden;
      pointer-events: none;
    }
    .section-bridge::after {
      content: '';
      position: absolute;
      bottom: 0; left: 50%;
      transform: translateX(-50%);
      width: 70%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(34,224,90,0.22), transparent);
    }

    /* ============================================================
       SERVICES SECTION
    ============================================================ */
    #services-section {
      position: relative;
      background: var(--clr-bg-2);
      padding: 6rem 0 7rem;
      overflow: hidden;
    }
    #services-canvas {
      position: absolute;
      inset: 0; width: 100%; height: 100%;
      pointer-events: none; z-index: 0;
    }
    .srv-header {
      text-align: center;
      margin-bottom: 4rem;
      position: relative; z-index: 2;
    }
    .srv-eyebrow {
      font-family: var(--font-mono);
      font-size: 0.78rem;
      letter-spacing: 0.14em;
      color: var(--clr-cyan);
      margin-bottom: 1.1rem;
      display: block;
    }
    .srv-eyebrow-bracket { color: rgba(34,224,90,0.4); margin: 0 0.3em; }
    .srv-title {
      font-family: var(--font-display);
      font-weight: 700;
      font-size: clamp(2rem, 4.5vw, 3.4rem);
      color: var(--clr-text);
      line-height: 1.08;
      margin-bottom: 1rem;
      letter-spacing: -0.02em;
    }
    .srv-desc {
      font-size: clamp(0.87rem, 1.2vw, 0.98rem);
      color: var(--clr-text-muted);
      font-weight: 300;
      max-width: 560px;
      margin: 0 auto;
      line-height: 1.72;
    }
    /* Grid */
    .srv-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.4rem;
      position: relative; z-index: 2;
    }
    /* Centre lone last card */
    .srv-grid > .srv-card:last-child:nth-child(3n+1) { grid-column: 2 / 3; }

    /* Card */
    .srv-card {
      background: rgba(8, 14, 8, 0.68);
      border: 1px solid var(--clr-border);
      border-radius: 16px;
      overflow: hidden;
      display: flex; flex-direction: column;
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      transition: border-color .32s ease, box-shadow .32s ease,
                  transform .32s cubic-bezier(.16,1,.3,1), background .32s ease;
    }
    .srv-card:hover {
      border-color: rgba(34,224,90,0.28);
      box-shadow: 0 14px 50px rgba(0,0,0,.55),
                  0 0 0 1px rgba(34,224,90,.09),
                  inset 0 0 28px rgba(34,224,90,.04);
      transform: translateY(-6px);
      background: rgba(10, 18, 10, 0.86);
    }
    /* Image */
    .srv-card-img {
      width: 100%; aspect-ratio: 16/10;
      overflow: hidden; border-radius: 12px 12px 0 0;
      position: relative;
    }
    .srv-card-img img {
      width: 100%; height: 100%; object-fit: cover; display: block;
      transition: transform .55s cubic-bezier(.16,1,.3,1), filter .35s ease;
      filter: brightness(.82) saturate(.88);
    }
    .srv-card:hover .srv-card-img img { transform: scale(1.05); filter: brightness(.95) saturate(1.05); }
    .srv-card-img::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(to bottom, transparent 50%, rgba(8,14,8,.6) 100%);
      pointer-events: none;
    }
    /* Body */
    .srv-card-body {
      padding: 1.35rem 1.5rem 1.55rem;
      display: flex; flex-direction: column; flex: 1; gap: .55rem;
    }
    .srv-card-title {
      font-family: var(--font-display);
      font-weight: 600; font-size: .98rem;
      color: var(--clr-text); line-height: 1.25;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      letter-spacing: -.01em;
    }
    .srv-card-text {
      font-size: .845rem; color: var(--clr-text-muted);
      font-weight: 300; line-height: 1.65; flex: 1;
    }
    /* Buttons */
    .srv-card-btns {
      display: flex; gap: .65rem; margin-top: .55rem; flex-wrap: wrap;
    }
    .srv-btn-contact {
      display: inline-flex; align-items: center;
      font-family: var(--font-body); font-size: .78rem; font-weight: 500;
      color: #080e08; background: #fff;
      border: none; border-radius: 999px;
      padding: .5rem 1.1rem; cursor: pointer;
      transition: background .22s ease, box-shadow .22s ease, transform .2s ease;
      white-space: nowrap; text-decoration: none;
    }
    .srv-btn-contact:hover {
      background: #e6ffe6;
      box-shadow: 0 0 14px rgba(255,255,255,.32), 0 0 36px rgba(34,224,90,.16);
      transform: translateY(-1px);
    }
    .srv-btn-learn {
      display: inline-flex; align-items: center; gap: .4rem;
      font-family: var(--font-body); font-size: .78rem; font-weight: 500;
      color: var(--clr-text); background: transparent;
      border: 1px solid rgba(34,224,90,.3);
      border-radius: 999px; padding: .5rem .9rem .5rem 1.1rem;
      cursor: pointer;
      transition: border-color .22s ease, color .22s ease,
                  background .22s ease, transform .2s ease;
      white-space: nowrap; text-decoration: none;
    }
    .srv-btn-learn:hover {
      border-color: var(--clr-cyan); color: var(--clr-cyan);
      background: rgba(34,224,90,.06); transform: translateY(-1px);
    }
    .srv-btn-arrow {
      display: inline-flex; align-items: center; justify-content: center;
      width: 21px; height: 21px;
      background: var(--clr-cyan); border-radius: 50%; flex-shrink: 0;
      transition: background .22s ease, transform .22s ease;
    }
    .srv-btn-learn:hover .srv-btn-arrow {
      background: var(--clr-accent); transform: rotate(45deg) scale(1.08);
    }
    .srv-btn-arrow svg {
      width: 10px; height: 10px; fill: none;
      stroke: #050c06; stroke-width: 2.3;
      stroke-linecap: round; stroke-linejoin: round;
    }
    @media (max-width: 900px) {
      .srv-grid { grid-template-columns: repeat(2,1fr); }
      .srv-grid > .srv-card:last-child:nth-child(3n+1) { grid-column: auto; }
      .srv-grid > .srv-card:last-child:nth-child(2n+1) { grid-column:1/-1; max-width:420px; margin:0 auto; width:100%; }
    }
    @media (max-width: 580px) {
      .srv-grid { grid-template-columns: 1fr; }
      .srv-grid > .srv-card:last-child { grid-column: auto; max-width: none; }
    }
    .contact-card {
      position: relative;
      display: grid;
      grid-template-columns: 38% 62%;
      border-radius: 24px;
      overflow: hidden;
      border: 1px solid rgba(34,224,90,0.14);
      background: rgba(8,16,8,0.62);
      backdrop-filter: blur(22px);
      -webkit-backdrop-filter: blur(22px);
      box-shadow: 0 8px 60px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.04);
      transition: border-color 0.35s ease, box-shadow 0.35s ease;
    }
    .contact-card:hover {
      border-color: rgba(34,224,90,0.50);
      box-shadow: 0 12px 80px rgba(0,0,0,0.65),
                  0 0 0 1px rgba(34,224,90,0.18),
                  0 0 50px rgba(34,224,90,0.10),
                  inset 0 1px 0 rgba(255,255,255,0.08);
    }

    /* Dust canvas — inside the card only */
    .contact-card-canvas {
      position: absolute;
      inset: 0; width: 100%; height: 100%;
      pointer-events: none; z-index: 0;
      border-radius: 24px;
    }

    /* ── Left panel ── */
    .contact-left {
      position: relative; z-index: 1;
      padding: 3rem 2.4rem;
      display: flex;
      flex-direction: column;
      gap: 0;
      border-right: 1px solid rgba(34,224,90,0.08);
    }
    .contact-eyebrow {
      font-family: var(--font-mono);
      font-size: 0.75rem; letter-spacing: 0.14em;
      color: var(--clr-cyan); display: block;
      margin-bottom: 1.1rem;
    }
    .contact-eyebrow-bracket { color: rgba(34,224,90,0.4); margin: 0 0.28em; }
    .contact-card-title {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(1.9rem, 3vw, 2.8rem);
      color: var(--clr-text);
      line-height: 1.08;
      letter-spacing: -0.02em;
      margin-bottom: 1.2rem;
    }
    .contact-card-desc {
      font-size: 0.88rem;
      color: var(--clr-text-muted);
      font-weight: 300;
      line-height: 1.72;
      margin-bottom: 2.2rem;
    }
    .contact-info-block {
      margin-bottom: 1.5rem;
    }
    .contact-info-label {
      font-family: var(--font-body);
      font-weight: 600;
      font-size: 0.88rem;
      color: var(--clr-text);
      margin-bottom: 0.65rem;
    }
    .contact-info-link {
      display: inline-flex;
      align-items: center;
      gap: 0.75rem;
      text-decoration: none;
      cursor: pointer;
      transition: transform 0.22s ease;
    }
    .contact-info-link:hover { transform: translateX(4px); }
    .contact-info-link:hover .contact-info-icon { box-shadow: 0 0 16px rgba(34,224,90,0.5); }
    .contact-info-icon {
      width: 38px; height: 38px; border-radius: 50%;
      background: var(--clr-cyan);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      transition: box-shadow 0.22s ease;
    }
    .contact-info-icon svg { width: 18px; height: 18px; }
    .contact-info-num {
      font-family: var(--font-body);
      font-size: 0.92rem;
      color: var(--clr-text);
      font-weight: 400;
    }

    /* ── Right panel ── */
    .contact-right {
      position: relative; z-index: 1;
      padding: 2.8rem 2.4rem;
      display: flex;
      flex-direction: column;
      gap: 0.85rem;
    }
    .contact-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.85rem;
    }
    /* Input / select / textarea */
    .contact-field {
      width: 100%;
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 10px;
      padding: 0.95rem 1.1rem;
      font-family: var(--font-body);
      font-size: 0.88rem;
      font-weight: 300;
      color: var(--clr-text);
      outline: none;
      transition: border-color 0.22s ease, background 0.22s ease, box-shadow 0.22s ease;
      appearance: none;
      -webkit-appearance: none;
    }
    .contact-field::placeholder { color: rgba(255,255,255,0.35); }
    .contact-field:focus {
      border-color: rgba(34,224,90,0.45);
      background: rgba(34,224,90,0.04);
      box-shadow: 0 0 0 3px rgba(34,224,90,0.08);
    }
    .contact-field option {
      background: #0a140a;
      color: var(--clr-text);
    }
    .contact-textarea {
      resize: none;
      min-height: 140px;
    }
    /* Select wrapper for custom arrow */
    .contact-select-wrap {
      position: relative;
    }
    .contact-select-wrap::after {
      content: '';
      position: absolute;
      right: 1rem; top: 50%;
      transform: translateY(-50%);
      width: 0; height: 0;
      border-left: 4px solid transparent;
      border-right: 4px solid transparent;
      border-top: 5px solid rgba(255,255,255,0.4);
      pointer-events: none;
    }
    .contact-select-wrap .contact-field { padding-right: 2.2rem; }

    /* Submit button */
    .contact-submit-row {
      display: flex;
      align-items: center;
      gap: 0;
      background: rgba(255,255,255,0.92);
      border-radius: 10px;
      overflow: hidden;
      margin-top: 0.2rem;
      cursor: pointer;
      transition: background 0.25s ease, box-shadow 0.25s ease;
      border: none;
      width: 100%;
    }
    .contact-submit-row:hover {
      background: #fff;
      box-shadow: 0 0 28px rgba(255,255,255,0.22), 0 0 60px rgba(34,224,90,0.14);
    }
    .contact-submit-label {
      flex: 1;
      text-align: center;
      font-family: var(--font-body);
      font-size: 0.92rem;
      font-weight: 500;
      color: #080e08;
      padding: 0.95rem 1rem;
      cursor: pointer;
    }
    .contact-submit-arrow {
      width: 44px; height: 44px; margin: 4px;
      border-radius: 8px;
      background: var(--clr-cyan);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
    }
    .contact-submit-arrow svg { width: 16px; height: 16px; fill: none; stroke: #050c06; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
    .contact-submit-row:hover .contact-submit-arrow {
      background: var(--clr-accent);
      box-shadow: 0 0 22px rgba(128,255,68,0.65), 0 0 40px rgba(34,224,90,0.3);
    }

    /* Popup overlay */
    #contact-popup {
      position: fixed;
      inset: 0;
      z-index: 5000;
      background: rgba(3,8,4,0.82);
      backdrop-filter: blur(6px);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 1rem;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease;
    }
    #contact-popup.open {
      opacity: 1;
      pointer-events: all;
    }
    #contact-popup .contact-card {
      max-width: 960px;
      width: 100%;
      background: rgba(6,12,6,0.90);
      max-height: 90vh;
      overflow-y: auto;
    }
    .contact-popup-close {
      position: absolute;
      top: 1rem; right: 1rem;
      width: 36px; height: 36px;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.12);
      background: transparent;
      color: var(--clr-text-muted);
      font-size: 1.1rem;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      z-index: 2;
      transition: border-color 0.2s ease, color 0.2s ease;
    }
    .contact-popup-close:hover { border-color: var(--clr-cyan); color: var(--clr-cyan); }

    @media (max-width: 800px) {
      .contact-card { grid-template-columns: 1fr; }
      .contact-left { border-right: none; border-bottom: 1px solid rgba(34,224,90,0.08); }
      .contact-row { grid-template-columns: 1fr; }
    }

/* ============================================================
   HOME PAGE SECTIONS (also used as reference for shared animations)
============================================================ */

/* ============================================================
       HERO SECTION
    ============================================================ */
    #hero {
      position: relative;
      width: 100%;
      min-height: 100vh;
      background: var(--clr-bg);
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }

    /* Full-screen canvas behind everything */
    #hero-canvas {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 0;
    }

    /* Central fog orb */
    .hero-fog {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 520px;
      height: 260px;
      background: radial-gradient(
        ellipse at center,
        rgba(34, 224, 90, 0.07) 0%,
        rgba(34, 224, 90, 0.03) 40%,
        transparent 70%
      );
      filter: blur(40px);
      z-index: 1;
      pointer-events: none;
      animation: fogPulse 5s ease-in-out infinite;
    }

    @keyframes fogPulse {
      0%, 100% { opacity: 0.7; transform: translate(-50%, -50%) scale(1); }
      50%       { opacity: 1;   transform: translate(-50%, -50%) scale(1.12); }
    }

    /* Content wrapper */
    .hero-content {
      position: relative;
      z-index: 2;
      width: 100%;
      max-width: 1100px;
      padding: calc(var(--nav-h) + 3rem) var(--sp-xl) 5rem;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0;
    }

    /* ── Title ── */
    .hero-title {
      font-family: var(--font-display);
      font-weight: 900;
      font-size: clamp(2.6rem, 6.5vw, 6rem);
      line-height: 1.0;
      text-align: center;
      text-transform: uppercase;
      letter-spacing: -0.01em;
      color: var(--clr-text);
      margin-bottom: 1.6rem;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 0 0.32em;
    }

    /* Each word — injected by JS */
    .hero-word {
      display: inline-block;
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.48s cubic-bezier(0.16,1,0.3,1),
                  transform 0.48s cubic-bezier(0.16,1,0.3,1);
    }

    .hero-word.visible {
      opacity: 1;
      transform: translateY(0);
    }

    /* Comma in title gets the green accent */
    .hero-title-accent { color: var(--clr-cyan); }

    /* ── Description ── */
    .hero-desc {
      text-align: center;
      margin-bottom: 4.5rem;
    }

    .hero-desc-line {
      display: block;
      font-family: var(--font-body);
      font-size: clamp(0.9rem, 1.5vw, 1.05rem);
      font-weight: 300;
      color: var(--clr-text-muted);
      line-height: 1.7;
      opacity: 0;
      transform: translateY(18px);
      transition: opacity 0.42s cubic-bezier(0.16,1,0.3,1),
                  transform 0.42s cubic-bezier(0.16,1,0.3,1);
    }

    .hero-desc-line.visible {
      opacity: 1;
      transform: translateY(0);
    }

    /* ── Cards ── */
    .hero-cards {
      width: 100%;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 0;
    }

    .hero-card {
      position: relative;
      padding: 2.8rem 2.2rem 2.6rem;
      text-align: center;
      border: 1px solid var(--clr-border);
      background: rgba(7, 15, 7, 0.55);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      transition:
        border-color 0.3s ease,
        background 0.3s ease,
        box-shadow 0.3s ease,
        transform 0.3s cubic-bezier(0.16,1,0.3,1);
      overflow: hidden;
    }

    /* Remove duplicate middle borders */
    .hero-card:not(:last-child) { border-right: none; }

    /* Top glint line – hidden until hover */
    .hero-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--clr-cyan), transparent);
      opacity: 0;
      transition: opacity 0.3s ease;
    }

    /* Corner brackets — top-left */
    .hero-card::after {
      content: '';
      position: absolute;
      top: -1px; left: -1px;
      width: 20px; height: 20px;
      border-top: 1px solid var(--clr-cyan-dim);
      border-left: 1px solid var(--clr-cyan-dim);
      opacity: 0;
      transition: opacity 0.3s ease;
    }

    .hero-card:hover {
      border-color: var(--clr-border-bright);
      background: rgba(7, 18, 7, 0.75);
      box-shadow: 0 0 40px rgba(34, 224, 90, 0.07), inset 0 0 20px rgba(34, 224, 90, 0.03);
      transform: translateY(-5px);
    }

    .hero-card:hover::before,
    .hero-card:hover::after { opacity: 1; }

    /* Card number */
    .hero-card-num {
      font-family: var(--font-mono);
      font-size: 0.72rem;
      letter-spacing: 0.18em;
      color: var(--clr-text-dim);
      margin-bottom: 1.4rem;
      transition: color 0.3s ease;
    }

    .hero-card:hover .hero-card-num { color: var(--clr-cyan); }

    /* Card title — each word animated */
    .hero-card-title {
      font-family: var(--font-body);
      font-weight: 600;
      font-size: clamp(1rem, 1.4vw, 1.15rem);
      color: var(--clr-text);
      line-height: 1.35;
      margin-bottom: 1rem;
    }

    .hero-card-title .card-word {
      display: inline-block;
      opacity: 0;
      transform: translateY(14px);
      transition: opacity 0.35s cubic-bezier(0.16,1,0.3,1),
                  transform 0.35s cubic-bezier(0.16,1,0.3,1);
    }

    .hero-card-title .card-word.visible { opacity: 1; transform: translateY(0); }

    /* Card text lines */
    .hero-card-text {
      font-family: var(--font-body);
      font-weight: 300;
      font-size: 0.9rem;
      color: var(--clr-text-muted);
      line-height: 1.65;
    }

    .hero-card-text .card-line {
      display: block;
      opacity: 0;
      transform: translateY(10px);
      transition: opacity 0.32s cubic-bezier(0.16,1,0.3,1),
                  transform 0.32s cubic-bezier(0.16,1,0.3,1);
    }

    .hero-card-text .card-line.visible { opacity: 1; transform: translateY(0); }

    /* ── Responsive ── */
    @media (max-width: 900px) {
      .hero-cards { grid-template-columns: 1fr; }
      .hero-card:not(:last-child) { border-right: 1px solid var(--clr-border); border-bottom: none; }
    }

    @media (max-width: 600px) {
      .hero-content { padding-top: calc(var(--nav-h) + 2rem); }
      .hero-cards { grid-template-columns: 1fr; }
    }

    /* ============================================================
       HERO → SERVICES TRANSITION BRIDGE
    ============================================================ */
    .section-bridge {
      position: relative;
      height: 120px;
      background: linear-gradient(to bottom, var(--clr-bg) 0%, var(--clr-bg-2) 100%);
      overflow: hidden;
      pointer-events: none;
    }
    .section-bridge::after {
      content: '';
      position: absolute;
      bottom: 0; left: 50%;
      transform: translateX(-50%);
      width: 70%; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(34,224,90,0.22), transparent);
    }

    /* ============================================================
       SERVICES SECTION
    ============================================================ */
    #services-section {
      position: relative;
      background: var(--clr-bg-2);
      padding: 6rem 0 7rem;
      overflow: hidden;
    }
    #services-canvas {
      position: absolute;
      inset: 0; width: 100%; height: 100%;
      pointer-events: none; z-index: 0;
    }
    .srv-header {
      text-align: center;
      margin-bottom: 4rem;
      position: relative; z-index: 2;
    }
    .srv-eyebrow {
      font-family: var(--font-mono);
      font-size: 0.78rem;
      letter-spacing: 0.14em;
      color: var(--clr-cyan);
      margin-bottom: 1.1rem;
      display: block;
    }
    .srv-eyebrow-bracket { color: rgba(34,224,90,0.4); margin: 0 0.3em; }
    .srv-title {
      font-family: var(--font-display);
      font-weight: 700;
      font-size: clamp(2rem, 4.5vw, 3.4rem);
      color: var(--clr-text);
      line-height: 1.08;
      margin-bottom: 1rem;
      letter-spacing: -0.02em;
    }
    .srv-desc {
      font-size: clamp(0.87rem, 1.2vw, 0.98rem);
      color: var(--clr-text-muted);
      font-weight: 300;
      max-width: 560px;
      margin: 0 auto;
      line-height: 1.72;
    }
    /* Grid */
    .srv-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.4rem;
      position: relative; z-index: 2;
    }
    /* Centre lone last card */
    .srv-grid > .srv-card:last-child:nth-child(3n+1) { grid-column: 2 / 3; }

    /* Card */
    .srv-card {
      background: rgba(8, 14, 8, 0.68);
      border: 1px solid var(--clr-border);
      border-radius: 16px;
      overflow: hidden;
      display: flex; flex-direction: column;
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      transition: border-color .32s ease, box-shadow .32s ease,
                  transform .32s cubic-bezier(.16,1,.3,1), background .32s ease;
    }
    .srv-card:hover {
      border-color: rgba(34,224,90,0.28);
      box-shadow: 0 14px 50px rgba(0,0,0,.55),
                  0 0 0 1px rgba(34,224,90,.09),
                  inset 0 0 28px rgba(34,224,90,.04);
      transform: translateY(-6px);
      background: rgba(10, 18, 10, 0.86);
    }
    /* Image */
    .srv-card-img {
      width: 100%; aspect-ratio: 16/10;
      overflow: hidden; border-radius: 12px 12px 0 0;
      position: relative;
    }
    .srv-card-img img {
      width: 100%; height: 100%; object-fit: cover; display: block;
      transition: transform .55s cubic-bezier(.16,1,.3,1), filter .35s ease;
      filter: brightness(.82) saturate(.88);
    }
    .srv-card:hover .srv-card-img img { transform: scale(1.05); filter: brightness(.95) saturate(1.05); }
    .srv-card-img::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(to bottom, transparent 50%, rgba(8,14,8,.6) 100%);
      pointer-events: none;
    }
    /* Body */
    .srv-card-body {
      padding: 1.35rem 1.5rem 1.55rem;
      display: flex; flex-direction: column; flex: 1; gap: .55rem;
    }
    .srv-card-title {
      font-family: var(--font-display);
      font-weight: 600; font-size: .98rem;
      color: var(--clr-text); line-height: 1.25;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      letter-spacing: -.01em;
    }
    .srv-card-text {
      font-size: .845rem; color: var(--clr-text-muted);
      font-weight: 300; line-height: 1.65; flex: 1;
    }
    /* Buttons */
    .srv-card-btns {
      display: flex; gap: .65rem; margin-top: .55rem; flex-wrap: wrap;
    }
    .srv-btn-contact {
      display: inline-flex; align-items: center;
      font-family: var(--font-body); font-size: .78rem; font-weight: 500;
      color: #080e08; background: #fff;
      border: none; border-radius: 999px;
      padding: .5rem 1.1rem; cursor: pointer;
      transition: background .22s ease, box-shadow .22s ease, transform .2s ease;
      white-space: nowrap; text-decoration: none;
    }
    .srv-btn-contact:hover {
      background: #e6ffe6;
      box-shadow: 0 0 14px rgba(255,255,255,.32), 0 0 36px rgba(34,224,90,.16);
      transform: translateY(-1px);
    }
    .srv-btn-learn {
      display: inline-flex; align-items: center; gap: .4rem;
      font-family: var(--font-body); font-size: .78rem; font-weight: 500;
      color: var(--clr-text); background: transparent;
      border: 1px solid rgba(34,224,90,.3);
      border-radius: 999px; padding: .5rem .9rem .5rem 1.1rem;
      cursor: pointer;
      transition: border-color .22s ease, color .22s ease,
                  background .22s ease, transform .2s ease;
      white-space: nowrap; text-decoration: none;
    }
    .srv-btn-learn:hover {
      border-color: var(--clr-cyan); color: var(--clr-cyan);
      background: rgba(34,224,90,.06); transform: translateY(-1px);
    }
    .srv-btn-arrow {
      display: inline-flex; align-items: center; justify-content: center;
      width: 21px; height: 21px;
      background: var(--clr-cyan); border-radius: 50%; flex-shrink: 0;
      transition: background .22s ease, transform .22s ease;
    }
    .srv-btn-learn:hover .srv-btn-arrow {
      background: var(--clr-accent); transform: rotate(45deg) scale(1.08);
    }
    .srv-btn-arrow svg {
      width: 10px; height: 10px; fill: none;
      stroke: #050c06; stroke-width: 2.3;
      stroke-linecap: round; stroke-linejoin: round;
    }
    @media (max-width: 900px) {
      .srv-grid { grid-template-columns: repeat(2,1fr); }
      .srv-grid > .srv-card:last-child:nth-child(3n+1) { grid-column: auto; }
      .srv-grid > .srv-card:last-child:nth-child(2n+1) { grid-column:1/-1; max-width:420px; margin:0 auto; width:100%; }
    }
    @media (max-width: 580px) {
      .srv-grid { grid-template-columns: 1fr; }
      .srv-grid > .srv-card:last-child { grid-column: auto; max-width: none; }
    }

    /* ============================================================
       INDUSTRIES SECTION
    ============================================================ */
    #industries-section {
      position: relative;
      background: var(--clr-bg);
      padding: 6rem 0 7rem;
      overflow: hidden;
    }
    #industries-canvas {
      position: absolute;
      inset: 0; width: 100%; height: 100%;
      pointer-events: none; z-index: 0;
    }
    /* Header: left title + right desc+nav */
    .ind-header {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 2rem;
      align-items: start;
      margin-bottom: 3.5rem;
      position: relative; z-index: 2;
    }
    .ind-header-left {}
    .ind-eyebrow {
      font-family: var(--font-mono);
      font-size: 0.78rem; letter-spacing: 0.14em;
      color: var(--clr-cyan); display: block;
      margin-bottom: 1rem;
    }
    .ind-eyebrow-bracket { color: rgba(34,224,90,0.4); margin: 0 0.3em; }
    .ind-title {
      font-family: var(--font-display);
      font-weight: 700;
      font-size: clamp(1.9rem, 4vw, 3.2rem);
      color: var(--clr-text); line-height: 1.08;
      letter-spacing: -0.02em;
    }
    .ind-header-right {
      display: flex; flex-direction: column;
      align-items: flex-start; justify-content: flex-end;
      padding-top: 2.8rem;
      gap: 1.4rem;
    }
    .ind-desc {
      font-size: 0.92rem; color: var(--clr-text-muted);
      font-weight: 300; line-height: 1.7; max-width: 340px;
    }
    .ind-nav {
      display: flex; gap: 0.6rem;
    }
    .ind-nav-btn {
      width: 44px; height: 44px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      border: none; cursor: pointer;
      transition: background 0.22s ease, box-shadow 0.22s ease, transform 0.2s ease;
    }
    .ind-nav-btn.prev {
      background: var(--clr-cyan);
    }
    .ind-nav-btn.next {
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.12);
    }
    .ind-nav-btn:hover { transform: scale(1.08); box-shadow: 0 0 16px rgba(34,224,90,0.3); }
    .ind-nav-btn svg { width:16px; height:16px; stroke: #050c06; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
    .ind-nav-btn.next svg { stroke: var(--clr-text); }

    /* Carousel viewport */
    .ind-viewport {
      position: relative; z-index: 2;
      overflow: hidden;
    }
    .ind-track {
      display: flex;
      gap: 1.4rem;
      transition: transform 0.6s cubic-bezier(0.16,1,0.3,1);
      will-change: transform;
    }
    /* Each card */
    .ind-card {
      flex: 0 0 calc(25% - 1.05rem);
      min-width: 220px;
      display: flex; flex-direction: column;
      cursor: pointer;
      transition: transform 0.3s ease, opacity 0.3s ease;
      opacity: 0.6;
    }
    .ind-card.active-card {
      opacity: 1;
    }
    .ind-card:hover:not(.active-card) { opacity: 0.82; }
    .ind-card-img {
      width: 100%; aspect-ratio: 3/3.2;
      border-radius: 18px; overflow: hidden; position: relative;
      border: 1px solid var(--clr-border);
      transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s cubic-bezier(0.16,1,0.3,1);
    }
    .ind-card.active-card .ind-card-img {
      border-color: rgba(34,224,90,0.35);
      box-shadow: 0 0 0 1px rgba(34,224,90,0.12), 0 12px 40px rgba(0,0,0,0.55);
    }
    .ind-card:hover:not(.active-card) .ind-card-img {
      border-color: rgba(34,224,90,0.16);
      transform: translateY(-4px);
      box-shadow: 0 8px 28px rgba(0,0,0,0.4);
    }
    .ind-card.active-card .ind-card-img {
      transform: scale(1.025);
    }
    .ind-card-img img {
      width: 100%; height: 100%; object-fit: cover; display: block;
      transition: filter 0.3s ease;
      filter: brightness(0.78) saturate(0.85);
    }
    .ind-card.active-card .ind-card-img img { filter: brightness(0.95) saturate(1.05); }
    .ind-card:hover:not(.active-card) .ind-card-img img { filter: brightness(0.86) saturate(0.95); }
    .ind-card-body {
      padding: 1.2rem 0.4rem 0.2rem;
      text-align: center;
    }
    .ind-card-title {
      font-family: var(--font-display);
      font-weight: 600; font-size: 1.1rem;
      color: var(--clr-text); margin-bottom: 0.5rem;
      letter-spacing: -0.01em;
    }
    .ind-card-text {
      font-size: 0.83rem; color: var(--clr-text-muted);
      font-weight: 300; line-height: 1.65;
    }
    /* Active dot indicators */
    .ind-dots {
      display: flex; justify-content: center;
      gap: 0.5rem; margin-top: 2.4rem;
      position: relative; z-index: 2;
    }
    .ind-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--clr-text-dim);
      transition: background 0.3s ease, transform 0.3s ease;
      cursor: pointer;
    }
    .ind-dot.active { background: var(--clr-cyan); transform: scale(1.3); }

    @media (max-width: 900px) {
      .ind-header { grid-template-columns: 1fr; }
      .ind-header-right { padding-top: 0; }
      .ind-card { flex: 0 0 calc(50% - 0.7rem); }
    }
    @media (max-width: 560px) {
      .ind-card { flex: 0 0 calc(85% - 0.7rem); }
    }

    /* ============================================================
       CTA SECTION
    ============================================================ */
    #cta-section {
      position: relative;
      background: var(--clr-bg);
      padding: 7rem 0 8rem;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    #cta-canvas {
      position: absolute;
      inset: 0; width: 100%; height: 100%;
      pointer-events: none; z-index: 0;
    }
    /* Spotlight + flicker glow behind logo */
    /* Glow container — removed, replaced by direct absolute children on #cta-section */
    .cta-glow { display: none; }
    .cta-glow-ring { display: none; }
    .cta-spotlight { display: none; }

    /* Halo ring — centred on logo which sits at top of cta-content */
    #cta-halo {
      position: absolute;
      /* logo is: section padding-top(7rem≈112px) + half logo-wrap height(145px) = ~257px from top */
      top: 257px;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 420px; height: 420px;
      border-radius: 50%;
      background: radial-gradient(
        ellipse at 50% 50%,
        rgba(34,224,90,0.22) 0%,
        rgba(34,224,90,0.10) 38%,
        rgba(34,224,90,0.03) 65%,
        transparent 100%
      );
      filter: blur(30px);
      pointer-events: none; z-index: 1;
      animation: ctaFlicker 3.8s ease-in-out infinite;
    }
    /* Spotlight cone — anchored at logo centre, tall so it pours down over title + desc */
    #cta-cone {
      position: absolute;
      top: 257px;          /* same logo-centre anchor */
      left: 50%;
      transform: translateX(-50%);
      width: 500px;
      height: 620px;
      /* Origin at very top-centre; brightness spills downward and widens */
      background: radial-gradient(
        ellipse 45% 100% at 50% 0%,
        rgba(34,224,90,0.15) 0%,
        rgba(34,224,90,0.06) 35%,
        rgba(34,224,90,0.02) 62%,
        transparent 100%
      );
      filter: blur(38px);
      pointer-events: none; z-index: 1;
      animation: ctaFlicker 3.8s ease-in-out infinite;
      animation-delay: 0.35s;
    }
    @keyframes ctaFlicker {
      0%   { opacity: 1; }
      7%   { opacity: 0.78; }
      8%   { opacity: 1; }
      11%  { opacity: 0.52; }
      12%  { opacity: 0.9; }
      13%  { opacity: 1; }
      39%  { opacity: 0.92; }
      40%  { opacity: 0.62; }
      41%  { opacity: 1; }
      69%  { opacity: 1; }
      70%  { opacity: 0.72; }
      71%  { opacity: 1; }
      100% { opacity: 0.96; }
    }
    /* ── Logo orbit system ── */
    /* Outer wrapper: sized to the LARGEST orbit so all rings share the same centre */
    .cta-logo-wrap {
      position: relative;
      width: 290px; height: 290px;   /* = orbit-3 diameter */
      margin: 0 auto 2.8rem;
      z-index: 2;
    }
    /* All rings: absolutely positioned, centred with translate trick */
    .cta-orbit {
      position: absolute;
      border-radius: 50%;
      border: 1px solid rgba(34,224,90,0.25);
      top: 50%; left: 50%;
    }
    .cta-orbit-1 {
      width: 200px; height: 200px;
      margin-top: -100px; margin-left: -100px;   /* half of own size */
      animation: orbitSpin1 9s linear infinite;
    }
    .cta-orbit-2 {
      width: 245px; height: 245px;
      margin-top: -122.5px; margin-left: -122.5px;
      border-color: rgba(34,224,90,0.14);
      animation: orbitSpin2 14s linear infinite reverse;
    }
    .cta-orbit-3 {
      width: 290px; height: 290px;
      margin-top: -145px; margin-left: -145px;
      border-color: rgba(34,224,90,0.08);
      animation: orbitSpin1 22s linear infinite;
    }
    /* Satellite dots — one at top, one at bottom of each ring */
    .cta-orbit::before,
    .cta-orbit::after {
      content: '';
      position: absolute;
      border-radius: 50%;
      background: var(--clr-cyan);
      box-shadow: 0 0 7px rgba(34,224,90,0.9);
    }
    /* orbit-1: 6px dots at top & bottom */
    .cta-orbit-1::before { width:6px; height:6px; top:-3px; left:50%; transform:translateX(-50%); }
    .cta-orbit-1::after  { width:6px; height:6px; bottom:-3px; left:50%; transform:translateX(-50%); }
    /* orbit-2: 4px dots at left & right */
    .cta-orbit-2::before { width:4px; height:4px; background:rgba(34,224,90,0.75); top:50%; left:-2px; transform:translateY(-50%); }
    .cta-orbit-2::after  { width:4px; height:4px; background:rgba(34,224,90,0.75); top:50%; right:-2px; left:auto; transform:translateY(-50%); }
    /* orbit-3: 3px dots, dimmer */
    .cta-orbit-3::before { width:3px; height:3px; opacity:0.55; top:-1.5px; left:50%; transform:translateX(-50%); }
    .cta-orbit-3::after  { width:3px; height:3px; opacity:0.55; bottom:-1.5px; left:50%; transform:translateX(-50%); }
    /* Logo disc: centred inside the wrapper using the same technique */
    .cta-logo-disc {
      position: absolute;
      width: 130px; height: 130px;
      top: 50%; left: 50%;
      margin-top: -65px; margin-left: -65px;
    }
    @keyframes orbitSpin1 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
    @keyframes orbitSpin2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
    /* Logo disc — uses margin-top/left centering set in .cta-logo-disc rule above */
    .cta-logo-disc {
      border-radius: 50%;
      background: radial-gradient(circle at 50% 42%, #0e2212, #050c06 72%);
      border: 1.5px solid rgba(34,224,90,0.45);
      box-shadow: 0 0 28px rgba(34,224,90,0.28), inset 0 0 18px rgba(34,224,90,0.07);
      display: flex; align-items: center; justify-content: center;
      z-index: 3;
      animation: ctaFlicker 3.8s ease-in-out infinite;
      animation-delay: 0.2s;
    }
    .cta-logo-disc svg { width: 68px; height: 68px; }
    /* Content */
    .cta-content {
      position: relative; z-index: 2;
      text-align: center;
      max-width: 680px;
      margin: 0 auto;
      padding: 0 var(--sp-xl);
    }
    .cta-title {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(2rem, 5vw, 3.6rem);
      color: var(--clr-text);
      line-height: 1.12;
      letter-spacing: -0.02em;
      margin-bottom: 1.3rem;
    }
    .cta-desc {
      font-size: clamp(0.88rem, 1.3vw, 1rem);
      color: var(--clr-text-muted);
      font-weight: 300;
      line-height: 1.72;
      margin-bottom: 2.4rem;
    }
    /* CTA Button */
    .cta-btn {
      display: inline-flex;
      align-items: center;
      gap: 0;
      background: transparent;
      border: 1.5px solid rgba(34,224,90,0.5);
      border-radius: 999px;
      padding: 0.35rem 0.35rem 0.35rem 1rem;
      cursor: pointer;
      text-decoration: none;
      transition: border-color 0.3s ease, box-shadow 0.3s ease;
      position: relative;
      overflow: hidden;
    }
    .cta-btn::before {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse at 50% 50%, rgba(34,224,90,0.07) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.3s ease;
    }
    .cta-btn:hover {
      border-color: var(--clr-cyan);
      box-shadow: 0 0 24px rgba(34,224,90,0.28), 0 0 60px rgba(34,224,90,0.10);
    }
    .cta-btn:hover::before { opacity: 1; }
    .cta-btn-avatars {
      display: flex;
      margin-right: 0.85rem;
      position: relative; z-index: 1;
    }
    .cta-btn-avatar {
      width: 34px; height: 34px; border-radius: 50%;
      border: 2px solid var(--clr-bg);
      object-fit: cover; display: block;
      background: var(--clr-surface);
      overflow: hidden;
    }
    .cta-btn-avatar + .cta-btn-avatar { margin-left: -10px; }
    .cta-btn-label {
      font-family: var(--font-body);
      font-size: 0.88rem; font-weight: 500;
      color: var(--clr-text);
      margin-right: 1rem;
      white-space: nowrap;
      position: relative; z-index: 1;
    }
    .cta-btn-arrow {
      display: inline-flex; align-items: center; justify-content: center;
      width: 36px; height: 36px; border-radius: 50%;
      background: var(--clr-cyan);
      flex-shrink: 0;
      transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
      position: relative; z-index: 1;
    }
    .cta-btn-arrow svg { width: 14px; height: 14px; fill: none; stroke: #050c06; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }
    .cta-btn:hover .cta-btn-arrow {
      background: var(--clr-accent);
      transform: rotate(45deg) scale(1.08);
      box-shadow: 0 0 14px rgba(128,255,68,0.5);
    }

    /* ============================================================
       BLOGS SECTION
    ============================================================ */
    #blogs-section {
      position: relative;
      background: var(--clr-bg);
      padding: 6rem 0 7rem;
      overflow: hidden;
    }
    #blogs-canvas {
      position: absolute;
      inset: 0; width: 100%; height: 100%;
      pointer-events: none; z-index: 0;
    }
    .blog-header {
      text-align: center;
      margin-bottom: 3.8rem;
      position: relative; z-index: 2;
    }
    .blog-eyebrow {
      font-family: var(--font-mono);
      font-size: 0.78rem; letter-spacing: 0.14em;
      color: var(--clr-cyan); display: block;
      margin-bottom: 1rem;
    }
    .blog-eyebrow-bracket { color: rgba(34,224,90,0.4); margin: 0 0.3em; }
    .blog-title {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(2rem, 4.5vw, 3.2rem);
      color: var(--clr-text);
      line-height: 1.1;
      letter-spacing: -0.02em;
    }
    /* Grid */
    .blog-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.6rem;
      position: relative; z-index: 2;
    }
    /* Card */
    .blog-card {
      display: flex;
      flex-direction: column;
      cursor: pointer;
      border-radius: 4px;
      transition: transform 0.32s cubic-bezier(0.16,1,0.3,1);
    }
    .blog-card:hover { transform: translateY(-5px); }

    /* Image */
    .blog-card-img {
      width: 100%;
      aspect-ratio: 16 / 10;
      border-radius: 14px;
      overflow: hidden;
      position: relative;
      margin-bottom: 1.3rem;
    }
    .blog-card-img img {
      width: 100%; height: 100%;
      object-fit: cover; display: block;
      transition: transform 0.55s cubic-bezier(0.16,1,0.3,1), filter 0.32s ease;
      filter: brightness(0.88) saturate(0.9);
    }
    .blog-card:hover .blog-card-img img {
      transform: scale(1.04);
      filter: brightness(1) saturate(1.05);
    }

    /* Title */
    .blog-card-heading {
      font-family: var(--font-body);
      font-weight: 400;
      font-size: clamp(1rem, 1.5vw, 1.12rem);
      color: var(--clr-text);
      line-height: 1.4;
      margin-bottom: 1.2rem;
      flex: 1;
      transition: color 0.22s ease;
    }
    .blog-card:hover .blog-card-heading { color: rgba(255,255,255,0.95); }

    /* Meta row */
    .blog-card-meta {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.8rem;
    }
    .blog-card-author {
      display: flex;
      align-items: center;
      gap: 0.65rem;
    }
    .blog-card-avatar {
      width: 34px; height: 34px;
      border-radius: 50%;
      object-fit: cover;
      border: 1.5px solid rgba(34,224,90,0.25);
      flex-shrink: 0;
      background: var(--clr-surface);
    }
    .blog-card-date {
      font-family: var(--font-body);
      font-size: 0.82rem;
      color: var(--clr-text-muted);
      font-weight: 300;
    }

    /* Arrow button */
    .blog-card-btn {
      display: inline-flex;
      align-items: center; justify-content: center;
      width: 36px; height: 36px;
      border-radius: 50%;
      background: var(--clr-cyan);
      border: none;
      cursor: pointer;
      flex-shrink: 0;
      text-decoration: none;
      transition: background 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
    }
    .blog-card-btn svg {
      width: 14px; height: 14px;
      fill: none; stroke: #050c06;
      stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round;
    }
    .blog-card:hover .blog-card-btn,
    .blog-card-btn:hover {
      background: var(--clr-accent);
      transform: rotate(45deg) scale(1.1);
      box-shadow: 0 0 16px rgba(128,255,68,0.45);
    }

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

    /* ============================================================
       ABOUT SECTION
    ============================================================ */
    #about-section {
      position: relative;
      background: var(--clr-bg);
      overflow: hidden;
    }
    #about-canvas {
      position: absolute;
      inset: 0; width: 100%; height: 100%;
      pointer-events: none; z-index: 0;
    }

    /* ── Oversized background title ── */
    .about-bg-title {
      position: relative; z-index: 2;
      font-family: var(--font-display);
      font-weight: 200;
      font-size: clamp(5rem, 14vw, 13rem);
      line-height: 0.9;
      text-align: center;
      padding-top: 3rem;
      letter-spacing: -0.03em;
      pointer-events: none;
      user-select: none;
      /* Gradient spotlight: faded edges, bright center, slow moving */
      -webkit-text-fill-color: transparent;
      color: transparent;
      background-image: linear-gradient(
        90deg,
        rgba(255,255,255,0.0)  0%,
        rgba(255,255,255,0.0)  8%,
        rgba(255,255,255,0.06) 28%,
        rgba(255,255,255,0.18) 45%,
        rgba(255,255,255,0.22) 50%,
        rgba(255,255,255,0.18) 55%,
        rgba(255,255,255,0.06) 72%,
        rgba(255,255,255,0.0)  92%,
        rgba(255,255,255,0.0)  100%
      );
      background-size: 200% 100%;
      background-position: 50% 0;
      -webkit-background-clip: text;
      background-clip: text;
      animation: aboutBgSpotlight 7s ease-in-out infinite;
    }

    @keyframes aboutBgSpotlight {
      0%, 100% { background-position: 50% 0; }
      40%       { background-position: 30% 0; }
      60%       { background-position: 70% 0; }
    }

    /* ── Main header row ── */
    .about-header {
      display: grid;
      grid-template-columns: 1fr 1fr;
      align-items: center;
      gap: 2rem;
      padding: 3rem 0 3.5rem;
      position: relative; z-index: 2;
    }
    .about-eyebrow {
      font-family: var(--font-mono);
      font-size: 0.78rem; letter-spacing: 0.14em;
      color: var(--clr-cyan); display: block;
      margin-bottom: 1rem;
    }
    .about-eyebrow-bracket { color: rgba(34,224,90,0.4); margin: 0 0.3em; }
    .about-title {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(1.8rem, 3.5vw, 2.9rem);
      color: var(--clr-text);
      line-height: 1.1;
      letter-spacing: -0.02em;
    }
    .about-header-right {
      display: flex;
      justify-content: flex-end;
      align-items: center;
    }

    /* ── Two-column body ── */
    .about-body {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      align-items: center;
      padding-bottom: 5rem;
      position: relative; z-index: 2;
    }

    /* Left: shield diagram */
    .about-diagram {
      position: relative;
      width: 100%;
      aspect-ratio: 1 / 0.88;
      cursor: pointer;
    }
    #shield-canvas {
      width: 100%; height: 100%;
      display: block;
    }

    /* Right: text */
    .about-text-col { padding-top: 0.5rem; }
    .about-desc {
      font-size: clamp(0.88rem, 1.2vw, 0.98rem);
      color: rgba(255,255,255,0.72);
      font-weight: 300;
      line-height: 1.78;
      margin-bottom: 2rem;
    }
    .about-blockquote {
      position: relative;
      border-left: none;
      padding-left: 1.4rem;
    }
    /* Only the left green line fades — not the text */
    .about-blockquote::before {
      content: '';
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 2px;
      background: linear-gradient(to bottom, var(--clr-cyan) 0%, rgba(34,224,90,0.35) 55%, transparent 100%);
    }
    .about-blockquote-title {
      font-family: var(--font-body);
      font-weight: 600;
      font-size: 1.05rem;
      color: var(--clr-cyan);
      margin-bottom: 0.8rem;
    }
    .about-blockquote-text {
      font-size: 0.9rem;
      color: rgba(255,255,255,0.68);
      font-weight: 300;
      line-height: 1.75;
    }

    /* ── Stats row ── */
    .about-stats {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 1.5rem;
      padding: 0 0 6rem;
      position: relative; z-index: 2;
    }
    .about-stat-card {
      background: rgba(8,14,8,0.5);
      border: 1px solid var(--clr-border);
      border-radius: 14px;
      padding: 2rem 1.4rem 1.8rem;
      text-align: center;
      display: flex; flex-direction: column; align-items: center;
      gap: 0.9rem;
      transition: border-color 0.3s ease, background 0.3s ease,
                  box-shadow 0.3s ease, transform 0.3s cubic-bezier(0.16,1,0.3,1);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }
    .about-stat-card:hover {
      border-color: rgba(34,224,90,0.28);
      background: rgba(10,20,10,0.72);
      box-shadow: 0 8px 40px rgba(0,0,0,0.45),
                  0 0 0 1px rgba(34,224,90,0.08),
                  inset 0 1px 0 rgba(255,255,255,0.06),
                  inset 0 0 24px rgba(34,224,90,0.04);
      transform: translateY(-5px);
    }
    .about-stat-icon {
      width: 48px; height: 48px;
      display: flex; align-items: center; justify-content: center;
    }
    .about-stat-icon svg {
      width: 38px; height: 38px;
    }
    .about-stat-title {
      font-family: var(--font-body);
      font-weight: 500;
      font-size: 1rem;
      color: var(--clr-text);
    }
    .about-stat-desc {
      font-size: 0.82rem;
      color: var(--clr-text-muted);
      font-weight: 300;
      line-height: 1.65;
    }

    @media (max-width: 900px) {
      .about-header { grid-template-columns: 1fr; }
      .about-header-right { justify-content: flex-start; }
      .about-body { grid-template-columns: 1fr; }
      .about-stats { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 560px) {
      .about-stats { grid-template-columns: 1fr; }
    }

    /* ============================================================
       CONTACT FORM SECTION + REUSABLE CARD
    ============================================================ */
    #contact-section {
      position: relative;
      background: var(--clr-bg);
      padding: 6rem 0 7rem;
      overflow: hidden;
    }

    /* The reusable card — used both as section embed and as popup */
    .contact-card {
      position: relative;
      display: grid;
      grid-template-columns: 38% 62%;
      border-radius: 24px;
      overflow: hidden;
      border: 1px solid rgba(34,224,90,0.14);
      background: rgba(8,16,8,0.62);
      backdrop-filter: blur(22px);
      -webkit-backdrop-filter: blur(22px);
      box-shadow: 0 8px 60px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.04);
      transition: border-color 0.35s ease, box-shadow 0.35s ease;
    }
    .contact-card:hover {
      border-color: rgba(34,224,90,0.50);
      box-shadow: 0 12px 80px rgba(0,0,0,0.65),
                  0 0 0 1px rgba(34,224,90,0.18),
                  0 0 50px rgba(34,224,90,0.10),
                  inset 0 1px 0 rgba(255,255,255,0.08);
    }

    /* Dust canvas — inside the card only */
    .contact-card-canvas {
      position: absolute;
      inset: 0; width: 100%; height: 100%;
      pointer-events: none; z-index: 0;
      border-radius: 24px;
    }

    /* ── Left panel ── */
    .contact-left {
      position: relative; z-index: 1;
      padding: 3rem 2.4rem;
      display: flex;
      flex-direction: column;
      gap: 0;
      border-right: 1px solid rgba(34,224,90,0.08);
    }
    .contact-eyebrow {
      font-family: var(--font-mono);
      font-size: 0.75rem; letter-spacing: 0.14em;
      color: var(--clr-cyan); display: block;
      margin-bottom: 1.1rem;
    }
    .contact-eyebrow-bracket { color: rgba(34,224,90,0.4); margin: 0 0.28em; }
    .contact-card-title {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(1.9rem, 3vw, 2.8rem);
      color: var(--clr-text);
      line-height: 1.08;
      letter-spacing: -0.02em;
      margin-bottom: 1.2rem;
    }
    .contact-card-desc {
      font-size: 0.88rem;
      color: var(--clr-text-muted);
      font-weight: 300;
      line-height: 1.72;
      margin-bottom: 2.2rem;
    }
    .contact-info-block {
      margin-bottom: 1.5rem;
    }
    .contact-info-label {
      font-family: var(--font-body);
      font-weight: 600;
      font-size: 0.88rem;
      color: var(--clr-text);
      margin-bottom: 0.65rem;
    }
    .contact-info-link {
      display: inline-flex;
      align-items: center;
      gap: 0.75rem;
      text-decoration: none;
      cursor: pointer;
      transition: transform 0.22s ease;
    }
    .contact-info-link:hover { transform: translateX(4px); }
    .contact-info-link:hover .contact-info-icon { box-shadow: 0 0 16px rgba(34,224,90,0.5); }
    .contact-info-icon {
      width: 38px; height: 38px; border-radius: 50%;
      background: var(--clr-cyan);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      transition: box-shadow 0.22s ease;
    }
    .contact-info-icon svg { width: 18px; height: 18px; }
    .contact-info-num {
      font-family: var(--font-body);
      font-size: 0.92rem;
      color: var(--clr-text);
      font-weight: 400;
    }

    /* ── Right panel ── */
    .contact-right {
      position: relative; z-index: 1;
      padding: 2.8rem 2.4rem;
      display: flex;
      flex-direction: column;
      gap: 0.85rem;
    }
    .contact-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.85rem;
    }
    /* Input / select / textarea */
    .contact-field {
      width: 100%;
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 10px;
      padding: 0.95rem 1.1rem;
      font-family: var(--font-body);
      font-size: 0.88rem;
      font-weight: 300;
      color: var(--clr-text);
      outline: none;
      transition: border-color 0.22s ease, background 0.22s ease, box-shadow 0.22s ease;
      appearance: none;
      -webkit-appearance: none;
    }
    .contact-field::placeholder { color: rgba(255,255,255,0.35); }
    .contact-field:focus {
      border-color: rgba(34,224,90,0.45);
      background: rgba(34,224,90,0.04);
      box-shadow: 0 0 0 3px rgba(34,224,90,0.08);
    }
    .contact-field option {
      background: #0a140a;
      color: var(--clr-text);
    }
    .contact-textarea {
      resize: none;
      min-height: 140px;
    }
    /* Select wrapper for custom arrow */
    .contact-select-wrap {
      position: relative;
    }
    .contact-select-wrap::after {
      content: '';
      position: absolute;
      right: 1rem; top: 50%;
      transform: translateY(-50%);
      width: 0; height: 0;
      border-left: 4px solid transparent;
      border-right: 4px solid transparent;
      border-top: 5px solid rgba(255,255,255,0.4);
      pointer-events: none;
    }
    .contact-select-wrap .contact-field { padding-right: 2.2rem; }

    /* Submit button */
    .contact-submit-row {
      display: flex;
      align-items: center;
      gap: 0;
      background: rgba(255,255,255,0.92);
      border-radius: 10px;
      overflow: hidden;
      margin-top: 0.2rem;
      cursor: pointer;
      transition: background 0.25s ease, box-shadow 0.25s ease;
      border: none;
      width: 100%;
    }
    .contact-submit-row:hover {
      background: #fff;
      box-shadow: 0 0 28px rgba(255,255,255,0.22), 0 0 60px rgba(34,224,90,0.14);
    }
    .contact-submit-label {
      flex: 1;
      text-align: center;
      font-family: var(--font-body);
      font-size: 0.92rem;
      font-weight: 500;
      color: #080e08;
      padding: 0.95rem 1rem;
      cursor: pointer;
    }
    .contact-submit-arrow {
      width: 44px; height: 44px; margin: 4px;
      border-radius: 8px;
      background: var(--clr-cyan);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
    }
    .contact-submit-arrow svg { width: 16px; height: 16px; fill: none; stroke: #050c06; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
    .contact-submit-row:hover .contact-submit-arrow {
      background: var(--clr-accent);
      box-shadow: 0 0 22px rgba(128,255,68,0.65), 0 0 40px rgba(34,224,90,0.3);
    }

    /* Popup overlay */
    #contact-popup {
      position: fixed;
      inset: 0;
      z-index: 5000;
      background: rgba(3,8,4,0.82);
      backdrop-filter: blur(6px);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 1rem;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease;
    }
    #contact-popup.open {
      opacity: 1;
      pointer-events: all;
    }
    #contact-popup .contact-card {
      max-width: 960px;
      width: 100%;
      background: rgba(6,12,6,0.90);
      max-height: 90vh;
      overflow-y: auto;
    }
    .contact-popup-close {
      position: absolute;
      top: 1rem; right: 1rem;
      width: 36px; height: 36px;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.12);
      background: transparent;
      color: var(--clr-text-muted);
      font-size: 1.1rem;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      z-index: 2;
      transition: border-color 0.2s ease, color 0.2s ease;
    }
    .contact-popup-close:hover { border-color: var(--clr-cyan); color: var(--clr-cyan); }

    @media (max-width: 800px) {
      .contact-card { grid-template-columns: 1fr; }
      .contact-left { border-right: none; border-bottom: 1px solid rgba(34,224,90,0.08); }
      .contact-row { grid-template-columns: 1fr; }
    }

    /* ============================================================
       LOCATIONS SECTION
    ============================================================ */
    #locations-section {
      position: relative;
      background: var(--clr-bg);
      padding: 5rem 0 6rem;
      overflow: hidden;
    }
    #locations-dust-canvas {
      position: absolute;
      inset: 0; width: 100%; height: 100%;
      pointer-events: none; z-index: 0;
    }
    .loc-inner {
      display: grid;
      grid-template-columns: 38% 62%;
      align-items: center;
      gap: 2rem;
      position: relative; z-index: 2;
    }
    /* Left */
    .loc-left {}
    .loc-big-title {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(2.2rem, 5vw, 4rem);
      color: var(--clr-text);
      letter-spacing: -0.03em;
      line-height: 1.05;
      margin-bottom: 2rem;
    }
    .loc-country-name {
      font-family: var(--font-body);
      font-weight: 500;
      font-size: 1.05rem;
      color: var(--clr-text);
      margin-bottom: 0.5rem;
      display: flex;
      align-items: center;
      gap: 0.6rem;
      min-height: 1.6em;
      transition: opacity 0.3s ease;
    }
    .loc-address {
      font-size: 0.88rem;
      color: rgba(255,255,255,0.65);
      font-weight: 300;
      line-height: 1.75;
      margin-bottom: 1.8rem;
      min-height: 4.5em;
      transition: opacity 0.3s ease;
    }
    /* Pills */
    .loc-pills {
      display: flex;
      gap: 0.7rem;
      flex-wrap: wrap;
    }
    .loc-pill {
      font-family: var(--font-body);
      font-weight: 500;
      font-size: 0.88rem;
      padding: 0.52rem 1.2rem;
      border-radius: 999px;
      cursor: pointer;
      transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
      background: rgba(255,255,255,0.07);
      border: 1px solid rgba(255,255,255,0.12);
      color: var(--clr-text-muted);
      letter-spacing: 0.04em;
    }
    .loc-pill.active {
      background: transparent;
      border-color: var(--clr-cyan);
      color: var(--clr-cyan);
      box-shadow: 0 0 14px rgba(34,224,90,0.22);
    }
    .loc-pill:hover:not(.active) {
      border-color: rgba(34,224,90,0.35);
      color: rgba(255,255,255,0.85);
    }
    /* Right: map */
    .loc-map-wrap { position: relative; }

    #loc-map-container {
      position: relative;
      width: 100%;
      /* Aspect ratio matches a typical world map (wider than tall) */
      aspect-ratio: 16 / 8.5;
      border-radius: 12px;
      overflow: hidden;
      /* Placeholder background while image is not yet set */
      background: rgba(10,20,10,0.6);
      border: 1px dashed rgba(34,224,90,0.2);
    }
    /* Placeholder label — hidden once real image loads */
    #loc-map-container::before {
      display: none;
      content: 'Add your map image: set src on #loc-map-img';
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-mono);
      font-size: 0.72rem;
      color: rgba(34,224,90,0.35);
      letter-spacing: 0.06em;
      pointer-events: none;
      z-index: 0;
      text-align: center;
      padding: 1rem;
    }
    #loc-map-img {
      position: absolute;
      inset: 0;
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
      /* Hide broken-image icon while src is empty */
      opacity: 0;
      transition: opacity 0.4s ease;
    }
    #loc-map-img.loaded { opacity: 1; }

    /* Pin dots */
    .loc-pin {
      position: absolute;
      transform: translate(-50%, -50%);
      width: 0; height: 0;
      z-index: 3;
      cursor: pointer;
    }
    /* Inner dot */
    .loc-pin::before {
      content: '';
      position: absolute;
      top: 50%; left: 50%;
      transform: translate(-50%, -50%);
      width: 10px; height: 10px;
      border-radius: 50%;
      background: #22e05a;
      box-shadow: 0 0 10px rgba(34,224,90,0.9);
      transition: width 0.25s ease, height 0.25s ease, box-shadow 0.25s ease;
      z-index: 2;
    }
    .loc-pin.active::before,
    .loc-pin:hover::before {
      width: 14px; height: 14px;
      box-shadow: 0 0 18px rgba(34,224,90,1), 0 0 32px rgba(34,224,90,0.5);
    }
    /* Ripple ring (CSS animation on active pin) */
    .loc-pin::after {
      content: '';
      position: absolute;
      top: 50%; left: 50%;
      transform: translate(-50%, -50%) scale(0);
      width: 40px; height: 40px;
      border-radius: 50%;
      border: 1.5px solid rgba(34,224,90,0.7);
      opacity: 0;
      pointer-events: none;
    }
    .loc-pin.active::after {
      animation: pinRipple 1.8s ease-out infinite;
    }
    @keyframes pinRipple {
      0%   { transform: translate(-50%,-50%) scale(0.2); opacity: 0.8; }
      100% { transform: translate(-50%,-50%) scale(2.8); opacity: 0; }
    }
    /* Label pill above pin */
    .loc-pin-label {
      position: absolute;
      bottom: calc(100% + 10px);
      left: 50%;
      transform: translateX(-50%);
      background: linear-gradient(135deg, rgba(34,100,30,0.95), rgba(20,60,18,0.95));
      border: 1px solid rgba(34,224,90,0.5);
      color: #e8ffe8;
      font-family: var(--font-body);
      font-weight: 500;
      font-size: 0.82rem;
      padding: 0.3rem 0.85rem;
      border-radius: 999px;
      white-space: nowrap;
      pointer-events: none;
      opacity: 0;
      transition: opacity 0.22s ease, transform 0.22s ease;
      transform: translateX(-50%) translateY(4px);
      box-shadow: 0 4px 16px rgba(0,0,0,0.4);
    }
    /* Stem line between label and dot */
    .loc-pin-label::after {
      content: '';
      position: absolute;
      top: 100%; left: 50%;
      transform: translateX(-50%);
      width: 1.5px; height: 10px;
      background: linear-gradient(to bottom, rgba(34,224,90,0.5), transparent);
    }
    .loc-pin.active .loc-pin-label,
    .loc-pin:hover .loc-pin-label {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }
    @media (max-width: 800px) {
      .loc-inner { grid-template-columns: 1fr; }
      .loc-big-title { font-size: 2.4rem; }
    }
    

/* ============================================================
   WORDPRESS THEME OVERRIDES
   The original .page / .page.active rules were for a single-page
   app design where non-active pages were hidden. In WordPress each
   page has its own URL, so ALL page content must always be visible.
   WordPress also adds "page" to <body> class, which conflicts.
============================================================ */
.page,
.page.active {
    display: block !important;
    min-height: unset !important;
}

/* Ensure body is never hidden by the .page rule */
body.page {
    display: block !important;
}

/* Hide map placeholder — image src is set, placeholder text not needed */
#loc-map-container::before { display: none !important; }
