:root {
  --em-bg: #0b1220;
  --em-surface: #111a2e;
  --em-surface-2: #16233d;
  --em-text: #f7fbff;
  --em-muted: #b6c6d8;
  --em-cyan: #39e6ff;
  --em-blue: #6688ff;
  --em-green: #5dffb2;
  --em-border: rgba(255,255,255,.13);
  --em-shadow: 0 1.5rem 4rem rgba(0,0,0,.35);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: radial-gradient(circle at top left, rgba(57,230,255,.12), transparent 28rem), var(--em-bg);
  color: var(--em-text);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.6;
}
a { color: var(--em-cyan); }
a:hover { color: #96f3ff; }
img { max-width: 100%; height: auto; }
.skip-link {
  position: absolute; left: .75rem; top: -5rem; z-index: 2000;
  background: var(--em-cyan); color: #07101d; padding: .75rem 1rem; border-radius: .5rem;
}
.skip-link:focus { top: .75rem; }
:focus-visible { outline: .2rem solid var(--em-cyan); outline-offset: .2rem; }
.py-lg-6 { padding-top: 7rem; padding-bottom: 7rem; }
.glass-nav {
  background: rgba(11,18,32,.78);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--em-border);
}
.navbar-brand { font-weight: 800; letter-spacing: -.03em; }

.brand-logo-picture { display: inline-flex; align-items: center; }
.brand-logo {
  width: clamp(9.5rem, 16vw, 13.5rem);
  height: auto;
  display: block;
  filter: drop-shadow(0 .45rem 1rem rgba(57,230,255,.20));
}
.footer-brand { max-width: 16rem; }
.footer-logo {
  width: min(100%, 15rem);
  height: auto;
  display: block;
  filter: drop-shadow(0 .65rem 1.2rem rgba(57,230,255,.16));
}
@media (max-width: 575.98px) {
  .brand-logo { width: 8.75rem; }
}

