/* Foundation: low-risk tokens and progressive-enhancement overrides. */
:root {
  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem; --space-4: 1rem;
  --space-6: 1.5rem; --space-8: 2rem;
  --focus-ring: #0a78c8; --motion-standard: .2s cubic-bezier(.2,0,0,1);
}
html { text-size-adjust: 100%; }
body { overflow-wrap: break-word; }
main h1, main h2, main h3, .site-footer h2, .site-footer h3 { text-wrap: balance; }
main p, .site-footer p { text-wrap: pretty; }
.email-address, [href^="tel:"] { unicode-bidi: isolate; }

/* Content is visible by default; reveal motion starts only after JS is active. */
.reveal, .advantage-rail article, .service-flow article, .about-data-stats > div, .logos a { opacity: 1; filter: none; transform: none; }
.js .reveal { opacity: 0; filter: blur(4px); transform: translateY(24px); }
.js .reveal.visible { opacity: 1; filter: none; transform: none; }
html:not(.js) .main-nav { visibility: visible; opacity: 1; }

:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 4px; }
button:disabled, input:disabled, textarea:disabled, select:disabled { cursor: not-allowed; opacity: .55; }
.hp-field { position: absolute !important; inline-size: 1px !important; block-size: 1px !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
.form-feedback { padding: .75rem 1rem; border: 1px solid currentColor; border-radius: 12px; }
.privacy-note { margin-block: .65rem 0 !important; font-size: .72rem !important; line-height: 1.8 !important; }
.privacy-note a { text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 700px) {
  html:not(.js) .header-inner { flex-wrap: wrap; height: auto; padding-block: .5rem; }
  html:not(.js) .site-header { position: relative; height: auto; background: var(--navy); }
  html:not(.js) .menu-toggle { display: none; }
  html:not(.js) .main-nav { display: flex; position: static; width: 100%; flex-wrap: wrap; padding: .5rem 0; gap: .5rem 1rem; background: transparent; }
  input, textarea, select { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js .reveal, .reveal { opacity: 1 !important; filter: none !important; transform: none !important; }
}

/* Light-theme ECG paper: one step stronger, softly faded at every edge. */
:root { --ecg-paper-line-light: rgba(91, 103, 114, .063); }
[data-theme="light"] main {
  background-image:
    linear-gradient(90deg, var(--bg) 0, transparent 9%, transparent 91%, var(--bg) 100%),
    linear-gradient(180deg, var(--bg) 0, transparent 5rem, transparent calc(100% - 6rem), var(--bg) 100%),
    linear-gradient(var(--ecg-paper-line-light) 1px, transparent 1px),
    linear-gradient(90deg, var(--ecg-paper-line-light) 1px, transparent 1px) !important;
  background-size: 100% 100%, 100% 100%, 44px 44px, 44px 44px !important;
}
[data-theme="light"] .hero::before {
  opacity: .82;
  -webkit-mask-image: radial-gradient(ellipse 86% 82% at center, #000 56%, rgba(0,0,0,.72) 76%, transparent 100%);
  mask-image: radial-gradient(ellipse 86% 82% at center, #000 56%, rgba(0,0,0,.72) 76%, transparent 100%);
}
@media (max-width: 700px) {
  [data-theme="light"] main { background-size: 100% 100%, 100% 100%, 38px 38px, 38px 38px !important; }
  [data-theme="light"] .hero::before {
    opacity: .78;
    -webkit-mask-image: radial-gradient(ellipse 92% 86% at center, #000 52%, rgba(0,0,0,.68) 74%, transparent 100%);
    mask-image: radial-gradient(ellipse 92% 86% at center, #000 52%, rgba(0,0,0,.68) 74%, transparent 100%);
  }
}
