/* ============================================================
   ai_seo_hub.css — AI SEO / GEO hub page styles
   All classes prefixed: geo-

   Visual signature: dark throughout (no light/dark alternation),
   built from rounded panels and citation chips rather than the
   rows-and-tables system the redirects hub uses. Section headers
   are left-aligned behind a neon rule instead of the centred
   label / h2 / subtitle triplet used by the other hubs.
   ============================================================ */

/* ---- Custom properties ---- */
:root {
  --geo-bg: #001327;
  --geo-panel: #04203a;
  --geo-panel-raised: #072a49;
  --geo-border: #0e3a60;
  --geo-border-soft: rgba(255, 255, 255, 0.09);
  --geo-accent: #39FF12;
  --geo-accent-dim: rgba(57, 255, 18, 0.09);
  --geo-accent-line: rgba(57, 255, 18, 0.35);
  --geo-text: #F9FAFB;
  --geo-text-secondary: #A8B4C2;
  --geo-text-muted: #6B7280;
  --geo-warning: #F59E0B;
  --geo-danger: #EF4444;
  --geo-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
}

/* ---- Page shell ---- */
.geo-header-spacer {
  padding-top: 72px;
  margin: 0;
}

.geo-breadcrumb-row {
  padding-top: 0.75rem;
}

.geo-breadcrumb-row .article-breadcrumb {
  margin-bottom: 0.5rem;
}

.geo-container {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

.geo-section {
  padding-top: 80px;
  padding-bottom: 80px;
}

.geo-section--tight {
  padding-top: 56px;
  padding-bottom: 56px;
}

/* ---- Reveal on scroll (opt-in per element) ---- */
.geo-animate {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.geo-animate.geo-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .geo-animate {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ---- Section header: left neon rule, not a centred triplet ---- */
.geo-head {
  max-width: 720px;
  margin-bottom: 44px;
  padding-left: 20px;
  border-left: 2px solid var(--geo-accent-line);
}

.geo-head__label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--geo-accent);
  margin-bottom: 0.65rem;
}

.geo-head__h2 {
  font-size: 2.1rem;
  line-height: 1.15;
  font-weight: 700;
  color: var(--geo-text);
  margin: 0 0 0.75rem;
}

.geo-head__sub {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--geo-text-secondary);
  margin: 0;
}

.geo-head__sub a {
  color: var(--geo-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.geo-head__sub a:hover {
  color: #ffffff;
}

/* ---- Buttons ---- */
.geo-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.7rem 1.4rem;
  border-radius: 4px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  border: 1.5px solid transparent;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.geo-btn--primary {
  background: var(--geo-accent);
  color: #001327;
}

.geo-btn--primary:hover {
  background: #ffffff;
  color: #001327;
}

.geo-btn--outline {
  background: transparent;
  color: var(--geo-text);
  border-color: rgba(255, 255, 255, 0.28);
}

.geo-btn--outline:hover {
  border-color: var(--geo-accent);
  color: var(--geo-accent);
}

.geo-btn:focus-visible,
.geo-jump__link:focus-visible,
.geo-guide:focus-visible,
.geo-accordion__trigger:focus-visible,
.geo-cta__link:focus-visible {
  outline: 2px solid var(--geo-accent);
  outline-offset: 3px;
}

/* ============================================================
   STICKY JUMP NAV
   ============================================================ */
.geo-jump {
  position: fixed;
  left: 50%;
  bottom: 22px;
  transform: translate(-50%, 130%);
  z-index: 60;
  opacity: 0;
  pointer-events: none;
  transition: transform 0.28s ease, opacity 0.28s ease;
}

.geo-jump--visible {
  transform: translate(-50%, 0);
  opacity: 1;
  pointer-events: auto;
}

.geo-jump__inner {
  display: flex;
  gap: 0.25rem;
  padding: 0.35rem;
  background: rgba(4, 32, 58, 0.92);
  backdrop-filter: blur(10px);
  border: 1px solid var(--geo-border);
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
}

.geo-jump__link {
  padding: 0.5rem 0.95rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--geo-text-secondary);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.18s ease, color 0.18s ease;
}

.geo-jump__link:hover {
  color: var(--geo-text);
}

.geo-jump__link--active {
  background: var(--geo-accent-dim);
  color: var(--geo-accent);
}

@media (max-width: 640px) {
  .geo-jump__inner {
    overflow-x: auto;
    max-width: calc(100vw - 32px);
    scrollbar-width: none;
  }

  .geo-jump__inner::-webkit-scrollbar {
    display: none;
  }
}

/* ============================================================
   HERO
   ============================================================ */
.geo-hero {
  padding-top: 28px;
  padding-bottom: 72px;
}

.geo-hero__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}

