/* Automatic system theme. The light palette remains in the existing stylesheets. */
@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --color-bg:var(--stt-brand-navy);
    --color-surface:var(--color-dark-surface);
    --color-surface-alt:var(--color-dark-raised);
    --color-raised:#2d4562;
    --color-text:var(--color-dark-text);
    --color-text-secondary:var(--color-dark-muted);
    --color-border:rgba(180,200,220,.14);
    --color-border-strong:#607e9b;
    --color-focus:#8cabc8;
    --color-selected:#304e6e;
    --color-selected-text:var(--color-dark-text);
    --color-disabled:#a1b2c4;
    --color-glass-nav:rgba(20,30,48,.78);
    --color-glass-menu:rgba(20,30,48,.96);
    --color-glass-modal:rgba(20,30,48,.9);
    --color-scrim:rgba(11,20,32,.48);
    --color-border-glass:rgba(180,200,220,.14);
    --color-glass-highlight:rgba(244,247,250,.045);
    --color-error:#e7b1bb;
    --color-error-border:rgba(231,177,187,.6);
    --color-error-ring:rgba(231,177,187,.09);
    --color-hover-wash:rgba(140,171,200,.08);
    --color-pressed-wash:rgba(140,171,200,.13);
    --color-modal-shadow:0 24px 72px rgba(0,5,14,.24);
    --theme-bg:var(--color-bg);
    --theme-surface:var(--color-surface);
    --theme-raised:var(--color-surface-alt);
    --theme-border:var(--color-border);
    --theme-text:var(--color-text);
    --theme-muted:var(--color-text-secondary);
    --theme-accent:var(--color-focus);
    --theme-action:var(--color-primary);
    --theme-action-hover:var(--color-primary-hover);
    --stt-ink: var(--theme-text);
    --stt-muted: var(--theme-muted);
    --stt-line: var(--theme-border);
    --home-ink: var(--theme-text);
    --home-muted: var(--theme-muted);
    --home-light: var(--theme-surface);
    --home-line: var(--theme-border);
    --services-ink: var(--theme-text);
    --services-muted: var(--theme-muted);
    --services-soft: var(--theme-surface);
    --services-line: var(--theme-border);
    --ink: var(--theme-text);
    --muted: var(--theme-muted);
    --line: var(--theme-border);
    --sky: var(--theme-surface);
    --stt-color-blue-soft: var(--color-surface-alt);
    --stt-color-blue-border: var(--theme-border);
  }

  html, body, body.services-page { background: var(--theme-bg); color: var(--theme-text); }
  body :is(h1, h2, h3) { color: var(--theme-text); }
  body :is(input, textarea, select) { caret-color: var(--theme-text); }
  body :is(input, textarea)::placeholder { color: #a3b7ce; opacity: 1; }
  body :is(a, button, input, textarea, select, summary):focus-visible { outline-color: var(--theme-accent); }

  /* Navigation: transparent over the photographic heroes, dark glass elsewhere. */
  body .stt-site-header.stt-site-header,
  :is(body.stt-home-page, body.services-page) .stt-site-header.scrolled,
  :is(body.stt-home-page, body.services-page) .stt-site-header.menu-open {
    border-bottom-color: var(--theme-border);
    background: rgba(11, 20, 34, .94);
    box-shadow: 0 8px 28px rgba(0, 0, 0, .24);
  }
  :is(body.stt-home-page, body.services-page) .stt-site-header.stt-site-header:not(.scrolled):not(.menu-open) {
    border-bottom-color: transparent;
    background: transparent;
    box-shadow: none;
  }
  body .stt-site-brand, body .stt-site-brand strong,
  :is(body.stt-home-page, body.services-page) .stt-site-header.scrolled :is(.stt-site-brand, .stt-site-brand strong),
  :is(body.stt-home-page, body.services-page) .stt-site-header.menu-open :is(.stt-site-brand, .stt-site-brand strong) { color: var(--theme-text); }
  body .stt-site-brand>img,
  :is(body.stt-home-page, body.services-page) .stt-site-header.scrolled .stt-site-brand>img,
  :is(body.stt-home-page, body.services-page) .stt-site-header.menu-open .stt-site-brand>img { filter: none; }
  body .stt-site-brand>span>span { color: var(--theme-muted); }
  body .stt-site-nav a,
  :is(body.stt-home-page, body.services-page) .stt-site-header.scrolled .stt-site-nav a,
  :is(body.stt-home-page, body.services-page) .stt-site-header.menu-open .stt-site-nav a { color: var(--theme-muted); }
  body .stt-site-nav a:hover,
  body .stt-site-nav a[aria-current="page"],
  :is(body.stt-home-page, body.services-page) .stt-site-header.scrolled .stt-site-nav a:hover,
  :is(body.stt-home-page, body.services-page) .stt-site-header.scrolled .stt-site-nav a[aria-current="page"],
  :is(body.stt-home-page, body.services-page) .stt-site-header.menu-open .stt-site-nav a:hover,
  :is(body.stt-home-page, body.services-page) .stt-site-header.menu-open .stt-site-nav a[aria-current="page"] {
    background: rgba(156, 201, 255, .1);
    color: var(--theme-text);
  }
  body .stt-site-menu-toggle,
  :is(body.stt-home-page, body.services-page) .stt-site-header.scrolled .stt-site-menu-toggle,
  :is(body.stt-home-page, body.services-page) .stt-site-header.menu-open .stt-site-menu-toggle { color: var(--theme-text); }
  body .stt-site-nav,
  :is(body.stt-home-page, body.services-page) .stt-site-header.menu-open .stt-site-nav { border-color: var(--theme-border); }
  body .stt-site-header .stt-site-nav-cta { background: var(--theme-action); color: #fff; }
  body .stt-site-header .stt-site-nav-cta:hover { background: var(--theme-action-hover); color: #fff; }
  :is(body.stt-home-page, body.services-page) .stt-site-header.scrolled .stt-site-nav-cta,
  :is(body.stt-home-page, body.services-page) .stt-site-header.menu-open .stt-site-nav-cta { background: transparent; color: var(--theme-text); }
  @media (max-width: 760px) {
    body .stt-site-nav,
    body.services-page .stt-site-nav,
    :is(body.stt-home-page, body.services-page) .stt-site-header.menu-open .stt-site-nav {
      background: rgba(20, 35, 56, .98);
      box-shadow: 0 16px 28px rgba(0, 0, 0, .32);
    }
  }

  /* Home and shared marketing sections. */
  .company-section--white, .home-capabilities, .home-process, .services-worlds { background: var(--theme-bg); }
  .stt-home-intro { background: var(--theme-bg); }
  .stt-home-intro-mark img { filter: brightness(0) invert(1); }
  .stt-home-intro-tagline { color: var(--theme-text); }
  .company-section--soft, .home-routes, .services-capabilities, .services-form-section {
    background: var(--theme-surface);
  }
  .company-card, .company-step, .home-capability { background: var(--theme-surface); border-color: var(--theme-border); }
  .company-card-icon { background: #203650; color: var(--theme-accent); }
  .company-kicker, .company-card-icon, .home-capability-copy span, .home-process-step b,
  .home-routes-copy li strong, .services-page .company-kicker { color: var(--theme-accent); }
  .company-section h2, .company-card h3, .company-step h3,
  .home-capability-copy h3, .home-process-step h3, .home-routes-copy li strong { color: var(--theme-text); }
  .home-routes-copy li { color: var(--theme-muted); }
  .home-routes-copy ul, .home-process-step:not(:first-child) { border-color: var(--theme-border); }
  .home-process-step:before { border-color: var(--theme-bg); background: var(--theme-accent); }
  .company-button--primary { background: #e7f1fc; color: #071d3f; }
  .company-button--primary:hover { background: #cbdff4; color: #071d3f; }
  .company-nav a { color: var(--theme-muted); }
  .company-nav a:hover, .company-nav a[aria-current="page"] { background: var(--theme-raised); color: var(--theme-text); }
  .company-nav .company-nav-cta, .service-form-actions .company-button { background: var(--theme-action); color: #fff; }
  .company-nav .company-nav-cta:hover, .service-form-actions .company-button:hover { background: var(--theme-action-hover); color: #fff; }

  /* Services: retain the dark carousel, adapt the surrounding content and form. */
  .services-process { border-color: var(--theme-border); background: linear-gradient(180deg, #101d2e, #142338); }
  .services-process-line:before { background: var(--theme-border); }
  .services-process-marker { background: var(--theme-accent); box-shadow: 0 0 0 6px var(--theme-surface); }
  .services-section-heading h2, .services-wide-heading h2, .services-process-step h3,
  .services-form-section .service-form-intro h2 { color: var(--theme-text); }
  .services-world--infrastructure { background: var(--theme-surface); }
  .services-world--infrastructure>picture img { filter: brightness(.55) saturate(.85); }
  .services-world--infrastructure .services-world-copy :is(h2, p, li) { color: var(--theme-text); }
  .services-world--infrastructure .services-world-copy>p:not(.company-kicker) { color: var(--theme-muted); }
  .services-world--infrastructure .services-world-copy .company-kicker { color: var(--theme-accent); }
  .services-world--software { background: var(--theme-surface); }
  .services-form-section .service-form-wrap {
    border-color: var(--theme-border);
    background: linear-gradient(145deg, #17283d, #122136);
    box-shadow: 0 28px 64px rgba(0, 0, 0, .26);
  }
  .services-form-section .service-form-wrap:before { opacity: .12; }
  .services-form-section .service-form-intro>img { filter: none; }
  .services-form-section .service-form { border-top-color: var(--theme-border); }
  .services-form-section .service-form-intro>p, .services-form-section .service-form-privacy,
  .service-form-group legend em { color: var(--theme-muted); }
  .services-form-section .service-field, .service-form-group legend { color: var(--theme-text); }
  .services-form-section .service-form input, .services-form-section .service-form textarea {
    background: var(--theme-bg); color: var(--theme-text);
    box-shadow: inset 0 0 0 1px var(--theme-border);
  }
  .services-form-section .service-form input:hover, .services-form-section .service-form textarea:hover {
    background: var(--theme-surface);
    box-shadow: inset 0 0 0 1px #6a8eb5;
  }
  .services-form-section .service-form input:focus, .services-form-section .service-form textarea:focus {
    background: var(--theme-surface);
    box-shadow: inset 0 0 0 1px var(--theme-accent), 0 0 0 3px rgba(156, 201, 255, .18);
  }
  .services-form-section .service-choice {
    background: var(--theme-raised); color: var(--theme-text);
    box-shadow: inset 0 0 0 1px var(--theme-border);
  }
  .services-form-section .service-choice:hover { background: #263c58; box-shadow: inset 0 0 0 1px #6a8eb5; }
  .services-form-section .service-choice:has(input:checked) {
    background: #254b78; color: #fff;
    box-shadow: inset 0 0 0 1px var(--theme-accent);
  }
  .services-form-section .service-form-actions .company-button { background: var(--theme-action); color: #fff; }
  .services-form-section .service-form-actions .company-button:hover { background: var(--theme-action-hover); }
  .service-success p, .service-success h2 { color: var(--theme-text); }
  .service-success span { color: var(--theme-muted); }

  /* Catalogue and its optional chat panel. */
  .intro, .hero, .not-found section { border-color: var(--theme-border); background: linear-gradient(125deg, #17283d, #203650); }
  .hero h1 { color: var(--theme-text); }
  .intro p, .hero p:last-child, .updated, .not-found span { color: var(--theme-muted); }
  .eyebrow, .not-found p { color: var(--theme-accent); }
  .jumpbar, .category, .chat, .contact-card, .content { border-color: var(--theme-border); background: var(--theme-surface); }
  .jumpbar { background: #182b42; }
  .jumpbar-indicator { background: #355c88; box-shadow: 0 5px 14px rgba(0, 0, 0, .25); }
  .jumpbar a { color: var(--theme-muted); }
  .jumpbar a:hover { background: transparent; color: #fff; }
  .jumpbar a.active, .jumpbar a.active:hover { background: transparent; color: #fff; }
  .category-top { background: linear-gradient(100deg, #071d3f 0%, #173b65 48%, #203650 100%); }
  .product { border-bottom-color: var(--theme-border); }
  .product-title, .price, .policies h2, .contact-card h2 { color: var(--theme-text); }
  .product-spec, .price small, .carousel-count, .price-note p, .purchase-conditions p { color: var(--theme-muted); }
  .order-pill, .show-more, .show-less, .carousel-nav button, .chat-link, .quick button,
  .back-link, .contact-action { border-color: var(--theme-border); background: var(--theme-raised); color: var(--theme-text); }
  .show-more:hover, .show-less:hover, .carousel-nav button:hover, .chat-link:hover,
  .back-link:hover, .contact-action:hover { border-color: #6a8eb5; background: #263c58; color: #fff; }
  .price-note, .purchase-conditions, .availability, .chat-message, .contact-card span, .contact-card .contact-action {
    border-color: var(--theme-border); background: var(--theme-raised); color: var(--theme-text);
  }
  .purchase-facts li, .availability, .chat-message { color: var(--theme-muted); }
  .price-note strong { color: var(--theme-accent); }
  .contact-strip { background: #10243d; }
  .chat-head span { color: #7bd6a7; }
  .chat-toggle { background: var(--theme-action); border-color: #6a8eb5; }
  .chat-toggle:hover { background: var(--theme-action-hover); }

  /* Contact, legal and 404 content. */
  .notice, .contact-card span, .contact-card, .content .contact-card { border-color: var(--theme-border); }
  .notice { background: var(--theme-raised); color: var(--theme-text); }
  .contact-card p, .content p, .content li, .purchase-facts li { color: var(--theme-muted); }
  .contact-card small, .content a { color: var(--theme-accent); }
  .contact-card span { background: var(--theme-raised); color: var(--theme-muted); }
  .content h2, .content .contact-card strong, .not-found h1 { color: var(--theme-text); }
  .next-step { background: linear-gradient(135deg, #0b2344, #123b68); }
  .next-step .contact-action { background: var(--theme-raised); border-color: var(--theme-border); color: var(--theme-text); }
  .not-found a { background: var(--theme-action); color: #fff; }
  .not-found a:hover { background: var(--theme-action-hover); }
  .not-found a+a { background: var(--theme-raised); color: var(--theme-text); }
  .not-found a+a:hover { background: #263c58; }

  /* Quote roles follow the same automatic system theme as every public page. */
  .stt-expandable-quote {
    color-scheme: dark;
    --quote-glass: color-mix(in srgb, var(--theme-bg) 90%, transparent);
    --quote-surface: color-mix(in srgb, var(--theme-raised) 90%, var(--theme-accent));
    --quote-surface-hover: color-mix(in srgb, var(--theme-raised) 82%, var(--theme-accent));
    --quote-surface-focus: color-mix(in srgb, var(--theme-raised) 86%, var(--theme-accent));
    --quote-text: var(--theme-text);
    --quote-text-secondary: var(--theme-muted);
    --quote-text-tertiary: #9bacbe;
    --quote-link: var(--theme-accent);
    --quote-border: rgba(143,177,207,.14);
    --quote-border-hover: rgba(94,159,215,.38);
    --quote-border-focus: var(--theme-accent);
    --quote-focus-ring: rgba(156,201,255,.12);
    --quote-primary: var(--theme-action);
    --quote-primary-hover: var(--theme-action-hover);
    --quote-primary-pressed: var(--stt-color-blue);
    --quote-primary-disabled: #3b526b;
    --quote-scrim: rgba(2,9,17,.48);
    --quote-segment: #071a2c;
    --quote-segment-active: #315f89;
    --quote-segment-text: var(--theme-text);
    --quote-hover-wash: rgba(156,201,255,.08);
    --quote-pressed-wash: rgba(156,201,255,.13);
    --quote-glass-light: linear-gradient(145deg,rgba(91,140,182,.065),rgba(9,34,47,.025) 65%);
    --quote-elevation: inset 0 1px 0 rgba(219,234,249,.055),0 24px 72px rgba(0,6,16,.24);
    --quote-error: #edb0bb;
    --quote-error-border: rgba(231,138,155,.65);
    --quote-error-ring: rgba(231,138,155,.09);
    --quote-disabled-surface: var(--theme-surface);
    --quote-disabled-text: #99afc2;
    --quote-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23b5c6d9' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }

  /* Cookie choices remain readable over all pages. */
  .stt-cookie-banner, .stt-cookie-preferences {
    border-color: var(--theme-border); background: var(--theme-surface); color: var(--theme-text);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .34);
  }
  .stt-cookie-banner__icon { border-color: var(--theme-border); background: var(--theme-raised); color: var(--theme-accent); }
  .stt-cookie-banner__title, .stt-cookie-banner__details strong { color: var(--theme-text); }
  .stt-cookie-banner__copy, .stt-cookie-banner__details { color: var(--theme-muted); }
  .stt-cookie-banner__copy a, .stt-cookie-banner__configure { color: var(--theme-accent); }
  .stt-cookie-banner__button--accept { border-color: var(--theme-action); background: var(--theme-action); color: #fff; }
  .stt-cookie-banner__button--accept:hover { border-color: var(--theme-action-hover); background: var(--theme-action-hover); }
  .stt-cookie-banner__button--necessary { border-color: var(--theme-border); background: var(--theme-raised); color: var(--theme-text); }
  .stt-cookie-banner__button--necessary:hover, .stt-cookie-banner__configure:hover,
  .stt-cookie-preferences:hover { border-color: #6a8eb5; background: #263c58; color: #fff; }
  .stt-cookie-preferences { color: var(--theme-accent); }
  .site-footer--expanded .stt-cookie-preferences { border: 0; background: transparent; box-shadow: none; }
}
