/* Affiliate Program page */
.esap{--b:#1B4DFF;--ink:#0B1220;--gray:#5A6474;--line:#E3E6EC;font-family:'Montserrat',system-ui,sans-serif;overflow-x:clip;}
.esap *,.esap *::before,.esap *::after{box-sizing:border-box;}
.esap img{max-width:100%;display:block;}
.esap a:focus-visible{outline:3px solid var(--b);outline-offset:3px;}
.esap-hero{position:relative;padding:72px 24px 90px;background:linear-gradient(180deg,#DCE8FF 0%,#E7EFFF 40%,#F5F8FF 76%,#FFFFFF 100%);}
.esap-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#EAF1FF 2px,transparent 2px);background-size:28px 28px;opacity:.9;-webkit-mask-image:linear-gradient(180deg,#000,rgba(0,0,0,0) 90%);mask-image:linear-gradient(180deg,#000,rgba(0,0,0,0) 90%);}
.esap-hero__inner{position:relative;z-index:1;max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.esap-h1{font-family:'Montserrat',sans-serif;font-weight:800;font-size:56px;line-height:1.02;letter-spacing:-.024em;color:var(--ink);margin:0 0 18px;}
.esap-sub{font-size:16.5px;line-height:1.65;color:var(--gray);max-width:30rem;margin:0 0 34px;}
.esap-stats{display:grid;grid-template-columns:1fr 1fr;gap:26px 30px;max-width:30rem;margin:0 0 36px;}
.esap-stat{display:flex;flex-direction:column;gap:4px;}
.esap-stat__val{font-family:'Montserrat',sans-serif;font-weight:800;font-size:30px;letter-spacing:-.02em;color:var(--ink);line-height:1;}
.esap-stat__lbl{font-size:13.5px;color:var(--gray);line-height:1.4;}
.esap-btn{display:inline-flex;align-items:center;gap:12px;background:var(--b);color:#fff;font-size:15.5px;font-weight:600;line-height:1;padding:18px 34px;border-radius:999px;text-decoration:none;box-shadow:0 12px 28px rgba(27,77,255,.30);transition:transform .16s ease,box-shadow .16s ease;}
.esap-btn:hover{color:#fff;transform:translateY(-2px);box-shadow:0 16px 34px rgba(27,77,255,.38);}
.esap-btn__arrow{transition:transform .16s ease;}
.esap-btn:hover .esap-btn__arrow{transform:translateX(4px);}
.esap-hero__art{position:relative;min-height:460px;display:flex;align-items:center;justify-content:center;}
.esap-vial{position:absolute;animation:esapFloat 6s ease-in-out infinite;}
.esap-vial img{filter:drop-shadow(0 22px 26px rgba(11,18,32,.22));}
.esap-vial--left{width:104px;top:6%;left:2%;animation-delay:0s;}
.esap-vial--center{width:120px;top:0;right:8%;animation-delay:.8s;}
.esap-vial--right{width:132px;bottom:2%;right:2%;animation-delay:1.6s;}
@keyframes esapFloat{0%,100%{transform:translateY(-7px)}50%{transform:translateY(7px)}}
.esap-card{position:relative;z-index:2;width:min(320px,86%);background:#fff;border-radius:16px;padding:22px 24px;box-shadow:0 24px 60px rgba(11,18,32,.16);border:1px solid rgba(255,255,255,.9);}
.esap-card__eyebrow{display:block;font-size:12.5px;color:var(--gray);margin-bottom:6px;}
.esap-card__big{display:block;font-family:'Montserrat',sans-serif;font-weight:800;font-size:38px;letter-spacing:-.022em;color:var(--ink);line-height:1;margin-bottom:16px;}
.esap-card__rows{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:9px;}
.esap-card__row{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:13.5px;color:var(--gray);}
.esap-card__num{font-weight:700;color:var(--ink);}
.esap-card__num--blue{color:var(--b);}
@media (prefers-reduced-motion:reduce){.esap-vial{animation:none;}.esap-btn,.esap-btn__arrow{transition:none;}}
@media (max-width:1024px){
  .esap-h1{font-size:44px;}
  .esap-hero__inner{gap:36px;}
  .esap-hero__art{min-height:400px;}
}
@media (max-width:767px){
  .esap-hero{padding:40px 24px 56px;}
  .esap-hero__inner{grid-template-columns:1fr;gap:34px;}
  .esap-hero__copy{order:1;}
  .esap-hero__art{order:2;min-height:340px;}
  .esap-h1{font-size:34px;margin-bottom:14px;}
  .esap-sub{font-size:15px;margin-bottom:26px;max-width:100%;}
  .esap-stats{gap:20px 18px;max-width:100%;margin-bottom:28px;}
  .esap-stat__val{font-size:24px;}
  .esap-stat__lbl{font-size:12.5px;}
  .esap-btn{width:100%;justify-content:center;padding:16px 24px;}
  .esap-vial--left{width:70px;top:2%;left:0;}
  .esap-vial--center{width:80px;top:0;right:2%;}
  .esap-vial--right{width:88px;bottom:0;right:0;}
  .esap-card{width:min(280px,88%);padding:18px 18px;}
  .esap-card__big{font-size:32px;}
}

/* Section 2 - Built for research referrals */
.esap-built{background:#fff;padding:86px 24px;}
.esap-built__inner{max-width:1240px;margin:0 auto;}
.esap-built__head{text-align:center;max-width:640px;margin:0 auto 56px;}
.esap-h2{font-family:'Montserrat',sans-serif;font-weight:800;font-size:42px;line-height:1.05;letter-spacing:-.024em;color:var(--ink);margin:0 0 12px;}
.esap-subline{font-size:16px;line-height:1.6;color:var(--gray);margin:0;}
.esap-figs{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-bottom:64px;}
.esap-fig{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;}
.esap-fig__val{font-family:'Montserrat',sans-serif;font-weight:800;font-size:46px;line-height:1;letter-spacing:-.03em;color:var(--ink);}
.esap-fig__lbl{font-size:15.5px;font-weight:600;color:var(--ink);}
.esap-fig__sub{font-size:13px;color:var(--gray);line-height:1.45;max-width:22ch;}
.esap-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;max-width:1040px;margin:0 auto;}
.esap-feat h3{font-family:'Montserrat',sans-serif;font-size:16px;font-weight:700;color:var(--ink);margin:0 0 8px;}
.esap-feat p{font-size:14.5px;line-height:1.6;color:var(--gray);margin:0;}
@media (max-width:1024px){
  .esap-built{padding:66px 24px;}
  .esap-h2{font-size:34px;}
  .esap-figs{grid-template-columns:repeat(2,1fr);gap:36px 24px;margin-bottom:48px;}
  .esap-fig__val{font-size:40px;}
  .esap-feats{grid-template-columns:1fr 1fr;gap:28px;}
}
@media (max-width:767px){
  .esap-built{padding:52px 24px;}
  .esap-built__head{margin-bottom:36px;}
  .esap-h2{font-size:28px;}
  .esap-subline{font-size:15px;}
  .esap-figs{gap:28px 18px;margin-bottom:38px;}
  .esap-fig__val{font-size:34px;}
  .esap-fig__lbl{font-size:14px;}
  .esap-fig__sub{font-size:12px;}
  .esap-feats{grid-template-columns:1fr;gap:22px;}
}


/* Section 3 - How it works, serpentine dotted path */
.esap-how{background:#F7F9FF;padding:86px 24px;}
.esap-how__inner{max-width:1240px;margin:0 auto;}
.esap-snake{max-width:960px;margin:0 auto;display:flex;flex-direction:column;}
.esap-step{position:relative;width:44%;padding-left:34px;}
.esap-step--l{align-self:flex-start;}
.esap-step--r{align-self:flex-end;}
.esap-step__node{position:absolute;top:6px;left:0;width:15px;height:15px;border-radius:50%;background:#fff;border:3px solid #1B4DFF;box-shadow:0 0 0 5px rgba(27,77,255,.10);z-index:2;}
.esap-step__num{display:block;font-family:'Montserrat',sans-serif;font-weight:800;font-size:44px;line-height:1;letter-spacing:-.03em;color:#D5DEF0;margin:0 0 10px;}
.esap-step__title{font-family:'Montserrat',sans-serif;font-size:17px;font-weight:700;color:var(--ink);margin:0 0 8px;}
.esap-step__body{font-size:14.5px;line-height:1.6;color:var(--gray);margin:0;}
.esap-curve{display:block;height:96px;width:56%;margin:-6px 0;pointer-events:none;}
.esap-curve--lr{align-self:flex-start;margin-left:7px;border-left:2px dashed #BFD1FF;border-bottom:2px dashed #BFD1FF;border-bottom-left-radius:80px;}
.esap-curve--rl{align-self:flex-end;margin-right:7px;border-right:2px dashed #BFD1FF;border-bottom:2px dashed #BFD1FF;border-bottom-right-radius:80px;}
@media (max-width:1024px){
  .esap-how{padding:66px 24px;}
  .esap-step{width:52%;}
  .esap-curve{width:48%;height:84px;}
  .esap-step__num{font-size:38px;}
}
@media (max-width:767px){
  .esap-how{padding:52px 24px;}
  .esap-snake{max-width:100%;}
  .esap-step,.esap-step--l,.esap-step--r{width:100%;align-self:stretch;padding:0 0 30px 34px;}
  .esap-step:not(:last-child)::after{content:'';position:absolute;top:24px;bottom:-4px;left:7px;border-left:2px dashed #BFD1FF;}
  .esap-step:last-child{padding-bottom:0;}
  .esap-curve{display:none;}
  .esap-step__num{font-size:32px;}
  .esap-step__title{font-size:16px;}
  .esap-step__body{font-size:14px;}
}

/* Section 4 - closing CTA, white fading into the footer */
.esap-close{background:linear-gradient(180deg,#FFFFFF 0%,#EAF0FF 28%,#7E9BFF 68%,#3D68FF 88%,#1B4DFF 100%);padding:96px 24px 110px;text-align:center;}
.esap-close__inner{max-width:760px;margin:0 auto;}
.esap-close__title{font-family:'Montserrat',sans-serif;font-weight:800;font-size:46px;line-height:1.04;letter-spacing:-.024em;color:#0B1220;margin:0 0 16px;}
.esap-close__sub{font-size:16.5px;line-height:1.65;color:#1B2537;margin:0 auto 34px;max-width:34rem;}
.esap-btn--light{background:#0B1220;color:#fff;box-shadow:0 14px 32px rgba(11,18,32,.28);}
.esap-btn--light:hover{background:#141d33;color:#fff;box-shadow:0 18px 38px rgba(11,18,32,.34);}
.esap-close__pts{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;margin-top:34px;}
.esap-close__pts span{font-size:13.5px;font-weight:600;color:#F0F5FF;opacity:.95;}
@media (max-width:1024px){
  .esap-close{padding:76px 24px 88px;}
  .esap-close__title{font-size:36px;}
}
@media (max-width:767px){
  .esap-close{padding:56px 24px 68px;}
  .esap-close__title{font-size:28px;}
  .esap-close__sub{font-size:15px;margin-bottom:26px;}
  .esap-btn--light{width:100%;justify-content:center;}
  .esap-close__pts{flex-direction:column;gap:8px;margin-top:26px;}
  .esap-close__pts span{font-size:13px;}
}

/* How it works: white background */
.esap-how{background:#FFFFFF!important;}

/* Hero secondary link - already an affiliate */
.esap-login{margin:18px 0 0;font-size:14.5px;color:var(--gray);}
.esap-login a{display:inline-flex;align-items:center;gap:6px;color:var(--b);font-weight:700;text-decoration:none;}
.esap-login a span{transition:transform .16s ease;}
.esap-login a:hover{color:#1540DB;text-decoration:underline;}
.esap-login a:hover span{transform:translateX(3px);}
@media (max-width:767px){
  .esap-login{text-align:center;font-size:14px;margin-top:16px;}
}
@media (prefers-reduced-motion:reduce){.esap-login a span{transition:none;}}

/* Login prompt bubble */
.esap-login{display:inline-flex;align-items:center;gap:7px;background:#EAF0FF;border:1px solid #C4D4FF;border-radius:999px;padding:11px 22px;margin:22px 0 0;font-size:14px;color:#3A465C;}
.esap-login--close{background:rgba(255,255,255,.92);border-color:rgba(255,255,255,.9);box-shadow:0 8px 22px rgba(11,18,32,.14);margin-top:26px;}
.esap-close__inner .esap-login{color:#25324A;}
@media (max-width:767px){
  .esap-login{padding:10px 18px;font-size:13.5px;margin-top:18px;}
}

/* Mobile: centre hero CTA + login bubble, narrower button */
@media (max-width:767px){
  .esap-hero__copy{display:flex;flex-direction:column;align-items:center;text-align:center;}
  .esap-hero .esap-btn{width:auto!important;min-width:0!important;align-self:center;padding:16px 34px!important;}
  .esap-hero .esap-login{align-self:center;text-align:center;}
  .esap-stats{width:100%;text-align:left;}
}
