/* Brett's Pool Repair & Service | Design system 1.1
   Approved palette and typography, applied to the redesigned website.
   Web fonts are self-hosted through styles.css. */
:root {
  --brand-navy: #0d2149;
  --brand-blue: #1078c8;
  --brand-water: #55c7f3;
  --brand-ice: #ddeff7;
  --brand-ivory: #f6f2e8;
  --brand-sand: #d7bb87; /* Fine trim and small accents; roughly <=5% outside illustration. */
  --surface-ivory: var(--brand-ivory);
  --surface-white: #ffffff;
  --surface-mist: #f0f6fa;
  --text-primary: var(--brand-navy);
  --text-muted: #596a80;
  --text-on-dark: var(--brand-ivory);
  --line-subtle: #c6d5e2;
  --control-boundary: #596a80;
  --action-primary: var(--brand-blue);
  --action-primary-hover: #0963aa;
  --action-primary-active: #08558f;
  --action-label: var(--surface-white);
  --focus-inner: #ffffff;
  --focus-outer: #0d2149;
  --font-display: "Newsreader", Georgia, serif;
  --font-body: "Manrope", Arial, sans-serif;
  --font-size-hero: clamp(3rem, 7vw, 6.5rem);
  --font-size-heading: clamp(2.5rem, 4.5vw, 4.5rem);
  --font-size-subheading: clamp(1.5rem, 2.5vw, 2rem);
  --font-size-body: 1.125rem;
  --font-size-small: 1rem;
  --font-size-control: 0.9375rem;
  --font-size-label: 0.75rem;
  --leading-display: 1.04;
  --leading-body: 1.6;
  --leading-control: 1.3;
  --tracking-display: -0.025em;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-24: 6rem;
  --space-32: 8rem;
  --content-max: 80rem;
  --page-gutter: clamp(1.5rem, 4vw, 4rem);
  --section-space: clamp(3.5rem, 8vw, 9rem);
  --copy-max: 65ch;
  --radius-card: 1rem;
  --radius-control: 999px;
  --control-height: 3rem;
  --shadow-soft: 0 16px 48px rgb(13 33 73 / 8%);
  --duration-control: 180ms;
  --duration-reveal: 600ms;
  --ease-reveal: cubic-bezier(.2, .7, .2, 1);
  --reveal-distance: 1.5rem;
}
/* Implementations also disable scroll effects and reveal transforms. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-control: 0ms;
    --duration-reveal: 0ms;
    --reveal-distance: 0rem;
  }
}
