/* .geo-service belongs to <main>, never <body>; shared header, footer and dialogs stay outside this scope. */
.geo-service {
  --geo-ink: #17202c;
  --geo-muted: #586575;
  --geo-blue: #164be6;
  --geo-line: #dfe5ee;
  --geo-soft: #f2f5fa;
  color: var(--geo-ink);
  background: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  overflow-wrap: break-word;
}
.geo-service *,
.geo-service *::before,
.geo-service *::after { box-sizing: border-box; }
.geo-service .container { width: 100%; max-width: 1264px; margin-inline: auto; padding-inline: 40px; }
.geo-service section[id],
.geo-service [id].geo-readmore { scroll-margin-top: 0; } /* Shared html already reserves 104px for the sticky header. */
.geo-service img,
.geo-service video,
.geo-service iframe { max-width: 100%; }
.geo-service img { display: block; height: auto; }
.geo-service figure { min-width: 0; margin: 0; }
.geo-service a { text-underline-offset: .2em; text-decoration-thickness: 1px; }
.geo-service a:focus-visible,
.geo-service summary:focus-visible,
.geo-service button:focus-visible,
.geo-service [tabindex]:focus-visible { outline: 3px solid #668eff; outline-offset: 5px; }
.geo-service p { margin: 0 0 18px; }
.geo-service p:last-child { margin-bottom: 0; }
.geo-service h1,
.geo-service h2,
.geo-service h3 { color: inherit; text-wrap: balance; }
.geo-service h1 { margin: 0 0 26px; font-size: clamp(42px, 4.6vw, 62px); line-height: 1.065; letter-spacing: -2.2px; }
.geo-service h2 { margin: 0 0 22px; font-size: clamp(29px, 3.5vw, 44px); line-height: 1.15; letter-spacing: -1.25px; }
.geo-service h3 { margin: 0 0 13px; font-size: 23px; line-height: 1.3; letter-spacing: -.45px; }
.geo-service ul,
.geo-service ol { margin: 18px 0 22px; padding-left: 22px; }
.geo-service li + li { margin-top: 9px; }
.geo-service li::marker { color: var(--geo-blue); }
.geo-service .geo-kicker,
.geo-service .geo-section-head .eyebrow { display: block; margin: 0 0 18px; color: var(--geo-blue); font-size: 12px; font-weight: 700; line-height: 1.5; letter-spacing: 1.35px; text-transform: uppercase; }
.geo-service .geo-hero { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: center; gap: 58px; padding-top: 64px; padding-bottom: 52px; }
.geo-service .geo-hero-copy,
.geo-service .geo-hero-art { min-width: 0; }
.geo-service .geo-lead { max-width: 65ch; color: var(--geo-muted); font-size: 19px; line-height: 1.65; }
.geo-service .geo-small { margin-top: 18px; color: var(--geo-muted); font-size: 14px; line-height: 1.6; }
.geo-service .geo-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 26px; margin-top: 28px; }
.geo-service .geo-actions .button { max-width: 100%; text-align: center; line-height: 1.4; }
.geo-service .geo-actions .text-link { min-height: 44px; }
.geo-service .geo-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.geo-service .geo-pills span { display: inline-flex; align-items: center; padding: 5px 11px; border: 1px solid var(--geo-line); border-radius: 6px; background: #fff; color: #445269; font-size: 12px; line-height: 1.5; }
.geo-service .geo-brief { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 32px; padding-top: 25px; border-top: 1px solid var(--geo-line); }
.geo-service .geo-brief > div { min-width: 0; }
.geo-service .geo-brief strong { display: block; margin-bottom: 5px; font-size: 25px; line-height: 1.2; letter-spacing: -.5px; }
.geo-service .geo-brief span { display: block; color: var(--geo-muted); font-size: 13px; line-height: 1.55; }
.geo-service .geo-hero-art { padding: 30px; border: 1px solid #dbe4f3; border-radius: 20px; background: #eef3ff; }
.geo-service .geo-hero-art > img { width: 100%; border-radius: 12px; }
.geo-service .geo-flow { margin: 0; padding: 0; list-style: none; }
.geo-service .geo-flow-step { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr); column-gap: 15px; padding: 23px 20px; border: 1px solid #dfe6f2; border-radius: 12px; background: #fff; }
.geo-service .geo-flow-step + .geo-flow-step { margin-top: 20px; }
.geo-service .geo-flow-step + .geo-flow-step::before { position: absolute; top: -21px; left: 37px; height: 20px; width: 1px; background: #9ab2ed; content: ""; }
.geo-service .geo-flow-step > span:first-child,
.geo-service .geo-flow-step > .icon,
.geo-service .geo-flow-num { display: grid; grid-column: 1; grid-row: 1 / span 2; place-items: center; width: 38px; height: 38px; border-radius: 9px; background: #ecf1ff; color: var(--geo-blue); font-size: 14px; font-weight: 700; }
.geo-service .geo-flow-step > strong,
.geo-service .geo-flow-step > p,
.geo-service .geo-flow-step > div { grid-column: 2; min-width: 0; }
.geo-service .geo-flow-step strong { display: block; margin-bottom: 5px; font-size: 17px; line-height: 1.4; }
.geo-service .geo-flow-step p { margin: 0; color: var(--geo-muted); font-size: 14px; line-height: 1.55; }
.geo-service .geo-flow-note { margin: 20px 0 0; color: #4b5f84; font-size: 13px; line-height: 1.6; }
.geo-service .geo-jump { display: flex; flex-wrap: wrap; gap: 8px 20px; padding-top: 19px; padding-bottom: 19px; border-top: 1px solid var(--geo-line); border-bottom: 1px solid var(--geo-line); }
.geo-service .geo-jump nav { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.geo-service .geo-jump a { display: inline-flex; align-items: center; min-height: 36px; color: #455267; font-size: 14px; text-decoration: none; }
.geo-service .geo-jump a:hover { color: var(--geo-blue); text-decoration: underline; }
.geo-service .geo-section { padding-block: 78px; }
.geo-service .geo-soft { background: var(--geo-soft); }
.geo-service .geo-section-head { max-width: 900px; margin-bottom: 34px; }
.geo-service .geo-section-head h2 { max-width: 850px; }
.geo-service .geo-section-head > p:last-child { max-width: 74ch; color: var(--geo-muted); }
.geo-service .geo-grid,
.geo-service .geo-grid-3,
.geo-service .geo-split,
.geo-service .geo-proof-grid,
.geo-service .geo-price-grid,
.geo-service .geo-platforms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.geo-service .geo-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.geo-service .geo-split { gap: 54px; align-items: start; }
.geo-service .geo-grid > *,
.geo-service .geo-grid-3 > *,
.geo-service .geo-split > *,
.geo-service .geo-price-grid > *,
.geo-service .geo-platforms > * { min-width: 0; }
.geo-service .geo-card { min-width: 0; padding: 28px; border: 1px solid var(--geo-line); border-radius: 14px; background: #fff; }
.geo-service .geo-card-number { display: block; margin-bottom: 22px; color: var(--geo-blue); font-size: 13px; font-weight: 700; letter-spacing: .8px; }
.geo-service .geo-card h3 { font-size: 21px; }
.geo-service .geo-card p,
.geo-service .geo-card li { color: var(--geo-muted); font-size: 16px; }
.geo-service .geo-card ul:last-child { margin-bottom: 0; }
.geo-service .geo-note { margin-top: 26px; padding: 20px 24px; border-left: 3px solid var(--geo-blue); border-radius: 0 9px 9px 0; background: #edf2ff; color: #3f506f; font-size: 15px; line-height: 1.65; }
.geo-service .geo-note p { margin-bottom: 12px; }
.geo-service .geo-note p:last-child { margin-bottom: 0; }
.geo-service .geo-copy { min-width: 0; }
.geo-service .geo-copy p,
.geo-service .geo-copy ul,
.geo-service .geo-copy ol { max-width: 70ch; }
.geo-service .geo-copy > h3:not(:first-child) { margin-top: 30px; }
.geo-service .geo-copy + .geo-grid,
.geo-service .geo-copy + .geo-grid-3,
.geo-service .geo-table-wrap + .geo-copy,
.geo-service .geo-table-wrap + .geo-metrics,
.geo-service .geo-price-grid + .geo-grid { margin-top: 28px; }
.geo-service .geo-case-cover { overflow: hidden; border: 1px solid var(--geo-line); border-radius: 14px; background: #edf2fa; }
.geo-service .geo-case-cover img { width: 100%; height: auto; object-fit: contain; }
.geo-service .geo-case-points { margin: 25px 0; padding-left: 21px; }
.geo-service .geo-case-points li { padding-left: 3px; }
.geo-service .geo-case-points strong { color: var(--geo-ink); }
.geo-service .geo-proof-grid { margin-top: 30px; align-items: start; }
.geo-service .geo-proof-grid figure { padding: 14px; border: 1px solid var(--geo-line); border-radius: 12px; background: #fff; }
.geo-service .geo-proof-grid img { width: 100%; border-radius: 5px; object-fit: contain; }
.geo-service .geo-proof-grid figcaption { margin: 12px 2px 0; color: var(--geo-muted); font-size: 13px; line-height: 1.55; }
.geo-service .geo-table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; border: 1px solid var(--geo-line); border-radius: 12px; scrollbar-width: thin; }
.geo-service .geo-table { width: 100%; min-width: 690px; margin: 0; border-spacing: 0; border-collapse: collapse; text-align: left; font-size: 15px; line-height: 1.6; }
.geo-service .geo-table th,
.geo-service .geo-table td { padding: 20px 23px; border-bottom: 1px solid var(--geo-line); vertical-align: top; }
.geo-service .geo-table thead th { background: #eaf0fc; color: #263c63; font-size: 14px; font-weight: 700; }
.geo-service .geo-table tbody th { min-width: 160px; color: var(--geo-ink); font-weight: 600; }
.geo-service .geo-table tbody td { color: var(--geo-muted); }
.geo-service .geo-table tbody tr:last-child > * { border-bottom: 0; }
.geo-service .geo-table tbody tr:nth-child(even) { background: #f8faff; }
.geo-service .geo-table p { margin-bottom: 10px; }
.geo-service .geo-table p:last-child { margin-bottom: 0; }
.geo-service .geo-platforms .geo-card { padding: 25px; }
.geo-service .geo-platforms .geo-card h3 { font-size: 20px; }
.geo-service .geo-steps { margin: 0; padding: 0; list-style: none; }
.geo-service .geo-step { display: grid; grid-template-columns: 50px minmax(0, 1fr); gap: 25px; margin: 0; padding: 28px 0; border-top: 1px solid var(--geo-line); }
.geo-service .geo-step:last-child { border-bottom: 1px solid var(--geo-line); }
.geo-service .geo-step + .geo-step { margin-top: 0; }
.geo-service .geo-step-num { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 11px; background: #ebf1ff; color: var(--geo-blue); font-size: 15px; font-weight: 700; }
.geo-service .geo-step p,
.geo-service .geo-step ul { max-width: 84ch; color: var(--geo-muted); font-size: 16px; }
.geo-service .geo-step ul:last-child { margin-bottom: 0; }
.geo-service .geo-metrics p { max-width: 78ch; }
.geo-service .geo-metrics code,
.geo-service .geo-metrics .geo-formula { display: block; max-width: 100%; margin: 20px 0; padding: 19px 23px; border: 1px solid #d7e2fa; border-radius: 9px; background: #f0f4ff; color: #1f407f; font-size: 15px; line-height: 1.7; white-space: normal; overflow-wrap: anywhere; }
.geo-service .geo-metrics .geo-formula { font-weight: 700; }
.geo-service .geo-price-grid { align-items: stretch; }
.geo-service .geo-price-card { display: flex; flex-direction: column; min-width: 0; padding: 34px; border: 1px solid #d6e1f4; border-radius: 16px; background: #fff; }
.geo-service .geo-price-title { margin-bottom: 15px; font-size: 23px; font-weight: 700; line-height: 1.3; }
.geo-service .geo-price-value { margin-bottom: 15px; color: var(--geo-blue); font-size: clamp(29px, 3.2vw, 41px); font-weight: 700; line-height: 1.15; letter-spacing: -1.1px; }
.geo-service .geo-price-value small { display: inline-block; color: var(--geo-muted); font-size: 16px; font-weight: 400; letter-spacing: 0; }
.geo-service .geo-price-note { color: var(--geo-muted); font-size: 14px; line-height: 1.6; }
.geo-service .geo-price-card ul { padding-top: 20px; border-top: 1px solid var(--geo-line); color: var(--geo-muted); font-size: 16px; }
.geo-service .geo-price-card .geo-actions { margin-top: auto; padding-top: 18px; }
.geo-service .geo-price-card > .button { align-self: start; margin-top: auto; }
.geo-service .geo-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 24px; }
.geo-service .geo-options .geo-card { padding: 24px; }
.geo-service .geo-options .geo-card h3 { font-size: 19px; }
.geo-service .geo-person { min-width: 0; }
.geo-service .geo-person img { width: 100%; max-width: 460px; max-height: 560px; margin-inline: auto; border-radius: 16px; object-fit: cover; object-position: center 28%; }
.geo-service .geo-person figcaption { margin-top: 12px; color: var(--geo-muted); font-size: 13px; }
.geo-service .geo-faq { max-width: 1040px; }
.geo-service .geo-faq-item { border-top: 1px solid var(--geo-line); }
.geo-service .geo-faq-item:last-child { border-bottom: 1px solid var(--geo-line); }
.geo-service .geo-faq-item > summary,
.geo-service .geo-readmore > summary { position: relative; padding: 24px 44px 24px 0; color: var(--geo-ink); font-size: 20px; font-weight: 600; line-height: 1.4; list-style: none; cursor: pointer; }
.geo-service .geo-faq-item > summary::-webkit-details-marker,
.geo-service .geo-readmore > summary::-webkit-details-marker { display: none; }
.geo-service .geo-faq-item > summary::after,
.geo-service .geo-readmore > summary::after { position: absolute; top: 22px; right: 4px; display: grid; place-items: center; width: 28px; height: 28px; color: var(--geo-blue); font-size: 25px; font-weight: 400; content: "+"; }
.geo-service .geo-faq-item[open] > summary::after,
.geo-service .geo-readmore[open] > summary::after { content: "−"; }
.geo-service .geo-faq-answer { max-width: 85ch; padding: 0 44px 25px 0; color: var(--geo-muted); font-size: 16px; }
.geo-service .geo-faq-answer p + p { margin-top: 16px; }
.geo-service .geo-readmore { margin-top: 30px; padding: 0 26px; border: 1px solid var(--geo-line); border-radius: 12px; background: #fff; }
.geo-service .geo-readmore > summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; font-size: 18px; }
.geo-service .geo-readmore > summary > span:first-child { min-width: 0; }
.geo-service .geo-readmore-label { flex: none; color: var(--geo-blue); font-size: 13px; font-weight: 400; }
.geo-service .geo-readmore[open] .geo-readmore-label { display: none; }
.geo-service .geo-reading { max-width: 85ch; padding: 4px 0 28px; font-size: 16px; }
.geo-service .geo-reading h3 { margin-top: 28px; font-size: 22px; }
.geo-service .geo-reading h3:first-child { margin-top: 0; }
.geo-service .geo-sources { margin-top: 30px; color: var(--geo-muted); font-size: 14px; line-height: 1.65; }
.geo-service .geo-sources h3 { font-size: 18px; }
.geo-service .geo-sources ul { margin-bottom: 0; }
.geo-service .geo-sources a { overflow-wrap: anywhere; }
.geo-service .geo-dark { background: var(--geo-ink); color: #fff; }
.geo-service .geo-dark .geo-kicker,
.geo-service .geo-dark .eyebrow { color: #a9c0ff; }
.geo-service .geo-dark .geo-lead,
.geo-service .geo-dark .geo-section-head > p:last-child,
.geo-service .geo-dark .geo-copy p,
.geo-service .geo-dark .geo-brief span,
.geo-service .geo-dark .geo-price-note,
.geo-service .geo-dark .geo-small { color: #c7d2e2; }
.geo-service .geo-dark .geo-case-points strong { color: #fff; }
.geo-service .geo-dark a:not(.button) { color: #b9ceff; }
.geo-service .geo-dark li::marker { color: #9fbaff; }
.geo-service .geo-dark .geo-card,
.geo-service .geo-dark .geo-price-card { border-color: #42536a; background: #233146; color: #fff; }
.geo-service .geo-dark .geo-card p,
.geo-service .geo-dark .geo-card li { color: #c7d2e2; }
.geo-service .geo-dark .geo-card-number { color: #a9c0ff; }
.geo-service .geo-dark .geo-price-value { color: #a9c0ff; }
.geo-service .geo-dark .geo-note { border-left-color: #8eadff; background: #283951; color: #e0e8f7; }
.geo-service .geo-final { padding-block: 72px; }
.geo-service .geo-final h2 { max-width: 830px; }
.geo-service .geo-final p { max-width: 70ch; color: var(--geo-muted); }
.geo-service .geo-final.geo-dark p { color: #c7d2e2; }

@media (max-width: 1100px) {
  .geo-service .geo-hero { gap: 34px; }
  .geo-service h1 { font-size: 48px; letter-spacing: -1.7px; }
  .geo-service .geo-hero-art { padding: 23px; }
  .geo-service .geo-flow-step { padding: 20px 16px; column-gap: 12px; }
  .geo-service .geo-split { gap: 32px; }
  .geo-service .geo-grid-3,
  .geo-service .geo-platforms { gap: 18px; }
  .geo-service .geo-card { padding: 24px; }
  .geo-service .geo-price-card { padding: 28px; }
}
@media (max-width: 850px) {
  .geo-service .container { padding-inline: 24px; }
  .geo-service .geo-hero { grid-template-columns: 1fr; gap: 34px; padding-top: 42px; padding-bottom: 38px; }
  .geo-service .geo-hero-copy { max-width: 730px; }
  .geo-service .geo-hero-art { max-width: 680px; width: 100%; }
  .geo-service h1 { max-width: 700px; font-size: clamp(40px, 6vw, 50px); }
  .geo-service .geo-brief { max-width: 600px; }
  .geo-service .geo-section { padding-block: 60px; }
  .geo-service .geo-section-head { margin-bottom: 28px; }
  .geo-service .geo-grid-3,
  .geo-service .geo-platforms,
  .geo-service .geo-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .geo-service .geo-split { grid-template-columns: 1fr; gap: 28px; }
  .geo-service .geo-case-cover { max-width: 740px; }
  .geo-service .geo-person img { max-width: 400px; max-height: 450px; margin-left: 0; }
  .geo-service .geo-price-card { padding: 25px; }
  .geo-service .geo-price-value { font-size: 32px; }
  .geo-service .geo-final { padding-block: 58px; }
}
@media (max-width: 600px) {
  .geo-service .container { padding-inline: 20px; }
  .geo-service h1 { font-size: clamp(36px, 8.5vw, 46px); letter-spacing: -1.3px; margin-bottom: 22px; }
  .geo-service h2 { font-size: clamp(29px, 6.6vw, 36px); letter-spacing: -.8px; }
  .geo-service h3 { font-size: 22px; }
  .geo-service .geo-kicker,
  .geo-service .geo-section-head .eyebrow { font-size: 11px; letter-spacing: 1.15px; margin-bottom: 16px; }
  .geo-service .geo-hero { padding-top: 32px; padding-bottom: 30px; gap: 28px; }
  .geo-service .geo-lead { font-size: 17px; }
  .geo-service .geo-actions { align-items: start; gap: 14px 20px; margin-top: 23px; }
  .geo-service .geo-actions .button { padding: 14px 18px; min-height: 52px; gap: 16px; }
  .geo-service .geo-pills { margin-top: 22px; gap: 7px; }
  .geo-service .geo-brief { gap: 12px; padding-top: 21px; margin-top: 26px; }
  .geo-service .geo-brief strong { font-size: 21px; letter-spacing: -.4px; }
  .geo-service .geo-brief span { font-size: 12px; }
  .geo-service .geo-hero-art { padding: 18px; border-radius: 15px; }
  .geo-service .geo-flow-step { grid-template-columns: 32px minmax(0, 1fr); padding: 18px 14px; gap: 0 11px; }
  .geo-service .geo-flow-step > span:first-child,
  .geo-service .geo-flow-step > .icon,
  .geo-service .geo-flow-num { width: 32px; height: 32px; border-radius: 8px; }
  .geo-service .geo-flow-step + .geo-flow-step::before { left: 29px; }
  .geo-service .geo-flow-step strong { font-size: 16px; }
  .geo-service .geo-flow-step p { font-size: 13px; }
  .geo-service .geo-jump,
  .geo-service .geo-jump nav { gap: 4px 17px; }
  .geo-service .geo-jump { padding-top: 13px; padding-bottom: 13px; }
  .geo-service .geo-jump a { min-height: 40px; font-size: 13px; }
  .geo-service .geo-section { padding-block: 48px; }
  .geo-service .geo-section-head { margin-bottom: 26px; }
  .geo-service .geo-grid,
  .geo-service .geo-grid-3,
  .geo-service .geo-proof-grid,
  .geo-service .geo-price-grid,
  .geo-service .geo-platforms,
  .geo-service .geo-options { grid-template-columns: 1fr; gap: 17px; }
  .geo-service .geo-card,
  .geo-service .geo-platforms .geo-card,
  .geo-service .geo-options .geo-card { padding: 23px; }
  .geo-service .geo-card-number { margin-bottom: 16px; }
  .geo-service .geo-note { padding: 18px 20px; margin-top: 22px; }
  .geo-service .geo-proof-grid { margin-top: 24px; }
  .geo-service .geo-proof-grid figure { padding: 10px; }
  .geo-service .geo-table th,
  .geo-service .geo-table td { padding: 16px 18px; }
  .geo-service .geo-step { grid-template-columns: 35px minmax(0, 1fr); gap: 14px; padding: 23px 0; }
  .geo-service .geo-step-num { width: 34px; height: 34px; border-radius: 8px; font-size: 12px; }
  .geo-service .geo-step h3 { font-size: 20px; }
  .geo-service .geo-step p,
  .geo-service .geo-step ul { font-size: 16px; }
  .geo-service .geo-metrics code,
  .geo-service .geo-metrics .geo-formula { padding: 17px; font-size: 14px; }
  .geo-service .geo-price-card { padding: 25px 23px; }
  .geo-service .geo-price-title { font-size: 22px; }
  .geo-service .geo-price-value { font-size: 34px; }
  .geo-service .geo-person img { max-width: 100%; max-height: 440px; }
  .geo-service .geo-faq-item > summary { padding: 22px 36px 22px 0; font-size: 18px; }
  .geo-service .geo-faq-answer { padding: 0 0 23px; }
  .geo-service .geo-faq-item > summary::after,
  .geo-service .geo-readmore > summary::after { right: 0; top: 21px; width: 25px; height: 25px; }
  .geo-service .geo-readmore { padding-inline: 20px; }
  .geo-service .geo-readmore > summary { padding-right: 35px; font-size: 17px; }
  .geo-service .geo-reading { padding-bottom: 22px; }
  .geo-service .geo-final { padding-block: 48px; }
}
