:root{
  --gg-bg:#06090f;        /* page */
  --gg-surface:#0a0f1a;   /* cards */
  --gg-elev:#0f172a;      /* raised */
  --gg-text:#e6f1ff;      /* primary text */
  --gg-muted:#9aa4b2;     /* secondary text */
  --gg-accent:#22c55e;    /* CTA green */
  --gg-border:#1e293b;
  --gg-grad-from:#0a1020; /* hero gradient */
  --gg-grad-to:#062416;
  --gg-shadow:0 10px 30px rgba(0,0,0,.35);
}

/* Layout helpers */
.gg-container{
  max-width:1200px;
  margin:0 auto;
  padding:0 24px;
}

.gg-section{
  margin: 0;
  padding: var(--s-8) 0;
}

.gg-section.t--tight{
  padding: var(--s-7) 0;
}

.gg-section.t--loose{
  padding: var(--s-10) 0;
}

/* Grid layouts with mobile breakpoints */
.gg-grid-2{
  display:grid;
  gap:32px;
}
@media (min-width:768px){
  .gg-grid-2{
    grid-template-columns:1fr 1fr;
  }
}

.gg-grid-3{
  display:grid;
  gap:24px;
}
@media (min-width:768px){
  .gg-grid-3{
    grid-template-columns:repeat(3,1fr);
  }
}

.gg-grid-4{
  display:grid;
  gap:20px;
}
@media (min-width:768px){
  .gg-grid-4{
    grid-template-columns:repeat(2,1fr);
  }
}
@media (min-width:1024px){
  .gg-grid-4{
    grid-template-columns:repeat(4,1fr);
  }
}

/* Container with left/right layout */
.gg-container[style*="display:grid"]{
  grid-template-columns:1fr;
  gap: 48px;
  align-items: center;
}

@media (min-width:1024px){
  .gg-container[style*="display:grid"]{
    grid-template-columns:1fr 1fr;
    gap: 64px;
  }
}

/* Consistent container padding */
.gg-container{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

@media (min-width:1024px){
  .gg-container{
    padding: 0 48px;
  }
}

/* Ensure cards have consistent padding */
.gg-card{
  padding: 24px;
}

@media (min-width:768px){
  .gg-card{
    padding: 32px;
  }
}

.gg-theme{color:var(--gg-text);background:var(--gg-bg);}
.gg-card{background:var(--gg-surface);border:1px solid var(--gg-border);border-radius:16px;}
.gg-elev{box-shadow:var(--gg-shadow);}

/* Typography */
.gg-h1{font-weight:800;line-height:1.05;font-size:clamp(2.25rem,1.5rem+2vw,3.5rem);margin:0 0 12px;}
.gg-h2{font-weight:800;line-height:1.1;font-size:clamp(1.5rem,1.1rem+1vw,2.25rem);margin:0 0 8px;}
.gg-eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gg-muted);}

/* Text colors */
.gg-muted{color:var(--gg-muted);}
.gg-accent{color:var(--gg-accent);}

/* Buttons */
.gg-btn{background:var(--gg-accent);color:var(--gg-bg);border-radius:10px;padding:.85rem 1.2rem;font-weight:700;border:0;}
.gg-btn:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 8px 24px rgba(34,197,94,.22);}
.gg-btn:focus{outline:2px solid var(--gg-accent);outline-offset:2px;}

/* Chips & badges */
.gg-badge{background:rgba(34,197,94,.12);color:var(--gg-accent);border:1px solid rgba(34,197,94,.35);border-radius:999px;padding:.25rem .6rem;font-weight:600;font-size:.75rem;}
.gg-chip-bad{border:1px solid rgba(239,68,68,.35);color:rgba(252,165,165,.9);border-radius:10px;padding:.5rem .75rem;font-weight:600;}

