/* ============================================================
   EarningsBeats — shared pasteable sections
   Loaded sitewide from top.cfm. Copy any .eb-section-* block
   onto another MemberGate page and it keeps these styles.
   Do not add per-page CSS files for these sections.

   Tokens (Figma Our Team - 2 / 4112:2528)
   navy #153550 · brand navy #0F2A40 · blue #1498D5
   green #2FAE62 · grey #D1D5D9 · light grey #F4F6F8 · black #252525
   Display: Cal Sans · Body: Poppins
   ============================================================ */
:root{
  --ebs-navy:#153550;
  --ebs-brand-navy:#0F2A40;
  --ebs-blue:#1498D5;
  --ebs-green:#2FAE62;
  --ebs-grey:#D1D5D9;
  --ebs-light:#F4F6F8;
  --ebs-black:#252525;
  --ebs-radius:20px;
  --ebs-shadow:0 50px 110px -30px rgba(21,53,80,.3);
  --ebs-display:"Cal Sans","Poppins",sans-serif;
  --ebs-body:"Poppins",sans-serif;
}

/* Page chrome when a pasteable team/hero block is on the page */
html:has(.eb-team),
html:has(.eb-track),
html:has(.eb-section-hero),
body.eb-has-team,
body.eb-has-track,
body.mgcontentpage:has(.eb-team),
body.mgcontentpage:has(.eb-track),
body:has(.eb-team),
body:has(.eb-track),
body:has(.eb-section-hero){
  background:var(--ebs-light) !important;
}
body.eb-has-team .container-fluid,
body.eb-has-track .container-fluid,
body:has(.eb-team) .container-fluid,
body:has(.eb-track) .container-fluid,
body:has(.eb-section-hero) .container-fluid,
body.eb-has-team .mgsectioncontainer,
body.eb-has-team section.mgsectioncontainer,
body.eb-has-team .mgsectioncontainer.container,
body.mgcontentpage:has(.eb-team) .mgsectioncontainer,
body.mgcontentpage:has(.eb-team) .mgsectioncontainer.container,
body:has(.eb-team) .mgsectioncontainer,
body:has(.eb-team) section.mgsectioncontainer,
body:has(.eb-team) .mgsectioncontainer.container,
body:has(.eb-section-hero) .mgsectioncontainer,
body.eb-has-team main.mgcontent,
body.eb-has-track main.mgcontent,
body:has(.eb-team) main.mgcontent,
body:has(.eb-track) main.mgcontent,
body:has(.eb-team) main.mgcontent#main,
body.mgcontentpage:has(.eb-team) main.mgcontent,
body.mgcontentpage:has(.eb-track) main.mgcontent,
body:has(.eb-section-hero) main.mgcontent{
  background:var(--ebs-light) !important;
  color:var(--ebs-navy);
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  padding-top:0 !important;
  float:none !important;
}
body.eb-has-team nav.left,
body.eb-has-track nav.left,
body:has(.eb-team) nav.left,
body:has(.eb-track) nav.left,
body.eb-has-team nav.right,
body.eb-has-track nav.right,
body:has(.eb-team) nav.right,
body:has(.eb-track) nav.right,
body.eb-has-team nav.responsive,
body.eb-has-track nav.responsive,
body:has(.eb-team) nav.responsive,
body:has(.eb-track) nav.responsive,
body.eb-has-team .bgAttach,
body.eb-has-track .bgAttach,
body:has(.eb-team) .bgAttach,
body:has(.eb-track) .bgAttach,
body.eb-has-team .eb-page-hero,
body.eb-has-track .eb-page-hero,
body:has(.eb-team) .eb-page-hero,
body:has(.eb-track) .eb-page-hero,
body.eb-has-team #breadcrumb,
body.eb-has-track #breadcrumb,
body:has(.eb-team) #breadcrumb,
body:has(.eb-track) #breadcrumb,
body.eb-has-team .mgbreadcrumb,
body.eb-has-track .mgbreadcrumb,
body:has(.eb-team) .mgbreadcrumb,
body:has(.eb-track) .mgbreadcrumb{
  display:none !important;
}
body.eb-has-team h1.articleheadline,
body.eb-has-track h1.articleheadline,
body:has(.eb-team) h1.articleheadline,
body:has(.eb-track) h1.articleheadline,
body:has(.eb-team) .articleheadline,
body:has(.eb-track) .articleheadline,
body.mgcontentpage:has(.eb-team) h1.articleheadline,
body.mgcontentpage:has(.eb-track) h1.articleheadline,
body.eb-has-team main.mgcontent > h1:first-child,
body.eb-has-track main.mgcontent > h1:first-child,
body:has(.eb-team) main.mgcontent > h1:first-child,
body:has(.eb-track) main.mgcontent > h1:first-child,
body:has(.eb-team) .mgcontent > h1:first-child,
body:has(.eb-track) .mgcontent > h1:first-child{
  display:none !important;
}

.eb-team,
.eb-team * ,
.eb-track,
.eb-track *,
.eb-section-hero,
.eb-section-hero *,
.eb-section-team,
.eb-section-team *,
.eb-section-cta,
.eb-section-cta *{
  box-sizing:border-box;
}
.eb-team{
  width:100%;
  max-width:none;
  margin:0;
  padding:0 0 120px;
  background:var(--ebs-light);
  color:var(--ebs-navy);
  font-family:var(--ebs-body);
}

