
@media (min-width: 1200px) {
  #navScroll.navbar-expand-xl { flex-wrap: nowrap; justify-content: flex-start; }
  #navScroll.navbar-expand-xl .container { flex-wrap: nowrap; }
  #navScroll.navbar-expand-xl .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
    flex-grow: 1;
    flex-wrap: nowrap;
    min-width: 0;
    align-items: center;
  }
  #navScroll.navbar-expand-xl .navbar-toggler { display: none; }
  #navScroll.navbar-expand-xl .navbar-nav { flex-direction: row; }
}

@media (max-width: 1199.98px) {
  #navScroll .navbar-collapse { width: 100%; }
  #navScroll .navbar-nav { padding-top: 0.75rem; }
  #navScroll .navbar-nav .nav-link { padding-left: 0; }
}

#navScroll .navbar-brand { white-space: nowrap; }
#navScroll .nav-link {
  color: rgba(255, 255, 255, 0.72);
  white-space: nowrap;
  transition: color 0.2s ease;
}
#navScroll .nav-link:hover,
#navScroll .nav-link.active { color: #fff; }
#navScroll .navbar-nav { gap: 0; }
#navScroll .navbar-nav .nav-link { padding-left: 0.45rem; padding-right: 0.45rem; font-size: 0.92rem; }

@media (min-width: 1200px) and (max-width: 1399.98px) {
  #navScroll .navbar-brand { font-size: 1.05rem !important; }
  #navScroll .navbar-nav .nav-link { font-size: 0.85rem; padding-left: 0.35rem; padding-right: 0.35rem; }
}
#navScroll .btn { white-space: nowrap; flex-shrink: 0; }
#navScroll .navbar-toggler:focus { box-shadow: none; }

.main--public .btn-light,
#navScroll .btn-light {
  background-color: var(--nmw-invert);
  border-color: var(--nmw-invert);
  color: var(--nmw-invert-text);
}

.main--public .btn-light:hover,
#navScroll .btn-light:hover {
  background-color: var(--nmw-invert);
  border-color: var(--nmw-invert);
  color: var(--nmw-invert-text);
  opacity: 0.88;
}

.main--public .btn-outline-light {
  border: 1px solid var(--nmw-outline);
  color: var(--nmw-text);
  background-color: transparent;
}

.main--public .btn-outline-light:hover {
  background-color: var(--nmw-invert);
  color: var(--nmw-invert-text);
  border-color: var(--nmw-invert);
}

html:has(.main--public), body:has(.main--public) { overflow-x: hidden; }
.main--public { overflow-x: hidden; }

.main--public .card h2,
.main--public .card h3 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.main--public .card img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

@media (max-width: 1399.98px) {
  .main--public .card .p-5 { padding: 2rem !important; }
}

[data-theme="light"] .bg-black { background-color: var(--nmw-bg) !important; }
[data-theme="light"] .bg-dark { background-color: var(--nmw-surface) !important; }
[data-theme="light"] .text-white { color: var(--nmw-heading) !important; }
[data-theme="light"] .text-secondary { color: var(--nmw-muted) !important; }
[data-theme="light"] .border-dark { border-color: var(--nmw-border) !important; }
[data-theme="light"] .border-secondary { border-color: var(--nmw-border) !important; }
[data-theme="light"] .border-top,
[data-theme="light"] .border-bottom,
[data-theme="light"] .border-start,
[data-theme="light"] .border-end { border-color: var(--nmw-border) !important; }
[data-theme="light"] .shadow { box-shadow: var(--shadow-card) !important; }

[data-theme="light"] #navScroll.bg-black {
  background-color: rgba(244, 241, 222, 0.92) !important;
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--nmw-border);
}
[data-theme="light"] #navScroll .navbar-brand,
[data-theme="light"] #navScroll .navbar-brand span { color: var(--nmw-heading); }
[data-theme="light"] #navScroll .nav-link { color: rgba(61, 64, 91, 0.72); }
[data-theme="light"] #navScroll .nav-link:hover,
[data-theme="light"] #navScroll .nav-link.active { color: var(--nmw-heading); }
[data-theme="light"] #navScroll.scrolled { background-color: rgba(244, 241, 222, 0.98) !important; }
[data-theme="light"] #navScroll .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2861,64,91,0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
[data-theme="light"] #navScroll .navbar-toggler { border-color: var(--nmw-border); }

[data-theme="light"] .link-fancy-light { color: var(--nmw-link); }

[data-theme="light"] .quote-hero .display-4 { color: #fff !important; }

.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid var(--nmw-outline-soft);
  border-radius: 999px;
  background: transparent;
  color: var(--nmw-text);
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.theme-toggle:hover {
  background: var(--nmw-invert);
  color: var(--nmw-invert-text);
  border-color: var(--nmw-invert);
}

.theme-toggle svg { width: 17px; height: 17px; }
.theme-toggle .icon-sun { display: none; }
.theme-toggle .icon-moon { display: block; }
[data-theme="light"] .theme-toggle .icon-sun { display: block; }
[data-theme="light"] .theme-toggle .icon-moon { display: none; }

[data-theme="light"] .position-absolute.bg-dark { background-color: var(--nmw-surface-2) !important; }

/* The signed-in navbar carries up to 7 module links plus the user controls.
   Between the expand breakpoint and wide desktops, trade the 5vw gutter and
   some link padding for room, so nothing spills past the viewport. */
@media (min-width: 1200px) and (max-width: 1499.98px) {
  #navScroll .container-fluid { padding-left: 1.5rem; padding-right: 1.5rem; }
  #navScroll .navbar-nav .nav-link { font-size: 0.82rem; padding-left: 0.3rem; padding-right: 0.3rem; }
  #navScroll .navbar-brand { font-size: 1rem !important; }
  #navScroll .navbar-collapse > .d-flex { gap: 0.5rem !important; }
  #navScroll .btn-sm { padding-left: 0.7rem; padding-right: 0.7rem; }
  #navScroll .lang-switch { font-size: 0.68rem; }
}

/* Tightest band: 7 links still have to fit right above the collapse point. */
@media (min-width: 1200px) and (max-width: 1319.98px) {
  #navScroll .navbar-nav .nav-link { font-size: 0.78rem; padding-left: 0.22rem; padding-right: 0.22rem; }
  #navScroll .container-fluid { padding-left: 1rem; padding-right: 1rem; }
}
