/*
Theme Name: G1 Golf
Theme URI: https://g1golf.org
Author: Sidestreet Media
Author URI: https://sidestreetmedia.com
Description: Official theme for G1 Golf — an all-in-one beginner golf program for kids ages 3–9. Faith-based, games-driven, and built for every community.
Version: 1.3.6
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: Proprietary
License URI: https://g1golf.org
Text Domain: g1golf
Tags: golf, kids, sports, nonprofit, faith-based, youth
*/

/* ============================================================
   G1 Golf Brand Variables
   Brand Standards v1.11.26

   COLORS
   Signature: #04805b  |  Accent: #204234  |  Navy: #1e273f
   Lime: #cdde5d  |  Blue: #7e97cd  |  Black: #000000

   FONTS (per brand guide)
   Body:      Gotham Light / Book / Bold  →  web: Barlow (Google Fonts)
   Headlines: Motel California italic     →  web: Expose (self-hosted)
              ↑ used for display headings / hero / section titles only
   ============================================================ */

/* ---- Motel California (licensed display font — headlines only per brand guide) ---- */
@font-face {
  font-family: 'Motel California';
  src: url('assets/fonts/MotelCalifornia-Regular.woff2') format('woff2'),
       url('assets/fonts/MotelCalifornia-Regular.woff')  format('woff'),
       url('assets/fonts/MotelCalifornia-Regular.otf')   format('opentype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Motel California';
  src: url('assets/fonts/MotelCalifornia-Italic.woff2') format('woff2'),
       url('assets/fonts/MotelCalifornia-Italic.woff')  format('woff'),
       url('assets/fonts/MotelCalifornia-Italic.otf')   format('opentype');
  font-weight: normal;
  font-style: italic;
  font-display: swap;
}

/* ---- Expose (self-hosted — secondary display font) ---- */
@font-face {
  font-family: 'Expose';
  src: url('assets/fonts/Expose-Regular.woff2') format('woff2'),
       url('assets/fonts/Expose-Regular.woff')  format('woff'),
       url('assets/fonts/Expose-Regular.ttf')   format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Expose';
  src: url('assets/fonts/Expose-Medium.woff2') format('woff2'),
       url('assets/fonts/Expose-Medium.woff')  format('woff'),
       url('assets/fonts/Expose-Medium.ttf')   format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Expose';
  src: url('assets/fonts/Expose-Bold.woff2') format('woff2'),
       url('assets/fonts/Expose-Bold.woff')  format('woff'),
       url('assets/fonts/Expose-Bold.ttf')   format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Expose';
  src: url('assets/fonts/Expose-Black.woff2') format('woff2'),
       url('assets/fonts/Expose-Black.woff')  format('woff');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* ---- Barlow (Google Fonts — Gotham body substitute) ---- */
@import url('https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400;1,600;1,700&display=swap');

:root {
  /* ---- G1 Brand Colors (Brand Standards v1.11.26) ---- */
  --g1-green:       #04805b;   /* Signature */
  --g1-dark-green:  #204234;   /* Accent */
  --g1-navy:        #1e273f;   /* Neutral dark */
  --g1-lime:        #cdde5d;   /* Highlight / CTA */
  --g1-blue:        #7e97cd;   /* Supporting */
  --g1-black:       #000000;
  --g1-white:       #ffffff;
  --g1-off-white:   #f9faf5;
  --g1-light-gray:  #f2f4ee;

  /* ---- Helex overrides ---- */
  --body:    var(--g1-white);
  --black:   var(--g1-black);
  --black2:  var(--g1-navy);
  --white:   var(--g1-white);
  --theme:   var(--g1-lime);
  --theme2:  var(--g1-green);
  --theme3:  var(--g1-dark-green);
  --theme4:  var(--g1-blue);
  --header:  var(--g1-dark-green);
  --header2: var(--g1-navy);
  --text:    #636b52;
  --text2:   var(--g1-off-white);
  --bg:      var(--g1-off-white);
  --bg2:     var(--g1-light-gray);
  --bg3:     var(--g1-white);
  --bg4:     var(--g1-dark-green);
  --bg5:     var(--g1-light-gray);

  /* ---- Typography (brand guide) ---- */
  /* Body: Gotham Light/Book/Bold → Barlow */
  --font-primary: 'Barlow', 'Gotham', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  /* Headlines: Motel California (brand guide: italic, headlines only) → Expose fallback */
  --font-heading: 'Motel California', 'Expose', 'Barlow', 'Gotham', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: var(--font-primary);
  color: var(--g1-navy);
  background: var(--g1-white);
  margin: 0;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden; /* prevent horizontal scroll from full-bleed blocks */
}

/*
 * Cover-hero pages clear the fixed header via margin-top on .wp-block-cover.
 * Non-cover pages (Privacy, Terms) clear it via .g1-page-hero--internal padding.
 * No padding-top needed on the #primary wrapper.
 */


h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: normal;
  font-style: italic;          /* Motel California is italic per brand guide */
  letter-spacing: -0.01em;
  color: var(--g1-dark-green);
}

/* Display-weight overrides — major headlines */
h1, .g1-section-title, .g1-hero h1, .g1-mission__text {
  font-weight: normal;
}

/* Utility / UI labels stay upright in Barlow — not Motel California */
h4, h5, h6,
.g1-faq-question,
.g1-section-eyebrow,
.g1-footer__heading,
.g1-partners-band__label,
.btn-g1-primary,
.btn-g1-outline,
.btn-g1-green,
.g1-header-cta {
  font-family: var(--font-primary);
  font-style: normal;
  font-weight: 700;
}

a { color: var(--g1-green); text-decoration: none; }
a:hover { color: var(--g1-dark-green); }

img { max-width: 100%; height: auto; }

/* ============================================================
   G1 HEADER
   ============================================================ */
.g1-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 999;
  padding: 16px 0;
  transition: background 0.3s, padding 0.3s, box-shadow 0.3s;
  background: transparent;
}
/* On non-homepage pages the header is always solid — no transparent phase */
body:not(.home) .g1-header,
body.page .g1-header,
body.single .g1-header,
body.archive .g1-header {
  background: var(--g1-dark-green) !important;
  box-shadow: 0 2px 20px rgba(0,0,0,0.15);
}