/* ---------- Boxed navy hero (copy onto any page) ---------- */
.mgcontent .eb-section-hero,
.mgcontent section.eb-section-hero,
main.mgcontent section.eb-section-hero,
.eb-section-hero{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(1384px, calc(100% - 56px)) !important;
  max-width:1384px !important;
  min-height:606px;
  height:auto;
  margin:0 auto !important;
  padding:73px 53px 73px 92px;
  background-color:var(--ebs-navy) !important;
  background-image:url("../team/assets/hero-grid.svg");
  background-size:100% 100%;
  background-position:center;
  background-repeat:no-repeat;
  border-radius:var(--ebs-radius);
  overflow:hidden;
  color:#fff;
}
.eb-section-hero .eb-hero-grid{
  position:absolute !important;
  inset:0;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:fill;
  pointer-events:none;
  z-index:0;
}
.eb-section-hero .eb-hero-grid:not([src]),
.eb-section-hero .eb-hero-grid[src=""]{
  opacity:0;
}
.eb-hero-inner{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:40px;
  width:100%;
  max-width:1239px;
}
.eb-hero-copy{
  flex:1 1 420px;
  min-width:0;
  max-width:705px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:20px;
}
.eb-hero-titles{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:30px;
  width:100%;
}
.eb-section-hero .eb-kicker{
  margin:0;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:14px;
  line-height:1.5;
  color:var(--ebs-grey);
}
.eb-section-hero h1{
  margin:0;
  font-family:var(--ebs-display);
  font-weight:400;
  font-size:clamp(36px, 4.6vw, 64px);
  line-height:1.2;
  color:#fff;
}
.eb-section-hero .eb-lede{
  margin:0;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:clamp(16px, 1.7vw, 24px);
  line-height:1.5;
  color:#fff;
}

/* Staggered stat cards — Figma 352x140, 11px radius */
.eb-stat-stack{
  position:relative;
  flex:0 1 494px;
  width:min(494px, 100%);
  max-width:494px;
  min-width:0;
  aspect-ratio:494 / 460;
  min-height:240px;
}
.eb-stat{
  position:absolute;
  width:71.255%;
  height:30.435%;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:16px;
  padding:20px;
  border-radius:11px;
  background:rgba(20,152,213,.2);
  border:1px solid var(--ebs-blue);
  color:#fff;
}
.eb-stat:nth-child(1){ left:18.016%; top:0; }
.eb-stat:nth-child(2){ left:0; top:34.783%; }
.eb-stat:nth-child(3){ left:28.745%; top:69.565%; }
.eb-stat.is-accent{
  background:var(--ebs-blue);
  border-color:var(--ebs-blue);
  box-shadow:0 30px 50px -10px rgba(20,152,213,.25);
  color:var(--ebs-light);
}
.eb-stat strong{
  display:block;
  font-family:var(--ebs-body);
  font-weight:500;
  font-size:40px;
  line-height:1.2;
  opacity:.75;
}
.eb-stat span{
  display:block;
  font-family:var(--ebs-body);
  font-weight:500;
  font-size:14px;
  line-height:20px;
  opacity:1;
}

/* ---------- Meet the team grid ---------- */
.mgcontent .eb-section-team,
.mgcontent section.eb-section-team,
main.mgcontent section.eb-section-team,
.eb-section-team{
  position:relative;
  width:min(1280px, calc(100% - 56px)) !important;
  max-width:1280px !important;
  margin:120px auto 0 !important;
  padding:0 40px;
  overflow:visible;
}
/* Figma Ellipse 4 — 1280×449, #1498D5 @ 50%. Soft radial, no filter:blur (avoids ticks). */
.eb-section-team::before{
  content:"";
  position:absolute;
  z-index:0;
  left:50%;
  top:42%;
  width:1280px;
  height:449px;
  margin-left:-640px;
  margin-top:-224px;
  background:radial-gradient(ellipse 50% 50% at 50% 50%, rgba(20,152,213,.5) 0%, rgba(20,152,213,.22) 38%, rgba(20,152,213,.08) 58%, rgba(20,152,213,0) 72%);
  pointer-events:none;
}
.eb-section-inner{
  position:relative;
  z-index:1;
  width:100%;
  max-width:1200px;
  margin:0 auto;
}
.eb-section-head{
  text-align:center;
  margin:0 auto 40px;
  max-width:872px;
}
.eb-section-head .eb-kicker-dark{
  margin:0 0 10px;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:24px;
  line-height:1.5;
  color:var(--ebs-brand-navy);
}
.eb-section-head h2{
  margin:0;
  font-family:var(--ebs-display);
  font-weight:400;
  font-size:clamp(32px, 4vw, 48px);
  line-height:1.29;
  color:var(--ebs-brand-navy);
}
.eb-person-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  column-gap:20px;
  row-gap:90px;
  align-items:start;
}
.eb-person{
  position:relative;
  z-index:1;
  min-width:0;
  margin:0;
  background:transparent;
}
.eb-person:hover,
.eb-person.is-active{
  z-index:3;
}
.eb-person-open{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  border:0 !important;
  background:transparent !important;
  font:inherit;
  color:inherit;
  text-align:left;
  cursor:pointer;
  position:relative;
  appearance:none;
  -webkit-appearance:none;
  box-shadow:none !important;
  outline:none !important;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.eb-person-open::-moz-focus-inner{ border:0; padding:0; }
.eb-person-photo{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:387 / 419;
  overflow:hidden;
  background-color:#fff;
  background-size:cover;
  background-position:center 18%;
  background-repeat:no-repeat;
}
.eb-person-photo:has(img[src*="bowley"]),
.eb-person-photo:has(img[data-eb-asset*="bowley"]){
  background-image:url("../team/assets/bowley.jpg");
}
.eb-person-photo:has(img[src*="hopkins-john"]),
.eb-person-photo:has(img[data-eb-asset*="hopkins-john"]){
  background-image:url("../team/assets/hopkins-john.jpg");
}
.eb-person-photo:has(img[src*="hopkins-chris"]),
.eb-person-photo:has(img[data-eb-asset*="hopkins-chris"]){
  background-image:url("../team/assets/hopkins-chris.jpg");
}
.eb-person-photo:has(img[src*="webber"]),
.eb-person-photo:has(img[data-eb-asset*="webber"]){
  background-image:url("../team/assets/webber.jpg");
}
.eb-person-photo:has(img[src*="townsend"]),
.eb-person-photo:has(img[data-eb-asset*="townsend"]){
  background-image:url("../team/assets/townsend.jpg");
}
.eb-person-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 18%;
}
.eb-person-photo img:not([src]),
.eb-person-photo img[src=""]{
  opacity:0;
}
.eb-person-photo::after{
  content:"";
  position:absolute;
  inset:0;
  border:2px solid transparent;
  pointer-events:none;
  z-index:1;
  transition:border-color .2s ease;
}
.eb-person-card{
  position:absolute;
  right:0;
  top:calc(370 / 419 * 100%);
  z-index:2;
  width:max-content;
  max-width:calc(100% - 16px);
  padding:20px 40px;
  background:#fff;
  color:var(--ebs-navy);
  transition:background .2s ease, color .2s ease;
}
.eb-person-card .eb-person-name{
  display:block;
  margin:0;
  font-family:var(--ebs-display);
  font-weight:400;
  font-size:clamp(16px, 1.6vw, 20px);
  line-height:1.3;
  overflow-wrap:break-word;
  font-variant-numeric:lining-nums proportional-nums;
}
.eb-person-card .eb-person-role{
  display:block;
  margin:3px 0 0;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:14px;
  line-height:30px;
}
.eb-person-card .eb-person-role.is-wrap{
  line-height:24px;
  max-width:min(203px, 100%);
}
.eb-person.is-active .eb-person-photo::after,
.eb-person-open:focus-visible .eb-person-photo::after{
  border-color:var(--ebs-blue);
}
.eb-person.is-active .eb-person-card,
.eb-person-open:focus-visible .eb-person-card{
  background:var(--ebs-green);
  color:var(--ebs-light);
}
@media (hover:hover) and (pointer:fine){
  .eb-person:hover .eb-person-photo::after{
    border-color:var(--ebs-blue);
  }
  .eb-person:hover .eb-person-card{
    background:var(--ebs-green);
    color:var(--ebs-light);
  }
}
.eb-person-bio{ display:none; }