.geo-hero__h1 {
  font-size: 3rem;
  line-height: 1.12;
  font-weight: 700;
  color: var(--geo-text);
  margin: 0 0 1.25rem;
}

.geo-hero__intro {
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--geo-text-secondary);
  margin: 0 0 1rem;
}

.geo-hero__intro a {
  color: var(--geo-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.geo-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.75rem 0 1.5rem;
}

.geo-hero__engines {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.geo-engine-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  border: 1px solid var(--geo-border);
  background: rgba(255, 255, 255, 0.03);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--geo-text-secondary);
}

.geo-engine-pill::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--geo-accent);
  opacity: 0.7;
}

/* ---- Signature device: the answer panel ---- */
.geo-answer-fig {
  margin: 0;
}

.geo-answer-fig__caption {
  margin-top: 0.9rem;
  padding-left: 0.9rem;
  border-left: 2px solid var(--geo-accent-line);
  font-size: 0.82rem;
  line-height: 1.6;
  color: var(--geo-text-muted);
}

.geo-answer {
  background: var(--geo-panel);
  border: 1px solid var(--geo-border);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
}

.geo-answer__bar {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 1.15rem;
  border-bottom: 1px solid var(--geo-border);
  background: rgba(255, 255, 255, 0.02);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--geo-text-muted);
}

.geo-answer__spark {
  color: var(--geo-accent);
  font-size: 0.95rem;
  line-height: 1;
}

.geo-answer__body {
  padding: 1.4rem 1.35rem 1.1rem;
}

/* The three role labels (asks / answers / credits) are what make the panel
   legible as a scenario rather than as decoration. */
.geo-answer__who,
.geo-answer__reply-label,
.geo-answer__sources-label {
  display: block;
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--geo-text-muted);
}

.geo-answer__prompt {
  font-size: 0.92rem;
  color: var(--geo-text-secondary);
  margin: 0 0 1.1rem;
  padding-left: 0.75rem;
  border-left: 2px solid var(--geo-border);
}

.geo-answer__who {
  margin-bottom: 0.3rem;
}

.geo-answer__reply-label {
  margin: 0 0 0.5rem;
}

.geo-answer__text {
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--geo-text);
  margin: 0;
}

.geo-cite {
  display: inline-block;
  margin-left: 2px;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  font-size: 0.68rem;
  font-weight: 700;
  vertical-align: 0.35em;
  color: var(--geo-text-secondary);
}

.geo-cite--mine {
  background: var(--geo-accent-dim);
  color: var(--geo-accent);
}

.geo-answer__sources {
  padding: 1rem 1.35rem 1.35rem;
  border-top: 1px solid var(--geo-border);
}

.geo-answer__sources-label {
  margin: 0 0 0.7rem;
}

.geo-chips {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.geo-chip {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.8rem;
  border-radius: 8px;
  border: 1px solid var(--geo-border);
  background: rgba(255, 255, 255, 0.025);
  font-family: var(--geo-mono);
  font-size: 0.8rem;
  color: var(--geo-text-secondary);
}

.geo-chip__n {
  flex: none;
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--geo-text-secondary);
}

.geo-chip--mine {
  border-color: var(--geo-accent);
  background: var(--geo-accent-dim);
  color: var(--geo-text);
  transform: translateX(6px);
}

