/* === SG — Force Apple system font across all elementor content === */
.elementor-section, .elementor-section *, .elementor-widget, .elementor-widget * { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important; }
h1, h2, h3, h4, h5, h6, p, span, a, li, strong, em, button, input, textarea, select { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important; }

/* ============================================================
   Search Goodfriend — Shared Styles
   Paste this once into:
   WordPress > Appearance > Customize > Additional CSS
   (or Elementor > Site Settings > Custom CSS)

   Then on any page or HTML widget, the classes below "just work".
   ============================================================ */

:root {
  --sg-navy: #1B3A5C;
  --sg-navy-deep: #0F2A48;
  --sg-orange: #E67E22;
  --sg-orange-bright: #FF7A2B;
  --sg-dark: #1B2735;
  --sg-bg: #F8F9FA;
  --sg-bg-alt: #ECEFF1;
  --sg-muted: #7F8C9B;
  --sg-light: #FFFFFF;
  --sg-border: #E1E5E8;
}

/* ============= Hero gradient block (use on Elementor Section background) ============= */
.sg-hero-gradient {
  background: linear-gradient(135deg, var(--sg-navy) 0%, #284e7a 60%, var(--sg-orange) 140%) !important;
  color: white;
  position: relative;
  overflow: hidden;
}
.sg-hero-gradient h1, .sg-hero-gradient h2, .sg-hero-gradient h3 { color: white !important; }
.sg-hero-gradient p { color: #D5E2F3 !important; }

/* Final-CTA gradient (different angle) */
.sg-final-cta-gradient {
  background: linear-gradient(135deg, var(--sg-navy) 0%, var(--sg-orange) 130%) !important;
  color: white !important;
}
.sg-final-cta-gradient h1, .sg-final-cta-gradient h2 { color: white !important; }
.sg-final-cta-gradient h2 .kw, .sg-final-cta-gradient .kw { color: var(--sg-orange-bright) !important; }
.sg-final-cta-gradient p { color: #D5E2F3 !important; }

/* ============= Eyebrow label (small orange caps text above H2) ============= */
.sg-eyebrow {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  color: var(--sg-orange);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 8px;
}

/* Eyebrow when on dark hero background */
.sg-hero-gradient .sg-eyebrow,
.sg-eyebrow-on-dark {
  background: rgba(255,255,255,0.12);
  color: var(--sg-orange-bright);
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 13px;
  text-transform: none;
  letter-spacing: 0.5px;
}

/* ============= Headline highlight (orange .kw inside H1/H2) ============= */
.sg-kw, .kw { color: var(--sg-orange) !important; }
.sg-hero-gradient .sg-kw,
.sg-hero-gradient .kw { color: var(--sg-orange-bright) !important; }

/* ============= Buttons ============= */
.sg-btn-primary {
  background: var(--sg-orange);
  color: white !important;
  padding: 14px 28px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 16px;
  text-decoration: none !important;
  display: inline-block;
  box-shadow: 0 4px 14px rgba(230,126,34,0.3);
  transition: background 0.15s;
}
.sg-btn-primary:hover { background: var(--sg-orange-bright); }

.sg-btn-secondary {
  color: white !important;
  padding: 14px 22px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 16px;
  text-decoration: none !important;
  border: 1px solid rgba(255,255,255,0.3);
  display: inline-block;
}
.sg-btn-secondary:hover { background: rgba(255,255,255,0.1); }

/* ============= Answer-first paragraph block ============= */
.sg-answer-first {
  background: white;
  border-left: 4px solid var(--sg-orange);
  padding: 28px 32px;
  border-radius: 6px;
  max-width: 820px;
  font-size: 18px;
  line-height: 1.65;
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
  color: var(--sg-dark);
}

/* ============= Pain card (buyer-voice) ============= */
.sg-pain-card {
  background: white;
  padding: 24px 28px;
  border-radius: 10px;
  border-top: 4px solid var(--sg-orange);
}
.sg-pain-card .quote {
  font-size: 18px;
  font-weight: 700;
  color: var(--sg-navy);
  margin-bottom: 10px;
  line-height: 1.35;
}
.sg-pain-card .body {
  font-size: 14px;
  color: #4A5868;
  line-height: 1.55;
}

/* ============= Feature card (offering grid) ============= */
.sg-feature {
  background: white;
  padding: 28px;
  border-radius: 10px;
  border: 1px solid var(--sg-border);
}
.sg-feature h3 {
  font-size: 18px;
  color: var(--sg-navy);
  margin: 0 0 8px;
  font-weight: 700;
}
.sg-feature p {
  font-size: 14px;
  color: #4A5868;
  line-height: 1.6;
  margin: 0;
}

/* ============= Process step ============= */
.sg-step {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 18px;
  align-items: start;
  margin-bottom: 14px;
}
.sg-step .num {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--sg-navy);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 18px;
}
.sg-step:nth-child(odd) .num { background: var(--sg-orange); }
.sg-step h4 {
  font-size: 17px;
  color: var(--sg-navy);
  margin: 0 0 4px;
  font-weight: 700;
}
.sg-step p {
  font-size: 14px;
  color: #4A5868;
  margin: 0;
}

/* ============= Stat ============= */
.sg-stat { text-align: center; }
.sg-stat .num {
  font-size: 44px;
  font-weight: 800;
  color: var(--sg-navy);
  letter-spacing: -1px;
  line-height: 1.1;
}
.sg-stat .num .accent { color: var(--sg-orange); }
.sg-stat .lbl {
  font-size: 14px;
  color: var(--sg-muted);
  margin-top: 6px;
}

/* ============= FAQ entry ============= */
.sg-qa {
  background: white;
  padding: 24px 28px;
  border-radius: 8px;
  margin-bottom: 14px;
}
.sg-qa h4 {
  font-size: 17px;
  color: var(--sg-navy);
  margin: 0 0 8px;
  font-weight: 700;
}
.sg-qa p {
  font-size: 15px;
  color: #3D4856;
  line-height: 1.6;
  margin: 0;
}

/* ============= Pricing card ============= */
.sg-pricing-card {
  background: white;
  padding: 36px;
  border-radius: 12px;
  border: 2px solid var(--sg-orange);
  text-align: center;
  max-width: 560px;
  margin: 0 auto;
}
.sg-pricing-card .from { font-size: 14px; color: var(--sg-muted); }
.sg-pricing-card .price {
  font-size: 48px;
  font-weight: 800;
  color: var(--sg-navy);
  margin: 6px 0;
}
.sg-pricing-card .price .accent { color: var(--sg-orange); }
.sg-pricing-card .per { font-size: 14px; color: var(--sg-muted); margin-bottom: 18px; }
.sg-pricing-card .desc {
  font-size: 15px;
  color: #3D4856;
  line-height: 1.55;
  max-width: 460px;
  margin: 0 auto 24px;
}

/* ============= Comparison table ============= */
.sg-comparison {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}
.sg-comparison table {
  width: 100%;
  border-collapse: collapse;
}
.sg-comparison th, .sg-comparison td {
  padding: 16px 20px;
  text-align: left;
  font-size: 14px;
}
.sg-comparison thead {
  background: var(--sg-navy);
  color: white;
}
.sg-comparison thead th:nth-child(2) { background: var(--sg-orange); }
.sg-comparison tbody tr:nth-child(even) { background: var(--sg-bg); }
.sg-comparison td:first-child { font-weight: 700; color: var(--sg-navy); }
.sg-comparison td:nth-child(2) { font-weight: 700; }

/* ============= AI answer card (hero right column) ============= */
.sg-ai-card {
  background: white;
  border-radius: 14px;
  padding: 24px;
  color: var(--sg-dark);
  box-shadow: 0 20px 60px rgba(0,0,0,0.25);
}
.sg-ai-card .label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--sg-orange);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 14px;
}
.sg-ai-card .label::before { content: '✦'; font-size: 16px; }
.sg-ai-card .answer {
  font-size: 16px;
  line-height: 1.6;
  margin-bottom: 18px;
}
.sg-ai-card .citations {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding-top: 16px;
  border-top: 1px solid var(--sg-border);
}
.sg-ai-card .chip {
  font-size: 12px;
  padding: 5px 11px;
  border-radius: 12px;
  font-weight: 600;
  background: var(--sg-bg-alt);
  color: var(--sg-dark);
}
.sg-ai-card .chip.brand {
  background: var(--sg-orange);
  color: white;
}

