@import url("https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css");
@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,700");

:root {
  --color-navy: #071333;
  --color-cta: #6ab74c;
  --color-mint: #b4dba5;
  --color-surface: #f1f1f0;
  --color-charcoal: #333333;
  --color-stone: #71706e;
  --color-muted: #8d8d8b;
  --color-silver: #c6c6c5;
  --color-hairline: #d9d9d9;
  --color-white: #ffffff;
  --color-black: #000000;
  --color-body-muted: #494948;
  --color-brand: var(--color-navy);
  --color-heading: var(--color-navy);
  --color-body: var(--color-black);
  --color-on-brand: var(--color-white);
  --color-bg: var(--color-white);
  --radius-pill: 100px;
  --radius-card: 20px;
  --radius-sm: 3px;
  --space-16: 16px;
  --space-24: 24px;
  --space-48: 48px;
  --font: "Open Sans", Helvetica, sans-serif;

  /*
   * Public type scale — readable on mobile, Apollo-like on desktop.
   * Body stays ≥16px; headings fluid via clamp.
   */
  --fs-xs: 0.75rem; /* 12 */
  --fs-sm: 0.875rem; /* 14 */
  --fs-base: 1rem; /* 16 */
  --fs-md: 1.25rem; /* 20 */
  --fs-lg: 1.5rem; /* 24 */
  --fs-xl: 1.75rem; /* 28 */
  --fs-2xl: 2rem; /* 32 */

  --fs-body: var(--fs-base);
  --fs-lead: var(--fs-base);
  --fs-nav: var(--fs-sm);
  --fs-btn: var(--fs-base);
  --fs-label: var(--fs-sm);
  --fs-caption: var(--fs-sm);
  --fs-eyebrow: var(--fs-sm);
  --fs-h1: clamp(1.5rem, 1.15rem + 2.2vw, 2rem); /* 24 → 32 */
  --fs-h2: clamp(1.375rem, 1.1rem + 1.6vw, 1.75rem); /* 22 → 28 */
  --fs-h3: clamp(1.0625rem, 0.95rem + 0.6vw, 1.25rem); /* 17 → 20 */
  --fs-card-title: var(--fs-h3);
}

@media (max-width: 480px) {
  :root {
    --fs-body: 1rem;
    --fs-lead: 1rem;
    --fs-nav: 0.875rem;
    --fs-btn: 0.9375rem;
  }
}

* {
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
}

html {
  margin: 0;
  max-width: 100%;
  overflow-x: hidden;
  font-size: 100%;
}

body {
  margin: 0;
  min-height: 100%;
  max-width: 100%;
  font-family: var(--font);
  font-size: var(--fs-body);
  line-height: 1.5;
  color: var(--color-body);
}

/* Inner pages — same Apollo type scale as homepage */
.inner-page {
  font-family: var(--font);
  font-size: var(--fs-body);
  line-height: 1.5;
  color: #333333;
}

.inner-page h1,
.inner-page h2,
.inner-page h3,
.inner-page h4 {
  font-family: var(--font);
  color: #071333;
  font-weight: 700;
}

.inner-page h1 {
  font-size: var(--fs-h1);
}

.inner-page h2 {
  font-size: var(--fs-h2);
}

.inner-page h3 {
  font-size: var(--fs-h3);
}

.inner-page h4 {
  font-size: var(--fs-card-title);
}

/* a blue color as a generic focus style */
button:focus-visible {
  outline: 2px solid #4a90e2 !important;
  outline: -webkit-focus-ring-color auto 5px !important;
}

a {
  text-decoration: none;
}

a,
button,
label,
select,
summary,
.btn,
.social-btn,
.pick-card,
.menu-toggle,
.nav-backdrop,
.nf-card,
.service-arrow,
[role="button"],
[role="tab"],
[role="menuitem"],
[role="option"],
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="checkbox"],
input[type="radio"],
input[type="file"],
input[type="image"] {
  cursor: pointer;
}

button:disabled,
input:disabled,
select:disabled,
[aria-disabled="true"] {
  cursor: not-allowed;
}