/* WordPress admin bar — shift fixed header down */
body.admin-bar .g1-header {
  top: 32px;
}

@media screen and (max-width: 782px) {
  body.admin-bar .g1-header { top: 46px; }
}
.g1-header.scrolled {
  background: var(--g1-dark-green);
  padding: 10px 0;
  box-shadow: 0 2px 20px rgba(0,0,0,0.15);
}
.g1-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.g1-logo img { height: 44px; width: auto; }
.g1-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 32px;
  align-items: center;
}
.g1-nav ul li a {
  color: var(--g1-white);
  font-family: var(--font-primary);
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  transition: color 0.2s;
}
.g1-nav ul li a:hover { color: var(--g1-lime); }
.g1-header-cta {
  background: var(--g1-lime);
  color: var(--g1-dark-green) !important;
  padding: 10px 22px;
  border-radius: 4px;
  font-weight: 700 !important;
  font-size: 14px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  transition: background 0.2s, transform 0.2s !important;
}
.g1-header-cta:hover {
  background: var(--g1-white) !important;
  transform: translateY(-1px);
}

/* Mobile menu toggle */
.g1-menu-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
.g1-menu-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--g1-white);
  margin: 5px 0;
  transition: transform 0.3s;
}

/* ============================================================
   HERO SECTION
   ============================================================ */
.g1-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--g1-dark-green);
}
.g1-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
  opacity: 0.35;
}
.g1-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(32,66,52,0.85) 0%, rgba(30,39,63,0.6) 100%);
}
.g1-hero__content {
  position: relative;
  z-index: 2;
  padding: 140px 0 80px;
}
.g1-hero__tagline {
  display: inline-block;
  background: var(--g1-lime);
  color: var(--g1-dark-green);
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 13px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 6px 16px;
  border-radius: 3px;
  margin-bottom: 20px;
}
.g1-hero h1 {
  color: var(--g1-white);
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: clamp(2.4rem, 5.5vw, 4.5rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 24px;
  text-transform: uppercase;
}
.g1-hero h1 span { color: var(--g1-lime); }
.g1-hero__subtitle {
  color: rgba(255,255,255,0.85);
  font-size: 1.15rem;
  font-weight: 400;
  line-height: 1.7;
  max-width: 580px;
  margin-bottom: 36px;
}
.g1-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-g1-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--g1-lime);
  color: var(--g1-dark-green);
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 4px;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
  border: 2px solid var(--g1-lime);
}
.btn-g1-primary:hover {
  background: var(--g1-dark-green);
  color: var(--g1-lime);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(4,128,91,0.25);
}
.btn-g1-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: var(--g1-white);
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 4px;
  border: 2px solid rgba(255,255,255,0.5);
  transition: border-color 0.2s, color 0.2s, transform 0.2s;
}
.btn-g1-outline:hover {
  border-color: var(--g1-lime);
  color: var(--g1-lime);
  transform: translateY(-2px);
}
.btn-g1-green {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--g1-green);
  color: var(--g1-white);
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 4px;
  border: 2px solid var(--g1-green);
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}
.btn-g1-green:hover {
  background: var(--g1-dark-green);
  border-color: var(--g1-dark-green);
  color: var(--g1-white);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(4,128,91,0.3);
}

/* ============================================================
   SECTION STYLES
   ============================================================ */
.g1-section { padding: 90px 0; }
.g1-section--dark { background: var(--g1-dark-green); }
.g1-section--green { background: var(--g1-green); }
.g1-section--lime { background: var(--g1-lime); }
.g1-section--navy { background: var(--g1-navy); }
.g1-section--offwhite { background: var(--g1-off-white); }
.g1-section--gray { background: var(--g1-light-gray); }

.g1-section-eyebrow {
  display: inline-block;
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--g1-green);
  margin-bottom: 12px;
}
.g1-section-eyebrow--light { color: var(--g1-lime); }

.g1-section-title {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--g1-dark-green);
  margin-bottom: 20px;
}
.g1-section-title--light { color: var(--g1-white); }
.g1-section-title span { color: var(--g1-lime); }

.g1-section-lead {
  font-size: 1.1rem;
  line-height: 1.75;
  color: #4a5240;
  max-width: 640px;
}
.g1-section-lead--light { color: rgba(255,255,255,0.85); }

/* ============================================================
   WHAT IS G1 GOLF — INTRO SECTION
   ============================================================ */
