/* =========================================================
   GQC — Global Quest Competition
   Shared design system (sits on top of the compiled Tailwind sheet)
   Brand red: #a00e15 — replaces the previous "red-ldf" hue
   ========================================================= */

:root {
  --gqc-red: #a00e15;
  --gqc-red-deep: #7a0a10;
  --gqc-ink: #111111;
  --gqc-ink-soft: #2a2a2a;
  --gqc-paper: #ffffff;
  --gqc-cream: #f5f1ea;
  --gqc-mute: #6a6a6a;
  --gqc-rule: #111111;
  --gqc-rule-soft: rgba(17, 17, 17, 0.18);
}

/* --- Override the existing "red-ldf" utility to the GQC brand red --- */
.bg-red-ldf            { background-color: var(--gqc-red) !important; }
.text-red-ldf          { color: var(--gqc-red) !important; }
.border-red-ldf        { border-color: var(--gqc-red) !important; }
.hover\:bg-red-ldf:hover    { background-color: var(--gqc-red) !important; }
.hover\:text-red-ldf:hover  { color: var(--gqc-red) !important; }
.disabled\:bg-red-ldf:disabled { background-color: var(--gqc-red) !important; }
.group:hover .group-hover\:text-red-ldf { color: var(--gqc-red) !important; }

