/* ssj-serve — LSS-DESIGN-002 The B&W Specification
 * Section 01 81 19 (Typography and Layout) & Section 01 82 13 (Web Stack Architecture)
 * Curtis License — LeMay Inc.
 */

/* ── WOFF2 Font Declarations & Metric-Override Fallbacks ── */
@font-face {
  font-family: "Playfair Display";
  src: url("/static/fonts/playfair-display-v37-latin-700.woff2") format("woff2"),
       local("Playfair Display Bold"), local("PlayfairDisplay-Bold");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Playfair Display Fallback";
  src: local("Georgia");
  ascent-override: 95%;
  descent-override: 25%;
  line-gap-override: 0%;
  size-adjust: 100%;
}

@font-face {
  font-family: "Merriweather";
  src: url("/static/fonts/merriweather-v30-latin-regular.woff2") format("woff2"),
       local("Merriweather Regular"), local("Merriweather-Regular");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Merriweather";
  src: url("/static/fonts/merriweather-v30-latin-italic.woff2") format("woff2"),
       local("Merriweather Italic"), local("Merriweather-Italic");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Merriweather";
  src: url("/static/fonts/merriweather-v30-latin-700.woff2") format("woff2"),
       local("Merriweather Bold"), local("Merriweather-Bold");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Merriweather Fallback";
  src: local("Georgia");
  ascent-override: 98%;
  descent-override: 26%;
  line-gap-override: 0%;
  size-adjust: 99%;
}

@font-face {
  font-family: "Inter";
  src: url("/static/fonts/inter-v18-latin-500.woff2") format("woff2"),
       local("Inter Medium"), local("Inter-Medium");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("/static/fonts/inter-v18-latin-700.woff2") format("woff2"),
       local("Inter Bold"), local("Inter-Bold");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Inter Fallback";
  src: local("Arial");
  ascent-override: 90%;
  descent-override: 22%;
  line-gap-override: 0%;
  size-adjust: 100%;
}

/* ── Root Design Tokens (LSS-DESIGN-002) ── */
:root {
  /* Colors */
  --ink-paper: #FFFFFF;
  --ink-newsprint: #F4F4F5;
  --ink-press-plate: #595959;
  --press-plate-silver: #595959;
  --ink-charcoal: #363636;
  --editorial-charcoal: #363636;
  --ink-true-black: #050505;

  /* Typography */
  --font-masthead: 'Montserrat', 'Helvetica Neue', Arial, sans-serif !important;
  --font-display: "Playfair Display", "Playfair Display Fallback", Georgia, serif;
  --font-body: "Merriweather", "Merriweather Fallback", Georgia, serif;
  --font-utility: "Inter", "Inter Fallback", Arial, sans-serif;

  /* Type Scale */
  --size-display: 2.625rem; /* 42px, leading 1.2, weight 700 */
  --size-h2: 1.75rem;      /* 28px, leading 1.3, weight 700 */
  --size-h3: 1.375rem;     /* 22px, leading 1.4, weight 700 */
  --size-body: 1.125rem;   /* 18px, leading 1.6, weight 400 */
  --size-caption: 0.875rem; /* 14px, leading 1.5, weight 500 */

  /* Layout & Spacing */
  --measure: 42.5rem;       /* 680px */
  --space-paragraph: 2.4em;
  --tracking-caps: 0.06em;
}

html, body {
  margin: 0;
  padding: 0;
  background-color: var(--ink-paper);
  color: var(--ink-charcoal);
  font-family: var(--font-body);
  font-size: var(--size-body);
  line-height: 1.6;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}

a {
  color: var(--ink-charcoal);
  text-decoration: none;
  border-bottom: 1px solid var(--ink-press-plate);
  transition: border-color 0.15s ease;
}

a:hover {
  border-bottom-color: var(--ink-true-black);
}

/* ── Inert Link Pointer Events Rule ── */
.bw-nav-item {
  pointer-events: none !important;
  cursor: default !important;
}

.bw-nameplate a,
.bw-title-monolith a {
  pointer-events: auto !important;
  cursor: pointer !important;
  text-decoration: none !important;
  border-bottom: none !important;
}

/* ── 1. Full-Width Header Bar & Dynamic Accent Backgrounds ── */
.bw-header,
header {
  position: relative !important;
  z-index: 10 !important;
  background-color: #050505;
  color: #FFFFFF !important;
  width: 100%;
  padding: 0 !important;
  text-align: center;
  box-sizing: border-box;
}

.theme-accent .bw-header,
.theme-accent header,
.bw-header.theme-accent {
  background-color: var(--accent-primary) !important;
}

.bw-title-monolith {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 140px !important;
  padding: 2.5rem 1rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
  border-bottom: 3px solid #101820 !important;
  overflow: hidden !important;
  max-width: 100% !important;
}

.bw-header h1,
.bw-nameplate,
.bw-nameplate h1,
.bw-nameplate a,
.bw-masthead-title,
header h1,
.bw-h1 {
  font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  font-style: normal !important;
  font-variant-caps: normal !important;
  font-feature-settings: normal !important;
  line-height: 1.0 !important;
  color: #FFFFFF !important;
  width: 100% !important;
  text-align: center !important;
  display: block !important;
  font-size: clamp(1.15rem, 6.2vw, 5.8rem) !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding: 0 !important;
  overflow: visible !important;
  white-space: normal !important;
  text-wrap: balance !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  margin: 0 !important;
  text-decoration: none !important;
  border-bottom: none !important;
}

.bw-control-deck {
  background-color: #101820 !important;
  color: #FFFFFF !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: clamp(0.5rem, 2vw, 2rem) !important;
  padding: 0.6rem clamp(1rem, 3vw, 2.5rem) !important;
  width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  position: relative !important;
  z-index: 10 !important;
}

.bw-deck-meta,
.bw-deck-meta-left {
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  font-size: clamp(0.6rem, 1.1vw, 0.72rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: rgba(255, 255, 255, 0.85) !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

/* The left deck carries the date and, where a row names one, its companion
   journal beside it. A row naming no journal renders a single child and lays
   out exactly as it did before this rule existed. */
.bw-deck-meta-left {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.85em !important;
}

.bw-deck-sep {
  display: inline-block !important;
  width: 1px !important;
  height: 0.95em !important;
  background: rgba(255, 255, 255, 0.3) !important;
  flex-shrink: 0 !important;
}

.bw-deck-journal-link {
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  font-size: inherit !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: rgba(255, 255, 255, 0.85) !important;
  text-decoration: none !important;
  line-height: 1.0 !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  border-bottom: none !important;
  cursor: pointer !important;
  transition: all 0.2s ease-in-out !important;
}

.bw-deck-journal-link:hover,
.bw-deck-journal-link:focus {
  color: #FFFFFF !important;
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.4) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.8) !important;
  padding-bottom: 1px !important;
}

