/* Selected site typeface: DM Sans. Font alternatives are archived outside dist/. */
@font-face {
  font-family: "DM Sans";
  src: url("/fonts/dm-sans-latin-var.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
}
/* Shared navy surfaces. The video hero keeps its own renderer and composition. */
html[data-geo-design] {
  --font-display: "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --ink: #f5f8ff;
  --ink-2: #c9d8ec;
  --muted: #b7c7dd;
  --paper: #0b1d34;
  --mist: #061225;
  --mist-2: #102640;
  --line: #2d435e;
  --line-strong: #7089a6;
  --accent: #c6ddf7;
  --accent-hover: #e3efff;
  --accent-deep: #b9d4f3;
  --accent-tint: #132c48;
  --on-accent: #061225;
  --action: #f5f8ff;
  --action-hover: #dceafd;
  --ink-rgb: 245, 248, 255;
  --paper-rgb: 11, 29, 52;
  --ok: #8ed6b4;
  --ok-tint: #0c2a2c;
  --error: #ffb4a8;
  --error-tint: #3c2229;
  --radius-s: 4px;
  --radius-m: 6px;
  --radius-l: 8px;
  --geo-gutter: clamp(24px, 5.2vw, 84px);
  color-scheme: dark;
}

html[data-geo-design] body { background: #061225; color: var(--ink); }
html[data-geo-design] ::selection { background: #c6ddf7; color: #061225; }
html[data-geo-design] :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid #d6e8ff;
  outline-offset: 5px;
}
html[data-geo-design] .btn {
  border-radius: 4px;
  background: #f5f8ff;
  color: #061225;
  transition: background .16s;
}
html[data-geo-design] .btn:hover { background: #dceafd; color: #061225; transform: none; }
html[data-geo-design] .btn:active { transform: none; }
html[data-geo-design] .btn__icon { color: #061225; }
html[data-geo-design] .skip-link { background: #f5f8ff; color: #061225; }

/* Match the restrained hero navigation on interior pages, too. */
html[data-geo-design] [data-bh-header].site-header {
  inset: 0 0 auto;
  border: 0;
  border-radius: 0;
  background: #061225f5;
  color: #f5f8ff;
  box-shadow: 0 1px 0 #c6ddf722;
}
html[data-geo-design] body.geo-home:not(.hero-scrolled) [data-bh-header].site-header {
  background: linear-gradient(180deg, #040e1fa6, #040e1f00);
  box-shadow: none;
}
html[data-geo-design] [data-bh-header] .site-header__bar {
  max-width: 1600px;
  height: 100px;
  padding-inline: var(--geo-gutter);
}
html[data-geo-design] [data-bh-header] :is(.ki-banner, .site-header__location, .site-header__hours, .site-header__phone, .site-header__messengers) { display: none; }
html[data-geo-design] [data-bh-header] .geo-import-brand { color: #f5f8ff; }
html[data-geo-design] [data-bh-header] .geo-import-symbol { font-size: 37px; letter-spacing: -.065em; }
html[data-geo-design] [data-bh-header] .geo-import-symbol > span { color: #9ebcde; }
html[data-geo-design] [data-bh-header] .geo-import-name { font-size: 10px; line-height: 1.3; }
html[data-geo-design] [data-bh-header] .site-nav > ul { gap: 30px; }
html[data-geo-design] [data-bh-header] .site-nav > ul > li > a { color: #e8eef9 !important; font-size: 12px; font-weight: 500; }
html[data-geo-design] [data-bh-header] .site-nav a::after { display: none; }
html[data-geo-design] [data-bh-header] .lang-switch { background: transparent; box-shadow: none; }
html[data-geo-design] [data-bh-header] .lang-switch__item { color: #b7c7dd; background: transparent; font-size: 10px; }
html[data-geo-design] [data-bh-header] .lang-switch__item.is-current { color: #fff; text-decoration: underline; text-underline-offset: 5px; }
html[data-geo-design] [data-bh-header] .site-header__cta { min-height: 44px; padding: 12px 17px; gap: 13px; border: 1px solid #f5f8ff99; border-radius: 4px; background: #f5f8ff; color: #061225; font-size: 11px; }
html[data-geo-design] [data-bh-header] .menu-toggle { color: #f5f8ff; border: 1px solid #7894b5; border-radius: 4px; background: transparent; }
html[data-geo-design] [data-bh-header] .menu-toggle__icon { background: transparent; }
html[data-geo-design] .menu { --fg: #f5f8ff; --bg: #061225; --rule: #7089a6; background: #061225; color: #f5f8ff; }
html[data-geo-design] .menu :is(a, .menu__location, .menu__hours) { color: #f5f8ff; }
html[data-geo-design] .menu :is(.menu__detail-label, .menu__business) { color: #b7c7dd; }
html[data-geo-design] .menu .menu__lang-item.is-current { background: #f5f8ff; color: #061225; }
html.menu-open[data-geo-design] [data-bh-header].site-header { background: #061225; }
html[data-geo-design] .mobile-cta { background: #061225f5; border-color: #2d435e; }

/* Static local SVGs: no icon font, carousel, extra runtime, or remote requests. */
html[data-geo-design] .geo-systems { background: #08182d; border-bottom: 1px solid var(--line); }
.geo-systems__inner { display: grid; grid-template-columns: 1fr; align-items: center; padding-block: 38px; }
.geo-systems__list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.geo-systems__list li { display: flex; align-items: center; justify-content: center; gap: 12px; color: #e4eefb; font: 500 clamp(18px, 1.5vw, 22px)/1.4 var(--font-display); }
.geo-systems__list img { display: block; flex: 0 0 32px; width: 32px; height: 32px; object-fit: contain; }

/* Home-page rhythm and surfaces. Keep all existing content and interactions. */
html[data-geo-design] .geo-story { background: #061225; color: #f5f8ff; }
html[data-geo-design] .story-section { padding-block: clamp(70px, 8vw, 126px); }
html[data-geo-design] .story-heading { margin-bottom: 48px; }
html[data-geo-design] .story-heading h2 { font-weight: 450; line-height: 1.12; }
html[data-geo-design] :is(.story-eyebrow, .story-index, .story-caption, .story-intro, .story-problems p, .story-benefits p) { color: #b7c7dd; }
html[data-geo-design] .story-eyebrow { font-size: 10px; letter-spacing: .16em; }
html[data-geo-design] .story-intro { hyphens: none; }
html[data-geo-design] :is(.story-problems article, .story-problems--illustrated .story-problem-copy article:last-child, .story-benefits article) { border-color: #2d435e; }
html[data-geo-design] .story-tabs { background: #0b1d34; border-color: #47617f; border-radius: 4px; padding: 4px; }
html[data-geo-design] .story-tabs button { background: transparent; color: #c9d8ec; border-radius: 2px; }
html[data-geo-design] .story-tabs button[aria-selected=true] { background: #f5f8ff; color: #061225; }
html[data-geo-design] .story-problems--illustrated .story-problem-copy .story-index { color: #91b2d9; }
html[data-geo-design] .story-problem-visual { border-radius: 6px; background: #0b1d34; border: 1px solid #2d435e; }
html[data-geo-design] .story-problem-visual > img { filter: none; }
html[data-geo-design] .story-services { background: #0b1d34; border-radius: 0; margin: 0; border-block: 1px solid #2d435e; }
html[data-geo-design] .story-service { border: 1px solid #3a5474; border-radius: 5px; background: #09192d; padding: clamp(26px, 3vw, 44px); }
html[data-geo-design] .story-service-top { border-color: #2d435e; font-size: 14px; }
html[data-geo-design] .story-service h3 { font-weight: 450; line-height: 1.18; }
html[data-geo-design] .story-service > p { color: #b7c7dd; }
html[data-geo-design] .story-service li::before { color: #c6ddf7; }
html[data-geo-design] .story-selective { background: #142d48; border-left: 2px solid #9ebcde; border-radius: 0; color: #d7e4f5; }
html[data-geo-design] .story-link { color: #f5f8ff; border-color: #3a5474; }
html[data-geo-design] :is(.story-link span, .story-benefits .story-index, .story-faq summary span) { color: #b9d4f3; }
html[data-geo-design] .story-link:hover { color: #b9d4f3; }
html[data-geo-design] .story-founders { margin: 0; border-radius: 0; border-block: 1px solid #2d435e; background: #0b1d34; }
html[data-geo-design] .story-founder-portrait { border-color: #3a5474; background: #102640; }
html[data-geo-design] .story-founder-placeholder { color: #b7c7dd; }
html[data-geo-design] :is(.story-founders .story-eyebrow, .story-founders .story-intro, .story-founders .story-caption, .story-founder-grid p) { color: #b7c7dd; }
html[data-geo-design] .geo-story .story-offer { margin: 0; border-radius: 0; background: #061225; border-bottom: 1px solid #2d435e; }
html[data-geo-design] .geo-story .story-offer::before,
html[data-geo-design] .geo-story .story-offer::after { display: none; }
html[data-geo-design] .story-offer-kicker { color: #b7c7dd; border: 0; border-radius: 0; background: transparent; padding: 0; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
html[data-geo-design] .geo-story .story-offer h2 { font-weight: 450; }
html[data-geo-design] .geo-story .story-offer h2 span { color: #b7c7dd; }
html[data-geo-design] :is(.story-offer-intro, .story-offer-small, .story-offer-form-note) { color: #b7c7dd; }
html[data-geo-design] .story-offer-hint::before { background: #c6ddf7; box-shadow: -9px 0 0 #6686ad; }
html[data-geo-design] .story-offer-card { border: 1px solid #47617f; border-radius: 6px; background: #0b1d34; box-shadow: none; }
html[data-geo-design] .story-offer-field :is(input, textarea) { background: #102640; border-color: #7089a6; border-radius: 4px; color: #f5f8ff; }
html[data-geo-design] .story-offer-field :is(input, textarea)::placeholder { color: #b7c7dd; }
html[data-geo-design] .story-offer-field :is(input, textarea):focus-visible { border-color: #d6e8ff; box-shadow: none; }
html[data-geo-design] .story-offer-consent { color: #c9d8ec; }
html[data-geo-design] .story-offer-consent input { accent-color: #c6ddf7; }
html[data-geo-design] .story-offer-consent a { text-decoration-color: #c6ddf7; }
html[data-geo-design] :is(.story-offer-submit, .story-offer-action) { border-radius: 4px; background: #f5f8ff; color: #061225; transition: background .16s; }
html[data-geo-design] :is(.story-offer-submit, .story-offer-action):hover { background: #dceafd; transform: none; }
html[data-geo-design] .story-offer-action--secondary { background: transparent; color: #f5f8ff; border: 1px solid #7089a6; }
html[data-geo-design] .story-offer-action--secondary:hover { background: #19334f; color: #f5f8ff; }
html[data-geo-design] .story-offer-result { background: #102c3a; border-color: #8ed6b4; border-radius: 4px; }
html[data-geo-design] .story-faq details { border-color: #3a5474; }
html[data-geo-design] .story-faq details > p { color: #b7c7dd; }

/* Interior pages use the same palette without loading the video runtime. */
html[data-geo-design][data-service-page] .aeo-page-intro {
  background: linear-gradient(120deg, #102a49, #09192d);
  border: 1px solid #3a5474;
  border-radius: 6px;
}
html[data-geo-design][data-service-page] .aeo-page-intro::before { display: none; }
html[data-geo-design][data-service-page] .service-hero-accent { color: #bdd6f2; }
html[data-geo-design][data-service-page] .aeo-crumb { color: #b7c7dd; }
html[data-geo-design][data-service-page] .aeo-crumb a { text-decoration-color: #bdd6f2; }
html[data-geo-design][data-service-page] .aeo-page-intro .aeo-hero-lead { color: #c9d8ec; }
html[data-geo-design][data-service-page] .aeo-page-intro .btn { background: #f5f8ff; color: #061225; }
html[data-geo-design][data-service-page] .aeo-page-intro .btn:hover { background: #dceafd; }
html[data-geo-design][data-service-page] .aeo-section { background: #061225; }
html[data-geo-design][data-service-page] .aeo-section--paper { background: #0b1d34; }
html[data-geo-design][data-service-page] .geo-output-item { background: #0b1d34; border: 1px solid #47617f; border-top: 2px solid #9ebcde; border-radius: 5px; box-shadow: none; }
html[data-geo-design][data-service-page] .geo-output-item h3 { color: #f5f8ff; }
html[data-geo-design][data-service-page] .geo-output-item p { color: #b7c7dd; }
html[data-geo-design][data-service-page] .aeo-section--paper .geo-service-card { background: #102640; border-color: #47617f; }
html[data-geo-design][data-service-page] :is(.geo-service-card__label, .aeo-eyebrow) { color: #b9d4f3; }
html[data-geo-design][data-service-page] .aeo-prose :is(a, strong) { text-decoration-color: #b9d4f3; }
html[data-geo-design] .geo-example { border-radius: 5px; }
html[data-geo-design] .geo-service-card { border-radius: 5px; box-shadow: none; }
html[data-geo-design] .aeo-form { border-color: #47617f; border-radius: 6px; }
html[data-geo-design] .aeo-field :is(input, select, textarea) { background: #102640; color: #f5f8ff; border-color: #7089a6; border-radius: 4px; }
html[data-geo-design] .aeo-field :is(input, textarea)::placeholder { color: #b7c7dd; opacity: 1; }
html[data-geo-design] .aeo-note { background: #102640; color: #c9d8ec; }
html[data-geo-design] .legal { background: #061225; }

/* A quiet full-width footer finishes the same visual system. */
html[data-geo-design] .geo-footer { margin: 0; border-top: 1px solid #2d435e; border-radius: 0; background: #050f20; color: #f5f8ff; --muted: #b7c7dd; --line: #2d435e; }
html[data-geo-design] .geo-footer a:hover { color: #dceafd; }
html[data-geo-design] .geo-footer-grid h2 { color: #f5f8ff; }

/* Alternate white and midnight surfaces without changing the hero. */
html[data-geo-design] :is(.story-audience, .story-advantages, .geo-story .story-offer, [data-geo-surface="light"], .geo-footer) {
  --ink: #061225;
  --ink-2: #263f5c;
  --muted: #465c75;
  --paper: #fff;
  --mist: #f2f6fb;
  --mist-2: #e8eff7;
  --line: #ccd7e4;
  --line-strong: #627b98;
  --accent: #28517b;
  --accent-tint: #e8eff7;
  --accent-deep: #28517b;
  --ink-rgb: 6, 18, 37;
  --paper-rgb: 255, 255, 255;
  color-scheme: light;
  background: #fff;
  color: #061225;
  border-color: #ccd7e4;
}
html[data-geo-design] :is(.story-audience, .story-advantages) :is(.story-eyebrow, .story-index, .story-caption, .story-intro, .story-problems p, .story-benefits p) { color: #465c75; }
html[data-geo-design] :is(.story-audience, .story-advantages) :is(.story-problems article, .story-problem-copy article:last-child, .story-benefits article) { border-color: #ccd7e4; }
html[data-geo-design] :is(.story-audience, .story-advantages) :is(.story-problem-copy .story-index, .story-benefits .story-index) { color: #28517b; }
html[data-geo-design] .story-tabs { background: #edf3f9; border-color: #b6c7da; }
html[data-geo-design] .story-tabs button { color: #344e6c; }
html[data-geo-design] .story-tabs button[aria-selected=true] { background: #061225; color: #fff; }
html[data-geo-design] .story-faq { background: #061225; }
html[data-geo-design] .geo-story .story-offer h2 { color: #061225; }
html[data-geo-design] .geo-story .story-offer h2 span { color: #465c75; }
html[data-geo-design] .story-offer-copy :is(.story-offer-kicker, .story-offer-intro, .story-offer-small) { color: #465c75; }
html[data-geo-design] .story-offer-copy .story-offer-hint { color: #061225; }
html[data-geo-design] .story-offer-hint::before { background: #28517b; box-shadow: -9px 0 0 #bdd6f2; }
html[data-geo-design] .story-offer-card { color-scheme: dark; color: #f5f8ff; }
html[data-geo-design] :is(.story-audience, .story-advantages, .story-offer-copy, [data-geo-surface="light"], .geo-footer) :is(a, button, input, select, textarea, summary):focus-visible { outline-color: #28517b; }
html[data-geo-design] .story-offer-card :is(a, button, input, textarea):focus-visible { outline-color: #d6e8ff; }
html[data-geo-design] [data-geo-surface="light"] :is(.aeo-eyebrow, .geo-service-card__label) { color: #28517b; }
html[data-geo-design] [data-geo-surface="light"] :is(.geo-output-item, .geo-service-card) { background: #f2f6fb; border-color: #b6c7da; }
html[data-geo-design] [data-geo-surface="light"] .geo-output-item h3 { color: #061225; }
html[data-geo-design] [data-geo-surface="light"] .geo-output-item p { color: #465c75; }
html[data-geo-design] [data-geo-surface="light"] .aeo-form { background: #0b1d34; color: #f5f8ff; color-scheme: dark; --muted: #b7c7dd; --ink: #f5f8ff; --line: #47617f; }
html[data-geo-design] [data-geo-surface="light"] .aeo-form :is(input, select, textarea, button, a):focus-visible { outline-color: #d6e8ff; }
html[data-geo-design] .geo-footer .geo-footer-grid h2 { color: #061225; }
html[data-geo-design] .geo-footer a:hover { color: #28517b; }
html[data-geo-design] :is([data-geo-surface="light"], .geo-footer) .btn { --on-accent: #fff; background: #061225; color: #fff; }
html[data-geo-design] :is([data-geo-surface="light"], .geo-footer) .btn:hover { background: #28517b; color: #fff; }
html[data-geo-design] :is([data-geo-surface="light"], .geo-footer) .btn__icon { color: #fff; }
html[data-geo-design] [data-geo-surface="light"] .aeo-form .btn { --on-accent: #061225; background: #f5f8ff; color: #061225; }
html[data-geo-design] [data-geo-surface="light"] .aeo-form .btn__icon { color: #061225; }

/* Original-colour illustrations with a static, progressive ASCII texture. */
html[data-geo-design] .story-problem-visual { position: relative; background: #eef0eb; border-color: #ccd7e4; }
.story-image-ascii { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: 0; }
.story-image-ascii.is-ready { opacity: .8; }

@media (min-width: 981px) {
  html[data-geo-design] [data-bh-header] .site-nav { display: flex; }
  html[data-geo-design] [data-bh-header] .menu-toggle { display: none; }
  html[data-geo-design] [data-bh-header] .site-header__actions { display: flex; }
  html[data-geo-design] [data-bh-header] .lang-switch { display: inline-flex; gap: 1px; padding: 0; }
}
@media (max-width: 980px) {
  html[data-geo-design] [data-bh-header] .site-nav { display: none; }
  html[data-geo-design] [data-bh-header] .menu-toggle { display: inline-flex; }
}
@media (max-width: 1200px) {
  .geo-systems__list li { justify-content: flex-start; }
}
@media (max-width: 760px) {
  html[data-geo-design] [data-bh-header] .site-header__bar { height: 76px; }
  .geo-systems__inner { padding-block: 28px; }
  .geo-systems__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
  .geo-systems__list li { font-size: 18px; gap: 10px; }
  .geo-systems__list img { width: 28px; height: 28px; flex-basis: 28px; }
  html[data-geo-design] .story-heading { margin-bottom: 32px; }
  html[data-geo-design] .story-heading h2 { font-size: clamp(30px, 8.3vw, 42px); }
  html[data-geo-design] :is(.story-services .wrap, .story-founders .wrap, .geo-story .story-offer .wrap) { padding-inline: var(--gutter); }
  html[data-geo-design] .story-problem-visual { border-radius: 5px; }
  html[data-geo-design] .story-founders .wrap { display: block; }
  html[data-geo-design] .story-founder-grid { max-width: 440px; margin: 32px 0 0; }
}

/* Service labels and published prices share the former numbered top row. */
html[data-geo-design] .story-service-top { gap: 18px; align-items: baseline; }
html[data-geo-design] .story-service-price { color: #f5f8ff; font: 500 clamp(22px, 2.2vw, 30px)/1.2 var(--font-display); letter-spacing: -.025em; white-space: nowrap; }
