/* ==========================================================================
   NGES Pages v2 - full visual design system
   Banner heroes with giant watermark type, red/blue glows, grid overlay,
   red ticker bands, numbered glowing cards, scroll-in animations.
   Palette: #000511 bg, #03132d cards, #FF0B3D red, #2f6bff blue accent.
   ========================================================================== */

.nges-page {
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(47,107,255,.10), transparent 60%),
    radial-gradient(900px 500px at -10% 20%, rgba(255,11,61,.10), transparent 60%),
    #000511;
  color: #fff;
  padding: 0 0 90px;
  overflow: hidden;
  position: relative;
}
.nges-container { max-width: min(1360px, 94vw); margin: 0 auto; padding: 0 20px; position: relative; }
.nges-page h1, .nges-page h2, .nges-page h3 { color: #fff; }
.nges-page p, .nges-page li { color: #cfd5e4; line-height: 1.75; font-size: 16px; }
.nges-page a { color: #ff4d6d; text-decoration: none; }
.nges-page a:hover { color: #ff0b3d; }
.nges-muted { opacity: .6; }

/* Breadcrumbs */
.nges-breadcrumbs { padding: 26px 0 0; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; position: relative; z-index: 3; }
.nges-breadcrumbs a { color: #7d86a0; }
.nges-breadcrumbs a:hover { color: #fff; }
.nges-breadcrumbs span[aria-current] { color: #ff0b3d; }
.nges-crumb-sep { margin: 0 10px; color: #2a3350; }

/* ==========================================================================
   HERO BANNERS
   ========================================================================== */
.nges-hero {
  position: relative;
  padding: 130px 0 100px;
  min-height: 420px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  isolation: isolate;
}
.nges-hero--inner { padding: 90px 0 70px; min-height: 300px; }

/* layered banner background: glows + grid + angled red slash */
.nges-hero::before {
  content: "";
  position: absolute;
  inset: -40px -50vw 0;
  z-index: -2;
  background:
    radial-gradient(700px 380px at 18% 30%, rgba(255,11,61,.22), transparent 65%),
    radial-gradient(800px 420px at 88% 15%, rgba(47,107,255,.16), transparent 65%),
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: auto, auto, 56px 56px, 56px 56px;
  -webkit-mask-image: linear-gradient(#000 60%, transparent);
          mask-image: linear-gradient(#000 60%, transparent);
}
.nges-hero::after {
  content: "";
  position: absolute;
  right: -12%;
  top: 8%;
  width: 46%;
  height: 130%;
  z-index: -1;
  background: linear-gradient(135deg, rgba(255,11,61,.16), rgba(255,11,61,0) 55%);
  clip-path: polygon(35% 0, 100% 0, 100% 100%, 0 100%);
  filter: blur(2px);
}

/* giant outlined watermark word behind the H1 (injected by nges-pages.js) */
.nges-watermark {
  position: absolute;
  left: -8px;
  top: 50%;
  transform: translateY(-52%);
  z-index: -1;
  font-size: clamp(110px, 20vw, 260px);
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .02em;
  color: transparent;
  -webkit-text-stroke: 2px rgba(255,255,255,.06);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}
.nges-hero--inner .nges-watermark { font-size: clamp(90px, 16vw, 190px); }

/* eyebrow kicker (injected) */
.nges-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: #ff0b3d;
  font-weight: 700;
  margin: 0 0 18px;
}
.nges-eyebrow::before { content: ""; width: 34px; height: 2px; background: #ff0b3d; }

.nges-hero h1 {
  font-size: clamp(38px, 5.6vw, 66px);
  font-weight: 900;
  text-transform: uppercase;
  line-height: 1.04;
  margin: 0 0 22px;
  max-width: 900px;
  text-shadow: 0 0 60px rgba(255,11,61,.25);
}
.nges-hero h1::first-line { color: #ff0b3d; }
.nges-sub { max-width: 700px; font-size: 18px; color: #d9deea; }
.nges-lead { font-size: 18px; max-width: 880px; color: #d9deea; }

/* red edge line under every hero */
.nges-hero { border-bottom: 1px solid rgba(255,11,61,.28); }
.nges-hero { box-shadow: inset 0 -60px 80px -60px rgba(255,11,61,.18); }

/* ==========================================================================
   RED TICKER BAND (like the "esports titles" strip)
   ========================================================================== */
.nges-ticker {
  position: relative;
  width: 104vw;
  margin-left: calc(50% - 52vw);
  transform: rotate(-1.2deg);
  background: #ff0b3d;
  padding: 16px 0;
  margin: 46px 0;
  overflow: hidden;
  box-shadow: 0 0 46px rgba(255,11,61,.45);
}
.nges-ticker-track {
  display: inline-flex;
  gap: 56px;
  white-space: nowrap;
  animation: nges-scroll 26s linear infinite;
  will-change: transform;
}
.nges-ticker-track span {
  color: #fff;
  font-weight: 900;
  font-size: 20px;
  letter-spacing: .12em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 56px;
}
.nges-ticker-track span::after { content: "◆"; font-size: 11px; opacity: .7; }
@keyframes nges-scroll { to { transform: translateX(-50%); } }

/* ==========================================================================
   SECTIONS & HEADINGS
   ========================================================================== */
.nges-section { padding: 56px 0 16px; position: relative; }
.nges-h2 {
  font-size: clamp(26px, 3.2vw, 38px);
  font-weight: 900;
  text-transform: uppercase;
  display: block;
  margin: 0 0 22px;
  padding-bottom: 12px;
  position: relative;
  letter-spacing: .01em;
}
.nges-h2::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 74px; height: 4px;
  background: linear-gradient(90deg, #ff0b3d, rgba(255,11,61,.2));
  box-shadow: 0 0 18px rgba(255,11,61,.6);
}

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.nges-btns { margin-top: 28px; }
.nges-btn {
  display: inline-block;
  background: linear-gradient(180deg, #ff2653, #e00030);
  color: #fff !important;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 14px;
  padding: 15px 36px;
  border-radius: 4px;
  border: 1px solid #ff0b3d;
  margin: 0 12px 10px 0;
  cursor: pointer;
  box-shadow: 0 8px 28px rgba(255,11,61,.35);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
  clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
}
.nges-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 36px rgba(255,11,61,.55); }
.nges-btn--ghost {
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.35);
  box-shadow: none;
  color: #fff !important;
}
.nges-btn--ghost:hover { border-color: #ff0b3d; color: #ff0b3d !important; box-shadow: 0 8px 28px rgba(255,11,61,.25); }

/* ==========================================================================
   CARDS - numbered, glowing top edge
   ========================================================================== */
.nges-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 22px;
  margin-top: 28px;
  counter-reset: ngescard;
}
.nges-cards--4 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.nges-card {
  counter-increment: ngescard;
  position: relative;
  background: linear-gradient(165deg, #08142e 0%, #03132d 55%, #020c1f 100%);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  padding: 34px 26px 28px;
  overflow: hidden;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.nges-card::before {
  content: counter(ngescard, decimal-leading-zero);
  position: absolute;
  right: 16px; top: 8px;
  font-size: 46px;
  font-weight: 900;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255,11,61,.35);
  line-height: 1;
}
.nges-card::after {
  content: "";
  position: absolute;
  left: 0; top: 0;
  width: 100%; height: 3px;
  background: linear-gradient(90deg, #ff0b3d, transparent 70%);
  opacity: 0;
  transition: opacity .22s ease;
}
.nges-card:hover {
  transform: translateY(-6px);
  border-color: rgba(255,11,61,.55);
  box-shadow: 0 18px 48px rgba(0,0,0,.55), 0 0 34px rgba(255,11,61,.18);
}
.nges-card:hover::after { opacity: 1; }
.nges-card h3 { font-size: 17px; text-transform: uppercase; margin: 0 0 12px; letter-spacing: .04em; padding-right: 54px; }
.nges-card h3 a { color: #fff; }
.nges-card h3 a:hover { color: #ff0b3d; }
.nges-card p { font-size: 14px; margin: 0; color: #aeb6ca; }

/* ==========================================================================
   STATS STRIP
   ========================================================================== */
.nges-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0;
  margin: 34px 0;
  text-align: center;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0));
  overflow: hidden;
}
.nges-stat { padding: 34px 16px; border-right: 1px solid rgba(255,255,255,.07); }
.nges-stat:last-child { border-right: 0; }
.nges-stat strong {
  display: block;
  font-size: 52px;
  font-weight: 900;
  color: #fff;
  line-height: 1;
  margin-bottom: 10px;
  text-shadow: 0 0 30px rgba(255,11,61,.65);
}
.nges-stat span { text-transform: uppercase; font-size: 12px; letter-spacing: .18em; color: #8b93a7; }
@media (max-width: 700px) { .nges-stat { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.07); } .nges-stat:last-child { border-bottom: 0; } }

/* ==========================================================================
   LISTS
   ========================================================================== */
.nges-list {
  padding-left: 0;
  list-style: none;
  margin: 24px 0;
  max-width: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 720px) { .nges-list { grid-template-columns: 1fr; } }
.nges-list li {
  position: relative;
  padding: 18px 20px 18px 48px;
  margin-bottom: 0;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.06);
  border-left: 3px solid #ff0b3d;
  border-radius: 8px;
}
.nges-list li::before {
  content: "";
  position: absolute;
  left: 18px; top: 22px;
  width: 10px; height: 10px;
  background: #ff0b3d;
  transform: rotate(45deg);
  box-shadow: 0 0 12px rgba(255,11,61,.8);
}

/* ==========================================================================
   CPT GRIDS (events / work / team)
   ========================================================================== */
.nges-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 22px;
  margin: 28px 0;
}

/* Team grids: clean, equal 4-up layout, full section width (aligned with the
   heading and the buttons below). Wraps to 2-up on tablet, 1-up on phone. */
.nges-team-cards .nges-grid,
.nges-grid.nges-grid--team {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
@media (max-width: 1000px) {
  .nges-team-cards .nges-grid,
  .nges-grid.nges-grid--team { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .nges-team-cards .nges-grid,
  .nges-grid.nges-grid--team { grid-template-columns: 1fr; max-width: none; }
}
.nges-grid-card {
  display: block;
  position: relative;
  background: #03132d;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  overflow: hidden;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.nges-grid-thumb { position: relative; overflow: hidden; aspect-ratio: 16/9; background: #06122b; }
.nges-grid-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.nges-grid-thumb::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(0,5,17,.85));
}
.nges-grid-card:hover { transform: translateY(-6px); border-color: rgba(255,11,61,.6); box-shadow: 0 18px 44px rgba(0,0,0,.6), 0 0 30px rgba(255,11,61,.16); }
.nges-grid-card:hover .nges-grid-thumb img { transform: scale(1.07); }
.nges-grid-card h3 {
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: 16px 18px;
  margin: 0;
  color: #fff;
  position: relative;
}
.nges-grid-card h3::before {
  content: "";
  position: absolute; left: 18px; top: 0;
  width: 28px; height: 2px; background: #ff0b3d;
}
.nges-grid-card--team .nges-grid-thumb { aspect-ratio: 4/5; }
.nges-grid-card--team p { padding: 0 18px 18px; font-size: 13px; margin: 0; color: #aeb6ca; }

/* ==========================================================================
   LOGO ROWS (partners / games)
   ========================================================================== */
.nges-grid--partners, .nges-grid--logos { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.nges-logo-cell {
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  min-height: 88px;
  transition: border-color .2s ease, background .2s ease;
}
.nges-logo-cell:hover { border-color: rgba(255,11,61,.5); background: rgba(255,11,61,.05); }
.nges-logo-cell img { max-height: 48px; width: auto; filter: grayscale(1) brightness(2.2); transition: filter .2s; }
.nges-logo-cell:hover img { filter: none; }

/* ==========================================================================
   CTA BAND
   ========================================================================== */
.nges-cta {
  position: relative;
  text-align: center;
  background:
    radial-gradient(600px 300px at 50% 0%, rgba(255,11,61,.22), transparent 70%),
    linear-gradient(180deg, #071531, #020a1c);
  border: 1px solid rgba(255,11,61,.35);
  border-radius: 16px;
  padding: 64px 30px;
  margin: 70px 0 24px;
  overflow: hidden;
  box-shadow: 0 0 60px rgba(255,11,61,.12), inset 0 0 80px rgba(255,11,61,.06);
}
.nges-cta::before, .nges-cta::after {
  content: "";
  position: absolute;
  top: -30%;
  width: 200px; height: 160%;
  background: linear-gradient(180deg, rgba(255,11,61,.14), transparent);
  transform: skewX(-18deg);
}
.nges-cta::before { left: -60px; }
.nges-cta::after { right: -60px; transform: skewX(18deg); }
.nges-cta h2 { font-size: clamp(26px, 3.4vw, 40px); font-weight: 900; text-transform: uppercase; margin: 0 0 14px; position: relative; z-index: 1; }
.nges-cta p { max-width: 640px; margin: 0 auto; position: relative; z-index: 1; }
.nges-cta .nges-btns { margin-top: 26px; position: relative; z-index: 1; }

/* ==========================================================================
   FAQ ACCORDION
   ========================================================================== */
.nges-faq-item {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  background: linear-gradient(180deg, #06122b, #03132d);
  margin-bottom: 14px;
  overflow: hidden;
  transition: border-color .2s ease;
}
.nges-faq-item.open { border-color: rgba(255,11,61,.5); box-shadow: 0 0 26px rgba(255,11,61,.1); }
.nges-faq-q {
  margin: 0;
  padding: 20px 56px 20px 24px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  position: relative;
  user-select: none;
  transition: color .2s ease;
}
.nges-faq-q:hover { color: #ff4d6d; }
.nges-faq-q::after {
  content: "+";
  position: absolute;
  right: 22px; top: 50%;
  transform: translateY(-50%);
  color: #ff0b3d;
  font-size: 26px;
  font-weight: 300;
  transition: transform .25s ease;
}
.nges-faq-item.open .nges-faq-q::after { transform: translateY(-50%) rotate(45deg); }
.nges-faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s ease; }
.nges-faq-a > p { overflow: hidden; margin: 0; padding: 0 24px; font-size: 15px; color: #aeb6ca; }
.nges-faq-item.open .nges-faq-a { grid-template-rows: 1fr; }
.nges-faq-item.open .nges-faq-a > p { padding-bottom: 20px; }

/* ==========================================================================
   TWO-COLUMN + CONTACT FORM
   ========================================================================== */
.nges-two-col { display: grid; grid-template-columns: 1.2fr .8fr; gap: 52px; }
@media (max-width: 820px) { .nges-two-col { grid-template-columns: 1fr; } }

.nges-form {
  background: linear-gradient(180deg, #06122b, #03132d);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  padding: 30px 28px;
}
.nges-form label { display: block; margin-bottom: 16px; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; color: #8b93a7; font-weight: 700; }
.nges-form input, .nges-form select, .nges-form textarea {
  display: block;
  width: 100%;
  margin-top: 8px;
  background: #010a1c;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 6px;
  color: #fff;
  padding: 13px 15px;
  font-size: 15px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.nges-form input:focus, .nges-form select:focus, .nges-form textarea:focus {
  outline: none;
  border-color: #ff0b3d;
  box-shadow: 0 0 0 3px rgba(255,11,61,.18);
}
.nges-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .nges-form-row { grid-template-columns: 1fr; } }
.nges-hp { position: absolute !important; left: -9999px !important; }
.nges-form-ok { color: #3ddc84; font-weight: 700; }
.nges-form-fail { color: #ff0b3d; font-weight: 700; }

/* ==========================================================================
   SCROLL-IN ANIMATIONS (added by nges-pages.js)
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  .nges-reveal { opacity: 0; transform: translateY(26px); transition: opacity .6s ease, transform .6s ease; }
  .nges-reveal.nges-in { opacity: 1; transform: none; }
  .nges-hero h1, .nges-hero .nges-sub, .nges-hero .nges-btns, .nges-eyebrow {
    animation: nges-up .7s ease both;
  }
  .nges-hero .nges-sub { animation-delay: .12s; }
  .nges-hero .nges-btns { animation-delay: .24s; }
  @keyframes nges-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
}

@media (max-width: 700px) {
  .nges-hero { padding: 90px 0 70px; min-height: 320px; }
  .nges-watermark { display: none; }
}

/* ==========================================================================
   V3 ENHANCEMENTS
   ========================================================================== */

/* Hero: taller, scanlines + diagonal stripes layered into the banner */
.nges-hero { border-bottom: 0; box-shadow: none; padding-bottom: 110px; }
.nges-hero--inner { padding-bottom: 90px; }
.nges-hero::before {
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.018) 0 1px, transparent 1px 4px),
    radial-gradient(700px 380px at 18% 30%, rgba(255,11,61,.24), transparent 65%),
    radial-gradient(800px 420px at 88% 15%, rgba(47,107,255,.16), transparent 65%),
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: auto, auto, auto, 56px 56px, 56px 56px;
}

/* Full-bleed glowing red line under every hero (injected by JS) */
.nges-hero-line {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 2px;
  background: linear-gradient(90deg, transparent, #ff0b3d 12%, #ff0b3d 88%, transparent);
  box-shadow: 0 0 26px rgba(255,11,61,.9), 0 0 60px rgba(255,11,61,.4);
}
.nges-hero-line::after {
  content: "";
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 10px; height: 10px;
  background: #ff0b3d;
  box-shadow: 0 0 18px #ff0b3d;
}

/* Racing chevrons on the hero's right side (injected by JS) */
.nges-hero-deco {
  position: absolute;
  right: 4%;
  top: 50%;
  transform: translateY(-50%) skewX(-18deg);
  display: flex;
  gap: 18px;
  pointer-events: none;
  z-index: -1;
}
.nges-hero-deco i {
  display: block;
  width: 26px;
  height: 220px;
  background: linear-gradient(180deg, rgba(255,11,61,.85), rgba(255,11,61,.05));
  box-shadow: 0 0 30px rgba(255,11,61,.35);
  animation: nges-pulse 2.6s ease-in-out infinite;
}
.nges-hero-deco i:nth-child(2) { height: 160px; opacity: .55; animation-delay: .4s; }
.nges-hero-deco i:nth-child(3) { height: 110px; opacity: .3; animation-delay: .8s; }
@keyframes nges-pulse { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@media (max-width: 980px) { .nges-hero-deco { display: none; } }

/* H2 underline: full width of the heading with gradient fade */
.nges-h2::after {
  width: 100%;
  background: linear-gradient(90deg, #ff0b3d, rgba(255,11,61,.35) 40%, transparent 95%);
}

/* Service cards: icon chip */
.nges-card-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin-bottom: 18px;
  border-radius: 12px;
  background: rgba(255,11,61,.1);
  border: 1px solid rgba(255,11,61,.4);
  color: #ff0b3d;
  box-shadow: 0 0 24px rgba(255,11,61,.18), inset 0 0 18px rgba(255,11,61,.08);
  transition: transform .22s ease, box-shadow .22s ease;
}
.nges-card-ic svg { width: 28px; height: 28px; }
.nges-card:hover .nges-card-ic {
  transform: scale(1.08) rotate(-4deg);
  box-shadow: 0 0 34px rgba(255,11,61,.45), inset 0 0 18px rgba(255,11,61,.14);
}

/* Cards: cut corner for an angular esports feel */
.nges-card {
  clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%);
  border-radius: 12px 0 12px 12px;
}

/* Giant scrolling marquee strip (injected before the CTA by JS) */
.nges-marquee {
  position: relative;
  width: 100vw;
  margin: 70px 0 0 calc(50% - 50vw);
  padding: 10px 0;
  overflow: hidden;
  border-top: 1px solid rgba(255,11,61,.25);
  border-bottom: 1px solid rgba(255,11,61,.25);
  user-select: none;
}
.nges-marquee-track {
  display: inline-flex;
  gap: 60px;
  white-space: nowrap;
  animation: nges-scroll 30s linear infinite;
  will-change: transform;
}
.nges-marquee-track span {
  font-size: clamp(54px, 8vw, 110px);
  font-weight: 900;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: .02em;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255,255,255,.14);
  display: inline-flex;
  align-items: center;
  gap: 60px;
}
.nges-marquee-track span:nth-child(even) {
  -webkit-text-stroke: 0;
  color: rgba(255,11,61,.5);
  text-shadow: 0 0 40px rgba(255,11,61,.35);
}
.nges-marquee-track span::after {
  content: "◆";
  font-size: 20px;
  -webkit-text-stroke: 0;
  color: #ff0b3d;
  text-shadow: 0 0 16px #ff0b3d;
}

/* Stats: skewed red backdrop + count-up ready */
.nges-stats {
  position: relative;
  border-color: rgba(255,11,61,.3);
  box-shadow: 0 0 50px rgba(255,11,61,.08);
}
.nges-stats::before {
  content: "";
  position: absolute;
  inset: 14px -14px auto auto;
  width: 120px;
  height: calc(100% - 28px);
  background: linear-gradient(180deg, rgba(255,11,61,.12), transparent);
  transform: skewX(-18deg);
  pointer-events: none;
}
.nges-stat strong { color: #ff0b3d; text-shadow: 0 0 34px rgba(255,11,61,.75); }
.nges-stat:nth-child(even) strong { color: #fff; }

/* Section number badges: big faded index on every h2 (injected by JS) */
.nges-h2 { padding-left: 0; }
.nges-h2 .nges-h2-index {
  position: absolute;
  left: -8px;
  top: -34px;
  font-size: 74px;
  font-weight: 900;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255,11,61,.18);
  z-index: -1;
  pointer-events: none;
}

/* CTA: angled edges */
.nges-cta {
  clip-path: polygon(0 26px, 26px 0, calc(100% - 26px) 0, 100% 26px, 100% calc(100% - 26px), calc(100% - 26px) 100%, 26px 100%, 0 calc(100% - 26px));
  border-radius: 0;
}

/* ==========================================================================
   SINGLE EVENT PAGE
   ========================================================================== */
.nges-event-hero {
  position: relative;
  background-color: #03102a;
  background-size: cover;
  background-position: center;
  padding: 40px 0 70px;
  isolation: isolate;
}
.nges-event-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(0,5,17,.82) 0%, rgba(0,5,17,.66) 45%, #000511 100%),
    radial-gradient(700px 380px at 15% 80%, rgba(255,11,61,.35), transparent 65%);
}
.nges-event-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.02) 0 1px, transparent 1px 4px);
  pointer-events: none;
}
.nges-event-hero-inner {
  display: flex;
  align-items: center;
  gap: 34px;
  margin-top: 46px;
}
.nges-event-logo {
  flex: 0 0 auto;
  width: 148px;
  height: 148px;
  border-radius: 16px;
  background: rgba(0,5,17,.65);
  border: 1px solid rgba(255,11,61,.45);
  box-shadow: 0 0 40px rgba(255,11,61,.25), 0 18px 50px rgba(0,0,0,.6);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  backdrop-filter: blur(6px);
}
.nges-event-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.nges-event-headline h1 {
  font-size: clamp(30px, 4.4vw, 52px);
  font-weight: 900;
  text-transform: uppercase;
  line-height: 1.06;
  margin: 0 0 18px;
  text-shadow: 0 4px 30px rgba(0,0,0,.8), 0 0 60px rgba(255,11,61,.3);
}
.nges-event-meta { display: flex; flex-wrap: wrap; gap: 10px; }
.nges-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(0,5,17,.6);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  padding: 8px 16px;
  backdrop-filter: blur(4px);
}
.nges-chip svg { width: 15px; height: 15px; color: #ff0b3d; }
.nges-chip--date { border-color: rgba(255,11,61,.55); color: #ff8aa1; }
@media (max-width: 700px) {
  .nges-event-hero-inner { flex-direction: column; align-items: flex-start; gap: 20px; }
  .nges-event-logo { width: 104px; height: 104px; }
}

/* Back link */
.nges-event-back {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 28px 0 8px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #8b93a7 !important;
  transition: color .2s ease, transform .2s ease;
}
.nges-event-back svg { width: 18px; height: 18px; transition: transform .2s ease; }
.nges-event-back:hover { color: #ff0b3d !important; }
.nges-event-back:hover svg { transform: translateX(-4px); }

/* Video frame */
.nges-event-video { margin: 26px 0 10px; }
.nges-event-video-frame {
  position: relative;
  border: 1px solid rgba(255,11,61,.4);
  border-radius: 14px;
  overflow: hidden;
  background: #010a1c;
  box-shadow: 0 0 60px rgba(255,11,61,.14), 0 24px 60px rgba(0,0,0,.6);
  clip-path: polygon(0 22px, 22px 0, calc(100% - 22px) 0, 100% 22px, 100% calc(100% - 22px), calc(100% - 22px) 100%, 22px 100%, 0 calc(100% - 22px));
}
.nges-event-video-frame iframe,
.nges-event-video-frame video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border: 0;
}

/* Stats reuse */
.nges-event-stats { margin: 34px 0 10px; }

/* Recap body typography */
.nges-event-body { max-width: 860px; margin: 26px 0 10px; }
.nges-event-body h2, .nges-event-body h3 {
  font-weight: 900;
  text-transform: uppercase;
  position: relative;
  margin: 40px 0 16px;
  padding-left: 18px;
}
.nges-event-body h2 { font-size: 26px; }
.nges-event-body h3 { font-size: 19px; }
.nges-event-body h2::before, .nges-event-body h3::before {
  content: "";
  position: absolute;
  left: 0; top: 4px; bottom: 4px;
  width: 4px;
  background: linear-gradient(180deg, #ff0b3d, rgba(255,11,61,.2));
  box-shadow: 0 0 14px rgba(255,11,61,.6);
}
.nges-event-body p { margin: 0 0 18px; }
.nges-event-body img { border-radius: 12px; border: 1px solid rgba(255,255,255,.08); }
.nges-event-body blockquote {
  margin: 26px 0;
  padding: 20px 24px;
  border-left: 4px solid #ff0b3d;
  background: rgba(255,11,61,.06);
  border-radius: 0 10px 10px 0;
  font-style: italic;
  color: #e6c9d0;
}
.nges-event-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 24px 0;
  font-size: 14px;
}
.nges-event-body table th {
  background: rgba(255,11,61,.12);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 12px;
  padding: 12px 14px;
  text-align: left;
  border-bottom: 2px solid #ff0b3d;
}
.nges-event-body table td {
  padding: 12px 14px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  color: #cfd5e4;
}
.nges-event-body table tr:first-child td:first-child { color: #ff0b3d; font-weight: 800; }
.nges-event-body ul { padding-left: 0; list-style: none; }
.nges-event-body ul li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 10px;
}
.nges-event-body ul li::before {
  content: "";
  position: absolute;
  left: 0; top: 9px;
  width: 8px; height: 8px;
  background: #ff0b3d;
  transform: rotate(45deg);
  box-shadow: 0 0 10px rgba(255,11,61,.7);
}

/* ==========================================================================
   EVENT BODY v2 - full width, auto photo galleries, lightbox
   ========================================================================== */
.nges-event-body { max-width: none; margin: 34px 0 10px; }
.nges-event-body > p,
.nges-event-body > h2,
.nges-event-body > h3,
.nges-event-body > ul,
.nges-event-body > ol,
.nges-event-body > blockquote,
.nges-event-body > table { max-width: 100%; }
.nges-event-body > p { font-size: 18px; line-height: 1.85; margin: 0 0 24px; }
.nges-event-body > p strong { color: #fff; }

/* Auto-built photo galleries (nges-pages.js groups consecutive images) */
.nges-gallery {
  display: grid;
  gap: 14px;
  margin: 34px 0;
  width: 100%;
}
.nges-gallery--1 { grid-template-columns: 1fr; }
.nges-gallery--2 { grid-template-columns: repeat(2, 1fr); }
.nges-gallery--3 { grid-template-columns: repeat(3, 1fr); }
.nges-gallery figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.08);
  background: #03132d;
  cursor: zoom-in;
  aspect-ratio: 16 / 10;
}
.nges-gallery--1 figure { aspect-ratio: 21 / 9; }
.nges-gallery figure.nges-tall { grid-row: span 2; aspect-ratio: auto; }
.nges-gallery figure img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  border: 0 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  transition: transform .4s ease;
}
.nges-gallery figure::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,5,17,.55));
  opacity: 0;
  transition: opacity .25s ease;
}
.nges-gallery figure::before {
  content: "+";
  position: absolute;
  right: 14px; bottom: 10px;
  z-index: 2;
  color: #fff;
  font-size: 26px;
  font-weight: 300;
  line-height: 1;
  text-shadow: 0 0 12px #ff0b3d;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .25s ease, transform .25s ease;
}
.nges-gallery figure:hover { border-color: rgba(255,11,61,.6); box-shadow: 0 12px 36px rgba(0,0,0,.55), 0 0 26px rgba(255,11,61,.16); }
.nges-gallery figure:hover img { transform: scale(1.06); }
.nges-gallery figure:hover::after, .nges-gallery figure:hover::before { opacity: 1; transform: none; }
@media (max-width: 820px) { .nges-gallery--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .nges-gallery--3, .nges-gallery--2 { grid-template-columns: 1fr; } }

/* Lightbox */
.nges-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(0,5,17,.94);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4vh 4vw;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
  cursor: zoom-out;
}
.nges-lightbox.open { opacity: 1; pointer-events: auto; }
.nges-lightbox img {
  max-width: 100%;
  max-height: 100%;
  border-radius: 10px;
  border: 1px solid rgba(255,11,61,.5);
  box-shadow: 0 0 80px rgba(255,11,61,.3), 0 30px 80px rgba(0,0,0,.8);
}
.nges-lightbox-close {
  position: absolute;
  top: 22px; right: 28px;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.3);
  color: #fff;
  background: rgba(0,5,17,.6);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: border-color .2s ease, color .2s ease;
}
.nges-lightbox-close:hover { border-color: #ff0b3d; color: #ff0b3d; }
.nges-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 50px; height: 50px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.3);
  color: #fff;
  background: rgba(0,5,17,.6);
  font-size: 22px;
  cursor: pointer;
  transition: border-color .2s ease, color .2s ease;
}
.nges-lightbox-nav:hover { border-color: #ff0b3d; color: #ff0b3d; }
.nges-lightbox-prev { left: 22px; }
.nges-lightbox-next { right: 22px; }

/* ==========================================================================
   HOMEPAGE SLIDERS - uniform card sizes for news and work marquees
   ========================================================================== */

/* News columns: every card identical, filling the slider viewport exactly */
.news-row .newsimg,
.news-row2 .newsimg,
.news-row3 .newsimg {
  position: relative;
  height: 437px;
  border-radius: 15px;
  overflow: hidden;
}
.news-row .newsimg img,
.news-row2 .newsimg img,
.news-row3 .newsimg img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
}
.news-row .news-title,
.news-row2 .news-title,
.news-row3 .news-title {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 46px 22px 20px;
  background: linear-gradient(180deg, transparent, rgba(0,5,17,.92));
}
.news-row .news-title h3,
.news-row2 .news-title h3,
.news-row3 .news-title h3 { margin: 0; }

/* Mobile news slider: same uniform crop */
.news-mobile-row .newsimg { position: relative; border-radius: 15px; overflow: hidden; aspect-ratio: 16 / 11; }
.news-mobile-row .newsimg img { width: 100% !important; height: 100% !important; object-fit: cover; }
.news-mobile-row .news-title { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 18px 16px; background: linear-gradient(180deg, transparent, rgba(0,5,17,.92)); }
.news-mobile-row .news-title h3 { margin: 0; }

/* Work marquee: every thumbnail the same height, widths stay natural */
.workrowone .workroninner img,
.workrowtwo .workroninner img {
  height: 320px !important;
  width: auto !important;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}
.workrowone .workroninner,
.workrowtwo .workroninner { cursor: pointer; }
a.worklink { display: block; }
a.worklink h3 { transition: color .2s ease; }
a.worklink:hover h3 { color: #ff0b3d !important; }

/* ==========================================================================
   HOMEPAGE TEAM - names & titles always visible (no hover reveal)
   Per team decision: member names and titles remain permanently visible.
   ========================================================================== */
.our-team .hover_content,
.our-team .team_435 .hover_content {
  opacity: 1 !important;
  padding-top: 90px !important;
  background: linear-gradient(180deg, transparent 0%, rgba(0,5,17,.55) 40%, rgba(0,5,17,.94) 100%) !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  border-radius: 0 0 15px 15px;
  pointer-events: none;
}
.our-team .hover_content h3,
.our-team .team_435 .hover_content h3 {
  margin: 0 0 4px !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.8);
}
.our-team .hover_content p,
.our-team .team_435 .hover_content p {
  margin: 0 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,.85);
}

/* Keep the alt/hover portrait swap on hover, just not the text reveal */
.our-team .wrapper-team:hover .hover_content { opacity: 1 !important; }

/* ==========================================================================
   HOMEPAGE SHORTCODE SECTIONS - press strip
   ========================================================================== */
.nges-press-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 20px;
}
.nges-press-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 26px;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #cfd5e4 !important;
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  transition: all .2s ease;
}
.nges-press-item:hover {
  color: #fff !important;
  border-color: rgba(255,11,61,.6);
  background: rgba(255,11,61,.08);
  transform: translateY(-3px);
  box-shadow: 0 10px 26px rgba(255,11,61,.16);
}

/* When shortcode sections sit on an Elementor page, strip the page's
   own bottom padding so blocks stack tightly */
.elementor .nges-page { padding-bottom: 0; background: transparent; }

/* ==========================================================================
   SINGLE BLOG / NEWS POST (single.php)
   ========================================================================== */
.nges-single-post .nges-event-hero-inner { align-items: flex-start; }
.nges-single-post .nges-chip { text-decoration: none; }
a.nges-chip:hover { border-color: rgba(255,11,61,.55); color: #ff8aa1; }

/* First paragraph lead-in */
.nges-single-post .nges-event-body > p:first-of-type {
  font-size: 20px;
  line-height: 1.75;
  color: #e6e9f0;
}

/* Tags */
.nges-post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 30px 0 4px;
}
.nges-post-tags span, .nges-post-tags a {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #9aa2b6;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 999px;
  padding: 7px 15px;
  text-decoration: none;
}
.nges-post-tags a:hover { color: #ff0b3d; border-color: rgba(255,11,61,.5); }

.nges-page-links { margin: 24px 0; display: flex; gap: 8px; }
.nges-page-links a, .nges-page-links > span {
  padding: 8px 14px; border: 1px solid rgba(255,255,255,.12); border-radius: 6px; color: #cfd5e4;
}

/* ==========================================================================
   HOMEPAGE / ABOUT "OUR TEAM" slider - wider cards, aligned to section edges
   Cards were pinched by side margins and didn't line up with the heading or
   the buttons below. Use a small gutter via slick-slide padding + negative
   track margin so the outer cards sit flush with the container.
   ========================================================================== */
.our-team .slick-list { margin: 0 -13px; }
.our-team .slick-track { display: flex; align-items: stretch; }
.our-team .teammain.slick-slide { padding: 0 13px; box-sizing: border-box; height: auto; }
.our-team .wrapper-team { margin: 0 !important; height: 100%; }
.our-team .team-img-wrapper,
.our-team .team-img-wrapper img { width: 100%; }
/* keep all cards level and equal so they align with the heading and buttons */
.our-team .teammain.slick-slide.slick-active:nth-child(even) .wrapper-team { margin-top: 0 !important; }