.geo-chip--mine .geo-chip__n {
  background: var(--geo-accent);
  color: #001327;
}

.geo-chip__flag {
  margin-left: auto;
  font-family: inherit;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--geo-accent);
}

/* ============================================================
   RETRIEVAL FUNNEL
   Header sits inside the container; the stage strip below runs
   full-bleed so its rules read as a band across the page.
   ============================================================ */
.geo-funnel-section {
  padding-top: 72px;
  padding-bottom: 0;
}

.geo-funnel {
  border-top: 1px solid var(--geo-border-soft);
  border-bottom: 1px solid var(--geo-border-soft);
  background: rgba(255, 255, 255, 0.015);
}

.geo-funnel__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

/* Flex column so the failure note sits on a shared baseline across all four
   stages, rather than wherever each description happens to end. */
.geo-stage {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 34px 26px 34px 0;
}

.geo-stage + .geo-stage {
  padding-left: 26px;
  border-left: 1px solid var(--geo-border-soft);
}

.geo-stage__step {
  display: block;
  font-family: var(--geo-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  color: var(--geo-text-muted);
  margin-bottom: 0.55rem;
}

.geo-stage__title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--geo-text);
  margin: 0 0 0.5rem;
}

.geo-stage__title::after {
  content: " →";
  color: var(--geo-accent);
  opacity: 0.55;
}

.geo-stage:last-child .geo-stage__title::after {
  content: "";
}

.geo-stage__desc {
  font-size: 0.88rem;
  line-height: 1.6;
  color: var(--geo-text-secondary);
  margin: 0 0 0.7rem;
}

.geo-stage__fail {
  margin: auto 0 0;
  font-size: 0.78rem;
  line-height: 1.55;
  color: var(--geo-text-muted);
  padding-top: 0.6rem;
  border-top: 1px dashed var(--geo-border);
}

.geo-stage__fail strong {
  color: var(--geo-warning);
  font-weight: 700;
}

/* Bottom-aligning the failure note (margin-top: auto above) lines up its
   bottom edge, which still leaves the dashed rules ragged when the notes run
   to different line counts. Where subgrid is available, the four stages share
   the parent's row tracks instead, so every rule sits on the same line. Only
   applied at the 4-across breakpoint; below it the grid reflows and the row
   count no longer matches. */
@media (min-width: 981px) {
  @supports (grid-template-rows: subgrid) {
    .geo-funnel__grid {
      grid-template-rows: auto auto 1fr auto;
    }

    .geo-stage {
      display: grid;
      grid-template-rows: subgrid;
      grid-row: span 4;
    }

    .geo-stage__fail {
      margin-top: 0;
      align-self: start;
    }
  }
}

/* ============================================================
   ENGINE MATRIX
   ============================================================ */
.geo-matrix-wrap {
  overflow-x: auto;
  border: 1px solid var(--geo-border);
  border-radius: 12px;
  background: var(--geo-panel);
  -webkit-overflow-scrolling: touch;
}

.geo-matrix {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  font-size: 0.88rem;
}

.geo-matrix th,
.geo-matrix td {
  padding: 0.95rem 1.1rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--geo-border);
}

.geo-matrix thead th {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--geo-text-muted);
  background: rgba(255, 255, 255, 0.025);
  white-space: nowrap;
}

.geo-matrix tbody tr:last-child th,
.geo-matrix tbody tr:last-child td {
  border-bottom: none;
}

.geo-matrix tbody th {
  font-weight: 700;
  color: var(--geo-text);
  white-space: nowrap;
}

.geo-matrix td {
  color: var(--geo-text-secondary);
  line-height: 1.55;
}

.geo-matrix tbody tr:hover td,
.geo-matrix tbody tr:hover th {
  background: rgba(57, 255, 18, 0.03);
}

.geo-yes,
.geo-part {
  display: inline-block;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  white-space: nowrap;
}