.g1-intro { padding: 90px 0; }
.g1-intro__image-wrap {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
}
.g1-intro__image-wrap img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  border-radius: 8px;
}
.g1-intro__badge {
  position: absolute;
  bottom: -20px;
  right: -20px;
  width: 140px;
  height: 140px;
  background: var(--g1-lime);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 16px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.15);
}
.g1-intro__badge strong {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 2rem;
  color: var(--g1-dark-green);
  line-height: 1;
}
.g1-intro__badge span {
  font-size: 11px;
  font-weight: 700;
  color: var(--g1-dark-green);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ============================================================
   WHY GOLF NEEDS A FRESH START — PROBLEM STATEMENT
   ============================================================ */
.g1-problem { background: var(--g1-navy); padding: 90px 0; }
.g1-problem .g1-section-title { color: var(--g1-white); }
.g1-problem .g1-section-lead { color: rgba(255,255,255,0.8); max-width: 100%; }
.g1-problem__stat {
  text-align: center;
  padding: 32px 24px;
  border-radius: 8px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
}
.g1-problem__stat-number {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 3.5rem;
  color: var(--g1-lime);
  line-height: 1;
  margin-bottom: 8px;
}
.g1-problem__stat-label {
  font-size: 14px;
  color: rgba(255,255,255,0.75);
  font-weight: 500;
}

/* ============================================================
   CHANGING THE GAME — PILLARS
   ============================================================ */
.g1-pillars { padding: 90px 0; background: var(--g1-white); }
.g1-pillar-card {
  padding: 40px 32px;
  border-radius: 8px;
  background: var(--g1-off-white);
  border-left: 4px solid var(--g1-lime);
  height: 100%;
  transition: transform 0.25s, box-shadow 0.25s;
}
.g1-pillar-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(32,66,52,0.12);
}
.g1-pillar-card__icon {
  width: 52px;
  height: 52px;
  background: var(--g1-lime);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  font-size: 22px;
  color: var(--g1-dark-green);
}
.g1-pillar-card h3 {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1.5rem;
  text-transform: uppercase;
  color: var(--g1-dark-green);
  margin-bottom: 12px;
}
.g1-pillar-card p {
  font-size: 15px;
  line-height: 1.7;
  color: #4a5240;
  margin: 0;
}

/* ============================================================
   EXPERIENCE SECTION
   ============================================================ */
.g1-experience { padding: 90px 0; background: var(--g1-dark-green); }
.g1-experience .g1-section-title { color: var(--g1-white); }
.g1-experience__text { color: rgba(255,255,255,0.85); line-height: 1.75; }
.g1-experience__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.g1-experience__photo {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 3/4;
}
.g1-experience__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.g1-experience__photo:hover img { transform: scale(1.04); }

/* ============================================================
   PARTNERSHIP CTA
   ============================================================ */
.g1-partner { padding: 100px 0; background: var(--g1-green); }
.g1-partner .g1-section-title { color: var(--g1-white); }
.g1-partner .g1-section-lead { color: rgba(255,255,255,0.9); }
.g1-partner__benefits {
  list-style: none;
  padding: 0;
  margin: 32px 0;
}
.g1-partner__benefits li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.9);
  font-size: 15px;
  line-height: 1.5;
}
.g1-partner__benefits li:last-child { border-bottom: none; }
.g1-partner__benefits li::before {
  content: '✓';
  background: var(--g1-lime);
  color: var(--g1-dark-green);
  font-weight: 900;
  font-size: 12px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

/* ============================================================
   MISSION STATEMENT
   ============================================================ */
.g1-mission {
  padding: 80px 0;
  background: var(--g1-lime);
  text-align: center;
}
.g1-mission__text {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  color: var(--g1-dark-green);
  line-height: 1.35;
  max-width: 760px;
  margin: 0 auto;
  text-transform: uppercase;
  letter-spacing: -0.01em;
}

/* ============================================================
   FAQ SECTION
   ============================================================ */
.g1-faq { padding: 90px 0; background: var(--g1-off-white); }
.g1-faq-item {
  border-bottom: 1px solid rgba(32,66,52,0.12);
  padding: 0;
}
.g1-faq-item:first-child { border-top: 1px solid rgba(32,66,52,0.12); }
.g1-faq-question {
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  padding: 22px 0;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 16px;
  color: var(--g1-dark-green);
  line-height: 1.4;
}
.g1-faq-question:hover { color: var(--g1-green); }
.g1-faq-question .g1-faq-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--g1-lime);
  color: var(--g1-dark-green);
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-weight: 900;
  transition: transform 0.3s, background 0.2s;
}
.g1-faq-item.open .g1-faq-question .g1-faq-icon {
  transform: rotate(45deg);
  background: var(--g1-green);
  color: var(--g1-white);
}
.g1-faq-answer {
  display: none;
  padding: 0 0 22px;
  font-size: 15px;
  line-height: 1.75;
  color: #4a5240;
  max-width: 760px;
}
.g1-faq-item.open .g1-faq-answer { display: block; }

/* ============================================================
   SIMILAR PROGRAMS / SOCIAL PROOF BAND
   ============================================================ */
.g1-partners-band { padding: 48px 0; background: var(--g1-white); border-top: 1px solid var(--g1-light-gray); border-bottom: 1px solid var(--g1-light-gray); }
.g1-partners-band__label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #8a9477;
  text-align: center;
  margin-bottom: 24px;
}
.g1-partners-band__logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 48px;
  flex-wrap: wrap;
}
.g1-partners-band__logos span {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #8a9477;
  opacity: 0.7;
}

/* ============================================================
   FOOTER
   ============================================================ */