.bw-deck-journal-link.bw-inert {
  opacity: 0.55 !important;
  cursor: default !important;
  pointer-events: none !important;
}

/* A seat named with no destination: the ear still says where the paper sits and
   promises no page. It reads as a label, so it keeps the deck's colour but carries
   none of a link's affordances - no pointer, no hover underline, no glow. This
   also settles every other inert rail on the fleet, which until now inherited a
   link's cursor and hover while going nowhere. */
.bw-state-link.bw-inert {
  cursor: default !important;
  pointer-events: none !important;
  text-decoration: none !important;
  border-bottom: none !important;
}

.bw-state-link.bw-inert:hover,
.bw-state-link.bw-inert:focus {
  color: rgba(255, 255, 255, 0.85) !important;
  text-shadow: none !important;
  border-bottom: none !important;
  padding-bottom: 0 !important;
}

.bw-control-deck .bw-deck-meta-right,
.bw-deck-meta-right,
.bw-deck-meta-right a,
.bw-state-link {
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  font-size: clamp(0.6rem, 1.1vw, 0.72rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: rgba(255, 255, 255, 0.85) !important;
  text-decoration: none !important;
  line-height: 1.0 !important;
  display: inline-block !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  height: 100% !important;
  max-height: 100% !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  border-bottom: none !important;
  transition: all 0.2s ease-in-out !important;
}

.bw-deck-meta-right a:hover,
.bw-deck-meta-right a:focus,
.bw-state-link:hover,
.bw-state-link:focus {
  color: #FFFFFF !important;
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.4) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.8) !important;
  padding-bottom: 1px !important;
}

.bw-subtitle,
header .motto {
  display: none !important;
}

/* ── Hanging Notch Container ── */
.bw-notch-grounded,
.bw-header-notch {
  position: absolute !important;
  top: 100% !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  background: #101820 !important;
  border-radius: 0 0 12px 12px !important;
  padding: 0.35rem 1.2rem !important;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.28) !important;
  white-space: nowrap !important;
  z-index: 20 !important;
}

.bw-notch-content {
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: #FFFFFF !important;
  display: block !important;
  text-align: center !important;
}

/* ── Three-Column Ear Structure Navigation Bar Row ── */
.bw-nav-bar,
.bw-nav-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
  padding: 0.6rem 1.5rem !important;
  box-sizing: border-box !important;
}

.bw-nav-ear-left {
  text-align: left;
  font-family: var(--font-utility);
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: inherit !important;
  white-space: nowrap;
  opacity: 0.95;
  flex: 0 0 auto;
}

.bw-nav-ear-right {
  text-align: right;
  font-family: var(--font-utility);
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: inherit !important;
  white-space: nowrap;
  opacity: 0.85;
  flex: 0 0 auto;
}

.bw-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  background: transparent;
  padding: 0;
  border: none !important;
  margin: 0 auto;
  flex: 1;
}

/* ── Tightened Segmented Capsule Controls & Secondary Accents ── */
.bw-nav-capsule {
  display: inline-flex !important;
  align-items: center !important;
  background: rgba(0, 0, 0, 0.32) !important;
  backdrop-filter: blur(12px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(160%) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 9999px !important;
  padding: 3px 4px !important;
  gap: 2px !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(0, 0, 0, 0.12) !important;
  max-width: fit-content !important;
  flex-shrink: 1 !important;
  overflow-x: auto !important;
  scrollbar-width: none !important;
}

.bw-nav-capsule::-webkit-scrollbar {
  display: none !important;
}

@media (max-width: 1100px) {
  .bw-control-deck {
    gap: clamp(0.4rem, 1.5vw, 1.2rem) !important;
    padding: 0.5rem clamp(0.75rem, 2vw, 1.5rem) !important;
  }
  .bw-deck-meta,
  .bw-deck-meta-left,
  .bw-deck-meta-right,
  .bw-deck-meta-right a,
  .bw-state-link {
    font-size: clamp(0.55rem, 1vw, 0.68rem) !important;
    letter-spacing: 0.08em !important;
  }
  .bw-nav-capsule .bw-nav-item,
  .bw-nav-item {
    font-size: clamp(0.52rem, 0.85vw, 0.62rem) !important;
    padding: 0.25rem 0.5rem !important;
  }
}

.bw-nav-capsule .bw-nav-item,
.bw-nav-item {
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  font-size: 0.62rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  background-color: rgba(0, 0, 0, 0.32) !important;
  color: #FFFFFF !important;
  padding: 0.35rem 0.72rem !important;
  border-radius: 9999px !important;
  text-decoration: none !important;
  border: none !important;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1) !important;
  white-space: nowrap !important;
}

.bw-nav-item:hover {
  background: rgba(255, 255, 255, 0.25) !important;
  color: #FFFFFF !important;
}

.bw-nav-item.active {
  background-color: #FFFFFF !important;
  color: #101820 !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

/* Accent themes: white pill, accent-colored text, on the anchor itself. The markup
   wraps labels in no span, so this must target .bw-nav-item.active directly. */
.theme-accent .bw-nav-item.active,
.bw-header.theme-accent .bw-nav-item.active {
  background-color: #FFFFFF !important;
  color: var(--accent-primary, #101820) !important;
  font-weight: 700 !important;
}

/* For Light Header themes (e.g. Pittsburgh Yellow #FFB612) */
.theme-accent[style*="#FFB612"] .bw-nav-capsule {
  background: rgba(0, 0, 0, 0.35) !important;
  border: 1px solid rgba(0, 0, 0, 0.25) !important;
}

.theme-accent[style*="#FFB612"] .bw-nav-item {
  color: #FFFFFF !important;
}

.theme-accent[style*="#FFB612"] .bw-nav-item.active {
  background-color: #101820 !important;
  color: #FFB612 !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3) !important;
}

/* ── 2. Eliminate Vertical Navigation Rules ── */
.bw-nav-rule {
  display: none !important;
}

/* ── Main Reading Column Layout (Spatial Discipline) ── */
.bw-main-column,
main {
  max-width: 900px;
  margin-inline: auto;
  padding-inline: 1.5rem;
  padding-block: 1.25rem 1.75rem;
  box-sizing: border-box;
  text-align: left !important;
}

.bw-main-column p,
main p {
  text-align: left !important;
  text-indent: 0;
  margin-block-end: var(--space-paragraph);
  font-family: var(--font-body);
  font-size: var(--size-body);
  line-height: 1.6;
  font-weight: 400;
  color: var(--ink-charcoal) !important;
}

main a,
.bw-main-column a {
  color: var(--ink-charcoal) !important;
}

.bw-h2,
h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--size-h2);
  line-height: 1.3;
  color: var(--ink-true-black);
  margin-block: 1.5rem 0.75rem;
}