/* ============= Case study card ============= */
.sg-case {
  background: white;
  border-radius: 12px;
  border-top: 4px solid var(--sg-navy);
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
  overflow: hidden;
}
.sg-case .hero-img {
  width: 100%;
  height: 200px;
  overflow: hidden;
  background: var(--sg-light);
}
.sg-case .hero-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sg-case .body { padding: 28px; }
.sg-case .label {
  font-size: 12px;
  font-weight: 700;
  color: var(--sg-orange);
  letter-spacing: 1px;
  text-transform: uppercase;
}
.sg-case h3 {
  font-size: 22px;
  color: var(--sg-navy);
  margin: 6px 0 14px;
  font-weight: 800;
}
.sg-case .meta { display: grid; gap: 10px; font-size: 14px; }
.sg-case .meta strong { color: var(--sg-navy); }
.sg-case .meta-row {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 12px;
}
.sg-case .case-link {
  display: inline-block;
  margin-top: 16px;
  color: var(--sg-orange);
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
}

/* ============= Founder card ============= */
.sg-founder {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 32px;
  align-items: center;
  background: white;
  padding: 32px;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}
.sg-founder .photo {
  width: 200px;
  height: 240px;
  border-radius: 12px;
  overflow: hidden;
  background: linear-gradient(135deg, var(--sg-navy), var(--sg-orange));
}
.sg-founder .photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sg-founder .name {
  font-size: 24px;
  font-weight: 800;
  color: var(--sg-navy);
}
.sg-founder .role {
  font-size: 14px;
  color: var(--sg-orange);
  font-weight: 700;
  margin-bottom: 12px;
}
.sg-founder .bio {
  font-size: 15px;
  color: #3D4856;
  line-height: 1.6;
  margin: 0 0 16px;
}
.sg-founder .pull-quote {
  font-style: italic;
  color: var(--sg-navy);
  font-weight: 600;
  font-size: 16px;
  margin: 0 0 16px;
}

/* ============= Related-link tile ============= */
.sg-related-link {
  display: block;
  background: white;
  padding: 16px 20px;
  border-radius: 8px;
  border-left: 3px solid var(--sg-orange);
  text-decoration: none !important;
  color: var(--sg-navy) !important;
  font-weight: 600;
  font-size: 15px;
}

/* ============= Mobile responsive ============= */
@media (max-width: 800px) {
  .sg-founder { grid-template-columns: 1fr; text-align: center; }
  .sg-founder .photo { margin: 0 auto; }
  .sg-step { grid-template-columns: 44px 1fr; }
}

/* === Search Goodfriend: System font stack === */
body, button, input, optgroup, select, textarea,
h1, h2, h3, h4, h5, h6,
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor,
.elementor-widget-html,
.elementor-widget-button .elementor-button,
.ast-container, .entry-title, .site-title, .menu-item a {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

/* Final CTA centered */
.elementor-element-hv000044 .elementor-element.sg-btn-row > .elementor-widget-wrap,
.elementor-element-hv000044 .elementor-element.sg-btn-row > .elementor-element-populated {
  justify-content: center !important;
}

/* Target the inline-styled hero button row inside HTML widgets (old render) */
.elementor-widget-html div[style*="display:flex"][style*="gap:14px"],
.elementor-widget-html div[style*="display: flex"][style*="gap:14px"] {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  flex-wrap: wrap !important;
}
.elementor-element-hv000044 .elementor-widget-html div[style*="display:flex"] {
  justify-content: center !important;
}
/* The actual button anchor elements - normalize line-height and box model */
.elementor-widget-html a.sg-btn-primary,
.elementor-widget-html a.sg-btn-secondary,
.elementor-widget-html a[style*="background:#E67E22"][style*="color:#fff"],
.elementor-widget-html a[style*="border:2px solid"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
}

/* Native button widgets (new render) */
.elementor-element.sg-btn-row > .elementor-widget-wrap,
.elementor-element.sg-btn-row > .elementor-element-populated {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 14px !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
}
.elementor-element.sg-btn-row .elementor-widget-button {
  width: auto !important;
  margin: 0 !important;
}
.elementor-element.sg-btn-row .elementor-widget-button .elementor-button-wrapper {
  display: inline-flex !important;
  align-items: center !important;
}
.elementor-element.sg-btn-row .elementor-widget-button .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
}
.elementor-element-hv000044 .elementor-element.sg-btn-row > .elementor-widget-wrap,
.elementor-element-hv000044 .elementor-element.sg-btn-row > .elementor-element-populated {
  justify-content: center !important;
}

/* OLD HTML widget render fallback: vertical-center the inline buttons */
.elementor-widget-html div[style*="display:flex"] {
  align-items: center !important;
}
.elementor-widget-html a[class*="sg-btn"] {
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
  line-height: 1 !important;
}

/* Inner section that holds the buttons: keep its row as flex with small gap, narrow columns */
.elementor-element.sg-btn-tight > .elementor-container,
.elementor-element.sg-btn-tight > .elementor-container > .elementor-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
  align-items: center !important;
  justify-content: flex-start !important;
}
.elementor-element.sg-btn-tight > .elementor-container .elementor-column {
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
}
.elementor-element.sg-btn-tight .elementor-widget-button {
  width: auto !important;
  margin: 0 !important;
}
/* Button itself: no line wrap, inline-flex, same height/center */
.sg-btn-nowrap .elementor-button,
.sg-btn-nowrap .elementor-button-link,
.sg-btn-nowrap a.elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
}
.sg-btn-nowrap .elementor-button-text,
.sg-btn-nowrap .elementor-button-content-wrapper {
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
}
/* Final CTA (centered variant) */
.elementor-element-hv000044 .elementor-element.sg-btn-tight > .elementor-container > .elementor-row {
  justify-content: center !important;
}

