.hfc-document {
  background: var(--hfc-paper);
  color: var(--hfc-ink);
  font: 400 1rem/1.5 var(--hfc-font-sans);
  margin: 0 auto;
  max-width: var(--hfc-content-max);
  padding: var(--hfc-space-xl);
}

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

.hfc-document a {
  color: var(--hfc-blue);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.15em;
}

.hfc-document a:focus-visible,
.hfc-document button:focus-visible,
.hfc-document [tabindex]:focus-visible {
  outline: 3px solid var(--hfc-public-site-blue-hover);
  outline-offset: 3px;
}

.hfc-document h1,
.hfc-document h2,
.hfc-document h3,
.hfc-document h4 {
  break-after: avoid;
  color: var(--hfc-maroon);
  line-height: 1.2;
}

.hfc-document h1 {
  font-family: var(--hfc-font-serif);
  font-size: clamp(2rem, 4vw, 3.25rem);
  font-style: italic;
  letter-spacing: 0.01em;
  margin: 0 0 var(--hfc-space-md);
}

.hfc-document h2 {
  border-bottom: 2px solid var(--hfc-line);
  font-size: 1.5rem;
  margin: var(--hfc-space-xl) 0 var(--hfc-space-sm);
  padding-bottom: var(--hfc-space-xs);
}

.hfc-document h3 {
  color: var(--hfc-blue);
  font-size: 1.15rem;
  margin: var(--hfc-space-lg) 0 var(--hfc-space-sm);
}

.hfc-document p,
.hfc-document li {
  max-width: 72ch;
}

.hfc-document img {
  height: auto;
  max-width: 100%;
}

.hfc-eyebrow {
  color: var(--hfc-text-secondary);
  font-size: 0.75rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.hfc-lede {
  color: var(--hfc-text-secondary);
  font-size: 1.12rem;
  line-height: 1.55;
  max-width: 62ch;
}

.hfc-rule {
  background: var(--hfc-maroon);
  border: 0;
  height: 4px;
  margin: var(--hfc-space-md) 0 var(--hfc-space-xl);
  width: 5rem;
}

.hfc-document-header {
  align-items: flex-start;
  border-bottom: 4px solid var(--hfc-maroon);
  display: flex;
  gap: var(--hfc-space-lg);
  justify-content: space-between;
  margin-bottom: var(--hfc-space-xl);
  padding-bottom: var(--hfc-space-md);
}

.hfc-document-header__logo {
  max-height: 4.5rem;
  max-width: 15rem;
  object-fit: contain;
  object-position: left top;
}

.hfc-document-control {
  background: var(--hfc-surface-subtle);
  border: 1px solid var(--hfc-line);
  border-radius: var(--hfc-radius-sm);
  display: grid;
  font-size: 0.82rem;
  gap: var(--hfc-space-sm) var(--hfc-space-md);
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  margin: var(--hfc-space-md) 0 var(--hfc-space-lg);
  padding: var(--hfc-space-md);
}

.hfc-document-control dt {
  color: var(--hfc-text-muted);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.hfc-document-control dd {
  margin: 0.1rem 0 0;
}

.hfc-status {
  align-items: center;
  background: var(--hfc-information-bg);
  border-radius: var(--hfc-radius-pill);
  color: var(--hfc-information);
  display: inline-flex;
  font-size: 0.74rem;
  font-weight: 750;
  gap: 0.35rem;
  padding: 0.2rem 0.65rem;
  text-transform: uppercase;
}

.hfc-status--draft,
.hfc-status--review {
  background: var(--hfc-warning-bg);
  color: var(--hfc-warning);
}

.hfc-status--adopted,
.hfc-status--complete {
  background: var(--hfc-success-bg);
  color: var(--hfc-success);
}

.hfc-status--restricted,
.hfc-status--overdue {
  background: var(--hfc-danger-bg);
  color: var(--hfc-danger);
}

.hfc-callout {
  background: var(--hfc-information-bg);
  border-left: 5px solid var(--hfc-blue);
  border-radius: 0 var(--hfc-radius-sm) var(--hfc-radius-sm) 0;
  margin: var(--hfc-space-lg) 0;
  padding: var(--hfc-space-md) var(--hfc-space-lg);
}

.hfc-callout--decision {
  background: var(--hfc-warning-bg);
  border-left-color: var(--hfc-maroon);
}

.hfc-callout--risk {
  background: var(--hfc-danger-bg);
  border-left-color: var(--hfc-danger);
}

.hfc-callout > :first-child {
  margin-top: 0;
}

.hfc-callout > :last-child {
  margin-bottom: 0;
}

.hfc-card-grid {
  display: grid;
  gap: var(--hfc-space-md);
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  margin: var(--hfc-space-md) 0;
}

.hfc-card {
  background: var(--hfc-paper);
  border: 1px solid var(--hfc-line);
  border-radius: var(--hfc-radius);
  break-inside: avoid;
  padding: var(--hfc-space-md) var(--hfc-space-lg);
}

.hfc-card__label {
  color: var(--hfc-text-muted);
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.hfc-card__value {
  color: var(--hfc-data-navy);
  font-size: 1.6rem;
  font-weight: 750;
  margin-top: var(--hfc-space-xs);
}

.hfc-table-wrap {
  margin: var(--hfc-space-md) 0;
  overflow-x: auto;
}

.hfc-document table {
  border-collapse: collapse;
  font-size: 0.9rem;
  width: 100%;
}

.hfc-document caption {
  color: var(--hfc-text-secondary);
  font-weight: 700;
  padding-bottom: var(--hfc-space-sm);
  text-align: left;
}

.hfc-document th,
.hfc-document td {
  border: 1px solid var(--hfc-line);
  padding: 0.55rem 0.7rem;
  text-align: left;
  vertical-align: top;
}

.hfc-document th {
  background: var(--hfc-blue);
  color: var(--hfc-text-inverse);
  font-weight: 700;
}

.hfc-document tbody tr:nth-child(even) {
  background: var(--hfc-surface-subtle);
}

.hfc-source-note {
  color: var(--hfc-text-muted);
  font-size: 0.78rem;
  margin-top: var(--hfc-space-sm);
}

.hfc-quote {
  border-left: 4px solid var(--hfc-maroon);
  color: var(--hfc-blue-dark);
  font-family: var(--hfc-font-serif);
  font-size: 1.25rem;
  font-style: italic;
  margin: var(--hfc-space-xl) 0;
  max-width: 58ch;
  padding: var(--hfc-space-sm) var(--hfc-space-lg);
}

.hfc-confidentiality {
  background: var(--hfc-danger-bg);
  border: 1px solid #fecaca;
  color: var(--hfc-danger);
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  padding: 0.45rem 0.75rem;
  text-align: center;
  text-transform: uppercase;
}

@page {
  margin: 0.65in;
  size: Letter;
}

@media print {
  .hfc-document {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10pt;
    max-width: none;
    padding: 0;
  }

  .hfc-document a {
    color: inherit;
    text-decoration: underline;
  }

  .hfc-document a[href^="http"]::after {
    color: var(--hfc-text-muted);
    content: " (" attr(href) ")";
    font-size: 0.78em;
    overflow-wrap: anywhere;
  }

  .hfc-card,
  .hfc-callout,
  .hfc-document-control,
  .hfc-document tr,
  .hfc-document figure {
    break-inside: avoid;
    box-shadow: none;
  }

  .hfc-document thead {
    display: table-header-group;
  }

  .hfc-document details[open] > summary,
  .hfc-document details:not([open]) > summary {
    display: none;
  }

  .hfc-document details:not([open]) > * {
    display: block;
  }
}
