/*
 * G4G v5.98 - human editorial polish.
 * Typography follows Monzo's published two-role approach:
 * Oldschool Grotesk for expressive display type, Monzo Sans for functional text.
 * The proprietary cuts are only referenced by family name; Hanken Grotesk and Inter
 * remain the open web fallbacks loaded by the theme.
 */

:root {
  --g4g-display: "Oldschool Grotesk", "Hanken Grotesk", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --g4g-text: "Monzo Sans", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --g4g-reading-width: 68ch;
  --g4g-section-space: clamp(74px, 7.2vw, 110px);
  --g4g-section-gap: clamp(32px, 4vw, 54px);
}

html {
  text-rendering: optimizeLegibility;
}

body,
button,
input,
textarea,
select {
  font-family: var(--g4g-text);
}

body {
  line-height: 1.58;
}

h1, h2, h3, h4, h5, h6,
.hero h1,
.page-hero h1,
.events-hero h1,
.gala-page-hero h1,
.scrapbook-hero h1,
.article-archive-hero h1,
.player-portal-hero h1,
.form-intro h1,
.jgc-page h1,
.jgc-page h2,
.g4gr h1,
.g4gr h2,
.g4gr h3,
.programme-page-content h2,
.programme-page-back-copy h2 {
  font-family: var(--g4g-display) !important;
  text-wrap: balance;
}

p,
li,
figcaption,
blockquote,
label,
input,
textarea,
select,
button,
nav,
.main-nav,
.footer-links,
.footer-title,
.announcement,
.section-kicker,
.eyebrow,
.jgc-eyebrow,
.g4gr-kicker,
.awards27-kicker {
  font-family: var(--g4g-text) !important;
}

p,
li,
figcaption {
  text-wrap: pretty;
}

/* Remove the repeated little square/line device that was making every section feel templated. */
.section-kicker::before,
.eyebrow::before,
.jgc-eyebrow::before,
.g4gr-kicker::before,
.awards27-kicker::before {
  display: none !important;
  content: none !important;
}

.section-kicker,
.eyebrow,
.jgc-eyebrow,
.g4gr .g4gr-kicker,
.awards27-kicker {
  display: inline-block !important;
  gap: 0 !important;
  font-size: clamp(.78rem, .73rem + .12vw, .86rem) !important;
  font-weight: 750 !important;
  line-height: 1.3 !important;
  letter-spacing: .012em !important;
  text-transform: none !important;
}

/* Keep the main campaign slogan punchy; let the rest of the site read like editorial design. */
body:not(.home) .page-hero h1,
body:not(.home) .events-hero h1,
body:not(.home) .gala-page-hero h1,
body:not(.home) .scrapbook-hero h1,
body:not(.home) .form-intro h1,
body:not(.home) .player-portal-hero h1,
body:not(.home) .article-archive-hero h1,
.jgc-hero h1 {
  text-transform: none !important;
  letter-spacing: -.045em !important;
}

.section {
  padding-block: var(--g4g-section-space);
}

.section-head {
  gap: clamp(26px, 4vw, 64px);
  margin-bottom: var(--g4g-section-gap);
}

.section-head h2,
.feature-copy h2,
.events-copy h2,
.match-main h2,
.footer-cta h2,
.scrapbook-intro h2,
.article-related-head h2,
.player-portal-intro h2,
.player-portal-feature-card h2,
.player-portal-citylink-copy h2,
.player-portal-checklist-card h2,
.player-portal-signin-copy h2 {
  letter-spacing: -.04em !important;
  line-height: .98 !important;
}

.section-intro,
.section-side,
.hero-copy,
.page-hero-inner > p,
.events-hero-grid p,
.scrapbook-hero-inner > p,
.awards27-hero-copy > p,
.article-single-content,
.jgc-prose,
.g4gr-heading > p {
  line-height: 1.62;
}

.section-intro,
.section-side,
.hero-copy,
.page-hero-inner > p,
.events-hero-grid p,
.scrapbook-hero-inner > p,
.awards27-hero-copy > p {
  max-width: min(var(--g4g-reading-width), 100%);
}

/* Small labels should feel written, not stamped out by a template. */
.footer-title,
.event-label,
.event-ticket span,
.g4gr-results span,
.g4gr-team figcaption > span,
.jgc-source-grid span,
.jgc-closing span,
.programme-mini-cover span,
.programme-mini-locked span {
  letter-spacing: .025em !important;
  text-transform: none !important;
  font-weight: 750 !important;
}

.footer-title {
  font-size: .8rem !important;
  margin-bottom: 17px;
}

.main-nav a,
.footer-links a,
.text-link,
.g4g-btn,
.awards27-button,
.jgc-button,
.g4gr-button {
  letter-spacing: -.005em;
}

.main-nav a {
  font-weight: 700;
}

.g4g-btn,
.awards27-button,
.jgc-button,
.g4gr-button {
  font-weight: 750;
}

/* Give copy a little more breathing room without creating giant AI-looking gaps. */
.section-head > :last-child,
.section-side,
.scrapbook-intro > p,
.g4gr-heading > p {
  align-self: end;
}

.article-single-content > h2,
.article-single-content > h3 {
  margin-top: 1.48em;
  margin-bottom: .5em;
}

