/* Howes IT — shared brand tokens and base styles.
   Used by the Value Check and (next) the home page. See BRAND.md. */

:root {
  /* Core palette */
  --midnight: #081430;      /* dark backgrounds, hero sections */
  --midnight-2: #0f2147;    /* raised dark surfaces */
  --teal: #14c4ae;          /* primary accent: buttons, highlights */
  --teal-ink: #0b8f7f;      /* teal for text/links on white */
  --blue: #3d6bff;          /* secondary accent, gradient partner */
  --cloud: #f3f6fb;         /* light section background */
  --white: #ffffff;
  --ink: #0b1733;           /* body text on light */
  --slate: #56627a;         /* secondary text on light */
  --mist: #a9b6d0;          /* secondary text on dark */
  --line: #e1e7f0;          /* borders on light */
  --line-dark: rgba(255, 255, 255, 0.12); /* borders on dark */

  --gradient: linear-gradient(100deg, var(--teal) 0%, var(--blue) 100%);

  /* Result states */
  --strong: #1fc28f;
  --partial: #f5b335;
  --gap: #ff6a55;
  --unknown: #8c98b3;

  /* Type */
  --display: "Sora", system-ui, -apple-system, "Segoe UI", sans-serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* Scale */
  --fs-xs: 0.8125rem;
  --fs-sm: 0.9375rem;
  --fs-base: 1.0625rem;
  --fs-md: 1.25rem;
  --fs-lg: 1.625rem;
  --fs-xl: clamp(1.75rem, 2.8vw + 0.9rem, 2.75rem);
  --fs-xxl: clamp(2.25rem, 4.4vw + 1rem, 4rem);

  --radius-sm: 10px;
  --radius: 16px;
  --radius-lg: 28px;
  --gutter: clamp(16px, 4vw, 48px);
  --shadow: 0 18px 50px -20px rgba(8, 20, 48, 0.25);
}

*, *::before, *::after { box-sizing: border-box; }

[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--midnight);
  color: var(--white);
  font-family: var(--sans);
  font-size: var(--fs-base);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

h1, h2, h3 {
  font-family: var(--display);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0;
  text-wrap: balance;
}

p { margin: 0; text-wrap: pretty; }

a { color: inherit; text-underline-offset: 3px; }

:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: 3px;
  border-radius: 4px;
}
/* Headings focused by script for screen readers don't need a visible ring */
[tabindex="-1"]:focus { outline: none; }

/* Buttons: pill shape with an arrow */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  min-height: 54px;
  padding: 0.8rem 1.6rem 0.8rem 1.8rem;
  font: 600 var(--fs-base)/1.2 var(--sans);
  color: var(--midnight);
  background: var(--teal);
  border: 0;
  border-radius: 999px;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  box-shadow: 0 10px 30px -10px rgba(20, 196, 174, 0.7);
}
.btn:hover { background: #2fd8c2; transform: translateY(-1px); }
.btn:active { transform: none; }
.btn:disabled { opacity: 0.6; cursor: progress; transform: none; }
.btn svg { width: 18px; height: 18px; flex: none; transition: transform 0.2s ease; }
.btn:hover svg { transform: translateX(3px); }

.btn--outline {
  color: var(--ink);
  background: transparent;
  box-shadow: inset 0 0 0 2px var(--ink);
}
.btn--outline:hover { background: var(--ink); color: var(--white); }

.link-btn {
  font: 500 var(--fs-sm)/1.2 var(--sans);
  color: inherit;
  opacity: 0.75;
  background: none;
  border: 0;
  padding: 0.5rem 0;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.link-btn:hover { opacity: 1; }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
