/* @import MUST be first in the stylesheet or the browser ignores it. */
/* Inter: loaded async in head */
/* JetBrains Mono: loaded async in head */

.entry-title, .page-title, h1.entry-title,
.et_pb_post_title, .wp-block-post-title,
article header h1, .post-title, h1.wp-block-post-title {
  display: none !important;
}

#main-content, #main-content .container, .et_builder_inner_content {
  padding-top: 0 !important; margin-top: 0 !important;
  width: 100% !important; max-width: 100% !important;
  padding-left: 0 !important; padding-right: 0 !important;
}

body.page article.post { padding-top: 0 !important; margin-top: 0 !important; }

.entry-content, .post-content, .page-content,
.et_pb_section, .et_pb_row, .et_pb_column,
.wp-block-group, article, main,
.et-l, .et_builder_inner_content {
  max-width: 100% !important; width: 100% !important;
  padding-left: 0 !important; padding-right: 0 !important;
  margin-left: 0 !important; margin-right: 0 !important;
  overflow-x: hidden;
}

.gpm-svc-page {
  width: 100vw; max-width: 100vw;
  position: relative; left: 50%; right: 50%;
  margin-left: -50vw; margin-right: -50vw;
  overflow-x: hidden;
}

:root {
  --gpm-blue: #3498db; --gpm-blue-deep: #2980b9; --gpm-green: #2ecc71; --gpm-green-deep: #27ae60;
  --gpm-gradient: linear-gradient(135deg, #3498db 0%, #2ecc71 100%);
  --gpm-gradient-soft: linear-gradient(135deg, rgba(52, 152, 219, 0.12) 0%, rgba(46, 204, 113, 0.12) 100%);
  --gpm-navy-deep: #0B1228; --gpm-navy: #111A36; --gpm-navy-card: #16204A; --gpm-navy-strong: #1C2856;
  --gpm-navy-hairline: rgba(255, 255, 255, 0.08); --gpm-navy-hairline-strong: rgba(255, 255, 255, 0.14);
  --gpm-paper: #FAFAF7; --gpm-paper-raised: #FFFFFF; --gpm-paper-card: #FFFFFF;
  --gpm-paper-hairline: rgba(11, 18, 40, 0.08); --gpm-paper-hairline-strong: rgba(11, 18, 40, 0.14);
  /* V6: faint inks darkened/lightened so small text passes WCAG AA contrast */
  --gpm-ink-dark: #0B1228; --gpm-ink-dark-muted: #4A536B; --gpm-ink-dark-faint: #6B7389;
  --gpm-ink-light: #FFFFFF; --gpm-ink-light-muted: rgba(255, 255, 255, 0.76); --gpm-ink-light-faint: rgba(255, 255, 255, 0.6);
  --gpm-wa: #25D366; --gpm-wa-ink: #06301A;
  --gpm-font: 'Inter Variable', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --gpm-font-mono: 'JetBrains Mono', 'SF Mono', Menlo, monospace;
}

@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

.gpm-svc-page *, .gpsv-sticky * { box-sizing: border-box; }

.gpm-svc-page { font-family: var(--gpm-font); font-feature-settings: 'cv11', 'ss01', 'ss03'; background: var(--gpm-paper); color: var(--gpm-ink-dark); line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.gpm-svc-page h1, .gpm-svc-page h2, .gpm-svc-page h3, .gpm-svc-page h4 { margin: 0; font-family: var(--gpm-font); }
.gpm-svc-page p { margin: 0; }
.gpm-svc-page a { color: inherit; text-decoration: none; }
.gpm-svc-page a:focus-visible, .gpm-svc-page button:focus-visible, .gpm-svc-page input:focus-visible, .gpm-svc-page select:focus-visible, .gpm-svc-page textarea:focus-visible, .gpm-svc-page summary:focus-visible, .gpsv-sticky a:focus-visible {
  outline: 2px solid var(--gpm-blue); outline-offset: 3px; border-radius: 4px;
}

/* The anchor the CTAs jump to. Clears the Divi fixed header. */
#get-audit { scroll-margin-top: 120px; }

/* ---------- HERO ---------- */
.gpsv-hero { position: relative; padding: 88px 32px 96px; background: var(--gpm-navy-deep); overflow: hidden; color: var(--gpm-ink-light); }
.gpsv-hero-grid { position: absolute; inset: 0; background-image: linear-gradient(to right, rgba(255,255,255,0.04) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,0.04) 1px, transparent 1px); background-size: 80px 80px; mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 30%, transparent 80%); -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 30%, transparent 80%); opacity: 0.6; pointer-events: none; }
.gpsv-hero-glow { position: absolute; width: 900px; height: 900px; border-radius: 50%; background: radial-gradient(circle, rgba(52, 152, 219, 0.22) 0%, rgba(46, 204, 113, 0.10) 40%, transparent 70%); top: -200px; right: -300px; pointer-events: none; z-index: 0; }

/* Desktop: copy + next steps on the left, form on the right.
   Mobile: copy, then the form, then next steps (see 1024px query). */
.gpsv-hero-inner {
  position: relative; z-index: 1; max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: 1.05fr 0.95fr; grid-template-rows: auto 1fr;
  grid-template-areas: "copy form" "aside form";
  column-gap: 56px; row-gap: 36px; align-items: start;
}
.gpsv-hero-copy { grid-area: copy; min-width: 0; }
.gpsv-formcard { grid-area: form; }
.gpsv-hero-aside { grid-area: aside; min-width: 0; padding-top: 30px; border-top: 1px solid var(--gpm-navy-hairline); }

.gpsv-hero-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gpm-green); margin-bottom: 24px; }
.gpsv-hero-eyebrow::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--gpm-green); box-shadow: 0 0 12px rgba(46, 204, 113, 0.6); }
.gpsv-hero h1 { font-size: clamp(34px, 4.4vw, 58px); font-weight: 300; line-height: 1.06; letter-spacing: -2px; color: var(--gpm-ink-light); margin: 0 0 24px 0; }
.gpsv-hero h1 .gpsv-hl { background: var(--gpm-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; font-weight: 400; }
.gpsv-hero-sub { font-size: 17px !important; font-weight: 400 !important; line-height: 1.62 !important; color: var(--gpm-ink-light-muted) !important; max-width: 560px; margin: 0 0 28px 0 !important; }
.gpsv-hero-sub strong { color: var(--gpm-ink-light); font-weight: 600; }

/* ---------- CREDIBILITY: Google rating + experience (V7) ----------
   Rating shown without a review count. Update "5.0" (hero, final CTA, FAQ)
   if the score changes. Add the count back at 20+ reviews. */
.gpsv-cred { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: -4px 0 24px 0; }
.gpsv-cred-rating { display: inline-flex; align-items: center; gap: 9px; padding: 7px 15px 7px 11px; border-radius: 999px; background: rgba(255, 255, 255, 0.06); border: 1px solid var(--gpm-navy-hairline); color: var(--gpm-ink-light) !important; font-size: 14px; line-height: 1.2; transition: border-color 200ms ease, background-color 200ms ease; }
.gpsv-cred-stars { display: inline-flex; gap: 2px; }
.gpsv-cred-stars svg { width: 15px; height: 15px; fill: #FBBC04; display: block; }
.gpsv-cred-score { font-weight: 700; letter-spacing: 0.2px; }
.gpsv-cred-src { color: var(--gpm-ink-light); margin-left: -3px; }
.gpsv-cred-count { padding-left: 10px; border-left: 1px solid var(--gpm-navy-hairline); color: var(--gpm-ink-light-muted); text-decoration: underline; text-decoration-color: rgba(255, 255, 255, 0.3); text-underline-offset: 3px; }
.gpsv-cred-years { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--gpm-ink-light); }
.gpsv-cred-years::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--gpm-green); box-shadow: 0 0 10px rgba(46, 204, 113, 0.55); flex-shrink: 0; }
.gpsv-final .gpsv-cred { justify-content: center; margin: 0 0 30px 0; }
@media (hover: hover) {
  .gpsv-cred-rating:hover { border-color: rgba(251, 188, 4, 0.55); background-color: rgba(255, 255, 255, 0.09); }
  .gpsv-cred-rating:hover .gpsv-cred-count { color: var(--gpm-ink-light); }
}
@media (max-width: 768px) {
  .gpsv-cred { gap: 8px 14px; margin: -2px 0 18px 0; }
  .gpsv-cred-rating { font-size: 13.5px; }
  .gpsv-cred-years { font-size: 13.5px; }
}
/* The badge never wraps inside. On phones it drops "Read our reviews"
   and shows a chevron instead; the whole badge is still the link. */