/* ---------- Bio popup ---------- */
.eb-bio-modal{
  position:fixed;
  inset:0;
  z-index:2400;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:max(16px, env(safe-area-inset-top, 0px)) 16px max(16px, env(safe-area-inset-bottom, 0px));
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease, visibility .28s ease;
}
.eb-bio-modal[hidden]{ display:none !important; }
.eb-bio-modal:not([hidden]){ display:flex; }
.eb-bio-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.eb-bio-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,42,64,.72);
  cursor:pointer;
}
.eb-bio-panel{
  position:relative;
  z-index:1;
  width:min(980px, 100%);
  max-height:calc(100dvh - 32px);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  background:#fff;
  color:var(--ebs-navy);
  border-radius:var(--ebs-radius);
  box-shadow:var(--ebs-shadow);
  transform:translateY(24px);
  transition:transform .35s cubic-bezier(.22,1,.36,1);
}
.eb-bio-panel::before{
  content:"";
  display:block;
  position:sticky;
  top:0;
  z-index:2;
  height:8px;
  margin:0;
  background:var(--ebs-blue);
}
.eb-bio-modal.is-open .eb-bio-panel{
  transform:none;
}
.eb-bio-x{
  position:absolute;
  top:16px;
  right:16px;
  width:40px;
  height:40px;
  border:0;
  background:transparent;
  color:var(--ebs-navy);
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.eb-bio-x:hover{ color:var(--ebs-blue); }
.eb-bio-grid{
  display:grid;
  grid-template-columns:280px minmax(0, 1fr);
  gap:40px;
  padding:40px 48px 24px;
  align-items:start;
}
.eb-bio-photo{
  overflow:hidden;
  background:var(--ebs-light);
  aspect-ratio:1 / 1;
}
.eb-bio-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 18%;
  filter:grayscale(1);
}
.eb-bio-copy h2{
  margin:0 0 16px;
  font-family:var(--ebs-display);
  font-weight:400;
  font-size:36px;
  line-height:1.2;
  color:var(--ebs-navy);
}
.eb-bio-role{
  margin:0 0 12px;
  font-family:var(--ebs-body);
  font-weight:600;
  font-size:16px;
  color:var(--ebs-navy);
}
.eb-bio-text p{
  margin:0 0 14px;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:16px;
  line-height:1.6;
  color:var(--ebs-navy);
}
.eb-bio-text p:last-child{ margin-bottom:0; }
.eb-bio-foot{
  display:flex;
  justify-content:flex-end;
  padding:16px 32px 24px;
  border-top:1px solid var(--ebs-grey);
}

/* Section motion — opacity only (transforms clipped hover outlines) */
.eb-team .eb-reveal{
  opacity:0;
}
.eb-track .eb-reveal,
.eb-track .eb-section-hero.eb-reveal{
  opacity:1;
}
.eb-team .eb-reveal.is-in,
.eb-track .eb-reveal.is-in{
  opacity:1;
  transition:opacity .6s ease;
}
.eb-stat{
  transition:background .2s ease;
}