.bw-h3,
h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--size-h3);
  line-height: 1.4;
  color: var(--ink-true-black);
  margin-block: 1.25rem 0.5rem;
}

/* ── 9-Part Article Stack Primitives ── */
.bw-breadcrumbs {
  font-family: var(--font-utility);
  font-size: var(--size-caption);
  color: var(--ink-press-plate);
  margin-bottom: 0.5rem;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}

.bw-breadcrumb-item {
  color: var(--ink-press-plate);
  text-decoration: none;
  border-bottom: none;
}

.bw-dept-badge {
  font-family: var(--font-utility);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  background-color: var(--ink-true-black);
  color: var(--ink-paper);
  padding: 0.25rem 0.6rem;
  display: inline-block;
}

.bw-dek {
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-style: italic;
  line-height: 1.5;
  color: var(--ink-charcoal);
  margin-block-end: 1.5rem;
}

.bw-byline {
  font-family: var(--font-utility);
  font-size: var(--size-caption);
  font-weight: 500;
  color: var(--ink-press-plate);
  border-top: 1px solid var(--ink-newsprint);
  border-bottom: 1px solid var(--ink-newsprint);
  padding: 0.75rem 0;
  margin-block-end: 2rem;
}

.bw-lead-visual {
  margin: 0 0 2.4em 0;
  padding: 0;
}

.bw-lead-visual img {
  width: 100%;
  height: auto;
  display: block;
}

.bw-lead-visual figcaption {
  font-family: var(--font-utility);
  font-size: var(--size-caption);
  color: var(--ink-press-plate);
  margin-top: 0.5rem;
  text-align: left;
}

.bw-article-body {
  text-align: left !important;
  font-family: var(--font-body);
  font-size: var(--size-body);
  line-height: 1.6;
  color: var(--ink-charcoal);
}

.bw-mechanics-card {
  background-color: var(--ink-newsprint, #F4F4F5);
  border-left: 4px solid var(--ink-true-black);
  padding: 1.5rem;
  margin-block: 2.4em;
}

.bw-mechanics-title {
  font-family: var(--font-utility);
  font-size: var(--size-caption);
  font-weight: 700;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--ink-true-black);
  margin: 0 0 0.5rem;
}

.bw-faq-module {
  margin-block: 3rem 2rem;
  border-top: 1px solid var(--ink-press-plate);
  padding-top: 2rem;
}

.bw-faq-item {
  margin-bottom: 1.5rem;
}

.bw-faq-question {
  font-family: var(--font-display);
  font-size: var(--size-h3);
  font-weight: 700;
  color: var(--ink-true-black);
  margin: 0 0 0.5rem;
}

.bw-faq-answer {
  font-family: var(--font-body);
  font-size: var(--size-body);
  line-height: 1.6;
  color: var(--ink-charcoal);
  margin: 0;
}