/* --- Typography lock-in --- */
body.site {
  font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft Yahei", sans-serif;
  color: var(--gqc-ink);
  background: var(--gqc-paper);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a { text-underline-offset: 3px; }
a:hover { color: var(--gqc-red); }

/* --- GQC editorial helpers --- */
.gqc-eyebrow {
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gqc-ink);
}
.gqc-eyebrow--red { color: var(--gqc-red); }
.gqc-eyebrow--inverse { color: #fff; }

.gqc-display {
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 0.92;
}

.gqc-rule { border-top: 1px solid var(--gqc-rule); }
.gqc-rule-soft { border-top: 1px solid var(--gqc-rule-soft); }

.gqc-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border: 1px solid var(--gqc-ink);
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
}
.gqc-chip--red {
  border-color: var(--gqc-red);
  color: var(--gqc-red);
}
.gqc-chip--filled {
  background: var(--gqc-red);
  border-color: var(--gqc-red);
  color: #fff;
}
.gqc-chip .dot {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--gqc-red);
}
.gqc-chip--filled .dot { background: #fff; }

/* --- Hero ticker / running list at the top of pages --- */
.gqc-ticker {
  display: flex;
  gap: 2.4rem;
  padding: 14px 0;
  border-top: 1px solid var(--gqc-ink);
  border-bottom: 1px solid var(--gqc-ink);
  overflow: hidden;
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  white-space: nowrap;
}
.gqc-ticker span { display: inline-flex; align-items: center; gap: 10px; }
.gqc-ticker span::before {
  content: "";
  width: 6px; height: 6px;
  background: var(--gqc-red);
  border-radius: 50%;
}

/* --- Hero block, LDF-style oversized title --- */
.gqc-hero {
  padding: 4vw 1.6vw 2.4vw;
}
.gqc-hero .gqc-title {
  font-size: clamp(56px, 11vw, 220px);
  line-height: 0.9;
  letter-spacing: -0.04em;
  font-weight: 700;
}
.gqc-hero .gqc-title .red { color: var(--gqc-red); }
.gqc-hero .gqc-sub {
  margin-top: 1.6vw;
  font-size: clamp(18px, 1.5vw, 28px);
  line-height: 1.3;
  max-width: 56ch;
}

/* --- City "edition" cards --- */
.gqc-cities {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.6vw;
}
@media (max-width: 768px) {
  .gqc-cities { grid-template-columns: 1fr; }
}
.gqc-city {
  position: relative;
  border: 1px solid var(--gqc-ink);
  padding: 28px 26px 24px;
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 280px;
  transition: background 200ms ease, color 200ms ease, transform 200ms ease;
}
.gqc-city:hover { background: var(--gqc-red); color: #fff; transform: translateY(-2px); }
.gqc-city:hover .gqc-city__meta,
.gqc-city:hover .gqc-city__cta { color: #fff; }
.gqc-city:hover .gqc-city__cta::after { background: #fff; }
.gqc-city__edition {
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 700;
}
.gqc-city__name {
  font-size: clamp(40px, 4.4vw, 84px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  font-weight: 700;
  margin-top: 8px;
}
.gqc-city__meta {
  margin-top: 28px;
  font-size: 15px;
  line-height: 1.4;
  color: var(--gqc-ink-soft);
}
.gqc-city__cta {
  display: inline-flex;
  align-items: center;
  margin-top: 22px;
  font-size: 14px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
}
.gqc-city__cta::after {
  content: "";
  display: inline-block;
  margin-left: 10px;
  width: 28px; height: 1px;
  background: var(--gqc-ink);
}

/* --- Feature row (numbered, like LDF programme strands) --- */
.gqc-features { border-top: 1px solid var(--gqc-ink); }
.gqc-feature {
  display: grid;
  grid-template-columns: 80px 1fr 1.4fr;
  gap: 2vw;
  padding: 2.2vw 1.6vw;
  border-bottom: 1px solid var(--gqc-ink);
  align-items: start;
}
@media (max-width: 768px) {
  .gqc-feature { grid-template-columns: 1fr; gap: 12px; padding: 7vw 4.5vw; }
}
.gqc-feature__num {
  font-weight: 700;
  font-size: clamp(20px, 1.4vw, 22px);
  letter-spacing: -0.02em;
}
.gqc-feature__title {
  font-weight: 700;
  font-size: clamp(28px, 3.2vw, 56px);
  line-height: 1;
  letter-spacing: -0.025em;
}
.gqc-feature__body {
  font-size: clamp(15px, 1.05vw, 19px);
  line-height: 1.55;
  color: var(--gqc-ink-soft);
  max-width: 60ch;
}
.gqc-feature__body p + p { margin-top: 0.9em; }

/* --- Stat strip --- */
.gqc-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--gqc-ink);
  border-bottom: 1px solid var(--gqc-ink);
}
@media (max-width: 768px) {
  .gqc-stats { grid-template-columns: repeat(2, 1fr); }
}
.gqc-stat {
  padding: 28px 24px;
  border-right: 1px solid var(--gqc-ink);
}
.gqc-stat:last-child { border-right: 0; }
.gqc-stat__num {
  font-size: clamp(40px, 4.4vw, 84px);
  line-height: 1;
  font-weight: 700;
  letter-spacing: -0.04em;
  color: var(--gqc-red);
}
.gqc-stat__label {
  margin-top: 10px;
  font-size: 14px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
}

/* --- CTA button --- */
.gqc-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 16px 24px;
  background: var(--gqc-ink);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 13px;
  border: 1px solid var(--gqc-ink);
  transition: background 150ms, color 150ms;
}
.gqc-btn:hover { background: var(--gqc-red); color: #fff; border-color: var(--gqc-red); }
.gqc-btn--ghost { background: transparent; color: var(--gqc-ink); }
.gqc-btn--ghost:hover { background: var(--gqc-ink); color: #fff; }
.gqc-btn--red { background: var(--gqc-red); border-color: var(--gqc-red); }
.gqc-btn--red:hover { background: var(--gqc-ink); border-color: var(--gqc-ink); }
.gqc-btn .arrow {
  display: inline-block;
  width: 18px; height: 1px; background: currentColor; position: relative;
}
.gqc-btn .arrow::after {
  content: ""; position: absolute; right: 0; top: -3px;
  width: 7px; height: 7px; border-right: 1px solid currentColor; border-top: 1px solid currentColor;
  transform: rotate(45deg);
}

/* --- Programme list (used on Events / Programme) --- */
.gqc-prog { border-top: 1px solid var(--gqc-ink); }
.gqc-prog__row {
  display: grid;
  grid-template-columns: 120px 1.4fr 1fr 0.6fr 100px;
  gap: 16px;
  align-items: baseline;
  padding: 22px 0;
  border-bottom: 1px solid var(--gqc-rule-soft);
}
@media (max-width: 768px) {
  .gqc-prog__row { grid-template-columns: 1fr; gap: 4px; padding: 18px 0; }
}
.gqc-prog__date { font-weight: 700; letter-spacing: -0.01em; font-size: 18px; }
.gqc-prog__title { font-weight: 700; font-size: 22px; letter-spacing: -0.02em; }
.gqc-prog__loc, .gqc-prog__type { color: var(--gqc-ink-soft); font-size: 15px; }
.gqc-prog__cta { font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: 0.14em; text-align: right; }

/* --- Pull quote --- */
.gqc-quote {
  font-size: clamp(28px, 3.6vw, 60px);
  line-height: 1.08;
  letter-spacing: -0.025em;
  font-weight: 500;
  padding: 5vw 1.6vw;
}
.gqc-quote .red { color: var(--gqc-red); }
.gqc-quote cite {
  display: block;
  margin-top: 28px;
  font-size: 14px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-style: normal;
  font-weight: 700;
  color: var(--gqc-ink-soft);
}

/* --- Definition list / criteria table --- */
.gqc-deflist { border-top: 1px solid var(--gqc-ink); }
.gqc-deflist > div {
  display: grid;
  grid-template-columns: 1fr 1.4fr 100px;
  gap: 2vw;
  padding: 22px 0;
  border-bottom: 1px solid var(--gqc-rule-soft);
}
@media (max-width: 768px) {
  .gqc-deflist > div { grid-template-columns: 1fr; gap: 6px; padding: 18px 0; }
}
.gqc-deflist dt { font-weight: 700; font-size: 22px; letter-spacing: -0.02em; }
.gqc-deflist dd { color: var(--gqc-ink-soft); font-size: 16px; line-height: 1.55; margin: 0; }
.gqc-deflist .gqc-weight {
  font-weight: 700;
  color: var(--gqc-red);
  font-size: 18px;
  letter-spacing: -0.01em;
  text-align: right;
}

/* --- Marquee headline --- */
.gqc-marquee {
  border-top: 1px solid var(--gqc-ink);
  border-bottom: 1px solid var(--gqc-ink);
  overflow: hidden;
  padding: 18px 0;
  white-space: nowrap;
  font-weight: 700;
  font-size: clamp(36px, 5vw, 80px);
  letter-spacing: -0.02em;
  line-height: 1;
  text-transform: uppercase;
}
.gqc-marquee span { padding: 0 32px; }
.gqc-marquee .red { color: var(--gqc-red); }

/* --- Card grid (people / partners) --- */
.gqc-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.6vw;
}
@media (max-width: 1024px) { .gqc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .gqc-grid { grid-template-columns: 1fr; } }
.gqc-card {
  border: 1px solid var(--gqc-ink);
  padding: 22px;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.gqc-card__role { font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; color: var(--gqc-red); }
.gqc-card__name { font-size: 24px; line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; }
.gqc-card__org  { font-size: 14px; color: var(--gqc-ink-soft); }
.gqc-card__bio  { margin-top: 10px; font-size: 14px; line-height: 1.5; color: var(--gqc-ink-soft); }

/* --- Two-column long-form --- */
.gqc-prose {
  font-size: clamp(16px, 1.05vw, 19px);
  line-height: 1.6;
  color: var(--gqc-ink-soft);
}
.gqc-prose h2 {
  font-size: clamp(28px, 2.6vw, 48px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-weight: 700;
  color: var(--gqc-ink);
  margin: 1.6em 0 0.5em;
}
.gqc-prose h3 {
  font-size: clamp(20px, 1.6vw, 28px);
  font-weight: 700;
  color: var(--gqc-ink);
  margin: 1.4em 0 0.4em;
}
.gqc-prose p + p { margin-top: 1em; }
.gqc-prose ul { padding-left: 1.2em; margin-top: 0.6em; }
.gqc-prose li { margin: 0.2em 0; }
.gqc-prose a { color: var(--gqc-red); text-decoration: underline; }

/* --- Footer red strip — keep existing markup, tighten layout --- */
.gqc-footer-strip { background: var(--gqc-red); color: #fff; }

/* --- Master-logo lockup (hero / section dividers) --- */
.gqc-lockup {
  display: block;
  width: 100%;
  max-width: 520px;
}

/* --- Misc helpers --- */
.gqc-mono { font-family: "JetBrains Mono", "SFMono-Regular", ui-monospace, Menlo, monospace; }
.gqc-tabular { font-variant-numeric: tabular-nums; }
.gqc-divider-x { height: 1px; background: var(--gqc-ink); width: 100%; }

/* --- Slight nav refinements --- */
.menu a { transition: color 150ms ease; }
.menu a:hover { color: var(--gqc-red); }
