/* ═══════════════════════════════════════════════════════════════
   Industries mega-menu — shared across masthead navs.
   Surface/borders match the site's chalk panel treatment; motion
   follows the homepage language (short fade + rise, ease-out).
   ═══════════════════════════════════════════════════════════════ */
.nav-ind { position: relative; display: inline-flex; }
.nav-ind > a { position: relative; }

.ind-mega {
  position: absolute;
  top: calc(100% + 6px);
  left: 50%;
  transform: translate(-50%, 6px);
  width: min(1200px, calc(100vw - 48px));
  background: var(--chalk);
  border: 1px solid var(--border);
  box-shadow: 0 1px 0 rgba(16,25,43,0.04), 0 24px 60px -24px rgba(16,25,43,0.18);
  padding: 30px 34px 26px;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 28px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease-out, transform 0.2s ease-out, visibility 0s linear 0.2s;
  text-transform: none;
  letter-spacing: 0;
  z-index: 60;
}
.nav-ind.is-open .ind-mega {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
  transition: opacity 0.2s ease-out, transform 0.2s ease-out, visibility 0s;
}
.ind-mega-col { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.ind-mega-head {
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rust);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--sand);
  margin-bottom: 3px;
  text-decoration: none;
  border-left: 0; display: block;
}
.ind-mega-head:hover { color: var(--ink); }
.ind-mega-col a:not(.ind-mega-head) {
  font-family: var(--sans);
  font-size: 13px;
  line-height: 1.35;
  color: var(--ink-soft);
  text-decoration: none;
  border-bottom: 0;
  padding: 2px 0;
  position: relative;
  transition: color 0.18s ease;
}
.ind-mega-col a:not(.ind-mega-head):hover { color: var(--blueprint); }
.ind-mega-all {
  grid-column: 1 / -1;
  margin-top: 6px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
}
.ind-mega-all:hover { color: var(--rust); }
.ind-mega-all .arr { font-size: 11px; opacity: 0.7; }

/* stagger the columns in */
.ind-mega .ind-mega-col { opacity: 0; transform: translateY(5px); transition: opacity 0.22s ease-out, transform 0.22s ease-out; }
.nav-ind.is-open .ind-mega .ind-mega-col { opacity: 1; transform: translateY(0); }
.nav-ind.is-open .ind-mega .ind-mega-col:nth-child(1) { transition-delay: 0.02s; }
.nav-ind.is-open .ind-mega .ind-mega-col:nth-child(2) { transition-delay: 0.05s; }
.nav-ind.is-open .ind-mega .ind-mega-col:nth-child(3) { transition-delay: 0.08s; }
.nav-ind.is-open .ind-mega .ind-mega-col:nth-child(4) { transition-delay: 0.11s; }
.nav-ind.is-open .ind-mega .ind-mega-col:nth-child(5) { transition-delay: 0.14s; }
.nav-ind.is-open .ind-mega .ind-mega-col:nth-child(6) { transition-delay: 0.17s; }

@media (max-width: 900px) {
  .ind-mega { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ind-mega, .ind-mega .ind-mega-col { transition: none !important; transform: translate(-50%, 0) !important; }
  .ind-mega .ind-mega-col { transform: none !important; }
}

/* Kill the masthead .nav a::after underline inside the panel, then give
   vertical links the footer's underline micro-animation in blueprint. */
.ind-mega a { padding: 2px 0; }
.ind-mega a::after { content: none !important; display: none !important; }
.ind-mega-col a:not(.ind-mega-head) { position: relative; transition: color 0.18s ease; }
.ind-mega-col a:not(.ind-mega-head):hover { color: var(--blueprint); }
.ind-mega-col a:not(.ind-mega-head)::before { content: ""; position: absolute; left: 0; bottom: 0;
  height: 1px; width: 0; background: var(--blueprint); transition: width 0.3s cubic-bezier(.2,.7,.2,1); }
.ind-mega-col a:not(.ind-mega-head):hover::before { width: 100%; }
/* archived industry pages: heads are labels, not links */
span.ind-mega-head { cursor: default; }

/* six family rows — homepage module-index pattern */
.ind-mega-index { display: grid; grid-template-columns: 1fr 1fr !important; column-gap: 44px; row-gap: 0 !important;
  width: min(760px, calc(100vw - 48px)) !important; padding: 22px 30px 26px !important; }
.ind-mega-head-row { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px;
  padding: 2px 2px 12px; border-bottom: 1px solid rgba(16,25,43,0.12); margin-bottom: 4px; }
.imh-rule { width: 28px; height: 1px; background: var(--ink); opacity: 0.5; }
.imh-text { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.22em; color: var(--gravel); }
.nav .ind-mega a.fam-row { display: grid; grid-template-columns: 30px minmax(0,1fr) 18px;
  grid-template-rows: auto auto; column-gap: 12px; align-items: center;
  padding: 13px 2px; letter-spacing: 0; text-transform: none;
  border-bottom: 1px solid rgba(16,25,43,0.09); border-radius: 0;
  opacity: 0; transform: translateY(5px);
  transition: background 0.28s ease, padding-left 0.32s cubic-bezier(.2,.7,.2,1),
    opacity 0.28s ease-out, transform 0.28s ease-out; }
.nav-ind.is-open a.fam-row { opacity: 1; transform: translateY(0); }
.nav-ind.is-open a.fam-row:nth-child(2) { transition-delay: 0.02s; }
.nav-ind.is-open a.fam-row:nth-child(3) { transition-delay: 0.05s; }
.nav-ind.is-open a.fam-row:nth-child(4) { transition-delay: 0.08s; }
.nav-ind.is-open a.fam-row:nth-child(5) { transition-delay: 0.11s; }
.nav-ind.is-open a.fam-row:nth-child(6) { transition-delay: 0.14s; }
.nav-ind.is-open a.fam-row:nth-child(7) { transition-delay: 0.17s; }
.nav .ind-mega a.fam-row:hover, .nav .ind-mega a.fam-row:focus-visible { background: rgba(16,25,43,0.03); padding-left: 10px; }
.nav .ind-mega a.fam-row:focus-visible { outline: 2px solid var(--blueprint); outline-offset: -2px; }
.fam-num { grid-column: 1; grid-row: 1 / span 2; font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.08em; color: var(--gravel); }
.fam-row:hover .fam-num { color: var(--ink); }
.nav .ind-mega a.fam-row .fam-name { grid-column: 2; grid-row: 1; justify-self: start;
  font-family: var(--serif); font-size: 17px; color: var(--ink); line-height: 1.15; }
.nav .ind-mega a.fam-row .fam-sub { grid-column: 2; grid-row: 2; justify-self: start;
  font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--rust); margin-top: 3px; }
.fam-arr { grid-column: 3; grid-row: 1 / span 2; font-family: var(--mono); font-size: 14px; color: var(--ink);
  opacity: 0; transform: translateX(-4px); transition: opacity 0.26s ease, transform 0.32s cubic-bezier(.2,.7,.2,1); }
.fam-row:hover .fam-arr, .fam-row:focus-visible .fam-arr { opacity: 1; transform: translateX(0); }
@media (prefers-reduced-motion: reduce) {
  .fam-row, .fam-arr { transition: none !important; transform: none !important; opacity: 1 !important; }
}
