.skip-link {
  position: fixed;
  inset-block-start: var(--space-2);
  inset-inline-start: var(--space-2);
  z-index: var(--layer-toast);
  translate: 0 calc(-100% - var(--space-4));
  min-height: 2.75rem;
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-md);
  background: var(--color-signal);
  color: var(--color-on-signal);
  transition: translate var(--duration-fast) var(--easing-standard);
}

.skip-link:focus {
  translate: 0;
  color: var(--color-on-signal);
}

.site-header {
  position: sticky;
  inset-block-start: 0;
  z-index: var(--layer-sticky);
  height: var(--header-height);
  border-block-end: var(--border-hairline) solid var(--theme-border);
  background: color-mix(in srgb, var(--theme-bg) 94%, transparent);
  transition:
    background-color var(--duration-normal) var(--easing-standard),
    box-shadow var(--duration-normal) var(--easing-standard);
}

.site-header.is-scrolled {
  background: color-mix(in srgb, var(--color-bg) 96%, transparent);
  box-shadow: var(--shadow-low);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  gap: var(--space-6);
}

.site-logo {
  flex: 0 1 auto;
  color: var(--theme-text);
  font-family: var(--font-display);
  font-size: var(--type-label);
  font-weight: 700;
  letter-spacing: var(--tracking-en-label);
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.site-logo:hover {
  color: var(--color-signal);
}

.global-navigation {
  display: none;
}

.global-navigation__list,
.mobile-navigation__list,
.site-footer__navigation-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.global-navigation__list {
  display: flex;
  align-items: center;
  gap: clamp(var(--space-3), 1.4vw, var(--space-6));
}

.global-navigation__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: var(--theme-text-secondary);
  font-family: var(--font-display);
  font-size: var(--type-label);
  font-weight: 600;
  letter-spacing: var(--tracking-en-label);
  text-decoration: none;
}

.navigation-indicator {
  margin-inline-start: 0.18em;
  color: var(--theme-text-muted);
  font-size: 0.82em;
  line-height: 1;
}

.navigation-label {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
}

.global-navigation__link::after {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0.25rem;
  height: var(--border-emphasis);
  background: var(--color-signal);
  content: "";
  scale: 0 1;
  transform-origin: left;
  transition: scale var(--duration-fast) var(--easing-standard);
}

.global-navigation__link:hover,
.global-navigation__link[aria-current="page"] {
  color: var(--theme-text);
}

.global-navigation__link:hover::after,
.global-navigation__link:focus-visible::after,
.global-navigation__link[aria-current="page"]::after {
  scale: 1 1;
}

.mobile-navigation-trigger,
.mobile-navigation__close {
  display: inline-grid;
  place-items: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--theme-text);
}

.mobile-navigation-trigger__icon {
  position: relative;
  width: var(--icon-lg);
  height: var(--icon-md);
}

.mobile-navigation-trigger__icon::before,
.mobile-navigation-trigger__icon::after {
  position: absolute;
  inset-inline: 0;
  height: var(--icon-stroke);
  background: currentcolor;
  content: "";
}

.mobile-navigation-trigger__icon::before {
  inset-block-start: 0.25rem;
}

.mobile-navigation-trigger__icon::after {
  inset-block-end: 0.25rem;
}

.mobile-navigation {
  position: fixed;
  inset: 0;
  z-index: var(--layer-overlay);
  display: grid;
  grid-template-columns: minmax(var(--space-6), 1fr) minmax(0, 32rem);
}

.mobile-navigation__backdrop {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--color-overlay);
}

.mobile-navigation__panel {
  grid-column: 2;
  min-width: 0;
  height: 100%;
  overflow-y: auto;
  padding: var(--space-4) var(--space-6) var(--space-8);
  border-inline-start: var(--border-hairline) solid var(--color-dark-border);
  background: var(--color-dark-bg);
  box-shadow: var(--shadow-medium);
  color: var(--color-dark-text);
}

.mobile-navigation__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: calc(var(--header-height) - var(--space-4));
  padding-block-end: var(--space-4);
  border-block-end: var(--border-hairline) solid var(--color-dark-border);
}

.mobile-navigation__label {
  color: var(--color-dark-muted);
  font-family: var(--font-data);
  font-size: var(--type-data);
  letter-spacing: var(--tracking-en-label);
}

.mobile-navigation__close {
  color: var(--color-dark-text);
  font-size: var(--type-small);
}

.mobile-navigation__list {
  counter-reset: mobile-navigation;
  margin-block-start: var(--space-8);
}

.mobile-navigation__item {
  counter-increment: mobile-navigation;
  border-block-end: var(--border-hairline) solid var(--color-dark-border);
}

.mobile-navigation__link {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  align-items: baseline;
  min-height: 4rem;
  padding-block: var(--space-3);
  color: var(--color-dark-text);
  font-family: var(--font-display);
  font-size: var(--type-h3);
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}

.mobile-navigation__link::before {
  color: var(--color-dark-muted);
  font-family: var(--font-data);
  font-size: var(--type-data);
  content: counter(mobile-navigation, decimal-leading-zero);
}

.mobile-navigation__link:hover,
.mobile-navigation__link[aria-current="page"] {
  color: var(--color-on-signal);
  background: var(--color-dark-surface);
}

.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  min-height: 2.75rem;
  padding: var(--space-3) var(--space-5);
  border: var(--border-hairline) solid transparent;
  border-radius: var(--radius-md);
  background: var(--color-signal);
  color: var(--color-on-signal);
  font-size: var(--type-small);
  font-weight: 600;
  text-decoration: none;
  transition:
    background-color var(--duration-fast) var(--easing-standard),
    border-color var(--duration-fast) var(--easing-standard),
    color var(--duration-fast) var(--easing-standard);
}

