/*
 * Braverick Insights shared typography and accessibility rules.
 * This file is intentionally loaded by every content page.
 */

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

body.braverick-site {
  --braverick-forest: #1F3D2E;
  --braverick-sage: #6B845F;
  --braverick-copper: #8A5A2B;
  --braverick-copper-decoration: #8A5A2B;
  color: var(--color-ink, #1F3D2E);
  font-family: "Lato", Arial, sans-serif;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

.braverick-site .font-display,
.braverick-site input,
.braverick-site select,
.braverick-site textarea,
.braverick-site button {
  font-family: "Lato", Arial, sans-serif;
}

.braverick-site h1,
.braverick-site h2,
.braverick-site h3 {
  color: var(--braverick-forest);
  font-family: "Lato", Arial, sans-serif;
  font-weight: 700;
}

.braverick-site h1 {
  font-size: 3rem;
  line-height: 1.15;
}

.braverick-site h2 {
  font-size: 2.125rem;
  line-height: 1.2;
}

.braverick-site h3,
.braverick-site main details > summary {
  font-family: "Lato", Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
}

/* Inverse headings retain the light brand color against forest backgrounds. */
.braverick-site .bg-forest h1,
.braverick-site .bg-forest h2,
.braverick-site .bg-forest h3,
.braverick-site .text-paper h1,
.braverick-site .text-paper h2,
.braverick-site .text-paper h3,
.braverick-site #bx .bh h1 {
  color: #F5F1E6;
}

.braverick-site .br-intro {
  font-family: "Lato", Arial, sans-serif;
  font-size: 1.3125rem;
  font-weight: 400;
  line-height: 1.5;
}

.braverick-site #bx .bproof-results {
  min-width: 0;
}

.braverick-site #bx .bproof-results > h2 {
  margin-bottom: 0.75rem;
}

.braverick-site #bx .bproof-results > p {
  margin-bottom: 1.5rem;
}

.braverick-site #bx .bproof .bst b {
  color: #1F3D2E;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
}

.braverick-site #bx .bproof .bst span {
  font-family: "Lato", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
}

.braverick-site main p:not(.br-intro):not(.qt):not(.dq),
.braverick-site main li {
  max-width: 70ch;
}

.braverick-site main .text-lg:not(.br-intro) {
  font-size: inherit;
  line-height: inherit;
}

.braverick-site .br-label,
.braverick-site .about-eyebrow,
.braverick-site #bx .bk,
.braverick-site #bx .qa,
.braverick-site #bx .ds,
.braverick-site .hcard .hk,
.braverick-site .text-sm.uppercase {
  font-family: "Lato", Arial, sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
  text-transform: uppercase;
}

.braverick-site .text-accent {
  color: var(--braverick-copper);
}

.braverick-site .bg-paper-warm .text-accent {
  color: var(--braverick-forest);
}

.braverick-site #bx .qa,
.braverick-site #bx .ds,
.braverick-site .hcard .hk,
.braverick-site .about-eyebrow {
  color: var(--braverick-forest);
}

.braverick-site .about-eyebrow {
  color: var(--braverick-forest);
}

.braverick-site #bx [data-k="l"] .qa {
  color: var(--braverick-forest);
}

/* The Experiences hero uses the original brand sage. Its supporting text is
 * large enough to meet AA's large-text contrast threshold against this color. */
.braverick-site #bx .bh {
  background: var(--braverick-sage);
}

.braverick-site #bx .bh .bk {
  color: #FFFFFF;
  font-size: 1.1875rem;
  font-weight: 700;
}

.braverick-site #bx .bh .br-intro {
  color: #FFFFFF;
  font-size: 1.5rem;
}

.braverick-site #bx .qt,
.braverick-site #bx .dq {
  color: inherit;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.375rem;
  font-weight: 400;
  line-height: 1.45;
}

.braverick-site #bx .qt {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
}

.braverick-site #bx .dq {
  display: block;
  overflow: visible;
}

