/*
 * v4.29.1: shared institutional black and graphite system.
 * Loaded after the historical refinement layers so page-specific content
 * remains intact while shared chrome has one visual source of truth.
 */
:root {
  --gd-ocean: #000;
  --gd-ink: #000;
  --gd-line: rgba(0, 0, 0, 0.14);
  --gd-shadow: 0 5px 22px rgba(0, 0, 0, 0.08);
}

.gd-banner {
  color: #000;
  box-shadow: 0 3px 16px rgba(0, 0, 0, 0.1);
}

.gd-banner.scrolled {
  box-shadow: 0 7px 22px rgba(0, 0, 0, 0.15);
}

.gd-banner__nav,
.gd-menu-toggle {
  background: #000;
}

.gd-banner__nav {
  min-height: 48px;
  padding-inline: 0.5rem;
  box-shadow: none;
}

.gd-banner__nav a {
  position: relative;
  min-height: 48px;
  padding-inline: clamp(0.75rem, 1.55vw, 1.15rem);
  border-right: 0;
  border-top: 0 !important;
  border-bottom: 0 !important;
  color: rgba(255, 255, 255, 0.88);
  font-weight: 700;
  letter-spacing: 0.06em;
  transition: background-color 160ms ease, color 160ms ease;
}

.gd-banner__nav a::after {
  position: absolute;
  right: 0.8rem;
  bottom: 0;
  left: 0.8rem;
  display: block;
  height: 3px;
  background: var(--gd-terracotta);
  content: "";
  opacity: 0;
  transform: scaleX(0.45);
  transition: opacity 160ms ease, transform 160ms ease;
}

.gd-banner__nav a:hover,
.gd-banner__nav a:focus-visible {
  background: #151515;
  color: #fff;
}

.gd-banner__nav a.active,
.gd-banner__nav a[aria-current="page"] {
  background: #151515;
  color: #fff;
  border-color: transparent !important;
}

.gd-banner__nav a:hover::after,
.gd-banner__nav a:focus-visible::after,
.gd-banner__nav a.active::after,
.gd-banner__nav a[aria-current="page"]::after {
  opacity: 1;
  transform: scaleX(1);
}

.gd-language-switch > a,
.gd-language-switch > span {
  border-color: rgba(0, 0, 0, 0.2);
}

.gd-language-switch a:hover,
.gd-language-switch a:focus-visible {
  border-color: #000;
  background: rgba(0, 0, 0, 0.05);
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.13);
}

.gd-subpage-hero {
  position: relative !important;
  min-height: clamp(11rem, 18vw, 15.5rem) !important;
  margin-bottom: 0 !important;
  padding: clamp(2rem, 4vw, 3.35rem) 0 !important;
  border-bottom: 0 !important;
  background-image:
    linear-gradient(112deg, rgba(0, 0, 0, 0.95) 0%, rgba(24, 24, 24, 0.86) 56%, rgba(64, 64, 64, 0.68) 100%),
    url("geodinamic-hero-topographic-site.png") !important;
  color: #fff !important;
}

.gd-srof-hero,
.gd-research-hero,
.gd-master-hero {
  position: relative !important;
  min-height: clamp(11rem, 18vw, 15.5rem) !important;
  margin-bottom: 0 !important;
  padding: clamp(2rem, 4vw, 3.35rem) 0 !important;
  border-bottom: 0 !important;
  background:
    linear-gradient(112deg, rgba(0, 0, 0, 0.95) 0%, rgba(24, 24, 24, 0.86) 56%, rgba(64, 64, 64, 0.68) 100%) !important;
  color: #fff !important;
}

.gd-subpage-hero::before,
.gd-srof-hero::before,
.gd-research-hero::before,
.gd-master-hero::before {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  content: "" !important;
  background:
    linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px) !important;
  background-size: 96px 96px !important;
}

.gd-subpage-hero .gd-container,
.gd-srof-hero .gd-container,
.gd-research-hero .gd-container,
.gd-master-hero .gd-container {
  position: relative !important;
  z-index: 1 !important;
}

.gd-subpage-hero h1,
.gd-srof-hero h1,
.gd-research-hero h1,
.gd-master-hero h1 {
  color: #fff !important;
}

.gd-subpage-hero p:not(.gd-eyebrow),
.gd-srof-hero p:not(.gd-eyebrow),
.gd-research-hero p:not(.gd-eyebrow),
.gd-master-hero p:not(.gd-eyebrow) {
  color: rgba(255, 255, 255, 0.86) !important;
}

.gd-footer {
  background: #000;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline-color: var(--gd-terracotta);
}

@media (max-width: 720px) {
  .gd-banner__nav,
  .gd-banner__nav a {
    min-height: 44px;
  }

  .gd-banner__nav a {
    padding-inline: 0.65rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gd-banner__nav a,
  .gd-banner__nav a::after {
    transition: none;
  }
}