.article-single-content > p {
  margin-bottom: 1.02em;
}

.jgc-page,
.g4gr {
  font-family: var(--g4g-text) !important;
}

.jgc-page h1,
.jgc-page h2,
.g4gr h1,
.g4gr h2,
.g4gr h3 {
  letter-spacing: -.04em !important;
}

/* Monzo-style readability: no forced tracking on ordinary interface copy. */
.announcement,
.footer-bottom,
.article-card-meta,
.article-single-meta,
.player-portal-code-grid,
.match-2027-status-card,
.scrapbook-upload-form,
.contact-form {
  letter-spacing: normal;
}

@media (max-width: 900px) {
  :root {
    --g4g-section-space: clamp(64px, 10vw, 88px);
    --g4g-section-gap: 34px;
  }

  .section-head {
    gap: 22px;
  }
}

@media (max-width: 620px) {
  :root {
    --g4g-section-space: 62px;
  }

  .section-kicker,
  .eyebrow,
  .jgc-eyebrow,
  .g4gr .g4gr-kicker,
  .awards27-kicker {
    font-size: .8rem !important;
  }

  .section-head h2,
  .feature-copy h2,
  .events-copy h2,
  .match-main h2,
  .footer-cta h2,
  .scrapbook-intro h2 {
    line-height: 1 !important;
  }
}

/* v5.99 - selective chunky emphasis.
   Keep body copy calm; give the important moments more physical weight. */
.g4gr-hero-title,
.hero h1,
.page-hero h1,
.events-hero h1,
.gala-page-hero h1,
.scrapbook-hero h1,
.article-archive-hero h1,
.player-portal-hero h1,
.match-2027-hero h1,
.jgc-hero h1 {
  font-weight: 900 !important;
}

/* Homepage: a little more impact without swallowing the photography. */
.g4gr-hero-title {
  font-size: clamp(52px, 5.75vw, 90px) !important;
  line-height: .94 !important;
  letter-spacing: -.052em !important;
}
.g4gr-hero-return {
  font-weight: 900 !important;
  letter-spacing: -.022em !important;
}
.g4gr-hero-intro {
  font-weight: 520;
}

/* Major section headings should feel deliberately typeset, not uniformly light. */
.section-head h2,
.feature-copy h2,
.events-copy h2,
.match-main h2,
.footer-cta h2,
.scrapbook-intro h2,
.article-related-head h2,
.player-portal-intro h2,
.player-portal-feature-card h2,
.player-portal-citylink-copy h2,
.player-portal-checklist-card h2,
.player-portal-signin-copy h2,
.g4gr h2,
.g4gr h3,
.jgc-page h2,
.programme-page-content h2 {
  font-weight: 900 !important;
}

/* Give selected card/story titles a stronger editorial hierarchy. */
.g4gr-team h3,
.team-card-copy h3,
.article-card h3,
.article-archive-card h2,
.article-archive-card h3,
.article-related-card h3,
.involved-card h3,
.involved-hub-card h3,
.event-card h3,
.match-2027-status-card strong,
.g4gr-roster strong {
  font-weight: 850 !important;
}

.g4gr-team h3 {
  font-size: clamp(2.15rem, 2.65vw, 2.65rem) !important;
  line-height: .98 !important;
}
.g4gr-results strong {
  font-weight: 900 !important;
  letter-spacing: -.025em;
}

/* Slightly more substantial interaction surfaces - bold, rounded, still restrained. */
.g4g-btn,
.g4gr-button,
.g4gr-button-outline,
.awards27-button,
.jgc-button {
  font-weight: 850 !important;
}
.g4g-btn:not(.g4g-btn-small) {
  min-height: 54px;
  padding-inline: 25px;
}
.g4gr-button,
.g4gr-button-outline {
  min-height: 52px;
  padding-inline: 26px !important;
  border-radius: 6px !important;
}

/* Navigation can carry a touch more weight without becoming a banner. */
.site-header .main-nav a:not(.g4g-btn) {
  font-size: .835rem;
  font-weight: 800 !important;
}
.nav-actions .g4g-btn {
  font-weight: 850 !important;
}

/* The small labels remain natural-case, but no longer look faint next to the heavier display type. */
.section-kicker,
.eyebrow,
.jgc-eyebrow,
.g4gr .g4gr-kicker,
.awards27-kicker,
.footer-title {
  font-weight: 800 !important;
}

/* Subtle card heft: stronger edge and roundness only where it improves grouping. */
.g4gr-team,
.article-archive-card,
.involved-card,
.involved-hub-card,
.match-2027-status-card,
.scrapbook-gallery-card {
  border-width: 1px;
}

@media (max-width: 900px) {
  .g4gr-hero-title {
    font-size: clamp(48px, 8.4vw, 72px) !important;
  }
  .site-header .main-nav a:not(.g4g-btn) {
    font-size: 1rem;
  }
}

@media (max-width: 620px) {
  .g4gr-hero-title {
    font-size: clamp(44px, 13.5vw, 60px) !important;
    line-height: .96 !important;
  }
  .g4gr-team h3 {
    font-size: 2rem !important;
  }
  .g4g-btn:not(.g4g-btn-small),
  .g4gr-button,
  .g4gr-button-outline {
    min-height: 52px;
  }
}
