/* GKN public site 2.0 · canonical shared system layer · 2026-08-26
 *
 * This file is intentionally loaded after every page stylesheet. It standardizes
 * typography, controls, spacing rhythm and responsive behavior without changing
 * the approved HTML structure, copy or page-specific visual compositions.
 */

:root {
  --gkn-v2-frame-gutter: clamp(20px, 4vw, 88px);
  --gkn-v2-section-gap: clamp(48px, 7vw, 96px);
  --gkn-v2-card-gap: clamp(16px, 2vw, 24px);
  --gkn-v2-focus: #8f7337;
}

:is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) {
  font-family: var(--gkn-font-family-sans);
  font-size: var(--gkn-font-size-base);
  line-height: var(--gkn-line-height-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

:is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) :where(button, input, select, textarea) {
  font-family: inherit;
}

:is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) :where(p, li, dd, figcaption) {
  overflow-wrap: anywhere;
}

:is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) :where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--gkn-v2-focus);
  outline-offset: 3px;
}

/* Shared navigation ------------------------------------------------------- */

html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-brand small {
  font-size: 11px;
  line-height: var(--gkn-line-height-control);
}

html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-brand strong {
  font-size: 19px;
  line-height: 1.2;
}

html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-nav a > span {
  font-size: var(--gkn-font-size-nav-primary);
  line-height: var(--gkn-line-height-control);
}

html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-nav a > small {
  font-size: var(--gkn-font-size-nav-secondary);
  line-height: var(--gkn-line-height-control);
}

html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-button {
  min-height: var(--gkn-button-height-compact);
  padding-inline: var(--gkn-space-md);
  font-size: var(--gkn-font-size-button);
  line-height: var(--gkn-line-height-control);
}

html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-account-popover small {
  font-size: var(--gkn-font-size-xs);
}

@media (min-width: 1181px) and (max-width: 1380px) {
  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar {
    grid-template-columns: minmax(188px, 0.62fr) minmax(710px, 2fr) auto;
    gap: 10px;
    padding-inline: 18px;
  }

  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-brand > img {
    width: 40px;
    height: 40px;
  }

  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-brand small {
    font-size: 10px;
  }

  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-brand strong {
    font-size: 17px;
  }

  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-nav a {
    padding-inline: 5px;
  }

  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-nav a > span {
    font-size: 13px;
  }

  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-nav a > small {
    font-size: 11px;
  }

  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-button {
    min-height: 38px;
    padding-inline: 12px;
    font-size: 13px;
  }
}

@media (max-width: 1180px) {
  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-brand small {
    font-size: 10px;
  }

  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-brand strong {
    font-size: 17px;
  }

  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-nav a > span {
    font-size: 15px;
  }

  html :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) > .gk-topbar .gk-nav a > small {
    font-size: 12px;
  }
}

/* Shared editorial hierarchy -------------------------------------------- */

:is(.ga3-page-heading__copy h1, .gk-hero h1, .gm-hero h1, .gc-opening h1) {
  font-size: var(--gkn-font-size-display);
  line-height: var(--gkn-line-height-tight);
}

:is(.ga3-section-heading h2, .ga3-escort h2, .ga3-services-title h2, .gm-chapter__header h2, .gc-chapter__header h2) {
  line-height: var(--gkn-line-height-heading);
}

:is(.ga3-kicker, .ga3-overline, .gk-kicker, .gm-kicker, .gc-kicker) {
  font-size: var(--gkn-font-size-xs);
  line-height: var(--gkn-line-height-control);
}

:is(.gk-hero__lead, .gm-hero__lead, .gc-chapter__header > p) {
  line-height: var(--gkn-line-height-reading);
}

/* About / 2.0 homepage --------------------------------------------------- */

.ga-shell .ga3-page-heading__copy small {
  font-size: var(--gkn-font-size-md);
  line-height: var(--gkn-line-height-control);
}

.ga-shell :is(.ga3-one-stop-hero__lead, .ga3-vision-copy p, .ga3-escort-grid p, .ga3-connection-grid p, .ga3-training-grid article > p, .ga3-contact p:not(.ga3-kicker)) {
  font-size: var(--gkn-font-size-base);
  line-height: var(--gkn-line-height-reading);
}

.ga-shell :is(.ga3-team-groups li, .ga3-consulting-grid li, .ga3-research-card__copy p, .ga3-index-grid p) {
  font-size: var(--gkn-font-size-md);
  line-height: var(--gkn-line-height-body);
}