.geo-yes {
  background: var(--geo-accent-dim);
  color: var(--geo-accent);
}

.geo-part {
  background: rgba(245, 158, 11, 0.12);
  color: var(--geo-warning);
}

.geo-matrix__note {
  font-size: 0.82rem;
  line-height: 1.65;
  color: var(--geo-text-muted);
  margin: 1rem 0 0;
}

.geo-matrix__note a {
  color: var(--geo-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.geo-matrix__note a:hover {
  color: #ffffff;
}

/* ============================================================
   MYTH CARDS
   ============================================================ */
.geo-myths {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.geo-myth {
  padding: 1.5rem;
  border: 1px solid var(--geo-border);
  border-radius: 12px;
  background: var(--geo-panel);
}

.geo-myth__tag {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  background: rgba(239, 68, 68, 0.12);
  color: var(--geo-danger);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.85rem;
}

.geo-myth__claim {
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--geo-text);
  margin: 0 0 0.9rem;
}

.geo-myth__truth {
  position: relative;
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--geo-text-secondary);
  margin: 0;
  padding-left: 1.1rem;
  border-left: 2px solid var(--geo-accent-line);
}

.geo-myth__truth a {
  color: var(--geo-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ============================================================
   GUIDES
   ============================================================ */
.geo-guides {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}

.geo-guide {
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
  border: 1px solid var(--geo-border);
  border-radius: 12px;
  background: var(--geo-panel);
  text-decoration: none;
  transition: border-color 0.18s ease, background-color 0.18s ease, transform 0.18s ease;
}

.geo-guide:hover {
  border-color: var(--geo-accent);
  background: var(--geo-panel-raised);
  transform: translateY(-2px);
}

.geo-guide--wide {
  grid-column: 1 / -1;
}

.geo-guide__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.85rem;
}

.geo-tag {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  border: 1px solid var(--geo-border);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--geo-text-muted);
}

.geo-tag--type {
  border-color: var(--geo-accent-line);
  color: var(--geo-accent);
}

.geo-guide__title {
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--geo-text);
  margin: 0 0 0.6rem;
}

.geo-guide__desc {
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--geo-text-secondary);
  margin: 0 0 1rem;
}

.geo-guide__more {
  margin-top: auto;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--geo-accent);
}

.geo-guide__more::after {
  content: " →";
  transition: margin-left 0.18s ease;
}

.geo-guide:hover .geo-guide__more::after {
  margin-left: 4px;
}

/* ============================================================
   FREE TOOL
   ============================================================ */
.geo-tool__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}

.geo-checklist {
  list-style: none;
  padding: 0;
  margin: 0 0 1.75rem;
}

.geo-checklist li {
  position: relative;
  padding-left: 1.75rem;
  margin-bottom: 0.8rem;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--geo-text-secondary);
}

.geo-checklist li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.42em;
  width: 9px;
  height: 5px;
  border-left: 2px solid var(--geo-accent);
  border-bottom: 2px solid var(--geo-accent);
  transform: rotate(-45deg);
}

.geo-code {
  border: 1px solid var(--geo-border);
  border-radius: 16px;
  background: #01182f;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.35);
}

.geo-code__bar {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.7rem 1rem;
  border-bottom: 1px solid var(--geo-border);
  background: rgba(255, 255, 255, 0.02);
}

.geo-code__name {
  font-family: var(--geo-mono);
  font-size: 0.78rem;
  color: var(--geo-text-secondary);
}

.geo-code__copy {
  margin-left: auto;
  padding: 0.3rem 0.65rem;
  border: 1px solid var(--geo-border);
  border-radius: 4px;
  background: transparent;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--geo-text-muted);
}

.geo-code__body {
  margin: 0;
  padding: 1.1rem 1.2rem 1.4rem;
  overflow-x: auto;
  font-family: var(--geo-mono);
  font-size: 0.78rem;
  line-height: 1.85;
  color: var(--geo-text-secondary);
  white-space: pre;
}