@media (prefers-reduced-motion: reduce){
  .eb-team .eb-reveal,
  .eb-track .eb-reveal,
  .eb-team .eb-reveal.is-in,
  .eb-track .eb-reveal.is-in,
  .eb-person-card,
  .eb-person-photo::after,
  .eb-bio-modal,
  .eb-bio-panel{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* ---------- Questions CTA band ---------- */
.mgcontent .eb-section-cta,
.mgcontent section.eb-section-cta,
main.mgcontent section.eb-section-cta,
.eb-section-cta{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(1200px, calc(100% - 56px)) !important;
  max-width:1200px !important;
  min-height:380px;
  height:auto;
  margin:160px auto 0 !important;
  padding:52px 24px;
  background-color:var(--ebs-navy) !important;
  background-image:url("../team/assets/cta-waves.png");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border:2px solid var(--ebs-blue);
  box-shadow:var(--ebs-shadow);
  overflow:hidden;
  text-align:center;
  color:var(--ebs-light);
}
.eb-section-cta .eb-cta-waves{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  opacity:1;
  pointer-events:none;
  z-index:0;
}
.eb-section-cta .eb-cta-waves:not([src]),
.eb-section-cta .eb-cta-waves[src=""]{
  opacity:0;
}
.eb-cta-inner{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:33px;
  width:100%;
  max-width:590px;
}
.eb-cta-kicker{
  margin:0;
  font-family:var(--ebs-body);
  font-weight:700;
  font-size:24px;
  line-height:1.5;
  color:var(--ebs-light);
  text-transform:uppercase;
}
.eb-section-cta h2{
  margin:0;
  font-family:var(--ebs-display);
  font-weight:400;
  font-size:clamp(32px, 4vw, 48px);
  line-height:1.29;
  color:var(--ebs-light);
}
.eb-cta-copy{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:13px;
  width:100%;
}
.eb-cta-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  flex-wrap:wrap;
}
.eb-sec-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  min-width:0;
  font-family:var(--ebs-body);
  font-weight:600;
  font-size:clamp(15px, 1.5vw, 20px);
  line-height:1.5;
  text-align:center;
  text-transform:uppercase;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition:opacity .15s ease, background .15s ease, color .15s ease;
}
.eb-sec-btn-light{
  background:var(--ebs-light);
  color:var(--ebs-black);
}
.eb-sec-btn-light:hover{ opacity:.9; }
.eb-sec-btn-green{
  background:transparent;
  color:var(--ebs-green);
  border-color:var(--ebs-green);
}
.eb-sec-btn-green:hover{
  background:var(--ebs-green);
  color:#fff;
}

@media (max-width:1280px){
  .eb-section-hero,
  .mgcontent .eb-section-hero,
  .mgcontent section.eb-section-hero,
  main.mgcontent section.eb-section-hero{
    padding:56px 40px;
    min-height:520px;
  }
  .eb-hero-inner{ gap:28px; }
}
@media (max-width:1140px){
  .eb-section-hero,
  .mgcontent .eb-section-hero,
  .mgcontent section.eb-section-hero,
  main.mgcontent section.eb-section-hero{
    width:min(1384px, calc(100% - (2 * var(--page-gutter, 16px)))) !important;
    min-height:0 !important;
    height:auto !important;
    align-items:flex-start;
    padding:48px 32px !important;
  }
  .eb-hero-inner{
    flex-direction:column;
    align-items:stretch;
    gap:36px;
  }
  .eb-hero-copy{ max-width:none; flex:1 1 auto; }
  .eb-stat-stack{
    align-self:stretch;
    width:100%;
    max-width:none;
    aspect-ratio:unset;
    min-height:0;
    height:auto;
  }
  .eb-section-team,
  .mgcontent .eb-section-team,
  .mgcontent section.eb-section-team,
  main.mgcontent section.eb-section-team{
    width:min(1280px, calc(100% - (2 * var(--page-gutter, 16px)))) !important;
    padding:0;
    margin-top:80px !important;
  }
  .eb-section-cta,
  .mgcontent .eb-section-cta,
  .mgcontent section.eb-section-cta,
  main.mgcontent section.eb-section-cta{
    width:min(1200px, calc(100% - (2 * var(--page-gutter, 16px)))) !important;
    margin-top:160px !important;
  }
  .eb-person-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    row-gap:80px;
    padding-bottom:24px;
  }
  .eb-person-card{ padding:16px 24px; }
}
@media (max-width:1023px){
  .eb-bio-grid{
    grid-template-columns:1fr;
    gap:24px;
    padding:48px 28px 20px;
  }
  .eb-bio-photo{ max-width:240px; }
  .eb-bio-copy h2{ font-size:30px; }
  .eb-bio-x{
    top:12px;
    right:12px;
    background:rgba(255,255,255,.92);
    border-radius:50%;
    z-index:3;
  }
}
@media (max-width:768px){
  .eb-team{ padding-bottom:64px; }
  .eb-section-hero,
  .mgcontent .eb-section-hero,
  .mgcontent section.eb-section-hero,
  main.mgcontent section.eb-section-hero{
    width:calc(100% - (2 * var(--page-gutter, 16px))) !important;
    padding:24px !important;
    border-radius:16px;
    min-height:0 !important;
    height:auto !important;
    align-items:flex-start;
  }
  .eb-stat-stack{
    aspect-ratio:unset !important;
    min-height:0 !important;
    height:auto !important;
    display:flex;
    flex-direction:column;
    gap:12px;
    width:100%;
    max-width:none;
  }
  .eb-stat{
    position:relative;
    left:auto !important;
    top:auto !important;
    width:100%;
    height:auto;
    padding:14px 16px;
    gap:8px;
  }
  .eb-stat strong{ font-size:28px; }
  .eb-stat span{ font-size:12px; line-height:16px; }
  .eb-section-head{ margin-bottom:32px; }
  .eb-section-head .eb-kicker-dark{ font-size:18px; }
  .eb-section-team,
  .mgcontent .eb-section-team,
  .mgcontent section.eb-section-team,
  main.mgcontent section.eb-section-team{
    width:calc(100% - (2 * var(--page-gutter, 16px))) !important;
    padding:0;
    margin-top:64px !important;
  }
  .eb-person-grid{
    grid-template-columns:1fr;
    row-gap:64px;
    max-width:420px;
    margin:0 auto;
    padding-bottom:16px;
  }
  .eb-person-card{ padding:16px 20px; }
  .eb-cta-kicker{ font-size:18px; }
  .eb-section-cta,
  .mgcontent .eb-section-cta,
  .mgcontent section.eb-section-cta,
  main.mgcontent section.eb-section-cta{
    width:calc(100% - (2 * var(--page-gutter, 16px))) !important;
    min-height:0 !important;
    padding:40px 20px;
    margin-top:120px !important;
  }
  .eb-cta-inner{ gap:24px; max-width:none; }
  .eb-cta-actions{
    flex-direction:column;
    align-items:stretch;
    width:100%;
    gap:12px;
  }
  .eb-sec-btn{ padding:16px; width:100%; }
  .eb-bio-grid{ padding:44px 20px 16px; }
}
@media (max-width:430px){
  .eb-section-hero,
  .mgcontent .eb-section-hero,
  .mgcontent section.eb-section-hero,
  main.mgcontent section.eb-section-hero,
  .eb-section-team,
  .mgcontent .eb-section-team,
  .mgcontent section.eb-section-team,
  main.mgcontent section.eb-section-team,
  .eb-section-cta,
  .mgcontent .eb-section-cta,
  .mgcontent section.eb-section-cta,
  main.mgcontent section.eb-section-cta{
    width:calc(100% - (2 * var(--page-gutter, 16px))) !important;
  }
  .eb-section-hero,
  .mgcontent .eb-section-hero,
  .mgcontent section.eb-section-hero,
  main.mgcontent section.eb-section-hero{
    padding:20px !important;
  }
  .eb-stat strong{ font-size:24px; }
  .eb-person-card .eb-person-role{ line-height:22px; }
  .eb-bio-copy h2{ font-size:24px; }
  .eb-bio-text p{ font-size:15px; }
}

