/* Shared EMOLiA branch system: type, navigation, footer and interactive states. */
:root {
  --emolia-header-height: 78px;
  --emolia-title: clamp(3rem, 4.6vw, 4.65rem);
  --emolia-section-title: clamp(2.25rem, 3.55vw, 3.85rem);
}

/* Brand roles */
html[data-universe] body { font-family: Inter, Arial, sans-serif; }
html[data-universe] h1,
html[data-universe] h2,
html[data-universe] h3,
html[data-universe] .button,
html[data-universe] .nav-cta,
html[data-universe] .header-cta,
html[data-universe] .desktop-nav a,
html[data-universe] .main-nav a,
html[data-universe] .nav a { font-family: Manrope, Arial, sans-serif; }

/* One calmer headline scale across the four branch landing pages. */
html[data-universe="leaders"] .hero-premium h1,
html[data-universe="schools"] .hero h1,
html[data-universe="corporate"] .hero h1,
html[data-universe="families"] .hero h1 { font-size: var(--emolia-title); line-height: 1.08; letter-spacing: -.052em; }
html[data-universe="leaders"] main h2,
html[data-universe="schools"] main h2,
html[data-universe="corporate"] main h2,
html[data-universe="families"] main h2 { font-size: var(--emolia-section-title); line-height: 1.12; }

/* Shared header rhythm and branch lock-up. */
html[data-universe] .site-header .header-inner,
html[data-universe="leaders"] .header-inner { min-height: var(--emolia-header-height); }
html[data-universe] .brand span,
html[data-universe="leaders"] .brand .brand-branch {
  font-family: Calibri, "Segoe UI", Arial, sans-serif;
  font-weight: 700;
  letter-spacing: .14em;
}
html[data-universe] .main-nav a,
html[data-universe] .nav a,
html[data-universe="leaders"] .desktop-nav a { font-size: 12px; }
html[data-universe] .header-cta,
html[data-universe] .nav-cta,
html[data-universe] .button { transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease; }
html[data-universe] .header-cta:hover,
html[data-universe] .nav-cta:hover,
html[data-universe] .button:hover { transform: translateY(-2px); }

/* Footer contract, including legal links injected by legal-links.js. */
html[data-universe] .footer,
.speaking-club-page footer {
  background: #0d2436;
  color: #f7f5f0;
}
html[data-universe] .footer p,
.speaking-club-page footer p { color: #c7d3da; }
html[data-universe] .legal-links {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
}
html[data-universe] .legal-links a,
.speaking-club-page .legal-links a { text-decoration: none; }

/* Speaking Club is part of Leaders but keeps its own conversion palette. */
.speaking-club-page { font-family: Inter, Arial, sans-serif; }
.speaking-club-page h1,
.speaking-club-page h2,
.speaking-club-page h3,
.speaking-club-page .button,
.speaking-club-page .topbar nav a,
.speaking-club-page .mobile-menu-toggle { font-family: Manrope, Arial, sans-serif; }
.speaking-club-page .hero h1 { font-size: var(--emolia-title); line-height: 1.08; letter-spacing: -.052em; }
.speaking-club-page h2 { font-size: var(--emolia-section-title); line-height: 1.12; }
.speaking-club-page .topbar { min-height: var(--emolia-header-height); height: var(--emolia-header-height); }
.speaking-club-page .brand-division { font-family: Calibri, "Segoe UI", Arial, sans-serif; font-weight: 700; }
.speaking-club-page .topbar nav { font-size: 12px; }
.speaking-club-page .topbar nav a,
.speaking-club-page footer a { min-height: 40px; display: inline-flex; align-items: center; }

.mobile-menu-toggle { display: none; border: 0; width: 42px; height: 42px; padding: 0; background: transparent; color: var(--ink); }
.mobile-menu-toggle span { display: block; width: 23px; height: 2px; margin: 5px auto; border-radius: 2px; background: currentColor; transition: transform .2s ease; }
.topbar.menu-open .mobile-menu-toggle span:first-child { transform: translateY(7px) rotate(45deg); }
.topbar.menu-open .mobile-menu-toggle span:nth-child(2) { opacity: 0; }
.topbar.menu-open .mobile-menu-toggle span:last-child { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 700px) {
  :root { --emolia-header-height: 70px; }
  html[data-universe] .site-header .header-inner,
  html[data-universe="leaders"] .header-inner { min-height: var(--emolia-header-height); }
  html[data-universe] .main-nav a,
  html[data-universe] .nav a,
  html[data-universe="leaders"] .desktop-nav a { font-size: 15px; }
  html[data-universe="leaders"] .hero-premium h1,
  html[data-universe="schools"] .hero h1,
  html[data-universe="corporate"] .hero h1,
  html[data-universe="families"] .hero h1,
  .speaking-club-page .hero h1 { font-size: clamp(2.85rem, 12vw, 3.55rem); }
  html[data-universe] main h2,
  .speaking-club-page h2 { font-size: clamp(2.25rem, 9vw, 3.25rem); }
  .speaking-club-page .topbar { height: var(--emolia-header-height); min-height: var(--emolia-header-height); }
  .speaking-club-page .mobile-menu-toggle { display: block; margin-left: auto; }
  .speaking-club-page .topbar > .gold-button { display: none; }
  .speaking-club-page .topbar nav {
    display: none;
    position: absolute;
    top: var(--emolia-header-height);
    left: 0;
    right: 0;
    padding: 16px 20px 20px;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    background: #fbf9f5;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 16px 30px #23112f18;
  }
  .speaking-club-page .topbar.menu-open nav { display: flex; }
  .speaking-club-page .topbar nav a { min-height: 48px; padding: 12px 2px; font-size: 16px; border-bottom: 1px solid var(--line); }
  .speaking-club-page .topbar nav a:last-child { border-bottom: 0; }
  .speaking-club-page footer { padding: 30px 22px; }
  .speaking-club-page footer > div,
  .speaking-club-page .legal-links { gap: 10px 14px; }
}