.gpsv-cred-rating, .gpsv-cred-rating > span, .gpsv-cred-years { white-space: nowrap; }
.gpsv-cred-rating { max-width: 100%; }
.gpsv-cred-go { display: none; }
@media (max-width: 560px) {
  .gpsv-cred-rating { gap: 8px; padding: 7px 12px 7px 11px; }
  .gpsv-cred-count { display: none; }
  .gpsv-cred-src { text-decoration: underline; text-decoration-color: rgba(255, 255, 255, 0.35); text-underline-offset: 3px; }
  .gpsv-cred-go { display: inline-flex; align-items: center; margin-left: -3px; color: var(--gpm-ink-light-muted); }
  .gpsv-cred-go svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; display: block; }
}
@media (max-width: 360px) {
  .gpsv-cred-stars svg { width: 13px; height: 13px; }
  .gpsv-cred-rating { font-size: 13px; gap: 7px; }
}
.gpsv-hero-buttons { display: flex; gap: 12px; flex-wrap: wrap; }

/* Mobile-only WhatsApp line under the sub-headline */
.gpsv-hero-wa-inline { display: none; font-size: 15px !important; line-height: 1.5 !important; color: var(--gpm-ink-light-muted) !important; margin: 0 !important; }
.gpsv-hero-wa-inline a { color: var(--gpm-wa) !important; font-weight: 600; border-bottom: 1px solid rgba(37, 211, 102, 0.45); padding: 6px 0; }

/* What happens next — a real sequence, so it is numbered */
.gpsv-next-title { font-size: 13.5px !important; font-weight: 600; color: var(--gpm-ink-light) !important; margin: 0 0 16px 0 !important; }
.gpsv-next { list-style: none; margin: 0; padding: 0; counter-reset: gpsv-next; display: grid; gap: 14px; max-width: 540px; }
.gpsv-next li { counter-increment: gpsv-next; display: grid; grid-template-columns: 28px 1fr; gap: 14px; font-size: 14.5px; line-height: 1.55; color: var(--gpm-ink-light-muted); margin: 0; padding: 0; }
.gpsv-next li::before { content: counter(gpsv-next); width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--gpm-navy-hairline-strong); display: flex; align-items: center; justify-content: center; font-size: 12.5px; font-weight: 600; color: var(--gpm-green); }
.gpsv-next strong { color: var(--gpm-ink-light); font-weight: 600; }

/* Friction strip — the promises under every CTA */
.gpsv-friction { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-family: var(--gpm-font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.5px; text-transform: uppercase; color: var(--gpm-ink-light-faint); margin-top: 24px; }
.gpsv-friction span { display: inline-flex; align-items: center; gap: 7px; }
.gpsv-friction span::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: var(--gpm-green); flex-shrink: 0; }

/* ---------- BUTTONS ---------- */
.gpsv-btn { display: inline-flex; align-items: center; justify-content: center; text-align: center; gap: 8px; min-height: 52px; padding: 0 26px; border-radius: 6px; font-family: var(--gpm-font); font-size: 15px; font-weight: 600; letter-spacing: -0.1px; line-height: 1.15; text-decoration: none !important; cursor: pointer; border: none; transition: background 200ms ease, color 200ms ease, border-color 200ms ease, transform 200ms ease, box-shadow 200ms ease; -webkit-tap-highlight-color: transparent; }
.gpsv-btn svg { flex-shrink: 0; transition: transform 200ms ease; }
.gpsv-btn-primary, .gpsv-btn-primary:visited { background: var(--gpm-gradient); color: #fff !important; box-shadow: 0 4px 16px rgba(52, 152, 219, 0.32); }
.gpsv-btn-primary:hover { color: #fff !important; transform: translateY(-1px); box-shadow: 0 8px 24px rgba(52, 152, 219, 0.42); }
.gpsv-btn-primary:hover svg { transform: translateX(3px); }
.gpsv-btn-wa, .gpsv-btn-wa:visited { background: var(--gpm-wa); color: var(--gpm-wa-ink) !important; }
.gpsv-btn-wa:hover { color: var(--gpm-wa-ink) !important; background: #22c15e; transform: translateY(-1px); }
.gpsv-btn:active { transform: translateY(0) scale(0.985); }

.gpsv-eyebrow { display: inline-block; font-size: 12px; font-weight: 600; line-height: 1.3; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gpm-blue); margin-bottom: 24px; }
.gpsv-eyebrow.gpsv-eyebrow-green { color: var(--gpm-green-deep); }
.gpsv-eyebrow.gpsv-eyebrow-light { color: var(--gpm-green); }

/* ---------- HERO FORM CARD ---------- */
.gpsv-formcard { background: var(--gpm-paper-card); border-radius: 14px; padding: 32px; box-shadow: 0 24px 60px rgba(0,0,0,0.32); position: relative; overflow: hidden; color: var(--gpm-ink-dark); }
.gpsv-formcard::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--gpm-gradient); }
.gpsv-formcard h2 { font-size: 22px; font-weight: 600; letter-spacing: -0.4px; line-height: 1.25; color: var(--gpm-ink-dark); margin-bottom: 8px; }
.gpsv-formcard-sub { font-size: 14.5px; line-height: 1.55; color: var(--gpm-ink-dark-muted); margin: 0 0 20px 0 !important; min-height: 3.1em; }
.gpsv-formcard .wpcf7 { min-height: 40px; }
.gpsv-formcard-note { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--gpm-paper-hairline); font-family: var(--gpm-font-mono); font-size: 10.5px; letter-spacing: 0.4px; text-transform: uppercase; color: var(--gpm-ink-dark-faint); line-height: 1.6; text-align: center !important; }
.gpsv-formcard-or { display: flex; align-items: center; gap: 12px; margin: 16px 0 12px; font-family: var(--gpm-font-mono); font-size: 10.5px; letter-spacing: 0.6px; text-transform: uppercase; color: var(--gpm-ink-dark-faint); }
.gpsv-formcard-or::before, .gpsv-formcard-or::after { content: ''; flex: 1; height: 1px; background: var(--gpm-paper-hairline); }
.gpsv-formcard .gpsv-btn { width: 100%; }


/* ---------- 3-STEP FORM ----------
   Step 1 is set in the HTML (classes "gpsv-steps-on is-step-1"), so the card
   is short from the first paint. The script adds "gpsv-steps-ready" and runs
   the steps. If the script never runs, the full form comes back after 4 s.
   The Contact Form 7 templates are not changed. */
.gpsv-progress, .gpsv-choices, .gpsv-choices-note,
.gpsv-chips, .gpsv-next-row, .gpsv-note-toggle { display: none; }
.gpsv-steps-on .wpcf7 { min-height: 0 !important; }
.gpsv-steps-on .gpsv-formcard-sub { min-height: 0; }
.gpsv-steps-on .gpsv-progress { display: flex; align-items: center; gap: 10px; min-height: 32px; margin: -6px 0 12px 0; }
.gpsv-steps-on.is-step-1 .gpsv-choices { display: grid; gap: 10px; }
.gpsv-steps-on.is-step-1 .gpsv-choices-note { display: block; }

/* Before the script runs: rows wait off screen (not display:none, so the
   fail-safe animation can bring them back). */
.gpsv-steps-on:not(.gpsv-steps-ready) .gpm-ads-form > *,
.gpsv-steps-on:not(.gpsv-steps-ready) .wpcf7-response-output {
  position: absolute; left: -10000px; top: 0;
  animation: gpsv-failsafe-show 0.01s linear 4s forwards;
}
.gpsv-steps-on:not(.gpsv-steps-ready) .gpsv-progress,
.gpsv-steps-on:not(.gpsv-steps-ready) .gpsv-choices,
.gpsv-steps-on:not(.gpsv-steps-ready) .gpsv-choices-note {
  animation: gpsv-failsafe-hide 0.01s linear 4s forwards;
}
@keyframes gpsv-failsafe-show { to { position: static; left: auto; } }
@keyframes gpsv-failsafe-hide { to { position: absolute; left: -10000px; visibility: hidden; } }