/* ============================================================
   Track Record — Figma Track Record - 2 / 4053:2111 (1440×3416)
   Hero 1384×606 · numbers 1200×521 · chart navy 1440×568
   Gaps: hero→numbers 120 · numbers→calls 120 · calls→chart 40
   callout hang ~79 below navy · callout→CTA 120
   ============================================================ */
.eb-track{
  width:100%;
  max-width:none;
  margin:0;
  padding:0 0 120px;
  background:var(--ebs-light);
  color:var(--ebs-navy);
  font-family:var(--ebs-body);
  overflow-x:clip;
}

/* Desktop: Tom overlays the navy box (566×527, flush bottom-right).
   Photo is a SIBLING of .eb-hero-inner, so stacking must set
   flex-direction on the section itself — not the inner. */
.eb-track .eb-section-hero,
.mgcontent .eb-track .eb-section-hero,
main.mgcontent .eb-track section.eb-section-hero{
  overflow:hidden;
  align-items:center;
}
.eb-track .eb-hero-inner{
  align-items:center;
  position:relative;
  z-index:2;
  flex-wrap:nowrap;
}
.eb-track .eb-hero-copy{
  max-width:705px;
  padding-right:12px;
  position:relative;
  z-index:2;
}
.eb-track-photo{
  position:absolute;
  z-index:1;
  right:0;
  bottom:0;
  width:566px;
  height:527px;
  max-width:none;
  pointer-events:none;
  background:transparent;
}
.eb-track-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:right bottom;
}
.eb-track-photo img:not([src]),
.eb-track-photo img[src=""]{
  opacity:0;
}
.eb-track-badge{
  position:absolute;
  right:0;
  top:128px;
  width:218px;
  min-height:120px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:0;
  padding:20px;
  background:#fff;
  color:var(--ebs-navy);
  box-shadow:0 12px 40px -16px rgba(21,53,80,.35);
  pointer-events:auto;
}
.eb-track-badge strong{
  display:block;
  font-family:var(--ebs-display);
  font-weight:400;
  font-size:40px;
  line-height:1.2;
  color:var(--ebs-navy);
}
.eb-track-badge span{
  display:block;
  margin-top:0;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:14px;
  line-height:20px;
  color:var(--ebs-navy);
}

/* Numbers card — Rectangle 20: 1200×521, 2px #1498D5, copy 40/60 pad,
   white plot 470×310 flush bottom-right, green bar 120×390 above the plot. */
