/* Shared sitewide overrides + mobile menu.
   Loaded via <link rel="stylesheet"> in each page head, so any rule here
   wins over earlier inline <style> rules of equal specificity. */

/* Drop the dash accent above the mega-menu left-column description.
   The contour topo mark is the accent now. */
.dropdown-description::before { display: none !important; }

/* Shared mobile menu — overrides the burger to two heavier lines
   and provides a slide-down full-screen menu for screens <= 800px. */

@media (max-width: 800px) {
  /* Burger: two lines, slightly heavier weight */
  .nav-burger span { width: 26px; height: 2px; }
  .nav-burger span:nth-child(2) { display: none; }
  .nav-burger { gap: 7px; padding: 10px; }
}

/* Mobile menu overlay — built dynamically by mobile-menu.js */
.mobile-menu {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: #FAFBF9;
  z-index: 130;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.32s ease, transform 0.36s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0s linear 0.32s;
  padding: 88px 28px 48px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.mobile-menu.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition: opacity 0.32s ease, transform 0.36s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0s linear 0s;
}
.mobile-menu-close {
  position: absolute;
  top: 22px;
  right: 22px;
  background: none;
  border: none;
  padding: 10px;
  cursor: pointer;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.mobile-menu-close::before,
.mobile-menu-close::after {
  content: "";
  position: absolute;
  width: 22px;
  height: 2px;
  background: #0E1A11;
}
.mobile-menu-close::before { transform: rotate(45deg); }
.mobile-menu-close::after  { transform: rotate(-45deg); }

.mobile-menu-section {
  margin-bottom: 32px;
  border-bottom: 1px solid #D3DCD3;
  padding-bottom: 20px;
}
.mobile-menu-section:last-of-type {
  border-bottom: 0;
  padding-bottom: 0;
}
.mobile-menu-eyebrow {
  font-family: "Neue Haas Grotesk Text Pro", "Helvetica Neue", "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #1F5030;
  font-weight: 500;
  margin-bottom: 14px;
}
.mobile-menu a {
  display: block;
  font-family: "Neue Haas Grotesk Display Pro", "Helvetica Neue", "Inter", sans-serif;
  font-size: 22px;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: #0E1A11;
  padding: 12px 0;
  line-height: 1.2;
  text-decoration: none;
}
.mobile-menu a:hover { color: #1F5030; }
.mobile-menu-portal {
  display: inline-block !important;
  margin-top: 8px;
  font-family: "Neue Haas Grotesk Text Pro", "Helvetica Neue", "Inter", sans-serif !important;
  font-size: 11.5px !important;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  color: #1F5030 !important;
  padding: 8px 0 4px;
  border-bottom: 1px solid #1F5030;
}

@media (min-width: 801px) {
  .mobile-menu { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-menu { transition: opacity 0.2s ease, visibility 0s; transform: none !important; }
}