.ga-shell :is(.ga3-team-groups article > span, .ga3-research-card__copy > span, .ga3-index-grid article > span, .ga3-escort-grid article > span, .ga3-service-section__heading > span, .ga3-consulting-grid article > span, .ga3-connection-grid article > span, .ga3-training-grid article > span, .ga3-highlight-grid article > span, .ga3-training-grid li span) {
  font-size: var(--gkn-font-size-xs);
  line-height: var(--gkn-line-height-control);
}

.ga-shell .ga3-service-nav-group > a span,
.ga-shell .ga3-term-list span {
  font-size: var(--gkn-font-size-xs);
}

.ga-shell .ga3-service-subindex a,
.ga-shell .ga3-capability-block > a {
  min-height: 36px;
  font-size: var(--gkn-font-size-sm);
  line-height: var(--gkn-line-height-control);
}

.ga-shell .ga3-contact-button {
  min-height: var(--gkn-button-height);
  padding-inline: var(--gkn-space-lg);
  font-size: var(--gkn-font-size-button);
  line-height: var(--gkn-line-height-control);
}

/* Global Knowledge ------------------------------------------------------- */

.gk-shell .gk-hero__meta,
.gk-shell .gk-hero__folio,
.gk-shell .gk-mode-tab__index,
.gk-shell .gk-mode-tab small {
  font-size: var(--gkn-font-size-xs);
  line-height: var(--gkn-line-height-control);
}

.gk-shell .gk-method-system__head h2 small,
.gk-shell .gk-method-axis-grid li > span,
.gk-shell .gk-select-label > span,
.gk-shell .gk-step-badge,
.gk-shell .gk-data-label {
  font-size: var(--gkn-font-size-xs);
}

.gk-shell .gk-method-axis-grid p {
  font-size: var(--gkn-font-size-xs);
  line-height: 1.55;
}

.gk-shell :is(.gk-card__intro, .gk-inline-status, .gk-selection-summary, .gk-source-note, .gk-boundary-note > p:last-child) {
  font-size: var(--gkn-font-size-md);
  line-height: var(--gkn-line-height-body);
}

.gk-shell :is(.gk-industry-tag, .gk-subindustry-tag, .gk-industry-group__clear) {
  min-height: 32px;
  font-size: var(--gkn-font-size-xs);
  line-height: var(--gkn-line-height-control);
}

.gk-shell .gk-subindustry-tag > span {
  font-size: var(--gkn-font-size-xs);
}

.gk-shell :is(.gk-select-label select, .gk-text-action, .gk-back-action) {
  min-height: var(--gkn-button-height-compact);
  font-size: var(--gkn-font-size-md);
}

/* Global Network --------------------------------------------------------- */

.gk-shell :is(.gn-filter-grid label > span, .gn-directory-tools label > span, .gn-stat-list dt, .gn-directory th) {
  font-size: var(--gkn-font-size-xs);
  line-height: var(--gkn-line-height-control);
}

.gk-shell :is(.gn-filter-grid select, .gn-directory-tools select, .gn-text-action) {
  min-height: var(--gkn-button-height-compact);
  font-size: var(--gkn-font-size-md);
}

.gk-shell .gn-directory__header > div > p:last-child,
.gk-shell .gn-resource-boundary {
  font-size: var(--gkn-font-size-sm);
  line-height: var(--gkn-line-height-body);
}

.gk-shell .gn-directory tbody td {
  font-size: var(--gkn-font-size-md);
  line-height: 1.55;
}

.gk-shell .gn-directory tbody td > strong,
.gk-shell .gn-profile-link strong {
  font-size: var(--gkn-font-size-md);
}

.gk-shell .gn-directory tbody td > small,
.gk-shell .gn-profile-link small,
.gk-shell .gn-type-label,
.gk-shell .gn-tag-group :is(b, span) {
  font-size: var(--gkn-font-size-xs);
  line-height: 1.5;
}

.gk-shell .gn-profile-link {
  min-height: 40px;
  font-size: var(--gkn-font-size-md);
  line-height: 1.5;
}

.gk-shell .gn-pagination button {
  min-width: 36px;
  min-height: 36px;
  font-size: var(--gkn-font-size-sm);
}

/* Global Management ------------------------------------------------------ */

.gm-shell .gm-chapter-rail__heading span,
.gm-shell .gm-chapter-group__label span,
.gm-shell .gm-chapter-group button span,
.gm-shell .gm-card-label,
.gm-shell .gm-syllabus article > span,
.gm-shell .gm-chapter-cue__text small,
.gm-shell .gm-chapter-cue__text em {
  font-size: var(--gkn-font-size-xs);
  line-height: var(--gkn-line-height-control);
}