.g1-footer { background: var(--g1-navy); padding: 70px 0 0; }
.g1-footer__logo img { height: 48px; margin-bottom: 20px; }
.g1-footer__tagline {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--g1-lime);
  margin-bottom: 16px;
}
.g1-footer__about {
  font-size: 14px;
  line-height: 1.7;
  color: rgba(255,255,255,0.6);
  max-width: 300px;
}
.g1-footer__heading {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--g1-white);
  margin-bottom: 20px;
}
.g1-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.g1-footer ul li {
  padding: 6px 0;
  font-size: 14px;
}
.g1-footer ul li a {
  color: rgba(255,255,255,0.6);
  transition: color 0.2s;
}
.g1-footer ul li a:hover { color: var(--g1-lime); }
.g1-footer__contact-item {
  display: flex;
  gap: 12px;
  margin-bottom: 14px;
  color: rgba(255,255,255,0.6);
  font-size: 14px;
}
.g1-footer__contact-item i { color: var(--g1-lime); margin-top: 2px; flex-shrink: 0; }
.g1-footer__social { display: flex; gap: 12px; margin-top: 24px; }
.g1-footer__social a {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.7);
  font-size: 15px;
  transition: background 0.2s, color 0.2s;
}
.g1-footer__social a:hover {
  background: var(--g1-lime);
  color: var(--g1-dark-green);
  border-color: var(--g1-lime);
}
.g1-footer__newsletter input {
  width: 100%;
  padding: 12px 16px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 4px 0 0 4px;
  color: var(--g1-white);
  font-size: 14px;
  outline: none;
}
.g1-footer__newsletter input::placeholder { color: rgba(255,255,255,0.4); }
.g1-footer__newsletter button {
  padding: 12px 18px;
  background: var(--g1-lime);
  color: var(--g1-dark-green);
  border: none;
  border-radius: 0 4px 4px 0;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  transition: background 0.2s;
}
.g1-footer__newsletter button:hover { background: var(--g1-green); color: var(--g1-white); }
.g1-footer__newsletter { display: flex; margin-top: 12px; }
.g1-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 20px 0;
  margin-top: 56px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.g1-footer__bottom p {
  color: rgba(255,255,255,0.4);
  font-size: 13px;
  margin: 0;
}
.g1-footer__bottom a { color: rgba(255,255,255,0.4); }
.g1-footer__bottom a:hover { color: var(--g1-lime); }

/* ============================================================
   UTILITY CLASSES
   ============================================================ */
.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.text-center { text-align: center; }
.text-white { color: var(--g1-white) !important; }
.text-lime { color: var(--g1-lime) !important; }
.text-green { color: var(--g1-green) !important; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 991px) {
  .g1-experience__grid { grid-template-columns: 1fr 1fr; }
  .g1-nav { display: none; }
  .g1-menu-toggle { display: block; }
  .g1-nav.open {
    display: block;
    position: fixed;
    inset: 0;
    background: var(--g1-dark-green);
    z-index: 1000;
    padding: 100px 32px 40px;
  }
  .g1-nav.open ul { flex-direction: column; gap: 24px; }
  .g1-nav.open ul li a { font-size: 1.5rem; }
}
@media (max-width: 767px) {
  .g1-section { padding: 60px 0; }
  .g1-hero { min-height: 90vh; }
  .g1-experience__grid { grid-template-columns: 1fr; }
  .g1-intro__badge { right: 12px; bottom: 12px; }
  .g1-footer__bottom { flex-direction: column; text-align: center; }
}

/* ============================================================
   PRELOADER
   ============================================================ */
#g1-preloader {
  position: fixed;
  inset: 0;
  background: var(--g1-dark-green);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.4s, visibility 0.4s;
}
#g1-preloader.loaded { opacity: 0; visibility: hidden; }
.g1-preloader__logo img { height: 60px; animation: g1pulse 1s infinite alternate; }
@keyframes g1pulse { from { opacity: 0.4; transform: scale(0.97); } to { opacity: 1; transform: scale(1); } }

/* ============================================================
   BACK TO TOP
   ============================================================ */
#g1-back-top {
  position: fixed;
  bottom: 32px;
  right: 32px;
  width: 44px;
  height: 44px;
  background: var(--g1-lime);
  color: var(--g1-dark-green);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s, transform 0.2s;
  z-index: 100;
}
#g1-back-top.visible { opacity: 1; visibility: visible; }
#g1-back-top:hover { transform: translateY(-4px); }

/* ============================================================
   INNER PAGE HERO
   ============================================================ */
.g1-page-hero {
  padding: 130px 0 70px;
  background: var(--g1-dark-green);
  text-align: center;
}
.g1-page-hero h1 {
  color: var(--g1-white);
  font-size: clamp(2rem, 4vw, 3.2rem);
  text-transform: uppercase;
  margin-bottom: 16px;
}
.g1-breadcrumb { color: rgba(255,255,255,0.5); font-size: 14px; }
.g1-breadcrumb a { color: var(--g1-lime); }

/* ============================================================
   G1 GOLF v1.1 ADDITIONS
   Social Proof Band
   ============================================================ */

.g1-social-proof {
  background: var(--g1-off-white);
  padding: 60px 0;
  border-top: 1px solid #e8ecdf;
  border-bottom: 1px solid #e8ecdf;
}

.g1-social-proof__label {
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--g1-green);
  margin-bottom: 32px;
}

.g1-social-proof__items {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 40px;
  margin-bottom: 48px;
}

.g1-social-proof__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: var(--g1-dark-green);
}

.g1-social-proof__item i {
  font-size: 24px;
  color: var(--g1-green);
}

.g1-social-proof__item span {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.g1-social-proof__stats {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 48px;
}

.g1-social-proof__stat {
  text-align: center;
}

.g1-social-proof__stat-num {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 2.8rem;
  color: var(--g1-green);
  line-height: 1;
}

.g1-social-proof__stat-suf {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: 1.8rem;
  color: var(--g1-lime);
  line-height: 1;
}

.g1-social-proof__stat-label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #636b52;
  margin-top: 6px;
}

/* ============================================================
   AEO: visually-hidden helper for answer-engine structured text
   ============================================================ */
.g1-aeo-answer {
  position: static;
  width: auto;
  height: auto;
  clip: unset;
  overflow: visible;
  white-space: normal;
  font-size: 15px;
  color: inherit;
}

/* ============================================================
   INTERNAL PAGE LAYOUT — page.php / single.php
   ============================================================ */

/* Bare page hero for pages that don't have a cover block header */
.g1-page-hero--internal {
  background: var(--g1-dark-green);
  padding: 56px 0 40px;
}