/* Script running: show only the rows of the current step */
.gpsv-steps-ready [data-gpsv-step] { display: none !important; }
.gpsv-steps-ready.is-step-2 [data-gpsv-step="2"],
.gpsv-steps-ready.is-step-3 [data-gpsv-step="3"] { display: block !important; }
.gpsv-steps-ready.is-step-3.gpsv-note-closed .gpsv-row-note { display: none !important; }
.gpsv-steps-ready:not(.gpsv-note-closed) .gpsv-note-toggle { display: none !important; }
/* Turnstile renders from the start, off screen, so it is ready at step 3 */
.gpsv-steps-ready .gpsv-row-keep[data-gpsv-step] { display: block !important; position: absolute; left: -10000px; top: 0; }
.gpsv-steps-ready.is-step-3 .gpsv-row-keep[data-gpsv-step] { position: static; left: auto; }
/* A second form (solution page) waits off screen until it is chosen */
.gpsv-formcard .gpsv-slot-off { position: absolute !important; left: -10000px !important; top: 0 !important; width: 320px !important; }

/* Progress: Back · Step 1 of 3 · bar */
.gpsv-progress-back {
  -webkit-appearance: none !important; appearance: none !important;
  display: inline-flex; align-items: center; gap: 2px;
  min-height: 32px; margin: 0 0 0 -6px !important; padding: 4px 8px 4px 4px !important;
  border: 0 !important; border-radius: 6px !important; background: transparent !important;
  font-family: var(--gpm-font) !important; font-size: 13.5px !important; font-weight: 600 !important;
  line-height: 1 !important; color: var(--gpm-ink-dark-muted) !important; cursor: pointer;
}
.gpsv-progress-back[hidden] { display: none !important; }
.gpsv-progress-back svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.gpsv-progress-label { font-family: var(--gpm-font-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.6px; text-transform: uppercase; color: var(--gpm-ink-dark-faint); white-space: nowrap; }
.gpsv-progress-bar { flex: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; max-width: 132px; margin-left: auto; }
.gpsv-progress-bar i { display: block; height: 4px; border-radius: 2px; background: var(--gpm-paper-hairline-strong); transition: background 200ms ease; }
.gpsv-progress-bar i.is-done { background: var(--gpm-gradient); }
.gpsv-formcard h2:focus { outline: none; }

/* Step 1: one tap */
.gpsv-choice {
  -webkit-appearance: none !important; appearance: none !important;
  display: grid !important; grid-template-columns: 1fr 20px; align-items: center; gap: 12px;
  width: 100% !important; min-height: 66px; margin: 0 !important; padding: 13px 16px !important;
  text-align: left !important; background: var(--gpm-paper) !important;
  border: 1px solid var(--gpm-paper-hairline-strong) !important; border-radius: 10px !important;
  color: var(--gpm-ink-dark) !important; font-family: var(--gpm-font) !important; cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.gpsv-choice strong { display: block; font-size: 16px; font-weight: 600; letter-spacing: -0.2px; line-height: 1.3; color: var(--gpm-ink-dark); }
.gpsv-choice small { display: block; margin-top: 2px; font-size: 13.5px; font-weight: 400; line-height: 1.4; color: var(--gpm-ink-dark-muted); }
.gpsv-choice svg { width: 20px; height: 20px; fill: none; stroke: var(--gpm-blue); stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; transition: transform 160ms ease; }
.gpsv-choice[aria-pressed="true"] { border-color: var(--gpm-blue) !important; background: #fff !important; box-shadow: inset 3px 0 0 var(--gpm-blue); }
.gpsv-choice:active { transform: scale(0.99); }
@media (hover: hover) {
  .gpsv-choice:hover { border-color: var(--gpm-blue) !important; background: #fff !important; box-shadow: 0 4px 14px rgba(52, 152, 219, 0.14); }
  .gpsv-choice:hover svg { transform: translateX(3px); }
  .gpsv-chip:hover { border-color: var(--gpm-blue) !important; }
  .gpsv-progress-back:hover { color: var(--gpm-ink-dark) !important; }
}
.gpsv-choices-note { margin: 12px 0 0 0 !important; font-size: 13px !important; line-height: 1.5 !important; color: var(--gpm-ink-dark-faint) !important; text-align: center; }

/* Step 2: budget chips replace the dropdown (the dropdown stays hidden in the form) */
.gpsv-steps-ready .gpsv-row-budget .wpcf7-form-control-wrap { display: none !important; }
.gpsv-steps-ready .gpsv-row-budget label { margin-bottom: 8px !important; cursor: default; }
.gpsv-steps-ready .gpsv-chips { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 16px 0; }
.gpsv-chip {
  -webkit-appearance: none !important; appearance: none !important;
  min-height: 48px; margin: 0 !important; padding: 10px 6px !important; white-space: nowrap;
  border: 1px solid var(--gpm-paper-hairline-strong) !important; border-radius: 8px !important;
  background: var(--gpm-paper) !important; color: var(--gpm-ink-dark) !important;
  font-family: var(--gpm-font) !important; font-size: 15px !important; font-weight: 500 !important;
  line-height: 1.25 !important; text-align: center; cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease;
}
.gpsv-chip-wide { grid-column: 1 / -1; }
.gpsv-chip[aria-pressed="true"] {
  border-color: var(--gpm-blue) !important; background: rgba(52, 152, 219, 0.08) !important;
  color: var(--gpm-blue-deep) !important; font-weight: 600 !important; box-shadow: inset 0 0 0 1px var(--gpm-blue);
}
.gpsv-next-btn {
  -webkit-appearance: none !important; appearance: none !important;
  display: flex !important; align-items: center; justify-content: center; gap: 8px;
  width: 100% !important; height: 54px !important; margin: 2px 0 0 0 !important; padding: 0 !important;
  border: none !important; border-radius: 6px !important; background: var(--gpm-gradient) !important; color: #fff !important;
  font-family: var(--gpm-font) !important; font-size: 16px !important; font-weight: 600 !important; letter-spacing: -0.1px !important;
  cursor: pointer; box-shadow: 0 4px 16px rgba(52, 152, 219, 0.32) !important;
  transition: transform 160ms ease, box-shadow 160ms ease !important;
}
.gpsv-next-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; transition: transform 200ms ease; }
.gpsv-next-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(52, 152, 219, 0.42) !important; }
.gpsv-next-btn:hover svg { transform: translateX(3px); }

/* Step 3: the optional note sits behind a link */
.gpsv-note-toggle {
  -webkit-appearance: none !important; appearance: none !important;
  margin: -4px 0 12px 0 !important; padding: 6px 0 !important; border: 0 !important; background: transparent !important;
  font-family: var(--gpm-font) !important; font-size: 14px !important; font-weight: 600 !important; line-height: 1.4 !important;
  color: var(--gpm-blue-deep) !important; text-align: left; cursor: pointer;
}
.gpsv-note-toggle span { font-weight: 400; color: var(--gpm-ink-dark-faint); }

/* Step 2 uses its own short messages, so the plugin's duplicate is hidden there */
.gpsv-steps-ready [data-gpsv-step="2"] .wpcf7-not-valid-tip { display: none !important; }
.gpsv-tip { display: block; margin: -6px 0 14px 0; font-family: var(--gpm-font); font-size: 13px; font-weight: 500; line-height: 1.4; color: #a5301f; }

/* Sent: only the confirmation stays */
.gpsv-formcard.is-sent .gpsv-progress,
.gpsv-formcard.is-sent .gpsv-formcard-sub,
.gpsv-formcard.is-sent .gpsv-formcard-or,
.gpsv-formcard.is-sent .gpsv-formcard-wa { display: none !important; }

@media (max-width: 420px) {
  .gpsv-chip { font-size: 14px !important; letter-spacing: -0.1px !important; }
}
@media (max-width: 380px) {
  .gpsv-choice { padding: 12px 14px !important; }
  .gpsv-chip { font-size: 13.5px !important; padding: 10px 4px !important; }
}

/* ---------- CONTACT FORM 7, RENDERED INSIDE THE HERO CARD ----------
   !important throughout because Divi and the CF7 stylesheet both fight for these. */
.gpsv-formcard .wpcf7,
.gpsv-formcard .wpcf7 form { margin: 0 !important; padding: 0 !important; }
.gpsv-formcard .wpcf7 p { margin: 0 !important; }
.gpsv-formcard .gpm-ads-form > label,
.gpsv-formcard .wpcf7 label {
  display: block !important; font-family: var(--gpm-font) !important;
  font-size: 13px !important; font-weight: 600 !important; letter-spacing: -0.1px !important;
  line-height: 1.4 !important; color: var(--gpm-ink-dark) !important;
  margin: 0 0 14px 0 !important;
}
.gpsv-formcard .wpcf7-form-control-wrap { display: block !important; margin-top: 6px !important; }
.gpsv-formcard .req { color: var(--gpm-blue) !important; font-weight: 700 !important; }
.gpsv-formcard .opt { color: var(--gpm-ink-dark-faint) !important; font-weight: 400 !important; font-size: 12px !important; letter-spacing: 0.2px !important; }

/* 16px minimum on every field: below that, iOS Safari zooms the page
   when a field gets focus, and the visitor loses their place. */
.gpsv-formcard input[type="text"],
.gpsv-formcard input[type="email"],
.gpsv-formcard input[type="tel"],
.gpsv-formcard input[type="url"],
.gpsv-formcard input[type="number"],
.gpsv-formcard select,
.gpsv-formcard textarea {
  display: block !important; width: 100% !important; max-width: 100% !important;
  min-height: 48px !important;
  padding: 12px 14px !important; border: 1px solid var(--gpm-paper-hairline-strong) !important;
  border-radius: 8px !important; font-family: var(--gpm-font) !important;
  font-size: 16px !important; font-weight: 400 !important; line-height: 1.4 !important;
  color: var(--gpm-ink-dark) !important; background: var(--gpm-paper) !important;
  margin: 0 !important; box-shadow: none !important; appearance: none !important;
  -webkit-appearance: none !important; transition: border-color 160ms ease, box-shadow 160ms ease !important;
}
.gpsv-formcard select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236B7389' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 14px center !important;
  padding-right: 38px !important;
}
.gpsv-formcard textarea { min-height: 88px !important; resize: vertical !important; }
.gpsv-formcard input::placeholder,
.gpsv-formcard textarea::placeholder { color: var(--gpm-ink-dark-faint) !important; opacity: 1 !important; }
.gpsv-formcard input:focus,
.gpsv-formcard select:focus,
.gpsv-formcard textarea:focus {
  outline: none !important; border-color: var(--gpm-blue) !important;
  background: var(--gpm-paper-raised) !important;
  box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.16) !important;
}

.gpsv-formcard input[type="submit"],
.gpsv-formcard .wpcf7-submit,
.gpsv-formcard button[type="submit"] {
  display: block !important; width: 100% !important; height: 54px !important;
  margin: 6px 0 0 0 !important; padding: 0 !important;
  border: none !important; border-radius: 6px !important;
  background: var(--gpm-gradient) !important; color: #fff !important;
  font-family: var(--gpm-font) !important; font-size: 16px !important;
  font-weight: 600 !important; letter-spacing: -0.1px !important;
  cursor: pointer !important; text-transform: none !important;
  box-shadow: 0 4px 16px rgba(52, 152, 219, 0.32) !important;
  transition: transform 160ms ease, box-shadow 160ms ease !important;
  -webkit-appearance: none !important; appearance: none !important;
}
.gpsv-formcard input[type="submit"]:hover,
.gpsv-formcard .wpcf7-submit:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 8px 24px rgba(52, 152, 219, 0.42) !important;
}
.gpsv-formcard input[type="submit"]:disabled,
.gpsv-formcard .wpcf7-submit:disabled { opacity: 0.6 !important; cursor: progress !important; transform: none !important; }