/* === SG button row final fix (target by widget id b0007d2 hero, b00080c CTA) === */
/* Widget button containers — zero margins so they align in flex row */
.sg-btn-nowrap,
.elementor-widget.elementor-widget-button.sg-btn-nowrap,
.elementor-element.sg-btn-nowrap {
  margin: 0 !important;
}
/* Container of the buttons — flex with gap */
.elementor-element-b0007d2 > .elementor-widget-wrap,
.elementor-element-b0007d2 > .elementor-element-populated,
.elementor-element.sg-btn-row > .elementor-widget-wrap,
.elementor-element.sg-btn-row > .elementor-element-populated {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 14px !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
}
.elementor-element.sg-btn-row-center > .elementor-widget-wrap,
.elementor-element.sg-btn-row-center > .elementor-element-populated {
  justify-content: center !important;
}
/* Each button widget contributes auto-width to flex row, no fill */
.elementor-element-b0007d2 > .elementor-widget-wrap > .elementor-element,
.elementor-element-b0007d2 > .elementor-element-populated > .elementor-element,
.elementor-element.sg-btn-row .elementor-widget-button {
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
}
/* Anchor element: nowrap text + arrow */
.sg-btn-nowrap a.elementor-button,
.sg-btn-nowrap .elementor-button-wrapper,
.sg-btn-nowrap .elementor-button-text,
.sg-btn-nowrap .elementor-button-content-wrapper {
  white-space: nowrap !important;
}
.sg-btn-nowrap a.elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

/* === SG stat strip column align (flex-start so headings line up across all 3 cols) === */
.elementor-element-hv000013 .elementor-widget-wrap,
.elementor-element-hv000013 .elementor-element-populated {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
}
.elementor-element-hv000013 .elementor-widget {
  width: 100% !important;
}
/* Kill default 20px bottom margin on the heading widget so number sits tight on label */
.elementor-element-hv000013 .elementor-widget-heading {
  margin-bottom: 4px !important;
}

/* === SG final CTA buttons center === */
.elementor-element-hv000044 .elementor-inner-section .elementor-widget-wrap,
.elementor-element-hv000044 .elementor-inner-section .elementor-element-populated,
.elementor-element-b0007d8 > .elementor-widget-wrap,
.elementor-element-b0007d8 > .elementor-element-populated {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 14px !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
}
.elementor-element-hv000044 .elementor-inner-section .elementor-widget-button,
.elementor-element-b0007d8 .elementor-widget-button {
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
}

/* === SG header (matches mockup) === */
/* Logo: split site title into "Search" (navy) + "Goodfriend" (orange via ::after pseudo) */
.site-title, .site-title a {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #1B3A5C !important;
  letter-spacing: -0.3px !important;
  text-decoration: none !important;
}
.site-title a { color: #1B3A5C !important; }
/* Color the "Goodfriend" word orange. Trick: hide original text, render replacement with mixed colors via custom HTML in title would be cleaner; since site title is plain text, use word-spacing trick.  Fallback: orange-tint the whole title and bold-weight. */
.ast-site-identity .site-title,
.ast-site-identity .site-title a {
  background: linear-gradient(90deg, #1B3A5C 0%, #1B3A5C 47%, #E67E22 47%, #E67E22 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

/* Primary menu items */
.main-header-menu > li > a,
.main-navigation > ul > li > a,
.ast-builder-menu-1 .main-header-menu > li > a,
#ast-hf-menu-1 > li > a,
header li.menu-item > a {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1B3A5C !important;
}
header li.menu-item > a:hover {
  color: #E67E22 !important;
}

/* Dropdown submenu under Services */
header .sub-menu, header ul.sub-menu, .ast-builder-menu-1 .sub-menu {
  background: #fff !important;
  border: 1px solid #E2E6EB !important;
  border-radius: 10px !important;
  box-shadow: 0 12px 30px rgba(27,58,92,0.12) !important;
  padding: 8px 0 !important;
  min-width: 240px !important;
}
header .sub-menu li > a, header ul.sub-menu li > a {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #1B3A5C !important;
  padding: 10px 18px !important;
}
header .sub-menu li > a:hover {
  color: #E67E22 !important;
  background: #F8F9FA !important;
}

/* "Get a free audit →" CTA pill */
header li.site-cta > a,
header li.sg-header-cta > a,
header li.menu-item.site-cta > a {
  display: inline-block !important;
  background: #E67E22 !important;
  color: #fff !important;
  padding: 10px 20px !important;
  border-radius: 8px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  text-decoration: none !important;
  line-height: 1 !important;
  margin-left: 8px !important;
}
header li.site-cta > a:hover,
header li.sg-header-cta > a:hover {
  background: #D86C12 !important;
  color: #fff !important;
}

/* Sticky header */
header.site-header, .ast-header-break-point .main-header-bar-wrap, #masthead {
  position: sticky !important;
  top: 0 !important;
  z-index: 80 !important;
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(27,58,92,0.06) !important;
}

/* === SG hide admin bar on frontend (Option B) === */
#wpadminbar { display: none !important; }
html { margin-top: 0 !important; }
html.wp-toolbar { margin-top: 0 !important; padding-top: 0 !important; }
body.admin-bar { margin-top: 0 !important; }
body.admin-bar #masthead, body.admin-bar .site-header { top: 0 !important; }

/* Ensure the row stretches columns to same height — works on any section that contains a photo col */
.elementor-section:has(.sg-hero-photo-col) > .elementor-container,
.elementor-section:has(.sg-hero-photo-col) > .elementor-container > .elementor-row,
.elementor-section:has(.sg-founder-photo-col) > .elementor-container,
.elementor-section:has(.sg-founder-photo-col) > .elementor-container > .elementor-row {
  align-items: stretch !important;
}

/* Section row: stretch columns to same height */
.elementor-section:has(.sg-hero-photo-fill) > .elementor-container,
.elementor-section:has(.sg-hero-photo-fill) > .elementor-container > .elementor-row,
.elementor-section:has(.sg-founder-photo-fill) > .elementor-container,
.elementor-section:has(.sg-founder-photo-fill) > .elementor-container > .elementor-row {
  align-items: stretch !important;
}
/* Column containing photo: keep its natural width, make wrap flex-column stretch */
.elementor-column:has(> .elementor-element-populated > .sg-hero-photo-fill),
.elementor-column:has(.sg-hero-photo-fill),
.elementor-column:has(.sg-founder-photo-fill) {
  align-self: stretch !important;
}
.elementor-column:has(.sg-hero-photo-fill) > .elementor-element-populated,
.elementor-column:has(.sg-hero-photo-fill) > .elementor-widget-wrap,
.elementor-column:has(.sg-founder-photo-fill) > .elementor-element-populated,
.elementor-column:has(.sg-founder-photo-fill) > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  height: 100% !important;
  width: 100% !important;
}
/* The photo widget itself: take all available height + full column width */
.sg-hero-photo-fill,
.sg-founder-photo-fill {
  flex: 1 1 auto !important;
  width: 100% !important;
  height: 100% !important;
  position: relative !important;
}
.sg-hero-photo-fill > .elementor-widget-container,
.sg-founder-photo-fill > .elementor-widget-container {
  width: 100% !important;
  height: 100% !important;
  position: relative !important;
}
/* Image element: fill the widget container exactly, crop with object-fit */
.sg-hero-photo-fill img,
.sg-founder-photo-fill img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 18px !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
}