.g1-page-hero__title {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: clamp(2rem, 5vw, 3.2rem);
  color: #ffffff;
  margin: 0 0 12px;
  line-height: 1.1;
}

.g1-breadcrumb {
  font-size: 13px;
  color: rgba(255,255,255,0.55);
  letter-spacing: 0.04em;
}

.g1-breadcrumb a {
  color: var(--g1-lime);
  text-decoration: none;
}

.g1-breadcrumb a:hover { text-decoration: underline; }

/* Full-width page content wrapper — lets blocks bleed edge to edge */
.g1-page-content {
  display: block;
  width: 100%;
}

/* Constrain prose-only blocks to a readable measure */
.g1-page-content > .wp-block-paragraph,
.g1-page-content > .wp-block-heading,
.g1-page-content > .wp-block-list,
.g1-page-content > .wp-block-quote,
.g1-page-content > .wp-block-buttons,
.g1-page-content > .wp-block-spacer,
.g1-page-content > .g1-section-lead {
  max-width: 840px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

/* ============================================================
   GUTENBERG CORE BLOCKS — base resets & brand skin
   ============================================================ */

/* Cover block */
/* ── Cover block — full-width hero treatment ── */
.wp-block-cover {
  position: relative;
  overflow: hidden;
  /* Break out of any parent container — true viewport width */
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background-color: var(--g1-dark-green);
  display: flex;
  align-items: center;
  justify-content: center;
}

.wp-block-cover__image-background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 40%;
  transition: transform 8s ease;
}

.wp-block-cover:hover .wp-block-cover__image-background {
  transform: scale(1.03);
}

.wp-block-cover__background {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    160deg,
    rgba(30,39,63,0.72) 0%,
    rgba(32,66,52,0.60) 100%
  );
  z-index: 1;
}

.wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  /* Top padding accounts for fixed header (~76px) + visual breathing room */
  padding: 80px 32px 80px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

/* Hero heading inside cover blocks */
.wp-block-cover h1 {
  font-family: var(--font-heading);
  font-style: italic;
  font-weight: normal;
  font-size: clamp(2.4rem, 6vw, 4rem);
  line-height: 1.08;
  color: #ffffff;
  margin: 0;
  text-shadow: 0 2px 24px rgba(0,0,0,0.3);
  max-width: 780px;
}

.wp-block-cover h2,
.wp-block-cover h3 {
  color: #ffffff;
  text-align: center;
}

/* Tagline / subline inside cover */
.wp-block-cover p {
  font-size: clamp(16px, 2.2vw, 20px);
  color: var(--g1-lime);
  margin: 0;
  font-style: italic;
  letter-spacing: 0.03em;
  text-shadow: 0 1px 8px rgba(0,0,0,0.25);
}

/* Breadcrumb strip — injected by JS immediately after the cover block */
.g1-cover-breadcrumb {
  background: var(--g1-dark-green);
  padding: 11px 0;
  border-bottom: 1px solid rgba(205,222,93,0.15);
  width: 100%;
}

.g1-cover-breadcrumb__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  font-size: 13px;
  color: rgba(255,255,255,0.5);
  letter-spacing: 0.03em;
}

.g1-cover-breadcrumb a {
  color: var(--g1-lime);
  text-decoration: none;
}

.g1-cover-breadcrumb a:hover { text-decoration: underline; }

/* Columns block */
.wp-block-columns {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  max-width: 1160px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px;
  box-sizing: border-box;
  /* Default: align column tops together */
  align-items: flex-start;
}

/* Vertically centered columns — only when explicitly set */
.wp-block-columns.are-vertically-aligned-center {
  align-items: center;
}

/* Explicit top-align override — used on image+text sections where heading
   should start at the same level as the image top */
.wp-block-columns.g1-top-align {
  align-items: flex-start;
}

/* Image+text columns: always top-align so image top meets heading top */
.wp-block-columns:has(.wp-block-image):has(.wp-block-heading) {
  align-items: flex-start;
}

.wp-block-column {
  flex: 1 1 260px;
  min-width: 0;
}

/* Group block — full-width bands */
.wp-block-group {
  width: 100%;
  box-sizing: border-box;
}

.wp-block-group.has-background {
  padding: 48px 20px;
}

.wp-block-group.has-background .wp-block-columns,
.wp-block-group.has-background > .wp-block-heading,
.wp-block-group.has-background > .wp-block-paragraph,
.wp-block-group.has-background > .wp-block-list,
.wp-block-group.has-background > .wp-block-buttons {
  max-width: 1160px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
}

/* Lists inside dark-background groups — force white so they don't disappear */
.g1-callout-box .wp-block-list,
.g1-callout-box .wp-block-list li,
[style*="background-color:#1e273f"] .wp-block-list,
[style*="background-color:#1e273f"] .wp-block-list li,
[style*="background-color:#204234"] .wp-block-list,
[style*="background-color:#204234"] .wp-block-list li,
[style*="background-color:#04805b"] .wp-block-list,
[style*="background-color:#04805b"] .wp-block-list li {
  color: rgba(255,255,255,0.9);
}

/* Image block */
.wp-block-image {
  margin: 0;
  line-height: 0;
}

.wp-block-image img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  display: block;
}

.wp-block-image.alignwide {
  max-width: 1160px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px;
}

.wp-block-image.size-full.alignwide img {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  border-radius: 0;
}

/* Buttons block */
.wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 0 20px;
  max-width: 1160px;
  margin: 24px auto;
}

.wp-block-buttons.is-content-justification-center,
.wp-block-buttons[style*="justifyContent"] {
  justify-content: center;
}

.wp-block-button__link {
  display: inline-block;
  padding: 14px 28px;
  border-radius: 4px;
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  background: var(--g1-lime);
  color: var(--g1-dark-green);
  border: 2px solid var(--g1-lime);
}