.braverick-site #bx .qm {
  color: var(--braverick-copper-decoration);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 3.375rem;
  font-weight: 400;
  line-height: 0.7;
}

.braverick-site .home-x blockquote {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.75rem;
  font-weight: 400;
  line-height: 1.4;
}

.braverick-site :is(
  button,
  .btn-primary,
  .btn-secondary,
  .btn-ghost,
  .form-button,
  .braverick-start-cta,
  .hrb,
  .more,
  .fl button,
  .bc a
) {
  font-family: "Lato", Arial, sans-serif;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.5;
}

.braverick-site footer,
.braverick-site figcaption,
.braverick-site small,
.braverick-site .form-note,
.braverick-site .form-description,
.braverick-site .form-field-error,
.braverick-site .form-error,
.braverick-site .text-sm:not(.uppercase),
.braverick-site .text-xs {
  font-family: "Lato", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
}

.braverick-site .form-label {
  font-family: "Lato", Arial, sans-serif;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.5;
}

.braverick-site :is(input, select, textarea) {
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: 1.5;
}

/* Links in prose are recognizable without relying on color alone. */
.braverick-site p a,
.braverick-site li a {
  text-decoration-line: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

.braverick-site nav a,
.braverick-site :is(p, li) a:is(
  .btn-primary,
  .btn-secondary,
  .btn-ghost,
  .braverick-start-cta,
  .braverick-service-card-link
) {
  text-decoration: none;
}

/* A two-color focus indicator stays visible on both light and dark surfaces. */
.braverick-site :is(
  a,
  button,
  input,
  select,
  textarea,
  summary,
  [tabindex]:not([tabindex="-1"])
):focus-visible {
  outline: 0.1875rem solid #FFFFFF;
  outline-offset: 0.1875rem;
  box-shadow: 0 0 0 0.375rem var(--braverick-forest);
}

/* Text-bearing cards and controls must grow when text is enlarged. */
.braverick-site .braverick-home-service-card .braverick-service-card-link,
.braverick-site #bx .qb,
.braverick-site #bx .dc {
  height: auto;
}

.braverick-site #bx .dc {
  min-height: 2.75rem;
}

.braverick-site :is(.grid, [class*="grid-cols"], .flex, [class*="flex-"]) > * {
  min-width: 0;
}

.braverick-site img,
.braverick-site svg,
.braverick-site video,
.braverick-site iframe {
  max-width: 100%;
}

/* At a 200%-zoom reflow width, quote previews expand so no text is lost. */
@media (max-width: 48rem) {
  .braverick-site #bx .qt {
    display: block;
    overflow: visible;
    -webkit-box-orient: initial;
    -webkit-line-clamp: initial;
  }
}

@media (max-width: 40rem) {
  body.braverick-site {
    font-size: 1.0625rem;
  }

  .braverick-site h1 {
    font-size: 2.125rem;
  }

  .braverick-site h2 {
    font-size: 1.625rem;
  }

  .braverick-site h3,
  .braverick-site main details > summary {
    font-size: 1.25rem;
  }

  .braverick-site .br-intro {
    font-size: 1.1875rem;
  }

  .braverick-site #bx .qt,
  .braverick-site #bx .dq {
    font-size: 1.1875rem;
  }

  .braverick-site .home-x blockquote {
    font-size: 1.375rem;
  }

  .braverick-site #bx .bproof .bst b {
    font-size: 2rem;
  }

  .braverick-site footer,
  .braverick-site figcaption,
  .braverick-site small,
  .braverick-site .form-note,
  .braverick-site .form-description,
  .braverick-site .form-field-error,
  .braverick-site .form-error,
  .braverick-site .text-sm:not(.uppercase),
  .braverick-site .text-xs {
    font-size: 0.9375rem;
  }

  .braverick-site .braverick-services-menu ul {
    min-width: 0;
    width: min(19rem, 85vw);
    max-width: 100%;
  }
}