.gm-shell .gm-chapter-group button strong {
  font-size: var(--gkn-font-size-sm);
  line-height: var(--gkn-line-height-control);
}

.gm-shell :is(.gm-syllabus li, .gm-outline-grid li, .gm-challenges li, .gm-levels section p) {
  font-size: var(--gkn-font-size-sm);
  line-height: 1.55;
}

.gm-shell :is(.gm-context-card p, .gm-agent-copy p, .gm-agent-copy li) {
  font-size: var(--gkn-font-size-md);
  line-height: var(--gkn-line-height-body);
}

.gm-shell .gm-chapter-group button,
.gm-shell .gm-chapter-cue {
  min-height: 36px;
}

@media (min-width: 901px) and (max-height: 780px) {
  .gm-shell :is(.gm-course-layout, .gm-agent-layout, .gm-chapter__body) {
    min-height: 0;
  }

  .gm-shell :is(.gm-context-card, .gm-syllabus, .gm-outline-grid, .gm-agent-copy) {
    scrollbar-gutter: stable;
  }
}

/* Global Compliance ------------------------------------------------------ */

.gc-shell .gc-chapter-rail__heading span,
.gc-shell .gc-chapter-rail button span,
.gc-shell .gc-kicker,
.gc-shell :is(.gc-risk-card header span, .gc-risk-card footer, .gc-governance-house__roof > span, .gc-governance-pillars header small, .gc-governance-foundation span, .gc-case-country > header span, .gc-case-country > header small, .gc-case-country button > span, .gc-case-detail > header > span, .gc-case-detail__body section > span, .gc-advisory-resources header small, .gc-risk-summary__sources span, .gc-risk-command > div span, .gc-risk-command li span) {
  font-size: var(--gkn-font-size-xs);
  line-height: var(--gkn-line-height-control);
}

.gc-shell .gc-chapter-rail button small,
.gc-shell .gc-chapter-rail button strong {
  font-size: var(--gkn-font-size-sm);
  line-height: var(--gkn-line-height-control);
}

.gc-shell :is(.gc-opening__thesis p, .gc-risk-card p, .gc-governance-foundation p, .gc-case-detail__body p, .gc-case-detail > footer p, .gc-advisory-resources article > p, .gc-cooperation-paths p) {
  font-size: var(--gkn-font-size-md);
  line-height: var(--gkn-line-height-body);
}

.gc-shell :is(.gc-advisory-resources article > strong, .gc-governance-foundation strong) {
  font-size: var(--gkn-font-size-base);
  line-height: var(--gkn-line-height-heading);
}

.gc-shell :is(.gc-case-country button, .gc-risk-view-tabs button, .gc-deck-controls button, .gc-chapter-rail button) {
  min-height: 36px;
}

@media (min-width: 901px) and (max-height: 780px) {
  .gc-shell :is(.gc-risk-evidence, .gc-governance-house, .gc-case-workbench, .gc-advisory-resources, .gc-cooperation-paths) {
    min-height: 0;
  }
}

/* Mobile reading contract ------------------------------------------------ */

@media (max-width: 760px) {
  :root {
    --gkn-font-size-display: clamp(36px, 10vw, 46px);
    --gkn-font-size-section: clamp(28px, 7.5vw, 38px);
  }

  :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) {
    font-size: var(--gkn-font-size-base);
    line-height: var(--gkn-line-height-reading);
  }

  :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) :where(button, a, input, select, textarea) {
    touch-action: manipulation;
  }

  .ga-shell :is(.ga3-service-subindex a, .ga3-capability-block > a),
  .gk-shell :is(.gk-industry-tag, .gk-subindustry-tag, .gk-text-action, .gk-back-action),
  .gm-shell :is(.gm-chapter-group button, .gm-chapter-cue),
  .gc-shell :is(.gc-case-country button, .gc-risk-view-tabs button, .gc-deck-controls button, .gc-chapter-rail button) {
    min-height: 44px;
  }

  .gk-shell .gn-directory,
  .gk-shell .gn-directory tbody,
  .gk-shell .gn-directory tr,
  .gk-shell .gn-directory td {
    min-width: 0;
  }

  .gk-shell .gn-directory tbody td {
    font-size: var(--gkn-font-size-md);
  }
}

@media (prefers-reduced-motion: reduce) {
  :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) *,
  :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) *::before,
  :is(.ga-shell, .gk-shell, .gm-shell, .gc-shell) *::after {
    scroll-behavior: auto;
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
    transition-duration: 0.01ms;
  }
}
