* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
  --navy: #1F3A5F;
  --slate: #5A6E7F;
  --light: #F4F6F8;
  --gold: #C9A84C;
  --text: #2B2B2B;
  --white: #ffffff;
}
html, body { overflow-x: hidden; } body { font-family: 'Georgia', serif; color: var(--text); background: var(--white); }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }

/* NAV */
nav {
  background: var(--navy);
  padding: 0 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
  position: sticky; top: 0; z-index: 100;
}
.nav-logo { color: var(--white); font-size: 20px; font-weight: bold; letter-spacing: 0.5px; }
.nav-logo span { color: var(--gold); }
.nav-links { display: flex; gap: 36px; align-items: center; }
.nav-links a { color: rgba(255,255,255,0.85); font-family: 'Arial', sans-serif; font-size: 15px; letter-spacing: 0.3px; transition: color 0.2s; }
.nav-links a:hover { color: var(--gold); }
.nav-links a.active { color: var(--gold); }
.nav-cta { background: var(--gold); color: var(--navy) !important; font-weight: bold !important; padding: 9px 22px; border-radius: 4px; }

/* BUTTONS */
.btn-primary { background: var(--gold); color: var(--navy); font-family: 'Arial', sans-serif; font-size: 16px; font-weight: bold; padding: 15px 36px; border-radius: 5px; display: inline-block; }
.btn-secondary { background: transparent; color: var(--white); font-family: 'Arial', sans-serif; font-size: 16px; padding: 15px 36px; border-radius: 5px; border: 2px solid rgba(255,255,255,0.4); display: inline-block; }
.btn-navy { background: var(--navy); color: var(--white); font-family: 'Arial', sans-serif; font-size: 16px; font-weight: bold; padding: 15px 38px; border-radius: 5px; display: inline-block; }
.btn-outline { background: transparent; color: var(--navy); font-family: 'Arial', sans-serif; font-size: 16px; font-weight: bold; padding: 14px 36px; border-radius: 5px; border: 2px solid var(--navy); display: inline-block; }

/* SECTION HELPERS */
section { padding: 80px 60px; }
.section-eyebrow { font-family: 'Arial', sans-serif; font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); margin-bottom: 12px; display: block; }
h2 { font-size: 38px; color: var(--navy); line-height: 1.2; margin-bottom: 16px; }
.section-sub { font-family: 'Arial', sans-serif; font-size: 17px; color: var(--slate); line-height: 1.65; margin-bottom: 48px; }
.centered { text-align: center; }
.centered h2 { margin-left: auto; margin-right: auto; }
.max-1100 { max-width: 1100px; margin: 0 auto; }
.max-700 { max-width: 700px; margin: 0 auto; }