.wp-block-button__link:hover {
  background: var(--g1-dark-green);
  color: var(--g1-lime);
  border-color: var(--g1-dark-green);
}

.wp-block-button.btn-g1-primary .wp-block-button__link {
  background: var(--g1-lime);
  color: var(--g1-dark-green);
  border-color: var(--g1-lime);
}

.wp-block-button.btn-g1-outline .wp-block-button__link {
  background: transparent;
  color: var(--g1-dark-green);
  border-color: var(--g1-dark-green);
}

.wp-block-button.btn-g1-outline .wp-block-button__link:hover {
  background: var(--g1-dark-green);
  color: #ffffff;
}

/* List blocks */
.wp-block-list {
  margin: 0;
  padding-left: 24px;
  line-height: 1.75;
}

.wp-block-list li {
  margin-bottom: 8px;
}

.wp-block-list li:last-child { margin-bottom: 0; }

/* Shortcode placeholder */
.wp-block-shortcode {
  padding: 0;
}

/* Spacer */
.wp-block-spacer { display: block; }

/* ============================================================
   INTERNAL PAGE SECTION COMPONENTS
   from the WXR Gutenberg block markup
   ============================================================ */

/* Lead paragraph */
.g1-section-lead {
  font-size: clamp(17px, 2.5vw, 20px);
  line-height: 1.7;
  color: #3a4035;
  max-width: 760px;
  margin: 0 auto 24px;
  text-align: center;
}

/* Stat band cards */
.g1-stat-band .wp-block-columns {
  text-align: center;
  gap: 0;
}

.g1-stat-band .wp-block-column {
  padding: 16px 24px;
  border-right: 1px solid rgba(255,255,255,0.1);
}

.g1-stat-band .wp-block-column:last-child { border-right: none; }

/* Pillar / benefit cards */
.g1-pillar-card,
.g1-benefit-card {
  border-radius: 8px;
  height: 100%;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.g1-pillar-card:hover,
.g1-benefit-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.1);
}

.g1-pillar-card h3,
.g1-benefit-card h4 {
  font-family: var(--font-primary);
  font-style: normal;
  font-weight: 700;
  font-size: 17px;
  margin: 0 0 10px;
}

/* Equipment cards */
.g1-equipment-card {
  border-radius: 8px;
  height: 100%;
}

.g1-equipment-card h4 {
  font-size: 15px;
  font-weight: 700;
  font-style: normal;
  font-family: var(--font-primary);
  margin: 0 0 8px;
}

.g1-equipment-card p {
  font-size: 14px;
  line-height: 1.6;
  color: #4a5040;
  margin: 0;
}

/* Format cards — program types */
.g1-format-card {
  border-radius: 8px;
  height: 100%;
}

.g1-format-card h4 {
  font-family: var(--font-primary);
  font-style: normal;
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 10px;
}

/* Skill blocks — left-border treatment */
.g1-skill-block {
  margin-bottom: 8px;
}

.g1-skill-block h3 {
  font-family: var(--font-primary);
  font-style: normal;
  margin: 0 0 8px;
}

/* Partner type cards — top-border treatment */
.g1-partner-type h3 {
  font-family: var(--font-primary);
  font-style: normal;
  margin: 0 0 10px;
}

/* Callout boxes */
.g1-callout-box {
  width: 100%;
  box-sizing: border-box;
  margin: 16px 0;
}

.g1-callout-box h3 {
  font-family: var(--font-primary);
  font-style: normal;
  font-size: 20px;
  margin: 0 0 12px;
}

/* FAQ callout */
.g1-faq-callout {
  border-radius: 8px;
  margin: 24px 20px 32px;
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}

/* Contact info */
.g1-contact-callout {
  margin: 32px auto 48px;
  max-width: 820px;
}

/* FAQ section headings with color — scoped to direct children only */
.g1-page-content > .wp-block-heading.has-text-color {
  max-width: 1160px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(20px, 4vw, 60px);
  padding-right: clamp(20px, 4vw, 60px);
}

/* Base h3 style on internal pages */
.g1-page-content h3 {
  font-family: var(--font-primary);
  font-style: normal;
  font-size: 18px;
  font-weight: 700;
  color: var(--g1-dark-green);
  margin-top: 32px;
  margin-bottom: 8px;
}

/* Top-level standalone paragraphs get comfortable reading width */
.g1-page-content > .wp-block-paragraph p,
.g1-page-content > article > p {
  max-width: 1160px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(20px, 4vw, 60px);
  padding-right: clamp(20px, 4vw, 60px);
  font-size: 16px;
  line-height: 1.8;
  color: #3a4035;
  margin-bottom: 16px;
}

/* All paragraphs get base spacing */
.g1-page-content p {
  font-size: 16px;
  line-height: 1.8;
  color: #3a4035;
  margin-bottom: 16px;
}

/* Paragraphs inside columns don't need the narrow max-width constraint */
.wp-block-column p,
.wp-block-column .g1-page-content p {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  margin-bottom: 16px;
}

/* Image grids (columns of only images) get breathing room above */
.wp-block-columns:has(.wp-block-image):not(:has(.wp-block-heading)):not(:has(.wp-block-paragraph)) {
  margin-top: 24px;
}

/* ============================================================
   BLOG POST — single.php components
   ============================================================ */

.g1-section--post {
  padding: 60px 0 80px;
}

.g1-post-article {
  display: block;
}

.g1-post-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 28px;
  font-size: 13px;
}

.g1-post-meta__date {
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--g1-green);
}