/* ── Streamlined Newsprint Panel (Headline strictly, zero body text) ── */
.bw-newsprint-panel {
  border-radius: 20px !important;
  background-color: var(--ink-newsprint, #F4F4F5);
  padding: 1.75rem 2.5rem;
  max-width: 780px;
  margin: 4.25rem auto 1.5rem auto !important;
  text-align: center;
  border: none !important;
  box-sizing: border-box;
  overflow: hidden;
}

.bw-newsprint-panel h2,
.bw-newsprint-panel .bw-h2 {
  font-family: var(--font-display, "Playfair Display", Georgia, serif);
  font-size: clamp(1.15rem, 2.2vw, 1.65rem) !important;
  font-weight: 700 !important;
  color: #050505 !important;
  margin: 0 !important;
  line-height: 1.3 !important;
  text-align: center !important;
}

/* ── Enterprise 6-Column Mega-Footer ── */
.bw-mega-footer,
.bw-footer,
footer {
  background: #FFFFFF !important;
  color: #121212 !important;
  border-top: 2px solid #E2E2E2 !important;
  padding: 2.5rem 2rem 1.5rem !important;
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  box-sizing: border-box !important;
  margin-top: 2rem !important;
}

.bw-footer-nameplate {
  font-family: "Playfair Display", "Playfair Display Fallback", Georgia, serif !important;
  font-size: 1.2rem !important;
  font-variant: small-caps !important;
  font-feature-settings: "smcp" !important;
  font-weight: 700 !important;
  color: #121212 !important;
  margin-bottom: 0.5rem !important;
}

.bw-footer-grid {
  display: grid !important;
  grid-template-columns: repeat(6, 1fr) 1.2fr !important;
  gap: 1.8rem !important;
  margin-top: 1.5rem !important;
  border-bottom: 1px solid #E2E2E2 !important;
  padding-bottom: 2rem !important;
}

@media (max-width: 1024px) {
  .bw-footer-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

@media (max-width: 640px) {
  .bw-footer-grid {
    grid-template-columns: 1fr !important;
  }
}

.bw-footer-col {
  display: flex !important;
  flex-direction: column !important;
}

.bw-footer-col-title {
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  margin-bottom: 0.8rem !important;
  color: #121212 !important;
}

.bw-footer-item,
a.bw-footer-item {
  display: block !important;
  font-size: 0.72rem !important;
  color: var(--accent-anchor, #333333) !important;
  margin-bottom: 0.45rem !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
  border-bottom: none !important;
}

.bw-footer-col-account {
  border-left: 1px solid #E2E2E2 !important;
  padding-left: 1.5rem !important;
}

.bw-footer-account-action,
a.bw-footer-account-action {
  display: block !important;
  font-weight: 700 !important;
  font-size: 0.78rem !important;
  color: #121212 !important;
  margin-bottom: 0.65rem !important;
  text-decoration: none !important;
  border-bottom: none !important;
}

.bw-footer-account-divider {
  border-top: 1px solid #E2E2E2 !important;
  margin: 0.8rem 0 !important;
}

.bw-footer-bottom {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.85rem !important;
  font-size: 0.68rem !important;
  color: #666666 !important;
  margin-top: 1.2rem !important;
  justify-content: flex-start !important;
  border-top: none !important;
  padding-top: 0 !important;
}

.bw-footer-bottom a {
  color: var(--accent-anchor, inherit) !important;
  text-decoration: none !important;
  border-bottom: none !important;
}

/* ── Provincetown Rainbow Pride Theme ── */
.bw-theme-ptown-pride,
.bw-theme-ptown-pride .bw-header,
.bw-theme-ptown-pride header,
.bw-header.bw-theme-ptown-pride {
  background: linear-gradient(135deg, #E40303 0%, #FF8C00 20%, #FFED00 40%, #008026 60%, #24408E 80%, #732982 100%) !important;
  box-shadow: inset 0 -3px 0 #101820, 0 10px 30px rgba(0, 0, 0, 0.25) !important;
}

.bw-theme-ptown-pride .bw-nameplate h1,
.bw-theme-ptown-pride .bw-nav-ear-left,
.bw-theme-ptown-pride .bw-nav-ear-right,
.bw-theme-ptown-pride .bw-h1 {
  color: #FFFFFF !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4) !important;
}

.bw-theme-ptown-pride .bw-nav-capsule {
  background: rgba(16, 24, 32, 0.65) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
}

.bw-theme-ptown-pride .bw-nav-item.active {
  background-color: #FFFFFF !important;
  color: #101820 !important;
  font-weight: 700 !important;
}

.bw-theme-ptown-pride .bw-mega-footer,
.bw-theme-ptown-pride .bw-footer,
.bw-theme-ptown-pride footer {
  border-top: 4px solid !important;
  border-image: linear-gradient(to right, #E40303, #FF8C00, #FFED00, #008026, #24408E, #732982) 1 !important;
}

.bw-theme-ptown-pride .bw-dept-badge {
  background: linear-gradient(135deg, #E40303 0%, #FF8C00 20%, #FFED00 40%, #008026 60%, #24408E 80%, #732982 100%) !important;
  color: #FFFFFF !important;
}

/* ── Pittsburgh Times Ink Black Title Override ── */
body[data-property="pittsburgh"] .bw-nameplate h1,
body[data-property="pittsburgh"] .bw-nameplate a,
body[data-property="pittsburgh"] .bw-masthead-title,
.bw-theme-pittsburgh .bw-nameplate h1,
.bw-theme-pittsburgh .bw-nameplate a,
.bw-theme-pittsburgh .bw-masthead-title {
  color: #101820 !important;
  text-shadow: none !important;
}

/* ── Pittsburgh Times Yellow Menu & High-Contrast True Ink Black Controls ── */
body[data-property="pittsburgh"] .bw-sliding-menu,
body[data-property="pittsburgh"] .bw-nav-drawer,
body[data-property="pittsburgh"] .bw-nav-capsule,
.bw-theme-pittsburgh .bw-sliding-menu,
.bw-theme-pittsburgh .bw-nav-drawer,
.bw-theme-pittsburgh .bw-nav-capsule {
  background-color: #FFC72C !important;
  color: #101820 !important;
}

body[data-property="pittsburgh"] .bw-sliding-menu a,
body[data-property="pittsburgh"] .bw-sliding-menu button,
body[data-property="pittsburgh"] .bw-sliding-menu .bw-menu-link,
body[data-property="pittsburgh"] .bw-sliding-menu .bw-menu-item,
body[data-property="pittsburgh"] .bw-sliding-menu .bw-menu-close,
body[data-property="pittsburgh"] .bw-sliding-menu .bw-close-btn,
body[data-property="pittsburgh"] .bw-nav-drawer a,
body[data-property="pittsburgh"] .bw-nav-drawer button,
body[data-property="pittsburgh"] .bw-nav-drawer .bw-menu-link,
body[data-property="pittsburgh"] .bw-nav-drawer .bw-menu-item,
body[data-property="pittsburgh"] .bw-nav-drawer .bw-menu-close,
body[data-property="pittsburgh"] .bw-nav-drawer .bw-close-btn,
body[data-property="pittsburgh"] .bw-nav-capsule a,
body[data-property="pittsburgh"] .bw-nav-capsule button,
body[data-property="pittsburgh"] .bw-nav-capsule .bw-nav-item,
body[data-property="pittsburgh"] .bw-nav-item,
.bw-theme-pittsburgh .bw-sliding-menu a,
.bw-theme-pittsburgh .bw-sliding-menu button,
.bw-theme-pittsburgh .bw-sliding-menu .bw-menu-link,
.bw-theme-pittsburgh .bw-sliding-menu .bw-menu-item,
.bw-theme-pittsburgh .bw-sliding-menu .bw-menu-close,
.bw-theme-pittsburgh .bw-sliding-menu .bw-close-btn,
.bw-theme-pittsburgh .bw-nav-drawer a,
.bw-theme-pittsburgh .bw-nav-drawer button,
.bw-theme-pittsburgh .bw-nav-drawer .bw-menu-link,
.bw-theme-pittsburgh .bw-nav-drawer .bw-menu-item,
.bw-theme-pittsburgh .bw-nav-drawer .bw-menu-close,
.bw-theme-pittsburgh .bw-nav-drawer .bw-close-btn,
.bw-theme-pittsburgh .bw-nav-capsule a,
.bw-theme-pittsburgh .bw-nav-capsule button,
.bw-theme-pittsburgh .bw-nav-capsule .bw-nav-item,
.bw-theme-pittsburgh .bw-nav-item {
  color: #101820 !important;
}

body[data-property="pittsburgh"] .bw-nav-item.active,
body[data-property="pittsburgh"] .bw-theme-pittsburgh .bw-nav-item.active,
.bw-theme-pittsburgh .bw-nav-item.active {
  background-color: #101820 !important;
  color: #FFC72C !important;
  font-weight: 700 !important;
}

/* ── St. Louis Times Red Menu & High-Contrast Paper White Controls ── */
body[data-property="stlouis"] .bw-sliding-menu,
body[data-property="stlouis"] .bw-nav-drawer,
body[data-property="stlouis"] .bw-nav-capsule,
.bw-theme-stlouis .bw-sliding-menu,
.bw-theme-stlouis .bw-nav-drawer,
.bw-theme-stlouis .bw-nav-capsule {
  background-color: #C8102E !important;
  color: #FFFFFF !important;
}

body[data-property="stlouis"] .bw-sliding-menu a,
body[data-property="stlouis"] .bw-sliding-menu button,
body[data-property="stlouis"] .bw-sliding-menu span,
body[data-property="stlouis"] .bw-sliding-menu .bw-menu-link,
body[data-property="stlouis"] .bw-sliding-menu .bw-menu-item,
body[data-property="stlouis"] .bw-sliding-menu .bw-menu-close,
body[data-property="stlouis"] .bw-sliding-menu .bw-close-btn,
body[data-property="stlouis"] .bw-nav-drawer a,
body[data-property="stlouis"] .bw-nav-drawer button,
body[data-property="stlouis"] .bw-nav-drawer span,
body[data-property="stlouis"] .bw-nav-drawer .bw-menu-link,
body[data-property="stlouis"] .bw-nav-drawer .bw-menu-item,
body[data-property="stlouis"] .bw-nav-drawer .bw-menu-close,
body[data-property="stlouis"] .bw-nav-drawer .bw-close-btn,
body[data-property="stlouis"] .bw-nav-capsule a,
body[data-property="stlouis"] .bw-nav-capsule button,
body[data-property="stlouis"] .bw-nav-capsule span,
body[data-property="stlouis"] .bw-nav-capsule .bw-nav-item,
body[data-property="stlouis"] .bw-nav-item,
.bw-theme-stlouis .bw-sliding-menu a,
.bw-theme-stlouis .bw-sliding-menu button,
.bw-theme-stlouis .bw-sliding-menu span,
.bw-theme-stlouis .bw-sliding-menu .bw-menu-link,
.bw-theme-stlouis .bw-sliding-menu .bw-menu-item,
.bw-theme-stlouis .bw-sliding-menu .bw-menu-close,
.bw-theme-stlouis .bw-sliding-menu .bw-close-btn,
.bw-theme-stlouis .bw-nav-drawer a,
.bw-theme-stlouis .bw-nav-drawer button,
.bw-theme-stlouis .bw-nav-drawer span,
.bw-theme-stlouis .bw-nav-drawer .bw-menu-link,
.bw-theme-stlouis .bw-nav-drawer .bw-menu-item,
.bw-theme-stlouis .bw-nav-drawer .bw-menu-close,
.bw-theme-stlouis .bw-nav-drawer .bw-close-btn,
.bw-theme-stlouis .bw-nav-capsule a,
.bw-theme-stlouis .bw-nav-capsule button,
.bw-theme-stlouis .bw-nav-capsule span,
.bw-theme-stlouis .bw-nav-capsule .bw-nav-item,
.bw-theme-stlouis .bw-nav-item {
  color: #FFFFFF !important;
}

body[data-property="stlouis"] .bw-nav-item.active,
body[data-property="stlouis"] .bw-theme-stlouis .bw-nav-item.active,
.bw-theme-stlouis .bw-nav-item.active {
  background-color: #FFFFFF !important;
  color: #C8102E !important;
  font-weight: 700 !important;
}

/* ── Portland Times Red Menu & High-Contrast Paper White Controls ── */
body[data-property="portland"] .bw-sliding-menu,
body[data-property="portland"] .bw-nav-drawer,
body[data-property="portland"] .bw-nav-capsule,
.bw-theme-portland .bw-sliding-menu,
.bw-theme-portland .bw-nav-drawer,
.bw-theme-portland .bw-nav-capsule {
  background-color: #D0021B !important;
  color: #FFFFFF !important;
}

body[data-property="portland"] .bw-sliding-menu a,
body[data-property="portland"] .bw-sliding-menu button,
body[data-property="portland"] .bw-sliding-menu span,
body[data-property="portland"] .bw-sliding-menu .bw-menu-link,
body[data-property="portland"] .bw-sliding-menu .bw-menu-item,
body[data-property="portland"] .bw-sliding-menu .bw-menu-close,
body[data-property="portland"] .bw-sliding-menu .bw-close-btn,
body[data-property="portland"] .bw-nav-drawer a,
body[data-property="portland"] .bw-nav-drawer button,
body[data-property="portland"] .bw-nav-drawer span,
body[data-property="portland"] .bw-nav-drawer .bw-menu-link,
body[data-property="portland"] .bw-nav-drawer .bw-menu-item,
body[data-property="portland"] .bw-nav-drawer .bw-menu-close,
body[data-property="portland"] .bw-nav-drawer .bw-close-btn,
body[data-property="portland"] .bw-nav-capsule a,
body[data-property="portland"] .bw-nav-capsule button,
body[data-property="portland"] .bw-nav-capsule span,
body[data-property="portland"] .bw-nav-capsule .bw-nav-item,
body[data-property="portland"] .bw-nav-item,
.bw-theme-portland .bw-sliding-menu a,
.bw-theme-portland .bw-sliding-menu button,
.bw-theme-portland .bw-sliding-menu span,
.bw-theme-portland .bw-sliding-menu .bw-menu-link,
.bw-theme-portland .bw-sliding-menu .bw-menu-item,
.bw-theme-portland .bw-sliding-menu .bw-menu-close,
.bw-theme-portland .bw-sliding-menu .bw-close-btn,
.bw-theme-portland .bw-nav-drawer a,
.bw-theme-portland .bw-nav-drawer button,
.bw-theme-portland .bw-nav-drawer span,
.bw-theme-portland .bw-nav-drawer .bw-menu-link,
.bw-theme-portland .bw-nav-drawer .bw-menu-item,
.bw-theme-portland .bw-nav-drawer .bw-menu-close,
.bw-theme-portland .bw-nav-drawer .bw-close-btn,
.bw-theme-portland .bw-nav-capsule a,
.bw-theme-portland .bw-nav-capsule button,
.bw-theme-portland .bw-nav-capsule span,
.bw-theme-portland .bw-nav-capsule .bw-nav-item,
.bw-theme-portland .bw-nav-item {
  color: #FFFFFF !important;
}

body[data-property="portland"] .bw-nav-item.active,
body[data-property="portland"] .bw-theme-portland .bw-nav-item.active,
.bw-theme-portland .bw-nav-item.active {
  background-color: #FFFFFF !important;
  color: #D0021B !important;
  font-weight: 700 !important;
}

/* ── Atlanta Times Matching Blue Menu & Paper White Controls ── */
body[data-property="atlanta"] .bw-sliding-menu,
body[data-property="atlanta"] .bw-nav-drawer,
body[data-property="atlanta"] .bw-nav-capsule,
.bw-theme-atlanta .bw-sliding-menu,
.bw-theme-atlanta .bw-nav-drawer,
.bw-theme-atlanta .bw-nav-capsule {
  background-color: #002B49 !important;
  color: #FFFFFF !important;
}

body[data-property="atlanta"] .bw-sliding-menu a,
body[data-property="atlanta"] .bw-sliding-menu button,
body[data-property="atlanta"] .bw-sliding-menu span,
body[data-property="atlanta"] .bw-sliding-menu .bw-menu-link,
body[data-property="atlanta"] .bw-sliding-menu .bw-menu-item,
body[data-property="atlanta"] .bw-sliding-menu .bw-menu-close,
body[data-property="atlanta"] .bw-sliding-menu .bw-close-btn,
body[data-property="atlanta"] .bw-nav-drawer a,
body[data-property="atlanta"] .bw-nav-drawer button,
body[data-property="atlanta"] .bw-nav-drawer span,
body[data-property="atlanta"] .bw-nav-drawer .bw-menu-link,
body[data-property="atlanta"] .bw-nav-drawer .bw-menu-item,
body[data-property="atlanta"] .bw-nav-drawer .bw-menu-close,
body[data-property="atlanta"] .bw-nav-drawer .bw-close-btn,
body[data-property="atlanta"] .bw-nav-capsule a,
body[data-property="atlanta"] .bw-nav-capsule button,
body[data-property="atlanta"] .bw-nav-capsule span,
body[data-property="atlanta"] .bw-nav-capsule .bw-nav-item,
body[data-property="atlanta"] .bw-nav-item,
.bw-theme-atlanta .bw-sliding-menu a,
.bw-theme-atlanta .bw-sliding-menu button,
.bw-theme-atlanta .bw-sliding-menu span,
.bw-theme-atlanta .bw-sliding-menu .bw-menu-link,
.bw-theme-atlanta .bw-sliding-menu .bw-menu-item,
.bw-theme-atlanta .bw-sliding-menu .bw-menu-close,
.bw-theme-atlanta .bw-sliding-menu .bw-close-btn,
.bw-theme-atlanta .bw-nav-drawer a,
.bw-theme-atlanta .bw-nav-drawer button,
.bw-theme-atlanta .bw-nav-drawer span,
.bw-theme-atlanta .bw-nav-drawer .bw-menu-link,
.bw-theme-atlanta .bw-nav-drawer .bw-menu-item,
.bw-theme-atlanta .bw-nav-drawer .bw-menu-close,
.bw-theme-atlanta .bw-nav-drawer .bw-close-btn,
.bw-theme-atlanta .bw-nav-capsule a,
.bw-theme-atlanta .bw-nav-capsule button,
.bw-theme-atlanta .bw-nav-capsule span,
.bw-theme-atlanta .bw-nav-capsule .bw-nav-item,
.bw-theme-atlanta .bw-nav-item {
  color: #FFFFFF !important;
}

body[data-property="atlanta"] .bw-nav-item.active,
body[data-property="atlanta"] .bw-theme-atlanta .bw-nav-item.active,
.bw-theme-atlanta .bw-nav-item.active {
  background-color: #FFFFFF !important;
  color: #002B49 !important;
  font-weight: 700 !important;
}

/* ── Member badge: one centered affiliation seal, flanking rules, ink only ── */
.bw-member-badge {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.85rem !important;
  margin: 0.9rem auto 0 !important;
  max-width: 34rem !important;
  padding: 0 1rem !important;
  text-align: center !important;
}

.bw-member-rule {
  flex: 1 1 auto !important;
  height: 1px !important;
  background: currentColor !important;
  opacity: 0.28 !important;
  max-width: 5.5rem !important;
}

.bw-member-text {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif !important;
  font-style: italic !important;
  font-weight: 400 !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.01em !important;
  line-height: 1.5 !important;
  white-space: nowrap !important;
  opacity: 0.92 !important;
}

/* The society link carries no underline in ANY state; it stays identifiable by
   weight and the ink colour already in use. */
.bw-member-text a,
.bw-member-text a:link,
.bw-member-text a:visited,
.bw-member-text a:hover,
.bw-member-text a:focus,
.bw-member-text a:active {
  color: inherit !important;
  font-style: italic !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  text-decoration-line: none !important;
  border-bottom: none !important;
  padding-bottom: 0 !important;
}

@media (max-width: 640px) {
  .bw-member-text {
    white-space: normal !important;
    font-size: 0.84rem !important;
  }
  .bw-member-rule { max-width: 2rem !important; }
}

/* ══════════════════════════════════════════════════════════════════════════════
   LSS-NAV-001 SECTION 42 05 16: NAVIGATION CHROME ARCHITECTURE
   ══════════════════════════════════════════════════════════════════════════════ */

/* Accessibility Skip Link */
.skip-link {
  position: absolute;
  top: -100px;
  left: 1rem;
  background: var(--ink-true-black, #050505);
  color: var(--ink-paper, #FFFFFF);
  padding: 0.5rem 1.25rem;
  z-index: 100000;
  font-family: var(--font-utility, 'Inter', sans-serif);
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  border-radius: 0 0 4px 4px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  transition: top 0.15s ease;
  pointer-events: auto !important;
  cursor: pointer !important;
}

.skip-link:focus {
  top: 0;
}

/* Estate Ribbon (WCAG 2.5.5 Level AAA 44px Touch Targets) */
.estate-ribbon {
  height: 44px;
  min-height: 44px;
  background: #101820;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem;
  font-family: var(--font-utility, 'Inter', sans-serif);
  font-size: 0.8125rem;
  border-bottom: 1px solid #233352;
  box-sizing: border-box;
  position: relative;
  z-index: 2000;
}

.estate-ribbon .ribbon-left {
  display: flex;
  gap: 1.25rem;
  align-items: center;
}

.estate-ribbon .ribbon-brand {
  color: #FFFFFF !important;
  text-decoration: none !important;
  font-weight: 700;
  min-height: 44px;
  display: flex;
  align-items: center;
  pointer-events: auto !important;
  cursor: pointer !important;
}

.estate-ribbon .ribbon-link {
  color: #AAAAAA !important;
  text-decoration: none !important;
  min-height: 44px;
  display: flex;
  align-items: center;
  pointer-events: auto !important;
  cursor: pointer !important;
  transition: color 0.15s ease;
}

.estate-ribbon .ribbon-link:hover,
.estate-ribbon .ribbon-link:focus {
  color: #FFFFFF !important;
}

.estate-ribbon button#ribbon-switcher-toggle {
  min-height: 44px;
  height: 44px;
  min-width: 44px;
  background: transparent;
  border: 1px solid #334155;
  color: #CBD5E1;
  border-radius: 4px;
  padding: 0 0.75rem;
  font-family: var(--font-utility, 'Inter', sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer !important;
  pointer-events: auto !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
}

.estate-ribbon button#ribbon-switcher-toggle:hover,
.estate-ribbon button#ribbon-switcher-toggle:focus {
  background: #1E293B;
  color: #FFFFFF;
  border-color: #64748B;
}

/* Press Layout Container */
.press-layout-container {
  display: flex;
  max-width: 80rem; /* 1280px */
  margin: 0 auto;
  min-height: calc(100vh - 280px);
  position: relative;
  box-sizing: border-box;
}

/* Desktop Navigation Rail (>= 1024px) */
@media (min-width: 1024px) {
  .desktop-nav-rail {
    width: 250px;
    min-width: 250px;
    flex-shrink: 0;
    border-right: 1px solid #E3E3E6;
    background: var(--ink-paper, #FFFFFF);
    position: relative;
    box-sizing: border-box;
    padding: 1.5rem 0;
  }

  .press-main-content {
    flex: 1 1 auto;
    min-width: 0;
    padding: 2.5rem 2.5rem;
    max-width: 54rem;
    box-sizing: border-box;
  }
}

@media (max-width: 1023px) {
  .desktop-nav-rail {
    display: none !important;
  }
  .press-main-content {
    width: 100%;
    padding: 1.5rem 1.25rem;
    box-sizing: border-box;
  }
}

/* Rail Navigation List */
.rail-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.rail-item {
  position: relative;
  width: 100%;
}

.rail-link {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 44px !important;
  height: 44px !important;
  padding: 0 1.25rem !important;
  color: var(--ink-true-black, #050505) !important;
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  border-bottom: none !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  transition: background-color 0.12s ease, color 0.12s ease;
}

.rail-link:hover,
.rail-link:focus,
.rail-item:focus-within > .rail-link,
.rail-item.is-open > .rail-link {
  background-color: var(--ink-newsprint, #F4F4F5) !important;
  color: var(--ink-true-black, #050505) !important;
}

.rail-link[aria-current="page"],
.rail-link.is-active {
  background-color: var(--ink-newsprint, #F4F4F5) !important;
  font-weight: 700 !important;
  border-left: 3px solid var(--ink-true-black, #050505) !important;
  padding-left: calc(1.25rem - 3px) !important;
}

.rail-icon {
  color: var(--ink-press-plate, #595959);
  transition: transform 0.15s ease, color 0.15s ease;
  flex-shrink: 0;
}

.rail-item:hover .rail-icon,
.rail-item:focus-within .rail-icon,
.rail-item.is-open .rail-icon {
  color: var(--ink-true-black, #050505);
  transform: translateX(2px);
}

.rail-divider-item {
  padding: 0.5rem 1rem;
  list-style: none;
}

.rail-divider {
  border: none;
  border-top: 1px solid #E3E3E6;
  margin: 0;
}

.rail-fixture-link {
  font-weight: 600 !important;
}

/* 600px Mega-Menu Overlay */
.megamenu-overlay {
  display: none;
  position: absolute;
  top: 0;
  left: 250px;
  width: 600px;
  min-height: 280px;
  background: var(--ink-paper, #FFFFFF);
  border: 1px solid #E3E3E6;
  border-left: none;
  box-shadow: 6px 8px 24px rgba(0, 0, 0, 0.08);
  z-index: 1000;
  box-sizing: border-box;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-4px);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

@media (min-width: 1024px) {
  .rail-item:hover > .megamenu-overlay,
  .rail-item:focus-within > .megamenu-overlay,
  .rail-item.is-open > .megamenu-overlay {
    display: block !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateX(0) !important;
  }
}

.megamenu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.5rem;
  background: var(--ink-newsprint, #F4F4F5);
  border-bottom: 1px solid #E3E3E6;
}

.megamenu-title {
  font-family: var(--font-masthead, 'Montserrat', sans-serif);
  font-weight: 800;
  font-size: 0.9375rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-true-black, #050505);
}

.megamenu-count {
  font-family: var(--font-utility, 'Inter', sans-serif);
  font-size: 0.75rem;
  color: var(--ink-press-plate, #595959);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.megamenu-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.25rem 1rem;
  padding: 1.25rem 1.5rem;
  max-height: 480px;
  overflow-y: auto;
}

.megamenu-desk-link {
  display: flex !important;
  align-items: center !important;
  min-height: 44px !important;
  height: 44px !important;
  padding: 0 0.75rem !important;
  color: var(--ink-charcoal, #363636) !important;
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  border-bottom: none !important;
  border-radius: 4px;
  box-sizing: border-box !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  transition: background-color 0.12s ease, color 0.12s ease;
}

.megamenu-desk-link:hover,
.megamenu-desk-link:focus {
  background-color: var(--ink-newsprint, #F4F4F5) !important;
  color: var(--ink-true-black, #050505) !important;
}

.megamenu-desk-link[aria-current="page"],
.megamenu-desk-link.is-active {
  background-color: var(--ink-newsprint, #F4F4F5) !important;
  color: var(--ink-true-black, #050505) !important;
  font-weight: 700 !important;
}

/* ── Mobile Scrolling Department Strip (< 1024px) ── */
.mobile-dept-strip {
  display: flex;
  align-items: center;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  background: var(--ink-newsprint, #F4F4F5);
  border-bottom: 1px solid #E3E3E6;
  padding: 0 0.5rem;
  box-sizing: border-box;
  width: 100%;
}

.mobile-dept-strip::-webkit-scrollbar {
  display: none;
}

@media (min-width: 1024px) {
  .mobile-dept-strip {
    display: none !important;
  }
}

.mobile-dept-strip-item {
  flex: 0 0 auto;
  scroll-snap-align: start;
  display: flex !important;
  align-items: center !important;
  min-height: 44px !important;
  height: 44px !important;
  padding: 0 1rem !important;
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: var(--ink-charcoal, #363636) !important;
  text-decoration: none !important;
  border-bottom: none !important;
  white-space: nowrap !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  transition: color 0.12s ease, border-bottom 0.12s ease;
}

.mobile-dept-strip-item:hover,
.mobile-dept-strip-item:focus {
  color: var(--ink-true-black, #050505) !important;
}

.mobile-dept-strip-item[aria-current="page"],
.mobile-dept-strip-item.is-active {
  color: var(--ink-true-black, #050505) !important;
  border-bottom: 2px solid var(--ink-true-black, #050505) !important;
  font-weight: 700 !important;
}

/* Mobile Drawer Menu Trigger Button */
.mobile-drawer-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  background: transparent;
  border: 1px solid #334155;
  border-radius: 4px;
  color: #FFFFFF;
  font-family: var(--font-utility, 'Inter', sans-serif);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer !important;
  pointer-events: auto !important;
  padding: 0.25rem 0.5rem;
}

@media (min-width: 1024px) {
  .mobile-drawer-toggle {
    display: none !important;
  }
}

/* Off-Canvas Drawer (< 1024px) */
.mobile-nav-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(340px, 85vw);
  height: 100vh;
  background: var(--ink-paper, #FFFFFF);
  z-index: 10000;
  transform: translateX(-100%);
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.18);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.mobile-nav-drawer.is-open,
.mobile-nav-drawer:target {
  transform: translateX(0) !important;
}

.mobile-drawer-backdrop {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 9999;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}

.mobile-nav-drawer.is-open ~ .mobile-drawer-backdrop,
.mobile-nav-drawer:target ~ .mobile-drawer-backdrop {
  display: block !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

.drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  background: var(--ink-true-black, #050505);
  color: #FFFFFF;
}

.drawer-header-title {
  font-family: var(--font-masthead, 'Montserrat', sans-serif);
  font-weight: 800;
  font-size: 0.9375rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #FFFFFF;
}

.drawer-close-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  min-width: 44px !important;
  color: #FFFFFF !important;
  font-size: 1.5rem !important;
  text-decoration: none !important;
  border-bottom: none !important;
  background: none;
  border: none;
  cursor: pointer !important;
  pointer-events: auto !important;
}

.drawer-content {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 0.5rem 0;
}

.drawer-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.drawer-accordion {
  width: 100%;
}

.drawer-summary {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 44px !important;
  height: 44px !important;
  padding: 0 1.25rem !important;
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  color: var(--ink-true-black, #050505) !important;
  cursor: pointer !important;
  user-select: none;
  list-style: none;
  box-sizing: border-box !important;
}

.drawer-summary::-webkit-details-marker {
  display: none;
}

.drawer-summary:hover,
.drawer-summary:focus {
  background-color: var(--ink-newsprint, #F4F4F5);
}

.drawer-accordion-arrow {
  color: var(--ink-press-plate, #595959);
  transition: transform 0.2s ease;
}

.drawer-accordion[open] .drawer-accordion-arrow {
  transform: rotate(180deg);
}

.drawer-desks-list {
  background: var(--ink-newsprint, #F4F4F5);
  padding: 0.25rem 0;
}

.drawer-desk-link {
  display: flex !important;
  align-items: center !important;
  min-height: 44px !important;
  height: 44px !important;
  padding: 0 1.5rem 0 2rem !important;
  color: var(--ink-charcoal, #363636) !important;
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  border-bottom: none !important;
  box-sizing: border-box !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

.drawer-desk-link:hover,
.drawer-desk-link:focus {
  color: var(--ink-true-black, #050505) !important;
  background: rgba(0, 0, 0, 0.04);
}

.drawer-desk-link[aria-current="page"],
.drawer-desk-link.is-active {
  font-weight: 700 !important;
  color: var(--ink-true-black, #050505) !important;
  border-left: 3px solid var(--ink-true-black, #050505) !important;
  padding-left: calc(2rem - 3px) !important;
}

.drawer-divider-item {
  padding: 0.5rem 1rem;
  list-style: none;
}

.drawer-divider {
  border: none;
  border-top: 1px solid #E3E3E6;
  margin: 0;
}

.drawer-fixture-link {
  display: flex !important;
  align-items: center !important;
  min-height: 44px !important;
  height: 44px !important;
  padding: 0 1.25rem !important;
  font-family: var(--font-utility, 'Inter', sans-serif) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  color: var(--ink-true-black, #050505) !important;
  text-decoration: none !important;
  border-bottom: none !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

.drawer-fixture-link:hover,
.drawer-fixture-link:focus {
  background: var(--ink-newsprint, #F4F4F5);
}

.drawer-fixture-link[aria-current="page"],
.drawer-fixture-link.is-active {
  background: var(--ink-newsprint, #F4F4F5);
  font-weight: 700;
  border-left: 3px solid var(--ink-true-black, #050505);
  padding-left: calc(1.25rem - 3px);
}

.drawer-footer {
  border-top: 1px solid #E3E3E6;
  background: #101820;
  color: #FFFFFF;
  padding: 1rem 1.25rem;
  box-sizing: border-box;
}

.drawer-footer-title {
  font-family: var(--font-utility, 'Inter', sans-serif);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #888888;
  margin-bottom: 0.5rem;
}

.drawer-ribbon-links {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.drawer-ribbon-link {
  color: #CBD5E1 !important;
  text-decoration: none !important;
  min-height: 36px;
  display: flex;
  align-items: center;
  font-family: var(--font-utility, 'Inter', sans-serif);
  font-size: 0.8125rem;
  pointer-events: auto !important;
  cursor: pointer !important;
}

.drawer-ribbon-link:hover,
.drawer-ribbon-link:focus {
  color: #FFFFFF !important;
}

/* A masthead whose title is ruled to break renders one block span per line, so the
   break falls between the place and the publication instead of wherever the
   viewport runs out. Single-line mastheads emit bare text and never reach this. */
.bw-nameplate h1 .bw-nameplate-line {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}

/* THE NATIONAL JOURNALS FIT THEIR MEASURE.
   The Chief's order was to fit each national journal on one line. Removing the
   ruled two-line break was necessary but NOT sufficient: at the fleet size of
   clamp(1.15rem, 6.2vw, 5.8rem), "US ENVIRONMENTAL JOURNAL" is simply wider than
   the monolith and wraps on its own at every viewport a reader actually has -
   measured wrapping at 1374px, and the fluid size makes the ratio hold at all
   widths. Four of the eight wrapped; four did not.

   So the wordmark is scaled to its own length. 100cqi is the monolith's inner
   width, and 0.84em is the measured average advance per character for Montserrat
   800 uppercase at letter-spacing 0.12em, with margin. min() caps it at the fleet
   size, so a SHORT national name (US LAW JOURNAL) is untouched and only the long
   ones come down. Measured one-line across container widths 285-1885px and under
   the Arial fallback, where Montserrat has not loaded.

   Deliberately NOT white-space: nowrap. If the estimate ever misses, the name
   wraps exactly as it does today rather than being clipped by the monolith's
   overflow: hidden. The failure mode is the status quo, not a truncated masthead.

   Scoped to .bw-national-journal, which only the eight sector apexes carry, so no
   other masthead in the fleet moves. Specificity (0,2,1) beats the (0,1,1) fleet
   rule outright, so this does not depend on source order the way the ear does. */
.bw-national-journal .bw-title-monolith {
  container-type: inline-size !important;
}
.bw-national-journal .bw-nameplate h1 {
  font-size: min(clamp(1.15rem, 6.2vw, 5.8rem), calc(100cqi / (var(--np-ch, 20) * 0.84))) !important;
}

/* The right ear carries a list now. Unlike the left deck its container was never
   a flex box, so `gap` did nothing and the hairline separators sat flush against
   the labels - ARLINGTONSAN ANTONIODALLASHOUSTON with no space at all. It gets
   the deck's treatment so both surfaces space identically; a one-item ear is
   unaffected.

   This block MUST stay last. It ties on specificity with the earlier
   ".bw-control-deck .bw-deck-meta-right, .bw-deck-meta-right, ..." group that
   sets display: inline-block, and a tie is won by whichever rule comes later.
   Placed before that group, `gap` applied and `display` did not, which is
   exactly what the browser reported: gap 9.18px, zero space between labels. */
.bw-control-deck .bw-deck-meta-right {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.85em !important;
}
