/* =========================================================================
   GFTEAM APEX — Events / direct-response event landing page
   Loads AFTER styles.css. Deliberate deviation from the B&W system:
   one red conversion color, used ONLY for CTAs + scarcity. Bigger, darker,
   easier-to-read text than the site default. One goal: the registration click.
   ========================================================================= */

:root {
  --dr-red:        #E11D2E;
  --dr-red-deep:   #B00E1D;
  --dr-red-text:   #C8102E; /* darker red for text on white */
  --dr-red-glow:   rgba(225, 29, 46, 0.45);
  /* readability overrides (site body is 300-weight #555 — too light for DR) */
  --dr-body:       #2B2B2B;
}

/* ------------------------------------------------------------- RED CTA */
.btn--red {
  background: var(--dr-red); color: #fff;
  box-shadow: inset 0 0 0 1px var(--dr-red);
  font-size: 15px; font-weight: 600; letter-spacing: 0.12em;
  padding: 21px 40px;
}
.btn--red:hover { background: var(--dr-red-deep); box-shadow: inset 0 0 0 1px var(--dr-red-deep); color: #fff; }
.btn--red.btn--xl { padding: 25px 54px; font-size: 16px; }

/* attention ring — respects reduced motion via the global override */
.btn--pulse { animation: red-pulse 2.6s var(--ease) infinite; }
@keyframes red-pulse {
  0%   { box-shadow: inset 0 0 0 1px var(--dr-red), 0 0 0 0 var(--dr-red-glow); }
  70%  { box-shadow: inset 0 0 0 1px var(--dr-red), 0 0 0 18px rgba(225, 29, 46, 0); }
  100% { box-shadow: inset 0 0 0 1px var(--dr-red), 0 0 0 0 rgba(225, 29, 46, 0); }
}

/* microcopy under a CTA */
.cta-micro {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px;
  font-family: var(--font-heading); font-weight: 500; font-size: 12px;
  text-transform: uppercase; letter-spacing: 0.16em;
}
.cta-micro--light { color: rgba(255,255,255,.85); }
.cta-micro--dark { color: var(--dr-body); }
.cta-micro__item { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.cta-micro__check { color: var(--dr-red); font-weight: 700; }

/* nav CTA on this page is the registration link — always red, both nav states */
.nav__cta--red {
  background: var(--dr-red); color: #fff;
  box-shadow: inset 0 0 0 1px var(--dr-red);
}
.nav__cta--red:hover { background: var(--dr-red-deep); color: #fff; box-shadow: inset 0 0 0 1px var(--dr-red-deep); }
.nav--scrolled .nav__cta--red { color: #fff; box-shadow: inset 0 0 0 1px var(--dr-red); }
.nav--scrolled .nav__cta--red:hover { background: var(--dr-red-deep); color: #fff; }

/* ============================================================ HERO */
.ev-hero {
  position: relative; min-height: 100vh; min-height: 100dvh;
  display: flex; align-items: center; overflow: hidden; background: #050505;
}
.ev-hero__bg { position: absolute; inset: 0; z-index: 0; }
.ev-hero__bg-img {
  width: 100%; height: 100%; object-fit: cover; object-position: 74% 12%;
  filter: grayscale(1) contrast(1.05);
}
.ev-hero__overlay {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(95deg, rgba(0,0,0,0.97) 0%, rgba(0,0,0,0.9) 32%, rgba(0,0,0,0.55) 62%, rgba(0,0,0,0.3) 100%),
    linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0) 34%);
}
.ev-hero__inner {
  position: relative; z-index: 2; color: #fff;
  padding-top: 118px; padding-bottom: 56px; max-width: 980px;
}

/* sized so each phrase holds one line and the CTA stays above the fold */
.ev-hero__title {
  font-family: var(--font-display); font-weight: 400; text-transform: uppercase;
  font-size: clamp(40px, 6vw, 84px); line-height: 0.9; letter-spacing: 0.01em;
  margin: 14px 0 20px;
}
.ev-hero__title span { display: block; }
.ev-hero__title-claim { color: var(--dr-red); }

/* date / time chips */
.ev-hero__meta { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.ev-chip {
  display: inline-flex; align-items: center; gap: 10px;
  border: 1px solid rgba(255,255,255,.4); padding: 10px 18px;
  font-family: var(--font-heading); font-weight: 500; font-size: 13px;
  text-transform: uppercase; letter-spacing: 0.14em; color: #fff; white-space: nowrap;
}
.ev-chip--solid { background: #fff; color: #000; border-color: #fff; font-weight: 600; }
.ev-chip__dot { width: 6px; height: 6px; background: currentColor; flex: none; }

.ev-hero__lead {
  max-width: 60ch; color: rgba(255,255,255,.94);
  font-size: clamp(16px, 1.8vw, 19px); line-height: 1.65; font-weight: 400;
  margin-bottom: var(--s-3);
}
.ev-hero__lead strong { font-weight: 600; color: #fff; }

.ev-hero__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-bottom: 20px; }

/* scarcity pill */
.ev-scarcity {
  display: inline-flex; align-items: center; gap: 12px;
  border: 1px solid var(--dr-red); padding: 12px 20px;
  font-family: var(--font-heading); font-weight: 500; font-size: 13px;
  text-transform: uppercase; letter-spacing: 0.14em; color: #fff;
}
.ev-scarcity__dot { width: 8px; height: 8px; background: var(--dr-red); flex: none; animation: pulse-dot 2.4s var(--ease) infinite; }
.ev-scarcity strong { color: var(--dr-red); font-weight: 700; }

/* ============================================================ COUNTDOWN STRIP */
.ev-count {
  background: #000; color: #fff; border-top: 1px solid rgba(255,255,255,.14);
  padding-block: clamp(28px, 4vw, 44px);
}
.ev-count__grid {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--s-3);
}
.ev-count__label {
  font-family: var(--font-heading); font-weight: 500; font-size: 13px;
  text-transform: uppercase; letter-spacing: 0.22em; color: rgba(255,255,255,.65);
}
.ev-count__timer { display: flex; align-items: baseline; gap: clamp(14px, 2.5vw, 30px); }
.ev-count__unit { text-align: center; }
.ev-count__num {
  display: block; font-family: var(--font-display); font-weight: 400;
  font-size: clamp(44px, 5.5vw, 68px); line-height: 1; color: #fff;
  font-variant-numeric: tabular-nums; min-width: 1.6ch;
}
.ev-count__unit-label {
  display: block; margin-top: 8px; font-family: var(--font-heading); font-weight: 500;
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.2em; color: rgba(255,255,255,.5);
}
.ev-count__spots { display: flex; align-items: center; gap: 16px; }
.ev-count__spots-num {
  font-family: var(--font-display); font-size: clamp(44px, 5.5vw, 68px); line-height: 1;
  color: var(--dr-red);
}
.ev-count__spots-label {
  font-family: var(--font-heading); font-weight: 500; font-size: 12px;
  text-transform: uppercase; letter-spacing: 0.18em; color: rgba(255,255,255,.75);
  line-height: 1.6; max-width: 22ch;
}

/* ============================================================ POSTER */
.ev-poster { position: relative; z-index: 1; margin: 0 auto var(--s-6); max-width: 1080px; }
.ev-poster__img { width: 100%; height: auto; border: 1px solid var(--border); filter: grayscale(1) contrast(1.04); }
.ev-poster__tag {
  position: absolute; left: 0; bottom: 0; background: #000; color: #fff;
  font-family: var(--font-heading); font-weight: 500; font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.18em; padding: 10px 18px;
}

/* ============================================================ LINEUP */
.ev-lineup__grid {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px;
}
.ev-card { position: relative; background: var(--surface); border: 1px solid var(--border); padding: clamp(26px, 3vw, 40px); }
.ev-card__num { font-family: var(--font-display); font-size: 44px; line-height: 1; color: var(--ghost); display: block; margin-bottom: var(--s-2); }
.ev-card__rank {
  font-family: var(--font-heading); font-weight: 500; font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.22em; color: var(--dr-red-text);
  display: block; margin-bottom: 8px;
}
.ev-card__name {
  font-family: var(--font-display); font-weight: 400; text-transform: uppercase;
  font-size: clamp(28px, 2.6vw, 38px); line-height: 0.95; letter-spacing: 0.02em;
}
.ev-card__role { margin-top: 12px; color: var(--text-secondary); font-size: 14.5px; font-weight: 400; line-height: 1.6; }

/* combined honors strip */
.ev-honors {
  position: relative; z-index: 1; margin-top: var(--s-4);
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
  padding: 20px 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 14px 22px;
}
.ev-honors__item { font-family: var(--font-heading); font-weight: 500; font-size: 13px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--text-primary); }
.ev-honors__sep { color: var(--dr-red); }

/* the kicker line */
.ev-kicker {
  position: relative; z-index: 1;
  margin: var(--s-5) auto 0; max-width: 44ch; text-align: center;
  font-family: var(--font-body); font-weight: 400;
  font-size: clamp(19px, 2.4vw, 26px); line-height: 1.55; color: var(--dr-body);
}
.ev-kicker strong { font-weight: 700; color: #000; }
.ev-kicker .ev-free { color: var(--dr-red-text); font-weight: 700; }

.ev-cta-block { position: relative; z-index: 1; margin-top: var(--s-4); display: flex; flex-direction: column; align-items: center; gap: var(--s-2); text-align: center; }

/* ============================================================ NO EXCUSES */
.ev-excuses { background: #000; color: #fff; }
.ev-excuses .ghost-num { color: rgba(255,255,255,.055); }
.ev-excuses .section__lead { color: rgba(255,255,255,.85); font-size: 18px; font-weight: 400; }
.ev-excuses__list { position: relative; z-index: 1; display: grid; gap: clamp(18px, 2.5vw, 28px); margin-block: var(--s-5); }
.ev-excuse {
  font-family: var(--font-display); font-weight: 400; text-transform: uppercase;
  font-size: clamp(32px, 5.4vw, 66px); line-height: 1; letter-spacing: 0.015em;
}
.ev-excuse__word { position: relative; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.85); padding-inline: 2px; }
.ev-excuse__strike {
  position: absolute; left: -2px; right: -2px; top: 54%; height: 4px;
  background: var(--dr-red); transform: scaleX(0); transform-origin: left center;
  transition: transform 0.7s var(--ease) 0.35s;
}
.ev-excuse.is-visible .ev-excuse__strike { transform: scaleX(1); }

.ev-excuses__close {
  max-width: 56ch; font-size: clamp(18px, 2.1vw, 22px); line-height: 1.65;
  font-weight: 400; color: rgba(255,255,255,.95);
}
.ev-excuses__close strong { color: #fff; font-weight: 600; }

/* ============================================================ DETAILS */
.ev-details__grid {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 2px;
}
.ev-panel { background: var(--surface); border: 1px solid var(--border); padding: clamp(30px, 4vw, 52px); }
.ev-panel__title {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--font-heading); font-weight: 600; font-size: 17px;
  text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: var(--s-4);
}
.ev-panel__marker { width: 8px; height: 8px; background: var(--dr-red); flex: none; }

/* timeline rows */
.ev-time { display: grid; grid-template-columns: auto 1fr; gap: 18px 24px; align-items: baseline; }
.ev-time + .ev-time { margin-top: var(--s-4); padding-top: var(--s-4); border-top: 1px solid var(--border); }
.ev-time__clock { font-family: var(--font-display); font-size: clamp(34px, 3.4vw, 48px); line-height: 1; letter-spacing: 0.02em; white-space: nowrap; }
.ev-time__what { font-family: var(--font-heading); font-weight: 600; font-size: 15px; text-transform: uppercase; letter-spacing: 0.1em; }
.ev-time__note { grid-column: 2; color: var(--text-secondary); font-size: 15px; font-weight: 400; line-height: 1.65; margin-top: 4px; }

/* fact list */
.ev-facts { display: grid; gap: 0; }
.ev-fact { display: grid; grid-template-columns: 118px 1fr; gap: 16px; padding: 15px 0; border-bottom: 1px solid var(--border); align-items: baseline; }
.ev-fact:last-child { border-bottom: 0; }
.ev-fact__label { font-family: var(--font-heading); font-weight: 500; font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--text-muted); }
.ev-fact__value { font-size: 15.5px; font-weight: 400; color: var(--dr-body); line-height: 1.55; }
.ev-fact__value strong { font-weight: 700; color: #000; }
.ev-fact__value--red { color: var(--dr-red-text); font-weight: 600; }
.ev-fact__value a { text-decoration: underline; text-underline-offset: 3px; }
.ev-fact__value a:hover { color: #000; }

/* ============================================================ FINAL CTA */
.ev-final { background: #000; color: #fff; text-align: center; }
.ev-final__inner { display: flex; flex-direction: column; align-items: center; }
.ev-final__title {
  font-family: var(--font-display); font-weight: 400; text-transform: uppercase;
  font-size: clamp(52px, 9.4vw, 112px); line-height: 0.9; letter-spacing: 0.02em; margin: var(--s-3) 0;
}
.ev-final__title span { display: block; }
.ev-final__title-outline { color: transparent; -webkit-text-stroke: 1px var(--dr-red); }
.ev-final__sub {
  max-width: 44ch; font-size: clamp(17px, 2vw, 20px); font-weight: 400;
  line-height: 1.7; color: rgba(255,255,255,.92); margin-bottom: var(--s-4);
}
.ev-final__note {
  margin-top: var(--s-4);
  font-family: var(--font-heading); font-weight: 400; font-size: 12px;
  text-transform: uppercase; letter-spacing: 0.2em; color: rgba(255,255,255,.55);
}

/* ============================================================ STICKY MOBILE CTA */
.ev-sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1200;
  display: none; padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: rgba(5,5,5,.94); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-top: 1px solid rgba(255,255,255,.16);
  transform: translateY(110%); transition: transform var(--dur) var(--ease);
}
.ev-sticky--show { transform: translateY(0); }
.ev-sticky__btn { width: 100%; padding: 17px 20px; font-size: 14px; }
.ev-sticky__note {
  margin-top: 7px; text-align: center;
  font-family: var(--font-heading); font-weight: 500; font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.16em; color: rgba(255,255,255,.7);
}
.ev-sticky__note strong { color: var(--dr-red); }

/* ============================================================ RESPONSIVE */
@media (max-width: 1024px) {
  .ev-lineup__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  /* faces become texture behind a heavier overlay so the copy stays king */
  .ev-hero__bg-img { object-position: 62% 0%; }
  .ev-hero__overlay {
    background:
      linear-gradient(180deg, rgba(0,0,0,0.94) 0%, rgba(0,0,0,0.82) 55%, rgba(0,0,0,0.94) 100%);
  }
  .ev-hero__inner { padding-top: 108px; }
  .ev-count__grid { flex-direction: column; align-items: flex-start; gap: var(--s-3); }
  .ev-details__grid { grid-template-columns: 1fr; }
  .ev-excuse__strike { height: 3px; }
}

@media (max-width: 768px) {
  .ev-sticky { display: block; }
}

@media (max-width: 480px) {
  /* keep each headline phrase on its own single line */
  .ev-hero__title { font-size: clamp(28px, 8.8vw, 38px); }
  .ev-hero__actions .btn, .ev-cta-block .btn, .ev-final .btn { width: 100%; }
  .ev-hero__meta { gap: 8px; }
  .ev-chip { padding: 9px 14px; font-size: 11.5px; }
  .ev-lineup__grid { grid-template-columns: 1fr; }
  .ev-fact { grid-template-columns: 1fr; gap: 4px; }
}

/* ============================================================ REDUCED MOTION */
@media (prefers-reduced-motion: reduce) {
  .btn--pulse, .ev-scarcity__dot { animation: none; }
  .ev-excuse__strike { transform: scaleX(1); transition: none; }
  .ev-sticky { transition: none; }
}