.button-link::after,
.text-link::after {
  content: "→";
  transition: translate var(--duration-fast) var(--easing-standard);
}

.button-link--external::after,
.text-link--external::after {
  content: "↗";
}

.button-link:hover::after,
.button-link:focus-visible::after,
.text-link:hover::after,
.text-link:focus-visible::after {
  translate: var(--space-1) 0;
}

.button-link:hover {
  background: var(--color-signal-hover);
  color: var(--color-on-signal);
}

.button-link:active {
  background: var(--color-signal-active);
}

.button-link--secondary {
  border-color: var(--theme-border);
  background: transparent;
  color: var(--theme-text);
}

.button-link--secondary:hover {
  border-color: var(--color-border-strong);
  background: var(--theme-bg-subtle);
  color: var(--theme-text);
}

.text-link {
  display: inline-flex;
  align-items: baseline;
  gap: var(--space-2);
  min-height: 2.75rem;
  font-weight: 600;
}

.section-header {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: var(--space-4);
}

.section-header__index {
  padding-block-start: 0.65em;
  color: var(--theme-text-muted);
  font-family: var(--font-data);
  font-size: var(--type-data);
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--tracking-en-label);
}

.section-header__content {
  min-width: 0;
}

.section-header__label {
  margin-block-start: var(--space-4);
  color: var(--theme-text-secondary);
  font-family: var(--font-body);
  font-size: var(--type-small);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.section-header__heading {
  max-width: 12ch;
  color: var(--theme-text-muted);
  font-family: var(--font-display);
  font-size: var(--type-h1);
  font-weight: 600;
  letter-spacing: var(--tracking-en-display);
  line-height: 0.96;
}

[data-theme="dark"] .section-header__heading,
[data-theme="dark"] .section-header__index {
  color: var(--theme-text-muted);
}

[data-theme="dark"] .section-header__label {
  color: var(--theme-text);
}

.section-header__lead {
  max-width: var(--container-narrow);
  margin-block-start: var(--space-6);
  color: var(--theme-text-secondary);
  font-size: var(--type-body-l);
  line-height: 1.8;
}

.news-index {
  margin: 0;
  padding: 0;
  border-block-start: var(--border-hairline) solid var(--theme-border);
}

.news-item {
  border-block-end: var(--border-hairline) solid var(--theme-border);
}

.news-item__link,
.news-item__row {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr) auto;
  gap: var(--space-3);
  align-items: baseline;
  min-height: 7rem;
  padding-block: var(--space-5);
  color: var(--theme-text);
  text-decoration: none;
}

.news-item__index,
.news-item__date,
.news-item__category {
  color: var(--theme-text-muted);
  font-family: var(--font-data);
  font-size: var(--type-data);
  letter-spacing: var(--tracking-en-label);
}

.news-item__date,
.news-item__category,
.news-item__title {
  grid-column: 2;
}

.news-item__title {
  margin: 0;
  font-size: var(--type-body-l);
  font-weight: 500;
}

.news-item__category {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}

.news-item__category-icon {
  width: 1rem;
  height: 1rem;
  flex: none;
}

.news-item__index,
.news-item__date { grid-row: 1; }
.news-item__category { grid-row: 2; }
.news-item__title { grid-row: 3; }

.news-item__body {
  grid-column: 2 / -1;
  grid-row: 4;
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.8;
}

.news-item__body p { margin: 0; }
.news-item__body a { text-underline-offset: 0.2em; }
.news-index__empty { padding-block: var(--space-5); }

.news-item__arrow {
  grid-column: 3;
  grid-row: 1 / span 3;
  font-size: var(--type-h3);
  transition: transform var(--duration-fast) var(--easing-standard);
}

.news-item__link:hover .news-item__arrow,
.news-item__link:focus-visible .news-item__arrow {
  transform: translate3d(var(--space-1), calc(var(--space-1) * -1), 0);
}

.site-footer {
  border-block-start: var(--border-hairline) solid var(--color-dark-border);
  background: var(--color-dark-bg);
  color: var(--color-dark-text);
}

.site-footer__inner {
  display: grid;
  gap: var(--space-12);
  padding-block: var(--space-16);
}

.site-footer__brand {
  color: var(--color-dark-text);
}

.site-footer__navigation-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2) var(--space-6);
}

.site-footer__navigation-link {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: var(--color-dark-text);
  font-family: var(--font-display);
  font-size: var(--type-small);
  letter-spacing: var(--tracking-en-label);
}

.site-footer__company {
  display: grid;
  gap: var(--space-2);
  color: var(--color-dark-muted);
  font-size: var(--type-small);
  font-style: normal;
}

.site-footer__company a {
  color: var(--color-dark-text);
}

@media (min-width: 48rem) {
  .global-navigation {
    display: block;
  }

  .mobile-navigation-trigger {
    display: none;
  }

  .section-header {
    grid-template-columns: 4rem minmax(0, 1fr);
    gap: var(--space-8);
  }

  .news-item__link,
  .news-item__row {
    grid-template-columns: 4rem 9rem 9rem minmax(0, 1fr) 2rem;
    gap: var(--space-5);
  }

  .news-item__date,
  .news-item__category,
  .news-item__title,
  .news-item__arrow {
    grid-row: 1;
  }

  .news-item__date { grid-column: 2; }
  .news-item__category { grid-column: 3; }
  .news-item__title { grid-column: 4; }
  .news-item__arrow { grid-column: 5; }
  .news-item__body { grid-column: 4 / -1; grid-row: 2; }

  .site-footer__inner {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 2fr);
  }

  .site-footer__navigation-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .site-footer__company {
    grid-column: 2;
  }
}