.nav-link { color: rgba(255,255,255,.78); font-weight: 650; }
.nav-link:hover, .nav-link.active { color: var(--em-cyan); }
.btn-cyan {
  --bs-btn-bg: var(--em-cyan);
  --bs-btn-border-color: var(--em-cyan);
  --bs-btn-color: #07101d;
  --bs-btn-hover-bg: #8af3ff;
  --bs-btn-hover-border-color: #8af3ff;
  --bs-btn-hover-color: #07101d;
  font-weight: 800;
  box-shadow: 0 .85rem 2rem rgba(57,230,255,.22);
}
.hero-section, .page-hero { border-bottom: 1px solid var(--em-border); }
.hero-illustration { filter: drop-shadow(0 2rem 3rem rgba(57,230,255,.18)); }
.eyebrow {
  color: var(--em-green); text-transform: uppercase; letter-spacing: .14em;
  font-size: .82rem; font-weight: 800;
}
.section-title { font-size: clamp(2rem, 3.8vw, 3rem); line-height: 1.08; letter-spacing: -.04em; font-weight: 850; }
.section-copy { max-width: 44rem; color: var(--em-muted); font-size: 1.1rem; }
.text-secondary { color: var(--em-muted) !important; }
.hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; max-width: 34rem; }
.hero-stats div, .service-card, .feature-card, .metric-card, .form-panel, .contact-card, .cta-panel {
  background: linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.035));
  border: 1px solid var(--em-border);
  border-radius: 1.5rem;
  box-shadow: var(--em-shadow);
}
.hero-stats div { padding: 1rem; }
.hero-stats strong { display: block; font-size: 1.25rem; color: var(--em-cyan); }
.hero-stats span { display: block; color: var(--em-muted); font-size: .9rem; }
.service-card, .feature-card, .metric-card, .form-panel, .contact-card { padding: 1.5rem; }
.service-card { transition: transform .25s ease, border-color .25s ease; }
.service-card:hover { transform: translateY(-.4rem); border-color: rgba(57,230,255,.55); }
.service-card h3 { margin-top: 1rem; font-size: 1.35rem; }
.service-card p, .feature-card p, .metric-card p { color: var(--em-muted); }
.service-card a { font-weight: 800; text-decoration: none; }
.feature-number { color: var(--em-cyan); font-weight: 850; display: inline-block; margin-bottom: .75rem; }
.bg-grid {
  background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 34px 34px;
  border-block: 1px solid var(--em-border);
}
.shadow-glow { box-shadow: 0 1.25rem 5rem rgba(57,230,255,.14); }
.timeline { display: grid; gap: 1rem; }
.timeline div { position: relative; padding-left: 4rem; }
.timeline span {
  position: absolute; left: 0; top: 0; width: 2.65rem; height: 2.65rem; border-radius: 50%;
  display: grid; place-items: center; background: rgba(57,230,255,.15); color: var(--em-cyan); border: 1px solid rgba(57,230,255,.38); font-weight: 850;
}
.timeline h3 { font-size: 1.15rem; margin-bottom: .25rem; }
.timeline p { color: var(--em-muted); }
.check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .9rem; }
.check-list li { padding-left: 2rem; position: relative; color: var(--em-muted); }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--em-green); font-weight: 900; }
.form-control, .form-select {
  background-color: rgba(255,255,255,.08); border-color: var(--em-border); color: var(--em-text);
}
.form-control:focus, .form-select:focus { background-color: rgba(255,255,255,.1); color: var(--em-text); border-color: var(--em-cyan); box-shadow: 0 0 0 .25rem rgba(57,230,255,.16); }
.form-select option { color: #07101d; }
.narrow { max-width: 800px; }
.site-footer { border-top: 1px solid var(--em-border); background: #08101d; }
.footer-links a { display: inline-block; padding: .2rem 0; color: var(--em-muted); text-decoration: none; }
.footer-links a:hover { color: var(--em-cyan); }
.orb { position: absolute; border-radius: 999px; filter: blur(4rem); opacity: .32; }
.orb-one { width: 24rem; height: 24rem; background: var(--em-cyan); top: 5rem; right: 8%; }
.orb-two { width: 18rem; height: 18rem; background: var(--em-blue); bottom: -4rem; left: 4%; }
@media (max-width: 767.98px) {
  .hero-stats { grid-template-columns: 1fr; }
  .py-lg-6 { padding-top: 4rem; padding-bottom: 4rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

.nav-scrolled { box-shadow: 0 .75rem 2rem rgba(0,0,0,.24); }

/* Legal pages and ad/referral carousel */
.legal-content h2 {
  margin-top: 2rem;
  font-size: 1.35rem;
  font-weight: 800;
}
.legal-content p,
.legal-content li {
  color: var(--em-muted);
}
.partner-ads {
  background: linear-gradient(180deg, rgba(57,230,255,.06), rgba(8,16,29,.92));
  border-top: 1px solid var(--em-border);
}
.ad-slide {
  --ad-brand: var(--em-cyan);
  --ad-accent: var(--em-purple);
  --ad-text: #fff;
  min-height: 13rem;
  color: var(--ad-text);
  background:
    radial-gradient(circle at right top, color-mix(in srgb, var(--ad-accent) 36%, transparent), transparent 20rem),
    linear-gradient(145deg, color-mix(in srgb, var(--ad-brand) 82%, #0b1220), color-mix(in srgb, var(--ad-accent) 46%, #0b1220));
  border: 1px solid color-mix(in srgb, var(--ad-brand) 55%, rgba(255,255,255,.18));
  border-radius: 1.5rem;
  box-shadow: var(--em-shadow);
  overflow: hidden;
  position: relative;
  transition: background .35s ease, border-color .35s ease, color .35s ease;
}
.ad-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,0) 42%);
  pointer-events: none;
}
.ad-slide > * {
  position: relative;
  z-index: 1;
}
.ad-slide .lead,
.ad-slide .ad-kicker {
  color: color-mix(in srgb, var(--ad-text) 86%, transparent);
}
.ad-logo-frame {
  min-height: 8.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 1.25rem;
  box-shadow: 0 1rem 2.5rem rgba(0,0,0,.22);
}
.ad-logo {
  width: min(100%, 15rem);
  height: auto;
  max-height: 7rem;
  object-fit: contain;
}
.ad-cta {
  background: rgba(255,255,255,.94);
  color: #07101d;
  border: 0;
  box-shadow: 0 .75rem 2rem rgba(0,0,0,.2);
}
.ad-cta:hover,
.ad-cta:focus {
  background: var(--ad-accent);
  color: #fff;
}
.partner-ads .carousel-indicators {
  position: static;
  margin: 1rem 0 0;
}
.partner-ads .carousel-indicators [data-bs-target] {
  background-color: var(--em-cyan);
}
.partner-ads .carousel-control-prev,
.partner-ads .carousel-control-next {
  width: 3rem;
}
.partner-ads .carousel-control-prev-icon,
.partner-ads .carousel-control-next-icon {
  background-color: rgba(11,18,32,.75);
  border-radius: 999px;
  padding: 1.2rem;
}
@supports not (color: color-mix(in srgb, #000 50%, #fff)) {
  .ad-slide {
    background: linear-gradient(145deg, var(--ad-brand), var(--ad-accent));
    border-color: rgba(255,255,255,.22);
  }
  .ad-slide .lead,
  .ad-slide .ad-kicker {
    color: var(--ad-text);
  }
}
@media (max-width: 767.98px) {
  .partner-ads .carousel-control-prev,
  .partner-ads .carousel-control-next {
    display: none;
  }
}

/* EU/UK-style cookie consent */
.cookie-consent {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 1080;
  padding: 1rem 0;
  background: linear-gradient(180deg, rgba(8,16,29,0), rgba(8,16,29,.96) 18%);
}
.cookie-consent__panel {
  background: rgba(11,18,32,.98);
  border: 1px solid var(--em-border);
  border-radius: 1.25rem;
  box-shadow: 0 1rem 4rem rgba(0,0,0,.45);
  padding: 1.25rem;
}
.cookie-consent__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1rem;
}
.cookie-preferences {
  border-top: 1px solid var(--em-border);
  padding-top: 1rem;
}
.cookie-option {
  display: grid;
  grid-template-columns: 1.25rem 1fr;
  gap: .75rem;
  padding: .7rem 0;
}
.cookie-option label span {
  display: block;
  color: var(--em-muted);
  font-size: .92rem;
}
.footer-cookie-button {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--em-muted);
  padding: .2rem 0;
  text-align: left;
}
.footer-cookie-button:hover,
.footer-cookie-button:focus-visible {
  color: var(--em-cyan);
}
@media (min-width: 992px) {
  .cookie-consent__panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
  }
  .cookie-preferences {
    grid-column: 1 / -1;
  }
  .cookie-consent__actions {
    margin-top: 0;
    justify-content: flex-end;
  }
}