.g1-post-meta__dot { color: #aab49a; }

.g1-post-meta__author,
.g1-post-meta__cat {
  color: #636b52;
  font-weight: 600;
}

.g1-post-thumb {
  margin-bottom: 32px;
  border-radius: 8px;
  overflow: hidden;
  line-height: 0;
}

.g1-post-body {
  font-size: 16px;
  line-height: 1.85;
  color: #3a4035;
}

.g1-post-body h2 {
  font-style: italic;
  font-size: 1.75rem;
  color: var(--g1-dark-green);
  margin: 40px 0 14px;
}

.g1-post-body h3 {
  font-family: var(--font-primary);
  font-style: normal;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--g1-dark-green);
  margin: 32px 0 10px;
}

.g1-post-body p { margin: 0 0 20px; }

.g1-post-body ul,
.g1-post-body ol {
  padding-left: 24px;
  margin: 0 0 20px;
}

.g1-post-body li { margin-bottom: 8px; }

.g1-post-body a {
  color: var(--g1-green);
  text-decoration: underline;
}

.g1-post-footer {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid #e0e5d4;
}

.g1-post-tags {
  margin-bottom: 16px;
  font-size: 13px;
}

.g1-post-nav {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 14px;
  font-weight: 600;
}

.g1-post-nav a { color: var(--g1-green); text-decoration: none; }
.g1-post-nav a:hover { text-decoration: underline; }

.g1-post-nav__next { margin-left: auto; }

/* Post CTA band */
.g1-post-cta {
  margin-top: 56px;
  padding: 40px;
  background: var(--g1-lime);
  border-radius: 8px;
  text-align: center;
}

.g1-post-cta p {
  font-size: 18px;
  font-weight: 600;
  color: var(--g1-dark-green);
  margin: 0 0 20px;
}

/* ============================================================
   RESPONSIVE — internal pages
   ============================================================ */

@media (max-width: 768px) {
  .g1-page-hero--internal { padding: 40px 0 28px; }
  .g1-page-hero__title { font-size: 1.8rem; }

  .wp-block-columns { flex-direction: column; gap: 20px; }
  .wp-block-column { flex-basis: 100% !important; }

  .wp-block-cover__inner-container { padding: 60px 20px 60px; }

  .g1-stat-band .wp-block-column {
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.1);
  }

  .g1-stat-band .wp-block-column:last-child { border-bottom: none; }

  .g1-callout-box { margin: 24px 0; padding: 28px 20px !important; }

  .g1-post-cta { padding: 28px 20px; }

  .wp-block-group.has-background { padding: 32px 16px; }

  .wp-block-image.alignwide { padding: 0; }

  .wp-block-buttons { padding: 0 16px; }
}

@media (max-width: 480px) {
  .g1-page-hero__title { font-size: 1.5rem; }
  .g1-section-lead { font-size: 16px; padding: 0 16px; }
}

/* ============================================================
   FIX: WordPress block gap and article margin causing
   white space between header and first cover block.
   ============================================================ */

/* Zero out any default margin/padding WordPress might add to
   the article wrapper and first child block */
.site-main > article,
.site-main > .g1-page-content {
  margin: 0;
  padding: 0;
}

/* Remove WordPress default block gap before the first child */
.site-main > article > *:first-child,
.site-main > .g1-page-content > *:first-child {
  margin-top: 0 !important;
}

/* The cover block provides its own header clearance via margin-top.
   Make sure no stacking occurs with the article wrapper. */
.site-main .wp-block-cover:first-child {
  margin-top: 64px;
}

/* Admin bar offset */
body.admin-bar .site-main .wp-block-cover:first-child {
  margin-top: calc(64px + 32px);
}

@media screen and (max-width: 782px) {
  body.admin-bar .site-main .wp-block-cover:first-child {
    margin-top: calc(64px + 46px);
  }
}

/* Wrapper for pages with a cover hero — no top padding needed */
.g1-page-content {
  width: 100%;
}

.g1-page-content--has-hero {
  padding-top: 0;
}

/* Internal page sections below the hero get comfortable vertical rhythm */
.g1-page-content > .wp-block-spacer:first-child,
.g1-page-content--has-hero > .wp-block-spacer:first-child {
  display: block;
}