/* Hero background (gradient + grid) */
.gg-hero{
  background:
    radial-gradient(1200px 600px at 65% 20%, rgba(34,197,94,.08), transparent 60%),
    linear-gradient(135deg,var(--gg-grad-from),var(--gg-grad-to));
  position:relative;
}
.gg-hero:before{
  content:"";
  position:absolute;inset:0;border-radius:0;
  background-image:
    radial-gradient(rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:24px 24px;
  mask: radial-gradient(75% 60% at 20% 20%, rgba(0,0,0,.9), transparent 80%);
  pointer-events:none;
}

/* Table */
.gg-table{width:100%;border-collapse:separate;border-spacing:0;}
.gg-th{padding:12px 16px;text-align:left;font-weight:700;border-bottom:1px solid var(--gg-border);}
.gg-td{padding:12px 16px;border-bottom:1px solid var(--gg-border);color:var(--gg-muted);}

/* ===== Spacing scale (vertical rhythm) ===== */
:root{
  --s-1:8px; --s-2:12px; --s-3:16px; --s-4:20px; --s-5:24px;
  --s-6:32px; --s-7:40px; --s-8:56px; --s-9:72px; --s-10:96px;
}

/* Section wrappers - consolidated above */

/* Band / alt backgrounds to break the vertical monotony */
.gg-band{ background: linear-gradient(180deg, rgba(34,197,94,.04), rgba(0,0,0,0)); }
.gg-alt{ background: var(--gg-surface); } /* slightly different from page bg */

/* Split layout (Z-pattern) if needed */
.gg-split{ 
  display: grid; 
  gap: var(--s-8); 
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--s-5);
}
@media (min-width:1024px){ 
  .gg-split{ 
    grid-template-columns: 1fr 1fr;
    gap: var(--s-9);
  } 
}
.gg-split.flip > :first-child{ order:2; }

/* Section margins removed - using padding only */

/* Container width variants */
.gg-container{ max-width:1200px; margin:0 auto; padding:0 var(--s-5); }
.gg-container.t--narrow{ max-width:800px; }
.gg-container.t--medium{ max-width:1000px; }

/* Stack helpers (consistent inner spacing) */
.gg-stack-sm > * + *{ margin-top: var(--s-4); }
.gg-stack-md > * + *{ margin-top: var(--s-6); }
.gg-stack-lg > * + *{ margin-top: var(--s-8); }

.gg-measure{ max-width: 64ch; }

/* Normalize card padding for balance */
.gg-card{ padding: 18px 20px; }

/* Hero uses moderate spacing on desktop */
@media (min-width:1024px){
  .gg-hero.gg-section{ padding: var(--s-8) 0; }
}

/* Safety rails to prevent gaps */
main.gg-theme > section { margin: 0 !important; }
main.gg-theme > *:empty { display: none !important; }

:root{
  /* container (keep if already present) */
  --page-max: 1200px;
  --page-pad-m: 20px;
  --page-pad-d: 28px;

  /* spacing scale (8px base) */
  --s-3:16px; --s-4:20px; --s-5:24px; --s-6:32px; --s-7:40px;
  --s-8:56px; --s-9:72px; --s-10:96px; --s-11:128px; --s-12:160px;
}

/* Default section rhythm */
.gg-section{ padding-block: var(--s-8); }                 /* 56/56 mobile */
@media (min-width: 768px){ .gg-section{ padding-block: var(--s-9); } }
@media (min-width:1280px){ .gg-section{ padding-block: var(--s-10); } } /* 96/96 desktop */

/* Variants */
.gg-section.t--tight{ padding-block: var(--s-7); }        /* 40/40 mobile */
@media (min-width:1280px){ .gg-section.t--tight{ padding-block: var(--s-8); } } /* 56/56 desktop */

.gg-section.t--loose{ padding-block: var(--s-10); }       /* 96/96 mobile */
@media (min-width:1280px){ .gg-section.t--loose{ padding-block: var(--s-11); } } /* 128/128 desktop */

.gg-section.t--hero{ padding-block: var(--s-10); }        /* 96/96 mobile */
@media (min-width:1280px){ .gg-section.t--hero{ padding-block: var(--s-12); } } /* 160/160 desktop */

.gg-section.t--xl{ padding-block: var(--s-10); }          /* 96/96 mobile */
@media (min-width:1280px){ .gg-section.t--xl{ padding-block: calc(var(--s-11) + 16px); } } /* ~144/144 */

/* Inner stacks (heading + blurb, etc.) */
.gg-stack-sm > * + *{ margin-top: var(--s-4); }  /* 20 */
.gg-stack-md > * + *{ margin-top: var(--s-5); }  /* 24 */
.gg-stack-lg > * + *{ margin-top: var(--s-6); }  /* 32 */

/* Grid gaps for card rows */
.gg-gap-sm{ gap: var(--s-5); }  /* 24 */
.gg-gap-md{ gap: var(--s-6); }  /* 32 */
.gg-gap-lg{ gap: var(--s-8); }  /* 56 */

/* Normalized card padding */
.gg-card{ padding: 20px 22px; }
@media (min-width:1280px){ .gg-card{ padding: 22px 24px; } }

/* Section header spacing (title + paragraph) */
.gg-head { margin-bottom: var(--s-6); }
@media (min-width:1280px){ .gg-head{ margin-bottom: var(--s-7); } }

/* Safety: prevent stray margins between sections */
main.gg-theme > section{ margin:0 !important; }