.geo-code__h {
  color: var(--geo-accent);
}

.geo-code__c {
  color: var(--geo-text-muted);
}

.geo-code__l {
  color: #7cc7ff;
}

/* ============================================================
   LOOP (how we work)
   ============================================================ */
.geo-loop {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.geo-loop__item {
  position: relative;
  padding: 1.5rem 1.4rem;
  border: 1px solid var(--geo-border);
  border-radius: 12px;
  background: var(--geo-panel);
}

.geo-loop__num {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1.5px solid var(--geo-accent);
  color: var(--geo-accent);
  font-family: var(--geo-mono);
  font-size: 0.8rem;
  font-weight: 700;
  margin-bottom: 0.9rem;
}

.geo-loop__title {
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--geo-text);
  margin: 0 0 0.55rem;
}

.geo-loop__desc {
  font-size: 0.87rem;
  line-height: 1.65;
  color: var(--geo-text-secondary);
  margin: 0;
}

.geo-loop__desc a {
  color: var(--geo-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.geo-loop__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 28px;
}

/* ============================================================
   FAQ ACCORDION
   Uses the site-wide accordion markup shape so the FAQ index
   command picks the questions up; styled to the geo- palette.
   ============================================================ */
/* Centred column, matching the FAQ treatment on the other hubs. */
.geo-faq__inner {
  max-width: 820px;
  margin: 0 auto;
}

.geo-accordion {
  border-top: 1px solid var(--geo-border);
}

.geo-accordion__item {
  border-bottom: 1px solid var(--geo-border);
}

.geo-accordion__trigger {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  width: 100%;
  min-height: 44px;
  padding: 1.25rem 0;
  border: none;
  background: none;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--geo-text);
  transition: color 0.18s ease;
}

.geo-accordion__trigger:hover {
  color: var(--geo-accent);
}

.geo-accordion__icon {
  flex: none;
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1;
  color: var(--geo-accent);
}

.geo-accordion__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.geo-accordion__body p {
  margin: 0 0 1.35rem;
  padding-right: 3rem;
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--geo-text-secondary);
}

/* ============================================================
   RELATED + FINAL CTA
   ============================================================ */
.geo-final {
  padding: 88px 0 96px;
  border-top: 1px solid var(--geo-border-soft);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(57, 255, 18, 0.07), transparent 62%),
    var(--geo-bg);
}

.geo-final__inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.geo-final__h2 {
  font-size: 2.1rem;
  line-height: 1.15;
  font-weight: 700;
  color: var(--geo-text);
  margin: 0 0 1rem;
}

.geo-final__desc {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--geo-text-secondary);
  margin: 0 0 1.75rem;
}

.geo-final__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}

.geo-cta__link {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--geo-text-secondary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.geo-cta__link:hover {
  color: var(--geo-accent);
}

.geo-final__trust {
  font-size: 0.82rem;
  color: var(--geo-text-muted);
  margin: 0;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 980px) {
  .geo-hero__grid,
  .geo-tool__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .geo-hero__h1 {
    font-size: 2.4rem;
  }

  .geo-funnel__grid,
  .geo-loop {
    grid-template-columns: repeat(2, 1fr);
  }

  .geo-stage,
  .geo-stage + .geo-stage {
    padding: 26px 20px;
    border-left: none;
    border-top: 1px solid var(--geo-border-soft);
  }
}

@media (max-width: 700px) {
  .geo-section {
    padding-top: 48px;
    padding-bottom: 48px;
  }

  .geo-hero {
    padding-bottom: 48px;
  }

  .geo-hero__h1 {
    font-size: 2.1rem;
  }

  .geo-head__h2,
  .geo-final__h2 {
    font-size: 1.8rem;
  }

  .geo-myths,
  .geo-guides,
  .geo-loop,
  .geo-funnel__grid {
    grid-template-columns: 1fr;
  }

  .geo-final {
    padding: 56px 0 64px;
  }

  .geo-accordion__body p {
    padding-right: 0;
  }
}