/* alignfull blocks escape any leftover container padding */
.g1-page-content .alignfull,
.site-main .wp-block-cover.alignfull, .g1-page-content .wp-block-cover.alignfull,
.g1-page-content .wp-block-group.alignfull {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* Constrain standalone prose blocks that are direct children of the page */
.g1-page-content > .wp-block-heading,
.g1-page-content > .wp-block-paragraph,
.g1-page-content > .wp-block-list,
.g1-page-content > .wp-block-quote,
.g1-page-content > .wp-block-buttons {
  max-width: 1160px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(20px, 4vw, 60px);
  padding-right: clamp(20px, 4vw, 60px);
  box-sizing: border-box;
}

/* Section headings on internal pages */
.g1-page-content > .wp-block-heading h2,
.g1-page-content h2:not(.wp-block-cover h2):not(.wp-block-group h2) {
  font-style: italic;
  color: var(--g1-dark-green);
  margin-top: 40px;
  margin-bottom: 12px;
}

/* When a heading directly follows a spacer, the spacer already provides
   the breathing room — zero out the heading's top margin */
.g1-page-content .wp-block-spacer + .wp-block-heading,
.g1-page-content .wp-block-spacer + .wp-block-heading h2 {
  margin-top: 0;
}

/* First heading on the page needs no top margin — breadcrumb handles it */
.g1-page-content > .wp-block-heading:first-child h2,
.g1-page-content > .wp-block-paragraph:first-child + .wp-block-heading h2 {
  margin-top: 24px;
}

/* Columns and groups take full content width */
.g1-page-content .wp-block-columns,
.g1-page-content .wp-block-group {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

/* Full-bleed coloured bands — zero out side padding so they stretch edge to edge */
.g1-page-content .wp-block-group.has-background:not(.g1-callout-box):not(.g1-faq-callout):not(.g1-stat-band):not(.g1-format-card):not(.g1-equipment-card):not(.g1-benefit-card):not(.g1-pillar-card):not(.g1-partner-type):not(.g1-skill-block) {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

/* Re-centre content inside full-bleed bands */
.g1-page-content .wp-block-group.has-background:not(.g1-callout-box) .wp-block-columns,
.g1-page-content .wp-block-group.has-background:not(.g1-callout-box) > .wp-block-heading,
.g1-page-content .wp-block-group.has-background:not(.g1-callout-box) > .wp-block-paragraph,
.g1-page-content .wp-block-group.has-background:not(.g1-callout-box) > .wp-block-list,
.g1-page-content .wp-block-group.has-background:not(.g1-callout-box) > .wp-block-buttons {
  max-width: 1160px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 32px;
  padding-right: 32px;
}

/* Callout boxes keep their inline padding (40px from block attribute) */
.g1-page-content .g1-callout-box.has-background {
  max-width: 1160px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* Cover hero responsive */
@media (max-width: 768px) {
  .wp-block-cover__inner-container {
    padding: 60px 20px 60px;
  }

  .wp-block-cover h1 {
    font-size: clamp(1.8rem, 8vw, 2.8rem);
  }

  .g1-cover-breadcrumb__inner {
    padding: 0 16px;
  }

  .g1-page-content .wp-block-columns,
  .g1-page-content .wp-block-group {
    padding-left: 16px;
    padding-right: 16px;
  }
}

@media (max-width: 480px) {
  .wp-block-cover h1 {
    font-size: 1.7rem;
  }
  .wp-block-cover__inner-container {
    padding: 50px 16px 50px;
  }
}

/* ============================================================
   CONTACT FORM 7 — G1 partner section (dark overlay on green bg)
   ============================================================ */

/* Target CF7 forms inside the partner section specifically */
.g1-partner .wpcf7 input[type="text"],
.g1-partner .wpcf7 input[type="email"],
.g1-partner .wpcf7 input[type="tel"],
.g1-partner .wpcf7 textarea,
.g1-partner .wpcf7 select {
  width: 100%;
  padding: 12px 16px;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 4px;
  color: #ffffff;
  font-size: 14px;
  font-family: var(--font-primary);
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.2s, background 0.2s;
}

.g1-partner .wpcf7 input[type="text"]:focus,
.g1-partner .wpcf7 input[type="email"]:focus,
.g1-partner .wpcf7 input[type="tel"]:focus,
.g1-partner .wpcf7 textarea:focus {
  border-color: var(--g1-lime);
  background: rgba(255,255,255,0.15);
}

.g1-partner .wpcf7 input::placeholder,
.g1-partner .wpcf7 textarea::placeholder {
  color: rgba(255,255,255,0.35);
}

.g1-partner .wpcf7 label,
.g1-partner .wpcf7 .wpcf7-form-control-wrap > span {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  margin-bottom: 6px;
  font-family: var(--font-primary);
}

.g1-partner .wpcf7 .wpcf7-form-control-wrap {
  display: block;
  margin-bottom: 16px;
}

.g1-partner .wpcf7 textarea {
  resize: vertical;
  min-height: 120px;
}

/* Submit button */
.g1-partner .wpcf7 input[type="submit"],
.g1-partner .wpcf7 .wpcf7-submit {
  width: 100%;
  padding: 14px 24px;
  background: var(--g1-lime);
  color: var(--g1-dark-green);
  border: none;
  border-radius: 4px;
  font-family: var(--font-primary);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  margin-top: 8px;
  transition: background 0.2s, transform 0.2s;
}

.g1-partner .wpcf7 input[type="submit"]:hover {
  background: #ffffff;
  transform: translateY(-1px);
}

/* Response messages */
.g1-partner .wpcf7-response-output {
  margin-top: 12px;
  padding: 10px 16px;
  border-radius: 4px;
  font-size: 13px;
  text-align: center;
  border: none !important;
}

.g1-partner .wpcf7-mail-sent-ok {
  background: rgba(205,222,93,0.2);
  color: var(--g1-lime);
}

.g1-partner .wpcf7-validation-errors,
.g1-partner .wpcf7-mail-sent-ng,
.g1-partner .wpcf7-spam-blocked {
  background: rgba(255,100,100,0.15);
  color: #ffaaaa;
}

/* Validation error tips */
.g1-partner .wpcf7-not-valid-tip {
  font-size: 12px;
  color: #ffaaaa;
  margin-top: 4px;
  display: block;
}

/* Spinner */
.g1-partner .wpcf7 .ajax-loader {
  display: none;
}

/* ============================================================
   EQUAL-HEIGHT CARD COLUMNS
   Forces columns containing card groups to stretch equally
   ============================================================ */

/* Any columns block where every column contains a single group block
   should stretch cards to equal height */
.wp-block-columns:has(.wp-block-group.has-background) {
  align-items: stretch;
}

.wp-block-columns:has(.wp-block-group.has-background) > .wp-block-column {
  display: flex;
  flex-direction: column;
}

.wp-block-columns:has(.wp-block-group.has-background) > .wp-block-column > .wp-block-group {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.wp-block-columns:has(.wp-block-group.has-background) > .wp-block-column > .wp-block-group > .wp-block-paragraph:last-child {
  margin-top: auto;
  padding-top: 8px;
}

/* Station rotation — centered list items with white text */
.g1-station-rotation .wp-block-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.g1-station-rotation .wp-block-list .g1-station-item,
.g1-station-rotation .wp-block-list li {
  color: rgba(255,255,255,0.9);
  font-size: 16px;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.g1-station-rotation .wp-block-list li:last-child {
  border-bottom: none;
}