/* Section row: stretch columns to equal height */
.elementor-section:has(.sg-hero-photo-fill) > .elementor-container,
.elementor-section:has(.sg-founder-photo-fill) > .elementor-container {
  align-items: stretch !important;
}
/* Column wrap fills full column height */
.elementor-column:has(.sg-hero-photo-fill) > .elementor-element-populated,
.elementor-column:has(.sg-hero-photo-fill) > .elementor-widget-wrap,
.elementor-column:has(.sg-founder-photo-fill) > .elementor-element-populated,
.elementor-column:has(.sg-founder-photo-fill) > .elementor-widget-wrap {
  height: 100% !important;
  width: 100% !important;
}
/* The image widget itself fills the wrap */
.sg-hero-photo-fill,
.sg-founder-photo-fill {
  height: 100% !important;
  width: 100% !important;
  position: relative !important;
  margin: 0 !important;
}
.sg-hero-photo-fill > .elementor-widget-container,
.sg-founder-photo-fill > .elementor-widget-container {
  height: 100% !important;
  width: 100% !important;
  position: relative !important;
}
/* Image: absolutely fill widget container with object-fit cover */
.sg-hero-photo-fill img,
.sg-founder-photo-fill img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 18px !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  max-width: none !important;
}

/* === SG hero/founder photo fill (FORCE column width to prevent collapse) === */
/* CRITICAL: pin the photo column to its native fraction so it cannot collapse */
.elementor-column:has(.sg-hero-photo-fill) {
  flex: 0 0 42% !important;
  width: 42% !important;
  max-width: 42% !important;
  min-width: 42% !important;
  align-self: stretch !important;
}
.elementor-column:has(.sg-founder-photo-fill) {
  flex: 0 0 42% !important;
  width: 42% !important;
  max-width: 42% !important;
  min-width: 42% !important;
  align-self: stretch !important;
}
/* Section row: ensure columns stretch to equal height */
.elementor-section:has(.sg-hero-photo-fill) > .elementor-container,
.elementor-section:has(.sg-founder-photo-fill) > .elementor-container {
  align-items: stretch !important;
}
/* Column wrap fills full column height + width */
.elementor-column:has(.sg-hero-photo-fill) > .elementor-element-populated,
.elementor-column:has(.sg-hero-photo-fill) > .elementor-widget-wrap,
.elementor-column:has(.sg-founder-photo-fill) > .elementor-element-populated,
.elementor-column:has(.sg-founder-photo-fill) > .elementor-widget-wrap {
  height: 100% !important;
  width: 100% !important;
}
/* Photo widget div + its container fill the wrap */
.sg-hero-photo-fill,
.sg-founder-photo-fill {
  height: 100% !important;
  width: 100% !important;
  position: relative !important;
  margin: 0 !important;
}
.sg-hero-photo-fill > .elementor-widget-container,
.sg-founder-photo-fill > .elementor-widget-container {
  height: 100% !important;
  width: 100% !important;
  position: relative !important;
}
/* Image: absolutely fill, crop with object-fit */
.sg-hero-photo-fill img,
.sg-founder-photo-fill img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 18px !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  max-width: none !important;
}

/* Force columns to lay out heading then label vertically with all headings starting at same top */
.sg-stat-col > .elementor-widget-wrap,
.sg-stat-col > .elementor-element-populated {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
}
.sg-stat-col .elementor-widget {
  width: 100% !important;
}
.sg-stat-col .elementor-widget-heading {
  margin-bottom: 4px !important;
}

/* === SG stat col — locked min-height envelope so 1-line + multi-line headings align === */
.sg-stat-col > .elementor-widget-wrap,
.sg-stat-col > .elementor-element-populated {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
}
.sg-stat-col .elementor-widget {
  width: 100% !important;
}
/* The heading widget container is forced to a fixed min-height so all 3 columns have the SAME 
   space reserved for the orange text, regardless of wrap count. Heading text is vertically 
   CENTERED within this envelope. */