/* The spinner must NOT reserve space while idle. */
.gpsv-formcard .wpcf7-spinner { display: none !important; margin: 0 0 0 10px !important; }
.gpsv-formcard form.submitting .wpcf7-spinner { display: inline-block !important; }

.gpsv-formcard .wpcf7 { margin-bottom: 0 !important; }
.gpsv-formcard .wpcf7 form > p:last-child { margin-bottom: 0 !important; }
.gpsv-formcard > p:empty,
.gpsv-formcard .wpcf7 p:empty { display: none !important; margin: 0 !important; }
.gpsv-formcard > br { display: none !important; }

/* Turnstile / captcha — shrink it so it stops dominating the card */
.gpsv-formcard .cf-turnstile,
.gpsv-formcard [class*="turnstile"],
.gpsv-formcard .wpcf7-cf-turnstile {
  transform: scale(0.82) !important; transform-origin: left top !important;
  margin: 0 0 -12px 0 !important;
}

.gpsv-formcard .wpcf7-not-valid-tip {
  font-family: var(--gpm-font) !important; font-size: 13px !important;
  color: #a5301f !important; margin: 6px 0 0 0 !important;
}
.gpsv-formcard .wpcf7-not-valid { border-color: #d9534f !important; background: #fffafa !important; }
/* Always state the colour: the hero sets white text, and an unstyled
   response message would be invisible on the white card. */
.gpsv-formcard .wpcf7-response-output {
  font-family: var(--gpm-font) !important; font-size: 14px !important; line-height: 1.5 !important;
  color: #7a3b12 !important; background: #fff8f0 !important;
  border: 1px solid #e8c9a8 !important; border-radius: 8px !important;
  padding: 11px 13px !important; margin: 14px 0 0 0 !important;
}
.gpsv-formcard form.invalid .wpcf7-response-output,
.gpsv-formcard form.unaccepted .wpcf7-response-output,
.gpsv-formcard form.payment-required .wpcf7-response-output,
.gpsv-formcard form.spam .wpcf7-response-output,
.gpsv-formcard form.failed .wpcf7-response-output,
.gpsv-formcard form.aborted .wpcf7-response-output {
  color: #a5301f !important; background: #fdf2f0 !important;
  border-color: #e9b7ae !important;
}
/* SUCCESS: replace the form with a confirmation panel. */
.gpsv-formcard form.sent > *:not(.wpcf7-response-output) { display: none !important; }
.gpsv-formcard form.sent .wpcf7-response-output {
  color: var(--gpm-ink-dark) !important;
  background: linear-gradient(135deg, rgba(52,152,219,0.07), rgba(46,204,113,0.09)) !important;
  border: 1px solid rgba(46,204,113,0.45) !important;
  border-radius: 12px !important;
  font-size: 15px !important; line-height: 1.6 !important; font-weight: 500 !important;
  text-align: center !important;
  padding: 30px 24px 26px !important; margin: 0 !important;
}
.gpsv-formcard form.sent .wpcf7-response-output::before {
  content: '\2713'; display: block;
  width: 46px; height: 46px; margin: 0 auto 14px;
  border-radius: 50%; background: var(--gpm-gradient);
  color: #fff; font-size: 24px; line-height: 46px; font-weight: 700;
}

.gpsv-formcard .wpa-admin-notice,
.gpsv-formcard [class*="wpa_hp"],
.gpsv-formcard [id*="wpa-admin"] { display: none !important; }

.gpsv-hidden-fields,
.gpsv-formcard .gpsv-hidden-fields { display: none !important; }

/* ---------- CENTRING, HARDENED AGAINST THEME OVERRIDES ---------- */
.gpsv-proof-inner, .gpsv-system-inner, .gpsv-pricing-inner, .gpsv-intro-inner,
.gpsv-faq-inner, .gpsv-straight-inner, .gpsv-process-grid, .gpsv-diff-grid,
.gpsv-final-inner, .gpsv-section-header { margin-left: auto !important; margin-right: auto !important; }
.gpsv-proof-inner, .gpsv-system-inner, .gpsv-process-grid, .gpsv-diff-grid { max-width: 1200px !important; }

/* ---------- PROOF BAND ---------- */
.gpsv-proof { padding: 72px 32px; background: var(--gpm-paper-raised); border-top: 1px solid var(--gpm-paper-hairline); }
.gpsv-proof-inner { max-width: 1200px; margin: 0 auto; }
.gpsv-proof-head { text-align: center; margin-bottom: 40px; }
.gpsv-proof-head h2 { font-size: clamp(26px, 3.4vw, 40px); font-weight: 400; line-height: 1.1; letter-spacing: -1.4px; color: var(--gpm-ink-dark); }
.gpsv-proof-head h2 .gpsv-hl { background: var(--gpm-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; font-weight: 500; }
.gpsv-proof-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.gpsv-proof-card { background: var(--gpm-paper); border: 1px solid var(--gpm-paper-hairline); border-radius: 12px; padding: 28px 24px; display: flex; flex-direction: column; gap: 10px; }
.gpsv-proof-client { font-family: var(--gpm-font-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.7px; text-transform: uppercase; color: var(--gpm-blue-deep); }
.gpsv-proof-value { font-size: clamp(30px, 3.4vw, 42px); font-weight: 400; line-height: 1; letter-spacing: -1.6px; background: var(--gpm-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.gpsv-proof-label { font-size: 14.5px; font-weight: 600; line-height: 1.35; color: var(--gpm-ink-dark); }
.gpsv-proof-detail { font-size: 13.5px; line-height: 1.5; color: var(--gpm-ink-dark-muted); }
.gpsv-proof-period { margin-top: auto; padding-top: 10px; font-family: var(--gpm-font-mono); font-size: 10px; letter-spacing: 0.4px; text-transform: uppercase; color: var(--gpm-ink-dark-faint); }
.gpsv-proof-source { display: block !important; max-width: 720px !important; margin: 24px auto 0 auto !important; text-align: center !important; font-size: 12.5px; line-height: 1.6; color: var(--gpm-ink-dark-faint); }
.gpsv-proof-swipe { display: none; }

/* ---------- LOGO CAROUSEL ----------
   CSS-only marquee. The track holds the same logo group THREE times
   (two copies are not wide enough on large screens). Moving the track
   by one third lands exactly on the next copy, so the loop is seamless.
   V5 moved it by -50% (1.5 groups), which caused a visible jump. */
.gpsv-logos { padding: 52px 0 56px; background: var(--gpm-navy-deep); border-top: 1px solid var(--gpm-navy-hairline); overflow: hidden; display: flex; flex-direction: column; gap: 34px; }
.gpsv-logos-label { font-family: var(--gpm-font-mono); font-size: 11px; font-weight: 500; letter-spacing: 1px; text-transform: uppercase; color: var(--gpm-ink-light-faint); text-align: center; margin: 0 !important; padding: 0 20px; position: relative; z-index: 2; flex: 0 0 auto; }
.gpsv-marquee {
  position: relative; overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 10%, #000 90%, transparent 100%);
          mask-image: linear-gradient(to right, transparent 0, #000 10%, #000 90%, transparent 100%);
}
.gpsv-marquee-track { display: flex; width: max-content; animation: gpsv-marquee 80s linear infinite; will-change: transform; }
.gpsv-marquee-group { display: flex; align-items: center; gap: 64px; padding-right: 64px; flex: 0 0 auto; }
.gpsv-marquee img { height: 40px; width: auto; max-width: 200px; object-fit: contain; filter: brightness(0) invert(1); opacity: 0.75; transition: opacity 200ms ease; flex: 0 0 auto; }
.gpsv-marquee img:hover { opacity: 1; }
.gpsv-marquee img.gpsv-logo-sm { height: 54px; }
.gpsv-marquee img.gpsv-logo-wide { height: 28px; max-width: 200px; }
.gpsv-marquee:hover .gpsv-marquee-track { animation-play-state: paused; }
@keyframes gpsv-marquee { from { transform: translate3d(0,0,0); } to { transform: translate3d(-33.3333%,0,0); } }
@media (prefers-reduced-motion: reduce) {
  .gpsv-marquee-track { animation: none; }
  .gpsv-marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
}

/* ---------- INTRO ---------- */
.gpsv-intro { padding: 104px 32px; background: var(--gpm-paper); border-top: 1px solid var(--gpm-paper-hairline); }
.gpsv-intro-inner { max-width: 760px; margin: 0 auto; }
.gpsv-intro h2 { font-size: clamp(30px, 4.4vw, 50px); font-weight: 400; line-height: 1.07; letter-spacing: -1.8px; color: var(--gpm-ink-dark); margin-bottom: 28px; }
.gpsv-intro h2 .gpsv-hl { background: var(--gpm-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; font-weight: 500; }
.gpsv-intro p { font-size: 17px !important; line-height: 1.75 !important; color: var(--gpm-ink-dark-muted) !important; margin-bottom: 22px !important; }
.gpsv-intro p:last-child { margin-bottom: 0 !important; }
.gpsv-intro a { color: var(--gpm-blue-deep); border-bottom: 1px solid rgba(52, 152, 219, 0.32); font-weight: 500; }
.gpsv-intro a:hover { border-bottom-color: var(--gpm-blue); }
.gpsv-intro strong { color: var(--gpm-ink-dark); font-weight: 600; }

.gpsv-section-header { max-width: 800px; margin: 0 auto 56px; text-align: center; }
.gpsv-section-header h2 { font-size: clamp(30px, 4.4vw, 50px); font-weight: 400; line-height: 1.07; letter-spacing: -1.8px; color: var(--gpm-ink-dark); margin-bottom: 16px; }
.gpsv-section-header h2 .gpsv-hl { background: var(--gpm-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; font-weight: 500; }
.gpsv-section-header p { font-size: 17px; line-height: 1.6; color: var(--gpm-ink-dark-muted); max-width: 640px; margin: 0 auto; }
.gpsv-section-header.gpsv-section-header-light h2 { color: var(--gpm-ink-light); }
.gpsv-section-header.gpsv-section-header-light p { color: var(--gpm-ink-light-muted); }

/* ---------- STACK ---------- */
.gpsv-system { padding: 104px 32px; background: var(--gpm-paper-raised); border-top: 1px solid var(--gpm-paper-hairline); }
.gpsv-system-inner { max-width: 1200px; margin: 0 auto; }
.gpsv-flow { display: flex; align-items: flex-start; justify-content: space-between; background: var(--gpm-paper-card); border: 1px solid var(--gpm-paper-hairline); border-radius: 16px; padding: 44px 32px; margin-bottom: 48px; }
.gpsv-flow-stage { text-align: center; padding: 0 16px; flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; }
.gpsv-flow-num { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--gpm-gradient); color: #fff; font-size: 19px; font-weight: 600; margin-bottom: 18px; box-shadow: 0 4px 16px rgba(52, 152, 219, 0.32); }
.gpsv-flow-name { font-size: 17px; font-weight: 600; letter-spacing: -0.2px; color: var(--gpm-ink-dark); margin-bottom: 6px; }
.gpsv-flow-desc { font-family: var(--gpm-font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.6px; text-transform: uppercase; color: var(--gpm-ink-dark-faint); }
.gpsv-flow-arrow { align-self: center; color: var(--gpm-paper-hairline-strong); display: flex; align-items: center; padding-top: 16px; }
.gpsv-flow-arrow svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.gpsv-cards-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.gpsv-card { display: flex; flex-direction: column; position: relative; background: var(--gpm-paper); border: 1px solid var(--gpm-paper-hairline); border-radius: 12px; padding: 34px 30px; transition: border-color 250ms ease, transform 250ms ease, box-shadow 250ms ease; overflow: hidden; }
.gpsv-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--gpm-gradient); opacity: 0; transition: opacity 250ms ease; }
.gpsv-card-icon { width: 40px; height: 40px; margin-bottom: 22px; border-radius: 8px; background: var(--gpm-gradient-soft); display: flex; align-items: center; justify-content: center; color: var(--gpm-blue); flex-shrink: 0; }
.gpsv-card-icon svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.gpsv-card h3 { font-size: 19px; font-weight: 600; line-height: 1.25; letter-spacing: -0.2px; color: var(--gpm-ink-dark); margin-bottom: 10px; }
.gpsv-card p { font-size: 14.5px; line-height: 1.65; color: var(--gpm-ink-dark-muted); }
@media (hover: hover) {
  .gpsv-card:hover { border-color: var(--gpm-paper-hairline-strong); transform: translateY(-2px); box-shadow: 0 12px 32px rgba(11, 18, 40, 0.06); }
  .gpsv-card:hover::before { opacity: 1; }
}

/* ---------- PRICING ---------- */
.gpsv-pricing { padding: 104px 32px; background: var(--gpm-paper); border-top: 1px solid var(--gpm-paper-hairline); }
.gpsv-pricing-inner { max-width: 980px; margin: 0 auto; }
.gpsv-price-split { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 0; background: var(--gpm-paper-card); border: 1px solid var(--gpm-paper-hairline); border-radius: 16px; overflow: hidden; }
.gpsv-price-figure { background: var(--gpm-navy-deep); color: var(--gpm-ink-light); padding: 48px 40px; display: flex; flex-direction: column; justify-content: center; }
.gpsv-price-from { font-family: var(--gpm-font-mono); font-size: 11px; letter-spacing: 0.8px; text-transform: uppercase; color: var(--gpm-ink-light-faint); margin-bottom: 12px; }
.gpsv-price-amount { font-size: clamp(40px, 5.4vw, 58px); font-weight: 400; line-height: 1; letter-spacing: -2.2px; background: var(--gpm-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: 10px; }
.gpsv-price-unit { font-size: 15px; line-height: 1.5; color: var(--gpm-ink-light-muted); margin-bottom: 22px; }
.gpsv-price-flat { font-size: 14px; line-height: 1.6; color: var(--gpm-ink-light-muted); padding-top: 20px; border-top: 1px solid var(--gpm-navy-hairline); }
.gpsv-price-flat strong { color: var(--gpm-ink-light); font-weight: 600; }
.gpsv-price-small { margin-top: 22px; padding: 16px 18px; border: 1px solid rgba(46, 204, 113, 0.35); border-radius: 10px; background: rgba(46, 204, 113, 0.07); font-size: 14px; line-height: 1.6; color: var(--gpm-ink-light-muted); }
.gpsv-price-small strong { color: var(--gpm-green); font-weight: 600; }
.gpsv-price-detail { padding: 44px 40px; }
.gpsv-price-detail h3 { font-size: 20px; font-weight: 600; letter-spacing: -0.3px; color: var(--gpm-ink-dark); margin-bottom: 18px; }
.gpsv-price-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.gpsv-price-list li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; font-size: 14.5px; line-height: 1.55; color: var(--gpm-ink-dark-muted); margin: 0; padding: 0; }
.gpsv-price-list li::before { content: '✓'; color: var(--gpm-green-deep); font-weight: 700; font-size: 14px; line-height: 1.6; }
.gpsv-price-foot { margin-top: 22px !important; padding-top: 18px; border-top: 1px solid var(--gpm-paper-hairline); font-size: 13.5px; line-height: 1.6; color: var(--gpm-ink-dark-muted); }
.gpsv-price-foot strong { color: var(--gpm-ink-dark); }
.gpsv-price-cta { margin-top: 24px; }
.gpsv-price-cta .gpsv-btn { width: 100%; }

/* ---------- PROCESS ---------- */
.gpsv-process { padding: 104px 32px; background: var(--gpm-paper); border-top: 1px solid var(--gpm-paper-hairline); }
.gpsv-process-grid { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.gpsv-step-card { padding-right: 16px; }
.gpsv-step-num { font-size: 52px; font-weight: 300; line-height: 1; letter-spacing: -2.5px; background: var(--gpm-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: 14px; display: block; }
.gpsv-step-rule { width: 40px; height: 2px; background: var(--gpm-gradient); margin-bottom: 18px; border-radius: 2px; }
.gpsv-step-week { font-family: var(--gpm-font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.6px; text-transform: uppercase; color: var(--gpm-blue-deep); margin-bottom: 10px; display: block; }
.gpsv-step-card h3 { font-size: 19px; font-weight: 600; line-height: 1.25; letter-spacing: -0.2px; color: var(--gpm-ink-dark); margin-bottom: 10px; }
.gpsv-step-card p { font-size: 14.5px; line-height: 1.65; color: var(--gpm-ink-dark-muted); }

/* ---------- STRAIGHT TALK ---------- */
.gpsv-straight { padding: 104px 32px; background: var(--gpm-navy-deep); color: var(--gpm-ink-light); position: relative; overflow: hidden; }
.gpsv-straight-glow { position: absolute; width: 800px; height: 800px; border-radius: 50%; background: radial-gradient(circle, rgba(46, 204, 113, 0.10) 0%, rgba(52, 152, 219, 0.06) 50%, transparent 70%); top: -240px; left: -200px; pointer-events: none; z-index: 0; }
.gpsv-straight-inner { position: relative; z-index: 1; max-width: 1000px; margin: 0 auto; }
.gpsv-straight-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.gpsv-straight-col { background: var(--gpm-navy-card); border: 1px solid var(--gpm-navy-hairline); border-radius: 14px; padding: 34px 32px; }
.gpsv-straight-col h3 { font-size: 18px; font-weight: 600; letter-spacing: -0.2px; color: var(--gpm-ink-light); margin-bottom: 18px; }
.gpsv-straight-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.gpsv-straight-col li { display: grid; grid-template-columns: 18px 1fr; gap: 12px; font-size: 14.5px; line-height: 1.6; color: var(--gpm-ink-light-muted); margin: 0; padding: 0; }
.gpsv-straight-yes li::before { content: '✓'; color: var(--gpm-green); font-weight: 700; }
.gpsv-straight-no li::before { content: '✕'; color: #e07a5f; font-weight: 700; }
.gpsv-straight-foot { margin: 28px auto 0 auto !important; text-align: center; font-size: 15px; line-height: 1.6; color: var(--gpm-ink-light-muted); max-width: 680px; }

/* ---------- DIFFERENTIATORS ---------- */
.gpsv-diff { padding: 104px 32px; background: var(--gpm-paper-raised); border-top: 1px solid var(--gpm-paper-hairline); }
.gpsv-diff-grid { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.gpsv-diff-card { display: flex; flex-direction: column; position: relative; background: var(--gpm-paper); border: 1px solid var(--gpm-paper-hairline); border-radius: 12px; padding: 34px 30px; transition: border-color 250ms ease, transform 250ms ease, box-shadow 250ms ease; overflow: hidden; }
.gpsv-diff-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--gpm-gradient); opacity: 0; transition: opacity 250ms ease; }
.gpsv-diff-icon { width: 40px; height: 40px; margin-bottom: 22px; border-radius: 8px; background: var(--gpm-gradient-soft); display: flex; align-items: center; justify-content: center; color: var(--gpm-blue); flex-shrink: 0; }
.gpsv-diff-icon svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.gpsv-diff-card h3 { font-size: 19px; font-weight: 600; line-height: 1.3; letter-spacing: -0.2px; color: var(--gpm-ink-dark); margin-bottom: 10px; }
.gpsv-diff-card p { font-size: 14.5px; line-height: 1.65; color: var(--gpm-ink-dark-muted); }
@media (hover: hover) {
  .gpsv-diff-card:hover { border-color: var(--gpm-paper-hairline-strong); transform: translateY(-2px); box-shadow: 0 12px 32px rgba(11, 18, 40, 0.06); }
  .gpsv-diff-card:hover::before { opacity: 1; }
}

/* ---------- FAQ ---------- */
.gpsv-faq { padding: 104px 32px; background: var(--gpm-paper); border-top: 1px solid var(--gpm-paper-hairline); }
.gpsv-faq-inner { max-width: 900px; margin: 0 auto; }
.gpsv-faq-list { display: flex; flex-direction: column; gap: 12px; }
.gpsv-faq-item { background: var(--gpm-paper-card); border: 1px solid var(--gpm-paper-hairline); border-radius: 12px; overflow: hidden; transition: border-color 200ms ease; }
.gpsv-faq-item[open] { border-color: var(--gpm-paper-hairline-strong); }
.gpsv-faq-summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 30px; min-height: 56px; cursor: pointer; list-style: none; font-size: 16.5px; font-weight: 600; letter-spacing: -0.1px; line-height: 1.4; color: var(--gpm-ink-dark); transition: color 200ms ease; -webkit-tap-highlight-color: transparent; }
.gpsv-faq-summary::-webkit-details-marker { display: none; }
.gpsv-faq-summary::marker { content: ''; }
.gpsv-faq-summary:hover { color: var(--gpm-blue-deep); }
.gpsv-faq-icon { width: 28px; height: 28px; border-radius: 50%; background: var(--gpm-gradient-soft); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform 300ms cubic-bezier(0.22, 1, 0.36, 1); }
.gpsv-faq-icon svg { width: 14px; height: 14px; stroke: var(--gpm-blue); fill: none; stroke-width: 2.5; stroke-linecap: round; }
.gpsv-faq-item[open] .gpsv-faq-icon { transform: rotate(45deg); }
.gpsv-faq-body { padding: 0 30px 26px; font-size: 15.5px !important; line-height: 1.7 !important; color: var(--gpm-ink-dark-muted) !important; }
.gpsv-faq-body p { margin: 0 !important; }
.gpsv-faq-body p + p { margin-top: 12px !important; }
.gpsv-faq-body a { color: var(--gpm-blue-deep); border-bottom: 1px solid rgba(52,152,219,0.32); }
.gpsv-faq-body strong { color: var(--gpm-ink-dark); }

/* ---------- FINAL CTA ---------- */
.gpsv-final { padding: 120px 32px; background: var(--gpm-navy-deep); color: var(--gpm-ink-light); text-align: center; position: relative; overflow: hidden; border-top: 1px solid var(--gpm-navy-hairline); }
.gpsv-final-glow { position: absolute; width: 900px; height: 900px; border-radius: 50%; background: radial-gradient(circle, rgba(52, 152, 219, 0.18) 0%, rgba(46, 204, 113, 0.10) 40%, transparent 70%); top: 50%; left: 50%; transform: translate(-50%, -50%); pointer-events: none; z-index: 0; }
.gpsv-final-inner { position: relative; z-index: 1; max-width: 820px; margin: 0 auto; }
.gpsv-final h2 { font-size: clamp(32px, 4.8vw, 56px); font-weight: 300; line-height: 1.06; letter-spacing: -2.2px; color: var(--gpm-ink-light); margin-bottom: 22px; }
.gpsv-final h2 .gpsv-hl { background: var(--gpm-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; font-weight: 400; }
.gpsv-final p { font-size: 17px !important; line-height: 1.6 !important; color: var(--gpm-ink-light-muted) !important; margin: 0 auto 36px auto !important; max-width: 620px; }
.gpsv-final-buttons { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.gpsv-final .gpsv-friction { justify-content: center; margin-top: 26px; }

/* ---------- STICKY MOBILE CTA ----------
   Moved to <body> by the script so no theme wrapper can break
   position: fixed. Shown only on phones, only after the hero form
   has scrolled away, and hidden again at the final CTA. */
.gpsv-sticky { display: none; }

@media (prefers-reduced-motion: reduce) { .gpm-svc-page *, .gpm-svc-page *::before, .gpm-svc-page *::after, .gpsv-sticky { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } }

/* ============ TABLET ============ */
@media (max-width: 1024px) {
  .gpsv-hero-inner { grid-template-columns: 1fr; grid-template-rows: auto; grid-template-areas: "copy" "form" "aside"; row-gap: 32px; }
  .gpsv-formcard { max-width: 600px; width: 100%; }
  .gpsv-hero-aside { max-width: 600px; }
  .gpsv-hero-sub { margin-bottom: 16px !important; }
  /* The form is directly below, so the jump button is redundant here. */
  .gpsv-hero-buttons { display: none; }
  .gpsv-hero-wa-inline { display: block; }
  .gpsv-proof-grid { grid-template-columns: repeat(2, 1fr); }
  .gpsv-flow { display: grid; grid-template-columns: 1fr 1fr; gap: 36px 16px; }
  .gpsv-flow-arrow { display: none; }
  .gpsv-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .gpsv-price-split { grid-template-columns: 1fr; }
  .gpsv-process-grid { grid-template-columns: repeat(2, 1fr); gap: 44px; }
  .gpsv-step-card { padding-right: 0; }
  .gpsv-straight-grid { grid-template-columns: 1fr; }
  .gpsv-diff-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============ PHONE ============ */
@media (max-width: 768px) {
  #get-audit { scroll-margin-top: 88px; }
  .gpsv-hero, .gpsv-proof, .gpsv-intro, .gpsv-system, .gpsv-pricing, .gpsv-process, .gpsv-straight, .gpsv-diff, .gpsv-faq, .gpsv-final { padding-left: 20px; padding-right: 20px; }
  /* Divi's fixed header overlays the page and the reset removed its
     clearance, so the hero buys it back here. */
  .gpsv-hero { padding-top: 100px; padding-bottom: 64px; }
  .gpsv-hero-eyebrow { font-size: 11px; letter-spacing: 1.2px; margin-bottom: 18px; }
  .gpsv-hero h1 { font-weight: 400; letter-spacing: -1.2px; line-height: 1.08; margin-bottom: 18px; }
  .gpsv-hero-sub { font-size: 16px !important; }
  .gpsv-formcard { max-width: none; padding: 24px 20px; border-radius: 12px; }
  .gpsv-formcard h2 { font-size: 20px; }
  .gpsv-hero-aside { padding-top: 26px; }
  .gpsv-friction { gap: 9px 14px; padding-right: 72px; }
  .gpsv-final .gpsv-friction { flex-direction: column; align-items: center; padding-right: 0; }

  .gpsv-proof, .gpsv-intro, .gpsv-system, .gpsv-pricing, .gpsv-process, .gpsv-straight, .gpsv-diff, .gpsv-faq { padding-top: 64px; padding-bottom: 64px; }
  .gpsv-final { padding-top: 80px; padding-bottom: 80px; }
  .gpsv-section-header { margin-bottom: 36px; }
  .gpsv-section-header p, .gpsv-intro p { font-size: 16px !important; }
  .gpsv-intro h2 { margin-bottom: 22px; }
  .gpsv-final-buttons { flex-direction: column; }
  .gpsv-final-buttons .gpsv-btn { width: 100%; }

  .gpsv-logos { padding: 40px 0 44px; gap: 26px; }
  .gpsv-marquee img { height: 30px; max-width: 150px; }
  .gpsv-marquee img.gpsv-logo-sm { height: 40px; }
  .gpsv-marquee img.gpsv-logo-wide { height: 21px; max-width: 150px; }

  /* Four stages as a compact 2 x 2 */
  .gpsv-flow { gap: 26px 12px; padding: 28px 16px; margin-bottom: 28px; }
  .gpsv-flow-stage { padding: 0 4px; }
  .gpsv-flow-num { width: 44px; height: 44px; font-size: 17px; margin-bottom: 12px; }

  /* Cards: icon beside the title, not stacked above it */
  .gpsv-cards-grid, .gpsv-diff-grid { grid-template-columns: 1fr; gap: 12px; }
  .gpsv-card, .gpsv-diff-card { display: grid; grid-template-columns: 40px 1fr; column-gap: 16px; align-items: start; padding: 22px 20px; }
  .gpsv-card-icon, .gpsv-diff-icon { grid-row: 1 / span 2; margin-bottom: 0; }
  .gpsv-card h3, .gpsv-diff-card h3 { font-size: 17px; margin-bottom: 6px; align-self: center; min-height: 40px; display: flex; align-items: center; }
  .gpsv-card p, .gpsv-diff-card p { grid-column: 2; font-size: 14.5px; }

  .gpsv-price-figure, .gpsv-price-detail { padding: 30px 22px; }

  /* Process as a numbered timeline */
  .gpsv-process-grid { grid-template-columns: 1fr; gap: 26px; }
  .gpsv-step-card { display: grid; grid-template-columns: 52px 1fr; column-gap: 14px; }
  .gpsv-step-num { grid-row: 1 / span 3; font-size: 40px; margin-bottom: 0; }
  .gpsv-step-rule { display: none; }
  .gpsv-step-week { margin-bottom: 6px; }
  .gpsv-step-card h3 { font-size: 17px; margin-bottom: 6px; }

  .gpsv-straight-col { padding: 26px 22px; }
  .gpsv-faq-summary { padding: 18px 20px; font-size: 15.5px; gap: 16px; }
  .gpsv-faq-body { padding: 0 20px 20px; font-size: 15px !important; }

  .gpsv-sticky {
    display: grid; grid-template-columns: 1fr auto; gap: 10px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(11, 18, 40, 0.94);
    -webkit-backdrop-filter: saturate(140%) blur(10px); backdrop-filter: saturate(140%) blur(10px);
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    font-family: var(--gpm-font);
    transform: translateY(110%); visibility: hidden;
    transition: transform 220ms ease, visibility 0s linear 220ms;
  }
  .gpsv-sticky.is-visible { transform: translateY(0); visibility: visible; transition: transform 220ms ease, visibility 0s; }
  .gpsv-sticky .gpsv-btn { min-height: 48px; padding: 0 18px; font-size: 15px; }
  .gpsv-sticky .gpsv-btn-wa { padding: 0 16px; }
}

@media (max-width: 640px) {
  /* Results become a swipeable row; the next card peeks in so
     visitors can see there is more. */
  .gpsv-proof-head { margin-bottom: 28px; }
  .gpsv-proof-grid { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -20px; padding: 0 20px 6px; scroll-padding-left: 20px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .gpsv-proof-grid::-webkit-scrollbar { display: none; }
  .gpsv-proof-card { flex: 0 0 82%; scroll-snap-align: start; padding: 24px 20px; }
  .gpsv-proof-swipe { display: block; margin: 14px 0 0 0 !important; text-align: center; font-size: 12.5px; color: var(--gpm-ink-dark-faint); }
}

@media (max-width: 480px) {
  .gpsv-hero h1 { font-size: 31px; }
  .gpsv-section-header h2, .gpsv-intro h2 { font-size: 28px; letter-spacing: -1.1px; }
  .gpsv-final h2 { font-size: 31px; letter-spacing: -1.2px; }
  .gpsv-proof-head h2 { font-size: 25px; }
  .gpsv-sticky .gpsv-btn-wa span { display: none; }
}

/* ---------- SEO PAGE ADDITIONS ---------- */
.gpsv-proof-grid.gpsv-proof-grid-3 { grid-template-columns: repeat(3, 1fr); }
.gpsv-proof-value.gpsv-proof-value-word { font-size: clamp(26px, 2.6vw, 34px); letter-spacing: -1px; }
.gpsv-straight-col a { color: var(--gpm-green); border-bottom: 1px solid rgba(46, 204, 113, 0.4); }
.gpsv-proof-note { display: block; max-width: 720px; margin: 10px auto 0 auto !important; text-align: center; font-size: 12.5px; line-height: 1.6; color: var(--gpm-ink-dark-faint); }
/* ---------- TEMPLATE ADDITIONS (17 Oct 2026) ---------- */
/* 16 client logos: the marquee runs 80s so the speed stays the same as with 9 logos at 45s. */
.gpsv-card p a, .gpsv-price-figure p a { color: var(--gpm-blue-deep); border-bottom: 1px solid rgba(52, 152, 219, 0.32); font-weight: 500; }
.gpsv-card p a:hover, .gpsv-price-figure p a:hover { border-bottom-color: var(--gpm-blue); }
/* ---------- SHOPIFY DASHBOARD CAROUSEL (17 Oct 2026) ---------- */
.gpsv-dash { padding: 72px 0 64px; background: #f1f2f4; border-top: 1px solid #e3e5e8; }
.gpsv-dash-inner { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.gpsv-dash-track { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 6px 2px 18px; margin-top: 34px; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.gpsv-dash-track:focus-visible { outline: 2px solid var(--gpm-blue); outline-offset: 4px; }
.gpsv-dash-slide { flex: 0 0 min(540px, 86%); scroll-snap-align: start; margin: 0 !important; background: #fff; border: 1px solid #e3e3e3; border-radius: 12px; box-shadow: 0 1px 0 rgba(26, 26, 26, 0.07), 0 10px 28px rgba(15, 23, 42, 0.07); padding: 10px 10px 4px; overflow: hidden; }
.gpsv-dash-slide img { display: block; width: 100%; height: auto; border-radius: 8px; }
.gpsv-dash-slide figcaption { padding: 12px 8px 10px; font-size: 14px; line-height: 1.5; color: #303030; border-top: 1px solid #f0f0f0; margin-top: 6px; }
.gpsv-dash-slide figcaption strong { display: block; font-family: var(--gpm-font-mono); font-size: 11px; font-weight: 500; letter-spacing: 1px; text-transform: uppercase; color: #616161; margin-bottom: 2px; }
.gpsv-dash-nav { display: flex; justify-content: center; gap: 12px; margin-top: 6px; }
.gpsv-dash-nav button { width: 42px; height: 42px; border-radius: 50%; border: 1px solid #d4d6da; background: #fff; color: #303030; font-size: 20px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.gpsv-dash-nav button:hover { border-color: var(--gpm-blue); color: var(--gpm-blue); }
.gpsv-dash-note { text-align: center; font-size: 12.5px; color: #6b7280; margin: 14px auto 0 auto !important; max-width: 720px; }
@media (max-width: 767px) { .gpsv-dash { padding: 52px 0 44px; } .gpsv-dash-nav { display: none; } }
/* ---------- REVIEWS + SERVICE GROUP LINKS (17 Oct 2026) ---------- */
.gpsv-reviews { padding: 72px 20px; background: #fff; }
.gpsv-reviews-inner { max-width: 1180px; margin: 0 auto; }
.gpsv-reviews-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; margin-top: 34px; }
.gpsv-review { background: #f8f9fa; border: 1px solid #e6e8eb; border-radius: 12px; padding: 22px 22px 18px; margin: 0 !important; }
.gpsv-review-stars { color: #f5b301; letter-spacing: 2px; font-size: 15px; display: block; margin-bottom: 10px; }
.gpsv-review p { font-size: 15px; line-height: 1.65; color: #2c3e50; margin: 0 0 12px 0 !important; }
.gpsv-review cite { font-style: normal; font-family: var(--gpm-font-mono); font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: #6b7280; }
.gpsv-reviews-cta { text-align: center; margin-top: 26px; }
.gpsv-card ul.gpsv-card-links { list-style: none; margin: 10px 0 0 0 !important; padding: 0 !important; }
.gpsv-card ul.gpsv-card-links li { padding: 5px 0; border-top: 1px solid rgba(0,0,0,0.06); font-size: 14.5px; }
.gpsv-card ul.gpsv-card-links li:first-child { border-top: 0; }
.gpsv-card ul.gpsv-card-links a { color: var(--gpm-blue-deep); font-weight: 500; text-decoration: none; }
.gpsv-card ul.gpsv-card-links a:hover { text-decoration: underline; }
/* 18 Oct 2026: card link lists (no bullets, full width on mobile) + reviews button spacing */
.gpsv-card ul.gpsv-card-links { list-style: none !important; margin-left: 0 !important; }
.gpsv-card ul.gpsv-card-links li { list-style: none !important; margin: 0 !important; padding-left: 0 !important; }
.gpsv-card ul.gpsv-card-links li::marker { content: none; }
.gpsv-card ul.gpsv-card-links li::before { content: none !important; display: none !important; }
.gpsv-reviews-cta { margin: 40px 0 0 0 !important; padding: 0 !important; }
@media (max-width: 768px) {
  .gpsv-card ul.gpsv-card-links { grid-column: 2 / -1; }
  .gpsv-reviews-cta { margin-top: 32px !important; }
  .gpsv-reviews-cta .gpsv-btn { width: 100%; }
}