/* PAGE HEADER */
.page-header { background: linear-gradient(135deg, var(--navy) 0%, #2a4a70 60%, #1a3055 100%); padding: 72px 60px 64px; }
.page-header .section-eyebrow { margin-bottom: 14px; }
.page-header h1 { color: var(--white); font-size: 46px; line-height: 1.15; margin-bottom: 18px; max-width: 700px; }
.page-header p { color: rgba(255,255,255,0.78); font-family: 'Arial', sans-serif; font-size: 19px; line-height: 1.6; max-width: 600px; }

/* CTA BAND */
.cta-band { background: var(--gold); padding: 70px 60px; text-align: center; }
.cta-band h2 { color: var(--navy); margin: 0 auto 16px; max-width: 600px; }
.cta-band p { font-family: 'Arial', sans-serif; font-size: 18px; color: var(--navy); opacity: 0.8; max-width: 520px; margin: 0 auto 36px; line-height: 1.6; }

/* FOOTER */
footer { background: var(--navy); padding: 44px 60px; display: flex; justify-content: space-between; align-items: center; }
.footer-logo { color: var(--white); font-size: 18px; font-weight: bold; }
.footer-logo span { color: var(--gold); }
.footer-links { display: flex; gap: 24px; }
.footer-links a { font-family: 'Arial', sans-serif; font-size: 14px; color: rgba(255,255,255,0.6); }
.footer-links a:hover { color: var(--gold); }
.footer-right { font-family: 'Arial', sans-serif; font-size: 14px; color: rgba(255,255,255,0.5); text-align: right; line-height: 1.8; }
.footer-right a { color: rgba(255,255,255,0.6); }

/* DIVIDER */
.gold-divider { width: 60px; height: 3px; background: var(--gold); margin: 20px 0; }
.gold-divider.centered { margin: 20px auto; }

/* ============================================
   MOBILE RESPONSIVE
   ============================================ */

/* Tablet (768px and below) */
@media (max-width: 768px) {

  /* NAV */
  nav { padding: 0 20px; height: 70px; }
  .nav-links { gap: 16px; }
  .nav-links a { font-size: 13px; }
  .nav-links a:not(.nav-cta):not(.active):nth-child(-n+3) { display: none; }

  /* SECTIONS */
  section { padding: 56px 24px; }

  /* PAGE HEADER */
  .page-header { padding: 52px 24px 48px; }
  .page-header h1 { font-size: 32px; }
  .page-header p { font-size: 16px; }

  /* HEADINGS */
  h2 { font-size: 28px; }

  /* CTA BAND */
  .cta-band { padding: 52px 24px; }

  /* FOOTER */
  footer { flex-direction: column; gap: 20px; padding: 36px 24px; text-align: center; }
  .footer-links { flex-wrap: wrap; justify-content: center; gap: 16px; }
  .footer-right { text-align: center; }
}

/* Mobile (480px and below) */
@media (max-width: 480px) {

  /* NAV -- show logo + CTA only */
  nav { padding: 0 16px; height: 64px; }
  .nav-links a:not(.nav-cta) { display: none; }
  .nav-cta { padding: 8px 16px; font-size: 13px; }

  /* SECTIONS */
  section { padding: 48px 16px; }

  /* PAGE HEADER */
  .page-header { padding: 44px 16px 40px; }
  .page-header h1 { font-size: 26px; }
  .page-header p { font-size: 15px; }

  /* HEADINGS */
  h1 { font-size: 28px; }
  h2 { font-size: 24px; }

  /* SECTION SUB */
  .section-sub { font-size: 15px; margin-bottom: 32px; }

  /* BUTTONS */
  .btn-primary, .btn-secondary, .btn-navy, .btn-outline { padding: 13px 24px; font-size: 15px; width: 100%; text-align: center; display: block; }

  /* CTA BAND */
  .cta-band { padding: 44px 16px; }
  .cta-band h2 { font-size: 24px; }
  .cta-band p { font-size: 16px; }

  /* FOOTER */
  footer { padding: 32px 16px; gap: 16px; }
  .footer-links { gap: 12px; }
}

/* ============================================
   GRID OVERRIDES FOR MOBILE
   ============================================ */
@media (max-width: 768px) {
  /* Any 2-3 column grids collapse to 1 column */
  [style*="grid-template-columns"],
  .origin-inner,
  .founder-inner,
  .values-grid,
  .steps,
  .module-grid,
  .serving-grid,
  .pricing-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  /* Hero button group */
  .hero-buttons { flex-direction: column; align-items: center; gap: 12px; }
  .hero-buttons a { width: 100%; max-width: 320px; text-align: center; }

  /* Stat boxes wrap */
  .stat-bar { flex-wrap: wrap; gap: 12px; justify-content: center; padding: 28px 16px; }
  .stat-box { min-width: 140px; flex: 1; }

  /* Inline grids in HTML */
  div[style*="display:grid"], div[style*="display: grid"] {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
  }

  /* Module cards full width */
  .module-card { width: 100%; }

  /* Pull quotes */
  .pull-quote { padding: 20px; }

  /* Section padding fixes */
  .max-1100, .max-700 { padding: 0 4px; }
}

@media (max-width: 480px) {
  /* Stat boxes single column */
  .stat-box { min-width: 100%; }

  /* Founder card */
  .founder-card { padding: 28px 20px; }

  /* Value cards */
  .value-card { padding: 24px 20px; }

  /* Step cards */
  .step { padding: 24px 20px; }
}

/* ============================================
   MOBILE FIX -- INLINE STYLE OVERRIDES
   ============================================ */
@media (max-width: 768px) {

  /* Force all sections and divs to respect viewport width */
  section, div, footer, nav, header {
    max-width: 100%;
  }

  /* Override inline padding on any div with wide padding */
  div[style*="padding: 80px 60px"],
  div[style*="padding: 70px 60px"],
  div[style*="padding: 48px 40px"],
  div[style*="padding: 80px"] {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* Collapse ALL inline grids */
  div[style*="display:grid"],
  div[style*="display: grid"] {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
  }

  /* Kill fixed widths on inline elements */
  div[style*="max-width: 700px"],
  div[style*="max-width: 600px"],
  div[style*="max-width: 640px"],
  div[style*="max-width: 580px"] {
    max-width: 100% !important;
  }

  /* Fix inner containers */
  .max-1100, .max-700 {
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100%;
  }
}

@media (max-width: 480px) {
  /* Extra tight on phone */
  div[style*="padding: 80px 60px"],
  div[style*="padding: 70px 60px"],
  div[style*="padding: 48px 40px"] {
    padding-left: 16px !important;
    padding-right: 16px !important;
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }

  section { padding: 44px 16px; }
  nav { padding: 0 16px; }
  .page-header { padding: 40px 16px 36px; }
  footer { padding: 28px 16px; }
}
