/* P2: EMOLiA harmonisation. Brand colours stay unique; components share one visual rhythm.
   Scoped selectors preserve existing layouts, integrations and payment buttons. */
:root {
  --emolia-brand-navy:#101A3A;
  --emolia-brand-leaders:#6D3CC7;
  --emolia-brand-corporate:#102A43;
  --emolia-brand-schools:#114D38;
  --emolia-brand-families:#FFB74D;
  --emolia-font-head:Manrope,Arial,sans-serif;
  --emolia-font-body:Inter,Arial,sans-serif;
  --emolia-radius-pill:999px;
  --emolia-radius-field:12px;
  --emolia-control-size:48px;
}
html[data-universe="home"] {--emolia-branch-accent:var(--emolia-brand-navy)}
html[data-universe="leaders"] {--emolia-branch-accent:var(--emolia-brand-leaders)}
html[data-universe="corporate"] {--emolia-branch-accent:var(--emolia-brand-corporate)}
html[data-universe="schools"] {--emolia-branch-accent:var(--emolia-brand-schools)}
html[data-universe="families"] {--emolia-branch-accent:var(--emolia-brand-families)}

/* One official logo file and consistent branch descriptors throughout the ecosystem. */
html[data-universe] :is(.site-header,.header,.topbar) .brand img,
html[data-universe="leaders"] .speaking-club-page footer .emolia-official-logo {
  display:block;
  width:132px;
  max-width:100%;
  height:auto;
  object-fit:contain;
  flex-shrink:0;
}
html[data-universe="leaders"] .speaking-club-page .topbar .emolia-official-logo {
  display:block;
  width:132px;
  height:auto;
  flex:0 0 auto;
}
html[data-universe] :is(.brand-branch,.brand-division) {
  font-family:Calibri,"Segoe UI",Arial,sans-serif;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
}
html[data-universe] :is(.site-header,.header,.topbar) :is(.main-nav a,.desktop-nav a,.nav a,nav a) {
  font-family:var(--emolia-font-head);
  font-weight:700;
  line-height:1.4;
  text-underline-offset:4px;
}

/* Comparable primary-action dimensions, shapes and typography without changing
   their branch colours or destinations. */
html[data-universe] :is(.header-cta,.nav-cta,.button,.gold-button,.offer-cta,
  .offer-button,.school-card-cta,.family-card-cta,.submit-button) {
  border-radius:var(--emolia-radius-pill);
  min-height:var(--emolia-control-size);
  font-family:var(--emolia-font-head);
  font-weight:800;
  line-height:1.3;
  letter-spacing:-.012em;
  box-sizing:border-box;
}
html[data-universe] :is(.header-cta,.nav-cta,.button,.gold-button,.offer-cta,
  .offer-button,.school-card-cta,.family-card-cta) {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
html[data-universe] :is(.header-cta,.nav-cta,.button,.gold-button):where(:not(.mobile-sticky-cta)) {
  padding-inline:max(18px,1.2rem);
}
html[data-universe] :is(.button,.gold-button,.nav-cta,.header-cta) :is(svg,img) {
  flex-shrink:0;
}

/* A common rhythm for text inputs and forms. Native checkbox/radio appearance
   and all existing validation/HubSpot handlers are preserved. */
html[data-universe] :is(#contact-form,#lead-form,.resource-form) :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),
  select,textarea) {
  box-sizing:border-box;
  min-height:var(--emolia-control-size);
  border-radius:var(--emolia-radius-field);
  font-family:var(--emolia-font-body);
  padding-inline:14px;
  transition:border-color .18s ease,box-shadow .18s ease;
}
html[data-universe] :is(#contact-form,#lead-form,.resource-form) label {
  font-family:var(--emolia-font-body);
  font-weight:600;
  line-height:1.55;
}
html[data-universe] :is(#contact-form,#lead-form,.resource-form) :is(
  input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus-visible {
  border-color:var(--emolia-branch-accent);
}
html[data-universe="families"] :is(.header-cta,.family-card-cta) {
  color:var(--emolia-brand-navy);
}

/* Shared footer layout and legal-information hierarchy. */
html[data-universe] footer .footer-inner {
  gap:clamp(16px,2.5vw,32px);
  row-gap:14px;
}
html[data-universe] footer .footer-inner:where(:not(nav)) {
  align-items:center;
}
html[data-universe] footer .emolia-footer-signature {
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px 16px;
  font:600 13px/1.5 var(--emolia-font-body);
}
html[data-universe] footer .emolia-footer-signature a {
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
}
html[data-universe] footer .emolia-footer-signature img {
  display:block;
  width:134px;
  max-width:100%;
  height:auto;
}
html[data-universe] footer :is(.footer-inner nav a,.footer-inner>div a,.legal-links a) {
  font-family:var(--emolia-font-body);
  font-size:13px;
  line-height:1.4;
  text-decoration:none;
  text-underline-offset:3px;
}
html[data-universe] footer :is(.footer-inner nav a,.footer-inner>div a,.legal-links a):hover {
  text-decoration:underline;
}
html[data-universe] footer .footer-inner {
  flex-wrap:wrap;
}
html[data-universe] footer .footer-inner>.legal-links {
  grid-column:1/-1;
  flex-basis:100%;
  width:100%;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  padding-top:12px;
  margin-top:2px;
  border-top:1px solid rgba(255,255,255,.2);
  gap:14px;
}
html[data-universe="leaders"] .speaking-club-page footer .legal-links {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:14px;
  margin-top:8px;
}
html[data-universe="schools"] footer .footer-inner>p,
html[data-universe="families"] footer .footer-inner>p {
  font-family:var(--emolia-font-body);
  font-size:13px;
  line-height:1.5;
}

/* Small-screen layout stays aligned with the existing navigation breakpoints. */
@media(max-width:850px) {
  html[data-universe] footer .footer-inner>.legal-links {justify-content:flex-start}
  html[data-universe] footer .emolia-footer-signature {gap:10px}
}
@media(max-width:700px) {
  html[data-universe] :is(.site-header,.header,.topbar) .brand img,
  html[data-universe="leaders"] .speaking-club-page .topbar .emolia-official-logo {
    width:112px;
  }
  html[data-universe="leaders"] .speaking-club-page .topbar .brand {
    gap:10px;
    min-width:0;
  }
  html[data-universe] :is(.header-cta,.nav-cta,.button,.gold-button,.submit-button) {
    min-height:44px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html[data-universe] :is(#contact-form,#lead-form,.resource-form) :is(
    input,textarea,select) {transition:none}
}
