/* ============================================================
   CaucusConnect — Global Styles
   Shared rules used across all page templates.
   Edit here once; applies site-wide automatically.
   ============================================================ */

/* ── Mobile Nav — swap to circular mark, show site name at smaller size ── */
.nav-logo-mark { display: none; }
nav#navbar .nav-logo-title { text-decoration: none; }
@media (max-width: 640px) {
  nav#navbar .nav-inner { height: 64px; }
  nav#navbar .nav-logo-wide { display: none; }
  nav#navbar .nav-logo-mark { display: block; height: 36px; width: 36px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
  nav#navbar .nav-logo-title { font-size: 1.25rem; }
}

/* ── Nav spacing — pull logo right-margin in, add breathing room between items ── */
nav#navbar .nav-logo { margin-right: 24px !important; }
nav#navbar .nav-links { gap: 6px !important; }
nav#navbar .nav-links > li > a { padding: 8px 11px !important; font-size: 0.95rem !important; }
nav#navbar .nav-cta { padding: 10px 20px !important; margin-left: 6px !important; }

/* ── Caucus Login nav item ── */
.nav-login-link { display: inline-flex; align-items: center; gap: 6px; }
.nav-login-link i { font-size: 0.75rem; opacity: 0.8; }
.mobile-divider { border-top: 1px solid rgba(255,255,255,0.15); margin: 8px 0; }

/* Section headings — Playfair Display, balanced line breaks */
h2.section-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 700;
  color: var(--navy);
  line-height: 1.2;
  margin-bottom: 16px;
  text-wrap: balance;
}

/* Section subtitles and page header subtitles — wider width, balanced wrapping */
.section-sub,
.page-header p {
  max-width: 800px;
  text-wrap: balance;
}