.mgcontent .eb-section-perf,
.mgcontent section.eb-section-perf,
main.mgcontent section.eb-section-perf,
.eb-section-perf{
  position:relative;
  width:min(1200px, calc(100% - 56px)) !important;
  max-width:1200px !important;
  min-height:521px;
  margin:120px auto 0 !important;
  padding:60px 40px 0;
  background:var(--ebs-light) !important;
  border:2px solid var(--ebs-blue);
  box-shadow:var(--ebs-shadow);
  overflow:visible;
}
.eb-perf-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(240px, 532px) minmax(280px, 470px);
  justify-content:space-between;
  align-items:end;
  column-gap:40px;
  width:100%;
  min-height:461px;
}
.eb-perf-copy{
  max-width:532px;
  min-width:0;
  padding-bottom:40px;
}
.eb-perf-kicker{
  margin:0 0 0;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:24px;
  line-height:1.5;
  color:var(--ebs-brand-navy);
}
.eb-perf-copy h2{
  margin:0 0 20px;
  font-family:var(--ebs-display);
  font-weight:400;
  font-size:clamp(32px, 4vw, 48px);
  line-height:1.29;
  color:var(--ebs-brand-navy);
}
.eb-perf-rule{
  width:min(509px, 100%);
  height:0;
  margin:0 0 20px;
  border:0;
  border-top:1px solid var(--ebs-grey);
}
.eb-perf-total-label{
  margin:0;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:18px;
  line-height:1.5;
  color:var(--ebs-brand-navy);
}
.eb-perf-total{
  margin:-10px 0 0;
  font-family:var(--ebs-body);
  font-weight:700;
  font-size:clamp(48px, 7vw, 80px);
  line-height:1.2;
  color:var(--ebs-green);
}
.eb-perf-stats{
  display:flex;
  gap:20px;
  width:100%;
  margin-top:0;
}
.eb-perf-stat{
  flex:1 1 0;
  min-width:0;
  padding:15px;
  background:#fff;
  border:1px solid var(--ebs-blue);
}
.eb-perf-stat strong{
  display:block;
  font-family:var(--ebs-display);
  font-weight:400;
  font-size:24px;
  line-height:1.3;
  color:var(--ebs-brand-navy);
}
.eb-perf-stat span{
  display:block;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:14px;
  line-height:1.5;
  color:var(--ebs-brand-navy);
}
.eb-perf-chart{
  position:relative;
  width:100%;
  max-width:470px;
  height:461px;
  justify-self:end;
  overflow:visible;
}
.eb-perf-plot{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  width:100%;
  height:310px;
  background:#fff;
  border-radius:10px 10px 0 0;
  box-shadow:0 -20px 50px -20px rgba(0,0,0,.2);
  overflow:hidden;
}
.eb-perf-grid{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:210px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  pointer-events:none;
  z-index:0;
}
.eb-perf-grid i{
  display:block;
  height:0;
  border-top:1px solid rgba(21,53,80,.1);
}
.eb-perf-plot::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(255,255,255,.8) 0%, rgba(255,255,255,.5) 58%, rgba(255,255,255,0) 100%);
  pointer-events:none;
  z-index:1;
}
/* Bars sit on a baseline 40px above the plot bottom. Green = 390px (extends
   80px above the 310px white plot). Insets 80 / gap 70 / bars 120. */
