/* Group design system. Load last after legacy styles. No layout/data deletion.
   Scope: <body class="gd-site">. Only two self-hosted type families. */
@font-face {
  font-family: 'Empire Cormorant Q';
  src: url('./cormorant-q-500.woff2') format('woff2');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: 'Empire Source Serif';
  src: url('./source-serif-400-600.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
}
:root {
  --gd-blue: #084D74;
  --gd-hover: #063B59;
  --gd-ink: #18232E;
  --gd-muted: #52616B;
  --gd-soft: #F4F6F7;
  --gd-line: #D9E0E4;
  --gd-white: #FFFFFF;
  --font: 'Empire Source Serif', Georgia, serif;
  --font-display: 'Empire Cormorant Q', Georgia, serif;
  --font-aux: 'Empire Source Serif', Georgia, serif;
  --empire-page-title: 60px;
  --empire-section-title: 42px;
  --empire-card-title: 24px;
  --empire-subtitle: 20px;
  --empire-body: 18px;
  --empire-note: 15px;
  --empire-label: 14px;
}
html { scroll-padding-top: 120px; }
html:root body.gd-site {
  margin: 0;
  font-family: var(--font) !important;
  font-size: 18px;
  line-height: 1.65;
  color: var(--gd-ink);
  background: var(--gd-white);
  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
  -webkit-text-size-adjust: 100%;
}
/* Explicit inheritance prevents legacy font shorthand on badges, forms or
   table children from quietly reintroducing Lato, Oswald, Arial or Inter. */
html:root body.gd-site *,
html:root body.gd-site :is(.site-footer.empire-footer,.gd-header,.gd-footer) * {
  font-family: var(--font) !important;
  font-optical-sizing: auto;
}
html:root body.gd-site main :is(h1,h2),
html:root body.gd-site main :is(h1,h2) * {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  font-style: normal;
  font-feature-settings: normal;
  letter-spacing: -.015em !important;
  text-transform: none !important;
  overflow-wrap: break-word;
}
html:root body.gd-site main h1 {
  font-size: clamp(52px, 4.45vw, 64px) !important;
  line-height: 1.08 !important;
  max-width: 22ch;
}
html:root body.gd-site main h2 {
  font-size: clamp(36px, 3.05vw, 44px) !important;
  line-height: 1.15 !important;
}
html:root body.gd-site main :is(h3,h4,h5,h6),
html:root body.gd-site main :is(.card,.family-body,.role-card,.case-card) h2,
html:root body.gd-site main :is(.card,.family-body,.role-card,.case-card) h2 * {
  font-family: var(--font) !important;
  font-size: 24px !important;
  line-height: 1.3 !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  overflow-wrap: break-word;
}
html:root body.gd-site main :is(h4,h5,h6) { font-size: 22px !important; }
html:root body.gd-site main :is(p,.feature-text,li) {
  font-size: 18px !important;
  line-height: 1.65 !important;
  letter-spacing: 0 !important;
}
html:root body.gd-site main :is(.lead,.section-sub,.pg-sub) {
  font-size: 20px !important;
  line-height: 1.6 !important;
  max-width: 68ch;
}
html:root body.gd-site main :is(figcaption,small,.file-hint,.technical-note,.ft-stage-note,.visual-note,.oem-program-footnote,.gd-note,.gd-table-hint,.gd-grade-note,.gd-application-note,.gd-grade-status,.gd-scroll-hint,.gd-scope-note),
html:root body.gd-site main :is(figcaption,small,.technical-note,.gd-note) :is(p,span,a) {
  font-size: 15px !important;
  line-height: 1.55 !important;
  letter-spacing: 0 !important;
  font-weight: 400 !important;
}
html:root body.gd-site main :is(.eyebrow,.section-label,.pg-kicker,.ft-kicker,.gd-eyebrow,.gd-kicker,.breadcrumb,.breadcrumbs,.empire-page-index) {
  font-size: 14px !important;
  line-height: 1.5 !important;
  font-weight: 600 !important;
  letter-spacing: .025em !important;
}
html:root body.gd-site main :is(p,li,.feature-text) :is(strong,b) { font-weight: 600 !important; }
html:root body.gd-site :is(nav,.gd-header) :is(a,button,summary) {
  font-size: 17px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
html:root body.gd-site main :is(.breadcrumb,.breadcrumbs,.empire-page-index) a { font-size: 14px !important; }
html:root body.gd-site :is(a,button,summary,input,select,textarea):focus-visible {
  outline: 3px solid #187DA4;
  outline-offset: 4px;
}
html:root body.gd-site :is(.btn,.nav-cta,.gd-button,.gd-btn) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px !important;
  padding: 12px 24px !important;
  border-radius: 3px !important;
  font-size: 17px !important;
  line-height: 1.4 !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none;
  white-space: normal;
  box-shadow: none !important;
  transition: background-color .18s, border-color .18s, color .18s;
}
html:root body.gd-site :is(.btn-primary,.nav-cta,.gd-button-primary,.gd-btn-primary) {
  background: var(--gd-blue) !important;
  border: 1px solid var(--gd-blue) !important;
  color: #fff !important;
}
html:root body.gd-site :is(.btn-primary,.nav-cta,.gd-button-primary,.gd-btn-primary):hover {
  background: var(--gd-hover) !important;
  border-color: var(--gd-hover) !important;
}
html:root body.gd-site :is(.btn-outline,.gd-button-secondary,.gd-btn-secondary) {
  background: #fff !important;
  border: 1px solid var(--gd-blue) !important;
  color: var(--gd-blue) !important;
}
html:root body.gd-site :is(.btn-outline,.gd-button-secondary,.gd-btn-secondary):hover { background: var(--gd-soft) !important; }
html:root body.gd-site :is(.btn-white,.gd-button-inverse,.gd-btn-inverse) {
  background: #fff !important;
  color: var(--gd-blue) !important;
  border: 1px solid #fff !important;
}
html:root body.gd-site button { border-radius: 3px; }
html:root body.gd-site main :is(input,select,textarea) {
  font-size: 18px !important;
  line-height: 1.6 !important;
  border-radius: 3px !important;
  font-weight: 400 !important;
}
html:root body.gd-site main :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select) { min-height: 48px; }
html:root body.gd-site main :is(label,.form-section-title) {
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
}
html:root body.gd-site main :is(.container,.container-wide) {
  width: calc(100% - 64px);
  max-width: 1280px;
  margin-inline: auto;
}
html:root body.gd-site main :is(.section,.section-alt) { padding-block: 80px; }
html:root body.gd-site main .section-tight { padding-block: 48px; }
html:root body.gd-site main .page-hero { background: #fff; padding-block: 48px 64px; }
html:root body.gd-site main .page-hero .lead { max-width: 68ch; }
html:root body.gd-site main :is(.grid-2,.grid-3,.grid-4,.pg-grid,.app-grid)>* { min-width: 0; }
html:root body.gd-site main :is(.card,.role-card,.case-card,.pg-card,.app-fig,.capability-card,.family-card) {
  border-radius: 3px !important;
  box-shadow: none !important;
  border-color: var(--gd-line);
}
html:root body.gd-site main .pg-card img { border-radius: 0 !important; }
html:root body.gd-site main :is(.section-anchor,section[id],h2[id],h3[id]) { scroll-margin-top: 120px; }
/* Engineering data: all header layers use the same blue, including units and
   rowspan cells. Data cells are not repurposed or removed. */
html:root body.gd-site main table {
  display: table !important;
  width: 100%;
  max-width: none;
  border-collapse: separate;
  border-spacing: 0;
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1.45;
}
html:root body.gd-site main table :is(th,td,p,li,span,a,strong,b) {
  font-size: 16px !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  font-variant-numeric: lining-nums tabular-nums;
}
html:root body.gd-site main table :is(th,td) {
  padding: 14px 16px !important;
  border: 0;
  border-bottom: 1px solid var(--gd-line);
  vertical-align: middle;
  overflow-wrap: normal;
}
html:root body.gd-site main table :is(th,thead td,.gd-header-cell),
html:root body.gd-site main table :is(th,thead td,.gd-header-cell) * {
  background-color: var(--gd-blue) !important;
  color: #fff !important;
  font-weight: 600 !important;
}
html:root body.gd-site main table :is(th,thead td,.gd-header-cell) { border-bottom-color: #ffffff40; }
html:root body.gd-site main table tbody tr:nth-child(odd) td { background-color: #fff; }
html:root body.gd-site main table tbody tr:nth-child(even) td { background-color: var(--gd-soft); }
html:root body.gd-site main table caption { text-align: left; padding: 0 0 16px; font-size: 18px; font-weight: 600; }
html:root body.gd-site main table .gd-numeric { text-align: right; }
html:root body.gd-site main .gd-table-scroll {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  border: 1px solid var(--gd-line);
  border-radius: 3px;
  scrollbar-width: auto;
}
html:root body.gd-site main .gd-table-scroll > table { margin: 0; }
html:root body.gd-site main .gd-table-scroll.gd-wide-table > table { min-width: 760px; }
html:root body.gd-site main .gd-table-scroll.gd-wide-table > table :is(th,td):first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  box-shadow: 1px 0 0 var(--gd-line);
}
html:root body.gd-site main .gd-table-scroll.gd-wide-table > table thead th:first-child { z-index: 3; }
html:root body.gd-site main .gd-table-hint {
  display: none;
  margin: 8px 0 14px;
  color: var(--gd-muted);
}
html:root body.gd-site main .gd-table-hint[data-overflow=true] { display: block; }
html:root body.gd-site main :is(.table-wrap,.grade-table,.spec-table-wrap) { min-width: 0; max-width: 100%; }
html:root body.gd-site main .gd-reading-width { max-width: 800px; margin-inline: auto; }
html:root body.gd-site .cookie-panel,
html:root body.gd-site .cookie-panel * { font-family: var(--font) !important; }
@media(max-width:1000px) {
  html:root body.gd-site main :is(.container,.container-wide) { width: calc(100% - 48px); }
  html:root body.gd-site main :is(.section,.section-alt) { padding-block: 64px; }
}
@media(max-width:760px) {
  :root { --empire-page-title:38px; --empire-section-title:30px; --empire-card-title:21px; --empire-body:17px; }
  html:root body.gd-site main :is(.container,.container-wide) { width: calc(100% - 40px); }
  html:root body.gd-site main h1 { font-size: clamp(34px, 6vw, 40px) !important; line-height: 1.15 !important; }
  html:root body.gd-site main h2 { font-size: 30px !important; line-height: 1.2 !important; }
  html:root body.gd-site main :is(h3,h4,h5,h6),
  html:root body.gd-site main :is(.card,.family-body,.role-card,.case-card) h2 { font-size: 21px !important; }
  html:root body.gd-site main :is(p,.feature-text,li,input,select,textarea) { font-size: 17px !important; line-height: 1.6 !important; }
  html:root body.gd-site main :is(.lead,.section-sub,.pg-sub) { font-size: 18px !important; }
  html:root body.gd-site main :is(.section,.section-alt) { padding-block: 48px; }
  html:root body.gd-site main .section-tight { padding-block: 32px; }
  html:root body.gd-site main .page-hero { padding-block: 32px 40px; }
  html:root body.gd-site main .grid-2:not([data-balanced-grid]) { grid-template-columns: minmax(0,1fr) !important; }
  html:root body.gd-site main table :is(th,td,p,li,span,a,strong,b) { font-size: 15px !important; line-height: 1.45 !important; }
  html:root body.gd-site main .gd-table-scroll.gd-wide-table > table { min-width: 700px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto !important; }
  html:root body.gd-site *, html:root body.gd-site *::before, html:root body.gd-site *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
@media print {
  html:root body.gd-site main .gd-table-scroll { overflow: visible; }
  html:root body.gd-site main .gd-table-scroll > table { min-width: 0 !important; }
  html:root body.gd-site main .gd-table-scroll :is(th,td) { position: static !important; }
  html:root body.gd-site main .gd-table-hint { display: none !important; }
}
