/* EnsureLoc brand typography and alignment system
   Primary/UI: Montserrat · Body: Open Sans */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@600;700;800&family=Open+Sans:wght@400;500;600;700&display=swap');

:root{
  --brand-heading:'Montserrat',Arial,sans-serif;
  --brand-body:'Open Sans',Arial,sans-serif;
}

html,body{font-family:var(--brand-body)!important;}
p,li,dd,dt,label,input,textarea,select,option,.lede,.micro,.record-meta,.rec__meta,.plan__tag,.plan__best,.group-note,.hint,.booker-msg,.booker-title span{
  font-family:var(--brand-body)!important;
}
h1,h2,h3,h4,h5,h6,
.btn,button,.nav,.nav a,.nav-links,.brand__name,.brand__tag,.eyebrow,
.plan__name,.plan__amt,.plan__cadence,.group-band,.pillar__name,.moment__tag,
.step-count,.type,.record-title,.summary-card .count,.permission-set legend,
.booker-launcher,.booker-title strong,.booker-choice,.booker-send,.booker-panel__name{
  font-family:var(--brand-heading)!important;
}

/* Public website hierarchy */
main h1{font-size:clamp(36px,4.5vw,48px)!important;line-height:1.12!important;font-weight:700!important;letter-spacing:-.02em!important;}
main h2{font-size:clamp(28px,3vw,32px)!important;line-height:1.2!important;font-weight:700!important;letter-spacing:-.015em!important;}
main h3{font-weight:600!important;line-height:1.3!important;}
body{font-size:16px!important;line-height:1.65!important;}

/* Keep utility/header headings appropriately compact */
.portal-header h1,.app-topbar h1{font-size:16px!important;line-height:1.2!important;font-weight:700!important;letter-spacing:0!important;}
.portal-main .step h2,.portal-main .signin-card h2,.portal-main .success h2{font-size:clamp(28px,4vw,32px)!important;line-height:1.2!important;}

/* Consistent centered section headings */
.section__head.is-centered,.section-head.center,.page-hero .account-lock,.group-head{text-align:center!important;margin-left:auto!important;margin-right:auto!important;}

/* 2026-08-20 public-page alignment pass
   Keep all primary public-page hero headings centered on the same axis. */
.page-hero{
  text-align:center!important;
}
.page-hero .wrap{
  text-align:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.page-hero .eyebrow{
  text-align:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.page-hero h1{
  width:min(100%,920px)!important;
  max-width:920px!important;
  margin:0 auto 18px!important;
  text-align:center!important;
  text-wrap:balance;
}
.page-hero .lede{
  width:min(100%,800px)!important;
  max-width:800px!important;
  margin:0 auto!important;
  text-align:center!important;
  text-wrap:pretty;
}
.page-hero .hero-actions,
.page-hero .seo-hero-actions{
  justify-content:center!important;
}
.plans-intro,
.account-lock{
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}
.section__head.is-centered,
.section-head.center,
.seo-section-head,
.group-head{
  text-align:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.seo-section-head h2,
.group-head h2,
.section-head.center h2,
.section__head.is-centered h2{
  text-wrap:balance;
}
@media(max-width:560px){
  .page-hero h1{width:100%!important;max-width:100%!important;}
  .page-hero .lede{width:100%!important;max-width:100%!important;}
}