.eb-perf-bars{
  position:absolute;
  left:17.02%;
  right:17.02%;
  bottom:40px;
  height:390px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14.89%;
  z-index:3;
  pointer-events:none;
}
.eb-perf-bar{
  position:relative;
  width:25.53%;
  max-width:120px;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
}
.eb-perf-bar-label{
  position:absolute;
  bottom:100%;
  left:50%;
  transform:translate(-50%, -8px);
  width:140px;
  margin:0;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:14px;
  line-height:1.5;
  text-align:center;
  color:var(--ebs-navy);
}
.eb-perf-bar.is-eb .eb-perf-bar-label{ font-weight:600; }
.eb-perf-bar-col{
  position:relative;
  width:100%;
  height:50%;
  min-height:48px;
  border-radius:10px 10px 0 0;
}
.eb-perf-bar.is-sp .eb-perf-bar-col{
  background:linear-gradient(to bottom, #39B6F0, #1498D5);
}
.eb-perf-bar.is-eb .eb-perf-bar-col{
  background:linear-gradient(to bottom, #53ED90, #2FAE62);
  box-shadow:0 -30px 80px -20px rgba(83,237,144,.53);
}
.eb-perf-bar-value{
  position:absolute;
  top:16px;
  left:0;
  right:0;
  font-family:var(--ebs-display);
  font-weight:400;
  font-size:24px;
  line-height:1.3;
  text-align:center;
  color:#fff;
}

.mgcontent .eb-section-calls,
.mgcontent section.eb-section-calls,
main.mgcontent section.eb-section-calls,
.eb-section-calls{
  position:relative;
  width:min(1200px, calc(100% - 56px)) !important;
  max-width:1200px !important;
  margin:120px auto 0 !important;
  padding:0;
}
.eb-calls-kicker{
  margin:0 0 10px;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:24px;
  line-height:1.5;
  color:var(--ebs-brand-navy);
}
.eb-section-calls h2{
  margin:0 0 20px;
  max-width:872px;
  font-family:var(--ebs-display);
  font-weight:400;
  font-size:clamp(32px, 4vw, 48px);
  line-height:1.29;
  color:var(--ebs-brand-navy);
}
.eb-section-calls h2 em{
  font-style:normal;
  color:var(--ebs-blue);
}
.eb-calls-lede{
  margin:0;
  max-width:872px;
  font-family:var(--ebs-body);
  font-weight:500;
  font-size:clamp(16px, 2vw, 24px);
  line-height:1.5;
  color:var(--ebs-navy);
  opacity:.75;
}

/* Chart: navy band is 568px. Head + plot + callout share a 1200px shell
   (Figma x=120). Callout 1200×184 hangs ~79px into the page. */
.mgcontent .eb-section-chart,
.mgcontent section.eb-section-chart,
main.mgcontent section.eb-section-chart,
.eb-section-chart{
  position:relative;
  width:100% !important;
  max-width:none !important;
  margin:40px 0 0 !important;
  padding:40px 0 0;
  background:transparent !important;
  overflow:visible;
  color:#fff;
}
.eb-section-chart::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:568px;
  background:var(--ebs-navy);
  z-index:0;
}
.eb-chart-grid{
  position:absolute;
  left:0;
  right:0;
  top:59px;
  height:364px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  pointer-events:none;
  z-index:0;
}
.eb-chart-grid i{
  display:block;
  height:0;
  border-top:1px solid rgba(244,246,248,.12);
}
.eb-chart-grid::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, #153550 0%, rgba(21,53,80,.85) 58%, rgba(21,53,80,0) 100%);
  pointer-events:none;
}
.eb-chart-shell{
  position:relative;
  z-index:1;
  width:min(1200px, calc(100% - 56px));
  max-width:1200px;
  margin:0 auto;
}
.eb-chart-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px 24px;
  flex-wrap:wrap;
  width:100%;
  margin:0;
}
.eb-chart-label{
  margin:0;
  font-family:var(--ebs-body);
  font-weight:600;
  font-size:12px;
  line-height:1.5;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--ebs-light);
}
.eb-chart-legend{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  margin:0;
  padding:0;
  list-style:none;
}
.eb-chart-legend li{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--ebs-body);
  font-weight:600;
  font-size:12px;
  line-height:18px;
  text-transform:uppercase;
  color:var(--ebs-light);
}
.eb-chart-legend i{
  display:block;
  width:14px;
  height:14px;
  border-radius:50%;
  flex:0 0 14px;
}
.eb-chart-plot{
  position:relative;
  width:100%;
  height:358px;
  margin-top:7px;
}
.eb-chart-plot svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}
.eb-chart-guide{
  position:absolute;
  top:0;
  bottom:0;
  width:0;
  border-left:2px dashed var(--ebs-blue);
  pointer-events:none;
  transform:translateX(-1px);
}
.eb-chart-dot{
  position:absolute;
  width:14px;
  height:14px;
  margin:0;
  padding:0;
  border:3px solid var(--ebs-navy);
  border-radius:50%;
  background:#3B82F6;
  box-shadow:inset 0 0 0 20px rgba(21,53,80,.4);
  transform:translate(-50%, 50%);
  cursor:pointer;
  z-index:2;
  appearance:none;
  -webkit-appearance:none;
}
.eb-chart-dot[data-type="bearish"]{ background:#EF4444; }
.eb-chart-dot[data-type="bottom"]{ background:#2FAE62; }
.eb-chart-dot[data-type="bullish"]{ background:#3B82F6; }
.eb-chart-dot[data-type="forecast"]{ background:#F59E0B; }
.eb-chart-dot:hover,
.eb-chart-dot:focus-visible,
.eb-chart-dot.is-active{
  width:20px;
  height:20px;
  outline:none;
  box-shadow:0 0 0 6px rgba(20,152,213,.28), inset 0 0 0 20px rgba(21,53,80,.2);
  z-index:3;
}
.eb-chart-callout{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:100%;
  min-height:184px;
  margin:40px 0 0;
  padding:40px;
  background:var(--ebs-blue);
  color:#fff;
}
.eb-chart-callout-copy{
  flex:1 1 320px;
  min-width:0;
}
.eb-chart-date{
  margin:0 0 10px;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:14px;
  line-height:1.5;
}
.eb-chart-title{
  margin:0 0 10px;
  font-family:var(--ebs-display);
  font-weight:400;
  font-size:clamp(22px, 2.6vw, 32px);
  line-height:1.3;
}
.eb-chart-desc{
  margin:0;
  font-family:var(--ebs-body);
  font-weight:400;
  font-size:14px;
  line-height:1.5;
}
.eb-chart-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex:0 0 auto;
  padding:20px;
  background:var(--ebs-light);
  color:var(--ebs-black);
  font-family:var(--ebs-body);
  font-weight:600;
  font-size:14px;
  line-height:1.5;
  text-transform:uppercase;
  text-decoration:none;
  white-space:nowrap;
}
.eb-chart-cta:hover{ opacity:.92; }
.eb-chart-cta img{
  display:block;
  width:19px;
  height:19px;
}

.eb-track .eb-section-cta,
.mgcontent .eb-track .eb-section-cta,
.mgcontent section.eb-track-cta,
main.mgcontent section.eb-section-cta.eb-track-cta{
  margin-top:120px !important;
}
.eb-track-cta .eb-cta-kicker{
  text-transform:none;
  font-weight:400;
}
.eb-track-cta .eb-cta-inner{ max-width:590px; }

/* Below ~1280 the overlay photo would squeeze the 705px copy. Stack the
   SECTION (photo is not inside .eb-hero-inner). */
@media (max-width:1280px){
  .eb-track .eb-section-hero,
  .mgcontent .eb-track .eb-section-hero,
  main.mgcontent .eb-track section.eb-section-hero{
    flex-direction:column !important;
    align-items:stretch !important;
    min-height:0 !important;
    height:auto !important;
    padding:48px 40px 0 !important;
    overflow:hidden;
  }
  .eb-track .eb-hero-inner{
    flex-direction:column;
    align-items:stretch;
    flex-wrap:nowrap;
    gap:16px;
    width:100%;
    max-width:none;
  }
  .eb-track .eb-hero-copy{
    max-width:none;
    padding-right:0;
    flex:1 1 auto;
  }
  .eb-track-photo{
    position:relative;
    right:auto;
    bottom:auto;
    align-self:flex-end;
    width:min(480px, 72%);
    max-width:100%;
    height:auto;
    aspect-ratio:566 / 527;
    margin:8px 0 0;
  }
  .eb-track-badge{
    width:min(180px, 42%);
    min-height:88px;
    top:18%;
    padding:14px 16px;
  }
  .eb-track-badge strong{ font-size:32px; }
}

@media (max-width:1140px){
  .eb-section-perf,
  .mgcontent .eb-section-perf,
  .mgcontent section.eb-section-perf,
  main.mgcontent section.eb-section-perf,
  .eb-section-calls,
  .mgcontent .eb-section-calls,
  .mgcontent section.eb-section-calls,
  main.mgcontent section.eb-section-calls{
    width:min(1200px, calc(100% - (2 * var(--page-gutter, 16px)))) !important;
  }
  .eb-chart-shell{
    width:min(1200px, calc(100% - (2 * var(--page-gutter, 16px))));
  }
  .eb-track .eb-section-hero,
  .mgcontent .eb-track .eb-section-hero,
  main.mgcontent .eb-track section.eb-section-hero{
    padding:40px 28px 0 !important;
  }
}

/* Stack numbers only when 532 + 40 + 470 no longer fits. */
@media (max-width:900px){
  .eb-section-perf,
  .mgcontent .eb-section-perf,
  .mgcontent section.eb-section-perf,
  main.mgcontent section.eb-section-perf{
    min-height:0;
    padding:40px 28px 28px;
  }
  .eb-perf-inner{
    grid-template-columns:1fr;
    align-items:stretch;
    min-height:0;
    row-gap:24px;
  }
  .eb-perf-copy{
    max-width:none;
    padding-bottom:0;
  }
  .eb-perf-chart{
    width:min(470px, 100%);
    max-width:100%;
    height:400px;
    justify-self:center;
  }
  .eb-perf-plot{ height:260px; }
  .eb-perf-bars{
    left:48px;
    right:48px;
    bottom:24px;
    height:320px;
    gap:40px;
  }
}

@media (max-width:768px){
  .eb-track{ padding-bottom:64px; }
  .eb-track .eb-section-hero,
  .mgcontent .eb-track .eb-section-hero,
  main.mgcontent .eb-track section.eb-section-hero{
    width:calc(100% - (2 * var(--page-gutter, 16px))) !important;
    padding:24px 20px 0 !important;
    min-height:0 !important;
    height:auto !important;
  }
  .eb-track .eb-hero-inner{ padding-bottom:0; }
  .eb-track .eb-section-hero h1{ font-size:32px; }
  .eb-track .eb-lede{ font-size:16px; }
  .eb-track-photo{
    width:min(340px, 100%);
    align-self:center;
  }
  .eb-section-perf,
  .mgcontent .eb-section-perf,
  .mgcontent section.eb-section-perf,
  main.mgcontent section.eb-section-perf{
    width:calc(100% - (2 * var(--page-gutter, 16px))) !important;
    min-height:0;
    margin-top:80px !important;
    padding:28px 20px 20px;
  }
  .eb-perf-total{ font-size:48px; }
  .eb-perf-stats{ flex-direction:column; }
  .eb-perf-chart{ height:300px; width:100%; }
  .eb-perf-plot{ height:210px; }
  .eb-perf-bars{
    left:24px;
    right:24px;
    bottom:16px;
    height:250px;
    gap:24px;
  }
  .eb-perf-bar,
  .eb-perf-bar-col{ width:72px; }
  .eb-perf-bar-label{ width:100px; font-size:12px; }
  .eb-perf-bar-value{ font-size:16px; top:10px; }
  .eb-section-calls,
  .mgcontent .eb-section-calls,
  .mgcontent section.eb-section-calls,
  main.mgcontent section.eb-section-calls{
    width:calc(100% - (2 * var(--page-gutter, 16px))) !important;
    margin-top:80px !important;
  }
  .eb-section-chart,
  .mgcontent .eb-section-chart,
  .mgcontent section.eb-section-chart,
  main.mgcontent section.eb-section-chart{
    margin-top:32px !important;
  }
  .eb-section-chart::before{ height:460px; }
  .eb-chart-shell{
    width:calc(100% - (2 * var(--page-gutter, 16px)));
  }
  .eb-chart-plot{ height:240px; }
  .eb-chart-callout{
    flex-direction:column;
    align-items:flex-start;
    width:100%;
    min-height:0;
    padding:24px 20px;
    margin-top:24px;
  }
  .eb-chart-cta{ width:100%; }
  .eb-track .eb-section-cta,
  .mgcontent .eb-track .eb-section-cta,
  main.mgcontent section.eb-section-cta.eb-track-cta{
    margin-top:80px !important;
  }
}
@media (max-width:430px){
  .eb-section-perf,
  .mgcontent .eb-section-perf,
  .mgcontent section.eb-section-perf,
  main.mgcontent section.eb-section-perf,
  .eb-section-calls,
  .mgcontent .eb-section-calls,
  .mgcontent section.eb-section-calls,
  main.mgcontent section.eb-section-calls{
    width:calc(100% - (2 * var(--page-gutter, 16px))) !important;
  }
  .eb-track-badge strong{ font-size:28px; }
  .eb-chart-legend{ gap:10px 14px; }
  .eb-perf-bars{ left:16px; right:16px; gap:16px; }
}

/* Homepage Track Record bars, live (eb-home.js sets the heights and label positions) */
.eb-home .chart.is-live .chart-label strong{
  display:block;
  font-family:var(--ebs-display);
  font-size:22px;
  line-height:26px;
  font-weight:600;
  color:var(--ebs-blue);
}
.eb-home .chart.is-live .chart-label.eb strong{ color:var(--ebs-green); }
/* a label pushed above the navy box sits on the page background */
.eb-home .chart.is-live .chart-label.is-out{ color:var(--ebs-navy); font-weight:600; }

/* Homepage plans: a single plan is centred, with the heading and Monthly/Annually toggle above it */
.eb-home .plans:has(.plan-grid > .plan:only-child) .plans-head{
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.eb-home .plan-grid:has(> .plan:only-child){
  grid-template-columns:minmax(0,640px);
  justify-content:center;
}
.eb-home .plan-grid > .plan:only-child{ min-height:0; }
