.theme-toggle {
  --theme-toggle-width: 5rem;
  --theme-toggle-height: 2.75rem;
  --theme-toggle-travel: calc(var(--theme-toggle-width) - var(--theme-toggle-height));
  --theme-toggle-offset: 0px;
  position: relative;
  box-sizing: border-box;
  display: inline-flex;
  flex: 0 0 var(--theme-toggle-width);
  align-items: center;
  justify-content: center;
  width: var(--theme-toggle-width);
  height: var(--theme-toggle-height);
  padding: 0;
  border: 1px solid #c6d3dd;
  border-radius: 999px;
  background: linear-gradient(135deg, #fff1d5, #e3edf7);
  box-shadow: inset 0 1px 3px #062f6712;
  cursor: pointer;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
  transition: background-color .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.theme-toggle[hidden] { display: none; }

.theme-toggle::before {
  content: "";
  position: absolute;
  top: .25rem;
  left: .25rem;
  width: calc(var(--theme-toggle-height) - .625rem);
  height: calc(var(--theme-toggle-height) - .625rem);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 6px #062f6726, 0 0 0 1px #062f6708;
  transform: translateX(var(--theme-toggle-offset));
  transition: transform .3s cubic-bezier(.22, 1, .36, 1), background-color .25s ease;
  pointer-events: none;
}

.theme-toggle svg {
  position: absolute;
  z-index: 1;
  top: calc(50% - .625rem);
  width: 1.25rem;
  height: 1.25rem;
  pointer-events: none;
  transition: color .25s ease, opacity .25s ease;
}

.theme-toggle .theme-icon-sun { left: .6875rem; color: #c47708; }
.theme-toggle .theme-icon-sun circle { fill: #fbbf24; }
.theme-toggle .theme-icon-moon { right: .6875rem; color: #526780; opacity: .65; }
.theme-toggle .theme-icon-moon path { fill: currentColor; stroke-width: 1.5; }
[data-theme="dark"] .theme-toggle {
  --theme-toggle-offset: var(--theme-toggle-travel);
  background: linear-gradient(135deg, #172b47, #243d60);
  border-color: #425b7b;
}
[data-theme="dark"] .theme-toggle::before { background: #e8f0fc; }
[data-theme="dark"] .theme-toggle .theme-icon-sun { color: #fbbf24; opacity: .55; }
[data-theme="dark"] .theme-toggle .theme-icon-moon { color: #233f65; opacity: 1; }
.theme-toggle.is-dragging { cursor: grabbing; }
.theme-toggle.is-dragging::before { transition: none; }
.theme-toggle:focus-visible { outline: 3px solid #0b426b; outline-offset: 3px; }

.site-logo {
  padding: .25rem;
  border-radius: .375rem;
}

.header-controls { flex-shrink: 0; }
.entry-theme-control { position: fixed; top: 1rem; right: 1rem; }

@media (hover: hover) {
  .theme-toggle:hover { border-color: #0b426b; box-shadow: 0 0 0 3px #062f670c; }
}

/* Leave room for all three controls on narrow phone screens. */
@media (max-width: 39.999rem) {
  .header-row { gap: .5rem; }
  .header-controls { gap: .375rem; }
  .site-header .lang-switcher summary { gap: .375rem; padding-inline: .5rem; }
  .site-header .menu-toggle {
    min-width: 2.75rem;
    padding-inline: .625rem;
    gap: 0;
    font-size: 0;
  }
  .site-header .menu-toggle svg { font-size: 1.25rem; }
}

@media (max-width: 22.499rem) {
  .theme-toggle { --theme-toggle-width: 4.5rem; }
  .site-header .lang-switcher summary { gap: .25rem; padding-inline: .375rem; }
}

@media screen {
  :root[data-theme="dark"] {
    color-scheme: dark;
    --theme-page: #0b1423;
    --theme-surface: #131f31;
    --theme-heading: #e8f0fc;
    --theme-link: #9dcaff;
    --color-steel-800: #e2e8f0;
    --color-steel-600: #b7c4d5;
    --color-steel-500: #91a5bd;
    --color-steel-200: #34465e;
    --color-steel-50: #172338;
    --color-orange-700: #f8a018;
  }

  [data-theme="dark"] body {
    background: var(--theme-page);
    color: var(--color-steel-800);
  }

  [data-theme="dark"] :is(.bg-white, .card, .mobile-menu, .field) {
    background-color: var(--theme-surface);
  }

  [data-theme="dark"] .site-header { background-color: var(--theme-page); }
  [data-theme="dark"] .card { box-shadow: 0 4px 16px #0003; }

  [data-theme="dark"] :is(.text-navy-900, .text-navy-950):not(.bg-orange-500),
  [data-theme="dark"] [class~="aria-[current]:text-navy-900"][aria-current],
  [data-theme="dark"] .legal-prose :is(h2, h3) {
    color: var(--theme-heading);
  }

  [data-theme="dark"] :is(.btn-secondary, .legal-prose a) {
    color: var(--theme-link);
  }

  [data-theme="dark"] :is(.border-navy-900, .border-navy-700, .btn-secondary),
  [data-theme="dark"] [class~="aria-[current]:border-navy-900"][aria-current] {
    border-color: var(--theme-link);
  }

  [data-theme="dark"] .on-dark .btn-secondary { color: #fff; border-color: #fff; }
  [data-theme="dark"] .theme-toggle { color: var(--theme-heading); }
  [data-theme="dark"] :focus-visible { outline-color: #f8a018; }

  /* Brand artwork needs a light backing to keep its original colors legible. */
  [data-theme="dark"] .site-logo,
  [data-theme="dark"] section[aria-labelledby="clients-title"] li { background: #fff; }

  [data-theme="dark"] :is(.text-danger-700, .error-message),
  [data-theme="dark"] fieldset[aria-invalid="true"] legend { color: #ff9d94; }
  [data-theme="dark"] .field[aria-invalid="true"] { border-color: #ff9d94; }
  [data-theme="dark"] .text-success-700 { color: #6ee7b7; }
  [data-theme="dark"] .accent-navy-900 { accent-color: var(--theme-link); }

  [data-theme="dark"] .field::placeholder { color: var(--color-steel-500); }
  [data-theme="dark"] select.field {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E8F0FC' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  }
  [data-theme="dark"] input::file-selector-button {
    color: var(--theme-heading);
    background: var(--theme-surface);
    border-color: var(--theme-link);
  }

  [data-theme="dark"] .entry-page main { background: var(--theme-surface); color: var(--theme-heading); }
  [data-theme="dark"] .entry-page main img { background: #fff; border-radius: .375rem; }
  [data-theme="dark"] .entry-page a { background: #062f67; }

  @media (hover: hover) {
    [data-theme="dark"] .theme-toggle:hover { border-color: #9dcaff; box-shadow: 0 0 0 3px #9dcaff18; }
    [data-theme="dark"] [class~="hover:text-navy-700"]:hover,
    [data-theme="dark"] .legal-prose a:hover { color: #bddcff; }
    [data-theme="dark"] [class~="hover:border-navy-900"]:hover { border-color: var(--theme-link); }
  }
}

@media (forced-colors: active) {
  .theme-toggle,
  [data-theme="dark"] .theme-toggle { background: ButtonFace; border-color: ButtonText; }
  .theme-toggle::before,
  [data-theme="dark"] .theme-toggle::before { background: ButtonFace; border: 2px solid Highlight; box-sizing: border-box; }
  .theme-toggle :is(.theme-icon-sun, .theme-icon-moon),
  [data-theme="dark"] .theme-toggle :is(.theme-icon-sun, .theme-icon-moon) { color: ButtonText; opacity: 1; }
  .theme-toggle .theme-icon-sun circle { fill: ButtonText; }
  .theme-toggle:focus-visible { outline-color: Highlight; }
  [data-theme="dark"] select.field { appearance: auto; background-image: none; }
}

@media (prefers-reduced-motion: reduce) {
  .theme-toggle, .theme-toggle::before, .theme-toggle svg { transition: none; }
}

@media print { .theme-toggle, .entry-theme-control { display: none !important; } }
