:root {
  --public-primary: #1e3767;
  --public-white: #ffffff;
  --public-muted: #8c8c8c;
}

html { overflow-x: hidden; }
body { margin: 0; overflow-x: hidden; font-family: "Montserrat", sans-serif; }
.gd-public-header { position: relative; z-index: 50; border-bottom: 1px solid rgba(30, 55, 103, .14); background: var(--public-white); box-shadow: 0 8px 24px rgba(30, 55, 103, .08); }
.gd-public-header > .gd-shell { min-height: 76px; display: flex; align-items: center; gap: 24px; }
.gd-brand-link { flex: 0 0 auto; display: inline-flex; align-items: center; text-decoration: none; }
.gd-brand-link img { display: block; width: 156px; height: 52px; object-fit: contain; }
.gd-public-header nav { margin-left: auto; display: flex; align-items: center; gap: 20px; }
.gd-public-header nav a { min-height: 44px; display: inline-flex; align-items: center; padding: 0 2px; border-bottom: 2px solid transparent; color: var(--public-primary); text-decoration: none; font-size: .9rem; font-weight: 600; white-space: nowrap; }
.gd-public-header nav a:hover, .gd-public-header nav a:focus-visible, .gd-public-header nav a[aria-current="page"] { border-bottom-color: var(--public-primary); }
.gd-header-cta { justify-content: center; min-width: max-content; padding: 0 16px !important; border: 2px solid var(--public-primary) !important; border-radius: 999px; background: var(--public-white); font-weight: 700 !important; transition: color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease; }
.gd-header-cta--primary { color: var(--public-white) !important; background: var(--public-primary); }
.gd-header-cta:hover, .gd-header-cta:focus-visible { color: var(--public-white); background: var(--public-primary); transform: translateY(-2px); box-shadow: 0 10px 22px rgba(30, 55, 103, .2); }
.gd-header-cta--primary:hover, .gd-header-cta--primary:focus-visible { color: var(--public-primary) !important; background: var(--public-white); }
.gd-menu-toggle { display: none; min-height: 44px; margin-left: auto; padding: 0 15px; border: 2px solid var(--public-primary); border-radius: 999px; color: var(--public-primary); background: var(--public-white); font: inherit; font-weight: 700; cursor: pointer; }
.gd-menu-toggle:hover, .gd-menu-toggle:focus-visible { color: var(--public-white); background: var(--public-primary); }
.gd-public-footer { padding: 48px 0; color: var(--public-white); background: var(--public-primary); }
.gd-footer-logo { display: block; width: 176px; height: 60px; object-fit: contain; }
.gd-public-footer nav { display: flex; gap: 18px; flex-wrap: wrap; margin: 10px 0; }
.gd-public-footer a { color: var(--public-white); }

@media (max-width: 1024px) {
  .gd-public-header > .gd-shell { min-height: 68px; flex-wrap: wrap; padding-block: 8px; }
  .gd-menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .gd-public-header nav { display: none; order: 3; width: 100%; margin: 0; padding: 8px 0 12px; align-items: stretch; flex-direction: column; gap: 4px; }
  .gd-public-header nav.is-open { display: flex; }
  .gd-public-header nav a { width: 100%; padding: 0 12px; border: 0; border-radius: 10px; }
  .gd-public-header nav a:hover, .gd-public-header nav a:focus-visible, .gd-public-header nav a[aria-current="page"] { color: var(--public-white); background: var(--public-primary); }
  .gd-header-cta { margin-top: 4px; }
}

@media (max-width: 480px) {
  .gd-public-header > .gd-shell { width: min(100% - 24px, 1180px); gap: 12px; }
  .gd-brand-link img { width: 132px; height: 44px; }
  .gd-footer-logo { width: 154px; height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
  .gd-header-cta { transition: none; }
  .gd-header-cta:hover, .gd-header-cta:focus-visible { transform: none; }
}