.sg-stat-col .elementor-widget-heading {
  margin-bottom: 12px !important;
}
.sg-stat-col .elementor-widget-heading .elementor-widget-container {
  min-height: 92px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* === SG stat strip headings — force uniform 84px envelope (GEO marketing page) === */
.elementor-element-c00000f .elementor-widget-heading, .elementor-element-c000013 .elementor-widget-heading, .elementor-element-c000017 .elementor-widget-heading { min-height: 84px !important; display: flex !important; align-items: center !important; justify-content: center !important; margin-bottom: 12px !important; }
.elementor-element-c00000f .elementor-widget-heading .elementor-widget-container, .elementor-element-c000013 .elementor-widget-heading .elementor-widget-container, .elementor-element-c000017 .elementor-widget-heading .elementor-widget-container { width: 100% !important; padding: 0 !important; min-height: 0 !important; }
.elementor-element-c00000f .elementor-widget-heading h1, .elementor-element-c00000f .elementor-widget-heading h2, .elementor-element-c00000f .elementor-widget-heading h3, .elementor-element-c000013 .elementor-widget-heading h1, .elementor-element-c000013 .elementor-widget-heading h2, .elementor-element-c000013 .elementor-widget-heading h3, .elementor-element-c000017 .elementor-widget-heading h1, .elementor-element-c000017 .elementor-widget-heading h2, .elementor-element-c000017 .elementor-widget-heading h3 { margin: 0 !important; }

/* === SG GEO marketing page — section spacing fixes === */

/* Process cards — tighten spacing between number, title, text */
.elementor-element-s000049 .elementor-widget-heading { margin-bottom: 4px !important; }
.elementor-element-s000049 .elementor-widget-heading + .elementor-widget-heading { margin-top: 2px !important; }

/* Why GEO matters — keep bottom 0, restore top */
.elementor-element-s00004c { padding-bottom: 0 !important; }
.elementor-element-s00004c .elementor-element-populated { padding-bottom: 0 !important; }

/* Final CTA — center buttons */
.elementor-element-s000053 .elementor-widget-html div[style*="display:flex"][style*="gap:14px"], .elementor-element-s000053 .elementor-widget-html div[style*="display: flex"][style*="gap:14px"], .elementor-element-sgs0022 .elementor-widget-html div[style*="display:flex"][style*="gap:14px"], .elementor-element-sgs0022 .elementor-widget-html div[style*="display: flex"][style*="gap:14px"], .elementor-element-s000037 .elementor-widget-html div[style*="display:flex"][style*="gap:14px"], .elementor-element-s000037 .elementor-widget-html div[style*="display: flex"][style*="gap:14px"] { justify-content: center !important; }

/* === SG GEO Marketing — typography matched to homepage === */
/* Eyebrow H6 (hero + methodology) — 13px / 700 / 1.5px uppercase */
.elementor-element-s00000b h6, .elementor-element-s000049 h6 { font-size: 13px !important; font-weight: 700 !important; letter-spacing: 1.5px !important; }

/* Section H2 main (32px / 700 / -0.3px) — What is GEO + Why GEO matters */
.elementor-element-s00001b h2, .elementor-element-s00004c h2 { font-size: 32px !important; font-weight: 700 !important; letter-spacing: -0.3px !important; }

/* Section H2 large — process works title (target the specific widget w00001e) */
.elementor-element-w00001e h2, .elementor-element-w00001e .elementor-heading-title { font-size: 32px !important; font-weight: 700 !important; letter-spacing: -0.3px !important; line-height: 1.2 !important; }

/* Process card subtitles — match homepage card H3 (20px / 600) */
.elementor-element-s000049 .elementor-widget-heading h4 { font-size: 20px !important; font-weight: 600 !important; letter-spacing: normal !important; }

/* === SG service pages — global typography aligned to homepage === */
/* Eyebrow H6 — universal */
.elementor-widget-heading h6, .elementor-widget-heading .elementor-heading-title h6, h6.elementor-heading-title { font-size: 13px !important; font-weight: 700 !important; letter-spacing: 1.5px !important; text-transform: uppercase !important; }

/* Hero H1 in heading widgets — to 48/800/-0.6 */
.elementor-widget-heading h1, .elementor-widget-heading h1.elementor-heading-title, h1.elementor-heading-title { font-size: 48px !important; font-weight: 800 !important; letter-spacing: -0.6px !important; line-height: 1.15 !important; }

/* Section H2 in heading widgets — to 32/700/-0.3 */
.elementor-widget-heading h2, .elementor-widget-heading h2.elementor-heading-title, h2.elementor-heading-title { font-size: 32px !important; font-weight: 700 !important; letter-spacing: -0.3px !important; line-height: 1.2 !important; }

/* Section H2 in text-editor (inline 28px) — to 32/700/-0.3 */
.elementor-widget-text-editor h2 { font-size: 32px !important; font-weight: 700 !important; letter-spacing: -0.3px !important; }

/* Card subtitle H4 — to 20/600 */
.elementor-widget-heading h4, .elementor-widget-heading h4.elementor-heading-title, h4.elementor-heading-title { font-size: 20px !important; font-weight: 600 !important; letter-spacing: normal !important; }

/* Exception — stat strip H2s (preserve 42/800/-1px on GEO/SEO/Web Design pages) */
.elementor-element-c00000f h2.elementor-heading-title, .elementor-element-c000013 h2.elementor-heading-title, .elementor-element-c000017 h2.elementor-heading-title { font-size: 42px !important; font-weight: 800 !important; letter-spacing: -1px !important; }

/* Exception — process card number H2s (01-06) preserve 32/800 */
.elementor-element-w000020 h2.elementor-heading-title, .elementor-element-w000026 h2.elementor-heading-title, .elementor-element-w00002c h2.elementor-heading-title, .elementor-element-w000034 h2.elementor-heading-title, .elementor-element-w00003a h2.elementor-heading-title, .elementor-element-w000040 h2.elementor-heading-title { font-size: 32px !important; font-weight: 800 !important; letter-spacing: normal !important; }

/* CTA buttons centering — any flex div with inline justify-content:center wins */
.elementor-widget-html div[style*="justify-content:center"], .elementor-widget-html div[style*="justify-content: center"] { justify-content: center !important; }

/* === sg-single-post-template === */
.single-post .ast-container { max-width: 880px; }
.single-post .site-content-contain .site-content { padding-top: 0; }
.single-post .ast-article-single { padding: 0 !important; background: #fff; box-shadow: none; }
.single-post .entry-header {
  background: linear-gradient(180deg, #ffffff, #F8F9FA);
  margin: 0 -24px 30px;
  padding: 60px 40px 40px;
  border-bottom: 1px solid #E2E6EB;
  text-align: left;
}
.single-post .entry-header .entry-title {
  color: #1B3A5C;
  font-size: 44px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.5px;
  margin: 0 0 18px;
}
.single-post .entry-meta,
.single-post .ast-single-post-cats,
.single-post .post-meta,
.single-post .ast-single-post-meta {
  color: #E67E22 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 14px;
}
.single-post .entry-meta a,
.single-post .ast-single-post-meta a {
  color: #E67E22 !important;
  text-decoration: none;
}
.single-post .entry-content {
  padding: 0 40px 40px;
  max-width: 760px;
  margin: 0 auto;
}
.single-post .entry-content > p:first-of-type {
  font-size: 19px;
  color: #3D4856;
  line-height: 1.6;
  margin-bottom: 24px;
}
.single-post .entry-content p {
  font-size: 17px;
  line-height: 1.75;
  color: #3D4856;
  margin-bottom: 18px;
}
.single-post .entry-content h2 {
  color: #1B3A5C;
  font-size: 28px;
  font-weight: 800;
  margin: 40px 0 16px;
  letter-spacing: -0.3px;
}
.single-post .entry-content h3 {
  color: #1B3A5C;
  font-size: 20px;
  font-weight: 700;
  margin: 30px 0 12px;
}
.single-post .entry-content a { color: #E67E22; text-decoration: none; }
.single-post .entry-content a:hover { text-decoration: underline; }
.single-post .entry-content ul, .single-post .entry-content ol { padding-left: 24px; margin-bottom: 18px; }
.single-post .entry-content ul li, .single-post .entry-content ol li {
  font-size: 17px; line-height: 1.7; color: #3D4856; margin-bottom: 6px;
}
.single-post #secondary, .single-post .ast-author-meta, .single-post .ast-author-box,
.single-post .ast-single-related-posts-container { display: none !important; }
.single-post .nav-links { max-width: 760px; margin: 30px auto 0; padding: 30px 40px 0; border-top: 1px solid #E2E6EB; }
/* === end-sg-single-post-template === */

/* === sg-block-patterns === */
.single-post .entry-content .sg-ai-answer {
  background: #fff;
  border-left: 4px solid #E67E22;
  border-radius: 0 8px 8px 0;
  padding: 22px 28px !important;
  box-shadow: 0 4px 14px rgba(27,58,92,.08);
  margin: 30px 0 !important;
}
.single-post .entry-content .sg-ai-answer p {
  font-size: 16px;
  color: #3D4856;
  line-height: 1.65;
  margin-bottom: 0;
}
.single-post .entry-content .sg-ai-answer p:first-of-type::before {
  content: 'ANSWER';
  display: block;
  color: #E67E22;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  margin-bottom: 8px;
}
.single-post .entry-content .sg-takeaway {
  border-left: 3px solid #E67E22 !important;
  background: transparent !important;
  padding: 4px 0 4px 18px !important;
  margin: 24px 0 !important;
  border-radius: 0 !important;
}
.single-post .entry-content .sg-takeaway p {
  font-weight: 700;
  color: #1B3A5C;
  font-size: 17px;
  margin-bottom: 0;
}
.single-post .entry-content .sg-faq {
  background: #F8F9FA !important;
  padding: 40px !important;
  border-radius: 10px;
  margin: 40px 0 !important;
}
.single-post .entry-content .sg-faq > h2 {
  text-align: center;
  margin: 0 0 24px !important;
  font-size: 22px !important;
  color: #1B3A5C;
}
.single-post .entry-content .sg-faq-item {
  background: #fff !important;
  border-radius: 10px;
  padding: 18px 22px !important;
  margin: 0 0 12px !important;
  border-left: 3px solid #E67E22;
  box-shadow: 0 2px 8px rgba(27,58,92,.04);
}
.single-post .entry-content .sg-faq-item h3 {
  margin: 0 0 6px !important;
  color: #1B3A5C;
  font-size: 16px !important;
  font-weight: 700;
}
.single-post .entry-content .sg-faq-item p {
  color: #3D4856;
  font-size: 15px;
  line-height: 1.6;
  margin: 0;
}
.single-post .entry-content .sg-cta-band {
  background: linear-gradient(135deg, #1B3A5C, #E67E22) !important;
  padding: 50px 40px !important;
  border-radius: 12px;
  text-align: center;
  margin: 40px 0 !important;
}
.single-post .entry-content .sg-cta-band h2 {
  color: #fff !important;
  margin: 0 0 10px !important;
  font-size: 26px !important;
  font-weight: 800;
}
.single-post .entry-content .sg-cta-band p {
  color: #D5E2F3 !important;
  margin: 0 auto 22px !important;
  font-size: 16px;
  max-width: 520px;
}
.single-post .entry-content .sg-cta-band a, .single-post .entry-content .sg-cta-band .wp-block-button__link {
  display: inline-block !important;
  background: #E67E22 !important;
  color: #fff !important;
  padding: 14px 26px !important;
  border-radius: 8px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  text-decoration: none !important;
}
/* === end-sg-block-patterns === */

/* === sg-featured-image === */
.single-post .ast-blog-featured-section,
.single-post .post-thumbnail,
.single-post figure.wp-block-post-featured-image {
  max-width: 880px;
  margin: 30px auto 0 !important;
  padding: 0 24px;
}
.single-post .ast-blog-featured-section img,
.single-post .post-thumbnail img,
.single-post figure.wp-block-post-featured-image img,
.single-post .wp-post-image {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16/9;
  object-fit: cover;
  border-radius: 14px;
  box-shadow: 0 12px 36px rgba(27,58,92,.18);
  display: block;
}
.single-post .entry-content .wp-block-image {
  margin: 32px 0 !important;
}
.single-post .entry-content .wp-block-image img {
  border-radius: 10px;
  width: 100%;
  height: auto;
}
.single-post .entry-content .wp-block-image figcaption {
  text-align: center;
  color: #7F8C9B;
  font-size: 13px;
  font-style: italic;
  margin-top: 10px;
}
.single-post .entry-content .sg-hero-img {
  margin: 0 -40px 40px !important;
  max-width: none;
}
.single-post .entry-content .sg-hero-img img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  border-radius: 14px;
  box-shadow: 0 12px 36px rgba(27,58,92,.18);
}
.single-post .entry-content .sg-hero-img figcaption {
  text-align: center;
  color: #7F8C9B;
  font-size: 13px;
  font-style: italic;
  margin-top: 10px;
}
/* === end-sg-featured-image === */

/* === sg-featured-image === */
.single-post .ast-single-post-featured-section,
.single-post .ast-single-post-featured-section.post-thumb {
  max-width: 880px !important;
  width: 100% !important;
  margin: 30px auto 30px !important;
  padding: 0 24px !important;
  float: none !important;
}
.single-post .ast-single-post-featured-section img,
.single-post .wp-post-image {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 14px !important;
  box-shadow: 0 12px 36px rgba(27,58,92,.18) !important;
  display: block;
  max-width: none !important;
}
.single-post .ast-article-image-container--wide {
  max-width: 880px;
  margin: 30px auto !important;
}
.single-post .entry-content .wp-block-image {
  margin: 32px 0 !important;
}
.single-post .entry-content .wp-block-image img {
  border-radius: 10px;
  width: 100%;
  height: auto;
}
.single-post .entry-content .wp-block-image figcaption {
  text-align: center;
  color: #7F8C9B;
  font-size: 13px;
  font-style: italic;
  margin-top: 10px;
}
/* === end-sg-featured-image === */

/* === sg-image-reorder === */
.single-post .site-main {
  display: flex !important;
  flex-direction: column !important;
}
.single-post .site-main > article.post {
  display: contents;
}
.single-post .site-main > article.post > .ast-post-format-,
.single-post .site-main > article.post > div {
  display: contents;
}
.single-post .entry-header { order: 1; }
.single-post .ast-single-post-featured-section { order: 2; margin-top: 0 !important; margin-bottom: 30px !important; }
.single-post .entry-content { order: 3; }
.single-post .site-main > .navigation { order: 9; }
.single-post .site-main > .comments-area { order: 10; }
/* === end-sg-image-reorder === */

/* === sg-header === */
.ast-builder-button-wrap .ast-custom-button {
  background: #E67E22 !important;
  color: #ffffff !important;
  border: none !important;
  padding: 11px 22px !important;
  border-radius: 8px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  text-decoration: none !important;
  transition: background .15s ease;
  font-family: -apple-system, BlinkMacSystemFont, sans-serif !important;
}
.ast-builder-button-wrap .ast-custom-button:hover { background: #d3711d !important; }
.main-header-menu > .menu-item > a,
#ast-hf-menu-1 > .menu-item > a {
  font-family: -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  color: #1B3A5C !important;
}
.main-header-menu > .menu-item:hover > a,
#ast-hf-menu-1 > .menu-item:hover > a { color: #E67E22 !important; }
/* center alignment for primary_center menu */
.site-header .ast-hfb-header-section .site-primary-header-inner-wrap .ast-primary-header-bar { width: 100%; }
/* === end-sg-header === */

/* === sg-footer-cols === */
.site-below-footer-wrap, .ast-builder-footer-grid-columns { background: #1B3A5C !important; color: #D5E2F3 !important; }
.site-below-footer-wrap .ast-builder-html-element { padding: 0 !important; }
.sg-footer { padding: 60px 24px 40px; max-width: 1180px; margin: 0 auto; font-family: -apple-system, BlinkMacSystemFont, sans-serif; }
.sg-footer-grid { display: grid; grid-template-columns: 2fr 1.4fr 1fr 1fr; gap: 48px; }
@media (max-width: 880px) { .sg-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; } }
@media (max-width: 480px) { .sg-footer-grid { grid-template-columns: 1fr; gap: 28px; } }
.sg-footer-col h4 { color: #E67E22 !important; font-size: 12px !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: 1.5px; margin: 0 0 14px !important; }
.sg-footer-col ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.sg-footer-col li { margin: 0 0 10px !important; padding: 0 !important; }
.sg-footer-col a { color: #D5E2F3 !important; text-decoration: none !important; font-size: 14px !important; font-weight: 500; transition: color .12s; }
.sg-footer-col a:hover { color: #E67E22 !important; }
.sg-footer-logo { font-weight: 800 !important; font-size: 22px !important; color: #ffffff !important; text-decoration: none !important; display: inline-block; margin-bottom: 12px; letter-spacing: -0.3px; }
.sg-footer-logo span { color: #E67E22 !important; }
.sg-footer-tagline { color: #7F8C9B !important; font-size: 14px !important; line-height: 1.55 !important; margin: 0 !important; max-width: 320px; }
/* copyright row */
.ast-footer-copyright { background: #142B47 !important; padding: 16px 24px !important; text-align: center; }
.ast-footer-copyright p, .ast-footer-copyright { color: #7F8C9B !important; font-size: 12px !important; font-family: -apple-system, BlinkMacSystemFont, sans-serif !important; margin: 0 !important; }
.ast-footer-copyright a { color: #D5E2F3 !important; }
/* === end-sg-footer-cols === */

/* === sg-footer-cols === */
.site-primary-footer-wrap,
.site-footer .ast-builder-grid-row-container,
.site-footer-primary-section-1 {
  background: #1B3A5C !important;
  color: #D5E2F3 !important;
}
.site-footer-primary-section-1 {
  flex: 1 1 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}
.site-primary-footer-wrap .ast-builder-grid-row,
.site-primary-footer-wrap .ast-builder-grid-row-container-inner {
  grid-template-columns: 1fr !important;
  display: block !important;
  max-width: 100% !important;
}
.site-primary-footer-wrap .ast-builder-html-element,
.site-primary-footer-wrap .ast-header-html { padding: 0 !important; width: 100% !important; max-width: 100% !important; }
.sg-footer {
  padding: 60px 24px 40px !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  font-family: -apple-system, BlinkMacSystemFont, sans-serif;
  width: 100% !important;
  box-sizing: border-box;
}
.sg-footer-grid {
  display: grid !important;
  grid-template-columns: 2fr 1.4fr 1fr 1fr !important;
  gap: 48px !important;
  width: 100% !important;
  max-width: 100% !important;
}
@media (max-width: 880px) { .sg-footer-grid { grid-template-columns: 1fr 1fr !important; gap: 32px !important; } }
@media (max-width: 480px) { .sg-footer-grid { grid-template-columns: 1fr !important; gap: 28px !important; } }
.sg-footer-col h4 {
  color: #E67E22 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin: 0 0 14px !important;
}
.sg-footer-col ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.sg-footer-col li { margin: 0 0 10px !important; padding: 0 !important; list-style: none !important; }
.sg-footer-col a {
  color: #D5E2F3 !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 500;
  transition: color .12s;
}
.sg-footer-col a:hover { color: #E67E22 !important; }
.sg-footer-logo {
  font-weight: 800 !important;
  font-size: 22px !important;
  color: #ffffff !important;
  text-decoration: none !important;
  display: inline-block;
  margin-bottom: 12px;
  letter-spacing: -0.3px;
}
.sg-footer-logo span { color: #E67E22 !important; }
.sg-footer-tagline {
  color: #7F8C9B !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  margin: 0 !important;
  max-width: 320px;
}
.site-below-footer-wrap, .ast-footer-copyright { background: #142B47 !important; padding: 16px 24px !important; text-align: center; }
.ast-footer-copyright p, .ast-footer-copyright {
  color: #7F8C9B !important;
  font-size: 12px !important;
  font-family: -apple-system, BlinkMacSystemFont, sans-serif !important;
  margin: 0 !important;
}
.ast-footer-copyright a { color: #D5E2F3 !important; }

/* === sg-wd-hero-position === */
body.page-id-38 .elementor-element-w000008 img {
  object-position: center 80% !important;
}

/* === sg-wd-hero-position === */
body.page-id-38 .elementor-element-w000008 img {
  object-position: center 80% !important;
}
/* === end-sg-wd-hero-position === */

/* === sg-geo-blue-match === */
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
body.page-id-34 .elementor-element-s000018 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
/* === end-sg-geo-blue-match === */

/* === sg-geo-blue-match === */
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
}
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
/* === end-sg-geo-blue-match === */

/* === sg-geo-blue-match === */
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
}
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
body.page-id-34 .elementor-element-s000018 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
/* === end-sg-geo-blue-match === */

/* === sg-geo-blue-match === */
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
}
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 77px !important;
  height: auto !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
}
body.page-id-34 .elementor-element-s000018 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
/* === end-sg-geo-blue-match === */

/* === sg-geo-blue-match === */
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
}
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 77px !important;
  height: auto !important;
  align-items: center !important;
  justify-content: flex-start !important;
}
body.page-id-34 .elementor-element-s000018 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
/* === end-sg-geo-blue-match === */

/* === sg-geo-blue-match === */
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
}
body.page-id-34 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
body.page-id-34 .elementor-element-s000018 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
/* === end-sg-geo-blue-match === */

/* === sg-wd-blue-match === */
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
}
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
body.page-id-38 .elementor-element-s000018 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
/* === end-sg-wd-blue-match === */

/* === sg-wd-blue-match === */
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
body.page-id-38 .elementor-element-s000018 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
/* === end-sg-wd-blue-match === */

/* === sg-wd-blue-match === */
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
body.page-id-38 .elementor-element-s000018 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
body.page-id-38 .elementor-element-s000018 > .elementor-container > .elementor-column > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-content: center !important;
}
/* === end-sg-wd-blue-match === */

/* === sg-wd-blue-match === */
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
body.page-id-38 .elementor-element-s000018 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
body.page-id-38 .elementor-element-s000018 > .elementor-container {
  align-items: center !important;
}
body.page-id-38 .elementor-element-s000018 > .elementor-container > .elementor-column {
  align-self: center !important;
}
body.page-id-38 .elementor-element-s000018 > .elementor-container > .elementor-column > .elementor-widget-wrap {
  align-content: center !important;
}
/* === end-sg-wd-blue-match === */

/* === sg-wd-blue-match === */
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
body.page-id-38 .elementor-element-s000018 {
  padding-top: 25px !important;
  padding-bottom: 5px !important;
}
/* === end-sg-wd-blue-match === */

/* === sg-wd-blue-match === */
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
body.page-id-38 .elementor-element-s000018 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
/* === end-sg-wd-blue-match === */

/* === sg-seo-blue-match === */
body.page-id-36 .elementor-element-s000018 .elementor-widget-heading h1,
body.page-id-36 .elementor-element-s000018 .elementor-widget-heading h2,
body.page-id-36 .elementor-element-s000018 .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
body.page-id-36 .elementor-element-s000018 .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
body.page-id-36 .elementor-element-s000018 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
/* === end-sg-seo-blue-match === */

/* === sg-cc-blue-match === */
body.page-id-37 .elementor-element-sgs000a .elementor-widget-heading h1,
body.page-id-37 .elementor-element-sgs000a .elementor-widget-heading h2,
body.page-id-37 .elementor-element-sgs000a .elementor-widget-heading h3 {
  font-size: 32px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}
body.page-id-37 .elementor-element-sgs000a .elementor-widget-heading {
  min-height: 0 !important;
  height: auto !important;
}
body.page-id-37 .elementor-element-sgs000a {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
/* === end-sg-cc-blue-match === */

/* === sg-cc-gap-match === */
body.page-id-37 .elementor-element-sgs000a .elementor-widget-heading {
  margin-bottom: 0 !important;
}
body.page-id-37 .elementor-element-sgs000a .elementor-widget-text-editor {
  margin-top: 14px !important;
}
/* === end-sg-cc-gap-match === */

/* === sg-ms-gap-match === */
body.page-id-39 .elementor-element-sgmss0012 .elementor-widget-heading {
  margin-bottom: 0 !important;
}
body.page-id-39 .elementor-element-sgmss0012 .elementor-widget-text-editor {
  margin-top: 14px !important;
}
/* === end-sg-ms-gap-match === */

/* === sg-ms-pad-match === */
body.page-id-39 .elementor-element-sgmss0012 {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
/* === end-sg-ms-pad-match === */

/* === sg-wd-gap-match === */
body.page-id-38 .elementor-element-s000018 .elementor-widget-text-editor p { margin: 0 !important; }
body.page-id-38 .elementor-element-s000018 .elementor-widget-heading { margin-bottom: 0 !important; }
body.page-id-38 .elementor-element-s000018 .elementor-widget-text-editor { margin-top: 14px !important; }
/* === end-sg-wd-gap-match === */

/* === sg-header-mockup === */
.ast-theme-transparent-header .site-header,
.site-header,
#masthead,
#masthead .ast-main-header-wrap,
.ast-main-header-wrap,
.ast-primary-header-bar,
.ast-primary-header,
.main-header-bar,
.site-primary-header-wrap {
  background-color: #ffffff !important;
  background-image: none !important;
}
.site-header {
  border-bottom: 1px solid #E2E6EB !important;
  box-shadow: 0 2px 8px rgba(27,58,92,0.06) !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 80 !important;
}
/* Nav link colors navy */
.ast-builder-menu .menu-item > a,
.main-header-menu .menu-item > a,
.main-header-bar .main-header-bar-navigation .ast-nav-menu > .menu-item > a,
.ast-primary-header-bar .menu-link {
  color: #1B3A5C !important;
}
.ast-builder-menu .menu-item > a:hover,
.main-header-menu .menu-item > a:hover,
.ast-primary-header-bar .menu-link:hover {
  color: #E67E22 !important;
}
/* Logo sizing */
.site-logo-img img,
.custom-logo-link img {
  max-height: 40px !important;
  width: auto !important;
  height: auto !important;
}
/* === end-sg-header-mockup === */

/* === sg-photo-responsive === */
@media (max-width: 1023px) {
  /* Scott headshot crop: keep face visible, push above-head out of frame */
  .elementor-widget-image img[src*="scott-headshot"],
  .elementor-widget-image img[src*="GeoAgencyScott"],
  .elementor-widget-image img[src*="scott-portrait-chinatown"] {
    object-fit: cover !important;
    object-position: center 25% !important;
    width: 100% !important;
    height: auto !important;
    max-height: 520px !important;
    border-radius: 14px !important;
    aspect-ratio: 4/3 !important;
  }
}
@media (max-width: 543px) {
  .elementor-widget-image img[src*="scott-headshot"],
  .elementor-widget-image img[src*="GeoAgencyScott"],
  .elementor-widget-image img[src*="scott-portrait-chinatown"] {
    aspect-ratio: 1/1 !important;
    max-height: 380px !important;
  }
}
/* === end-sg-photo-responsive === */


/* === sg-hero-mobile-fix === v3 — 16:9 landscape + max specificity */



/* === sg-hero-mobile-fix === v3.1 — vw-based 16:9 + max specificity */


/* === sg-hero-mobile-pseudo === v4 — pseudo-element approach */
/* Inject the hero photo as a CSS pseudo-element AFTER the paragraph widget,
   so it lands between the paragraph and the buttons (which are in a nested
   column right after the paragraph in the DOM). Hide the original
   right-column photo on mobile but keep it in DOM (offscreen) for SEO. */



/* === sg-hero-mobile-pseudo === v4.1 — class-based selectors */



/* === sg-hero-mobile === v4.2 — fix selectors: no .widget-container intermediate */
@media (max-width: 767px) {
  /* Hide desktop spacers */
  body.home .elementor-element-hv000006,
  body.home .elementor-element-hv000008 { display: none !important; }

  /* Hide original right-column photo on mobile.
     Use display:none — visually offscreen + selector class targets it directly. */
  body.home .elementor-element.elementor-element-hv00000c,
  body.home #elementor-element-hv00000c {
    display: none !important;
  }

  /* Inject the photo as ::after on the paragraph widget DIV directly.
     (Elementor's widget div has no .widget-container child — P is direct child.) */
  body.home .elementor-element.elementor-element-hv000005::after {
    content: '';
    display: block;
    width: 100%;
    height: 56.25vw;
    max-height: 280px;
    min-height: 200px;
    background-image: url('https://i0.wp.com/ceoofgeo.com/wp-content/uploads/2026/05/geo-agency-hero.jpg');
    background-size: cover;
    background-position: center 30%;
    background-repeat: no-repeat;
    border-radius: 12px;
    margin: 24px 0 8px;
  }

  /* Founder photo (About) keeps the natural-aspect fallback */
  [class*="sg-founder-photo"] img {
    height: auto !important;
    width: 100% !important;
    max-width: none !important;
    margin: 14px 0 22px !important;
    display: block !important;
    border-radius: 12px !important;
  }
  .elementor-column:has([class*="sg-founder-photo"]) { min-height: 0 !important; }
}
/* === end-sg-hero-mobile === */


/* === sg-founder-wrap + button-spacing === v1 */
@media (max-width: 767px) {
  /* Add breathing room between the hero CTA buttons and the trust badges */
  body.home .elementor-element-hv000009 {
    margin-top: 22px !important;
  }

  /* Founder Story section: hide the side-column photo, then float a copy as
     ::before on the paragraph so text wraps around it. Keeps a small photo
     inline with the prose for an editorial feel. */
  body.home .elementor-element.elementor-element-hv00002a {
    display: none !important;
  }
  body.home .elementor-element.elementor-element-hv00002f::before {
    content: '';
    float: left;
    width: 42%;
    aspect-ratio: 4 / 5;
    background-image: url('https://i0.wp.com/ceoofgeo.com/wp-content/uploads/2026/05/scott-headshot.jpg');
    background-size: cover;
    background-position: center 25%;
    background-repeat: no-repeat;
    border-radius: 10px;
    margin: 4px 16px 8px 0;
    shape-outside: inset(0 round 10px);
  }
}

/* On larger screens (tablet + desktop) also add the button-badges spacer */
@media (min-width: 768px) {
  body.home .elementor-element-hv000009 {
    margin-top: 18px !important;
  }
}
/* === end-sg-founder-wrap + button-spacing === */
